@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
|
@@ -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 release-health module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the release-health module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireReleaseHealth(c) {
|
|
9
|
-
return c.get('container').releaseHealth
|
|
9
|
+
return requireCapability(c.get('container').releaseHealth, 'The observability integration is not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('The observability integration is not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* Per-workspace settings for the post-release-health gate: the (single) observability
|
|
16
13
|
* connection (provider + credentials, write-only, never read back) and the per-block
|
|
@@ -21,40 +18,28 @@ export function releaseHealthController() {
|
|
|
21
18
|
app.use('*', requireWorkspacePermission('settings.manage'));
|
|
22
19
|
buildHonoRoute(app, getObservabilityConnectionContract, async (c) => {
|
|
23
20
|
const rh = requireReleaseHealth(c);
|
|
24
|
-
if (!rh)
|
|
25
|
-
return unavailable();
|
|
26
21
|
return c.json(await rh.service.getConnection(param(c, 'workspaceId')), 200);
|
|
27
22
|
});
|
|
28
23
|
buildHonoRoute(app, setObservabilityConnectionContract, async (c) => {
|
|
29
24
|
const rh = requireReleaseHealth(c);
|
|
30
|
-
if (!rh)
|
|
31
|
-
return unavailable();
|
|
32
25
|
return c.json(await rh.service.setConnection(param(c, 'workspaceId'), c.req.valid('json')), 200);
|
|
33
26
|
});
|
|
34
27
|
buildHonoRoute(app, deleteObservabilityConnectionContract, async (c) => {
|
|
35
28
|
const rh = requireReleaseHealth(c);
|
|
36
|
-
if (!rh)
|
|
37
|
-
return unavailable();
|
|
38
29
|
await rh.service.deleteConnection(param(c, 'workspaceId'));
|
|
39
30
|
return c.body(null, 204);
|
|
40
31
|
});
|
|
41
32
|
buildHonoRoute(app, listReleaseHealthConfigsContract, async (c) => {
|
|
42
33
|
const rh = requireReleaseHealth(c);
|
|
43
|
-
if (!rh)
|
|
44
|
-
return unavailable();
|
|
45
34
|
return c.json(await rh.service.listConfigs(param(c, 'workspaceId')), 200);
|
|
46
35
|
});
|
|
47
36
|
buildHonoRoute(app, upsertReleaseHealthConfigContract, async (c) => {
|
|
48
37
|
const rh = requireReleaseHealth(c);
|
|
49
|
-
if (!rh)
|
|
50
|
-
return unavailable();
|
|
51
38
|
const config = await rh.service.upsertConfig(param(c, 'workspaceId'), c.req.valid('param').blockId, c.req.valid('json'));
|
|
52
39
|
return c.json(config, 200);
|
|
53
40
|
});
|
|
54
41
|
buildHonoRoute(app, deleteReleaseHealthConfigContract, async (c) => {
|
|
55
42
|
const rh = requireReleaseHealth(c);
|
|
56
|
-
if (!rh)
|
|
57
|
-
return unavailable();
|
|
58
43
|
await rh.service.deleteConfig(param(c, 'workspaceId'), c.req.valid('param').blockId);
|
|
59
44
|
return c.body(null, 204);
|
|
60
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseHealthController.js","sourceRoot":"","sources":["../../../src/modules/releaseHealth/ReleaseHealthController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,iCAAiC,EACjC,kCAAkC,EAClC,gCAAgC,EAChC,kCAAkC,EAClC,iCAAiC,GAClC,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":"ReleaseHealthController.js","sourceRoot":"","sources":["../../../src/modules/releaseHealth/ReleaseHealthController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsController.d.ts","sourceRoot":"","sources":["../../../src/modules/reports/ReportsController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ReportsController.d.ts","sourceRoot":"","sources":["../../../src/modules/reports/ReportsController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,CAmBhD"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { getReportsContract } from '@cat-factory/contracts';
|
|
2
2
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
|
-
import { UnavailableError
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import { UnavailableError } from '@cat-factory/kernel';
|
|
5
|
+
import { requireUser } from '../../http/guards.js';
|
|
6
|
+
/** The signed-in user, or a 401. Generic over the (contract-typed) env, like AccountController. */
|
|
7
|
+
function requireAccountUser(c) {
|
|
8
|
+
const user = requireUser(c, 'Sign in to view reports');
|
|
9
|
+
return { id: user.id, login: user.login, name: user.name };
|
|
9
10
|
}
|
|
10
|
-
const signInRequired = () => {
|
|
11
|
-
throw new UnauthorizedError('Sign in to view reports');
|
|
12
|
-
};
|
|
13
11
|
/**
|
|
14
12
|
* Reports: `GET /accounts/:accountId/reports` — cross-cutting usage analytics for an
|
|
15
13
|
* account over a time window (spend per model / agent kind, and spend + run activity per
|
|
@@ -29,9 +27,7 @@ const signInRequired = () => {
|
|
|
29
27
|
export function reportsController() {
|
|
30
28
|
const app = new Hono();
|
|
31
29
|
buildHonoRoute(app, getReportsContract, async (c) => {
|
|
32
|
-
const user =
|
|
33
|
-
if (!user)
|
|
34
|
-
return signInRequired();
|
|
30
|
+
const user = requireAccountUser(c);
|
|
35
31
|
const container = c.get('container');
|
|
36
32
|
if (!container.reports) {
|
|
37
33
|
throw new UnavailableError('Reports are not available on this deployment');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsController.js","sourceRoot":"","sources":["../../../src/modules/reports/ReportsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"ReportsController.js","sourceRoot":"","sources":["../../../src/modules/reports/ReportsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,mGAAmG;AACnG,SAAS,kBAAkB,CAAmB,CAAa;IACzD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAA;IACtD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,gBAAgB,CAAC,8CAA8C,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,EAC7F,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequirementReviewController.d.ts","sourceRoot":"","sources":["../../../src/modules/requirements/RequirementReviewController.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"RequirementReviewController.d.ts","sourceRoot":"","sources":["../../../src/modules/requirements/RequirementReviewController.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAmB/C;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAAC,MAAM,CAAC,CA6K1D"}
|
|
@@ -2,14 +2,20 @@ import { acceptRequirementRecommendationContract, getRequirementReviewContract,
|
|
|
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 requirements module or
|
|
5
|
+
import { requireCapability } from '../../http/guards.js';
|
|
6
|
+
/** Resolve the requirements module, or refuse with a 503 naming what isn't wired. */
|
|
7
7
|
function requireRequirements(c) {
|
|
8
|
-
return c.get('container').requirements
|
|
8
|
+
return requireCapability(c.get('container').requirements, 'Requirements review is not configured');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The requirements module as a REFUSAL only. These routes drive their mutations through the
|
|
12
|
+
* execution service and read nothing off the module itself — but an unwired deployment must
|
|
13
|
+
* still 503 rather than answer. Discarding a `requireRequirements` result would read as a
|
|
14
|
+
* no-op statement, so the guard is named for what it does and returns `void`.
|
|
15
|
+
*/
|
|
16
|
+
function assertRequirementsWired(c) {
|
|
17
|
+
requireRequirements(c);
|
|
9
18
|
}
|
|
10
|
-
const unavailable = () => {
|
|
11
|
-
throw new UnavailableError('Requirements review is not configured');
|
|
12
|
-
};
|
|
13
19
|
/**
|
|
14
20
|
* Workspace-scoped requirements-review endpoints. The initial review runs an LLM inline and
|
|
15
21
|
* returns the entity. Incorporation, by contrast, is ASYNCHRONOUS: it records the human's
|
|
@@ -23,8 +29,6 @@ export function requirementReviewController() {
|
|
|
23
29
|
// The current review for a block (null when none has been run yet).
|
|
24
30
|
buildHonoRoute(app, getRequirementReviewContract, async (c) => {
|
|
25
31
|
const requirements = requireRequirements(c);
|
|
26
|
-
if (!requirements)
|
|
27
|
-
return unavailable();
|
|
28
32
|
const review = await requirements.service.getForBlock(param(c, 'workspaceId'), c.req.valid('param').blockId);
|
|
29
33
|
return c.json(review, 200);
|
|
30
34
|
});
|
|
@@ -32,9 +36,7 @@ export function requirementReviewController() {
|
|
|
32
36
|
// Routed through the execution service so the off-path surface honours the task's
|
|
33
37
|
// merge-preset knobs (iteration budget + tolerated severity) exactly like the gate.
|
|
34
38
|
buildHonoRoute(app, reviewRequirementsContract, async (c) => {
|
|
35
|
-
|
|
36
|
-
if (!requirements)
|
|
37
|
-
return unavailable();
|
|
39
|
+
assertRequirementsWired(c);
|
|
38
40
|
const review = await c
|
|
39
41
|
.get('container')
|
|
40
42
|
.executionService.requirementsReview.review(param(c, 'workspaceId'), c.req.valid('param').blockId);
|
|
@@ -43,8 +45,6 @@ export function requirementReviewController() {
|
|
|
43
45
|
// Answer a single review item.
|
|
44
46
|
buildHonoRoute(app, replyRequirementItemContract, async (c) => {
|
|
45
47
|
const requirements = requireRequirements(c);
|
|
46
|
-
if (!requirements)
|
|
47
|
-
return unavailable();
|
|
48
48
|
const { reviewId, itemId } = c.req.valid('param');
|
|
49
49
|
const review = await requirements.service.replyToItem(param(c, 'workspaceId'), reviewId, itemId, c.req.valid('json').reply);
|
|
50
50
|
return c.json(review, 200);
|
|
@@ -52,8 +52,6 @@ export function requirementReviewController() {
|
|
|
52
52
|
// Set a review item's status (resolve / dismiss / reopen).
|
|
53
53
|
buildHonoRoute(app, updateRequirementItemStatusContract, async (c) => {
|
|
54
54
|
const requirements = requireRequirements(c);
|
|
55
|
-
if (!requirements)
|
|
56
|
-
return unavailable();
|
|
57
55
|
const { reviewId, itemId } = c.req.valid('param');
|
|
58
56
|
const review = await requirements.service.setItemStatus(param(c, 'workspaceId'), reviewId, itemId, c.req.valid('json').status);
|
|
59
57
|
return c.json(review, 200);
|
|
@@ -65,9 +63,7 @@ export function requirementReviewController() {
|
|
|
65
63
|
// calls them back only if the re-review needs input. Blocks scoped (the review is resolved
|
|
66
64
|
// from the block) to match the other run-driving endpoints.
|
|
67
65
|
buildHonoRoute(app, incorporateRequirementsContract, async (c) => {
|
|
68
|
-
|
|
69
|
-
if (!requirements)
|
|
70
|
-
return unavailable();
|
|
66
|
+
assertRequirementsWired(c);
|
|
71
67
|
const review = await c
|
|
72
68
|
.get('container')
|
|
73
69
|
.executionService.requirementsReview.incorporate(param(c, 'workspaceId'), c.req.valid('param').blockId, c.req.valid('json').feedback);
|
|
@@ -77,9 +73,7 @@ export function requirementReviewController() {
|
|
|
77
73
|
// parked run advances; otherwise the response carries the next cycle's findings (or the
|
|
78
74
|
// iteration-cap state). Returns the updated review.
|
|
79
75
|
buildHonoRoute(app, reReviewRequirementsContract, async (c) => {
|
|
80
|
-
|
|
81
|
-
if (!requirements)
|
|
82
|
-
return unavailable();
|
|
76
|
+
assertRequirementsWired(c);
|
|
83
77
|
const review = await c
|
|
84
78
|
.get('container')
|
|
85
79
|
.executionService.requirementsReview.reReview(param(c, 'workspaceId'), c.req.valid('param').blockId);
|
|
@@ -88,9 +82,7 @@ export function requirementReviewController() {
|
|
|
88
82
|
// Proceed: settle the requirements (last incorporated doc wins downstream) and advance
|
|
89
83
|
// the parked run. Used when every finding is dismissed.
|
|
90
84
|
buildHonoRoute(app, proceedRequirementsContract, async (c) => {
|
|
91
|
-
|
|
92
|
-
if (!requirements)
|
|
93
|
-
return unavailable();
|
|
85
|
+
assertRequirementsWired(c);
|
|
94
86
|
const review = await c
|
|
95
87
|
.get('container')
|
|
96
88
|
.executionService.requirementsReview.proceed(param(c, 'workspaceId'), c.req.valid('param').blockId);
|
|
@@ -105,8 +97,6 @@ export function requirementReviewController() {
|
|
|
105
97
|
// review exists.
|
|
106
98
|
buildHonoRoute(app, requestRequirementRecommendationsContract, async (c) => {
|
|
107
99
|
const requirements = requireRequirements(c);
|
|
108
|
-
if (!requirements)
|
|
109
|
-
return unavailable();
|
|
110
100
|
const workspaceId = param(c, 'workspaceId');
|
|
111
101
|
const blockId = c.req.valid('param').blockId;
|
|
112
102
|
const review = await requirements.service.getForBlock(workspaceId, blockId);
|
|
@@ -122,16 +112,12 @@ export function requirementReviewController() {
|
|
|
122
112
|
// incorporation), reject it, or re-request it with a "do it differently" note.
|
|
123
113
|
buildHonoRoute(app, acceptRequirementRecommendationContract, async (c) => {
|
|
124
114
|
const requirements = requireRequirements(c);
|
|
125
|
-
if (!requirements)
|
|
126
|
-
return unavailable();
|
|
127
115
|
const { reviewId, recId } = c.req.valid('param');
|
|
128
116
|
const review = await requirements.service.acceptRecommendation(param(c, 'workspaceId'), reviewId, recId);
|
|
129
117
|
return c.json(review, 200);
|
|
130
118
|
});
|
|
131
119
|
buildHonoRoute(app, rejectRequirementRecommendationContract, async (c) => {
|
|
132
120
|
const requirements = requireRequirements(c);
|
|
133
|
-
if (!requirements)
|
|
134
|
-
return unavailable();
|
|
135
121
|
const { reviewId, recId } = c.req.valid('param');
|
|
136
122
|
const review = await requirements.service.rejectRecommendation(param(c, 'workspaceId'), reviewId, recId);
|
|
137
123
|
return c.json(review, 200);
|
|
@@ -139,9 +125,7 @@ export function requirementReviewController() {
|
|
|
139
125
|
// Re-request a recommendation with a "do it differently" note. ASYNCHRONOUS like the batch:
|
|
140
126
|
// resets the recommendation to `pending` and signals the driver to re-run the Writer.
|
|
141
127
|
buildHonoRoute(app, reRequestRequirementRecommendationContract, async (c) => {
|
|
142
|
-
|
|
143
|
-
if (!requirements)
|
|
144
|
-
return unavailable();
|
|
128
|
+
assertRequirementsWired(c);
|
|
145
129
|
const { reviewId, recId } = c.req.valid('param');
|
|
146
130
|
const review = await c
|
|
147
131
|
.get('container')
|
|
@@ -151,9 +135,7 @@ export function requirementReviewController() {
|
|
|
151
135
|
// Resolve a review that hit its iteration cap: one more round / proceed anyway / stop
|
|
152
136
|
// and reset the task to phase zero. Returns the updated review.
|
|
153
137
|
buildHonoRoute(app, resolveRequirementsExceededContract, async (c) => {
|
|
154
|
-
|
|
155
|
-
if (!requirements)
|
|
156
|
-
return unavailable();
|
|
138
|
+
assertRequirementsWired(c);
|
|
157
139
|
const review = await c
|
|
158
140
|
.get('container')
|
|
159
141
|
.executionService.requirementsReview.resolveExceeded(param(c, 'workspaceId'), c.req.valid('param').blockId, c.req.valid('json').choice);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequirementReviewController.js","sourceRoot":"","sources":["../../../src/modules/requirements/RequirementReviewController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uCAAuC,EACvC,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,0CAA0C,EAC1C,4BAA4B,EAC5B,uCAAuC,EACvC,4BAA4B,EAC5B,yCAAyC,EACzC,mCAAmC,EACnC,0BAA0B,EAC1B,mCAAmC,GACpC,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":"RequirementReviewController.js","sourceRoot":"","sources":["../../../src/modules/requirements/RequirementReviewController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerPoolController.d.ts","sourceRoot":"","sources":["../../../src/modules/runners/RunnerPoolController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"RunnerPoolController.d.ts","sourceRoot":"","sources":["../../../src/modules/runners/RunnerPoolController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAuDnD"}
|
|
@@ -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 runners module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the runners module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireRunners(c) {
|
|
9
|
-
return c.get('container').runners
|
|
9
|
+
return requireCapability(c.get('container').runners, 'Runner pool integration is not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Runner pool integration is not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* Workspace-scoped runner-pool endpoints: registering the pool scheduler manifest
|
|
16
13
|
* plus its encrypted secret bundle, rotating the secrets, and unregistering. The
|
|
@@ -22,15 +19,11 @@ export function runnerPoolController() {
|
|
|
22
19
|
app.use('*', requireWorkspacePermission('integrations.manage'));
|
|
23
20
|
buildHonoRoute(app, getRunnerPoolConnectionContract, async (c) => {
|
|
24
21
|
const runners = requireRunners(c);
|
|
25
|
-
if (!runners)
|
|
26
|
-
return unavailable();
|
|
27
22
|
const connection = await runners.connectionService.getConnection(param(c, 'workspaceId'));
|
|
28
23
|
return c.json({ connection }, 200);
|
|
29
24
|
});
|
|
30
25
|
buildHonoRoute(app, registerRunnerPoolContract, async (c) => {
|
|
31
26
|
const runners = requireRunners(c);
|
|
32
|
-
if (!runners)
|
|
33
|
-
return unavailable();
|
|
34
27
|
const { config, secrets } = c.req.valid('json');
|
|
35
28
|
const connection = await runners.connectionService.register(param(c, 'workspaceId'), {
|
|
36
29
|
config,
|
|
@@ -40,28 +33,20 @@ export function runnerPoolController() {
|
|
|
40
33
|
});
|
|
41
34
|
buildHonoRoute(app, updateRunnerPoolSecretsContract, async (c) => {
|
|
42
35
|
const runners = requireRunners(c);
|
|
43
|
-
if (!runners)
|
|
44
|
-
return unavailable();
|
|
45
36
|
const connection = await runners.connectionService.updateSecrets(param(c, 'workspaceId'), c.req.valid('json').secrets);
|
|
46
37
|
return c.json(connection, 200);
|
|
47
38
|
});
|
|
48
39
|
buildHonoRoute(app, unregisterRunnerPoolContract, async (c) => {
|
|
49
40
|
const runners = requireRunners(c);
|
|
50
|
-
if (!runners)
|
|
51
|
-
return unavailable();
|
|
52
41
|
await runners.connectionService.unregister(param(c, 'workspaceId'));
|
|
53
42
|
return c.body(null, 204);
|
|
54
43
|
});
|
|
55
44
|
buildHonoRoute(app, describeRunnerPoolProviderContract, async (c) => {
|
|
56
45
|
const runners = requireRunners(c);
|
|
57
|
-
if (!runners)
|
|
58
|
-
return unavailable();
|
|
59
46
|
return c.json(await runners.connectionService.describeProvider(param(c, 'workspaceId'), c.req.query('kind')), 200);
|
|
60
47
|
});
|
|
61
48
|
buildHonoRoute(app, testRunnerPoolConnectionContract, async (c) => {
|
|
62
49
|
const runners = requireRunners(c);
|
|
63
|
-
if (!runners)
|
|
64
|
-
return unavailable();
|
|
65
50
|
return c.json(await runners.connectionService.testConnection(param(c, 'workspaceId'), c.req.valid('json')), 200);
|
|
66
51
|
});
|
|
67
52
|
return app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerPoolController.js","sourceRoot":"","sources":["../../../src/modules/runners/RunnerPoolController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,+BAA+B,EAC/B,0BAA0B,EAC1B,gCAAgC,EAChC,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":"RunnerPoolController.js","sourceRoot":"","sources":["../../../src/modules/runners/RunnerPoolController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxController.d.ts","sourceRoot":"","sources":["../../../src/modules/sandbox/SandboxController.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"SandboxController.d.ts","sourceRoot":"","sources":["../../../src/modules/sandbox/SandboxController.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,CAkHhD"}
|
|
@@ -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 Sandbox module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the Sandbox module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireSandbox(c) {
|
|
9
|
-
return c.get('container').sandbox
|
|
9
|
+
return requireCapability(c.get('container').sandbox, 'The Sandbox is not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('The Sandbox is not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* The Sandbox API (the parallel prompt/model testing surface): manage versioned prompt
|
|
16
13
|
* candidates + the fixture library, define experiments (prompt × model × fixture), and
|
|
@@ -23,8 +20,6 @@ export function sandboxController() {
|
|
|
23
20
|
// ---- overview -------------------------------------------------------------
|
|
24
21
|
buildHonoRoute(app, sandboxOverviewContract, async (c) => {
|
|
25
22
|
const sandbox = requireSandbox(c);
|
|
26
|
-
if (!sandbox)
|
|
27
|
-
return unavailable();
|
|
28
23
|
const overview = await sandbox.service.overview(param(c, 'workspaceId'));
|
|
29
24
|
// The catalog is exposed as `readonly` arrays; clone into the mutable shape the
|
|
30
25
|
// contract response schema infers (the readonly-ness is a source-side detail only).
|
|
@@ -39,85 +34,61 @@ export function sandboxController() {
|
|
|
39
34
|
// ---- prompt versions ------------------------------------------------------
|
|
40
35
|
buildHonoRoute(app, listSandboxPromptsContract, async (c) => {
|
|
41
36
|
const sandbox = requireSandbox(c);
|
|
42
|
-
if (!sandbox)
|
|
43
|
-
return unavailable();
|
|
44
37
|
const agentKind = c.req.valid('query').agentKind;
|
|
45
38
|
return c.json(await sandbox.service.listPrompts(param(c, 'workspaceId'), agentKind), 200);
|
|
46
39
|
});
|
|
47
40
|
buildHonoRoute(app, cloneSandboxPromptContract, async (c) => {
|
|
48
41
|
const sandbox = requireSandbox(c);
|
|
49
|
-
if (!sandbox)
|
|
50
|
-
return unavailable();
|
|
51
42
|
const version = await sandbox.service.clonePrompt(param(c, 'workspaceId'), c.req.valid('json'));
|
|
52
43
|
return c.json(version, 201);
|
|
53
44
|
});
|
|
54
45
|
buildHonoRoute(app, saveSandboxPromptContract, async (c) => {
|
|
55
46
|
const sandbox = requireSandbox(c);
|
|
56
|
-
if (!sandbox)
|
|
57
|
-
return unavailable();
|
|
58
47
|
const version = await sandbox.service.saveVersion(param(c, 'workspaceId'), c.req.valid('json'));
|
|
59
48
|
return c.json(version, 201);
|
|
60
49
|
});
|
|
61
50
|
buildHonoRoute(app, setSandboxPromptLabelsContract, async (c) => {
|
|
62
51
|
const sandbox = requireSandbox(c);
|
|
63
|
-
if (!sandbox)
|
|
64
|
-
return unavailable();
|
|
65
52
|
const version = await sandbox.service.setLabels(param(c, 'workspaceId'), c.req.valid('param').promptId, c.req.valid('json'));
|
|
66
53
|
return c.json(version, 200);
|
|
67
54
|
});
|
|
68
55
|
buildHonoRoute(app, archiveSandboxPromptContract, async (c) => {
|
|
69
56
|
const sandbox = requireSandbox(c);
|
|
70
|
-
if (!sandbox)
|
|
71
|
-
return unavailable();
|
|
72
57
|
await sandbox.service.archivePrompt(param(c, 'workspaceId'), c.req.valid('param').promptId);
|
|
73
58
|
return c.body(null, 204);
|
|
74
59
|
});
|
|
75
60
|
// ---- fixtures -------------------------------------------------------------
|
|
76
61
|
buildHonoRoute(app, listSandboxFixturesContract, async (c) => {
|
|
77
62
|
const sandbox = requireSandbox(c);
|
|
78
|
-
if (!sandbox)
|
|
79
|
-
return unavailable();
|
|
80
63
|
return c.json(await sandbox.service.listFixtures(param(c, 'workspaceId')), 200);
|
|
81
64
|
});
|
|
82
65
|
buildHonoRoute(app, createSandboxFixtureContract, async (c) => {
|
|
83
66
|
const sandbox = requireSandbox(c);
|
|
84
|
-
if (!sandbox)
|
|
85
|
-
return unavailable();
|
|
86
67
|
const fixture = await sandbox.service.createFixture(param(c, 'workspaceId'), c.req.valid('json'));
|
|
87
68
|
return c.json(fixture, 201);
|
|
88
69
|
});
|
|
89
70
|
buildHonoRoute(app, removeSandboxFixtureContract, async (c) => {
|
|
90
71
|
const sandbox = requireSandbox(c);
|
|
91
|
-
if (!sandbox)
|
|
92
|
-
return unavailable();
|
|
93
72
|
await sandbox.service.removeFixture(param(c, 'workspaceId'), c.req.valid('param').fixtureId);
|
|
94
73
|
return c.body(null, 204);
|
|
95
74
|
});
|
|
96
75
|
// ---- experiments ----------------------------------------------------------
|
|
97
76
|
buildHonoRoute(app, listSandboxExperimentsContract, async (c) => {
|
|
98
77
|
const sandbox = requireSandbox(c);
|
|
99
|
-
if (!sandbox)
|
|
100
|
-
return unavailable();
|
|
101
78
|
return c.json(await sandbox.service.listExperiments(param(c, 'workspaceId')), 200);
|
|
102
79
|
});
|
|
103
80
|
buildHonoRoute(app, createSandboxExperimentContract, async (c) => {
|
|
104
81
|
const sandbox = requireSandbox(c);
|
|
105
|
-
if (!sandbox)
|
|
106
|
-
return unavailable();
|
|
107
82
|
const experiment = await sandbox.service.createExperiment(param(c, 'workspaceId'), c.req.valid('json'));
|
|
108
83
|
return c.json(experiment, 201);
|
|
109
84
|
});
|
|
110
85
|
buildHonoRoute(app, getSandboxExperimentContract, async (c) => {
|
|
111
86
|
const sandbox = requireSandbox(c);
|
|
112
|
-
if (!sandbox)
|
|
113
|
-
return unavailable();
|
|
114
87
|
return c.json(await sandbox.service.getExperiment(param(c, 'workspaceId'), c.req.valid('param').experimentId), 200);
|
|
115
88
|
});
|
|
116
89
|
// Run + grade every cell of the experiment, then return the full result grid.
|
|
117
90
|
buildHonoRoute(app, launchSandboxExperimentContract, async (c) => {
|
|
118
91
|
const sandbox = requireSandbox(c);
|
|
119
|
-
if (!sandbox)
|
|
120
|
-
return unavailable();
|
|
121
92
|
return c.json(await sandbox.runService.launch(param(c, 'workspaceId'), c.req.valid('param').experimentId), 200);
|
|
122
93
|
});
|
|
123
94
|
return app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxController.js","sourceRoot":"","sources":["../../../src/modules/sandbox/SandboxController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,GAC/B,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":"SandboxController.js","sourceRoot":"","sources":["../../../src/modules/sandbox/SandboxController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,GAC/B,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,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,gFAAgF;AAChF,SAAS,cAAc,CAAmB,CAAa;IACrD,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAA;AACvF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE/D,8EAA8E;IAC9E,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACxE,gFAAgF;QAChF,oFAAoF;QACpF,OAAO,CAAC,CAAC,IAAI,CACX;YACE,GAAG,QAAQ;YACX,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC7C,GAAG,IAAI;gBACP,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;aACrC,CAAC,CAAC;SACJ,EACD,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,8EAA8E;IAC9E,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAA;QAChD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/F,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/F,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAC7C,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAC7B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAA;QAC3F,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,8EAA8E;IAC9E,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CACjD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAA;QAC5F,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,8EAA8E;IAC9E,cAAc,CAAC,GAAG,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CACvD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CACjC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAClC,EACD,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,8EAA8E;IAC9E,cAAc,CAAC,GAAG,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAC3F,GAAG,CACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceFragmentDefaultsController.d.ts","sourceRoot":"","sources":["../../../src/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ServiceFragmentDefaultsController.d.ts","sourceRoot":"","sources":["../../../src/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAY/C;;;;GAIG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAAC,MAAM,CAAC,CAehE"}
|
|
@@ -2,14 +2,11 @@ import { getServiceFragmentDefaultsContract, setServiceFragmentDefaultsContract,
|
|
|
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 service-fragment-defaults module or
|
|
5
|
+
import { requireCapability } from '../../http/guards.js';
|
|
6
|
+
/** Resolve the service-fragment-defaults module, or refuse with a 503 naming what isn't wired. */
|
|
7
7
|
function requireDefaults(c) {
|
|
8
|
-
return c.get('container').serviceFragmentDefaults
|
|
8
|
+
return requireCapability(c.get('container').serviceFragmentDefaults, 'Service fragment defaults are not configured');
|
|
9
9
|
}
|
|
10
|
-
const unavailable = () => {
|
|
11
|
-
throw new UnavailableError('Service fragment defaults are not configured');
|
|
12
|
-
};
|
|
13
10
|
/**
|
|
14
11
|
* Read/replace a workspace's default service-fragment selection (the best-practice
|
|
15
12
|
* fragment ids new services inherit). PUT replaces the whole list wholesale. Mounted
|
|
@@ -19,14 +16,10 @@ export function serviceFragmentDefaultsController() {
|
|
|
19
16
|
const app = new Hono();
|
|
20
17
|
buildHonoRoute(app, getServiceFragmentDefaultsContract, async (c) => {
|
|
21
18
|
const defaults = requireDefaults(c);
|
|
22
|
-
if (!defaults)
|
|
23
|
-
return unavailable();
|
|
24
19
|
return c.json(await defaults.service.get(param(c, 'workspaceId')), 200);
|
|
25
20
|
});
|
|
26
21
|
buildHonoRoute(app, setServiceFragmentDefaultsContract, async (c) => {
|
|
27
22
|
const defaults = requireDefaults(c);
|
|
28
|
-
if (!defaults)
|
|
29
|
-
return unavailable();
|
|
30
23
|
const stored = await defaults.service.set(param(c, 'workspaceId'), c.req.valid('json'));
|
|
31
24
|
return c.json(stored, 200);
|
|
32
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceFragmentDefaultsController.js","sourceRoot":"","sources":["../../../src/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,kCAAkC,GACnC,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":"ServiceFragmentDefaultsController.js","sourceRoot":"","sources":["../../../src/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,kCAAkC,GACnC,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,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,kGAAkG;AAClG,SAAS,eAAe,CAAmB,CAAa;IACtD,OAAO,iBAAiB,CACtB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,uBAAuB,EAC1C,8CAA8C,CAC/C,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC;IAC/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,kCAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClE,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,kCAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACvF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceMountController.d.ts","sourceRoot":"","sources":["../../../src/modules/services/ServiceMountController.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ServiceMountController.d.ts","sourceRoot":"","sources":["../../../src/modules/services/ServiceMountController.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAS/C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAAC,MAAM,CAAC,CAiDrD"}
|