@cat-factory/server 0.226.0 → 0.228.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 (98) hide show
  1. package/dist/agents/resolveRepoTarget.d.ts.map +1 -1
  2. package/dist/agents/resolveRepoTarget.js +20 -10
  3. package/dist/agents/resolveRepoTarget.js.map +1 -1
  4. package/dist/app.d.ts +29 -0
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +131 -88
  7. package/dist/app.js.map +1 -1
  8. package/dist/github/GitHubPrReportPublisher.d.ts +63 -11
  9. package/dist/github/GitHubPrReportPublisher.d.ts.map +1 -1
  10. package/dist/github/GitHubPrReportPublisher.js +137 -35
  11. package/dist/github/GitHubPrReportPublisher.js.map +1 -1
  12. package/dist/http/workspaceAccess.d.ts +65 -40
  13. package/dist/http/workspaceAccess.d.ts.map +1 -1
  14. package/dist/http/workspaceAccess.js +84 -44
  15. package/dist/http/workspaceAccess.js.map +1 -1
  16. package/dist/modules/agentPrompts/AgentPromptController.js +2 -2
  17. package/dist/modules/agentPrompts/AgentPromptController.js.map +1 -1
  18. package/dist/modules/agentSettings/WorkspaceAgentSettingsController.js +2 -2
  19. package/dist/modules/agentSettings/WorkspaceAgentSettingsController.js.map +1 -1
  20. package/dist/modules/bootstrap/BootstrapController.js +2 -2
  21. package/dist/modules/bootstrap/BootstrapController.js.map +1 -1
  22. package/dist/modules/capabilityCredentials/CapabilityCredentialsController.d.ts +2 -2
  23. package/dist/modules/capabilityCredentials/CapabilityCredentialsController.d.ts.map +1 -1
  24. package/dist/modules/capabilityCredentials/CapabilityCredentialsController.js +4 -11
  25. package/dist/modules/capabilityCredentials/CapabilityCredentialsController.js.map +1 -1
  26. package/dist/modules/consensus/ConsensusGroupController.js +2 -2
  27. package/dist/modules/consensus/ConsensusGroupController.js.map +1 -1
  28. package/dist/modules/documents/DocumentSourceController.d.ts +10 -0
  29. package/dist/modules/documents/DocumentSourceController.d.ts.map +1 -1
  30. package/dist/modules/documents/DocumentSourceController.js +37 -4
  31. package/dist/modules/documents/DocumentSourceController.js.map +1 -1
  32. package/dist/modules/environments/EnvironmentController.d.ts.map +1 -1
  33. package/dist/modules/environments/EnvironmentController.js +6 -2
  34. package/dist/modules/environments/EnvironmentController.js.map +1 -1
  35. package/dist/modules/foundationalServices/FoundationalServiceController.d.ts.map +1 -1
  36. package/dist/modules/foundationalServices/FoundationalServiceController.js +14 -13
  37. package/dist/modules/foundationalServices/FoundationalServiceController.js.map +1 -1
  38. package/dist/modules/fragmentLibrary/FragmentLibraryController.d.ts.map +1 -1
  39. package/dist/modules/fragmentLibrary/FragmentLibraryController.js +17 -11
  40. package/dist/modules/fragmentLibrary/FragmentLibraryController.js.map +1 -1
  41. package/dist/modules/github/GitHubController.js +3 -3
  42. package/dist/modules/github/GitHubController.js.map +1 -1
  43. package/dist/modules/gitlab/GitLabController.js +2 -2
  44. package/dist/modules/gitlab/GitLabController.js.map +1 -1
  45. package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js +2 -2
  46. package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js.map +1 -1
  47. package/dist/modules/merge/RiskPolicyController.js +2 -2
  48. package/dist/modules/merge/RiskPolicyController.js.map +1 -1
  49. package/dist/modules/modelPresets/ModelPresetController.js +2 -2
  50. package/dist/modules/modelPresets/ModelPresetController.js.map +1 -1
  51. package/dist/modules/notificationWebhook/NotificationWebhookController.js +2 -2
  52. package/dist/modules/notificationWebhook/NotificationWebhookController.js.map +1 -1
  53. package/dist/modules/packageRegistries/PackageRegistriesController.js +2 -2
  54. package/dist/modules/packageRegistries/PackageRegistriesController.js.map +1 -1
  55. package/dist/modules/preview/PreviewController.js +2 -2
  56. package/dist/modules/preview/PreviewController.js.map +1 -1
  57. package/dist/modules/providers/ApiKeyController.js +2 -2
  58. package/dist/modules/providers/ApiKeyController.js.map +1 -1
  59. package/dist/modules/providers/VendorCredentialController.js +2 -2
  60. package/dist/modules/providers/VendorCredentialController.js.map +1 -1
  61. package/dist/modules/publicApi/PublicApiKeyController.js +2 -2
  62. package/dist/modules/publicApi/PublicApiKeyController.js.map +1 -1
  63. package/dist/modules/publicApi/openapiDocument.generated.d.ts +1 -1
  64. package/dist/modules/publicApi/openapiDocument.generated.d.ts.map +1 -1
  65. package/dist/modules/publicApi/openapiDocument.generated.js +1 -1
  66. package/dist/modules/publicApi/openapiDocument.generated.js.map +1 -1
  67. package/dist/modules/recurring/TrackerSettingsController.js +2 -2
  68. package/dist/modules/recurring/TrackerSettingsController.js.map +1 -1
  69. package/dist/modules/releaseHealth/ReleaseHealthController.js +2 -2
  70. package/dist/modules/releaseHealth/ReleaseHealthController.js.map +1 -1
  71. package/dist/modules/runners/RunnerPoolController.js +2 -2
  72. package/dist/modules/runners/RunnerPoolController.js.map +1 -1
  73. package/dist/modules/sandbox/SandboxController.js +2 -2
  74. package/dist/modules/sandbox/SandboxController.js.map +1 -1
  75. package/dist/modules/settings/WorkspaceSettingsController.js +2 -2
  76. package/dist/modules/settings/WorkspaceSettingsController.js.map +1 -1
  77. package/dist/modules/sharedStack/SharedStackController.js +2 -2
  78. package/dist/modules/sharedStack/SharedStackController.js.map +1 -1
  79. package/dist/modules/slack/SlackController.js +2 -2
  80. package/dist/modules/slack/SlackController.js.map +1 -1
  81. package/dist/modules/tasks/TaskSourceController.js +2 -2
  82. package/dist/modules/tasks/TaskSourceController.js.map +1 -1
  83. package/dist/modules/testSecrets/TestSecretsController.js +2 -2
  84. package/dist/modules/testSecrets/TestSecretsController.js.map +1 -1
  85. package/dist/modules/toolServers/ToolServerController.d.ts +1 -1
  86. package/dist/modules/toolServers/ToolServerController.d.ts.map +1 -1
  87. package/dist/modules/toolServers/ToolServerController.js +3 -9
  88. package/dist/modules/toolServers/ToolServerController.js.map +1 -1
  89. package/dist/modules/tutorial/TutorialController.js +1 -1
  90. package/dist/modules/tutorial/TutorialController.js.map +1 -1
  91. package/dist/modules/validation/ValidationConfigController.d.ts.map +1 -1
  92. package/dist/modules/validation/ValidationConfigController.js +5 -2
  93. package/dist/modules/validation/ValidationConfigController.js.map +1 -1
  94. package/dist/modules/vcs/VcsConnectController.d.ts +9 -1
  95. package/dist/modules/vcs/VcsConnectController.d.ts.map +1 -1
  96. package/dist/modules/vcs/VcsConnectController.js +11 -3
  97. package/dist/modules/vcs/VcsConnectController.js.map +1 -1
  98. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRepoTarget.d.ts","sourceRoot":"","sources":["../../src/agents/resolveRepoTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,4BAA4B,EACjC,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAMhF,MAAM,WAAW,6BAA6B;IAC5C,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAA;IAC5E,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;IAChE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IAC7C;;;;OAIG;IACH,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;IAC7D;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAA;CACrD;AAuED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,GAAG,iBAAiB,CA6B7F;AAID;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAA;IAClB,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;OAKG;IACH,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC3D;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EAAE;AAC1B;;;;;;GAMG;AACH,aAAa,CAAC,EAAE,UAAU,KACvB,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAEjC,MAAM,WAAW,8BAA+B,SAAQ,6BAA6B;IACnF;;;;;OAKG;IACH,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,mBAAmB,CAAC,CAAA;CACpF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,kBAAkB,CAoFhG"}
1
+ {"version":3,"file":"resolveRepoTarget.d.ts","sourceRoot":"","sources":["../../src/agents/resolveRepoTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,4BAA4B,EACjC,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAMhF,MAAM,WAAW,6BAA6B;IAC5C,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAA;IAC5E,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;IAChE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IAC7C;;;;OAIG;IACH,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;IAC7D;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAA;CACrD;AA6FD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,GAAG,iBAAiB,CAqB7F;AAID;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAA;IAClB,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;OAKG;IACH,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC3D;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EAAE;AAC1B;;;;;;GAMG;AACH,aAAa,CAAC,EAAE,UAAU,KACvB,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAEjC,MAAM,WAAW,8BAA+B,SAAQ,6BAA6B;IACnF;;;;;OAKG;IACH,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,mBAAmB,CAAC,CAAA;CACpF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,kBAAkB,CAoFhG"}
@@ -49,6 +49,22 @@ function toRepoTarget(installationId, resolved) {
49
49
  ...(serviceDirectory ? { serviceDirectory } : {}),
50
50
  };
51
51
  }
52
+ /**
53
+ * The workspace's whole repo projection, read through the per-workspace cache when one is
54
+ * wired.
55
+ *
56
+ * Shared by BOTH builders below rather than open-coded in each: this is the hot, unbounded read
57
+ * on every dispatch, poll tick and report publish, and a resolver that misses the cache costs a
58
+ * full re-list every time while looking identical at the call site. The installation lookup and
59
+ * the ancestry walk stay live (both cheap / tree-depth-bounded), so a reparent or a service
60
+ * repo-link change needs no invalidation; only the projection's own writes do.
61
+ */
62
+ async function listProjection(deps, workspaceId) {
63
+ const { repoProjectionRepository, repoProjectionCache } = deps;
64
+ return repoProjectionCache
65
+ ? await repoProjectionCache.get(workspaceId, workspaceId, () => repoProjectionRepository.list(workspaceId))
66
+ : await repoProjectionRepository.list(workspaceId);
67
+ }
52
68
  /**
53
69
  * Resolve the repo linked to a running block's enclosing service, shared verbatim by
54
70
  * both runtime facades (Worker D1 + Node Drizzle/Postgres). Repos are linked at the
@@ -67,18 +83,12 @@ function toRepoTarget(installationId, resolved) {
67
83
  * because each wires its own resolver).
68
84
  */
69
85
  export function buildResolveRepoTarget(deps) {
70
- const { installationRepository, repoProjectionRepository, repoProjectionCache } = deps;
86
+ const { installationRepository } = deps;
71
87
  return async (workspaceId, blockId) => {
72
88
  const installation = await installationRepository.getByWorkspace(workspaceId);
73
89
  if (!installation)
74
90
  return null;
75
- // The whole-projection re-list is the hot, unbounded read here — cache it per
76
- // workspace. The installation lookup above and the block ancestry walk below stay
77
- // live (both cheap / tree-depth-bounded), so a reparent or service repo-link
78
- // change needs no cache invalidation; only the projection's own writes do.
79
- const repos = repoProjectionCache
80
- ? await repoProjectionCache.get(workspaceId, workspaceId, () => repoProjectionRepository.list(workspaceId))
81
- : await repoProjectionRepository.list(workspaceId);
91
+ const repos = await listProjection(deps, workspaceId);
82
92
  if (repos.length === 0)
83
93
  return null;
84
94
  const resolved = await walkToRepo(deps, workspaceId, blockId, indexRepos(repos));
@@ -109,7 +119,7 @@ export function buildResolveRepoTarget(deps) {
109
119
  * primary must resolve or we throw, exactly like the singular resolver.
110
120
  */
111
121
  export function buildResolveRepoTargets(deps) {
112
- const { installationRepository, repoProjectionRepository, serviceRepository } = deps;
122
+ const { installationRepository, serviceRepository } = deps;
113
123
  return async (workspaceId, primaryBlockId, involvedFrameIds, primaryTarget) => {
114
124
  // The installation id: reuse the pre-resolved primary target's when provided (skips a second
115
125
  // installation read), else read it here.
@@ -125,7 +135,7 @@ export function buildResolveRepoTargets(deps) {
125
135
  }
126
136
  installationId = installation.installationId;
127
137
  }
128
- const repos = await repoProjectionRepository.list(workspaceId);
138
+ const repos = await listProjection(deps, workspaceId);
129
139
  const index = indexRepos(repos);
130
140
  // The primary checkout: reuse the caller's already-resolved target when given (no ancestry
131
141
  // walk), else walk the primary block's ancestry from scratch.
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRepoTarget.js","sourceRoot":"","sources":["../../src/agents/resolveRepoTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveRepoTarget.js","sourceRoot":"","sources":["../../src/agents/resolveRepoTarget.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts CHANGED
@@ -9,4 +9,33 @@ import type { AppEnv } from './http/env.js';
9
9
  * `Bindings`; the controllers only touch `Variables` (`container`, `user`).
10
10
  */
11
11
  export declare function registerCoreControllers<E extends AppEnv>(app: Hono<E>): void;
12
+ /** The shared per-workspace mount prefix; every entry in {@link WORKSPACE_CONTROLLERS} hangs off it. */
13
+ export declare const WORKSPACE_MOUNT = "/workspaces/:workspaceId";
14
+ /** The shared per-account mount prefix. */
15
+ export declare const ACCOUNT_MOUNT = "/accounts/:accountId";
16
+ /** One controller and the shared prefix it mounts under. */
17
+ interface ControllerEntry {
18
+ /** Short name, so a guard test can say WHICH controller broke an invariant. */
19
+ name: string;
20
+ mount: typeof WORKSPACE_MOUNT | typeof ACCOUNT_MOUNT;
21
+ build: () => Hono<AppEnv>;
22
+ }
23
+ /**
24
+ * The per-workspace API, in registration order.
25
+ *
26
+ * ORDER IS SIGNIFICANT, and this list is the only statement of it: Hono composes a request from
27
+ * every matching entry in the order they were registered, so a controller's middleware also runs
28
+ * for routes registered after it. That is not merely a routing detail. Until each permission gate
29
+ * was narrowed to its own controller's path prefixes, the admin `use('*')` mounts in here reached
30
+ * every sibling below them, and a plain member was refused the human-gate writes (the story is on
31
+ * `mountWorkspacePermission`; `http/permissionMounts.test.ts` drives this list to pin it).
32
+ *
33
+ * A list rather than a run of `app.route` calls so that the guard test judges exactly what the app
34
+ * mounts: a controller added here is covered by construction, where one added by hand beside the
35
+ * loop below would not be.
36
+ */
37
+ export declare const WORKSPACE_CONTROLLERS: readonly ControllerEntry[];
38
+ /** The per-account API, in registration order (the account tiers of the two library surfaces). */
39
+ export declare const ACCOUNT_CONTROLLERS: readonly ControllerEntry[];
40
+ export {};
12
41
  //# sourceMappingURL=app.d.ts.map
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAgH3C;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAI5E"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAgH3C;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAI5E;AA0JD,wGAAwG;AACxG,eAAO,MAAM,eAAe,6BAA6B,CAAA;AACzD,2CAA2C;AAC3C,eAAO,MAAM,aAAa,yBAAyB,CAAA;AAEnD,4DAA4D;AAC5D,UAAU,eAAe;IACvB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,eAAe,GAAG,OAAO,aAAa,CAAA;IACpD,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,eAAe,EAoG3D,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,mBAAmB,EAAE,SAAS,eAAe,EAYzD,CAAA"}
package/dist/app.js CHANGED
@@ -112,7 +112,7 @@ import { notificationWebhookController } from './modules/notificationWebhook/Not
112
112
  */
113
113
  export function registerCoreControllers(app) {
114
114
  registerRootControllers(app);
115
- registerWorkspaceControllers(app);
115
+ registerControllers(app, WORKSPACE_CONTROLLERS);
116
116
  registerWebhookControllers(app);
117
117
  }
118
118
  /**
@@ -255,9 +255,7 @@ function registerRootControllers(app) {
255
255
  // Local-mode mothership login (`/local/mothership/connect`): exchanges a mothership session
256
256
  // for a cached machine token; 503 unless the local facade wired the connector.
257
257
  app.route('/', mothershipConnectController());
258
- app.route('/accounts/:accountId', fragmentLibraryController('account'));
259
- app.route('/accounts/:accountId', skillLibraryController());
260
- app.route('/accounts/:accountId', foundationalServiceController('account'));
258
+ registerControllers(app, ACCOUNT_CONTROLLERS);
261
259
  app.route('/', workspaceController());
262
260
  // Workspace-membership roster + access-mode management (workspace-rbac). Absolute
263
261
  // `/workspaces/:ws/members` + `/access-mode` paths (like the workspace root), so mounted at `/`;
@@ -268,98 +266,143 @@ function registerRootControllers(app) {
268
266
  // facade's realtime gateway.
269
267
  app.route('/', eventsController());
270
268
  }
269
+ /** The shared per-workspace mount prefix; every entry in {@link WORKSPACE_CONTROLLERS} hangs off it. */
270
+ export const WORKSPACE_MOUNT = '/workspaces/:workspaceId';
271
+ /** The shared per-account mount prefix. */
272
+ export const ACCOUNT_MOUNT = '/accounts/:accountId';
271
273
  /**
272
- * The per-workspace API every controller mounted under `/workspaces/:workspaceId`. Order is
273
- * significant (shared middleware/routing), so it mirrors the historical registration order.
274
+ * The per-workspace API, in registration order.
274
275
  *
275
- * Split into two ordered halves the board / run / human-gate surfaces, then the workspace
276
- * CONFIGURATION surfaces (policies, secrets, presets, integrations) purely for the
277
- * per-function statement budget. They are called back-to-back, so the mount order is
278
- * byte-for-byte what it was when this was one function.
279
- */
280
- function registerWorkspaceControllers(app) {
281
- registerWorkspaceRunControllers(app);
282
- registerWorkspaceConfigControllers(app);
283
- }
284
- /**
285
- * The first half of the per-workspace API: the board, the run/execution surfaces, and every
286
- * human-gate window a parked run opens. Mounted before {@link registerWorkspaceConfigControllers}.
276
+ * ORDER IS SIGNIFICANT, and this list is the only statement of it: Hono composes a request from
277
+ * every matching entry in the order they were registered, so a controller's middleware also runs
278
+ * for routes registered after it. That is not merely a routing detail. Until each permission gate
279
+ * was narrowed to its own controller's path prefixes, the admin `use('*')` mounts in here reached
280
+ * every sibling below them, and a plain member was refused the human-gate writes (the story is on
281
+ * `mountWorkspacePermission`; `http/permissionMounts.test.ts` drives this list to pin it).
282
+ *
283
+ * A list rather than a run of `app.route` calls so that the guard test judges exactly what the app
284
+ * mounts: a controller added here is covered by construction, where one added by hand beside the
285
+ * loop below would not be.
287
286
  */
288
- function registerWorkspaceRunControllers(app) {
289
- // Per-workspace API.
290
- app.route('/workspaces/:workspaceId', boardController());
291
- app.route('/workspaces/:workspaceId', pipelineController());
292
- app.route('/workspaces/:workspaceId', executionController());
293
- app.route('/workspaces/:workspaceId', documentSourceController());
294
- app.route('/workspaces/:workspaceId', taskSourceController());
295
- app.route('/workspaces/:workspaceId', bugHuntController());
296
- app.route('/workspaces/:workspaceId', environmentController());
297
- app.route('/workspaces/:workspaceId', runnerPoolController());
298
- app.route('/workspaces/:workspaceId', provisioningLogController());
299
- app.route('/workspaces/:workspaceId', vendorCredentialController());
300
- app.route('/workspaces/:workspaceId', workspaceApiKeyController());
301
- app.route('/workspaces/:workspaceId', publicApiKeyController());
287
+ export const WORKSPACE_CONTROLLERS = [
288
+ { name: 'board', mount: WORKSPACE_MOUNT, build: () => boardController() },
289
+ { name: 'pipeline', mount: WORKSPACE_MOUNT, build: () => pipelineController() },
290
+ { name: 'execution', mount: WORKSPACE_MOUNT, build: () => executionController() },
291
+ { name: 'documentSource', mount: WORKSPACE_MOUNT, build: () => documentSourceController() },
292
+ { name: 'taskSource', mount: WORKSPACE_MOUNT, build: () => taskSourceController() },
293
+ { name: 'bugHunt', mount: WORKSPACE_MOUNT, build: () => bugHuntController() },
294
+ { name: 'environment', mount: WORKSPACE_MOUNT, build: () => environmentController() },
295
+ { name: 'runnerPool', mount: WORKSPACE_MOUNT, build: () => runnerPoolController() },
296
+ { name: 'provisioningLog', mount: WORKSPACE_MOUNT, build: () => provisioningLogController() },
297
+ { name: 'vendorCredential', mount: WORKSPACE_MOUNT, build: () => vendorCredentialController() },
298
+ { name: 'workspaceApiKey', mount: WORKSPACE_MOUNT, build: () => workspaceApiKeyController() },
299
+ { name: 'publicApiKey', mount: WORKSPACE_MOUNT, build: () => publicApiKeyController() },
302
300
  // Outbound notification webhook: the endpoint a headless integration registers to be PUSHED the
303
301
  // workspace's notifications (chiefly a run parking on a human decision) instead of polling.
304
- app.route('/workspaces/:workspaceId', notificationWebhookController());
305
- app.route('/workspaces/:workspaceId', bootstrapController());
306
- app.route('/workspaces/:workspaceId', agentRunController());
302
+ {
303
+ name: 'notificationWebhook',
304
+ mount: WORKSPACE_MOUNT,
305
+ build: () => notificationWebhookController(),
306
+ },
307
+ { name: 'bootstrap', mount: WORKSPACE_MOUNT, build: () => bootstrapController() },
308
+ { name: 'agentRun', mount: WORKSPACE_MOUNT, build: () => agentRunController() },
307
309
  // Binary-artifact API (screenshots + reference uploads) for the visual-confirmation
308
310
  // gate; 503 when no blob storage is configured.
309
- app.route('/workspaces/:workspaceId', artifactController());
310
- app.route('/workspaces/:workspaceId', requirementReviewController());
311
- app.route('/workspaces/:workspaceId', docInterviewController());
312
- app.route('/workspaces/:workspaceId', followUpController());
313
- app.route('/workspaces/:workspaceId', forkDecisionController());
314
- app.route('/workspaces/:workspaceId', inputGateController());
315
- app.route('/workspaces/:workspaceId', judgeController());
316
- app.route('/workspaces/:workspaceId', prReviewController());
317
- app.route('/workspaces/:workspaceId', kaizenController());
318
- app.route('/workspaces/:workspaceId', humanTestController());
319
- app.route('/workspaces/:workspaceId', visualConfirmationController());
320
- app.route('/workspaces/:workspaceId', humanReviewController());
321
- app.route('/workspaces/:workspaceId', consensusController());
322
- app.route('/workspaces/:workspaceId', consensusGroupController());
323
- app.route('/workspaces/:workspaceId', clarityReviewController());
324
- app.route('/workspaces/:workspaceId', brainstormController());
325
- app.route('/workspaces/:workspaceId', initiativeController());
326
- app.route('/workspaces/:workspaceId', notificationController());
327
- }
328
- /**
329
- * The second half of the per-workspace API: the workspace's CONFIGURATION surfaces — merge and
330
- * risk policy, shared infra, secrets, presets, and the per-provider integrations. Mounted
331
- * immediately after {@link registerWorkspaceRunControllers}, preserving the historical order.
332
- */
333
- function registerWorkspaceConfigControllers(app) {
334
- app.route('/workspaces/:workspaceId', riskPolicyController());
335
- app.route('/workspaces/:workspaceId', mergeTrackRecordController());
336
- app.route('/workspaces/:workspaceId', sharedStackController());
337
- app.route('/workspaces/:workspaceId', preflightController());
338
- app.route('/workspaces/:workspaceId', sandboxController());
339
- app.route('/workspaces/:workspaceId', workspaceSettingsController());
340
- app.route('/workspaces/:workspaceId', releaseHealthController());
341
- app.route('/workspaces/:workspaceId', testSecretsController());
342
- app.route('/workspaces/:workspaceId', capabilityCredentialsController());
343
- app.route('/workspaces/:workspaceId', toolServerController());
344
- app.route('/workspaces/:workspaceId', validationConfigController());
345
- app.route('/workspaces/:workspaceId', packageRegistriesController());
311
+ { name: 'artifact', mount: WORKSPACE_MOUNT, build: () => artifactController() },
312
+ { name: 'requirementReview', mount: WORKSPACE_MOUNT, build: () => requirementReviewController() },
313
+ { name: 'docInterview', mount: WORKSPACE_MOUNT, build: () => docInterviewController() },
314
+ { name: 'followUp', mount: WORKSPACE_MOUNT, build: () => followUpController() },
315
+ { name: 'forkDecision', mount: WORKSPACE_MOUNT, build: () => forkDecisionController() },
316
+ { name: 'inputGate', mount: WORKSPACE_MOUNT, build: () => inputGateController() },
317
+ { name: 'judge', mount: WORKSPACE_MOUNT, build: () => judgeController() },
318
+ { name: 'prReview', mount: WORKSPACE_MOUNT, build: () => prReviewController() },
319
+ { name: 'kaizen', mount: WORKSPACE_MOUNT, build: () => kaizenController() },
320
+ { name: 'humanTest', mount: WORKSPACE_MOUNT, build: () => humanTestController() },
321
+ {
322
+ name: 'visualConfirmation',
323
+ mount: WORKSPACE_MOUNT,
324
+ build: () => visualConfirmationController(),
325
+ },
326
+ { name: 'humanReview', mount: WORKSPACE_MOUNT, build: () => humanReviewController() },
327
+ { name: 'consensus', mount: WORKSPACE_MOUNT, build: () => consensusController() },
328
+ { name: 'consensusGroup', mount: WORKSPACE_MOUNT, build: () => consensusGroupController() },
329
+ { name: 'clarityReview', mount: WORKSPACE_MOUNT, build: () => clarityReviewController() },
330
+ { name: 'brainstorm', mount: WORKSPACE_MOUNT, build: () => brainstormController() },
331
+ { name: 'initiative', mount: WORKSPACE_MOUNT, build: () => initiativeController() },
332
+ { name: 'notification', mount: WORKSPACE_MOUNT, build: () => notificationController() },
333
+ // ---- the workspace CONFIGURATION surfaces (policies, secrets, presets, integrations) ----
334
+ { name: 'riskPolicy', mount: WORKSPACE_MOUNT, build: () => riskPolicyController() },
335
+ { name: 'mergeTrackRecord', mount: WORKSPACE_MOUNT, build: () => mergeTrackRecordController() },
336
+ { name: 'sharedStack', mount: WORKSPACE_MOUNT, build: () => sharedStackController() },
337
+ { name: 'preflight', mount: WORKSPACE_MOUNT, build: () => preflightController() },
338
+ { name: 'sandbox', mount: WORKSPACE_MOUNT, build: () => sandboxController() },
339
+ { name: 'workspaceSettings', mount: WORKSPACE_MOUNT, build: () => workspaceSettingsController() },
340
+ { name: 'releaseHealth', mount: WORKSPACE_MOUNT, build: () => releaseHealthController() },
341
+ { name: 'testSecrets', mount: WORKSPACE_MOUNT, build: () => testSecretsController() },
342
+ {
343
+ name: 'capabilityCredentials',
344
+ mount: WORKSPACE_MOUNT,
345
+ build: () => capabilityCredentialsController(),
346
+ },
347
+ { name: 'toolServer', mount: WORKSPACE_MOUNT, build: () => toolServerController() },
348
+ { name: 'validationConfig', mount: WORKSPACE_MOUNT, build: () => validationConfigController() },
349
+ { name: 'packageRegistries', mount: WORKSPACE_MOUNT, build: () => packageRegistriesController() },
346
350
  // Browsable frontend preview (local/node); 503 on the Worker (frontendPreview unsupported).
347
- app.route('/workspaces/:workspaceId', previewController());
348
- app.route('/workspaces/:workspaceId', incidentEnrichmentController());
349
- app.route('/workspaces/:workspaceId', modelPresetController());
350
- app.route('/workspaces/:workspaceId', agentPromptController());
351
- app.route('/workspaces/:workspaceId', workspaceAgentSettingsController());
352
- app.route('/workspaces/:workspaceId', serviceFragmentDefaultsController());
353
- app.route('/workspaces/:workspaceId', recurringPipelineController());
354
- app.route('/workspaces/:workspaceId', trackerSettingsController());
355
- app.route('/workspaces/:workspaceId', serviceMountController());
356
- app.route('/workspaces/:workspaceId', serviceSpecController());
357
- app.route('/workspaces/:workspaceId', fragmentLibraryController('workspace'));
358
- app.route('/workspaces/:workspaceId', foundationalServiceController('workspace'));
359
- app.route('/workspaces/:workspaceId', githubController());
360
- app.route('/workspaces/:workspaceId', gitlabController());
361
- app.route('/workspaces/:workspaceId', vcsConnectController());
362
- app.route('/workspaces/:workspaceId', slackController());
351
+ { name: 'preview', mount: WORKSPACE_MOUNT, build: () => previewController() },
352
+ {
353
+ name: 'incidentEnrichment',
354
+ mount: WORKSPACE_MOUNT,
355
+ build: () => incidentEnrichmentController(),
356
+ },
357
+ { name: 'modelPreset', mount: WORKSPACE_MOUNT, build: () => modelPresetController() },
358
+ { name: 'agentPrompt', mount: WORKSPACE_MOUNT, build: () => agentPromptController() },
359
+ {
360
+ name: 'workspaceAgentSettings',
361
+ mount: WORKSPACE_MOUNT,
362
+ build: () => workspaceAgentSettingsController(),
363
+ },
364
+ {
365
+ name: 'serviceFragmentDefaults',
366
+ mount: WORKSPACE_MOUNT,
367
+ build: () => serviceFragmentDefaultsController(),
368
+ },
369
+ { name: 'recurringPipeline', mount: WORKSPACE_MOUNT, build: () => recurringPipelineController() },
370
+ { name: 'trackerSettings', mount: WORKSPACE_MOUNT, build: () => trackerSettingsController() },
371
+ { name: 'serviceMount', mount: WORKSPACE_MOUNT, build: () => serviceMountController() },
372
+ { name: 'serviceSpec', mount: WORKSPACE_MOUNT, build: () => serviceSpecController() },
373
+ {
374
+ name: 'fragmentLibrary',
375
+ mount: WORKSPACE_MOUNT,
376
+ build: () => fragmentLibraryController('workspace'),
377
+ },
378
+ {
379
+ name: 'foundationalService',
380
+ mount: WORKSPACE_MOUNT,
381
+ build: () => foundationalServiceController('workspace'),
382
+ },
383
+ { name: 'github', mount: WORKSPACE_MOUNT, build: () => githubController() },
384
+ { name: 'gitlab', mount: WORKSPACE_MOUNT, build: () => gitlabController() },
385
+ { name: 'vcsConnect', mount: WORKSPACE_MOUNT, build: () => vcsConnectController() },
386
+ { name: 'slack', mount: WORKSPACE_MOUNT, build: () => slackController() },
387
+ ];
388
+ /** The per-account API, in registration order (the account tiers of the two library surfaces). */
389
+ export const ACCOUNT_CONTROLLERS = [
390
+ {
391
+ name: 'fragmentLibrary',
392
+ mount: ACCOUNT_MOUNT,
393
+ build: () => fragmentLibraryController('account'),
394
+ },
395
+ { name: 'skillLibrary', mount: ACCOUNT_MOUNT, build: () => skillLibraryController() },
396
+ {
397
+ name: 'foundationalService',
398
+ mount: ACCOUNT_MOUNT,
399
+ build: () => foundationalServiceController('account'),
400
+ },
401
+ ];
402
+ /** Mount every controller in `entries` on its own shared prefix, preserving list order. */
403
+ function registerControllers(app, entries) {
404
+ for (const entry of entries)
405
+ app.route(entry.mount, entry.build());
363
406
  }
364
407
  /**
365
408
  * The provider-facing webhook receivers + OAuth redirect callbacks (GitHub / VCS / Slack / Linear);
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { BlockRepository, GitHubClient, PrReportPublishResult, PrReportTarget, PrVerificationReportPublisher } from '@cat-factory/kernel';
1
+ import type { BlockRepository, GitHubClient, Logger, PrReportPublishResult, PrReportTarget, PrVerificationReportPublisher } from '@cat-factory/kernel';
2
2
  import type { ResolveRepoOrigin, ResolveRepoTarget } from '../agents/ContainerAgentExecutor.js';
3
+ import type { ResolveRepoTargets } from '../agents/resolveRepoTarget.js';
3
4
  export interface GitHubPrReportPublisherDependencies {
4
5
  /**
5
6
  * The ENGINE VCS client (`githubClient ?? gitlabEngineClient` in every facade), so a
@@ -9,8 +10,16 @@ export interface GitHubPrReportPublisherDependencies {
9
10
  githubClient: GitHubClient;
10
11
  /** Resolves the repo (connection + owner/name) the block's work targets. */
11
12
  resolveRepoTarget: ResolveRepoTarget;
12
- /** Reads the block's recorded PR ref (number). */
13
+ /** Reads the block's recorded PR refs (own-service + peers). */
13
14
  blockRepository: BlockRepository;
15
+ /**
16
+ * Resolves EVERY repo a multi-repo run touches, in one call, so a peer PR's report can be
17
+ * addressed (its repo's connection is what the write needs). Optional and absent-tolerant:
18
+ * a deployment with the involved-services coding fan-out switched off never opens a peer PR
19
+ * in the first place, so "no peers resolvable" and "no peers" coincide rather than hiding a
20
+ * report that was owed.
21
+ */
22
+ resolveRepoTargets?: ResolveRepoTargets;
14
23
  /**
15
24
  * Maps a resolved repo to its origin, whose `provider` the report states. Optional, and
16
25
  * defaulted the same way every other clone/dispatch path defaults it (`githubRepoOrigin`), so
@@ -18,10 +27,16 @@ export interface GitHubPrReportPublisherDependencies {
18
27
  * rather than this adapter hard-coding `'github'` behind the engine's back.
19
28
  */
20
29
  resolveRepoOrigin?: ResolveRepoOrigin;
30
+ /**
31
+ * Optional logger for the one best-effort path here: PEER target resolution, which is
32
+ * swallowed so a broken peer linkage cannot cost the own-service report. Wire it, or that
33
+ * swallow leaves no trace and the peers simply stop getting reports.
34
+ */
35
+ logger?: Logger;
21
36
  }
22
37
  /**
23
- * Upserts the engine's verification report onto a block's pull request as a marker-delimited
24
- * section of the PR description (see `docs/initiatives/pr-verification-report.md`, decision
38
+ * Upserts the engine's verification report onto a block's pull requests as a marker-delimited
39
+ * section of each PR description (see `docs/initiatives/pr-verification-report.md`, decision
25
40
  * D1: the markers ARE the section's identity, so the write is idempotent across re-runs,
26
41
  * retries and replayed durable steps with no persisted state at all).
27
42
  *
@@ -29,16 +44,53 @@ export interface GitHubPrReportPublisherDependencies {
29
44
  * as it is right now, so a human who edited the description while the run was in flight keeps
30
45
  * their edit. An unchanged body short-circuits before the remote write.
31
46
  *
32
- * Scoped to the block's OWN-service pull request. A multi-repo task's peer PRs are a phase-2
33
- * item on the initiative tracker reporting the own-service run's evidence onto a peer repo's
34
- * PR without per-repo composition would be misleading, so it is deliberately not done here.
47
+ * On a MULTI-REPO run (service-connections phase 3) the task opens one PR per repo it changed,
48
+ * and every one of them is a target: a reviewer on a connected service's PR is looking at part
49
+ * of this change and is as entitled to the run's evidence as one on the own-service PR. The
50
+ * engine composes a distinct report per target — the own-service-only sections are withheld
51
+ * from a peer's copy rather than copied onto it.
52
+ *
53
+ * **All addressing happens in {@link resolveTargets}, once.** Each target it returns carries the
54
+ * connection and repo its write needs, so `publish` reads no repository and a run with N pull
55
+ * requests costs one resolution per settlement rather than N. That also removes the question
56
+ * `publish` would otherwise have to answer on every call ("is this still the block's PR?") on a
57
+ * hook that fires on every settled step.
35
58
  */
36
59
  export declare class GitHubPrReportPublisher implements PrVerificationReportPublisher {
37
60
  private readonly deps;
38
61
  constructor(deps: GitHubPrReportPublisherDependencies);
39
- resolveTarget(workspaceId: string, blockId: string): Promise<PrReportTarget | null>;
40
- /** The PR number + repo a block's report targets, or null when either is unresolved. */
41
- private resolve;
42
- publish(workspaceId: string, blockId: string, section: string): Promise<PrReportPublishResult>;
62
+ /**
63
+ * Every pull request of the block's run, own-service first, each addressed for writing.
64
+ *
65
+ * ONE block read and ONE repo resolution for the whole set: the own-service target is
66
+ * resolved first (it is needed regardless, and lets the multi-repo resolver skip re-walking
67
+ * the block's ancestry), then a single `resolveRepoTargets` call covers every peer. Resolving
68
+ * per recorded peer PR would be the N+1 this codebase bans.
69
+ */
70
+ resolveTargets(workspaceId: string, blockId: string): Promise<PrReportTarget[]>;
71
+ /**
72
+ * The run's PEER pull requests, addressed through the multi-repo repo resolution.
73
+ *
74
+ * A recorded peer PR is only targetable when two things line up: it carries a `number` (the
75
+ * unit the description write addresses, absent on a ref that was only ever a URL) and its
76
+ * repo is in the resolved checkout set (which is what supplies the connection to write
77
+ * through, and is the platform's own answer about which repos this run touched). A peer that
78
+ * satisfies neither is skipped rather than guessed at — the repo name on a recorded peer PR
79
+ * is harness-reported, and writing a report onto a pull request we cannot confirm the identity
80
+ * of is the one failure mode worse than not writing it.
81
+ */
82
+ private peerTargets;
83
+ /**
84
+ * A resolved repo + PR number as a self-describing target: which PR, in which repo, on which
85
+ * provider, through which connection.
86
+ *
87
+ * The connection names the DEPLOYMENT'S provider, not this class's name: a GitLab deployment
88
+ * reaches this adapter through `vcsBackedGitHubClient`, and a target that claimed `github`
89
+ * would mis-route the day a native GitLab publisher selects its adapter from it. Both providers
90
+ * ride the same numeric connection id, because a GitLab workspace's PAT connect reuses the
91
+ * `github_installations` row this id comes from.
92
+ */
93
+ private describe;
94
+ publish(_workspaceId: string, target: PrReportTarget, section: string): Promise<PrReportPublishResult>;
43
95
  }
44
96
  //# sourceMappingURL=GitHubPrReportPublisher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubPrReportPublisher.d.ts","sourceRoot":"","sources":["../../src/github/GitHubPrReportPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,6BAA6B,EAC9B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qCAAqC,CAAA;AAG5C,MAAM,WAAW,mCAAmC;IAClD;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAA;IAC1B,4EAA4E;IAC5E,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,kDAAkD;IAClD,eAAe,EAAE,eAAe,CAAA;IAChC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAwB,YAAW,6BAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,mCAAmC,EAAI;IAEpE,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMxF;IAED,wFAAwF;YAC1E,OAAO;IAWf,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAoBhC;CACF"}
1
+ {"version":3,"file":"GitHubPrReportPublisher.d.ts","sourceRoot":"","sources":["../../src/github/GitHubPrReportPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,cAAc,EACd,6BAA6B,EAE9B,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAIxE,MAAM,WAAW,mCAAmC;IAClD;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAA;IAC1B,4EAA4E;IAC5E,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,gEAAgE;IAChE,eAAe,EAAE,eAAe,CAAA;IAChC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAwBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,uBAAwB,YAAW,6BAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,mCAAmC,EAAI;IAE1E;;;;;;;OAOG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAiCpF;IAED;;;;;;;;;;OAUG;YACW,WAAW;IAuCzB;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ;IAiBV,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAehC;CACF"}