@cat-factory/orchestration 0.204.0 → 0.206.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 (50) hide show
  1. package/dist/container/execution-service.d.ts.map +1 -1
  2. package/dist/container/execution-service.js +4 -0
  3. package/dist/container/execution-service.js.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/modules/board/BoardService.d.ts +12 -2
  9. package/dist/modules/board/BoardService.d.ts.map +1 -1
  10. package/dist/modules/board/BoardService.js +4 -1
  11. package/dist/modules/board/BoardService.js.map +1 -1
  12. package/dist/modules/board/removal-cascade.d.ts +2 -1
  13. package/dist/modules/board/removal-cascade.d.ts.map +1 -1
  14. package/dist/modules/board/removal-cascade.js +23 -0
  15. package/dist/modules/board/removal-cascade.js.map +1 -1
  16. package/dist/modules/execution/ExecutionService.d.ts +1 -1
  17. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  18. package/dist/modules/execution/ExecutionService.js +46 -10
  19. package/dist/modules/execution/ExecutionService.js.map +1 -1
  20. package/dist/modules/execution/ExecutionServiceDependencies.d.ts +18 -1
  21. package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -1
  22. package/dist/modules/execution/PostMergeBoardController.d.ts +9 -1
  23. package/dist/modules/execution/PostMergeBoardController.d.ts.map +1 -1
  24. package/dist/modules/execution/PostMergeBoardController.js +23 -4
  25. package/dist/modules/execution/PostMergeBoardController.js.map +1 -1
  26. package/dist/modules/execution/RunLifecycleController.d.ts +10 -2
  27. package/dist/modules/execution/RunLifecycleController.d.ts.map +1 -1
  28. package/dist/modules/execution/RunLifecycleController.js +4 -1
  29. package/dist/modules/execution/RunLifecycleController.js.map +1 -1
  30. package/dist/modules/notifications/NotificationService.d.ts +6 -0
  31. package/dist/modules/notifications/NotificationService.d.ts.map +1 -1
  32. package/dist/modules/notifications/NotificationService.js +8 -0
  33. package/dist/modules/notifications/NotificationService.js.map +1 -1
  34. package/dist/modules/pipelines/PipelineService.d.ts +11 -7
  35. package/dist/modules/pipelines/PipelineService.d.ts.map +1 -1
  36. package/dist/modules/pipelines/PipelineService.js +28 -16
  37. package/dist/modules/pipelines/PipelineService.js.map +1 -1
  38. package/dist/modules/pipelines/pipelineAdoption.d.ts +57 -0
  39. package/dist/modules/pipelines/pipelineAdoption.d.ts.map +1 -0
  40. package/dist/modules/pipelines/pipelineAdoption.js +94 -0
  41. package/dist/modules/pipelines/pipelineAdoption.js.map +1 -0
  42. package/dist/modules/reports/ReportsService.d.ts +4 -2
  43. package/dist/modules/reports/ReportsService.d.ts.map +1 -1
  44. package/dist/modules/reports/ReportsService.js +9 -3
  45. package/dist/modules/reports/ReportsService.js.map +1 -1
  46. package/dist/modules/spend/spend-alert.logic.d.ts +24 -0
  47. package/dist/modules/spend/spend-alert.logic.d.ts.map +1 -0
  48. package/dist/modules/spend/spend-alert.logic.js +51 -0
  49. package/dist/modules/spend/spend-alert.logic.js.map +1 -0
  50. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationService.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ export declare class PipelineService {
48
48
  private readonly pipelineScheduleRepository?;
49
49
  private readonly pipelineRegistry?;
50
50
  private readonly agentKindRegistry?;
51
+ private readonly adoption;
51
52
  constructor({ workspaceRepository, pipelineRepository, idGenerator, observabilityConnectionRepository, pipelineScheduleRepository, pipelineRegistry, agentKindRegistry, }: PipelineServiceDependencies);
52
53
  /**
53
54
  * The post-release-health gate is only meaningful with an observability integration, so
@@ -59,19 +60,22 @@ export declare class PipelineService {
59
60
  private requireWorkspace;
60
61
  list(workspaceId: string): Promise<Pipeline[]>;
61
62
  /**
62
- * One pipeline by id, or null when the workspace has no such pipeline.
63
+ * The definition a run under this id WOULD use, or null when nothing defines it: the stored row,
64
+ * else the catalog built-in the workspace has not adopted yet (`pipelineAdoption`). Reads only.
63
65
  *
64
- * The point-read behind a rule that only ever asks about ONE pipeline: the public API's start
65
- * paths resolve a caller-supplied `pipelineId` before deciding whether to admit it, and did so by
66
- * listing the workspace's whole catalog and filtering in JS. That is a full table read on the hot
67
- * start path to answer a question the repository already indexes, and it grows with a workspace's
68
- * catalog rather than with the request.
66
+ * This is what an ADMISSION check must ask, and asking the bare row instead is a real hole rather
67
+ * than a nicety. The public API's start paths resolve a caller-supplied `pipelineId` to decide
68
+ * whether to admit it, and a row-only read answers `null` for a pipeline `ExecutionService.start`
69
+ * then ADOPTS and runs: the decide-scope refusal was skipped for want of a pipeline to inspect,
70
+ * and a `write`-only key could set in motion exactly the parked run that scope exists to withhold.
71
+ * So admission and the run resolve through one answer, differing only in that this one never
72
+ * writes. (It replaced a `get` that returned the stored row; nothing wants that read any more.)
69
73
  *
70
74
  * Deliberately returns null rather than throwing, unlike the mutating paths that go through
71
75
  * `assertFound`: an unknown id is not this method's error to raise. Both callers hand the id on to
72
76
  * `ExecutionService.start`, which owns the "no such pipeline" refusal and its message.
73
77
  */
74
- get(workspaceId: string, id: string): Promise<Pipeline | null>;
78
+ resolveForRun(workspaceId: string, id: string): Promise<Pipeline | null>;
75
79
  create(workspaceId: string, input: CreatePipelineInput): Promise<Pipeline>;
76
80
  /**
77
81
  * Clone any pipeline (built-in or custom) into a new, editable copy. The copy keeps
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineService.d.ts","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PipelineService.d.ts","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { assertFound, ConflictError, retiredPipelines, seedPipelines, ValidationError, } from '@cat-factory/kernel';
1
+ import { assertFound, ConflictError, noopOperationalMetrics, retiredPipelines, seedPipelines, ValidationError, } from '@cat-factory/kernel';
2
2
  import { requireWorkspace } from '@cat-factory/kernel';
3
+ import { adoptedCatalogRow, createPipelineAdoption, } from './pipelineAdoption.js';
3
4
  import { assertPipelineLaunchable, pipelineHasEnabledBugIntake, validatePipelineShape, } from './pipelineShape.js';
4
5
  /**
5
6
  * The post-release-health gate watches a released PR's observability signals, so it is
@@ -39,6 +40,7 @@ export class PipelineService {
39
40
  pipelineScheduleRepository;
40
41
  pipelineRegistry;
41
42
  agentKindRegistry;
43
+ adoption;
42
44
  constructor({ workspaceRepository, pipelineRepository, idGenerator, observabilityConnectionRepository, pipelineScheduleRepository, pipelineRegistry, agentKindRegistry, }) {
43
45
  this.workspaceRepository = workspaceRepository;
44
46
  this.pipelineRepository = pipelineRepository;
@@ -47,6 +49,15 @@ export class PipelineService {
47
49
  this.pipelineScheduleRepository = pipelineScheduleRepository;
48
50
  this.pipelineRegistry = pipelineRegistry;
49
51
  this.agentKindRegistry = agentKindRegistry;
52
+ // The same collaborator the engine resolves runs through, so an admission read and the run it
53
+ // admits can never disagree about what a pipeline id means. `noopOperationalMetrics` rather
54
+ // than a threaded sink because this instance only ever answers the READ half: adoption's
55
+ // counter belongs to the write, which happens on the engine's own instance.
56
+ this.adoption = createPipelineAdoption({
57
+ pipelineRepository,
58
+ pipelineRegistry,
59
+ operationalMetrics: noopOperationalMetrics,
60
+ });
50
61
  }
51
62
  /**
52
63
  * The post-release-health gate is only meaningful with an observability integration, so
@@ -71,21 +82,24 @@ export class PipelineService {
71
82
  return this.pipelineRepository.listByWorkspace(workspaceId);
72
83
  }
73
84
  /**
74
- * One pipeline by id, or null when the workspace has no such pipeline.
85
+ * The definition a run under this id WOULD use, or null when nothing defines it: the stored row,
86
+ * else the catalog built-in the workspace has not adopted yet (`pipelineAdoption`). Reads only.
75
87
  *
76
- * The point-read behind a rule that only ever asks about ONE pipeline: the public API's start
77
- * paths resolve a caller-supplied `pipelineId` before deciding whether to admit it, and did so by
78
- * listing the workspace's whole catalog and filtering in JS. That is a full table read on the hot
79
- * start path to answer a question the repository already indexes, and it grows with a workspace's
80
- * catalog rather than with the request.
88
+ * This is what an ADMISSION check must ask, and asking the bare row instead is a real hole rather
89
+ * than a nicety. The public API's start paths resolve a caller-supplied `pipelineId` to decide
90
+ * whether to admit it, and a row-only read answers `null` for a pipeline `ExecutionService.start`
91
+ * then ADOPTS and runs: the decide-scope refusal was skipped for want of a pipeline to inspect,
92
+ * and a `write`-only key could set in motion exactly the parked run that scope exists to withhold.
93
+ * So admission and the run resolve through one answer, differing only in that this one never
94
+ * writes. (It replaced a `get` that returned the stored row; nothing wants that read any more.)
81
95
  *
82
96
  * Deliberately returns null rather than throwing, unlike the mutating paths that go through
83
97
  * `assertFound`: an unknown id is not this method's error to raise. Both callers hand the id on to
84
98
  * `ExecutionService.start`, which owns the "no such pipeline" refusal and its message.
85
99
  */
86
- async get(workspaceId, id) {
100
+ async resolveForRun(workspaceId, id) {
87
101
  await this.requireWorkspace(workspaceId);
88
- return this.pipelineRepository.get(workspaceId, id);
102
+ return this.adoption.resolveDefinition(workspaceId, id);
89
103
  }
90
104
  async create(workspaceId, input) {
91
105
  await this.requireWorkspace(workspaceId);
@@ -298,16 +312,14 @@ export class PipelineService {
298
312
  if (existing && !existing.builtin) {
299
313
  throw new ValidationError('Only built-in pipelines can be reseeded. Delete a custom pipeline instead.');
300
314
  }
301
- const labels = existing?.labels ?? seed.labels;
302
- const pipeline = {
303
- ...seed,
304
- ...(labels && labels.length ? { labels } : { labels: undefined }),
305
- ...(existing?.archived ? { archived: true } : { archived: undefined }),
306
- };
315
+ const pipeline = adoptedCatalogRow(seed, existing);
316
+ // The absent branch goes through `insertIfAbsent` because it races the run path's adopt-on-
317
+ // start (and a second reseed): both write this same catalog row, so losing is a no-op rather
318
+ // than a duplicate-key 500 on whichever caller arrives second.
307
319
  if (existing)
308
320
  await this.pipelineRepository.update(workspaceId, pipeline);
309
321
  else
310
- await this.pipelineRepository.insert(workspaceId, pipeline);
322
+ await this.pipelineRepository.insertIfAbsent(workspaceId, pipeline);
311
323
  return pipeline;
312
324
  }
313
325
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineService.js","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PipelineService.js","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { Logger, OperationalMetrics, Pipeline, PipelineRegistry, PipelineRepository } from '@cat-factory/kernel';
2
+ /**
3
+ * The row a workspace's copy of a catalog pipeline is: the catalog definition, carrying over the
4
+ * organizational metadata a workspace owns (`labels` / `archived`, written by `organize`) when it
5
+ * already holds a copy. Shared by `PipelineService.reseed` and adoption so "adopting" and
6
+ * "reseeding" cannot produce different rows for the same catalog entry.
7
+ */
8
+ export declare function adoptedCatalogRow(seed: Pipeline, existing?: Pipeline | null): Pipeline;
9
+ /** Resolving a pipeline id against a workspace that may not have adopted the catalog entry yet. */
10
+ export interface PipelineAdoption {
11
+ /**
12
+ * The definition a run under this id WOULD use: the stored row, else the un-adopted catalog
13
+ * entry. Reads only, so it is what a question about a prospective run asks (the personal-
14
+ * credential gate's "which vendors would this need"). Answering `null` where `adoptForRun`
15
+ * would succeed is what that gate did before, and it read as "this pipeline needs nothing".
16
+ */
17
+ resolveDefinition(workspaceId: string, pipelineId: string): Promise<Pipeline | null>;
18
+ /**
19
+ * The definition a run under this id will use, ADOPTING an un-adopted catalog entry into the
20
+ * workspace so every other surface can see what ran. Idempotent under a race: two tasks of the
21
+ * same operation started at once both resolve "no row" and both insert the same catalog
22
+ * definition, which `insertIfAbsent` settles first-write-wins.
23
+ */
24
+ adoptForRun(workspaceId: string, pipelineId: string): Promise<Pipeline | null>;
25
+ /**
26
+ * Every ADOPTABLE catalog definition, indexed by id, for a caller that already holds the
27
+ * workspace's WHOLE pipeline list and therefore already knows which ids have no row (the
28
+ * post-merge auto-start's dependent loop). Synchronous and repository-free: an id absent from
29
+ * `listByWorkspace` is absent, so a point read per miss would be a banned N+1 that re-answers
30
+ * what the list already said.
31
+ *
32
+ * Build it ONCE per caller invocation and index into it. It is a fresh catalog construction on
33
+ * every call, deliberately not memoised: the registry is an instance a deployment registers onto,
34
+ * and a stale memo would answer for a catalog the composition root has since added to.
35
+ */
36
+ adoptableCatalog(): Map<string, Pipeline>;
37
+ }
38
+ export interface PipelineAdoptionDependencies {
39
+ pipelineRepository: PipelineRepository;
40
+ /**
41
+ * The app-owned registry a deployment registers its own pipelines on. Optional: absent, the
42
+ * BUILT-IN catalog is still adoptable (it lives in code, not in the registry), so a caller that
43
+ * registers nothing loses nothing. What it loses is adoption of a DEPLOYMENT's own registered
44
+ * built-in, which is exactly the reusable-operation case, so a facade must thread it.
45
+ */
46
+ pipelineRegistry?: PipelineRegistry;
47
+ /**
48
+ * Where the `pipeline.adopted` counter lands. REQUIRED rather than optional because an un-wired
49
+ * counter is indistinguishable from a deployment whose boards are all current: a caller that
50
+ * only ever asks the READ half (`PipelineService`, whose instance never writes) passes
51
+ * `noopOperationalMetrics` and says so at the call site.
52
+ */
53
+ operationalMetrics: OperationalMetrics;
54
+ logger?: Logger;
55
+ }
56
+ export declare function createPipelineAdoption(deps: PipelineAdoptionDependencies): PipelineAdoption;
57
+ //# sourceMappingURL=pipelineAdoption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineAdoption.d.ts","sourceRoot":"","sources":["../../../src/modules/pipelines/pipelineAdoption.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAyB5B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAOtF;AAsBD,mGAAmG;AACnG,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACpF;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC9E;;;;;;;;;;OAUG;IACH,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,EAAE,kBAAkB,CAAA;IACtC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,GAAG,gBAAgB,CAuC3F"}
@@ -0,0 +1,94 @@
1
+ import { seedPipelines } from '@cat-factory/kernel';
2
+ import { noopLogger } from '@cat-factory/kernel';
3
+ // ---------------------------------------------------------------------------
4
+ // ADOPTION: reconciling a workspace's stored pipeline rows with the CODE catalog.
5
+ //
6
+ // Built-ins (and a deployment's registered built-ins) are COPIED into each workspace at creation,
7
+ // so a board created before a pipeline shipped simply has no row for it, and the catalog's own
8
+ // copy is unreachable to every read: `PipelineService.list` is `listByWorkspace`, the builder edits
9
+ // rows, a run resolves its pipeline by row. The shipped way across that gap is the SPA's
10
+ // new-pipeline advisory plus a reseed.
11
+ //
12
+ // That is a fine story for a human browsing the pipeline library and a bad one for a REUSABLE
13
+ // OPERATION (`docs/initiatives/reusable-operations.md`), because an operation PINS its pipeline by
14
+ // id: a task of the operation is creatable on a board that never adopted it (the pin resolves off
15
+ // the task-type registry, which knows nothing about rows) and then refuses to start. So the run
16
+ // path adopts on first use, which is this module.
17
+ //
18
+ // Adoption WRITES the row rather than running off the catalog copy, deliberately. Resolving from
19
+ // code without persisting would leave a run executing a pipeline the board's own library does not
20
+ // list, cannot open in the builder, and cannot attach a schedule to: the same class of dishonesty
21
+ // as rendering an absent thing as an empty one. One insert keeps rows the single source every
22
+ // surface reads.
23
+ // ---------------------------------------------------------------------------
24
+ /**
25
+ * The row a workspace's copy of a catalog pipeline is: the catalog definition, carrying over the
26
+ * organizational metadata a workspace owns (`labels` / `archived`, written by `organize`) when it
27
+ * already holds a copy. Shared by `PipelineService.reseed` and adoption so "adopting" and
28
+ * "reseeding" cannot produce different rows for the same catalog entry.
29
+ */
30
+ export function adoptedCatalogRow(seed, existing) {
31
+ const labels = existing?.labels ?? seed.labels;
32
+ return {
33
+ ...seed,
34
+ ...(labels && labels.length ? { labels } : { labels: undefined }),
35
+ ...(existing?.archived ? { archived: true } : { archived: undefined }),
36
+ };
37
+ }
38
+ /**
39
+ * The catalog definition a workspace SHOULD hold under this id but may never have been seeded
40
+ * with, or undefined when the id is not an adoptable catalog entry.
41
+ *
42
+ * Restricted to `builtin` entries, and that restriction IS the safety argument. A built-in is
43
+ * read-only in a workspace and becomes deletable only once RETIRED, and a retired id is absent
44
+ * from `seedPipelines` by construction (kernel deletes the definition; `PipelineRegistry.retire`
45
+ * splices the registration). So "no row, and a live built-in catalog entry" can only mean NEVER
46
+ * ADOPTED. A VERSIONLESS registered pipeline is editable and deletable by the workspace, so
47
+ * treating one the same way would silently resurrect a deliberate deletion, and re-materialise it
48
+ * with the code definition rather than the workspace's own edits.
49
+ */
50
+ function unadoptedCatalogEntry(pipelineId, registry) {
51
+ const seed = seedPipelines(registry).find((p) => p.id === pipelineId);
52
+ return seed?.builtin ? adoptedCatalogRow(seed) : undefined;
53
+ }
54
+ export function createPipelineAdoption(deps) {
55
+ const log = deps.logger ?? noopLogger;
56
+ const catalogEntry = (pipelineId) => unadoptedCatalogEntry(pipelineId, deps.pipelineRegistry);
57
+ // The catalog build happens only on a stored-row MISS, so the hot path stays the single point
58
+ // read a start already did. A miss is not always an adoption, though: an id NOTHING defines
59
+ // misses on every attempt, so a caller naming bogus ids in a loop rebuilds the catalog each
60
+ // time. That is pure in-memory construction bounded by the caller's own request rate, and it is
61
+ // the price of not memoising a registry the composition root may still be registering onto.
62
+ const resolve = async (workspaceId, pipelineId) => (await deps.pipelineRepository.get(workspaceId, pipelineId)) ?? catalogEntry(pipelineId) ?? null;
63
+ return {
64
+ resolveDefinition: resolve,
65
+ adoptableCatalog() {
66
+ const adoptable = new Map();
67
+ for (const seed of seedPipelines(deps.pipelineRegistry)) {
68
+ if (seed.builtin)
69
+ adoptable.set(seed.id, adoptedCatalogRow(seed));
70
+ }
71
+ return adoptable;
72
+ },
73
+ async adoptForRun(workspaceId, pipelineId) {
74
+ const stored = await deps.pipelineRepository.get(workspaceId, pipelineId);
75
+ if (stored)
76
+ return stored;
77
+ const seed = catalogEntry(pipelineId);
78
+ if (!seed)
79
+ return null;
80
+ await deps.pipelineRepository.insertIfAbsent(workspaceId, seed);
81
+ // Logged AND counted, for the two different questions. The line answers "what happened to
82
+ // this board"; the counter answers "how many boards are still behind the shipped catalog",
83
+ // which no per-run line can add up to.
84
+ log.info('Adopted a catalog pipeline into the workspace on first run', {
85
+ workspaceId,
86
+ pipelineId,
87
+ version: seed.version,
88
+ });
89
+ deps.operationalMetrics.increment('pipeline.adopted');
90
+ return seed;
91
+ },
92
+ };
93
+ }
94
+ //# sourceMappingURL=pipelineAdoption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineAdoption.js","sourceRoot":"","sources":["../../../src/modules/pipelines/pipelineAdoption.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,10 @@ export interface ReportsServiceDependencies {
13
13
  }
14
14
  /**
15
15
  * Cross-cutting usage analytics: composes the rollups behind {@link ReportsRepository}
16
- * into the Reports view spend sliced by model and agent kind, spend and run activity
17
- * sliced by workspace / service / task type, and a spend trend, over a time window.
16
+ * into the Reports view: spend sliced by model, agent kind, repository and tracker ticket,
17
+ * spend and run activity sliced by workspace / service / task type, and a spend trend, over a
18
+ * time window. The repository and ticket slices are the TCO axes: what an organisation budgets
19
+ * against, answered by a grouped query rather than a hand-written join against the database.
18
20
  *
19
21
  * The dual of {@link PlatformObservabilityService}: that answers "is the deployment
20
22
  * healthy", this answers "where are the money and the work going". Every breakdown is one
@@ -1 +1 @@
1
- {"version":3,"file":"ReportsService.d.ts","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,KAAK,EAAE,KAAK,EAA4B,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAU7F,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAE3D,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,WAAW,CAAC,CAuDtB;CACF"}
1
+ {"version":3,"file":"ReportsService.d.ts","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,KAAK,EAAE,KAAK,EAA4B,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAU7F,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAE3D,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,WAAW,CAAC,CA6DtB;CACF"}
@@ -1,8 +1,10 @@
1
1
  import { REPORT_WINDOWS, alignWindowStart, buildSpendTrend, foldTotals, toActivityRow, toSpendRow, } from './reports.logic.js';
2
2
  /**
3
3
  * Cross-cutting usage analytics: composes the rollups behind {@link ReportsRepository}
4
- * into the Reports view spend sliced by model and agent kind, spend and run activity
5
- * sliced by workspace / service / task type, and a spend trend, over a time window.
4
+ * into the Reports view: spend sliced by model, agent kind, repository and tracker ticket,
5
+ * spend and run activity sliced by workspace / service / task type, and a spend trend, over a
6
+ * time window. The repository and ticket slices are the TCO axes: what an organisation budgets
7
+ * against, answered by a grouped query rather than a hand-written join against the database.
6
8
  *
7
9
  * The dual of {@link PlatformObservabilityService}: that answers "is the deployment
8
10
  * healthy", this answers "where are the money and the work going". Every breakdown is one
@@ -24,12 +26,14 @@ export class ReportsService {
24
26
  const scope = { accountId, workspaceId: workspaceId ?? null };
25
27
  const range = { since, until };
26
28
  const repo = this.deps.reportsRepository;
27
- const [byModel, byAgentKind, spendByWorkspace, spendByService, spendByTaskType, activityByWorkspace, activityByService, activityByTaskType, trend,] = await Promise.all([
29
+ const [byModel, byAgentKind, spendByWorkspace, spendByService, spendByRepo, spendByTaskType, spendByTicket, activityByWorkspace, activityByService, activityByTaskType, trend,] = await Promise.all([
28
30
  repo.spendByDimension(scope, 'model', range),
29
31
  repo.spendByDimension(scope, 'agentKind', range),
30
32
  repo.spendByDimension(scope, 'workspace', range),
31
33
  repo.spendByDimension(scope, 'service', range),
34
+ repo.spendByDimension(scope, 'repo', range),
32
35
  repo.spendByDimension(scope, 'taskType', range),
36
+ repo.spendByDimension(scope, 'ticket', range),
33
37
  repo.activityByDimension(scope, 'workspace', range),
34
38
  repo.activityByDimension(scope, 'service', range),
35
39
  repo.activityByDimension(scope, 'taskType', range),
@@ -50,7 +54,9 @@ export class ReportsService {
50
54
  byAgentKind: byAgentKind.map(toSpendRow),
51
55
  byWorkspace: spendByWorkspace.map(toSpendRow),
52
56
  byService: spendByService.map(toSpendRow),
57
+ byRepo: spendByRepo.map(toSpendRow),
53
58
  byTaskType: spendByTaskType.map(toSpendRow),
59
+ byTicket: spendByTicket.map(toSpendRow),
54
60
  },
55
61
  activity: {
56
62
  byWorkspace: activityByWorkspace.map(toActivityRow),
@@ -1 +1 @@
1
- {"version":3,"file":"ReportsService.js","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReportsService.js","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { BudgetAlert, BudgetAlertTier } from '@cat-factory/contracts';
2
+ /** The scope's stable budget facts: what the card may name without re-toasting the inbox. */
3
+ export interface SpendAlertSubject {
4
+ /** The tier whose state drives the headline (the worst one firing). */
5
+ tier: BudgetAlertTier;
6
+ /** The period budget, in `currency`. Stable for as long as nobody edits it. */
7
+ costLimit: number;
8
+ /** ISO 4217 currency of `costLimit`. It travels WITH the amount, never resolved separately. */
9
+ currency: string;
10
+ /** The highest crossed threshold as a fraction, or null when only the projection fired. */
11
+ threshold: number | null;
12
+ }
13
+ /**
14
+ * Title + body for a `budget_threshold` card.
15
+ *
16
+ * `alerts` is every firing tier (so a card that concerns both says so); `subject` is the worst
17
+ * of them, which owns the headline. A card naming only the milder tier would understate, and one
18
+ * naming both equally would bury the fact that matters.
19
+ */
20
+ export declare function spendThresholdCardContent(alerts: readonly BudgetAlert[], subject: SpendAlertSubject): {
21
+ title: string;
22
+ body: string;
23
+ };
24
+ //# sourceMappingURL=spend-alert.logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spend-alert.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/spend/spend-alert.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAuB1E,6FAA6F;AAC7F,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,IAAI,EAAE,eAAe,CAAA;IACrB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAA;IACjB,+FAA+F;IAC/F,QAAQ,EAAE,MAAM,CAAA;IAChB,2FAA2F;IAC3F,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,OAAO,EAAE,iBAAiB,GACzB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoBjC"}
@@ -0,0 +1,51 @@
1
+ // The copy on a `budget_threshold` card. Pure, and separated from the sweep that raises it so
2
+ // the wording can be unit-tested against the one property it MUST have: stability.
3
+ //
4
+ // A notification is re-delivered whenever its user-visible content changes, and this card's
5
+ // condition holds for the rest of the billing period. So every figure here has to be one that
6
+ // does not move while the state is unchanged: a threshold and a limit qualify, spend-so-far and
7
+ // a projected total emphatically do not. Putting "on pace to reach 143 EUR" in the body would
8
+ // re-toast the inbox on every sweep for weeks, which is how a useful alert becomes one people
9
+ // filter away. The moving numbers belong on the Usage surface the card points at.
10
+ const TIER_PHRASE = {
11
+ workspace: "This board's",
12
+ account: "The account's",
13
+ };
14
+ /** The same tier, mid-sentence. */
15
+ const TIER_NOUN = {
16
+ workspace: 'board',
17
+ account: 'account',
18
+ };
19
+ /**
20
+ * Title + body for a `budget_threshold` card.
21
+ *
22
+ * `alerts` is every firing tier (so a card that concerns both says so); `subject` is the worst
23
+ * of them, which owns the headline. A card naming only the milder tier would understate, and one
24
+ * naming both equally would bury the fact that matters.
25
+ */
26
+ export function spendThresholdCardContent(alerts, subject) {
27
+ const budget = `${formatLimit(subject.costLimit)} ${subject.currency}`;
28
+ const scope = TIER_PHRASE[subject.tier];
29
+ const title = subject.threshold != null
30
+ ? `Spend has passed ${formatPercent(subject.threshold)} of the ${TIER_NOUN[subject.tier]} budget`
31
+ : `Spend is on pace to exceed the ${TIER_NOUN[subject.tier]} budget`;
32
+ const lead = subject.threshold != null
33
+ ? `${scope} metered spend has passed ${formatPercent(subject.threshold)} of its ${budget} monthly budget.`
34
+ : `${scope} metered spend is below its ${budget} monthly budget, but the current burn rate is projected to exceed it before the period ends.`;
35
+ // Only when the OTHER tier is firing too: a card that always listed its tiers would read as
36
+ // boilerplate, and the single-tier case is by far the common one.
37
+ const both = alerts.length > 1 ? ' Both the board and its account budget are affected.' : '';
38
+ return {
39
+ title,
40
+ body: `${lead}${both} Raise the budget or stop what is running before runs start pausing; the Usage screen shows the burn rate and the projection.`,
41
+ };
42
+ }
43
+ /** `0.8` → `80%`. Whole percents, because a threshold nobody can configure to 82.5% yet. */
44
+ function formatPercent(fraction) {
45
+ return `${Math.round(fraction * 100)}%`;
46
+ }
47
+ /** A budget amount, trimmed of a pointless `.00` so a round limit reads as a round number. */
48
+ function formatLimit(amount) {
49
+ return Number.isInteger(amount) ? String(amount) : amount.toFixed(2);
50
+ }
51
+ //# sourceMappingURL=spend-alert.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spend-alert.logic.js","sourceRoot":"","sources":["../../../src/modules/spend/spend-alert.logic.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,mFAAmF;AACnF,EAAE;AACF,4FAA4F;AAC5F,8FAA8F;AAC9F,gGAAgG;AAChG,8FAA8F;AAC9F,8FAA8F;AAC9F,kFAAkF;AAElF,MAAM,WAAW,GAAoC;IACnD,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,eAAe;CACzB,CAAA;AAED,mCAAmC;AACnC,MAAM,SAAS,GAAoC;IACjD,SAAS,EAAE,OAAO;IAClB,OAAO,EAAE,SAAS;CACnB,CAAA;AAcD;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAA8B,EAC9B,OAA0B;IAE1B,MAAM,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAA;IACtE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,KAAK,GACT,OAAO,CAAC,SAAS,IAAI,IAAI;QACvB,CAAC,CAAC,oBAAoB,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;QACjG,CAAC,CAAC,kCAAkC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAA;IAExE,MAAM,IAAI,GACR,OAAO,CAAC,SAAS,IAAI,IAAI;QACvB,CAAC,CAAC,GAAG,KAAK,6BAA6B,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,MAAM,kBAAkB;QAC1G,CAAC,CAAC,GAAG,KAAK,+BAA+B,MAAM,8FAA8F,CAAA;IAEjJ,4FAA4F;IAC5F,kEAAkE;IAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5F,OAAO;QACL,KAAK;QACL,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,+HAA+H;KACpJ,CAAA;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAA;AACzC,CAAC;AAED,8FAA8F;AAC9F,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACtE,CAAC"}