@cat-factory/server 0.240.0 → 0.241.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 (28) hide show
  1. package/dist/modules/publicApi/PublicApiController.js +19 -19
  2. package/dist/modules/publicApi/PublicApiController.js.map +1 -1
  3. package/dist/modules/publicApi/PublicDebugController.js +9 -9
  4. package/dist/modules/publicApi/PublicDebugController.js.map +1 -1
  5. package/dist/modules/publicApi/PublicDecisionController.js +1 -1
  6. package/dist/modules/publicApi/PublicDecisionController.js.map +1 -1
  7. package/dist/modules/publicApi/PublicDiscoveryController.js +2 -2
  8. package/dist/modules/publicApi/PublicDiscoveryController.js.map +1 -1
  9. package/dist/modules/publicApi/PublicEvidenceController.d.ts.map +1 -1
  10. package/dist/modules/publicApi/PublicEvidenceController.js +30 -9
  11. package/dist/modules/publicApi/PublicEvidenceController.js.map +1 -1
  12. package/dist/modules/publicApi/PublicKeyController.d.ts.map +1 -1
  13. package/dist/modules/publicApi/PublicKeyController.js +4 -4
  14. package/dist/modules/publicApi/PublicKeyController.js.map +1 -1
  15. package/dist/modules/publicApi/PublicNotificationWebhookController.js +3 -3
  16. package/dist/modules/publicApi/PublicNotificationWebhookController.js.map +1 -1
  17. package/dist/modules/publicApi/decisions/scope.d.ts.map +1 -1
  18. package/dist/modules/publicApi/decisions/scope.js +3 -1
  19. package/dist/modules/publicApi/decisions/scope.js.map +1 -1
  20. package/dist/modules/publicApi/openapiDocument.generated.d.ts +1 -1
  21. package/dist/modules/publicApi/openapiDocument.generated.d.ts.map +1 -1
  22. package/dist/modules/publicApi/openapiDocument.generated.js +1 -1
  23. package/dist/modules/publicApi/openapiDocument.generated.js.map +1 -1
  24. package/dist/modules/serviceSpec/ServiceSpecController.d.ts +6 -1
  25. package/dist/modules/serviceSpec/ServiceSpecController.d.ts.map +1 -1
  26. package/dist/modules/serviceSpec/ServiceSpecController.js +21 -2
  27. package/dist/modules/serviceSpec/ServiceSpecController.js.map +1 -1
  28. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"openapiDocument.generated.js","sourceRoot":"","sources":["../../../src/modules/publicApi/openapiDocument.generated.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,EAAE;AACF,0FAA0F;AAC1F,8FAA8F;AAC9F,8FAA8F;AAC9F,8EAA8E;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAG,wluZAAwluZ,CAAA"}
1
+ {"version":3,"file":"openapiDocument.generated.js","sourceRoot":"","sources":["../../../src/modules/publicApi/openapiDocument.generated.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,EAAE;AACF,0FAA0F;AAC1F,8FAA8F;AAC9F,8FAA8F;AAC9F,8EAA8E;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAG,q2hbAAq2hb,CAAA"}
@@ -8,9 +8,14 @@ import type { AppEnv } from '../../http/env.js';
8
8
  *
9
9
  * It resolves the block's repo through the same `resolveRunRepoContext` seam the engine uses
10
10
  * to bind a run's pre/post-ops (installation + repo + default branch), so it is
11
- * runtime-symmetric both facades wire the resolver. When GitHub isn't connected (no
11
+ * runtime-symmetric: both facades wire the resolver. When GitHub isn't connected (no
12
12
  * resolver, no linked repo) or no spec exists yet, it returns `{ present: false }` so the
13
13
  * window shows an empty state instead of erroring. Mounted under `/workspaces/:workspaceId`.
14
+ *
15
+ * It also serves the RUN-scoped read beside it. Both are spec reads and the pair belongs
16
+ * together precisely so nobody reaches for the wrong one: this default-branch read answers
17
+ * "what does this service require", and `/executions/:executionId/spec` answers "what did this
18
+ * run rule on", which is a different tree for as long as the run's pull request is open.
14
19
  */
15
20
  export declare function serviceSpecController(): Hono<AppEnv>;
16
21
  //# sourceMappingURL=ServiceSpecController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceSpecController.d.ts","sourceRoot":"","sources":["../../../src/modules/serviceSpec/ServiceSpecController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CA0BpD"}
1
+ {"version":3,"file":"ServiceSpecController.d.ts","sourceRoot":"","sources":["../../../src/modules/serviceSpec/ServiceSpecController.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CAyCpD"}
@@ -1,4 +1,4 @@
1
- import { EMPTY_SERVICE_SPEC_VIEW, getServiceSpecContract } from '@cat-factory/contracts';
1
+ import { EMPTY_SERVICE_SPEC_VIEW, getRunSpecContract, getServiceSpecContract, } from '@cat-factory/contracts';
2
2
  import { buildHonoRoute } from '@toad-contracts/hono';
3
3
  import { Hono } from 'hono';
4
4
  import { param } from '../../http/params.js';
@@ -12,9 +12,14 @@ const EMPTY = EMPTY_SERVICE_SPEC_VIEW;
12
12
  *
13
13
  * It resolves the block's repo through the same `resolveRunRepoContext` seam the engine uses
14
14
  * to bind a run's pre/post-ops (installation + repo + default branch), so it is
15
- * runtime-symmetric both facades wire the resolver. When GitHub isn't connected (no
15
+ * runtime-symmetric: both facades wire the resolver. When GitHub isn't connected (no
16
16
  * resolver, no linked repo) or no spec exists yet, it returns `{ present: false }` so the
17
17
  * window shows an empty state instead of erroring. Mounted under `/workspaces/:workspaceId`.
18
+ *
19
+ * It also serves the RUN-scoped read beside it. Both are spec reads and the pair belongs
20
+ * together precisely so nobody reaches for the wrong one: this default-branch read answers
21
+ * "what does this service require", and `/executions/:executionId/spec` answers "what did this
22
+ * run rule on", which is a different tree for as long as the run's pull request is open.
18
23
  */
19
24
  export function serviceSpecController() {
20
25
  const app = new Hono();
@@ -43,6 +48,20 @@ export function serviceSpecController() {
43
48
  return c.json(EMPTY, 200);
44
49
  }
45
50
  });
51
+ // The spec ONE RUN was judged against, for the outcome card's requirement join. Delegated
52
+ // whole to the engine's evidence loader rather than resolved here: the branch rule, the
53
+ // tester gate and the per-run memo are the same three the verification report and
54
+ // `GET /api/v1/runs/:runId/outcome` read through, and a second reader with its own copy of
55
+ // any of them is how the card and the endpoint came to describe one run differently.
56
+ buildHonoRoute(app, getRunSpecContract, async (c) => {
57
+ const view = await c
58
+ .get('container')
59
+ .executionService.readRunSpec(param(c, 'workspaceId'), c.req.valid('param').executionId);
60
+ // A run this workspace does not have is the same answer as a run whose spec cannot be read:
61
+ // there is no tree to join against, and the card states that as `spec: 'not_read'`. It is
62
+ // NOT a 404, because the card asks this question about a run it is already rendering.
63
+ return c.json(view ?? EMPTY, 200);
64
+ });
46
65
  return app;
47
66
  }
48
67
  //# sourceMappingURL=ServiceSpecController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceSpecController.js","sourceRoot":"","sources":["../../../src/modules/serviceSpec/ServiceSpecController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,MAAM,KAAK,GAAG,uBAAuB,CAAA;AAErC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,qBAAqB,CAAA;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACvC,IAAI,GAAG,CAAA;QACP,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;YACrF,yEAAyE;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACnC,yFAAyF;QACzF,uFAAuF;QACvF,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"ServiceSpecController.js","sourceRoot":"","sources":["../../../src/modules/serviceSpec/ServiceSpecController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,MAAM,KAAK,GAAG,uBAAuB,CAAA;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,qBAAqB,CAAA;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACvC,IAAI,GAAG,CAAA;QACP,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;YACrF,yEAAyE;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACnC,yFAAyF;QACzF,uFAAuF;QACvF,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,0FAA0F;IAC1F,wFAAwF;IACxF,kFAAkF;IAClF,2FAA2F;IAC3F,qFAAqF;IACrF,cAAc,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC;aACjB,GAAG,CAAC,WAAW,CAAC;aAChB,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAA;QAC1F,4FAA4F;QAC5F,0FAA0F;QAC1F,sFAAsF;QACtF,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/server",
3
- "version": "0.240.0",
3
+ "version": "0.241.0",
4
4
  "description": "Runtime-neutral HTTP layer for the Agent Architecture Board: the Hono controllers, middleware (auth/authz/CORS/error), request helpers and the gateway seams shared by every deployment facade (Cloudflare Worker, Node service).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,13 +31,13 @@
31
31
  "jose": "^6.2.8",
32
32
  "pino": "^10.3.1",
33
33
  "valibot": "^1.4.2",
34
- "@cat-factory/agents": "0.117.0",
35
- "@cat-factory/integrations": "0.141.0",
36
- "@cat-factory/kernel": "0.262.0",
37
- "@cat-factory/contracts": "0.262.0",
38
- "@cat-factory/mcp-server": "0.16.1",
39
- "@cat-factory/orchestration": "0.230.0",
40
- "@cat-factory/spend": "0.15.28"
34
+ "@cat-factory/agents": "0.117.1",
35
+ "@cat-factory/kernel": "0.262.1",
36
+ "@cat-factory/integrations": "0.141.1",
37
+ "@cat-factory/mcp-server": "0.17.0",
38
+ "@cat-factory/contracts": "0.263.0",
39
+ "@cat-factory/orchestration": "0.231.0",
40
+ "@cat-factory/spend": "0.15.29"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^26.1.2",