@pellux/goodvibes-daemon-sdk 0.18.3
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/README.md +32 -0
- package/dist/api-router.d.ts +3 -0
- package/dist/api-router.d.ts.map +1 -0
- package/dist/api-router.js +13 -0
- package/dist/automation.d.ts +3 -0
- package/dist/automation.d.ts.map +1 -0
- package/dist/automation.js +56 -0
- package/dist/channel-route-types.d.ts +78 -0
- package/dist/channel-route-types.d.ts.map +1 -0
- package/dist/channel-route-types.js +1 -0
- package/dist/channel-routes.d.ts +4 -0
- package/dist/channel-routes.d.ts.map +1 -0
- package/dist/channel-routes.js +264 -0
- package/dist/context.d.ts +207 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +1 -0
- package/dist/control-routes.d.ts +57 -0
- package/dist/control-routes.d.ts.map +1 -0
- package/dist/control-routes.js +120 -0
- package/dist/error-response.d.ts +10 -0
- package/dist/error-response.d.ts.map +1 -0
- package/dist/error-response.js +84 -0
- package/dist/http-policy.d.ts +33 -0
- package/dist/http-policy.d.ts.map +1 -0
- package/dist/http-policy.js +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/integration-route-types.d.ts +64 -0
- package/dist/integration-route-types.d.ts.map +1 -0
- package/dist/integration-route-types.js +1 -0
- package/dist/integration-routes.d.ts +4 -0
- package/dist/integration-routes.d.ts.map +1 -0
- package/dist/integration-routes.js +172 -0
- package/dist/knowledge-route-types.d.ts +114 -0
- package/dist/knowledge-route-types.d.ts.map +1 -0
- package/dist/knowledge-route-types.js +1 -0
- package/dist/knowledge-routes.d.ts +4 -0
- package/dist/knowledge-routes.d.ts.map +1 -0
- package/dist/knowledge-routes.js +582 -0
- package/dist/media-route-types.d.ts +66 -0
- package/dist/media-route-types.d.ts.map +1 -0
- package/dist/media-route-types.js +1 -0
- package/dist/media-routes.d.ts +4 -0
- package/dist/media-routes.d.ts.map +1 -0
- package/dist/media-routes.js +328 -0
- package/dist/operator.d.ts +3 -0
- package/dist/operator.d.ts.map +1 -0
- package/dist/operator.js +395 -0
- package/dist/remote-routes.d.ts +40 -0
- package/dist/remote-routes.d.ts.map +1 -0
- package/dist/remote-routes.js +238 -0
- package/dist/remote.d.ts +3 -0
- package/dist/remote.d.ts.map +1 -0
- package/dist/remote.js +35 -0
- package/dist/route-helpers.d.ts +11 -0
- package/dist/route-helpers.d.ts.map +1 -0
- package/dist/route-helpers.js +54 -0
- package/dist/runtime-automation-routes.d.ts +4 -0
- package/dist/runtime-automation-routes.d.ts.map +1 -0
- package/dist/runtime-automation-routes.js +165 -0
- package/dist/runtime-route-types.d.ts +240 -0
- package/dist/runtime-route-types.d.ts.map +1 -0
- package/dist/runtime-route-types.js +1 -0
- package/dist/runtime-routes.d.ts +5 -0
- package/dist/runtime-routes.d.ts.map +1 -0
- package/dist/runtime-routes.js +8 -0
- package/dist/runtime-session-routes.d.ts +4 -0
- package/dist/runtime-session-routes.d.ts.map +1 -0
- package/dist/runtime-session-routes.js +387 -0
- package/dist/sessions.d.ts +3 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +37 -0
- package/dist/system-route-types.d.ts +124 -0
- package/dist/system-route-types.d.ts.map +1 -0
- package/dist/system-route-types.js +1 -0
- package/dist/system-routes.d.ts +4 -0
- package/dist/system-routes.d.ts.map +1 -0
- package/dist/system-routes.js +327 -0
- package/dist/tasks.d.ts +3 -0
- package/dist/tasks.d.ts.map +1 -0
- package/dist/tasks.js +22 -0
- package/dist/telemetry-routes.d.ts +44 -0
- package/dist/telemetry-routes.d.ts.map +1 -0
- package/dist/telemetry-routes.js +227 -0
- package/package.json +42 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
export type MaybeResponse = Response | Promise<Response>;
|
|
2
|
+
export interface DaemonApiRouteHandlers {
|
|
3
|
+
getStatus(): MaybeResponse;
|
|
4
|
+
getCurrentAuth(req: Request): MaybeResponse;
|
|
5
|
+
getReview(): MaybeResponse;
|
|
6
|
+
getIntegrationSession(): MaybeResponse;
|
|
7
|
+
getIntegrationTasks(): MaybeResponse;
|
|
8
|
+
getIntegrationAutomation(): MaybeResponse;
|
|
9
|
+
getIntegrationSessions(): MaybeResponse;
|
|
10
|
+
createSharedSession(req: Request): MaybeResponse;
|
|
11
|
+
getControlPlaneSnapshot(): MaybeResponse;
|
|
12
|
+
getOperatorContract(): MaybeResponse;
|
|
13
|
+
getControlPlaneWeb(): MaybeResponse;
|
|
14
|
+
getControlPlaneRecentEvents(limit: number): MaybeResponse;
|
|
15
|
+
getControlPlaneMessages(): MaybeResponse;
|
|
16
|
+
getControlPlaneClients(): MaybeResponse;
|
|
17
|
+
getTelemetrySnapshot(req: Request): MaybeResponse;
|
|
18
|
+
getTelemetryEvents(req: Request): MaybeResponse;
|
|
19
|
+
getTelemetryErrors(req: Request): MaybeResponse;
|
|
20
|
+
getTelemetryTraces(req: Request): MaybeResponse;
|
|
21
|
+
getTelemetryMetrics(req: Request): MaybeResponse;
|
|
22
|
+
createTelemetryEventStream(req: Request): MaybeResponse;
|
|
23
|
+
getTelemetryOtlpTraces(req: Request): MaybeResponse;
|
|
24
|
+
getTelemetryOtlpLogs(req: Request): MaybeResponse;
|
|
25
|
+
getTelemetryOtlpMetrics(req: Request): MaybeResponse;
|
|
26
|
+
getGatewayMethods(url: URL): MaybeResponse;
|
|
27
|
+
getGatewayEvents(url: URL): MaybeResponse;
|
|
28
|
+
getGatewayMethod(methodId: string): MaybeResponse;
|
|
29
|
+
invokeGatewayMethod(methodId: string, req: Request): MaybeResponse;
|
|
30
|
+
createControlPlaneEventStream(req: Request): MaybeResponse;
|
|
31
|
+
getAutomationJobs(): MaybeResponse;
|
|
32
|
+
postAutomationJob(req: Request): MaybeResponse;
|
|
33
|
+
getAutomationRuns(): MaybeResponse;
|
|
34
|
+
getAutomationRun(runId: string): MaybeResponse;
|
|
35
|
+
getAutomationHeartbeat(): MaybeResponse;
|
|
36
|
+
postAutomationHeartbeat(req: Request): MaybeResponse;
|
|
37
|
+
automationRunAction(runId: string, action: 'cancel' | 'retry', req: Request): MaybeResponse;
|
|
38
|
+
patchAutomationJob(jobId: string, req: Request): MaybeResponse;
|
|
39
|
+
deleteAutomationJob(jobId: string): MaybeResponse;
|
|
40
|
+
setAutomationJobEnabled(jobId: string, enabled: boolean): MaybeResponse;
|
|
41
|
+
runAutomationJobNow(jobId: string): MaybeResponse;
|
|
42
|
+
getDeliveries(): MaybeResponse;
|
|
43
|
+
getDelivery(deliveryId: string): MaybeResponse;
|
|
44
|
+
getRoutesSnapshot(): MaybeResponse;
|
|
45
|
+
getSurfaces(): MaybeResponse;
|
|
46
|
+
getChannelAccounts(): MaybeResponse;
|
|
47
|
+
getChannelSurfaceAccounts(surface: string): MaybeResponse;
|
|
48
|
+
getChannelAccount(surface: string, accountId: string): MaybeResponse;
|
|
49
|
+
postChannelAccountAction(surface: string, accountId: string | null, action: string, req: Request): MaybeResponse;
|
|
50
|
+
getChannelSetupSchema(surface: string, url: URL): MaybeResponse;
|
|
51
|
+
getChannelDoctor(surface: string, url: URL): MaybeResponse;
|
|
52
|
+
getChannelRepairActions(surface: string, url: URL): MaybeResponse;
|
|
53
|
+
getChannelLifecycle(surface: string, url: URL): MaybeResponse;
|
|
54
|
+
postChannelLifecycleMigrate(surface: string, req: Request): MaybeResponse;
|
|
55
|
+
getChannelCapabilities(): MaybeResponse;
|
|
56
|
+
getChannelSurfaceCapabilities(surface: string): MaybeResponse;
|
|
57
|
+
getChannelTools(): MaybeResponse;
|
|
58
|
+
getChannelSurfaceTools(surface: string): MaybeResponse;
|
|
59
|
+
getChannelAgentTools(): MaybeResponse;
|
|
60
|
+
getChannelSurfaceAgentTools(surface: string): MaybeResponse;
|
|
61
|
+
postChannelTool(surface: string, toolId: string, req: Request): MaybeResponse;
|
|
62
|
+
getChannelActions(): MaybeResponse;
|
|
63
|
+
getChannelSurfaceActions(surface: string): MaybeResponse;
|
|
64
|
+
postChannelAction(surface: string, actionId: string, req: Request): MaybeResponse;
|
|
65
|
+
postChannelResolveTarget(surface: string, req: Request): MaybeResponse;
|
|
66
|
+
postChannelAuthorize(surface: string, req: Request): MaybeResponse;
|
|
67
|
+
postChannelAllowlistResolve(surface: string, req: Request): MaybeResponse;
|
|
68
|
+
postChannelAllowlistEdit(surface: string, req: Request): MaybeResponse;
|
|
69
|
+
getChannelPolicies(): MaybeResponse;
|
|
70
|
+
postChannelPolicy(surface: string, req: Request): MaybeResponse;
|
|
71
|
+
getChannelPolicyAudit(limit: number): MaybeResponse;
|
|
72
|
+
getChannelStatus(): MaybeResponse;
|
|
73
|
+
getChannelDirectory(surface: string, url: URL): MaybeResponse;
|
|
74
|
+
getWatchers(): MaybeResponse;
|
|
75
|
+
postWatcher(req: Request): MaybeResponse;
|
|
76
|
+
patchWatcher(watcherId: string, req: Request): MaybeResponse;
|
|
77
|
+
watcherAction(watcherId: string, action: 'start' | 'stop' | 'run'): MaybeResponse;
|
|
78
|
+
deleteWatcher(watcherId: string): MaybeResponse;
|
|
79
|
+
getServiceStatus(): MaybeResponse;
|
|
80
|
+
installService(): MaybeResponse;
|
|
81
|
+
startService(): MaybeResponse;
|
|
82
|
+
stopService(): MaybeResponse;
|
|
83
|
+
restartService(): MaybeResponse;
|
|
84
|
+
uninstallService(): MaybeResponse;
|
|
85
|
+
getRouteBindings(): MaybeResponse;
|
|
86
|
+
postRouteBinding(req: Request): MaybeResponse;
|
|
87
|
+
patchRouteBinding(bindingId: string, req: Request): MaybeResponse;
|
|
88
|
+
deleteRouteBinding(bindingId: string): MaybeResponse;
|
|
89
|
+
getApprovals(): MaybeResponse;
|
|
90
|
+
approvalAction(approvalId: string, action: 'claim' | 'approve' | 'deny' | 'cancel', req: Request): MaybeResponse;
|
|
91
|
+
getRemote(): MaybeResponse;
|
|
92
|
+
getRemotePairRequests(): MaybeResponse;
|
|
93
|
+
approveRemotePairRequest(requestId: string, req: Request): MaybeResponse;
|
|
94
|
+
rejectRemotePairRequest(requestId: string, req: Request): MaybeResponse;
|
|
95
|
+
getRemotePeers(): MaybeResponse;
|
|
96
|
+
rotateRemotePeerToken(peerId: string, req: Request): MaybeResponse;
|
|
97
|
+
revokeRemotePeerToken(peerId: string, req: Request): MaybeResponse;
|
|
98
|
+
disconnectRemotePeer(peerId: string, req: Request): MaybeResponse;
|
|
99
|
+
getRemoteWork(): MaybeResponse;
|
|
100
|
+
invokeRemotePeer(peerId: string, req: Request): MaybeResponse;
|
|
101
|
+
cancelRemoteWork(workId: string, req: Request): MaybeResponse;
|
|
102
|
+
getRemoteNodeHostContract(): MaybeResponse;
|
|
103
|
+
getHealth(): MaybeResponse;
|
|
104
|
+
getAccounts(): MaybeResponse;
|
|
105
|
+
getProviders(): MaybeResponse;
|
|
106
|
+
getProvider(providerId: string): MaybeResponse;
|
|
107
|
+
getProviderUsage(providerId: string): MaybeResponse;
|
|
108
|
+
getSettings(): MaybeResponse;
|
|
109
|
+
getContinuity(): MaybeResponse;
|
|
110
|
+
getWorktrees(): MaybeResponse;
|
|
111
|
+
getIntelligence(): MaybeResponse;
|
|
112
|
+
getMemoryDoctor(): MaybeResponse;
|
|
113
|
+
getMemoryVectorStats(): MaybeResponse;
|
|
114
|
+
postMemoryVectorRebuild(req: Request): MaybeResponse;
|
|
115
|
+
postMemoryEmbeddingDefault(req: Request): MaybeResponse;
|
|
116
|
+
getKnowledgeStatus(): MaybeResponse;
|
|
117
|
+
getKnowledgeSources(url: URL): MaybeResponse;
|
|
118
|
+
getKnowledgeNodes(url: URL): MaybeResponse;
|
|
119
|
+
getKnowledgeIssues(url: URL): MaybeResponse;
|
|
120
|
+
getKnowledgeItem(id: string): MaybeResponse;
|
|
121
|
+
getKnowledgeConnectors(): MaybeResponse;
|
|
122
|
+
getKnowledgeConnector(id: string): MaybeResponse;
|
|
123
|
+
getKnowledgeConnectorDoctor(id: string): MaybeResponse;
|
|
124
|
+
getKnowledgeProjectionTargets(url: URL): MaybeResponse;
|
|
125
|
+
getKnowledgeGraphqlSchema(): MaybeResponse;
|
|
126
|
+
getKnowledgeExtractions(url: URL): MaybeResponse;
|
|
127
|
+
getKnowledgeUsage(url: URL): MaybeResponse;
|
|
128
|
+
getKnowledgeCandidates(url: URL): MaybeResponse;
|
|
129
|
+
getKnowledgeCandidate(id: string): MaybeResponse;
|
|
130
|
+
getKnowledgeReports(url: URL): MaybeResponse;
|
|
131
|
+
getKnowledgeReport(id: string): MaybeResponse;
|
|
132
|
+
getKnowledgeExtraction(id: string): MaybeResponse;
|
|
133
|
+
getKnowledgeSourceExtraction(id: string): MaybeResponse;
|
|
134
|
+
getKnowledgeJobs(): MaybeResponse;
|
|
135
|
+
getKnowledgeJob(jobId: string): MaybeResponse;
|
|
136
|
+
getKnowledgeJobRuns(url: URL): MaybeResponse;
|
|
137
|
+
getKnowledgeSchedules(url: URL): MaybeResponse;
|
|
138
|
+
getKnowledgeSchedule(id: string): MaybeResponse;
|
|
139
|
+
postKnowledgeIngestUrl(req: Request): MaybeResponse;
|
|
140
|
+
postKnowledgeIngestArtifact(req: Request): MaybeResponse;
|
|
141
|
+
postKnowledgeImportBookmarks(req: Request): MaybeResponse;
|
|
142
|
+
postKnowledgeImportUrls(req: Request): MaybeResponse;
|
|
143
|
+
postKnowledgeIngestConnector(req: Request): MaybeResponse;
|
|
144
|
+
postKnowledgeSearch(req: Request): MaybeResponse;
|
|
145
|
+
postKnowledgePacket(req: Request): MaybeResponse;
|
|
146
|
+
postKnowledgeDecideCandidate(id: string, req: Request): MaybeResponse;
|
|
147
|
+
postKnowledgeRunJob(jobId: string, req: Request): MaybeResponse;
|
|
148
|
+
postKnowledgeLint(req: Request): MaybeResponse;
|
|
149
|
+
postKnowledgeReindex(req: Request): MaybeResponse;
|
|
150
|
+
postKnowledgeSaveSchedule(req: Request): MaybeResponse;
|
|
151
|
+
deleteKnowledgeSchedule(id: string, req: Request): MaybeResponse;
|
|
152
|
+
postKnowledgeSetScheduleEnabled(id: string, req: Request): MaybeResponse;
|
|
153
|
+
postKnowledgeRenderProjection(req: Request): MaybeResponse;
|
|
154
|
+
postKnowledgeMaterializeProjection(req: Request): MaybeResponse;
|
|
155
|
+
executeKnowledgeGraphql(req: Request): MaybeResponse;
|
|
156
|
+
getVoiceStatus(): MaybeResponse;
|
|
157
|
+
getVoiceProviders(): MaybeResponse;
|
|
158
|
+
getVoiceVoices(url: URL): MaybeResponse;
|
|
159
|
+
postVoiceTts(req: Request): MaybeResponse;
|
|
160
|
+
postVoiceStt(req: Request): MaybeResponse;
|
|
161
|
+
postVoiceRealtimeSession(req: Request): MaybeResponse;
|
|
162
|
+
getWebSearchProviders(): MaybeResponse;
|
|
163
|
+
postWebSearch(req: Request): MaybeResponse;
|
|
164
|
+
getArtifacts(): MaybeResponse;
|
|
165
|
+
postArtifact(req: Request): MaybeResponse;
|
|
166
|
+
getArtifact(artifactId: string): MaybeResponse;
|
|
167
|
+
getArtifactContent(artifactId: string, req: Request): MaybeResponse;
|
|
168
|
+
getMediaProviders(): MaybeResponse;
|
|
169
|
+
postMediaAnalyze(req: Request): MaybeResponse;
|
|
170
|
+
postMediaTransform(req: Request): MaybeResponse;
|
|
171
|
+
postMediaGenerate(req: Request): MaybeResponse;
|
|
172
|
+
getMultimodalStatus(): MaybeResponse;
|
|
173
|
+
getMultimodalProviders(): MaybeResponse;
|
|
174
|
+
postMultimodalAnalyze(req: Request): MaybeResponse;
|
|
175
|
+
postMultimodalPacket(req: Request): MaybeResponse;
|
|
176
|
+
postMultimodalWriteback(req: Request): MaybeResponse;
|
|
177
|
+
getLocalAuth(): MaybeResponse;
|
|
178
|
+
postLocalAuthUser(req: Request): MaybeResponse;
|
|
179
|
+
deleteLocalAuthUser(username: string): MaybeResponse;
|
|
180
|
+
postLocalAuthPassword(username: string, req: Request): MaybeResponse;
|
|
181
|
+
deleteLocalAuthSession(sessionId: string): MaybeResponse;
|
|
182
|
+
deleteBootstrapFile(): MaybeResponse;
|
|
183
|
+
getPanels(): MaybeResponse;
|
|
184
|
+
postPanelOpen(req: Request): MaybeResponse;
|
|
185
|
+
getEvents(req: Request): MaybeResponse;
|
|
186
|
+
getConfig(): MaybeResponse;
|
|
187
|
+
postConfig(req: Request): MaybeResponse;
|
|
188
|
+
postTask(req: Request): MaybeResponse;
|
|
189
|
+
getSharedSession(sessionId: string): MaybeResponse;
|
|
190
|
+
closeSharedSession(sessionId: string): MaybeResponse;
|
|
191
|
+
reopenSharedSession(sessionId: string): MaybeResponse;
|
|
192
|
+
getSharedSessionMessages(sessionId: string, url: URL): MaybeResponse;
|
|
193
|
+
getSharedSessionInputs(sessionId: string, url: URL): MaybeResponse;
|
|
194
|
+
postSharedSessionMessage(sessionId: string, req: Request): MaybeResponse;
|
|
195
|
+
postSharedSessionSteer(sessionId: string, req: Request): MaybeResponse;
|
|
196
|
+
postSharedSessionFollowUp(sessionId: string, req: Request): MaybeResponse;
|
|
197
|
+
cancelSharedSessionInput(sessionId: string, inputId: string): MaybeResponse;
|
|
198
|
+
getRuntimeTask(taskId: string): MaybeResponse;
|
|
199
|
+
runtimeTaskAction(taskId: string, action: 'cancel' | 'retry', req: Request): MaybeResponse;
|
|
200
|
+
getTaskStatus(agentId: string): MaybeResponse;
|
|
201
|
+
getSchedules(): MaybeResponse;
|
|
202
|
+
postSchedule(req: Request): MaybeResponse;
|
|
203
|
+
deleteSchedule(scheduleId: string): MaybeResponse;
|
|
204
|
+
setScheduleEnabled(scheduleId: string, enabled: boolean): MaybeResponse;
|
|
205
|
+
runScheduleNow(scheduleId: string): MaybeResponse;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/context.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { DaemonApiRouteHandlers } from './context.js';
|
|
2
|
+
import type { AuthenticatedPrincipal } from './http-policy.js';
|
|
3
|
+
interface GatewayMethodDescriptorLike {
|
|
4
|
+
readonly dangerous?: boolean;
|
|
5
|
+
readonly access?: string;
|
|
6
|
+
}
|
|
7
|
+
interface GatewayMethodCatalogLike {
|
|
8
|
+
list(options?: Record<string, unknown>): unknown;
|
|
9
|
+
listEvents(options?: Record<string, unknown>): unknown;
|
|
10
|
+
get(methodId: string): GatewayMethodDescriptorLike | null | undefined;
|
|
11
|
+
}
|
|
12
|
+
interface ControlPlaneGatewayLike {
|
|
13
|
+
getSnapshot(): unknown;
|
|
14
|
+
renderWebUi(): Response;
|
|
15
|
+
listRecentEvents(limit: number): unknown;
|
|
16
|
+
listSurfaceMessages(): unknown;
|
|
17
|
+
listClients(): unknown;
|
|
18
|
+
createEventStream(req: Request, input: Record<string, unknown>): Response | Promise<Response>;
|
|
19
|
+
}
|
|
20
|
+
interface ControlRouteContext {
|
|
21
|
+
readonly authToken: string | null;
|
|
22
|
+
readonly version: string;
|
|
23
|
+
readonly sessionCookieName: string;
|
|
24
|
+
readonly controlPlaneGateway: ControlPlaneGatewayLike;
|
|
25
|
+
readonly extractAuthToken: (req: Request) => string;
|
|
26
|
+
readonly resolveAuthenticatedPrincipal: (req: Request) => AuthenticatedPrincipal | null;
|
|
27
|
+
readonly gatewayMethods: GatewayMethodCatalogLike;
|
|
28
|
+
readonly getOperatorContract: () => unknown;
|
|
29
|
+
readonly inspectInboundTls: (surface: 'controlPlane' | 'httpListener') => unknown;
|
|
30
|
+
readonly inspectOutboundTls: () => unknown;
|
|
31
|
+
readonly invokeGatewayMethodCall: (input: {
|
|
32
|
+
readonly authToken: string;
|
|
33
|
+
readonly methodId: string;
|
|
34
|
+
readonly query?: Record<string, unknown>;
|
|
35
|
+
readonly body?: unknown;
|
|
36
|
+
readonly context?: {
|
|
37
|
+
readonly principalId?: string;
|
|
38
|
+
readonly principalKind?: 'user' | 'bot' | 'service' | 'token' | 'remote-peer';
|
|
39
|
+
readonly admin?: boolean;
|
|
40
|
+
readonly scopes?: readonly string[];
|
|
41
|
+
readonly clientKind?: string;
|
|
42
|
+
};
|
|
43
|
+
}) => Promise<{
|
|
44
|
+
status: number;
|
|
45
|
+
ok: boolean;
|
|
46
|
+
body: unknown;
|
|
47
|
+
}>;
|
|
48
|
+
readonly parseOptionalJsonBody: (req: Request) => Promise<Record<string, unknown> | null | Response>;
|
|
49
|
+
readonly requireAdmin: (req: Request) => Response | null;
|
|
50
|
+
readonly requireAuthenticatedSession: (req: Request) => {
|
|
51
|
+
username: string;
|
|
52
|
+
roles: readonly string[];
|
|
53
|
+
} | null;
|
|
54
|
+
}
|
|
55
|
+
export declare function createDaemonControlRouteHandlers(context: ControlRouteContext, request: Request): Pick<DaemonApiRouteHandlers, 'getStatus' | 'getCurrentAuth' | 'getControlPlaneSnapshot' | 'getOperatorContract' | 'getControlPlaneWeb' | 'getControlPlaneRecentEvents' | 'getControlPlaneMessages' | 'getControlPlaneClients' | 'getGatewayMethods' | 'getGatewayEvents' | 'getGatewayMethod' | 'invokeGatewayMethod' | 'createControlPlaneEventStream'>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=control-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-routes.d.ts","sourceRoot":"","sources":["../src/control-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { serializableJsonResponse } from './route-helpers.js';
|
|
2
|
+
export function createDaemonControlRouteHandlers(context, request) {
|
|
3
|
+
const hasAuthorizationHeader = Boolean(request.headers.get('authorization')?.trim());
|
|
4
|
+
const sessionCookiePresent = (request.headers.get('cookie') ?? '')
|
|
5
|
+
.split(';')
|
|
6
|
+
.some((segment) => segment.trim().startsWith(`${context.sessionCookieName}=`));
|
|
7
|
+
return {
|
|
8
|
+
getStatus: () => Response.json({
|
|
9
|
+
status: 'running',
|
|
10
|
+
version: context.version,
|
|
11
|
+
network: {
|
|
12
|
+
controlPlane: context.inspectInboundTls('controlPlane'),
|
|
13
|
+
httpListener: context.inspectInboundTls('httpListener'),
|
|
14
|
+
outbound: context.inspectOutboundTls(),
|
|
15
|
+
},
|
|
16
|
+
}),
|
|
17
|
+
getCurrentAuth: (req) => {
|
|
18
|
+
const token = context.extractAuthToken(req).trim();
|
|
19
|
+
const principal = context.resolveAuthenticatedPrincipal(req);
|
|
20
|
+
const session = principal?.principalKind === 'user'
|
|
21
|
+
? context.requireAuthenticatedSession(req)
|
|
22
|
+
: null;
|
|
23
|
+
const authMode = principal
|
|
24
|
+
? (principal.principalKind === 'token' && principal.principalId === 'shared-token' ? 'shared-token' : 'session')
|
|
25
|
+
: token.length > 0
|
|
26
|
+
? 'invalid'
|
|
27
|
+
: 'anonymous';
|
|
28
|
+
const snapshot = {
|
|
29
|
+
authenticated: principal !== null,
|
|
30
|
+
authMode,
|
|
31
|
+
tokenPresent: token.length > 0,
|
|
32
|
+
authorizationHeaderPresent: hasAuthorizationHeader,
|
|
33
|
+
sessionCookiePresent,
|
|
34
|
+
principalId: principal?.principalId ?? null,
|
|
35
|
+
principalKind: principal?.principalKind ?? null,
|
|
36
|
+
admin: principal?.admin ?? false,
|
|
37
|
+
scopes: principal?.scopes ?? [],
|
|
38
|
+
roles: session?.roles ?? [],
|
|
39
|
+
};
|
|
40
|
+
return Response.json(snapshot);
|
|
41
|
+
},
|
|
42
|
+
getControlPlaneSnapshot: () => Response.json(context.controlPlaneGateway.getSnapshot()),
|
|
43
|
+
getOperatorContract: () => serializableJsonResponse({ contract: context.getOperatorContract() }),
|
|
44
|
+
getControlPlaneWeb: () => context.controlPlaneGateway.renderWebUi(),
|
|
45
|
+
getControlPlaneRecentEvents: (limit) => Response.json({ events: context.controlPlaneGateway.listRecentEvents(limit) }),
|
|
46
|
+
getControlPlaneMessages: () => Response.json({ messages: context.controlPlaneGateway.listSurfaceMessages() }),
|
|
47
|
+
getControlPlaneClients: () => Response.json({ clients: context.controlPlaneGateway.listClients() }),
|
|
48
|
+
getGatewayMethods: (url) => {
|
|
49
|
+
const category = url.searchParams.get('category') ?? undefined;
|
|
50
|
+
const source = url.searchParams.get('source');
|
|
51
|
+
return serializableJsonResponse({
|
|
52
|
+
methods: context.gatewayMethods.list({
|
|
53
|
+
...(category ? { category } : {}),
|
|
54
|
+
...(source === 'builtin' || source === 'plugin' ? { source } : {}),
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
getGatewayEvents: (url) => {
|
|
59
|
+
const category = url.searchParams.get('category') ?? undefined;
|
|
60
|
+
const source = url.searchParams.get('source');
|
|
61
|
+
const domain = url.searchParams.get('domain') ?? undefined;
|
|
62
|
+
return serializableJsonResponse({
|
|
63
|
+
events: context.gatewayMethods.listEvents({
|
|
64
|
+
...(category ? { category } : {}),
|
|
65
|
+
...(source === 'builtin' || source === 'plugin' ? { source } : {}),
|
|
66
|
+
...(domain ? { domain: domain } : {}),
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
getGatewayMethod: (methodId) => {
|
|
71
|
+
const method = context.gatewayMethods.get(methodId);
|
|
72
|
+
return method
|
|
73
|
+
? serializableJsonResponse({ method })
|
|
74
|
+
: Response.json({ error: 'Unknown gateway method' }, { status: 404 });
|
|
75
|
+
},
|
|
76
|
+
invokeGatewayMethod: async (methodId, req) => {
|
|
77
|
+
const descriptor = context.gatewayMethods.get(methodId);
|
|
78
|
+
if (!descriptor)
|
|
79
|
+
return Response.json({ error: 'Unknown gateway method' }, { status: 404 });
|
|
80
|
+
if (descriptor.dangerous || descriptor.access === 'admin') {
|
|
81
|
+
const admin = context.requireAdmin(req);
|
|
82
|
+
if (admin)
|
|
83
|
+
return admin;
|
|
84
|
+
}
|
|
85
|
+
const principal = context.resolveAuthenticatedPrincipal(req);
|
|
86
|
+
const parsedBody = await context.parseOptionalJsonBody(req);
|
|
87
|
+
if (parsedBody instanceof Response)
|
|
88
|
+
return parsedBody;
|
|
89
|
+
const payload = parsedBody ?? {};
|
|
90
|
+
const response = await context.invokeGatewayMethodCall({
|
|
91
|
+
authToken: context.extractAuthToken(req),
|
|
92
|
+
methodId,
|
|
93
|
+
query: typeof payload.query === 'object' && payload.query !== null ? payload.query : undefined,
|
|
94
|
+
body: Object.hasOwn(payload, 'body') ? payload.body : payload,
|
|
95
|
+
context: {
|
|
96
|
+
principalId: principal?.principalId,
|
|
97
|
+
principalKind: principal?.principalKind,
|
|
98
|
+
admin: principal?.admin,
|
|
99
|
+
scopes: principal?.scopes,
|
|
100
|
+
clientKind: 'web',
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
return Response.json(response.body, { status: response.status });
|
|
104
|
+
},
|
|
105
|
+
createControlPlaneEventStream: (req) => {
|
|
106
|
+
const url = new URL(req.url);
|
|
107
|
+
const rawDomains = url.searchParams.get('domains');
|
|
108
|
+
const domains = (rawDomains ? rawDomains.split(',').map((value) => value.trim()).filter(Boolean) : []);
|
|
109
|
+
const principal = context.resolveAuthenticatedPrincipal(req);
|
|
110
|
+
return context.controlPlaneGateway.createEventStream(req, {
|
|
111
|
+
clientKind: 'web',
|
|
112
|
+
transport: 'sse',
|
|
113
|
+
domains,
|
|
114
|
+
principalId: principal?.principalId ?? (context.authToken ? 'shared-token' : context.requireAuthenticatedSession(req)?.username ?? 'session-user'),
|
|
115
|
+
principalKind: principal?.principalKind ?? (context.authToken ? 'token' : 'user'),
|
|
116
|
+
scopes: principal?.scopes ?? ['read:events', 'read:control-plane'],
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type DaemonErrorSource, type StructuredDaemonErrorBody } from '@pellux/goodvibes-errors';
|
|
2
|
+
export interface JsonErrorResponseOptions {
|
|
3
|
+
readonly status?: number;
|
|
4
|
+
readonly fallbackMessage?: string;
|
|
5
|
+
readonly source?: DaemonErrorSource;
|
|
6
|
+
}
|
|
7
|
+
export declare function buildErrorResponseBody(error: unknown, options?: JsonErrorResponseOptions): StructuredDaemonErrorBody;
|
|
8
|
+
export declare function jsonErrorResponse(error: unknown, options?: JsonErrorResponseOptions): Response;
|
|
9
|
+
export declare function summarizeErrorForRecord(error: unknown, options?: JsonErrorResponseOptions): string;
|
|
10
|
+
//# sourceMappingURL=error-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../src/error-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAGtB,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAgDD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,wBAA6B,GACrC,yBAAyB,CA2B3B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,wBAA6B,GAAG,QAAQ,CASlG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,wBAA6B,GAAG,MAAM,CAEtG"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { GoodVibesSdkError, isStructuredDaemonErrorBody, } from '@pellux/goodvibes-errors';
|
|
2
|
+
function normalizeCategory(value) {
|
|
3
|
+
return value === 'authentication'
|
|
4
|
+
|| value === 'authorization'
|
|
5
|
+
|| value === 'billing'
|
|
6
|
+
|| value === 'rate_limit'
|
|
7
|
+
|| value === 'timeout'
|
|
8
|
+
|| value === 'network'
|
|
9
|
+
|| value === 'bad_request'
|
|
10
|
+
|| value === 'not_found'
|
|
11
|
+
|| value === 'permission'
|
|
12
|
+
|| value === 'tool'
|
|
13
|
+
|| value === 'config'
|
|
14
|
+
|| value === 'protocol'
|
|
15
|
+
|| value === 'service'
|
|
16
|
+
|| value === 'internal'
|
|
17
|
+
|| value === 'unknown'
|
|
18
|
+
? value
|
|
19
|
+
: undefined;
|
|
20
|
+
}
|
|
21
|
+
function normalizeSource(value) {
|
|
22
|
+
return value === 'provider'
|
|
23
|
+
|| value === 'tool'
|
|
24
|
+
|| value === 'transport'
|
|
25
|
+
|| value === 'config'
|
|
26
|
+
|| value === 'permission'
|
|
27
|
+
|| value === 'runtime'
|
|
28
|
+
|| value === 'render'
|
|
29
|
+
|| value === 'acp'
|
|
30
|
+
|| value === 'unknown'
|
|
31
|
+
? value
|
|
32
|
+
: undefined;
|
|
33
|
+
}
|
|
34
|
+
function readMessage(error, fallbackMessage) {
|
|
35
|
+
if (typeof error === 'string' && error.trim())
|
|
36
|
+
return error.trim();
|
|
37
|
+
if (error instanceof Error && error.message.trim())
|
|
38
|
+
return error.message.trim();
|
|
39
|
+
if (error && typeof error === 'object' && typeof error.error === 'string') {
|
|
40
|
+
return (error.error).trim();
|
|
41
|
+
}
|
|
42
|
+
if (error && typeof error === 'object' && typeof error.message === 'string') {
|
|
43
|
+
return (error.message).trim();
|
|
44
|
+
}
|
|
45
|
+
return fallbackMessage ?? 'Unexpected error';
|
|
46
|
+
}
|
|
47
|
+
export function buildErrorResponseBody(error, options = {}) {
|
|
48
|
+
if (isStructuredDaemonErrorBody(error)) {
|
|
49
|
+
return error;
|
|
50
|
+
}
|
|
51
|
+
if (error instanceof GoodVibesSdkError) {
|
|
52
|
+
return {
|
|
53
|
+
error: error.message,
|
|
54
|
+
...(error.hint ? { hint: error.hint } : {}),
|
|
55
|
+
...(error.code ? { code: error.code } : {}),
|
|
56
|
+
...(normalizeCategory(error.category) ? { category: normalizeCategory(error.category) } : {}),
|
|
57
|
+
...(normalizeSource(error.source) ? { source: normalizeSource(error.source) } : {}),
|
|
58
|
+
recoverable: error.recoverable,
|
|
59
|
+
...(error.status !== undefined ? { status: error.status } : {}),
|
|
60
|
+
...(error.provider ? { provider: error.provider } : {}),
|
|
61
|
+
...(error.operation ? { operation: error.operation } : {}),
|
|
62
|
+
...(error.phase ? { phase: error.phase } : {}),
|
|
63
|
+
...(error.requestId ? { requestId: error.requestId } : {}),
|
|
64
|
+
...(error.providerCode ? { providerCode: error.providerCode } : {}),
|
|
65
|
+
...(error.providerType ? { providerType: error.providerType } : {}),
|
|
66
|
+
...(error.retryAfterMs !== undefined ? { retryAfterMs: error.retryAfterMs } : {}),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
error: readMessage(error, options.fallbackMessage),
|
|
71
|
+
...(options.source ? { source: options.source } : {}),
|
|
72
|
+
...(options.status !== undefined ? { status: options.status } : {}),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function jsonErrorResponse(error, options = {}) {
|
|
76
|
+
const body = buildErrorResponseBody(error, options);
|
|
77
|
+
const status = options.status ?? body.status ?? 500;
|
|
78
|
+
return Response.json(body.status === undefined && options.status !== undefined
|
|
79
|
+
? { ...body, status: options.status }
|
|
80
|
+
: body, { status });
|
|
81
|
+
}
|
|
82
|
+
export function summarizeErrorForRecord(error, options = {}) {
|
|
83
|
+
return buildErrorResponseBody(error, options).error;
|
|
84
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type AuthenticatedPrincipalKind = 'user' | 'bot' | 'service' | 'token';
|
|
2
|
+
export interface AuthenticatedPrincipal {
|
|
3
|
+
readonly principalId: string;
|
|
4
|
+
readonly principalKind: AuthenticatedPrincipalKind;
|
|
5
|
+
readonly admin: boolean;
|
|
6
|
+
readonly scopes: readonly string[];
|
|
7
|
+
}
|
|
8
|
+
interface AuthenticatedPrincipalResolver {
|
|
9
|
+
readonly extractAuthToken: (req: Request) => string;
|
|
10
|
+
readonly describeAuthenticatedPrincipal: (token: string) => AuthenticatedPrincipal | null;
|
|
11
|
+
}
|
|
12
|
+
interface PrivateHostFetchConfig {
|
|
13
|
+
readonly configManager: {
|
|
14
|
+
get(key: string): unknown;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
interface ElevatedPrivateHostFetchConfig extends PrivateHostFetchConfig {
|
|
18
|
+
readonly req: Request;
|
|
19
|
+
readonly requireElevatedAccess: (req: Request) => Response | null;
|
|
20
|
+
}
|
|
21
|
+
export declare function resolveAuthenticatedPrincipal(req: Request, resolver: AuthenticatedPrincipalResolver): AuthenticatedPrincipal | null;
|
|
22
|
+
export declare function buildMissingScopeBody(target: string, requiredScopes: readonly string[], grantedScopes: readonly string[] | undefined): {
|
|
23
|
+
readonly error: string;
|
|
24
|
+
readonly requiredScopes: readonly string[];
|
|
25
|
+
readonly grantedScopes: readonly string[];
|
|
26
|
+
readonly missingScopes: readonly string[];
|
|
27
|
+
} | null;
|
|
28
|
+
export declare function resolvePrivateHostFetchOptions(requested: unknown, context: PrivateHostFetchConfig | ElevatedPrivateHostFetchConfig): {
|
|
29
|
+
allowPrivateHosts: true;
|
|
30
|
+
fetchMode: 'allow-private-hosts';
|
|
31
|
+
} | {} | Response;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=http-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-policy.d.ts","sourceRoot":"","sources":["../src/http-policy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,UAAU,8BAA8B;IACtC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IACpD,QAAQ,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,sBAAsB,GAAG,IAAI,CAAC;CAC3F;AAED,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,aAAa,EAAE;QACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,UAAU,8BAA+B,SAAQ,sBAAsB;IACrE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;CACnE;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,8BAA8B,GACvC,sBAAsB,GAAG,IAAI,CAG/B;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC3C;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,GAAG,IAAI,CASP;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,sBAAsB,GAAG,8BAA8B,GAC/D;IAAE,iBAAiB,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAA;CAAE,GAAG,EAAE,GAAG,QAAQ,CAU/E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Synced from goodvibes-tui/src/daemon/http-policy.ts
|
|
2
|
+
import { missingScopes } from './route-helpers.js';
|
|
3
|
+
export function resolveAuthenticatedPrincipal(req, resolver) {
|
|
4
|
+
const token = resolver.extractAuthToken(req);
|
|
5
|
+
return token ? resolver.describeAuthenticatedPrincipal(token) : null;
|
|
6
|
+
}
|
|
7
|
+
export function buildMissingScopeBody(target, requiredScopes, grantedScopes) {
|
|
8
|
+
const missing = missingScopes(grantedScopes, requiredScopes);
|
|
9
|
+
if (missing.length === 0)
|
|
10
|
+
return null;
|
|
11
|
+
return {
|
|
12
|
+
error: `Missing required scope${missing.length === 1 ? '' : 's'} for ${target}: ${missing.join(', ')}`,
|
|
13
|
+
requiredScopes: [...requiredScopes],
|
|
14
|
+
grantedScopes: [...(grantedScopes ?? [])],
|
|
15
|
+
missingScopes: missing,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function resolvePrivateHostFetchOptions(requested, context) {
|
|
19
|
+
if (requested !== true)
|
|
20
|
+
return {};
|
|
21
|
+
if (!Boolean(context.configManager.get('network.remoteFetch.allowPrivateHosts'))) {
|
|
22
|
+
return Response.json({ error: 'Private-host remote fetches are disabled by config.' }, { status: 403 });
|
|
23
|
+
}
|
|
24
|
+
if ('requireElevatedAccess' in context) {
|
|
25
|
+
const denied = context.requireElevatedAccess(context.req);
|
|
26
|
+
if (denied)
|
|
27
|
+
return denied;
|
|
28
|
+
}
|
|
29
|
+
return { allowPrivateHosts: true, fetchMode: 'allow-private-hosts' };
|
|
30
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type { MaybeResponse, DaemonApiRouteHandlers } from './context.js';
|
|
2
|
+
export { dispatchAutomationRoutes } from './automation.js';
|
|
3
|
+
export { dispatchSessionRoutes } from './sessions.js';
|
|
4
|
+
export { dispatchTaskRoutes } from './tasks.js';
|
|
5
|
+
export { dispatchOperatorRoutes } from './operator.js';
|
|
6
|
+
export { dispatchRemoteRoutes } from './remote.js';
|
|
7
|
+
export { dispatchDaemonApiRoutes } from './api-router.js';
|
|
8
|
+
export { buildMissingScopeBody, resolveAuthenticatedPrincipal, resolvePrivateHostFetchOptions, } from './http-policy.js';
|
|
9
|
+
export type { AuthenticatedPrincipal, AuthenticatedPrincipalKind } from './http-policy.js';
|
|
10
|
+
export { isJsonRecord, missingScopes, readChannelConversationKind, readChannelLifecycleAction, scopeMatches, } from './route-helpers.js';
|
|
11
|
+
export type { ChannelConversationKind, ChannelLifecycleAction, JsonRecord, } from './route-helpers.js';
|
|
12
|
+
export type { ChannelDirectoryQuery, ChannelDirectoryScope, ChannelPluginServiceLike, ChannelPolicyServiceLike, ChannelSurface, DaemonChannelRouteContext, SurfaceRegistryLike, } from './channel-route-types.js';
|
|
13
|
+
export type { ChannelAccountRegistryLike, DaemonIntegrationRouteContext, IntegrationHelperServiceLike, MemoryEmbeddingRegistryLike, MemoryRegistryLike, ProviderRuntimeSnapshotServiceLike, RuntimeEventDomain as DaemonRuntimeEventDomain, UserAuthManagerLike, } from './integration-route-types.js';
|
|
14
|
+
export type { ApprovalBrokerLike, AutomationDeliveryGuarantee, AutomationRouteBindingKind, AutomationSessionPolicy, AutomationSurfaceKind, AutomationThreadPolicy, ConfigManagerLike as DaemonSystemConfigManagerLike, DaemonApiClientKind, DaemonSystemRouteContext, PlatformServiceManagerLike, RouteBindingManagerLike, WatcherKind, WatcherRegistryLike, } from './system-route-types.js';
|
|
15
|
+
export type { AuthenticatedPrincipalLike, AutomationScheduleDefinition, DaemonKnowledgeRouteContext, KnowledgeGraphqlAccessLike, KnowledgeGraphqlResultLike, KnowledgeGraphqlServiceLike, KnowledgePacketDetail, KnowledgeProjectionTargetKind, KnowledgeServiceLike, } from './knowledge-route-types.js';
|
|
16
|
+
export type { ArtifactKind, DaemonMediaRouteContext, FetchExtractMode, MediaArtifact, MediaProviderRegistryLike, MultimodalAnalysisResult, MultimodalDetail, MultimodalServiceLike, VoiceAudioArtifact, VoiceServiceLike, WebSearchSafeSearch, WebSearchServiceLike, WebSearchTimeRange, WebSearchVerbosity, } from './media-route-types.js';
|
|
17
|
+
export { createDaemonControlRouteHandlers } from './control-routes.js';
|
|
18
|
+
export { createDaemonTelemetryRouteHandlers } from './telemetry-routes.js';
|
|
19
|
+
export { createDaemonChannelRouteHandlers } from './channel-routes.js';
|
|
20
|
+
export { createDaemonIntegrationRouteHandlers } from './integration-routes.js';
|
|
21
|
+
export { createDaemonSystemRouteHandlers } from './system-routes.js';
|
|
22
|
+
export { createDaemonKnowledgeRouteHandlers } from './knowledge-routes.js';
|
|
23
|
+
export { createDaemonMediaRouteHandlers } from './media-routes.js';
|
|
24
|
+
export type { DaemonRuntimeRouteContext, JsonBody } from './runtime-route-types.js';
|
|
25
|
+
export { createDaemonRuntimeAutomationRouteHandlers } from './runtime-automation-routes.js';
|
|
26
|
+
export { createDaemonRuntimeSessionRouteHandlers } from './runtime-session-routes.js';
|
|
27
|
+
export { createDaemonRuntimeRouteHandlers } from './runtime-routes.js';
|
|
28
|
+
export { createDaemonRemoteRouteHandlers, handleRemotePairRequest, handleRemotePairVerify, handleRemotePeerHeartbeat, handleRemotePeerWorkPull, handleRemotePeerWorkComplete, } from './remote-routes.js';
|
|
29
|
+
export { buildErrorResponseBody, jsonErrorResponse, summarizeErrorForRecord } from './error-response.js';
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|