@cat-factory/server 0.30.0 → 0.32.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/app.d.ts.map +1 -1
- package/dist/app.js +2 -0
- package/dist/app.js.map +1 -1
- package/dist/config/types.d.ts +1 -15
- package/dist/config/types.d.ts.map +1 -1
- package/dist/github/FetchGitHubClient.d.ts +15 -1
- package/dist/github/FetchGitHubClient.d.ts.map +1 -1
- package/dist/github/FetchGitHubClient.js +128 -7
- package/dist/github/FetchGitHubClient.js.map +1 -1
- package/dist/github/GitHubPullRequestReviewProvider.d.ts +25 -0
- package/dist/github/GitHubPullRequestReviewProvider.d.ts.map +1 -0
- package/dist/github/GitHubPullRequestReviewProvider.js +170 -0
- package/dist/github/GitHubPullRequestReviewProvider.js.map +1 -0
- package/dist/http/errorHandler.d.ts.map +1 -1
- package/dist/http/errorHandler.js +20 -0
- package/dist/http/errorHandler.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/accounts/AccountController.d.ts +4 -0
- package/dist/modules/accounts/AccountController.d.ts.map +1 -1
- package/dist/modules/accounts/AccountController.js +78 -58
- package/dist/modules/accounts/AccountController.js.map +1 -1
- package/dist/modules/agentRuns/AgentRunController.d.ts.map +1 -1
- package/dist/modules/agentRuns/AgentRunController.js +8 -6
- package/dist/modules/agentRuns/AgentRunController.js.map +1 -1
- package/dist/modules/auth/AuthController.d.ts.map +1 -1
- package/dist/modules/auth/AuthController.js +23 -23
- package/dist/modules/auth/AuthController.js.map +1 -1
- package/dist/modules/board/BoardController.d.ts.map +1 -1
- package/dist/modules/board/BoardController.js +26 -26
- package/dist/modules/board/BoardController.js.map +1 -1
- package/dist/modules/bootstrap/BootstrapController.d.ts.map +1 -1
- package/dist/modules/bootstrap/BootstrapController.js +15 -15
- package/dist/modules/bootstrap/BootstrapController.js.map +1 -1
- package/dist/modules/brainstorm/BrainstormController.d.ts +3 -2
- package/dist/modules/brainstorm/BrainstormController.d.ts.map +1 -1
- package/dist/modules/brainstorm/BrainstormController.js +36 -52
- package/dist/modules/brainstorm/BrainstormController.js.map +1 -1
- package/dist/modules/clarity/ClarityReviewController.d.ts.map +1 -1
- package/dist/modules/clarity/ClarityReviewController.js +27 -25
- package/dist/modules/clarity/ClarityReviewController.js.map +1 -1
- package/dist/modules/consensus/ConsensusController.d.ts.map +1 -1
- package/dist/modules/consensus/ConsensusController.js +6 -4
- package/dist/modules/consensus/ConsensusController.js.map +1 -1
- package/dist/modules/documents/DocumentSourceController.d.ts.map +1 -1
- package/dist/modules/documents/DocumentSourceController.js +17 -17
- 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 +24 -24
- package/dist/modules/environments/EnvironmentController.js.map +1 -1
- package/dist/modules/execution/ExecutionController.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionController.js +57 -45
- package/dist/modules/execution/ExecutionController.js.map +1 -1
- package/dist/modules/followUp/FollowUpController.d.ts.map +1 -1
- package/dist/modules/followUp/FollowUpController.js +21 -17
- package/dist/modules/followUp/FollowUpController.js.map +1 -1
- package/dist/modules/fragmentLibrary/FragmentLibraryController.d.ts.map +1 -1
- package/dist/modules/fragmentLibrary/FragmentLibraryController.js +26 -26
- 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 +44 -44
- package/dist/modules/github/GitHubController.js.map +1 -1
- package/dist/modules/humanReview/HumanReviewController.d.ts +11 -0
- package/dist/modules/humanReview/HumanReviewController.d.ts.map +1 -0
- package/dist/modules/humanReview/HumanReviewController.js +22 -0
- package/dist/modules/humanReview/HumanReviewController.js.map +1 -0
- package/dist/modules/humanTest/HumanTestController.d.ts.map +1 -1
- package/dist/modules/humanTest/HumanTestController.js +17 -17
- package/dist/modules/humanTest/HumanTestController.js.map +1 -1
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.d.ts.map +1 -1
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js +7 -7
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js.map +1 -1
- package/dist/modules/kaizen/KaizenController.d.ts.map +1 -1
- package/dist/modules/kaizen/KaizenController.js +7 -5
- 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 +10 -11
- package/dist/modules/localModels/LocalModelEndpointController.js.map +1 -1
- package/dist/modules/localSettings/LocalSettingsController.d.ts.map +1 -1
- package/dist/modules/localSettings/LocalSettingsController.js +6 -6
- package/dist/modules/localSettings/LocalSettingsController.js.map +1 -1
- package/dist/modules/merge/MergePresetController.d.ts.map +1 -1
- package/dist/modules/merge/MergePresetController.js +10 -10
- package/dist/modules/merge/MergePresetController.js.map +1 -1
- package/dist/modules/modelPresets/ModelPresetController.d.ts.map +1 -1
- package/dist/modules/modelPresets/ModelPresetController.js +10 -10
- package/dist/modules/modelPresets/ModelPresetController.js.map +1 -1
- package/dist/modules/models/ModelController.d.ts.map +1 -1
- package/dist/modules/models/ModelController.js +6 -4
- package/dist/modules/models/ModelController.js.map +1 -1
- package/dist/modules/notifications/NotificationController.d.ts.map +1 -1
- package/dist/modules/notifications/NotificationController.js +11 -9
- package/dist/modules/notifications/NotificationController.js.map +1 -1
- package/dist/modules/openrouter/OpenRouterCatalogController.d.ts.map +1 -1
- package/dist/modules/openrouter/OpenRouterCatalogController.js +9 -10
- package/dist/modules/openrouter/OpenRouterCatalogController.js.map +1 -1
- package/dist/modules/pipelines/PipelineController.d.ts.map +1 -1
- package/dist/modules/pipelines/PipelineController.js +17 -15
- package/dist/modules/pipelines/PipelineController.js.map +1 -1
- package/dist/modules/promptFragments/PromptFragmentController.d.ts.map +1 -1
- package/dist/modules/promptFragments/PromptFragmentController.js +4 -2
- package/dist/modules/promptFragments/PromptFragmentController.js.map +1 -1
- package/dist/modules/providers/ApiKeyController.d.ts.map +1 -1
- package/dist/modules/providers/ApiKeyController.js +12 -12
- 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 +7 -8
- 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 +14 -15
- 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 +7 -7
- package/dist/modules/providers/VendorCredentialController.js.map +1 -1
- package/dist/modules/providers/personalCredentialGate.d.ts +2 -2
- package/dist/modules/providers/personalCredentialGate.d.ts.map +1 -1
- package/dist/modules/providers/personalCredentialGate.js.map +1 -1
- package/dist/modules/provisioningLogs/ProvisioningLogController.d.ts.map +1 -1
- package/dist/modules/provisioningLogs/ProvisioningLogController.js +4 -3
- package/dist/modules/provisioningLogs/ProvisioningLogController.js.map +1 -1
- package/dist/modules/recurring/RecurringPipelineController.d.ts.map +1 -1
- package/dist/modules/recurring/RecurringPipelineController.js +15 -15
- 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 +6 -6
- 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 +14 -14
- package/dist/modules/releaseHealth/ReleaseHealthController.js.map +1 -1
- package/dist/modules/requirements/RequirementReviewController.d.ts.map +1 -1
- package/dist/modules/requirements/RequirementReviewController.js +43 -38
- 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 +12 -12
- 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 +35 -26
- 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 +6 -6
- package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.js.map +1 -1
- package/dist/modules/serviceSpec/ServiceSpecController.d.ts.map +1 -1
- package/dist/modules/serviceSpec/ServiceSpecController.js +9 -8
- package/dist/modules/serviceSpec/ServiceSpecController.js.map +1 -1
- package/dist/modules/services/ServiceMountController.d.ts.map +1 -1
- package/dist/modules/services/ServiceMountController.js +14 -14
- 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 +6 -6
- package/dist/modules/settings/WorkspaceSettingsController.js.map +1 -1
- package/dist/modules/slack/SlackController.d.ts.map +1 -1
- package/dist/modules/slack/SlackController.js +18 -18
- 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 +19 -19
- package/dist/modules/tasks/TaskSourceController.js.map +1 -1
- package/dist/modules/workspaces/WorkspaceController.d.ts.map +1 -1
- package/dist/modules/workspaces/WorkspaceController.js +11 -11
- package/dist/modules/workspaces/WorkspaceController.js.map +1 -1
- package/package.json +11 -9
- package/dist/http/validation.d.ts +0 -21
- package/dist/http/validation.d.ts.map +0 -1
- package/dist/http/validation.js +0 -21
- package/dist/http/validation.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { describeEnvironmentProviderContract, getEnvironmentAccessContract, getEnvironmentConnectionContract, getEnvironmentContract, listEnvironmentsContract, provisionEnvironmentContract, registerEnvironmentProviderContract, teardownEnvironmentContract, testEnvironmentConnectionContract, unregisterEnvironmentProviderContract, updateEnvironmentSecretsContract, } from '@cat-factory/contracts';
|
|
2
|
+
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
2
3
|
import { Hono } from 'hono';
|
|
3
4
|
import { param } from '../../http/params.js';
|
|
4
|
-
import { jsonBody } from '../../http/validation.js';
|
|
5
5
|
/** Resolve the environment module or send a 503, returning null when unconfigured. */
|
|
6
6
|
function requireEnvironments(c) {
|
|
7
7
|
return c.get('container').environments ?? null;
|
|
@@ -17,14 +17,14 @@ const notFound = (c) => c.json({ error: { code: 'not_found', message: 'Environme
|
|
|
17
17
|
export function environmentController() {
|
|
18
18
|
const app = new Hono();
|
|
19
19
|
// ---- provider connection ------------------------------------------------
|
|
20
|
-
app
|
|
20
|
+
buildHonoRoute(app, getEnvironmentConnectionContract, async (c) => {
|
|
21
21
|
const env = requireEnvironments(c);
|
|
22
22
|
if (!env)
|
|
23
23
|
return unavailable(c);
|
|
24
24
|
const connection = await env.connectionService.getConnection(param(c, 'workspaceId'));
|
|
25
|
-
return c.json({ connection });
|
|
25
|
+
return c.json({ connection }, 200);
|
|
26
26
|
});
|
|
27
|
-
app
|
|
27
|
+
buildHonoRoute(app, registerEnvironmentProviderContract, async (c) => {
|
|
28
28
|
const env = requireEnvironments(c);
|
|
29
29
|
if (!env)
|
|
30
30
|
return unavailable(c);
|
|
@@ -35,14 +35,14 @@ export function environmentController() {
|
|
|
35
35
|
});
|
|
36
36
|
return c.json(connection, 201);
|
|
37
37
|
});
|
|
38
|
-
app
|
|
38
|
+
buildHonoRoute(app, updateEnvironmentSecretsContract, async (c) => {
|
|
39
39
|
const env = requireEnvironments(c);
|
|
40
40
|
if (!env)
|
|
41
41
|
return unavailable(c);
|
|
42
42
|
const connection = await env.connectionService.updateSecrets(param(c, 'workspaceId'), c.req.valid('json').secrets);
|
|
43
|
-
return c.json(connection);
|
|
43
|
+
return c.json(connection, 200);
|
|
44
44
|
});
|
|
45
|
-
app
|
|
45
|
+
buildHonoRoute(app, unregisterEnvironmentProviderContract, async (c) => {
|
|
46
46
|
const env = requireEnvironments(c);
|
|
47
47
|
if (!env)
|
|
48
48
|
return unavailable(c);
|
|
@@ -51,42 +51,42 @@ export function environmentController() {
|
|
|
51
51
|
});
|
|
52
52
|
// What the provider needs configured (native fields or the manifest's secret keys),
|
|
53
53
|
// so the UI can render a connect form generically.
|
|
54
|
-
app
|
|
54
|
+
buildHonoRoute(app, describeEnvironmentProviderContract, async (c) => {
|
|
55
55
|
const env = requireEnvironments(c);
|
|
56
56
|
if (!env)
|
|
57
57
|
return unavailable(c);
|
|
58
|
-
return c.json(await env.connectionService.describeProvider(param(c, 'workspaceId')));
|
|
58
|
+
return c.json(await env.connectionService.describeProvider(param(c, 'workspaceId')), 200);
|
|
59
59
|
});
|
|
60
60
|
// Probe a candidate connection before saving (nothing persisted).
|
|
61
|
-
app
|
|
61
|
+
buildHonoRoute(app, testEnvironmentConnectionContract, async (c) => {
|
|
62
62
|
const env = requireEnvironments(c);
|
|
63
63
|
if (!env)
|
|
64
64
|
return unavailable(c);
|
|
65
|
-
return c.json(await env.connectionService.testConnection(param(c, 'workspaceId'), c.req.valid('json')));
|
|
65
|
+
return c.json(await env.connectionService.testConnection(param(c, 'workspaceId'), c.req.valid('json')), 200);
|
|
66
66
|
});
|
|
67
67
|
// ---- environment registry ----------------------------------------------
|
|
68
|
-
app
|
|
68
|
+
buildHonoRoute(app, listEnvironmentsContract, async (c) => {
|
|
69
69
|
const env = requireEnvironments(c);
|
|
70
70
|
if (!env)
|
|
71
71
|
return unavailable(c);
|
|
72
|
-
return c.json(await env.provisioningService.listHandles(param(c, 'workspaceId')));
|
|
72
|
+
return c.json(await env.provisioningService.listHandles(param(c, 'workspaceId')), 200);
|
|
73
73
|
});
|
|
74
|
-
app
|
|
74
|
+
buildHonoRoute(app, getEnvironmentContract, async (c) => {
|
|
75
75
|
const env = requireEnvironments(c);
|
|
76
76
|
if (!env)
|
|
77
77
|
return unavailable(c);
|
|
78
|
-
const handle = await env.provisioningService.getHandle(param(c, 'workspaceId'),
|
|
79
|
-
return handle ? c.json(handle) : notFound(c);
|
|
78
|
+
const handle = await env.provisioningService.getHandle(param(c, 'workspaceId'), c.req.valid('param').environmentId);
|
|
79
|
+
return handle ? c.json(handle, 200) : notFound(c);
|
|
80
80
|
});
|
|
81
81
|
// The only endpoint that returns decrypted access credentials (over TLS).
|
|
82
|
-
app
|
|
82
|
+
buildHonoRoute(app, getEnvironmentAccessContract, async (c) => {
|
|
83
83
|
const env = requireEnvironments(c);
|
|
84
84
|
if (!env)
|
|
85
85
|
return unavailable(c);
|
|
86
|
-
const handle = await env.provisioningService.getHandleWithAccess(param(c, 'workspaceId'),
|
|
87
|
-
return handle ? c.json(handle) : notFound(c);
|
|
86
|
+
const handle = await env.provisioningService.getHandleWithAccess(param(c, 'workspaceId'), c.req.valid('param').environmentId);
|
|
87
|
+
return handle ? c.json(handle, 200) : notFound(c);
|
|
88
88
|
});
|
|
89
|
-
app
|
|
89
|
+
buildHonoRoute(app, provisionEnvironmentContract, async (c) => {
|
|
90
90
|
const env = requireEnvironments(c);
|
|
91
91
|
if (!env)
|
|
92
92
|
return unavailable(c);
|
|
@@ -98,12 +98,12 @@ export function environmentController() {
|
|
|
98
98
|
});
|
|
99
99
|
return c.json(handle, 201);
|
|
100
100
|
});
|
|
101
|
-
app
|
|
101
|
+
buildHonoRoute(app, teardownEnvironmentContract, async (c) => {
|
|
102
102
|
const env = requireEnvironments(c);
|
|
103
103
|
if (!env)
|
|
104
104
|
return unavailable(c);
|
|
105
|
-
const handle = await env.teardownService.teardown(param(c, 'workspaceId'),
|
|
106
|
-
return c.json(handle);
|
|
105
|
+
const handle = await env.teardownService.teardown(param(c, 'workspaceId'), c.req.valid('param').environmentId);
|
|
106
|
+
return c.json(handle, 200);
|
|
107
107
|
});
|
|
108
108
|
return app;
|
|
109
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentController.js","sourceRoot":"","sources":["../../../src/modules/environments/EnvironmentController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"EnvironmentController.js","sourceRoot":"","sources":["../../../src/modules/environments/EnvironmentController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionController.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExecutionController.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionController.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAS/C;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,CAgOlD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { approveStepContract, cancelExecutionContract, exportExecutionLlmMetricsContract, getExecutionAgentContextContract, getExecutionLlmMetricsContract, getSpendStatusContract, mergeBlockContract, rejectStepContract, requestStepChangesContract, resolveDecisionContract, restartExecutionContract, resumeSpendContract, startExecutionContract, resolveStepExceededContract, } from '@cat-factory/contracts';
|
|
2
|
+
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
2
3
|
import { Hono } from 'hono';
|
|
3
4
|
import { runWithInitiator } from '../../github/runInitiatorContext.js';
|
|
4
5
|
import { param } from '../../http/params.js';
|
|
5
|
-
import { jsonBody } from '../../http/validation.js';
|
|
6
6
|
import { personalGateForBlock, personalGateForRun, readPersonalPassword, remintActivations, } from '../providers/personalCredentialGate.js';
|
|
7
7
|
/**
|
|
8
8
|
* The execution engine endpoints — starting/cancelling runs, resolving decisions
|
|
@@ -12,10 +12,10 @@ import { personalGateForBlock, personalGateForRun, readPersonalPassword, remintA
|
|
|
12
12
|
*/
|
|
13
13
|
export function executionController() {
|
|
14
14
|
const app = new Hono();
|
|
15
|
-
app
|
|
15
|
+
buildHonoRoute(app, startExecutionContract, async (c) => {
|
|
16
16
|
const container = c.get('container');
|
|
17
17
|
const workspaceId = param(c, 'workspaceId');
|
|
18
|
-
const blockId =
|
|
18
|
+
const blockId = c.req.valid('param').blockId;
|
|
19
19
|
const { pipelineId } = c.req.valid('json');
|
|
20
20
|
// Individual-usage models (Claude/GLM/Codex) require the initiator's personal
|
|
21
21
|
// subscription: resolve the initiator + an activation closure (throws 428 when a
|
|
@@ -25,50 +25,52 @@ export function executionController() {
|
|
|
25
25
|
const instance = await container.executionService.start(workspaceId, blockId, pipelineId, initiatedBy, activate);
|
|
26
26
|
return c.json(instance, 201);
|
|
27
27
|
});
|
|
28
|
-
app
|
|
28
|
+
buildHonoRoute(app, cancelExecutionContract, async (c) => {
|
|
29
29
|
const block = await c
|
|
30
30
|
.get('container')
|
|
31
|
-
.executionService.cancel(param(c, 'workspaceId'),
|
|
32
|
-
return c.json(block);
|
|
31
|
+
.executionService.cancel(param(c, 'workspaceId'), c.req.valid('param').blockId);
|
|
32
|
+
return c.json(block, 200);
|
|
33
33
|
});
|
|
34
|
-
app
|
|
34
|
+
buildHonoRoute(app, mergeBlockContract, async (c) => {
|
|
35
35
|
// Manual confirm-merge runs the engine GitHub client under the acting user's
|
|
36
36
|
// ambient context, so their per-user PAT (when set) authors the merge.
|
|
37
|
-
const block = await runWithInitiator(c.get('user')?.id, () => c
|
|
38
|
-
|
|
37
|
+
const block = await runWithInitiator(c.get('user')?.id, () => c
|
|
38
|
+
.get('container')
|
|
39
|
+
.executionService.mergePr(param(c, 'workspaceId'), c.req.valid('param').blockId));
|
|
40
|
+
return c.json(block, 200);
|
|
39
41
|
});
|
|
40
42
|
// Current spend-safeguard status (token usage vs budget for this period).
|
|
41
|
-
app
|
|
42
|
-
return c.json(await c.get('container').spendService.status(param(c, 'workspaceId')));
|
|
43
|
+
buildHonoRoute(app, getSpendStatusContract, async (c) => {
|
|
44
|
+
return c.json(await c.get('container').spendService.status(param(c, 'workspaceId')), 200);
|
|
43
45
|
});
|
|
44
46
|
// LLM observability for a run: the full per-call detail (prompts, responses,
|
|
45
47
|
// token usage, output-limit headroom, transport-vs-execution latency) behind the
|
|
46
48
|
// board's step rollups. Empty when the observability sink is not wired.
|
|
47
|
-
app
|
|
48
|
-
const executionId =
|
|
49
|
+
buildHonoRoute(app, getExecutionLlmMetricsContract, async (c) => {
|
|
50
|
+
const executionId = c.req.valid('param').executionId;
|
|
49
51
|
const observability = c.get('container').llmObservability;
|
|
50
52
|
const calls = observability
|
|
51
53
|
? await observability.listByExecution(param(c, 'workspaceId'), executionId)
|
|
52
54
|
: [];
|
|
53
|
-
return c.json({ executionId, calls });
|
|
55
|
+
return c.json({ executionId, calls }, 200);
|
|
54
56
|
});
|
|
55
57
|
// The complete context provided to each container agent in a run: the composed
|
|
56
58
|
// system + user prompts, the best-practice fragment bodies folded in, and the full
|
|
57
59
|
// content of the files injected into the container. Empty when the agent-context
|
|
58
60
|
// sink is not wired or the workspace disabled storing it.
|
|
59
|
-
app
|
|
60
|
-
const executionId =
|
|
61
|
+
buildHonoRoute(app, getExecutionAgentContextContract, async (c) => {
|
|
62
|
+
const executionId = c.req.valid('param').executionId;
|
|
61
63
|
const observability = c.get('container').agentContextObservability;
|
|
62
64
|
const snapshots = observability
|
|
63
65
|
? await observability.listByExecution(param(c, 'workspaceId'), executionId)
|
|
64
66
|
: [];
|
|
65
|
-
return c.json({ executionId, snapshots });
|
|
67
|
+
return c.json({ executionId, snapshots }, 200);
|
|
66
68
|
});
|
|
67
69
|
// LLM-friendly export of a run's model activity: a self-describing JSON bundle
|
|
68
70
|
// (totals + per-agent insights + every call, with derived ratios) meant to be
|
|
69
71
|
// handed straight to a model for analysis. Sets a download filename.
|
|
70
|
-
app
|
|
71
|
-
const executionId =
|
|
72
|
+
buildHonoRoute(app, exportExecutionLlmMetricsContract, async (c) => {
|
|
73
|
+
const executionId = c.req.valid('param').executionId;
|
|
72
74
|
const observability = c.get('container').llmObservability;
|
|
73
75
|
const exported = observability
|
|
74
76
|
? await observability.exportForExecution(param(c, 'workspaceId'), executionId)
|
|
@@ -92,55 +94,64 @@ export function executionController() {
|
|
|
92
94
|
calls: [],
|
|
93
95
|
};
|
|
94
96
|
c.header('content-disposition', `attachment; filename="llm-metrics-${executionId}.json"`);
|
|
95
|
-
return c.json(exported);
|
|
97
|
+
return c.json(exported, 200);
|
|
96
98
|
});
|
|
97
99
|
// Resume runs paused by the spend safeguard in this workspace.
|
|
98
|
-
app
|
|
100
|
+
buildHonoRoute(app, resumeSpendContract, async (c) => {
|
|
99
101
|
const instances = await c
|
|
100
102
|
.get('container')
|
|
101
103
|
.executionService.resumePaused(param(c, 'workspaceId'));
|
|
102
|
-
return c.json(instances);
|
|
104
|
+
return c.json(instances, 200);
|
|
103
105
|
});
|
|
104
|
-
app
|
|
106
|
+
buildHonoRoute(app, resolveDecisionContract, async (c) => {
|
|
107
|
+
const { executionId, decisionId } = c.req.valid('param');
|
|
105
108
|
// Re-mint the run's activation BEFORE the engine advances + dispatches the next step.
|
|
106
|
-
await remintActivations(c, param(c, 'workspaceId'),
|
|
109
|
+
await remintActivations(c, param(c, 'workspaceId'), executionId);
|
|
107
110
|
const instance = await c
|
|
108
111
|
.get('container')
|
|
109
|
-
.executionService.resolveDecision(param(c, 'workspaceId'),
|
|
110
|
-
return c.json(instance);
|
|
112
|
+
.executionService.resolveDecision(param(c, 'workspaceId'), executionId, decisionId, c.req.valid('json').choice);
|
|
113
|
+
return c.json(instance, 200);
|
|
111
114
|
});
|
|
112
115
|
// Approve a step's gated proposal (optionally with a human-edited proposal);
|
|
113
116
|
// the run advances to the next step carrying it forward as context.
|
|
114
|
-
app
|
|
117
|
+
buildHonoRoute(app, approveStepContract, async (c) => {
|
|
118
|
+
const { executionId, approvalId } = c.req.valid('param');
|
|
115
119
|
// Re-mint the run's activation BEFORE the engine advances + dispatches the next step.
|
|
116
|
-
await remintActivations(c, param(c, 'workspaceId'),
|
|
120
|
+
await remintActivations(c, param(c, 'workspaceId'), executionId);
|
|
117
121
|
const instance = await c
|
|
118
122
|
.get('container')
|
|
119
|
-
.executionService.approveStep(param(c, 'workspaceId'),
|
|
120
|
-
|
|
123
|
+
.executionService.approveStep(param(c, 'workspaceId'), executionId, approvalId, {
|
|
124
|
+
proposal: c.req.valid('json').proposal,
|
|
125
|
+
});
|
|
126
|
+
return c.json(instance, 200);
|
|
121
127
|
});
|
|
122
128
|
// Request changes on a gated proposal: the step re-runs with the reviewer's
|
|
123
129
|
// freeform feedback and/or per-block comments.
|
|
124
|
-
app
|
|
130
|
+
buildHonoRoute(app, requestStepChangesContract, async (c) => {
|
|
131
|
+
const { executionId, approvalId } = c.req.valid('param');
|
|
125
132
|
const { feedback, comments } = c.req.valid('json');
|
|
126
133
|
// The step re-runs (dispatches) — re-mint the run's activation first.
|
|
127
|
-
await remintActivations(c, param(c, 'workspaceId'),
|
|
134
|
+
await remintActivations(c, param(c, 'workspaceId'), executionId);
|
|
128
135
|
const instance = await c
|
|
129
136
|
.get('container')
|
|
130
|
-
.executionService.requestStepChanges(param(c, 'workspaceId'),
|
|
131
|
-
|
|
137
|
+
.executionService.requestStepChanges(param(c, 'workspaceId'), executionId, approvalId, {
|
|
138
|
+
feedback,
|
|
139
|
+
comments,
|
|
140
|
+
});
|
|
141
|
+
return c.json(instance, 200);
|
|
132
142
|
});
|
|
133
143
|
// Resolve a companion step parked at its automatic-rework cap: one more round /
|
|
134
144
|
// proceed accepting the current output / stop and reset the task to phase zero. The
|
|
135
145
|
// companion analogue of the requirements gate's resolve-exceeded; guarded so the
|
|
136
146
|
// generic approve/reject can't short-circuit it.
|
|
137
|
-
app
|
|
147
|
+
buildHonoRoute(app, resolveStepExceededContract, async (c) => {
|
|
148
|
+
const { executionId, approvalId } = c.req.valid('param');
|
|
138
149
|
// extra-round / proceed re-dispatch the next agent step — re-mint first.
|
|
139
|
-
await remintActivations(c, param(c, 'workspaceId'),
|
|
150
|
+
await remintActivations(c, param(c, 'workspaceId'), executionId);
|
|
140
151
|
const instance = await c
|
|
141
152
|
.get('container')
|
|
142
|
-
.executionService.resolveCompanionExceeded(param(c, 'workspaceId'),
|
|
143
|
-
return c.json(instance);
|
|
153
|
+
.executionService.resolveCompanionExceeded(param(c, 'workspaceId'), executionId, approvalId, c.req.valid('json').choice);
|
|
154
|
+
return c.json(instance, 200);
|
|
144
155
|
});
|
|
145
156
|
// Restart a run from a chosen step: re-run from `fromStepIndex` onward (resetting
|
|
146
157
|
// that step + every later step's iteration counters) while keeping the earlier
|
|
@@ -148,21 +159,22 @@ export function executionController() {
|
|
|
148
159
|
// down a still-running driver/container first. Mints a fresh run id, so it re-drives
|
|
149
160
|
// like a retry. Individual-usage models (Claude/GLM/Codex) need the initiator's
|
|
150
161
|
// personal subscription, resolved + activated here (428 when a password is needed).
|
|
151
|
-
app
|
|
162
|
+
buildHonoRoute(app, restartExecutionContract, async (c) => {
|
|
152
163
|
const container = c.get('container');
|
|
153
164
|
const workspaceId = param(c, 'workspaceId');
|
|
154
|
-
const executionId =
|
|
165
|
+
const executionId = c.req.valid('param').executionId;
|
|
155
166
|
const { fromStepIndex } = c.req.valid('json');
|
|
156
167
|
const { initiatedBy, activate } = await personalGateForRun(container, workspaceId, executionId, c.get('user'), readPersonalPassword(c));
|
|
157
168
|
const instance = await container.executionService.restartFromStep(workspaceId, executionId, fromStepIndex, initiatedBy, activate);
|
|
158
|
-
return c.json(instance);
|
|
169
|
+
return c.json(instance, 200);
|
|
159
170
|
});
|
|
160
171
|
// Reject a gated proposal: the run stops entirely (a terminal, retryable failure).
|
|
161
|
-
app
|
|
172
|
+
buildHonoRoute(app, rejectStepContract, async (c) => {
|
|
173
|
+
const { executionId, approvalId } = c.req.valid('param');
|
|
162
174
|
const instance = await c
|
|
163
175
|
.get('container')
|
|
164
|
-
.executionService.rejectStep(param(c, 'workspaceId'),
|
|
165
|
-
return c.json(instance);
|
|
176
|
+
.executionService.rejectStep(param(c, 'workspaceId'), executionId, approvalId, c.req.valid('json').reason);
|
|
177
|
+
return c.json(instance, 200);
|
|
166
178
|
});
|
|
167
179
|
return app;
|
|
168
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionController.js","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"ExecutionController.js","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FollowUpController.d.ts","sourceRoot":"","sources":["../../../src/modules/followUp/FollowUpController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FollowUpController.d.ts","sourceRoot":"","sources":["../../../src/modules/followUp/FollowUpController.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,CAiDjD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { answerFollowUpContract, dismissFollowUpContract, fileFollowUpContract, getFollowUpsContract, queueFollowUpContract, } from '@cat-factory/contracts';
|
|
2
|
+
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
2
3
|
import { Hono } from 'hono';
|
|
3
4
|
import { param } from '../../http/params.js';
|
|
4
|
-
import { jsonBody } from '../../http/validation.js';
|
|
5
5
|
/**
|
|
6
6
|
* Workspace-scoped Follow-up companion endpoints. The Coder surfaces forward-looking items
|
|
7
7
|
* (loose ends / side-tasks / questions) live on its run step; these endpoints let a human
|
|
@@ -14,40 +14,44 @@ import { jsonBody } from '../../http/validation.js';
|
|
|
14
14
|
export function followUpController() {
|
|
15
15
|
const app = new Hono();
|
|
16
16
|
// The live follow-up state for a run (null when the companion is off / nothing surfaced).
|
|
17
|
-
app
|
|
17
|
+
buildHonoRoute(app, getFollowUpsContract, async (c) => {
|
|
18
18
|
const state = await c
|
|
19
19
|
.get('container')
|
|
20
|
-
.executionService.getFollowUps(param(c, 'workspaceId'),
|
|
21
|
-
return c.json(state);
|
|
20
|
+
.executionService.getFollowUps(param(c, 'workspaceId'), c.req.valid('param').executionId);
|
|
21
|
+
return c.json(state, 200);
|
|
22
22
|
});
|
|
23
23
|
// File a follow-up item as a tracker issue (GitHub Issues / Jira).
|
|
24
|
-
app
|
|
24
|
+
buildHonoRoute(app, fileFollowUpContract, async (c) => {
|
|
25
|
+
const { executionId, itemId } = c.req.valid('param');
|
|
25
26
|
const state = await c
|
|
26
27
|
.get('container')
|
|
27
|
-
.executionService.fileFollowUp(param(c, 'workspaceId'),
|
|
28
|
-
return c.json(state);
|
|
28
|
+
.executionService.fileFollowUp(param(c, 'workspaceId'), executionId, itemId);
|
|
29
|
+
return c.json(state, 200);
|
|
29
30
|
});
|
|
30
31
|
// Send a follow-up item back to the Coder (queued for its next pass).
|
|
31
|
-
app
|
|
32
|
+
buildHonoRoute(app, queueFollowUpContract, async (c) => {
|
|
33
|
+
const { executionId, itemId } = c.req.valid('param');
|
|
32
34
|
const state = await c
|
|
33
35
|
.get('container')
|
|
34
|
-
.executionService.queueFollowUp(param(c, 'workspaceId'),
|
|
35
|
-
return c.json(state);
|
|
36
|
+
.executionService.queueFollowUp(param(c, 'workspaceId'), executionId, itemId);
|
|
37
|
+
return c.json(state, 200);
|
|
36
38
|
});
|
|
37
39
|
// Answer a question item (the answer folds into the Coder's next pass).
|
|
38
|
-
app
|
|
40
|
+
buildHonoRoute(app, answerFollowUpContract, async (c) => {
|
|
41
|
+
const { executionId, itemId } = c.req.valid('param');
|
|
39
42
|
const { answer } = c.req.valid('json');
|
|
40
43
|
const state = await c
|
|
41
44
|
.get('container')
|
|
42
|
-
.executionService.answerFollowUp(param(c, 'workspaceId'),
|
|
43
|
-
return c.json(state);
|
|
45
|
+
.executionService.answerFollowUp(param(c, 'workspaceId'), executionId, itemId, answer);
|
|
46
|
+
return c.json(state, 200);
|
|
44
47
|
});
|
|
45
48
|
// Dismiss a follow-up / question item without acting on it.
|
|
46
|
-
app
|
|
49
|
+
buildHonoRoute(app, dismissFollowUpContract, async (c) => {
|
|
50
|
+
const { executionId, itemId } = c.req.valid('param');
|
|
47
51
|
const state = await c
|
|
48
52
|
.get('container')
|
|
49
|
-
.executionService.dismissFollowUp(param(c, 'workspaceId'),
|
|
50
|
-
return c.json(state);
|
|
53
|
+
.executionService.dismissFollowUp(param(c, 'workspaceId'), executionId, itemId);
|
|
54
|
+
return c.json(state, 200);
|
|
51
55
|
});
|
|
52
56
|
return app;
|
|
53
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FollowUpController.js","sourceRoot":"","sources":["../../../src/modules/followUp/FollowUpController.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FollowUpController.js","sourceRoot":"","sources":["../../../src/modules/followUp/FollowUpController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentLibraryController.d.ts","sourceRoot":"","sources":["../../../src/modules/fragmentLibrary/FragmentLibraryController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FragmentLibraryController.d.ts","sourceRoot":"","sources":["../../../src/modules/fragmentLibrary/FragmentLibraryController.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C,KAAK,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;AAoCpC;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAqJpE"}
|