@cat-factory/server 0.166.2 → 0.169.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 (232) hide show
  1. package/dist/agents/ContainerAgentExecutor.d.ts.map +1 -1
  2. package/dist/agents/ContainerAgentExecutor.js +15 -1
  3. package/dist/agents/ContainerAgentExecutor.js.map +1 -1
  4. package/dist/agents/ContainerEnvConfigRepairer.d.ts.map +1 -1
  5. package/dist/agents/ContainerEnvConfigRepairer.js +3 -0
  6. package/dist/agents/ContainerEnvConfigRepairer.js.map +1 -1
  7. package/dist/agents/ContainerRepoBootstrapper.d.ts.map +1 -1
  8. package/dist/agents/ContainerRepoBootstrapper.js +3 -0
  9. package/dist/agents/ContainerRepoBootstrapper.js.map +1 -1
  10. package/dist/agents/modelProviderResolver.d.ts +9 -1
  11. package/dist/agents/modelProviderResolver.d.ts.map +1 -1
  12. package/dist/agents/modelProviderResolver.js +1 -0
  13. package/dist/agents/modelProviderResolver.js.map +1 -1
  14. package/dist/agents/storeAgentContextGate.d.ts +36 -0
  15. package/dist/agents/storeAgentContextGate.d.ts.map +1 -0
  16. package/dist/agents/storeAgentContextGate.js +36 -0
  17. package/dist/agents/storeAgentContextGate.js.map +1 -0
  18. package/dist/auth/middleware.d.ts.map +1 -1
  19. package/dist/auth/middleware.js +2 -1
  20. package/dist/auth/middleware.js.map +1 -1
  21. package/dist/http/errorHandler.d.ts.map +1 -1
  22. package/dist/http/errorHandler.js +6 -0
  23. package/dist/http/errorHandler.js.map +1 -1
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +5 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/modules/accounts/AccountController.d.ts.map +1 -1
  29. package/dist/modules/accounts/AccountController.js +37 -31
  30. package/dist/modules/accounts/AccountController.js.map +1 -1
  31. package/dist/modules/agentRuns/AgentRunController.d.ts.map +1 -1
  32. package/dist/modules/agentRuns/AgentRunController.js +9 -6
  33. package/dist/modules/agentRuns/AgentRunController.js.map +1 -1
  34. package/dist/modules/artifacts/ArtifactController.d.ts.map +1 -1
  35. package/dist/modules/artifacts/ArtifactController.js +8 -5
  36. package/dist/modules/artifacts/ArtifactController.js.map +1 -1
  37. package/dist/modules/artifacts/HarnessArtifactController.d.ts.map +1 -1
  38. package/dist/modules/artifacts/HarnessArtifactController.js +5 -4
  39. package/dist/modules/artifacts/HarnessArtifactController.js.map +1 -1
  40. package/dist/modules/auth/AuthController.d.ts.map +1 -1
  41. package/dist/modules/auth/AuthController.js +48 -50
  42. package/dist/modules/auth/AuthController.js.map +1 -1
  43. package/dist/modules/bootstrap/BootstrapController.d.ts.map +1 -1
  44. package/dist/modules/bootstrap/BootstrapController.js +12 -9
  45. package/dist/modules/bootstrap/BootstrapController.js.map +1 -1
  46. package/dist/modules/brainstorm/BrainstormController.d.ts.map +1 -1
  47. package/dist/modules/brainstorm/BrainstormController.js +12 -9
  48. package/dist/modules/brainstorm/BrainstormController.js.map +1 -1
  49. package/dist/modules/bugHunt/BugHuntController.d.ts.map +1 -1
  50. package/dist/modules/bugHunt/BugHuntController.js +7 -5
  51. package/dist/modules/bugHunt/BugHuntController.js.map +1 -1
  52. package/dist/modules/clarity/ClarityReviewController.d.ts.map +1 -1
  53. package/dist/modules/clarity/ClarityReviewController.js +12 -9
  54. package/dist/modules/clarity/ClarityReviewController.js.map +1 -1
  55. package/dist/modules/docInterview/DocInterviewController.d.ts.map +1 -1
  56. package/dist/modules/docInterview/DocInterviewController.js +8 -5
  57. package/dist/modules/docInterview/DocInterviewController.js.map +1 -1
  58. package/dist/modules/documents/DocumentSourceController.d.ts.map +1 -1
  59. package/dist/modules/documents/DocumentSourceController.js +17 -15
  60. package/dist/modules/documents/DocumentSourceController.js.map +1 -1
  61. package/dist/modules/environments/EnvironmentController.d.ts.map +1 -1
  62. package/dist/modules/environments/EnvironmentController.js +33 -33
  63. package/dist/modules/environments/EnvironmentController.js.map +1 -1
  64. package/dist/modules/environments/EnvironmentUserHandlerController.d.ts.map +1 -1
  65. package/dist/modules/environments/EnvironmentUserHandlerController.js +13 -9
  66. package/dist/modules/environments/EnvironmentUserHandlerController.js.map +1 -1
  67. package/dist/modules/fragmentLibrary/FragmentLibraryController.d.ts.map +1 -1
  68. package/dist/modules/fragmentLibrary/FragmentLibraryController.js +32 -41
  69. package/dist/modules/fragmentLibrary/FragmentLibraryController.js.map +1 -1
  70. package/dist/modules/github/GitHubController.d.ts.map +1 -1
  71. package/dist/modules/github/GitHubController.js +26 -23
  72. package/dist/modules/github/GitHubController.js.map +1 -1
  73. package/dist/modules/github/GitHubWebhookController.d.ts.map +1 -1
  74. package/dist/modules/github/GitHubWebhookController.js +5 -4
  75. package/dist/modules/github/GitHubWebhookController.js.map +1 -1
  76. package/dist/modules/gitlab/GitLabController.d.ts.map +1 -1
  77. package/dist/modules/gitlab/GitLabController.js +7 -4
  78. package/dist/modules/gitlab/GitLabController.js.map +1 -1
  79. package/dist/modules/incidentEnrichment/IncidentEnrichmentController.d.ts.map +1 -1
  80. package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js +7 -9
  81. package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js.map +1 -1
  82. package/dist/modules/initiatives/InitiativeController.d.ts.map +1 -1
  83. package/dist/modules/initiatives/InitiativeController.js +20 -17
  84. package/dist/modules/initiatives/InitiativeController.js.map +1 -1
  85. package/dist/modules/kaizen/KaizenController.d.ts.map +1 -1
  86. package/dist/modules/kaizen/KaizenController.js +6 -3
  87. package/dist/modules/kaizen/KaizenController.js.map +1 -1
  88. package/dist/modules/llmProxy/LlmProxyController.d.ts.map +1 -1
  89. package/dist/modules/llmProxy/LlmProxyController.js +309 -222
  90. package/dist/modules/llmProxy/LlmProxyController.js.map +1 -1
  91. package/dist/modules/localModels/LocalModelEndpointController.d.ts.map +1 -1
  92. package/dist/modules/localModels/LocalModelEndpointController.js +15 -10
  93. package/dist/modules/localModels/LocalModelEndpointController.js.map +1 -1
  94. package/dist/modules/localSettings/LocalSettingsController.d.ts.map +1 -1
  95. package/dist/modules/localSettings/LocalSettingsController.js +6 -8
  96. package/dist/modules/localSettings/LocalSettingsController.js.map +1 -1
  97. package/dist/modules/localSettings/MothershipConnectController.d.ts.map +1 -1
  98. package/dist/modules/localSettings/MothershipConnectController.js +2 -6
  99. package/dist/modules/localSettings/MothershipConnectController.js.map +1 -1
  100. package/dist/modules/merge/MergeTrackRecordController.d.ts.map +1 -1
  101. package/dist/modules/merge/MergeTrackRecordController.js +6 -3
  102. package/dist/modules/merge/MergeTrackRecordController.js.map +1 -1
  103. package/dist/modules/merge/RiskPolicyController.d.ts.map +1 -1
  104. package/dist/modules/merge/RiskPolicyController.js +9 -6
  105. package/dist/modules/merge/RiskPolicyController.js.map +1 -1
  106. package/dist/modules/modelPresets/ModelPresetController.d.ts.map +1 -1
  107. package/dist/modules/modelPresets/ModelPresetController.js +9 -6
  108. package/dist/modules/modelPresets/ModelPresetController.js.map +1 -1
  109. package/dist/modules/notificationWebhook/NotificationWebhookController.d.ts.map +1 -1
  110. package/dist/modules/notificationWebhook/NotificationWebhookController.js +7 -4
  111. package/dist/modules/notificationWebhook/NotificationWebhookController.js.map +1 -1
  112. package/dist/modules/notifications/NotificationController.d.ts.map +1 -1
  113. package/dist/modules/notifications/NotificationController.js +7 -4
  114. package/dist/modules/notifications/NotificationController.js.map +1 -1
  115. package/dist/modules/observability/PlatformObservabilityController.d.ts.map +1 -1
  116. package/dist/modules/observability/PlatformObservabilityController.js +6 -8
  117. package/dist/modules/observability/PlatformObservabilityController.js.map +1 -1
  118. package/dist/modules/openrouter/OpenRouterCatalogController.d.ts.map +1 -1
  119. package/dist/modules/openrouter/OpenRouterCatalogController.js +13 -8
  120. package/dist/modules/openrouter/OpenRouterCatalogController.js.map +1 -1
  121. package/dist/modules/packageRegistries/PackageRegistriesController.d.ts.map +1 -1
  122. package/dist/modules/packageRegistries/PackageRegistriesController.js +7 -9
  123. package/dist/modules/packageRegistries/PackageRegistriesController.js.map +1 -1
  124. package/dist/modules/persistence/GitHubDelegationController.d.ts.map +1 -1
  125. package/dist/modules/persistence/GitHubDelegationController.js +3 -7
  126. package/dist/modules/persistence/GitHubDelegationController.js.map +1 -1
  127. package/dist/modules/preflight/PreflightController.d.ts.map +1 -1
  128. package/dist/modules/preflight/PreflightController.js +5 -7
  129. package/dist/modules/preflight/PreflightController.js.map +1 -1
  130. package/dist/modules/preview/PreviewController.d.ts.map +1 -1
  131. package/dist/modules/preview/PreviewController.js +7 -9
  132. package/dist/modules/preview/PreviewController.js.map +1 -1
  133. package/dist/modules/providers/ApiKeyController.d.ts.map +1 -1
  134. package/dist/modules/providers/ApiKeyController.js +19 -14
  135. package/dist/modules/providers/ApiKeyController.js.map +1 -1
  136. package/dist/modules/providers/PersonalSubscriptionController.d.ts.map +1 -1
  137. package/dist/modules/providers/PersonalSubscriptionController.js +13 -8
  138. package/dist/modules/providers/PersonalSubscriptionController.js.map +1 -1
  139. package/dist/modules/providers/UserSecretController.d.ts.map +1 -1
  140. package/dist/modules/providers/UserSecretController.js +17 -12
  141. package/dist/modules/providers/UserSecretController.js.map +1 -1
  142. package/dist/modules/providers/VendorCredentialController.d.ts.map +1 -1
  143. package/dist/modules/providers/VendorCredentialController.js +8 -10
  144. package/dist/modules/providers/VendorCredentialController.js.map +1 -1
  145. package/dist/modules/provisioningLogs/ProvisioningLogController.d.ts.map +1 -1
  146. package/dist/modules/provisioningLogs/ProvisioningLogController.js +5 -2
  147. package/dist/modules/provisioningLogs/ProvisioningLogController.js.map +1 -1
  148. package/dist/modules/publicApi/PublicApiController.js +4 -4
  149. package/dist/modules/publicApi/PublicApiController.js.map +1 -1
  150. package/dist/modules/publicApi/PublicApiKeyController.d.ts.map +1 -1
  151. package/dist/modules/publicApi/PublicApiKeyController.js +7 -4
  152. package/dist/modules/publicApi/PublicApiKeyController.js.map +1 -1
  153. package/dist/modules/recurring/RecurringPipelineController.d.ts.map +1 -1
  154. package/dist/modules/recurring/RecurringPipelineController.js +10 -7
  155. package/dist/modules/recurring/RecurringPipelineController.js.map +1 -1
  156. package/dist/modules/recurring/TrackerSettingsController.d.ts.map +1 -1
  157. package/dist/modules/recurring/TrackerSettingsController.js +6 -3
  158. package/dist/modules/recurring/TrackerSettingsController.js.map +1 -1
  159. package/dist/modules/releaseHealth/ReleaseHealthController.d.ts.map +1 -1
  160. package/dist/modules/releaseHealth/ReleaseHealthController.js +10 -7
  161. package/dist/modules/releaseHealth/ReleaseHealthController.js.map +1 -1
  162. package/dist/modules/reports/ReportsController.d.ts.map +1 -1
  163. package/dist/modules/reports/ReportsController.js +6 -3
  164. package/dist/modules/reports/ReportsController.js.map +1 -1
  165. package/dist/modules/requirements/RequirementReviewController.d.ts.map +1 -1
  166. package/dist/modules/requirements/RequirementReviewController.js +16 -13
  167. package/dist/modules/requirements/RequirementReviewController.js.map +1 -1
  168. package/dist/modules/runners/RunnerPoolController.d.ts.map +1 -1
  169. package/dist/modules/runners/RunnerPoolController.js +10 -7
  170. package/dist/modules/runners/RunnerPoolController.js.map +1 -1
  171. package/dist/modules/sandbox/SandboxController.d.ts.map +1 -1
  172. package/dist/modules/sandbox/SandboxController.js +17 -14
  173. package/dist/modules/sandbox/SandboxController.js.map +1 -1
  174. package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.d.ts.map +1 -1
  175. package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.js +6 -3
  176. package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.js.map +1 -1
  177. package/dist/modules/services/ServiceMountController.d.ts.map +1 -1
  178. package/dist/modules/services/ServiceMountController.js +9 -6
  179. package/dist/modules/services/ServiceMountController.js.map +1 -1
  180. package/dist/modules/settings/WorkspaceSettingsController.d.ts.map +1 -1
  181. package/dist/modules/settings/WorkspaceSettingsController.js +6 -3
  182. package/dist/modules/settings/WorkspaceSettingsController.js.map +1 -1
  183. package/dist/modules/sharedStack/SharedStackController.d.ts.map +1 -1
  184. package/dist/modules/sharedStack/SharedStackController.js +11 -8
  185. package/dist/modules/sharedStack/SharedStackController.js.map +1 -1
  186. package/dist/modules/skillLibrary/SkillLibraryController.d.ts.map +1 -1
  187. package/dist/modules/skillLibrary/SkillLibraryController.js +19 -19
  188. package/dist/modules/skillLibrary/SkillLibraryController.js.map +1 -1
  189. package/dist/modules/slack/SlackController.d.ts.map +1 -1
  190. package/dist/modules/slack/SlackController.js +16 -13
  191. package/dist/modules/slack/SlackController.js.map +1 -1
  192. package/dist/modules/tasks/TaskSourceController.d.ts.map +1 -1
  193. package/dist/modules/tasks/TaskSourceController.js +26 -24
  194. package/dist/modules/tasks/TaskSourceController.js.map +1 -1
  195. package/dist/modules/tasks/TaskWebhookController.d.ts.map +1 -1
  196. package/dist/modules/tasks/TaskWebhookController.js +4 -4
  197. package/dist/modules/tasks/TaskWebhookController.js.map +1 -1
  198. package/dist/modules/testSecrets/TestSecretsController.d.ts.map +1 -1
  199. package/dist/modules/testSecrets/TestSecretsController.js +7 -9
  200. package/dist/modules/testSecrets/TestSecretsController.js.map +1 -1
  201. package/dist/modules/userSettings/UserSettingsController.d.ts.map +1 -1
  202. package/dist/modules/userSettings/UserSettingsController.js +11 -6
  203. package/dist/modules/userSettings/UserSettingsController.js.map +1 -1
  204. package/dist/modules/validation/ValidationConfigController.d.ts.map +1 -1
  205. package/dist/modules/validation/ValidationConfigController.js +52 -11
  206. package/dist/modules/validation/ValidationConfigController.js.map +1 -1
  207. package/dist/modules/vcs/VcsWebhookController.d.ts.map +1 -1
  208. package/dist/modules/vcs/VcsWebhookController.js +5 -5
  209. package/dist/modules/vcs/VcsWebhookController.js.map +1 -1
  210. package/dist/modules/webSearch/WebSearchProxyController.d.ts.map +1 -1
  211. package/dist/modules/webSearch/WebSearchProxyController.js +3 -3
  212. package/dist/modules/webSearch/WebSearchProxyController.js.map +1 -1
  213. package/dist/modules/workspaces/WorkspaceMemberController.d.ts.map +1 -1
  214. package/dist/modules/workspaces/WorkspaceMemberController.js +9 -6
  215. package/dist/modules/workspaces/WorkspaceMemberController.js.map +1 -1
  216. package/dist/persistence/remoteRepositories.d.ts +9 -1
  217. package/dist/persistence/remoteRepositories.d.ts.map +1 -1
  218. package/dist/persistence/remoteRepositories.js +13 -1
  219. package/dist/persistence/remoteRepositories.js.map +1 -1
  220. package/dist/persistence/rpc-allowlist.d.ts +23 -0
  221. package/dist/persistence/rpc-allowlist.d.ts.map +1 -1
  222. package/dist/persistence/rpc-allowlist.js +56 -10
  223. package/dist/persistence/rpc-allowlist.js.map +1 -1
  224. package/dist/persistence/rpc-scope.logic.d.ts +15 -0
  225. package/dist/persistence/rpc-scope.logic.d.ts.map +1 -1
  226. package/dist/persistence/rpc-scope.logic.js +29 -0
  227. package/dist/persistence/rpc-scope.logic.js.map +1 -1
  228. package/dist/persistence/rpc.d.ts +11 -0
  229. package/dist/persistence/rpc.d.ts.map +1 -1
  230. package/dist/persistence/rpc.js +10 -1
  231. package/dist/persistence/rpc.js.map +1 -1
  232. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubController.d.ts","sourceRoot":"","sources":["../../../src/modules/github/GitHubController.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAY/C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,CAoS/C"}
1
+ {"version":3,"file":"GitHubController.d.ts","sourceRoot":"","sources":["../../../src/modules/github/GitHubController.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAc/C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,CAiS/C"}
@@ -5,11 +5,14 @@ import { StateSigner } from '../../github/state.js';
5
5
  import { resolveViewerPat } from '../../github/viewerPat.js';
6
6
  import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
7
7
  import { param } from '../../http/params.js';
8
+ import { UnavailableError } from '@cat-factory/kernel';
8
9
  /** Resolve the GitHub module or send a 503, returning null when unconfigured. */
9
10
  function requireGitHub(c) {
10
11
  return c.get('container').github ?? null;
11
12
  }
12
- const unavailable = (c) => c.json({ error: { code: 'unavailable', message: 'GitHub integration is not configured' } }, 503);
13
+ const unavailable = () => {
14
+ throw new UnavailableError('GitHub integration is not configured');
15
+ };
13
16
  /**
14
17
  * Workspace-scoped GitHub endpoints: connection management, projection reads
15
18
  * (served from the local DB — fast and rate-limit-free), resync triggers, and repo
@@ -27,7 +30,7 @@ export function githubController() {
27
30
  buildHonoRoute(app, getGitHubInstallUrlContract, async (c) => {
28
31
  const github = requireGitHub(c);
29
32
  if (!github)
30
- return unavailable(c);
33
+ return unavailable();
31
34
  const config = c.get('container').config.github;
32
35
  const signer = new StateSigner(config.webhookSecret);
33
36
  // Bind the install to this workspace AND the signed-in user, with a short
@@ -44,7 +47,7 @@ export function githubController() {
44
47
  buildHonoRoute(app, getGitHubConnectionContract, async (c) => {
45
48
  const github = requireGitHub(c);
46
49
  if (!github)
47
- return unavailable(c);
50
+ return unavailable();
48
51
  const connection = await github.installationService.getConnection(param(c, 'workspaceId'));
49
52
  return c.json({ connection }, 200);
50
53
  });
@@ -53,7 +56,7 @@ export function githubController() {
53
56
  buildHonoRoute(app, listGitHubInstallationsContract, async (c) => {
54
57
  const github = requireGitHub(c);
55
58
  if (!github)
56
- return unavailable(c);
59
+ return unavailable();
57
60
  const installations = await github.installationService.listAvailableInstallations(param(c, 'workspaceId'));
58
61
  return c.json({ installations }, 200);
59
62
  });
@@ -64,7 +67,7 @@ export function githubController() {
64
67
  buildHonoRoute(app, connectGitHubContract, async (c) => {
65
68
  const github = requireGitHub(c);
66
69
  if (!github)
67
- return unavailable(c);
70
+ return unavailable();
68
71
  const workspaceId = param(c, 'workspaceId');
69
72
  const { installationId } = c.req.valid('json');
70
73
  const connection = await github.installationService.connect(workspaceId, installationId);
@@ -75,7 +78,7 @@ export function githubController() {
75
78
  buildHonoRoute(app, listGitHubAvailableReposContract, async (c) => {
76
79
  const github = requireGitHub(c);
77
80
  if (!github)
78
- return unavailable(c);
81
+ return unavailable();
79
82
  const viewer = await resolveViewerPat(c);
80
83
  return c.json(await github.syncService.listAvailableRepos(param(c, 'workspaceId'), {
81
84
  q: c.req.valid('query').q,
@@ -87,7 +90,7 @@ export function githubController() {
87
90
  buildHonoRoute(app, setGitHubLinkedReposContract, async (c) => {
88
91
  const github = requireGitHub(c);
89
92
  if (!github)
90
- return unavailable(c);
93
+ return unavailable();
91
94
  const repos = await github.syncService.setLinkedRepos(param(c, 'workspaceId'), c.req.valid('json').repoGithubIds);
92
95
  return c.json(repos, 200);
93
96
  });
@@ -96,7 +99,7 @@ export function githubController() {
96
99
  buildHonoRoute(app, setGitHubRepoMonorepoContract, async (c) => {
97
100
  const github = requireGitHub(c);
98
101
  if (!github)
99
- return unavailable(c);
102
+ return unavailable();
100
103
  const repo = await github.syncService.setRepoMonorepo(param(c, 'workspaceId'), Number(c.req.valid('param').repoGithubId), c.req.valid('json').isMonorepo);
101
104
  return c.json(repo, 200);
102
105
  });
@@ -105,7 +108,7 @@ export function githubController() {
105
108
  buildHonoRoute(app, listGitHubRepoTreeContract, async (c) => {
106
109
  const github = requireGitHub(c);
107
110
  if (!github)
108
- return unavailable(c);
111
+ return unavailable();
109
112
  return c.json(await github.syncService.listRepoDirectory(param(c, 'workspaceId'), Number(c.req.valid('param').repoGithubId), c.req.valid('query').path ?? ''), 200);
110
113
  });
111
114
  // List every file in a repo (its whole tree, one recursive read) so the doc-context
@@ -113,13 +116,13 @@ export function githubController() {
113
116
  buildHonoRoute(app, listGitHubRepoFilesContract, async (c) => {
114
117
  const github = requireGitHub(c);
115
118
  if (!github)
116
- return unavailable(c);
119
+ return unavailable();
117
120
  return c.json(await github.syncService.listRepoFiles(param(c, 'workspaceId'), Number(c.req.valid('param').repoGithubId)), 200);
118
121
  });
119
122
  buildHonoRoute(app, disconnectGitHubContract, async (c) => {
120
123
  const github = requireGitHub(c);
121
124
  if (!github)
122
- return unavailable(c);
125
+ return unavailable();
123
126
  await github.installationService.disconnect(param(c, 'workspaceId'));
124
127
  return c.body(null, 204);
125
128
  });
@@ -127,7 +130,7 @@ export function githubController() {
127
130
  buildHonoRoute(app, resyncGitHubContract, async (c) => {
128
131
  const github = requireGitHub(c);
129
132
  if (!github)
130
- return unavailable(c);
133
+ return unavailable();
131
134
  const workspaceId = param(c, 'workspaceId');
132
135
  const { repoGithubId, full } = c.req.valid('json');
133
136
  const { gateways } = c.get('container');
@@ -154,25 +157,25 @@ export function githubController() {
154
157
  buildHonoRoute(app, listGitHubReposContract, async (c) => {
155
158
  const github = requireGitHub(c);
156
159
  if (!github)
157
- return unavailable(c);
160
+ return unavailable();
158
161
  return c.json(await github.service.listRepos(param(c, 'workspaceId')), 200);
159
162
  });
160
163
  buildHonoRoute(app, listGitHubBranchesContract, async (c) => {
161
164
  const github = requireGitHub(c);
162
165
  if (!github)
163
- return unavailable(c);
166
+ return unavailable();
164
167
  return c.json(await github.service.listBranches(param(c, 'workspaceId'), Number(c.req.valid('param').repoGithubId)), 200);
165
168
  });
166
169
  buildHonoRoute(app, listGitHubPullsContract, async (c) => {
167
170
  const github = requireGitHub(c);
168
171
  if (!github)
169
- return unavailable(c);
172
+ return unavailable();
170
173
  return c.json(await github.service.listPullRequests(param(c, 'workspaceId')), 200);
171
174
  });
172
175
  buildHonoRoute(app, listGitHubIssuesContract, async (c) => {
173
176
  const github = requireGitHub(c);
174
177
  if (!github)
175
- return unavailable(c);
178
+ return unavailable();
176
179
  return c.json(await github.service.listIssues(param(c, 'workspaceId')), 200);
177
180
  });
178
181
  // ---- writes -------------------------------------------------------------
@@ -182,9 +185,9 @@ export function githubController() {
182
185
  buildHonoRoute(app, createGitHubRepoContract, async (c) => {
183
186
  const github = requireGitHub(c);
184
187
  if (!github)
185
- return unavailable(c);
188
+ return unavailable();
186
189
  if (!github.provisioningService) {
187
- return c.json({ error: { code: 'unavailable', message: 'Direct repo creation is not configured' } }, 503);
190
+ throw new UnavailableError('Direct repo creation is not configured');
188
191
  }
189
192
  const workspaceId = param(c, 'workspaceId');
190
193
  const { name, private: isPrivate, description } = c.req.valid('json');
@@ -209,7 +212,7 @@ export function githubController() {
209
212
  buildHonoRoute(app, createGitHubBranchContract, async (c) => {
210
213
  const github = requireGitHub(c);
211
214
  if (!github)
212
- return unavailable(c);
215
+ return unavailable();
213
216
  const body = c.req.valid('json');
214
217
  const branch = await github.service.createBranch(param(c, 'workspaceId'), Number(c.req.valid('param').repoGithubId), body.name, body.fromSha);
215
218
  return c.json(branch, 201);
@@ -217,21 +220,21 @@ export function githubController() {
217
220
  buildHonoRoute(app, commitGitHubFilesContract, async (c) => {
218
221
  const github = requireGitHub(c);
219
222
  if (!github)
220
- return unavailable(c);
223
+ return unavailable();
221
224
  const result = await github.service.commitFiles(param(c, 'workspaceId'), Number(c.req.valid('param').repoGithubId), c.req.valid('json'));
222
225
  return c.json(result, 201);
223
226
  });
224
227
  buildHonoRoute(app, openGitHubPullRequestContract, async (c) => {
225
228
  const github = requireGitHub(c);
226
229
  if (!github)
227
- return unavailable(c);
230
+ return unavailable();
228
231
  const pr = await github.service.openPullRequest(param(c, 'workspaceId'), Number(c.req.valid('param').repoGithubId), c.req.valid('json'));
229
232
  return c.json(pr, 201);
230
233
  });
231
234
  buildHonoRoute(app, mergeGitHubPullRequestContract, async (c) => {
232
235
  const github = requireGitHub(c);
233
236
  if (!github)
234
- return unavailable(c);
237
+ return unavailable();
235
238
  const params = c.req.valid('param');
236
239
  await github.service.mergePullRequest(param(c, 'workspaceId'), Number(params.repoGithubId), Number(params.number), c.req.valid('json'));
237
240
  return c.body(null, 204);
@@ -239,7 +242,7 @@ export function githubController() {
239
242
  buildHonoRoute(app, commentGitHubIssueContract, async (c) => {
240
243
  const github = requireGitHub(c);
241
244
  if (!github)
242
- return unavailable(c);
245
+ return unavailable();
243
246
  const params = c.req.valid('param');
244
247
  await github.service.comment(param(c, 'workspaceId'), Number(params.repoGithubId), Number(params.number), c.req.valid('json').body);
245
248
  return c.body(null, 204);
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubController.js","sourceRoot":"","sources":["../../../src/modules/github/GitHubController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubController.js","sourceRoot":"","sources":["../../../src/modules/github/GitHubController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,EAChC,0BAA0B,EAC1B,+BAA+B,EAC/B,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,iFAAiF;AACjF,SAAS,aAAa,CAAmB,CAAa;IACpD,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,IAAI,CAAA;AAC1C,CAAC;AAED,MAAM,WAAW,GAAG,GAAU,EAAE;IAC9B,MAAM,IAAI,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;AACpE,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE/D,4EAA4E;IAE5E,2EAA2E;IAC3E,iFAAiF;IACjF,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACpD,0EAA0E;QAC1E,4EAA4E;QAC5E,0DAA0D;QAC1D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC9B,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;YACpC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;SACjC,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,2BAA2B,MAAM,CAAC,OAAO,4BAA4B,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;QAC5G,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1F,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,2EAA2E;IAC3E,yEAAyE;IACzE,cAAc,CAAC,GAAG,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,CAC/E,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CACxB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,4EAA4E;IAC5E,iFAAiF;IACjF,+EAA+E;IAC/E,sDAAsD;IACtD,cAAc,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QAC3C,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;QACxF,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,+EAA+E;IAC/E,8DAA8D;IAC9D,cAAc,CAAC,GAAG,EAAE,gCAAgC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChE,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACxC,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE;YACnE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACzB,GAAG,MAAM;SACV,CAAC,EACF,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,2EAA2E;IAC3E,wDAAwD;IACxD,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,cAAc,CACnD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAClC,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,oFAAoF;IACpF,iFAAiF;IACjF,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,eAAe,CACnD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAC/B,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,+EAA+E;IAC/E,0EAA0E;IAC1E,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,CACxC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,CAChC,EACD,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,oFAAoF;IACpF,2EAA2E;IAC3E,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,CACpC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAC1C,EACD,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACpE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,4EAA4E;IAE5E,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QAC3C,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAEvC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;YACtF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;YAC7F,IAAI,SAAS;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAA;YACjE,MAAM,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;YAC1E,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,CAAA;QAC9C,CAAC;QAED,8EAA8E;QAC9E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YACtF,IAAI,MAAM;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;YACpD,MAAM,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAChE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACrD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,4EAA4E;IAE5E,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7E,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAC/B,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAC1C,EACD,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,4EAA4E;IAE5E,+EAA+E;IAC/E,8EAA8E;IAC9E,kEAAkE;IAClE,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CAAC,wCAAwC,CAAC,CAAA;QACtE,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QAC3C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACrE,8EAA8E;QAC9E,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;QACtF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE;YACrF,GAAG,EAAE,YAAY,CAAC,YAAY;YAC9B,IAAI;YACJ,OAAO,EAAE,SAAS;YAClB,WAAW;SACZ,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,+CAA+C,YAAY,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,IAAI;iBACxG;aACF,EACD,GAAG,CACJ,CAAA;QACH,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAC9C,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EACzC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,CACb,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAC7C,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAC7C,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CACnC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAC1B,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACzB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubWebhookController.d.ts","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CA+EtD"}
1
+ {"version":3,"file":"GitHubWebhookController.d.ts","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CA6EtD"}
@@ -2,6 +2,7 @@ import { Hono } from 'hono';
2
2
  import { StateSigner } from '../../github/state.js';
3
3
  import { webhookBodyLimit } from '../../webhooks/bodyLimit.js';
4
4
  import { logWebhookSignatureRejection } from '../../webhooks/signatureLog.js';
5
+ import { UnavailableError, UnauthorizedError } from '@cat-factory/kernel';
5
6
  /**
6
7
  * Public GitHub-facing endpoints (NOT under /workspaces, since GitHub calls
7
8
  * them): the webhook receiver and the App setup callback. Mounted at `/github`.
@@ -17,7 +18,7 @@ export function githubWebhookController() {
17
18
  const container = c.get('container');
18
19
  const github = container.github;
19
20
  if (!github)
20
- return c.json({ error: { code: 'unavailable', message: 'GitHub not configured' } }, 503);
21
+ throw new UnavailableError('GitHub not configured');
21
22
  // Verify against the raw bytes before parsing.
22
23
  const raw = await c.req.arrayBuffer();
23
24
  const signature = c.req.header('x-hub-signature-256') ?? null;
@@ -29,7 +30,7 @@ export function githubWebhookController() {
29
30
  secretConfigured: container.config.github.webhookSecret !== '',
30
31
  signaturePresent: !!signature,
31
32
  });
32
- return c.json({ error: { code: 'unauthorized', message: 'Invalid signature' } }, 401);
33
+ throw new UnauthorizedError('Invalid signature');
33
34
  }
34
35
  const eventName = c.req.header('x-github-event') ?? '';
35
36
  let payload;
@@ -60,7 +61,7 @@ export function githubWebhookController() {
60
61
  const container = c.get('container');
61
62
  const github = container.github;
62
63
  if (!github)
63
- return c.json({ error: { code: 'unavailable', message: 'GitHub not configured' } }, 503);
64
+ throw new UnavailableError('GitHub not configured');
64
65
  const installationId = Number(c.req.query('installation_id'));
65
66
  if (!Number.isFinite(installationId)) {
66
67
  return c.json({ error: { code: 'validation', message: 'Missing installation_id' } }, 400);
@@ -71,7 +72,7 @@ export function githubWebhookController() {
71
72
  // binding a brand-new installation still requires a signed state.
72
73
  const workspaceId = state?.workspaceId ?? (await github.installationService.resolveBoundWorkspace(installationId));
73
74
  if (!workspaceId) {
74
- return c.json({ error: { code: 'unauthorized', message: 'Invalid or expired state' } }, 401);
75
+ throw new UnauthorizedError('Invalid or expired state');
75
76
  }
76
77
  await github.installationService.connect(workspaceId, installationId);
77
78
  // Repos are linked explicitly per workspace after connecting, so there is no
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubWebhookController.js","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubWebhookController.js","sourceRoot":"","sources":["../../../src/modules/github/GitHubWebhookController.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitLabController.d.ts","sourceRoot":"","sources":["../../../src/modules/gitlab/GitLabController.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAY/C;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,CA6B/C"}
1
+ {"version":3,"file":"GitLabController.d.ts","sourceRoot":"","sources":["../../../src/modules/gitlab/GitLabController.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAc/C;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,CA6B/C"}
@@ -3,11 +3,14 @@ import { buildHonoRoute } from '@toad-contracts/hono';
3
3
  import { Hono } from 'hono';
4
4
  import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
5
5
  import { param } from '../../http/params.js';
6
+ import { UnavailableError } from '@cat-factory/kernel';
6
7
  /** Resolve the per-workspace VCS PAT connect service, or null when GitLab connect is unconfigured. */
7
8
  function requireVcsConnect(c) {
8
9
  return c.get('container').vcsConnectionService ?? null;
9
10
  }
10
- const unavailable = (c) => c.json({ error: { code: 'unavailable', message: 'GitLab integration is not configured' } }, 503);
11
+ const unavailable = () => {
12
+ throw new UnavailableError('GitLab integration is not configured');
13
+ };
11
14
  /**
12
15
  * Workspace-scoped GitLab connect endpoints: the per-workspace PAT connect flow, the analogue of
13
16
  * the GitHub App connect surface for a provider that authenticates with a pasted token. Connecting
@@ -23,7 +26,7 @@ export function gitlabController() {
23
26
  buildHonoRoute(app, getGitLabConnectionContract, async (c) => {
24
27
  const vcs = requireVcsConnect(c);
25
28
  if (!vcs)
26
- return unavailable(c);
29
+ return unavailable();
27
30
  const connection = await vcs.getConnection(param(c, 'workspaceId'));
28
31
  return c.json({ connection }, 200);
29
32
  });
@@ -32,7 +35,7 @@ export function gitlabController() {
32
35
  buildHonoRoute(app, connectGitLabContract, async (c) => {
33
36
  const vcs = requireVcsConnect(c);
34
37
  if (!vcs)
35
- return unavailable(c);
38
+ return unavailable();
36
39
  const { pat } = c.req.valid('json');
37
40
  const connection = await vcs.connect(param(c, 'workspaceId'), pat);
38
41
  return c.json(connection, 201);
@@ -40,7 +43,7 @@ export function gitlabController() {
40
43
  buildHonoRoute(app, disconnectGitLabContract, async (c) => {
41
44
  const vcs = requireVcsConnect(c);
42
45
  if (!vcs)
43
- return unavailable(c);
46
+ return unavailable();
44
47
  await vcs.disconnect(param(c, 'workspaceId'));
45
48
  return c.body(null, 204);
46
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"GitLabController.js","sourceRoot":"","sources":["../../../src/modules/gitlab/GitLabController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE5C,sGAAsG;AACtG,SAAS,iBAAiB,CAAmB,CAAa;IACxD,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAA;AACxD,CAAC;AAED,MAAM,WAAW,GAAG,CAAmB,CAAa,EAAE,EAAE,CACtD,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,sCAAsC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AAElG;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE/D,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,iGAAiG;IACjG,oFAAoF;IACpF,cAAc,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAA;QAClE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"GitLabController.js","sourceRoot":"","sources":["../../../src/modules/gitlab/GitLabController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,sGAAsG;AACtG,SAAS,iBAAiB,CAAmB,CAAa;IACxD,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAA;AACxD,CAAC;AAED,MAAM,WAAW,GAAG,GAAU,EAAE;IAC9B,MAAM,IAAI,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;AACpE,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE/D,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,EAAE,CAAA;QAC9B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,iGAAiG;IACjG,oFAAoF;IACpF,cAAc,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,EAAE,CAAA;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAA;QAClE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,EAAE,CAAA;QAC9B,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IncidentEnrichmentController.d.ts","sourceRoot":"","sources":["../../../src/modules/incidentEnrichment/IncidentEnrichmentController.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAsB/C;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,CAwB3D"}
1
+ {"version":3,"file":"IncidentEnrichmentController.d.ts","sourceRoot":"","sources":["../../../src/modules/incidentEnrichment/IncidentEnrichmentController.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAgB/C;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,CAwB3D"}
@@ -3,16 +3,14 @@ import { buildHonoRoute } from '@toad-contracts/hono';
3
3
  import { Hono } from 'hono';
4
4
  import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
5
5
  import { param } from '../../http/params.js';
6
+ import { UnavailableError } from '@cat-factory/kernel';
6
7
  /** Resolve the incident-enrichment module or send a 503, returning null when unconfigured. */
7
8
  function requireIncidentEnrichment(c) {
8
9
  return c.get('container').incidentEnrichmentSettings ?? null;
9
10
  }
10
- const unavailable = (c) => c.json({
11
- error: {
12
- code: 'unavailable',
13
- message: 'The incident-enrichment integration is not configured',
14
- },
15
- }, 503);
11
+ const unavailable = () => {
12
+ throw new UnavailableError('The incident-enrichment integration is not configured');
13
+ };
16
14
  /**
17
15
  * Per-workspace incident-enrichment settings (PagerDuty + incident.io). The credentials
18
16
  * are write-only — `GET` returns only a presence summary, `PUT` merges the supplied
@@ -24,19 +22,19 @@ export function incidentEnrichmentController() {
24
22
  buildHonoRoute(app, getIncidentEnrichmentContract, async (c) => {
25
23
  const ie = requireIncidentEnrichment(c);
26
24
  if (!ie)
27
- return unavailable(c);
25
+ return unavailable();
28
26
  return c.json(await ie.service.getConnection(param(c, 'workspaceId')), 200);
29
27
  });
30
28
  buildHonoRoute(app, setIncidentEnrichmentContract, async (c) => {
31
29
  const ie = requireIncidentEnrichment(c);
32
30
  if (!ie)
33
- return unavailable(c);
31
+ return unavailable();
34
32
  return c.json(await ie.service.setConnection(param(c, 'workspaceId'), c.req.valid('json')), 200);
35
33
  });
36
34
  buildHonoRoute(app, deleteIncidentEnrichmentContract, async (c) => {
37
35
  const ie = requireIncidentEnrichment(c);
38
36
  if (!ie)
39
- return unavailable(c);
37
+ return unavailable();
40
38
  await ie.service.deleteConnection(param(c, 'workspaceId'));
41
39
  return c.body(null, 204);
42
40
  });
@@ -1 +1 @@
1
- {"version":3,"file":"IncidentEnrichmentController.js","sourceRoot":"","sources":["../../../src/modules/incidentEnrichment/IncidentEnrichmentController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE5C,8FAA8F;AAC9F,SAAS,yBAAyB,CAChC,CAAa;IAEb,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,0BAA0B,IAAI,IAAI,CAAA;AAC9D,CAAC;AAED,MAAM,WAAW,GAAG,CAAmB,CAAa,EAAE,EAAE,CACtD,CAAC,CAAC,IAAI,CACJ;IACE,KAAK,EAAE;QACL,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,uDAAuD;KACjE;CACF,EACD,GAAG,CACJ,CAAA;AAEH;;;;GAIG;AACH,MAAM,UAAU,4BAA4B;IAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAE3D,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7E,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,gCAAgC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"IncidentEnrichmentController.js","sourceRoot":"","sources":["../../../src/modules/incidentEnrichment/IncidentEnrichmentController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,8FAA8F;AAC9F,SAAS,yBAAyB,CAChC,CAAa;IAEb,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,0BAA0B,IAAI,IAAI,CAAA;AAC9D,CAAC;AAED,MAAM,WAAW,GAAG,GAAU,EAAE;IAC9B,MAAM,IAAI,gBAAgB,CAAC,uDAAuD,CAAC,CAAA;AACrF,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B;IAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAE3D,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO,WAAW,EAAE,CAAA;QAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7E,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO,WAAW,EAAE,CAAA;QAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,gCAAgC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO,WAAW,EAAE,CAAA;QAC7B,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InitiativeController.d.ts","sourceRoot":"","sources":["../../../src/modules/initiatives/InitiativeController.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW/C;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAgMnD"}
1
+ {"version":3,"file":"InitiativeController.d.ts","sourceRoot":"","sources":["../../../src/modules/initiatives/InitiativeController.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAgMnD"}
@@ -3,11 +3,14 @@ import { buildHonoRoute } from '@toad-contracts/hono';
3
3
  import { Hono } from 'hono';
4
4
  import * as v from 'valibot';
5
5
  import { param } from '../../http/params.js';
6
+ import { UnavailableError } from '@cat-factory/kernel';
6
7
  /** Resolve the initiatives module or send a 503, returning null when unconfigured. */
7
8
  function requireInitiatives(c) {
8
9
  return c.get('container').initiatives ?? null;
9
10
  }
10
- const unavailable = (c) => c.json({ error: { code: 'unavailable', message: 'Initiatives are not configured' } }, 503);
11
+ const unavailable = () => {
12
+ throw new UnavailableError('Initiatives are not configured');
13
+ };
11
14
  /**
12
15
  * Workspace-scoped initiative endpoints: create (the initiative-level board block +
13
16
  * its empty entity in one call — the Create Initiative button's target) and the
@@ -21,27 +24,27 @@ export function initiativeController() {
21
24
  buildHonoRoute(app, createInitiativeContract, async (c) => {
22
25
  const initiatives = requireInitiatives(c);
23
26
  if (!initiatives)
24
- return unavailable(c);
27
+ return unavailable();
25
28
  const created = await initiatives.service.create(param(c, 'workspaceId'), c.req.valid('json'));
26
29
  return c.json(created, 201);
27
30
  });
28
31
  buildHonoRoute(app, listInitiativesContract, async (c) => {
29
32
  const initiatives = requireInitiatives(c);
30
33
  if (!initiatives)
31
- return unavailable(c);
34
+ return unavailable();
32
35
  return c.json(await initiatives.service.list(param(c, 'workspaceId')), 200);
33
36
  });
34
37
  buildHonoRoute(app, getInitiativeContract, async (c) => {
35
38
  const initiatives = requireInitiatives(c);
36
39
  if (!initiatives)
37
- return unavailable(c);
40
+ return unavailable();
38
41
  const { initiativeId } = c.req.valid('param');
39
42
  return c.json(await initiatives.service.get(param(c, 'workspaceId'), initiativeId), 200);
40
43
  });
41
44
  buildHonoRoute(app, getInitiativeByBlockContract, async (c) => {
42
45
  const initiatives = requireInitiatives(c);
43
46
  if (!initiatives)
44
- return unavailable(c);
47
+ return unavailable();
45
48
  const { blockId } = c.req.valid('param');
46
49
  return c.json(await initiatives.service.getByBlock(param(c, 'workspaceId'), blockId), 200);
47
50
  });
@@ -89,7 +92,7 @@ export function initiativeController() {
89
92
  buildHonoRoute(app, answerInitiativeQuestionContract, async (c) => {
90
93
  const planning = requirePlanning(c);
91
94
  if (!planning)
92
- return unavailable(c);
95
+ return unavailable();
93
96
  const { blockId } = c.req.valid('param');
94
97
  const { questionId, answer } = c.req.valid('json');
95
98
  return c.json(await planning.answer(param(c, 'workspaceId'), blockId, questionId, answer), 200);
@@ -97,7 +100,7 @@ export function initiativeController() {
97
100
  buildHonoRoute(app, setInitiativeQuestionStatusContract, async (c) => {
98
101
  const planning = requirePlanning(c);
99
102
  if (!planning)
100
- return unavailable(c);
103
+ return unavailable();
101
104
  const { blockId } = c.req.valid('param');
102
105
  const { questionId, status } = c.req.valid('json');
103
106
  return c.json(await planning.setQuestionStatus(param(c, 'workspaceId'), blockId, questionId, status), 200);
@@ -105,7 +108,7 @@ export function initiativeController() {
105
108
  buildHonoRoute(app, recommendInitiativeAnswerContract, async (c) => {
106
109
  const planning = requirePlanning(c);
107
110
  if (!planning)
108
- return unavailable(c);
111
+ return unavailable();
109
112
  const { blockId } = c.req.valid('param');
110
113
  const { questionId } = c.req.valid('json');
111
114
  return c.json(await planning.recommendAnswer(param(c, 'workspaceId'), blockId, questionId), 200);
@@ -113,14 +116,14 @@ export function initiativeController() {
113
116
  buildHonoRoute(app, continueInitiativePlanningContract, async (c) => {
114
117
  const planning = requirePlanning(c);
115
118
  if (!planning)
116
- return unavailable(c);
119
+ return unavailable();
117
120
  const { blockId } = c.req.valid('param');
118
121
  return c.json(await planning.continue(param(c, 'workspaceId'), blockId), 200);
119
122
  });
120
123
  buildHonoRoute(app, proceedInitiativePlanningContract, async (c) => {
121
124
  const planning = requirePlanning(c);
122
125
  if (!planning)
123
- return unavailable(c);
126
+ return unavailable();
124
127
  const { blockId } = c.req.valid('param');
125
128
  return c.json(await planning.proceed(param(c, 'workspaceId'), blockId), 200);
126
129
  });
@@ -131,21 +134,21 @@ export function initiativeController() {
131
134
  buildHonoRoute(app, pauseInitiativeContract, async (c) => {
132
135
  const initiatives = requireInitiatives(c);
133
136
  if (!initiatives)
134
- return unavailable(c);
137
+ return unavailable();
135
138
  const { blockId } = c.req.valid('param');
136
139
  return c.json(await initiatives.service.pause(param(c, 'workspaceId'), blockId), 200);
137
140
  });
138
141
  buildHonoRoute(app, resumeInitiativeContract, async (c) => {
139
142
  const initiatives = requireInitiatives(c);
140
143
  if (!initiatives)
141
- return unavailable(c);
144
+ return unavailable();
142
145
  const { blockId } = c.req.valid('param');
143
146
  return c.json(await initiatives.service.resume(param(c, 'workspaceId'), blockId), 200);
144
147
  });
145
148
  buildHonoRoute(app, cancelInitiativeContract, async (c) => {
146
149
  const initiatives = requireInitiatives(c);
147
150
  if (!initiatives)
148
- return unavailable(c);
151
+ return unavailable();
149
152
  const { blockId } = c.req.valid('param');
150
153
  return c.json(await initiatives.service.cancel(param(c, 'workspaceId'), blockId), 200);
151
154
  });
@@ -156,7 +159,7 @@ export function initiativeController() {
156
159
  buildHonoRoute(app, promoteInitiativeFollowUpContract, async (c) => {
157
160
  const initiatives = requireInitiatives(c);
158
161
  if (!initiatives)
159
- return unavailable(c);
162
+ return unavailable();
160
163
  const { initiativeId, followUpId } = c.req.valid('param');
161
164
  const updated = await initiatives.service.promoteFollowUp(param(c, 'workspaceId'), initiativeId, followUpId, c.req.valid('json'));
162
165
  return c.json(updated, 200);
@@ -164,7 +167,7 @@ export function initiativeController() {
164
167
  buildHonoRoute(app, dismissInitiativeFollowUpContract, async (c) => {
165
168
  const initiatives = requireInitiatives(c);
166
169
  if (!initiatives)
167
- return unavailable(c);
170
+ return unavailable();
168
171
  const { initiativeId, followUpId } = c.req.valid('param');
169
172
  const updated = await initiatives.service.dismissFollowUp(param(c, 'workspaceId'), initiativeId, followUpId);
170
173
  return c.json(updated, 200);
@@ -172,7 +175,7 @@ export function initiativeController() {
172
175
  buildHonoRoute(app, updateInitiativeItemContract, async (c) => {
173
176
  const initiatives = requireInitiatives(c);
174
177
  if (!initiatives)
175
- return unavailable(c);
178
+ return unavailable();
176
179
  const { initiativeId, itemId } = c.req.valid('param');
177
180
  const updated = await initiatives.service.updateItem(param(c, 'workspaceId'), initiativeId, itemId, c.req.valid('json'));
178
181
  return c.json(updated, 200);
@@ -180,7 +183,7 @@ export function initiativeController() {
180
183
  buildHonoRoute(app, updateInitiativePolicyContract, async (c) => {
181
184
  const initiatives = requireInitiatives(c);
182
185
  if (!initiatives)
183
- return unavailable(c);
186
+ return unavailable();
184
187
  const { initiativeId } = c.req.valid('param');
185
188
  const updated = await initiatives.service.updatePolicy(param(c, 'workspaceId'), initiativeId, c.req.valid('json'));
186
189
  return c.json(updated, 200);