@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 * as v from 'valibot';
|
|
5
5
|
import { param } from '../../http/params.js';
|
|
6
|
-
import {
|
|
7
|
-
/** Resolve the initiatives module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the initiatives module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireInitiatives(c) {
|
|
9
|
-
return c.get('container').initiatives
|
|
9
|
+
return requireCapability(c.get('container').initiatives, 'Initiatives are not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Initiatives are not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* Workspace-scoped initiative endpoints: create (the initiative-level board block +
|
|
16
13
|
* its empty entity in one call — the Create Initiative button's target) and the
|
|
@@ -23,28 +20,20 @@ export function initiativeController() {
|
|
|
23
20
|
const app = new Hono();
|
|
24
21
|
buildHonoRoute(app, createInitiativeContract, async (c) => {
|
|
25
22
|
const initiatives = requireInitiatives(c);
|
|
26
|
-
if (!initiatives)
|
|
27
|
-
return unavailable();
|
|
28
23
|
const created = await initiatives.service.create(param(c, 'workspaceId'), c.req.valid('json'));
|
|
29
24
|
return c.json(created, 201);
|
|
30
25
|
});
|
|
31
26
|
buildHonoRoute(app, listInitiativesContract, async (c) => {
|
|
32
27
|
const initiatives = requireInitiatives(c);
|
|
33
|
-
if (!initiatives)
|
|
34
|
-
return unavailable();
|
|
35
28
|
return c.json(await initiatives.service.list(param(c, 'workspaceId')), 200);
|
|
36
29
|
});
|
|
37
30
|
buildHonoRoute(app, getInitiativeContract, async (c) => {
|
|
38
31
|
const initiatives = requireInitiatives(c);
|
|
39
|
-
if (!initiatives)
|
|
40
|
-
return unavailable();
|
|
41
32
|
const { initiativeId } = c.req.valid('param');
|
|
42
33
|
return c.json(await initiatives.service.get(param(c, 'workspaceId'), initiativeId), 200);
|
|
43
34
|
});
|
|
44
35
|
buildHonoRoute(app, getInitiativeByBlockContract, async (c) => {
|
|
45
36
|
const initiatives = requireInitiatives(c);
|
|
46
|
-
if (!initiatives)
|
|
47
|
-
return unavailable();
|
|
48
37
|
const { blockId } = c.req.valid('param');
|
|
49
38
|
return c.json(await initiatives.service.getByBlock(param(c, 'workspaceId'), blockId), 200);
|
|
50
39
|
});
|
|
@@ -88,42 +77,32 @@ export function initiativeController() {
|
|
|
88
77
|
// answer (no run resume); `continue`/`proceed` resume the parked run, running the (slow)
|
|
89
78
|
// interviewer LLM in the durable driver. All go through `executionService.initiativeInterview`
|
|
90
79
|
// (undefined when no initiative store is wired → 503), and return the updated initiative.
|
|
91
|
-
const requirePlanning = (c) => c.get('container').executionService.initiativeInterview
|
|
80
|
+
const requirePlanning = (c) => requireCapability(c.get('container').executionService.initiativeInterview, 'Initiatives are not configured');
|
|
92
81
|
buildHonoRoute(app, answerInitiativeQuestionContract, async (c) => {
|
|
93
82
|
const planning = requirePlanning(c);
|
|
94
|
-
if (!planning)
|
|
95
|
-
return unavailable();
|
|
96
83
|
const { blockId } = c.req.valid('param');
|
|
97
84
|
const { questionId, answer } = c.req.valid('json');
|
|
98
85
|
return c.json(await planning.answer(param(c, 'workspaceId'), blockId, questionId, answer), 200);
|
|
99
86
|
});
|
|
100
87
|
buildHonoRoute(app, setInitiativeQuestionStatusContract, async (c) => {
|
|
101
88
|
const planning = requirePlanning(c);
|
|
102
|
-
if (!planning)
|
|
103
|
-
return unavailable();
|
|
104
89
|
const { blockId } = c.req.valid('param');
|
|
105
90
|
const { questionId, status } = c.req.valid('json');
|
|
106
91
|
return c.json(await planning.setQuestionStatus(param(c, 'workspaceId'), blockId, questionId, status), 200);
|
|
107
92
|
});
|
|
108
93
|
buildHonoRoute(app, recommendInitiativeAnswerContract, async (c) => {
|
|
109
94
|
const planning = requirePlanning(c);
|
|
110
|
-
if (!planning)
|
|
111
|
-
return unavailable();
|
|
112
95
|
const { blockId } = c.req.valid('param');
|
|
113
96
|
const { questionId } = c.req.valid('json');
|
|
114
97
|
return c.json(await planning.recommendAnswer(param(c, 'workspaceId'), blockId, questionId), 200);
|
|
115
98
|
});
|
|
116
99
|
buildHonoRoute(app, continueInitiativePlanningContract, async (c) => {
|
|
117
100
|
const planning = requirePlanning(c);
|
|
118
|
-
if (!planning)
|
|
119
|
-
return unavailable();
|
|
120
101
|
const { blockId } = c.req.valid('param');
|
|
121
102
|
return c.json(await planning.continue(param(c, 'workspaceId'), blockId), 200);
|
|
122
103
|
});
|
|
123
104
|
buildHonoRoute(app, proceedInitiativePlanningContract, async (c) => {
|
|
124
105
|
const planning = requirePlanning(c);
|
|
125
|
-
if (!planning)
|
|
126
|
-
return unavailable();
|
|
127
106
|
const { blockId } = c.req.valid('param');
|
|
128
107
|
return c.json(await planning.proceed(param(c, 'workspaceId'), blockId), 200);
|
|
129
108
|
});
|
|
@@ -133,22 +112,16 @@ export function initiativeController() {
|
|
|
133
112
|
// entity so the SPA patches its cache.
|
|
134
113
|
buildHonoRoute(app, pauseInitiativeContract, async (c) => {
|
|
135
114
|
const initiatives = requireInitiatives(c);
|
|
136
|
-
if (!initiatives)
|
|
137
|
-
return unavailable();
|
|
138
115
|
const { blockId } = c.req.valid('param');
|
|
139
116
|
return c.json(await initiatives.service.pause(param(c, 'workspaceId'), blockId), 200);
|
|
140
117
|
});
|
|
141
118
|
buildHonoRoute(app, resumeInitiativeContract, async (c) => {
|
|
142
119
|
const initiatives = requireInitiatives(c);
|
|
143
|
-
if (!initiatives)
|
|
144
|
-
return unavailable();
|
|
145
120
|
const { blockId } = c.req.valid('param');
|
|
146
121
|
return c.json(await initiatives.service.resume(param(c, 'workspaceId'), blockId), 200);
|
|
147
122
|
});
|
|
148
123
|
buildHonoRoute(app, cancelInitiativeContract, async (c) => {
|
|
149
124
|
const initiatives = requireInitiatives(c);
|
|
150
|
-
if (!initiatives)
|
|
151
|
-
return unavailable();
|
|
152
125
|
const { blockId } = c.req.valid('param');
|
|
153
126
|
return c.json(await initiatives.service.cancel(param(c, 'workspaceId'), blockId), 200);
|
|
154
127
|
});
|
|
@@ -158,32 +131,24 @@ export function initiativeController() {
|
|
|
158
131
|
// other) and returns the updated entity for the SPA to patch.
|
|
159
132
|
buildHonoRoute(app, promoteInitiativeFollowUpContract, async (c) => {
|
|
160
133
|
const initiatives = requireInitiatives(c);
|
|
161
|
-
if (!initiatives)
|
|
162
|
-
return unavailable();
|
|
163
134
|
const { initiativeId, followUpId } = c.req.valid('param');
|
|
164
135
|
const updated = await initiatives.service.promoteFollowUp(param(c, 'workspaceId'), initiativeId, followUpId, c.req.valid('json'));
|
|
165
136
|
return c.json(updated, 200);
|
|
166
137
|
});
|
|
167
138
|
buildHonoRoute(app, dismissInitiativeFollowUpContract, async (c) => {
|
|
168
139
|
const initiatives = requireInitiatives(c);
|
|
169
|
-
if (!initiatives)
|
|
170
|
-
return unavailable();
|
|
171
140
|
const { initiativeId, followUpId } = c.req.valid('param');
|
|
172
141
|
const updated = await initiatives.service.dismissFollowUp(param(c, 'workspaceId'), initiativeId, followUpId);
|
|
173
142
|
return c.json(updated, 200);
|
|
174
143
|
});
|
|
175
144
|
buildHonoRoute(app, updateInitiativeItemContract, async (c) => {
|
|
176
145
|
const initiatives = requireInitiatives(c);
|
|
177
|
-
if (!initiatives)
|
|
178
|
-
return unavailable();
|
|
179
146
|
const { initiativeId, itemId } = c.req.valid('param');
|
|
180
147
|
const updated = await initiatives.service.updateItem(param(c, 'workspaceId'), initiativeId, itemId, c.req.valid('json'));
|
|
181
148
|
return c.json(updated, 200);
|
|
182
149
|
});
|
|
183
150
|
buildHonoRoute(app, updateInitiativePolicyContract, async (c) => {
|
|
184
151
|
const initiatives = requireInitiatives(c);
|
|
185
|
-
if (!initiatives)
|
|
186
|
-
return unavailable();
|
|
187
152
|
const { initiativeId } = c.req.valid('param');
|
|
188
153
|
const updated = await initiatives.service.updatePolicy(param(c, 'workspaceId'), initiativeId, c.req.valid('json'));
|
|
189
154
|
return c.json(updated, 200);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitiativeController.js","sourceRoot":"","sources":["../../../src/modules/initiatives/InitiativeController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,kCAAkC,EAClC,wBAAwB,EACxB,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,iCAAiC,EACjC,iCAAiC,EACjC,wBAAwB,EACxB,mCAAmC,EACnC,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InitiativeController.js","sourceRoot":"","sources":["../../../src/modules/initiatives/InitiativeController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaizenController.d.ts","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"KaizenController.d.ts","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAS/C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,CAqB/C"}
|
|
@@ -2,14 +2,11 @@ import { getKaizenOverviewContract, getKaizenRunGradingsContract } from '@cat-fa
|
|
|
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 Kaizen module or
|
|
5
|
+
import { requireCapability } from '../../http/guards.js';
|
|
6
|
+
/** Resolve the Kaizen module, or refuse with a 503 naming what isn't wired. */
|
|
7
7
|
function requireKaizen(c) {
|
|
8
|
-
return c.get('container').kaizen
|
|
8
|
+
return requireCapability(c.get('container').kaizen, 'Kaizen is not configured');
|
|
9
9
|
}
|
|
10
|
-
const unavailable = () => {
|
|
11
|
-
throw new UnavailableError('Kaizen is not configured');
|
|
12
|
-
};
|
|
13
10
|
/**
|
|
14
11
|
* Workspace-scoped Kaizen endpoints (read-only). The Kaizen screen reads the grading
|
|
15
12
|
* history + verified-combo library; the run window reads the gradings for one run to show
|
|
@@ -22,16 +19,12 @@ export function kaizenController() {
|
|
|
22
19
|
// The Kaizen screen: recent grading history + the verified-combo library.
|
|
23
20
|
buildHonoRoute(app, getKaizenOverviewContract, async (c) => {
|
|
24
21
|
const kaizen = requireKaizen(c);
|
|
25
|
-
if (!kaizen)
|
|
26
|
-
return unavailable();
|
|
27
22
|
const overview = await kaizen.service.getOverview(param(c, 'workspaceId'));
|
|
28
23
|
return c.json(overview, 200);
|
|
29
24
|
});
|
|
30
25
|
// The gradings recorded for one run (the run-window status surface).
|
|
31
26
|
buildHonoRoute(app, getKaizenRunGradingsContract, async (c) => {
|
|
32
27
|
const kaizen = requireKaizen(c);
|
|
33
|
-
if (!kaizen)
|
|
34
|
-
return unavailable();
|
|
35
28
|
const gradings = await kaizen.service.listForExecution(param(c, 'workspaceId'), c.req.valid('param').executionId);
|
|
36
29
|
return c.json({ gradings }, 200);
|
|
37
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaizenController.js","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAEhG,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":"KaizenController.js","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAEhG,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,+EAA+E;AAC/E,SAAS,aAAa,CAAmB,CAAa;IACpD,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAA;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,0EAA0E;IAC1E,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1E,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,qEAAqE;IACrE,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CACpD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CACjC,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalModelEndpointController.d.ts","sourceRoot":"","sources":["../../../src/modules/localModels/LocalModelEndpointController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"LocalModelEndpointController.d.ts","sourceRoot":"","sources":["../../../src/modules/localModels/LocalModelEndpointController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA0B/C,wBAAgB,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,CAkC3D"}
|
|
@@ -2,59 +2,49 @@ import { listLocalModelEndpointsContract, localRunnerSchema, removeLocalModelEnd
|
|
|
2
2
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
3
3
|
import * as v from 'valibot';
|
|
4
4
|
import { Hono } from 'hono';
|
|
5
|
-
import {
|
|
5
|
+
import { requireCapability, requireUser } from '../../http/guards.js';
|
|
6
6
|
// Per-USER locally-run model endpoints (Ollama / LM Studio / llama.cpp / vLLM / custom
|
|
7
7
|
// OpenAI-compatible runners). A runner lives on the user's own machine, so endpoints are
|
|
8
8
|
// scoped to the signed-in user — mounted at the root (not under a workspace) and require
|
|
9
9
|
// a signed-in user, like personal subscriptions. The optional bearer key is write-only.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/** Resolve the local model-runner store, or refuse with a 503 naming what isn't wired. */
|
|
11
|
+
function requireEndpoints(c) {
|
|
12
|
+
return requireCapability(c.get('container').localModelEndpoints, 'Local model runner storage is not configured');
|
|
13
|
+
}
|
|
14
|
+
/** The signed-in caller, or a 401 wording the prompt for what this controller manages. */
|
|
15
|
+
function requireSignedIn(c) {
|
|
16
|
+
return requireUser(c, 'Sign in to manage local model runners');
|
|
17
|
+
}
|
|
18
|
+
/** The same 401, for a route that needs a signed-in caller but reads nothing off them. */
|
|
19
|
+
function assertSignedIn(c) {
|
|
20
|
+
requireSignedIn(c);
|
|
21
|
+
}
|
|
16
22
|
export function localModelEndpointController() {
|
|
17
23
|
const app = new Hono();
|
|
18
24
|
buildHonoRoute(app, listLocalModelEndpointsContract, async (c) => {
|
|
19
|
-
const local = c
|
|
20
|
-
|
|
21
|
-
return unavailable();
|
|
22
|
-
const user = c.get('user');
|
|
23
|
-
if (!user)
|
|
24
|
-
return signInRequired();
|
|
25
|
+
const local = requireEndpoints(c);
|
|
26
|
+
const user = requireSignedIn(c);
|
|
25
27
|
return c.json({ endpoints: await local.list(user.id) }, 200);
|
|
26
28
|
});
|
|
27
29
|
buildHonoRoute(app, upsertLocalModelEndpointContract, async (c) => {
|
|
28
|
-
const local = c
|
|
29
|
-
|
|
30
|
-
return unavailable();
|
|
31
|
-
const user = c.get('user');
|
|
32
|
-
if (!user)
|
|
33
|
-
return signInRequired();
|
|
30
|
+
const local = requireEndpoints(c);
|
|
31
|
+
const user = requireSignedIn(c);
|
|
34
32
|
const provider = v.parse(localRunnerSchema, c.req.valid('param').provider);
|
|
35
33
|
const body = c.req.valid('json');
|
|
36
34
|
const endpoint = await local.upsert(user.id, { ...body, provider });
|
|
37
35
|
return c.json(endpoint, 201);
|
|
38
36
|
});
|
|
39
37
|
buildHonoRoute(app, removeLocalModelEndpointContract, async (c) => {
|
|
40
|
-
const local = c
|
|
41
|
-
|
|
42
|
-
return unavailable();
|
|
43
|
-
const user = c.get('user');
|
|
44
|
-
if (!user)
|
|
45
|
-
return signInRequired();
|
|
38
|
+
const local = requireEndpoints(c);
|
|
39
|
+
const user = requireSignedIn(c);
|
|
46
40
|
const provider = v.parse(localRunnerSchema, c.req.valid('param').provider);
|
|
47
41
|
await local.remove(user.id, provider);
|
|
48
42
|
return c.body(null, 204);
|
|
49
43
|
});
|
|
50
44
|
// Probe a runner's `/models` server-side so the UI can validate the URL + list models.
|
|
51
45
|
buildHonoRoute(app, testLocalModelEndpointContract, async (c) => {
|
|
52
|
-
const local = c
|
|
53
|
-
|
|
54
|
-
return unavailable();
|
|
55
|
-
const user = c.get('user');
|
|
56
|
-
if (!user)
|
|
57
|
-
return signInRequired();
|
|
46
|
+
const local = requireEndpoints(c);
|
|
47
|
+
assertSignedIn(c);
|
|
58
48
|
return c.json(await local.testConnection(c.req.valid('json')), 200);
|
|
59
49
|
});
|
|
60
50
|
return app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalModelEndpointController.js","sourceRoot":"","sources":["../../../src/modules/localModels/LocalModelEndpointController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"LocalModelEndpointController.js","sourceRoot":"","sources":["../../../src/modules/localModels/LocalModelEndpointController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
import { Hono } from 'hono';
|
|
2
2
|
import type { AppEnv } from '../../http/env.js';
|
|
3
|
-
/**
|
|
4
|
-
* Local-mode operational settings (warm-container-pool sizing + per-repo checkout reuse),
|
|
5
|
-
* a per-deployment singleton that replaced the old `LOCAL_POOL_*` / `HARNESS_*` env vars.
|
|
6
|
-
* Mounted on every facade but wired only on the local-mode facade — it 503s elsewhere (the
|
|
7
|
-
* warm pool is the local Docker-family runner's differentiator, with no Cloudflare/Node
|
|
8
|
-
* equivalent). There are no secrets, so `GET` returns the plain config and `PUT` replaces
|
|
9
|
-
* it wholesale. Not auth-gated beyond the facade's gate: local mode runs with the auth gate
|
|
10
|
-
* open on the developer's own machine, and the settings store is wired only there.
|
|
11
|
-
*/
|
|
12
3
|
export declare function localSettingsController(): Hono<AppEnv>;
|
|
13
4
|
//# sourceMappingURL=LocalSettingsController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalSettingsController.d.ts","sourceRoot":"","sources":["../../../src/modules/localSettings/LocalSettingsController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"LocalSettingsController.d.ts","sourceRoot":"","sources":["../../../src/modules/localSettings/LocalSettingsController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAoB/C,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CActD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getLocalSettingsContract, updateLocalSettingsContract } from '@cat-factory/contracts';
|
|
2
2
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
|
-
import {
|
|
4
|
+
import { requireCapability } from '../../http/guards.js';
|
|
5
5
|
/**
|
|
6
6
|
* Local-mode operational settings (warm-container-pool sizing + per-repo checkout reuse),
|
|
7
7
|
* a per-deployment singleton that replaced the old `LOCAL_POOL_*` / `HARNESS_*` env vars.
|
|
@@ -11,22 +11,19 @@ import { UnavailableError } from '@cat-factory/kernel';
|
|
|
11
11
|
* it wholesale. Not auth-gated beyond the facade's gate: local mode runs with the auth gate
|
|
12
12
|
* open on the developer's own machine, and the settings store is wired only there.
|
|
13
13
|
*/
|
|
14
|
+
/** Resolve the local-mode settings store, or refuse with a 503 naming what isn't wired. */
|
|
15
|
+
function requireLocalSettings(c) {
|
|
16
|
+
return requireCapability(c.get('container').localSettings, 'Local-mode settings are only available on the local-mode service');
|
|
17
|
+
}
|
|
14
18
|
export function localSettingsController() {
|
|
15
19
|
const app = new Hono();
|
|
16
|
-
const unavailable = () => {
|
|
17
|
-
throw new UnavailableError('Local-mode settings are only available on the local-mode service');
|
|
18
|
-
};
|
|
19
20
|
buildHonoRoute(app, getLocalSettingsContract, async (c) => {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
return unavailable();
|
|
23
|
-
return c.json(await container.localSettings.service.read(), 200);
|
|
21
|
+
const localSettings = requireLocalSettings(c);
|
|
22
|
+
return c.json(await localSettings.service.read(), 200);
|
|
24
23
|
});
|
|
25
24
|
buildHonoRoute(app, updateLocalSettingsContract, async (c) => {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
return unavailable();
|
|
29
|
-
return c.json(await container.localSettings.service.write(c.req.valid('json')), 200);
|
|
25
|
+
const localSettings = requireLocalSettings(c);
|
|
26
|
+
return c.json(await localSettings.service.write(c.req.valid('json')), 200);
|
|
30
27
|
});
|
|
31
28
|
return app;
|
|
32
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalSettingsController.js","sourceRoot":"","sources":["../../../src/modules/localSettings/LocalSettingsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"LocalSettingsController.js","sourceRoot":"","sources":["../../../src/modules/localSettings/LocalSettingsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD;;;;;;;;GAQG;AACH,2FAA2F;AAC3F,SAAS,oBAAoB,CAAmB,CAAa;IAC3D,OAAO,iBAAiB,CACtB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,aAAa,EAChC,kEAAkE,CACnE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,aAAa,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,aAAa,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergeTrackRecordController.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"MergeTrackRecordController.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAY/C;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAAC,MAAM,CAAC,CAwBzD"}
|
|
@@ -2,14 +2,11 @@ import { listMergeClassRollupsContract, tagMergeReviewEffortContract } from '@ca
|
|
|
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 merge track-record module or
|
|
5
|
+
import { requireCapability } from '../../http/guards.js';
|
|
6
|
+
/** Resolve the merge track-record module, or refuse with a 503 naming what isn't wired. */
|
|
7
7
|
function requireTrackRecords(c) {
|
|
8
|
-
return c.get('container').mergeTrackRecords
|
|
8
|
+
return requireCapability(c.get('container').mergeTrackRecords, 'Merge track records are not configured');
|
|
9
9
|
}
|
|
10
|
-
const unavailable = () => {
|
|
11
|
-
throw new UnavailableError('Merge track records are not configured');
|
|
12
|
-
};
|
|
13
10
|
/**
|
|
14
11
|
* The merge track record's read + tag surface: the per-change-class rollups the preset editor
|
|
15
12
|
* renders each class's rule against, and the reviewer-effort tag a human leaves on a merged PR.
|
|
@@ -25,8 +22,6 @@ export function mergeTrackRecordController() {
|
|
|
25
22
|
// never fans out per class.
|
|
26
23
|
buildHonoRoute(app, listMergeClassRollupsContract, async (c) => {
|
|
27
24
|
const records = requireTrackRecords(c);
|
|
28
|
-
if (!records)
|
|
29
|
-
return unavailable();
|
|
30
25
|
return c.json(await records.service.rollups(param(c, 'workspaceId')), 200);
|
|
31
26
|
});
|
|
32
27
|
// Tag (or clear) the reviewer effort a merged PR actually needed. The standalone route exists
|
|
@@ -34,8 +29,6 @@ export function mergeTrackRecordController() {
|
|
|
34
29
|
// `merge_tag_request` nudge, or the inspector's merge controls.
|
|
35
30
|
buildHonoRoute(app, tagMergeReviewEffortContract, async (c) => {
|
|
36
31
|
const records = requireTrackRecords(c);
|
|
37
|
-
if (!records)
|
|
38
|
-
return unavailable();
|
|
39
32
|
const updated = await records.service.tag(param(c, 'workspaceId'), c.req.valid('param').recordId, c.req.valid('json').reviewEffort);
|
|
40
33
|
return c.json(updated, 200);
|
|
41
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergeTrackRecordController.js","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAEpG,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":"MergeTrackRecordController.js","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAEpG,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,2FAA2F;AAC3F,SAAS,mBAAmB,CAAmB,CAAa;IAC1D,OAAO,iBAAiB,CACtB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,iBAAiB,EACpC,wCAAwC,CACzC,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B;IACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,4FAA4F;IAC5F,4BAA4B;IAC5B,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,8FAA8F;IAC9F,oFAAoF;IACpF,gEAAgE;IAChE,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CACvC,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,CAAC,YAAY,CACjC,CAAA;QACD,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":"RiskPolicyController.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"RiskPolicyController.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAyCnD"}
|
|
@@ -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 merge-preset module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the merge-preset module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireRiskPolicies(c) {
|
|
9
|
-
return c.get('container').riskPolicies
|
|
9
|
+
return requireCapability(c.get('container').riskPolicies, 'Risk policies are not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Risk policies are not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* CRUD for a workspace's merge threshold presets (the library a task picks its
|
|
16
13
|
* auto-merge policy from). The default preset is seeded lazily on first list and
|
|
@@ -21,35 +18,25 @@ export function riskPolicyController() {
|
|
|
21
18
|
app.use('*', requireWorkspacePermission('settings.manage'));
|
|
22
19
|
buildHonoRoute(app, listRiskPoliciesContract, async (c) => {
|
|
23
20
|
const presets = requireRiskPolicies(c);
|
|
24
|
-
if (!presets)
|
|
25
|
-
return unavailable();
|
|
26
21
|
return c.json(await presets.service.list(param(c, 'workspaceId')), 200);
|
|
27
22
|
});
|
|
28
23
|
buildHonoRoute(app, createRiskPolicyContract, async (c) => {
|
|
29
24
|
const presets = requireRiskPolicies(c);
|
|
30
|
-
if (!presets)
|
|
31
|
-
return unavailable();
|
|
32
25
|
const preset = await presets.service.create(param(c, 'workspaceId'), c.req.valid('json'));
|
|
33
26
|
return c.json(preset, 201);
|
|
34
27
|
});
|
|
35
28
|
buildHonoRoute(app, updateRiskPolicyContract, async (c) => {
|
|
36
29
|
const presets = requireRiskPolicies(c);
|
|
37
|
-
if (!presets)
|
|
38
|
-
return unavailable();
|
|
39
30
|
const preset = await presets.service.update(param(c, 'workspaceId'), c.req.valid('param').presetId, c.req.valid('json'));
|
|
40
31
|
return c.json(preset, 200);
|
|
41
32
|
});
|
|
42
33
|
buildHonoRoute(app, deleteRiskPolicyContract, async (c) => {
|
|
43
34
|
const presets = requireRiskPolicies(c);
|
|
44
|
-
if (!presets)
|
|
45
|
-
return unavailable();
|
|
46
35
|
await presets.service.remove(param(c, 'workspaceId'), c.req.valid('param').presetId);
|
|
47
36
|
return c.body(null, 204);
|
|
48
37
|
});
|
|
49
38
|
buildHonoRoute(app, reseedRiskPolicyContract, async (c) => {
|
|
50
39
|
const presets = requireRiskPolicies(c);
|
|
51
|
-
if (!presets)
|
|
52
|
-
return unavailable();
|
|
53
40
|
const preset = await presets.service.reseed(param(c, 'workspaceId'), c.req.valid('param').presetId);
|
|
54
41
|
return c.json(preset, 200);
|
|
55
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskPolicyController.js","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,GACzB,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":"RiskPolicyController.js","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelPresetController.d.ts","sourceRoot":"","sources":["../../../src/modules/modelPresets/ModelPresetController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ModelPresetController.d.ts","sourceRoot":"","sources":["../../../src/modules/modelPresets/ModelPresetController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CAyCpD"}
|
|
@@ -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 model-preset module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the model-preset module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireModelPresets(c) {
|
|
9
|
-
return c.get('container').modelPresets
|
|
9
|
+
return requireCapability(c.get('container').modelPresets, 'Model presets are not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Model presets are not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* CRUD for a workspace's model presets (the library a task picks its model→agent
|
|
16
13
|
* mapping from; each preset is a base model applied to every agent kind plus per-kind
|
|
@@ -22,35 +19,25 @@ export function modelPresetController() {
|
|
|
22
19
|
app.use('*', requireWorkspacePermission('settings.manage'));
|
|
23
20
|
buildHonoRoute(app, listModelPresetsContract, async (c) => {
|
|
24
21
|
const presets = requireModelPresets(c);
|
|
25
|
-
if (!presets)
|
|
26
|
-
return unavailable();
|
|
27
22
|
return c.json(await presets.service.list(param(c, 'workspaceId')), 200);
|
|
28
23
|
});
|
|
29
24
|
buildHonoRoute(app, createModelPresetContract, async (c) => {
|
|
30
25
|
const presets = requireModelPresets(c);
|
|
31
|
-
if (!presets)
|
|
32
|
-
return unavailable();
|
|
33
26
|
const preset = await presets.service.create(param(c, 'workspaceId'), c.req.valid('json'));
|
|
34
27
|
return c.json(preset, 201);
|
|
35
28
|
});
|
|
36
29
|
buildHonoRoute(app, updateModelPresetContract, async (c) => {
|
|
37
30
|
const presets = requireModelPresets(c);
|
|
38
|
-
if (!presets)
|
|
39
|
-
return unavailable();
|
|
40
31
|
const preset = await presets.service.update(param(c, 'workspaceId'), c.req.valid('param').presetId, c.req.valid('json'));
|
|
41
32
|
return c.json(preset, 200);
|
|
42
33
|
});
|
|
43
34
|
buildHonoRoute(app, deleteModelPresetContract, async (c) => {
|
|
44
35
|
const presets = requireModelPresets(c);
|
|
45
|
-
if (!presets)
|
|
46
|
-
return unavailable();
|
|
47
36
|
await presets.service.remove(param(c, 'workspaceId'), c.req.valid('param').presetId);
|
|
48
37
|
return c.body(null, 204);
|
|
49
38
|
});
|
|
50
39
|
buildHonoRoute(app, reseedModelPresetContract, async (c) => {
|
|
51
40
|
const presets = requireModelPresets(c);
|
|
52
|
-
if (!presets)
|
|
53
|
-
return unavailable();
|
|
54
41
|
const preset = await presets.service.reseed(param(c, 'workspaceId'), c.req.valid('param').presetId);
|
|
55
42
|
return c.json(preset, 200);
|
|
56
43
|
});
|