@cat-factory/server 0.170.1 → 0.172.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.
- package/dist/agents/ContainerAgentExecutor.d.ts +0 -8
- package/dist/agents/ContainerAgentExecutor.d.ts.map +1 -1
- package/dist/agents/ContainerAgentExecutor.js +51 -129
- package/dist/agents/ContainerAgentExecutor.js.map +1 -1
- package/dist/agents/ContainerEnvConfigRepairer.d.ts.map +1 -1
- package/dist/agents/ContainerEnvConfigRepairer.js +6 -0
- package/dist/agents/ContainerEnvConfigRepairer.js.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.d.ts.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.js +8 -0
- package/dist/agents/ContainerRepoBootstrapper.js.map +1 -1
- package/dist/agents/agentContextRecord.d.ts +31 -0
- package/dist/agents/agentContextRecord.d.ts.map +1 -0
- package/dist/agents/agentContextRecord.js +113 -0
- package/dist/agents/agentContextRecord.js.map +1 -0
- package/dist/agents/containerAgentBody.d.ts.map +1 -1
- package/dist/agents/containerAgentBody.js +8 -0
- package/dist/agents/containerAgentBody.js.map +1 -1
- package/dist/agents/containerAgentLogging.d.ts +44 -0
- package/dist/agents/containerAgentLogging.d.ts.map +1 -0
- package/dist/agents/containerAgentLogging.js +28 -0
- package/dist/agents/containerAgentLogging.js.map +1 -0
- package/dist/config/misconfiguredApp.d.ts +2 -1
- package/dist/config/misconfiguredApp.d.ts.map +1 -1
- package/dist/config/misconfiguredApp.js +11 -2
- package/dist/config/misconfiguredApp.js.map +1 -1
- package/dist/http/cors.d.ts +10 -0
- package/dist/http/cors.d.ts.map +1 -1
- package/dist/http/cors.js +11 -0
- package/dist/http/cors.js.map +1 -1
- package/dist/http/env.d.ts +19 -1
- package/dist/http/env.d.ts.map +1 -1
- package/dist/http/errorHandler.d.ts +10 -2
- package/dist/http/errorHandler.d.ts.map +1 -1
- package/dist/http/errorHandler.js +28 -12
- package/dist/http/errorHandler.js.map +1 -1
- package/dist/http/guards.d.ts +46 -0
- package/dist/http/guards.d.ts.map +1 -0
- package/dist/http/guards.js +57 -0
- package/dist/http/guards.js.map +1 -0
- package/dist/http/requestLogging.d.ts +32 -0
- package/dist/http/requestLogging.d.ts.map +1 -0
- package/dist/http/requestLogging.js +117 -0
- package/dist/http/requestLogging.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/accounts/AccountController.d.ts +0 -10
- package/dist/modules/accounts/AccountController.d.ts.map +1 -1
- package/dist/modules/accounts/AccountController.js +56 -101
- package/dist/modules/accounts/AccountController.js.map +1 -1
- package/dist/modules/agentRuns/AgentRunController.d.ts +0 -6
- package/dist/modules/agentRuns/AgentRunController.d.ts.map +1 -1
- package/dist/modules/agentRuns/AgentRunController.js +19 -16
- package/dist/modules/agentRuns/AgentRunController.js.map +1 -1
- package/dist/modules/artifacts/ArtifactController.d.ts.map +1 -1
- package/dist/modules/artifacts/ArtifactController.js +4 -15
- package/dist/modules/artifacts/ArtifactController.js.map +1 -1
- package/dist/modules/auth/AuthController.d.ts.map +1 -1
- package/dist/modules/auth/AuthController.js +14 -9
- package/dist/modules/auth/AuthController.js.map +1 -1
- package/dist/modules/bootstrap/BootstrapController.d.ts.map +1 -1
- package/dist/modules/bootstrap/BootstrapController.js +6 -20
- package/dist/modules/bootstrap/BootstrapController.js.map +1 -1
- package/dist/modules/brainstorm/BrainstormController.d.ts.map +1 -1
- package/dist/modules/brainstorm/BrainstormController.js +17 -27
- package/dist/modules/brainstorm/BrainstormController.js.map +1 -1
- package/dist/modules/bugHunt/BugHuntController.d.ts.map +1 -1
- package/dist/modules/bugHunt/BugHuntController.js +4 -12
- package/dist/modules/bugHunt/BugHuntController.js.map +1 -1
- package/dist/modules/clarity/ClarityReviewController.d.ts.map +1 -1
- package/dist/modules/clarity/ClarityReviewController.js +18 -27
- package/dist/modules/clarity/ClarityReviewController.js.map +1 -1
- package/dist/modules/docInterview/DocInterviewController.d.ts.map +1 -1
- package/dist/modules/docInterview/DocInterviewController.js +6 -17
- package/dist/modules/docInterview/DocInterviewController.js.map +1 -1
- package/dist/modules/documents/DocumentSourceController.d.ts.map +1 -1
- package/dist/modules/documents/DocumentSourceController.js +4 -32
- package/dist/modules/documents/DocumentSourceController.js.map +1 -1
- package/dist/modules/environments/EnvironmentController.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentController.js +10 -63
- package/dist/modules/environments/EnvironmentController.js.map +1 -1
- package/dist/modules/environments/EnvironmentUserHandlerController.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentUserHandlerController.js +16 -25
- package/dist/modules/environments/EnvironmentUserHandlerController.js.map +1 -1
- package/dist/modules/fragmentLibrary/FragmentLibraryController.d.ts.map +1 -1
- package/dist/modules/fragmentLibrary/FragmentLibraryController.js +26 -60
- package/dist/modules/fragmentLibrary/FragmentLibraryController.js.map +1 -1
- package/dist/modules/github/GitHubController.d.ts.map +1 -1
- package/dist/modules/github/GitHubController.js +14 -48
- package/dist/modules/github/GitHubController.js.map +1 -1
- package/dist/modules/gitlab/GitLabController.d.ts.map +1 -1
- package/dist/modules/gitlab/GitLabController.js +3 -12
- package/dist/modules/gitlab/GitLabController.js.map +1 -1
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.d.ts.map +1 -1
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js +3 -12
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js.map +1 -1
- package/dist/modules/initiatives/InitiativeController.d.ts.map +1 -1
- package/dist/modules/initiatives/InitiativeController.js +4 -39
- package/dist/modules/initiatives/InitiativeController.js.map +1 -1
- package/dist/modules/kaizen/KaizenController.d.ts.map +1 -1
- package/dist/modules/kaizen/KaizenController.js +3 -10
- package/dist/modules/kaizen/KaizenController.js.map +1 -1
- package/dist/modules/localModels/LocalModelEndpointController.d.ts.map +1 -1
- package/dist/modules/localModels/LocalModelEndpointController.js +21 -31
- package/dist/modules/localModels/LocalModelEndpointController.js.map +1 -1
- package/dist/modules/localSettings/LocalSettingsController.d.ts +0 -9
- package/dist/modules/localSettings/LocalSettingsController.d.ts.map +1 -1
- package/dist/modules/localSettings/LocalSettingsController.js +9 -12
- package/dist/modules/localSettings/LocalSettingsController.js.map +1 -1
- package/dist/modules/merge/MergeTrackRecordController.d.ts.map +1 -1
- package/dist/modules/merge/MergeTrackRecordController.js +3 -10
- package/dist/modules/merge/MergeTrackRecordController.js.map +1 -1
- package/dist/modules/merge/RiskPolicyController.d.ts.map +1 -1
- package/dist/modules/merge/RiskPolicyController.js +3 -16
- package/dist/modules/merge/RiskPolicyController.js.map +1 -1
- package/dist/modules/modelPresets/ModelPresetController.d.ts.map +1 -1
- package/dist/modules/modelPresets/ModelPresetController.js +3 -16
- package/dist/modules/modelPresets/ModelPresetController.js.map +1 -1
- package/dist/modules/notificationWebhook/NotificationWebhookController.d.ts.map +1 -1
- package/dist/modules/notificationWebhook/NotificationWebhookController.js +3 -12
- package/dist/modules/notificationWebhook/NotificationWebhookController.js.map +1 -1
- package/dist/modules/notifications/NotificationController.d.ts.map +1 -1
- package/dist/modules/notifications/NotificationController.js +3 -12
- package/dist/modules/notifications/NotificationController.js.map +1 -1
- package/dist/modules/observability/PlatformObservabilityController.d.ts.map +1 -1
- package/dist/modules/observability/PlatformObservabilityController.js +7 -11
- package/dist/modules/observability/PlatformObservabilityController.js.map +1 -1
- package/dist/modules/openrouter/OpenRouterCatalogController.d.ts.map +1 -1
- package/dist/modules/openrouter/OpenRouterCatalogController.js +19 -23
- package/dist/modules/openrouter/OpenRouterCatalogController.js.map +1 -1
- package/dist/modules/packageRegistries/PackageRegistriesController.d.ts.map +1 -1
- package/dist/modules/packageRegistries/PackageRegistriesController.js +3 -12
- package/dist/modules/packageRegistries/PackageRegistriesController.js.map +1 -1
- package/dist/modules/preflight/PreflightController.d.ts.map +1 -1
- package/dist/modules/preflight/PreflightController.js +3 -8
- package/dist/modules/preflight/PreflightController.js.map +1 -1
- package/dist/modules/preview/PreviewController.d.ts.map +1 -1
- package/dist/modules/preview/PreviewController.js +4 -14
- package/dist/modules/preview/PreviewController.js.map +1 -1
- package/dist/modules/providers/ApiKeyController.d.ts +0 -1
- package/dist/modules/providers/ApiKeyController.d.ts.map +1 -1
- package/dist/modules/providers/ApiKeyController.js +21 -43
- package/dist/modules/providers/ApiKeyController.js.map +1 -1
- package/dist/modules/providers/PersonalSubscriptionController.d.ts.map +1 -1
- package/dist/modules/providers/PersonalSubscriptionController.js +15 -25
- package/dist/modules/providers/PersonalSubscriptionController.js.map +1 -1
- package/dist/modules/providers/UserSecretController.d.ts.map +1 -1
- package/dist/modules/providers/UserSecretController.js +23 -37
- package/dist/modules/providers/UserSecretController.js.map +1 -1
- package/dist/modules/providers/VendorCredentialController.d.ts.map +1 -1
- package/dist/modules/providers/VendorCredentialController.js +9 -16
- package/dist/modules/providers/VendorCredentialController.js.map +1 -1
- package/dist/modules/provisioningLogs/ProvisioningLogController.d.ts.map +1 -1
- package/dist/modules/provisioningLogs/ProvisioningLogController.js +3 -8
- package/dist/modules/provisioningLogs/ProvisioningLogController.js.map +1 -1
- package/dist/modules/publicApi/PublicApiKeyController.d.ts +0 -1
- package/dist/modules/publicApi/PublicApiKeyController.d.ts.map +1 -1
- package/dist/modules/publicApi/PublicApiKeyController.js +8 -13
- package/dist/modules/publicApi/PublicApiKeyController.js.map +1 -1
- package/dist/modules/recurring/RecurringPipelineController.d.ts.map +1 -1
- package/dist/modules/recurring/RecurringPipelineController.js +3 -18
- package/dist/modules/recurring/RecurringPipelineController.js.map +1 -1
- package/dist/modules/recurring/TrackerSettingsController.d.ts.map +1 -1
- package/dist/modules/recurring/TrackerSettingsController.js +3 -10
- package/dist/modules/recurring/TrackerSettingsController.js.map +1 -1
- package/dist/modules/releaseHealth/ReleaseHealthController.d.ts.map +1 -1
- package/dist/modules/releaseHealth/ReleaseHealthController.js +3 -18
- package/dist/modules/releaseHealth/ReleaseHealthController.js.map +1 -1
- package/dist/modules/reports/ReportsController.d.ts.map +1 -1
- package/dist/modules/reports/ReportsController.js +7 -11
- package/dist/modules/reports/ReportsController.js.map +1 -1
- package/dist/modules/requirements/RequirementReviewController.d.ts.map +1 -1
- package/dist/modules/requirements/RequirementReviewController.js +18 -36
- package/dist/modules/requirements/RequirementReviewController.js.map +1 -1
- package/dist/modules/runners/RunnerPoolController.d.ts.map +1 -1
- package/dist/modules/runners/RunnerPoolController.js +3 -18
- package/dist/modules/runners/RunnerPoolController.js.map +1 -1
- package/dist/modules/sandbox/SandboxController.d.ts.map +1 -1
- package/dist/modules/sandbox/SandboxController.js +3 -32
- package/dist/modules/sandbox/SandboxController.js.map +1 -1
- package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.d.ts.map +1 -1
- package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.js +3 -10
- package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.js.map +1 -1
- package/dist/modules/services/ServiceMountController.d.ts.map +1 -1
- package/dist/modules/services/ServiceMountController.js +3 -16
- package/dist/modules/services/ServiceMountController.js.map +1 -1
- package/dist/modules/settings/WorkspaceSettingsController.d.ts.map +1 -1
- package/dist/modules/settings/WorkspaceSettingsController.js +3 -10
- package/dist/modules/settings/WorkspaceSettingsController.js.map +1 -1
- package/dist/modules/sharedStack/SharedStackController.d.ts.map +1 -1
- package/dist/modules/sharedStack/SharedStackController.js +3 -20
- package/dist/modules/sharedStack/SharedStackController.js.map +1 -1
- package/dist/modules/skillLibrary/SkillLibraryController.d.ts.map +1 -1
- package/dist/modules/skillLibrary/SkillLibraryController.js +21 -44
- package/dist/modules/skillLibrary/SkillLibraryController.js.map +1 -1
- package/dist/modules/slack/SlackController.d.ts.map +1 -1
- package/dist/modules/slack/SlackController.js +4 -26
- package/dist/modules/slack/SlackController.js.map +1 -1
- package/dist/modules/tasks/TaskSourceController.d.ts.map +1 -1
- package/dist/modules/tasks/TaskSourceController.js +5 -47
- package/dist/modules/tasks/TaskSourceController.js.map +1 -1
- package/dist/modules/testSecrets/TestSecretsController.d.ts.map +1 -1
- package/dist/modules/testSecrets/TestSecretsController.js +3 -12
- package/dist/modules/testSecrets/TestSecretsController.js.map +1 -1
- package/dist/modules/userSettings/UserSettingsController.d.ts.map +1 -1
- package/dist/modules/userSettings/UserSettingsController.js +13 -19
- package/dist/modules/userSettings/UserSettingsController.js.map +1 -1
- package/dist/modules/validation/ValidationConfigController.d.ts.map +1 -1
- package/dist/modules/validation/ValidationConfigController.js +3 -14
- package/dist/modules/validation/ValidationConfigController.js.map +1 -1
- package/dist/modules/workspaces/WorkspaceController.d.ts.map +1 -1
- package/dist/modules/workspaces/WorkspaceController.js +9 -4
- package/dist/modules/workspaces/WorkspaceController.js.map +1 -1
- package/dist/modules/workspaces/WorkspaceMemberController.d.ts.map +1 -1
- package/dist/modules/workspaces/WorkspaceMemberController.js +10 -19
- package/dist/modules/workspaces/WorkspaceMemberController.js.map +1 -1
- package/package.json +6 -6
- package/dist/agents/storeAgentContextGate.d.ts +0 -36
- package/dist/agents/storeAgentContextGate.d.ts.map +0 -1
- package/dist/agents/storeAgentContextGate.js +0 -36
- package/dist/agents/storeAgentContextGate.js.map +0 -1
|
@@ -2,14 +2,11 @@ import { listServiceCatalogContract, listServiceMountsContract, mountServiceCont
|
|
|
2
2
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
4
|
import { param } from '../../http/params.js';
|
|
5
|
-
import {
|
|
6
|
-
/** Resolve the in-org services module or
|
|
5
|
+
import { requireCapability } from '../../http/guards.js';
|
|
6
|
+
/** Resolve the in-org services module, or refuse with a 503 naming what isn't wired. */
|
|
7
7
|
function requireServices(c) {
|
|
8
|
-
return c.get('container').services
|
|
8
|
+
return requireCapability(c.get('container').services, 'Shared services are not configured');
|
|
9
9
|
}
|
|
10
|
-
const unavailable = () => {
|
|
11
|
-
throw new UnavailableError('Shared services are not configured');
|
|
12
|
-
};
|
|
13
10
|
/**
|
|
14
11
|
* In-org service sharing: list/mount/unmount the account's services on a workspace board
|
|
15
12
|
* and re-lay-out a mounted frame. Mounted under `/workspaces/:workspaceId`. The org
|
|
@@ -22,15 +19,11 @@ export function serviceMountController() {
|
|
|
22
19
|
// Services currently mounted onto this board.
|
|
23
20
|
buildHonoRoute(app, listServiceMountsContract, async (c) => {
|
|
24
21
|
const services = requireServices(c);
|
|
25
|
-
if (!services)
|
|
26
|
-
return unavailable();
|
|
27
22
|
return c.json(await services.service.listMounts(param(c, 'workspaceId')), 200);
|
|
28
23
|
});
|
|
29
24
|
// The org catalog: services owned by this workspace's account (mountable here).
|
|
30
25
|
buildHonoRoute(app, listServiceCatalogContract, async (c) => {
|
|
31
26
|
const services = requireServices(c);
|
|
32
|
-
if (!services)
|
|
33
|
-
return unavailable();
|
|
34
27
|
// `accountOf` is `undefined` for an unknown board, `null` for the legacy/unscoped
|
|
35
28
|
// org, or the account id. The org catalog includes the null-account org.
|
|
36
29
|
const accountId = await c.get('container').workspaceService.accountOf(param(c, 'workspaceId'));
|
|
@@ -41,24 +34,18 @@ export function serviceMountController() {
|
|
|
41
34
|
// Mount an existing org service onto this board.
|
|
42
35
|
buildHonoRoute(app, mountServiceContract, async (c) => {
|
|
43
36
|
const services = requireServices(c);
|
|
44
|
-
if (!services)
|
|
45
|
-
return unavailable();
|
|
46
37
|
const mount = await services.service.mount(param(c, 'workspaceId'), c.req.valid('param').serviceId, c.req.valid('json'));
|
|
47
38
|
return c.json(mount, 201);
|
|
48
39
|
});
|
|
49
40
|
// Update a mount's per-workspace layout override (frame position/size).
|
|
50
41
|
buildHonoRoute(app, updateServiceMountLayoutContract, async (c) => {
|
|
51
42
|
const services = requireServices(c);
|
|
52
|
-
if (!services)
|
|
53
|
-
return unavailable();
|
|
54
43
|
const mount = await services.service.updateLayout(param(c, 'workspaceId'), c.req.valid('param').serviceId, c.req.valid('json'));
|
|
55
44
|
return c.json(mount, 200);
|
|
56
45
|
});
|
|
57
46
|
// Remove a service from this board (does NOT delete the shared service).
|
|
58
47
|
buildHonoRoute(app, unmountServiceContract, async (c) => {
|
|
59
48
|
const services = requireServices(c);
|
|
60
|
-
if (!services)
|
|
61
|
-
return unavailable();
|
|
62
49
|
await services.service.unmount(param(c, 'workspaceId'), c.req.valid('param').serviceId);
|
|
63
50
|
return c.body(null, 204);
|
|
64
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceMountController.js","sourceRoot":"","sources":["../../../src/modules/services/ServiceMountController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ServiceMountController.js","sourceRoot":"","sources":["../../../src/modules/services/ServiceMountController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceSettingsController.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsController.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"WorkspaceSettingsController.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsController.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAAC,MAAM,CAAC,CAoB1D"}
|
|
@@ -3,14 +3,11 @@ 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 {
|
|
7
|
-
/** Resolve the workspace-settings module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the workspace-settings module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireSettings(c) {
|
|
9
|
-
return c.get('container').settings
|
|
9
|
+
return requireCapability(c.get('container').settings, 'Workspace settings are not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Workspace settings are not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* Read/update a workspace's runtime settings (the human-wait escalation threshold +
|
|
16
13
|
* the per-service running-task limit policy). `GET` lazily falls back to the built-in
|
|
@@ -21,14 +18,10 @@ export function workspaceSettingsController() {
|
|
|
21
18
|
app.use('*', requireWorkspacePermission('settings.manage'));
|
|
22
19
|
buildHonoRoute(app, getWorkspaceSettingsContract, async (c) => {
|
|
23
20
|
const settings = requireSettings(c);
|
|
24
|
-
if (!settings)
|
|
25
|
-
return unavailable();
|
|
26
21
|
return c.json(await settings.service.get(param(c, 'workspaceId')), 200);
|
|
27
22
|
});
|
|
28
23
|
buildHonoRoute(app, updateWorkspaceSettingsContract, async (c) => {
|
|
29
24
|
const settings = requireSettings(c);
|
|
30
|
-
if (!settings)
|
|
31
|
-
return unavailable();
|
|
32
25
|
const workspaceId = param(c, 'workspaceId');
|
|
33
26
|
// `update` invalidates the shared `workspaceSettings` cache slice after it commits, so a
|
|
34
27
|
// budget edit takes effect immediately for SpendService's pricing overlay (which reads
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceSettingsController.js","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAChC,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,
|
|
1
|
+
{"version":3,"file":"WorkspaceSettingsController.js","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAChC,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,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,2FAA2F;AAC3F,SAAS,eAAe,CAAmB,CAAa;IACtD,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAA;AAChG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,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,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QACnC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QAC3C,yFAAyF;QACzF,uFAAuF;QACvF,yDAAyD;QACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/E,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedStackController.d.ts","sourceRoot":"","sources":["../../../src/modules/sharedStack/SharedStackController.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"SharedStackController.d.ts","sourceRoot":"","sources":["../../../src/modules/sharedStack/SharedStackController.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CAwDpD"}
|
|
@@ -3,14 +3,11 @@ 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 {
|
|
7
|
-
/** Resolve the shared-stacks module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the shared-stacks module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireSharedStacks(c) {
|
|
9
|
-
return c.get('container').sharedStacks
|
|
9
|
+
return requireCapability(c.get('container').sharedStacks, 'Shared stacks are not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Shared stacks are not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* CRUD + lifecycle for a workspace's shared stacks (long-lived compose infra a consumer
|
|
16
13
|
* environment attaches to over an external network). CRUD works on every facade; the
|
|
@@ -23,49 +20,35 @@ export function sharedStackController() {
|
|
|
23
20
|
app.use('*', requireWorkspacePermission('integrations.manage'));
|
|
24
21
|
buildHonoRoute(app, listSharedStacksContract, async (c) => {
|
|
25
22
|
const stacks = requireSharedStacks(c);
|
|
26
|
-
if (!stacks)
|
|
27
|
-
return unavailable();
|
|
28
23
|
return c.json(await stacks.service.list(param(c, 'workspaceId')), 200);
|
|
29
24
|
});
|
|
30
25
|
buildHonoRoute(app, createSharedStackContract, async (c) => {
|
|
31
26
|
const stacks = requireSharedStacks(c);
|
|
32
|
-
if (!stacks)
|
|
33
|
-
return unavailable();
|
|
34
27
|
const stack = await stacks.service.create(param(c, 'workspaceId'), c.req.valid('json'));
|
|
35
28
|
return c.json(stack, 201);
|
|
36
29
|
});
|
|
37
30
|
buildHonoRoute(app, detectSharedStackContract, async (c) => {
|
|
38
31
|
const stacks = requireSharedStacks(c);
|
|
39
|
-
if (!stacks)
|
|
40
|
-
return unavailable();
|
|
41
32
|
const recommendation = await stacks.service.detect(param(c, 'workspaceId'), c.req.valid('json'));
|
|
42
33
|
return c.json(recommendation, 200);
|
|
43
34
|
});
|
|
44
35
|
buildHonoRoute(app, updateSharedStackContract, async (c) => {
|
|
45
36
|
const stacks = requireSharedStacks(c);
|
|
46
|
-
if (!stacks)
|
|
47
|
-
return unavailable();
|
|
48
37
|
const stack = await stacks.service.update(param(c, 'workspaceId'), c.req.valid('param').stackId, c.req.valid('json'));
|
|
49
38
|
return c.json(stack, 200);
|
|
50
39
|
});
|
|
51
40
|
buildHonoRoute(app, deleteSharedStackContract, async (c) => {
|
|
52
41
|
const stacks = requireSharedStacks(c);
|
|
53
|
-
if (!stacks)
|
|
54
|
-
return unavailable();
|
|
55
42
|
await stacks.service.remove(param(c, 'workspaceId'), c.req.valid('param').stackId);
|
|
56
43
|
return c.body(null, 204);
|
|
57
44
|
});
|
|
58
45
|
buildHonoRoute(app, ensureSharedStackUpContract, async (c) => {
|
|
59
46
|
const stacks = requireSharedStacks(c);
|
|
60
|
-
if (!stacks)
|
|
61
|
-
return unavailable();
|
|
62
47
|
const stack = await stacks.service.ensureUp(param(c, 'workspaceId'), c.req.valid('param').stackId);
|
|
63
48
|
return c.json(stack, 200);
|
|
64
49
|
});
|
|
65
50
|
buildHonoRoute(app, teardownSharedStackContract, async (c) => {
|
|
66
51
|
const stacks = requireSharedStacks(c);
|
|
67
|
-
if (!stacks)
|
|
68
|
-
return unavailable();
|
|
69
52
|
const stack = await stacks.service.teardown(param(c, 'workspaceId'), c.req.valid('param').stackId);
|
|
70
53
|
return c.json(stack, 200);
|
|
71
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedStackController.js","sourceRoot":"","sources":["../../../src/modules/sharedStack/SharedStackController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,GAC1B,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,
|
|
1
|
+
{"version":3,"file":"SharedStackController.js","sourceRoot":"","sources":["../../../src/modules/sharedStack/SharedStackController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillLibraryController.d.ts","sourceRoot":"","sources":["../../../src/modules/skillLibrary/SkillLibraryController.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"SkillLibraryController.d.ts","sourceRoot":"","sources":["../../../src/modules/skillLibrary/SkillLibraryController.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAwB/C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAAC,MAAM,CAAC,CA6CrD"}
|
|
@@ -2,17 +2,19 @@ import { linkSkillSourceContract, listAccountSkillsContract, listSkillSourcesCon
|
|
|
2
2
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
4
|
import { param } from '../../http/params.js';
|
|
5
|
-
import {
|
|
5
|
+
import { requireCapability, requireUser } from '../../http/guards.js';
|
|
6
6
|
/** Resolve the skill-library module or send a 503 when unconfigured. */
|
|
7
7
|
function requireLibrary(c) {
|
|
8
|
-
return c.get('container').skillLibrary
|
|
8
|
+
return requireCapability(c.get('container').skillLibrary, 'The Claude Skills library is not configured');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The repo-source service, wired only when the GitHub integration is too — a SECOND capability
|
|
12
|
+
* behind the same module, so it gets its own accessor rather than a guard restated at each of
|
|
13
|
+
* the five source routes.
|
|
14
|
+
*/
|
|
15
|
+
function requireSources(c) {
|
|
16
|
+
return requireCapability(requireLibrary(c).sourceService, 'Repo-sourced skills require the GitHub integration to be configured');
|
|
9
17
|
}
|
|
10
|
-
const unavailable = () => {
|
|
11
|
-
throw new UnavailableError('The Claude Skills library is not configured');
|
|
12
|
-
};
|
|
13
|
-
const sourcesUnavailable = () => {
|
|
14
|
-
throw new UnavailableError('Repo-sourced skills require the GitHub integration to be configured');
|
|
15
|
-
};
|
|
16
18
|
/**
|
|
17
19
|
* The repo-sourced Claude Skills library API (docs/initiatives/repo-skills.md).
|
|
18
20
|
* Skills live in ONE tier (the account, shared across its workspaces), so — unlike
|
|
@@ -30,61 +32,36 @@ export function skillLibraryController() {
|
|
|
30
32
|
// ---- the account skill catalog ------------------------------------------
|
|
31
33
|
buildHonoRoute(app, listAccountSkillsContract, async (c) => {
|
|
32
34
|
const lib = requireLibrary(c);
|
|
33
|
-
if (!lib)
|
|
34
|
-
return unavailable();
|
|
35
35
|
return c.json(await lib.catalogService.list(accountId(c)), 200);
|
|
36
36
|
});
|
|
37
37
|
// ---- repo sources -------------------------------------------------------
|
|
38
38
|
buildHonoRoute(app, listSkillSourcesContract, async (c) => {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
return unavailable();
|
|
42
|
-
if (!lib.sourceService)
|
|
43
|
-
return sourcesUnavailable();
|
|
44
|
-
return c.json(await lib.sourceService.list(accountId(c)), 200);
|
|
39
|
+
const sources = requireSources(c);
|
|
40
|
+
return c.json(await sources.list(accountId(c)), 200);
|
|
45
41
|
});
|
|
46
42
|
buildHonoRoute(app, linkSkillSourceContract, async (c) => {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
return unavailable();
|
|
50
|
-
if (!lib.sourceService)
|
|
51
|
-
return sourcesUnavailable();
|
|
52
|
-
const source = await lib.sourceService.link(accountId(c), c.req.valid('json'));
|
|
43
|
+
const sources = requireSources(c);
|
|
44
|
+
const source = await sources.link(accountId(c), c.req.valid('json'));
|
|
53
45
|
return c.json(source, 201);
|
|
54
46
|
});
|
|
55
47
|
buildHonoRoute(app, unlinkSkillSourceContract, async (c) => {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
return unavailable();
|
|
59
|
-
if (!lib.sourceService)
|
|
60
|
-
return sourcesUnavailable();
|
|
61
|
-
await lib.sourceService.unlink(accountId(c), c.req.valid('param').id);
|
|
48
|
+
const sources = requireSources(c);
|
|
49
|
+
await sources.unlink(accountId(c), c.req.valid('param').id);
|
|
62
50
|
return c.body(null, 204);
|
|
63
51
|
});
|
|
64
52
|
buildHonoRoute(app, skillSourceStatusContract, async (c) => {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
return unavailable();
|
|
68
|
-
if (!lib.sourceService)
|
|
69
|
-
return sourcesUnavailable();
|
|
70
|
-
return c.json(await lib.sourceService.status(accountId(c), c.req.valid('param').id), 200);
|
|
53
|
+
const sources = requireSources(c);
|
|
54
|
+
return c.json(await sources.status(accountId(c), c.req.valid('param').id), 200);
|
|
71
55
|
});
|
|
72
56
|
buildHonoRoute(app, syncSkillSourceContract, async (c) => {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
return unavailable();
|
|
76
|
-
if (!lib.sourceService)
|
|
77
|
-
return sourcesUnavailable();
|
|
78
|
-
return c.json(await lib.sourceService.sync(accountId(c), c.req.valid('param').id), 200);
|
|
57
|
+
const sources = requireSources(c);
|
|
58
|
+
return c.json(await sources.sync(accountId(c), c.req.valid('param').id), 200);
|
|
79
59
|
});
|
|
80
60
|
return app;
|
|
81
61
|
}
|
|
82
62
|
/** Guard an account-scoped request: require sign-in + membership (404 otherwise). */
|
|
83
63
|
async function accountGuard(c, next) {
|
|
84
|
-
const user = c
|
|
85
|
-
if (!user) {
|
|
86
|
-
throw new UnauthorizedError('Sign in to manage the skill library');
|
|
87
|
-
}
|
|
64
|
+
const user = requireUser(c, 'Sign in to manage the skill library');
|
|
88
65
|
// requireMember throws NotFoundError (→ 404) when the user isn't a member.
|
|
89
66
|
await c.get('container').accountService.requireMember(param(c, 'accountId'), user.id);
|
|
90
67
|
await next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillLibraryController.js","sourceRoot":"","sources":["../../../src/modules/skillLibrary/SkillLibraryController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SkillLibraryController.js","sourceRoot":"","sources":["../../../src/modules/skillLibrary/SkillLibraryController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackController.d.ts","sourceRoot":"","sources":["../../../src/modules/slack/SlackController.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"SlackController.d.ts","sourceRoot":"","sources":["../../../src/modules/slack/SlackController.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAkB/C;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,CA0F9C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAuBnD"}
|
|
@@ -5,19 +5,17 @@ import { StateSigner } from '../../github/state.js';
|
|
|
5
5
|
import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
|
|
6
6
|
import { param } from '../../http/params.js';
|
|
7
7
|
import { UnavailableError, UnauthorizedError } from '@cat-factory/kernel';
|
|
8
|
+
import { requireCapability } from '../../http/guards.js';
|
|
8
9
|
// The bot scopes the "Add to Slack" flow requests: post messages + read channels
|
|
9
10
|
// (public + private) so the routing picker can list them. `chat:write.public` lets
|
|
10
11
|
// the bot post to PUBLIC channels it hasn't been explicitly invited to — without it
|
|
11
12
|
// a routed public channel silently rejects every message (`not_in_channel`).
|
|
12
13
|
// Private channels still require an invite (Slack offers no public-write analogue).
|
|
13
14
|
const SLACK_BOT_SCOPES = ['chat:write', 'chat:write.public', 'channels:read', 'groups:read'];
|
|
14
|
-
/** Resolve the Slack module or
|
|
15
|
+
/** Resolve the Slack module, or refuse with a 503 naming what isn't wired. */
|
|
15
16
|
function requireSlack(c) {
|
|
16
|
-
return c.get('container').slack
|
|
17
|
+
return requireCapability(c.get('container').slack, 'Slack integration is not configured');
|
|
17
18
|
}
|
|
18
|
-
const unavailable = () => {
|
|
19
|
-
throw new UnavailableError('Slack integration is not configured');
|
|
20
|
-
};
|
|
21
19
|
/**
|
|
22
20
|
* Workspace-scoped Slack endpoints: per-account connection management (manual
|
|
23
21
|
* bot-token paste + the OAuth "Add to Slack" URL), per-workspace notification
|
|
@@ -31,8 +29,6 @@ export function slackController() {
|
|
|
31
29
|
// ---- connection (per-account) ------------------------------------------
|
|
32
30
|
buildHonoRoute(app, getSlackConnectionContract, async (c) => {
|
|
33
31
|
const slack = requireSlack(c);
|
|
34
|
-
if (!slack)
|
|
35
|
-
return unavailable();
|
|
36
32
|
const connection = await slack.connectionService.getConnection(param(c, 'workspaceId'));
|
|
37
33
|
const oauthEnabled = await slack.connectionService.oauthEnabled(param(c, 'workspaceId'));
|
|
38
34
|
return c.json({ connection, oauthEnabled }, 200);
|
|
@@ -42,8 +38,6 @@ export function slackController() {
|
|
|
42
38
|
// (the manual-token path below is then the way to connect).
|
|
43
39
|
buildHonoRoute(app, getSlackInstallUrlContract, async (c) => {
|
|
44
40
|
const slack = requireSlack(c);
|
|
45
|
-
if (!slack)
|
|
46
|
-
return unavailable();
|
|
47
41
|
const workspaceId = param(c, 'workspaceId');
|
|
48
42
|
if (!(await slack.connectionService.oauthEnabled(workspaceId))) {
|
|
49
43
|
throw new UnavailableError('Slack OAuth is not configured');
|
|
@@ -60,53 +54,39 @@ export function slackController() {
|
|
|
60
54
|
// Manual bot-token paste (the always-available fallback to OAuth).
|
|
61
55
|
buildHonoRoute(app, connectSlackContract, async (c) => {
|
|
62
56
|
const slack = requireSlack(c);
|
|
63
|
-
if (!slack)
|
|
64
|
-
return unavailable();
|
|
65
57
|
const connection = await slack.connectionService.connectWithToken(param(c, 'workspaceId'), c.req.valid('json').token);
|
|
66
58
|
return c.json(connection, 201);
|
|
67
59
|
});
|
|
68
60
|
buildHonoRoute(app, disconnectSlackContract, async (c) => {
|
|
69
61
|
const slack = requireSlack(c);
|
|
70
|
-
if (!slack)
|
|
71
|
-
return unavailable();
|
|
72
62
|
await slack.connectionService.disconnect(param(c, 'workspaceId'));
|
|
73
63
|
return c.body(null, 204);
|
|
74
64
|
});
|
|
75
65
|
// Channels the bot can post to, for the routing picker.
|
|
76
66
|
buildHonoRoute(app, listSlackChannelsContract, async (c) => {
|
|
77
67
|
const slack = requireSlack(c);
|
|
78
|
-
if (!slack)
|
|
79
|
-
return unavailable();
|
|
80
68
|
const channels = await slack.connectionService.listChannels(param(c, 'workspaceId'));
|
|
81
69
|
return c.json({ channels }, 200);
|
|
82
70
|
});
|
|
83
71
|
// ---- routing (per-workspace) -------------------------------------------
|
|
84
72
|
buildHonoRoute(app, getSlackSettingsContract, async (c) => {
|
|
85
73
|
const slack = requireSlack(c);
|
|
86
|
-
if (!slack)
|
|
87
|
-
return unavailable();
|
|
88
74
|
const settings = await slack.settingsService.get(param(c, 'workspaceId'));
|
|
89
75
|
return c.json(settings, 200);
|
|
90
76
|
});
|
|
91
77
|
buildHonoRoute(app, updateSlackSettingsContract, async (c) => {
|
|
92
78
|
const slack = requireSlack(c);
|
|
93
|
-
if (!slack)
|
|
94
|
-
return unavailable();
|
|
95
79
|
const settings = await slack.settingsService.update(param(c, 'workspaceId'), c.req.valid('json'));
|
|
96
80
|
return c.json(settings, 200);
|
|
97
81
|
});
|
|
98
82
|
// ---- member mapping (per-account) --------------------------------------
|
|
99
83
|
buildHonoRoute(app, getSlackMemberMappingContract, async (c) => {
|
|
100
84
|
const slack = requireSlack(c);
|
|
101
|
-
if (!slack)
|
|
102
|
-
return unavailable();
|
|
103
85
|
const entries = await slack.memberMappingService.get(param(c, 'workspaceId'));
|
|
104
86
|
return c.json({ entries }, 200);
|
|
105
87
|
});
|
|
106
88
|
buildHonoRoute(app, updateSlackMemberMappingContract, async (c) => {
|
|
107
89
|
const slack = requireSlack(c);
|
|
108
|
-
if (!slack)
|
|
109
|
-
return unavailable();
|
|
110
90
|
const entries = await slack.memberMappingService.update(param(c, 'workspaceId'), c.req.valid('json').entries);
|
|
111
91
|
return c.json({ entries }, 200);
|
|
112
92
|
});
|
|
@@ -121,9 +101,7 @@ export function slackOAuthController() {
|
|
|
121
101
|
const app = new Hono();
|
|
122
102
|
app.get('/oauth/callback', async (c) => {
|
|
123
103
|
const container = c.get('container');
|
|
124
|
-
const slack = container.slack;
|
|
125
|
-
if (!slack)
|
|
126
|
-
return unavailable();
|
|
104
|
+
const slack = requireCapability(container.slack, 'Slack integration is not configured');
|
|
127
105
|
const code = c.req.query('code');
|
|
128
106
|
if (!code) {
|
|
129
107
|
return c.json({ error: { code: 'validation', message: 'Missing code' } }, 400);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackController.js","sourceRoot":"","sources":["../../../src/modules/slack/SlackController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,gCAAgC,EAChC,2BAA2B,GAC5B,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;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"SlackController.js","sourceRoot":"","sources":["../../../src/modules/slack/SlackController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,gCAAgC,EAChC,2BAA2B,GAC5B,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;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,iFAAiF;AACjF,mFAAmF;AACnF,oFAAoF;AACpF,6EAA6E;AAC7E,oFAAoF;AACpF,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAA;AAE5F,8EAA8E;AAC9E,SAAS,YAAY,CAAmB,CAAa;IACnD,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAA;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE/D,2EAA2E;IAE3E,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvF,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACxF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,iFAAiF;IACjF,gFAAgF;IAChF,4DAA4D;IAC5D,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,gBAAgB,CAAC,+BAA+B,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC5E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC9B,WAAW;YACX,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,MAAM,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAA;QAC/F,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,mEAAmE;IACnE,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAC/D,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAC1B,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACjE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,wDAAwD;IACxD,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACpF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,2EAA2E;IAE3E,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACzE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,CACjD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,2EAA2E;IAE3E,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC7E,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,gCAAgC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChE,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,MAAM,CACrD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAC5B,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAA;QAEvF,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACnE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,iBAAiB,CAAC,0BAA0B,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QACtE,gFAAgF;QAChF,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskSourceController.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAW3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"TaskSourceController.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAW3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAoF/C;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAmOnD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CAiCpD"}
|