@jini-ai/http-kit 0.2.1
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/LICENSE +201 -0
- package/README.md +107 -0
- package/dist/active-context.d.ts +99 -0
- package/dist/active-context.d.ts.map +1 -0
- package/dist/active-context.js +77 -0
- package/dist/active-context.js.map +1 -0
- package/dist/adapter.d.ts +36 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +92 -0
- package/dist/adapter.js.map +1 -0
- package/dist/agents.d.ts +55 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +23 -0
- package/dist/agents.js.map +1 -0
- package/dist/api-security-middleware.d.ts +146 -0
- package/dist/api-security-middleware.d.ts.map +1 -0
- package/dist/api-security-middleware.js +276 -0
- package/dist/api-security-middleware.js.map +1 -0
- package/dist/attachments.d.ts +317 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +664 -0
- package/dist/attachments.js.map +1 -0
- package/dist/cancel-owned-runs.d.ts +44 -0
- package/dist/cancel-owned-runs.d.ts.map +1 -0
- package/dist/cancel-owned-runs.js +35 -0
- package/dist/cancel-owned-runs.js.map +1 -0
- package/dist/compat.d.ts +22 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +17 -0
- package/dist/compat.js.map +1 -0
- package/dist/component-catalog.d.ts +74 -0
- package/dist/component-catalog.d.ts.map +1 -0
- package/dist/component-catalog.js +74 -0
- package/dist/component-catalog.js.map +1 -0
- package/dist/connectors.d.ts +165 -0
- package/dist/connectors.d.ts.map +1 -0
- package/dist/connectors.js +474 -0
- package/dist/connectors.js.map +1 -0
- package/dist/daemon-status.d.ts +72 -0
- package/dist/daemon-status.d.ts.map +1 -0
- package/dist/daemon-status.js +60 -0
- package/dist/daemon-status.js.map +1 -0
- package/dist/db-ops.d.ts +116 -0
- package/dist/db-ops.d.ts.map +1 -0
- package/dist/db-ops.js +191 -0
- package/dist/db-ops.js.map +1 -0
- package/dist/delegated-tools.d.ts +46 -0
- package/dist/delegated-tools.d.ts.map +1 -0
- package/dist/delegated-tools.js +155 -0
- package/dist/delegated-tools.js.map +1 -0
- package/dist/express/run-stream.d.ts +15 -0
- package/dist/express/run-stream.d.ts.map +1 -0
- package/dist/express/run-stream.js +11 -0
- package/dist/express/run-stream.js.map +1 -0
- package/dist/express-index.d.ts +32 -0
- package/dist/express-index.d.ts.map +1 -0
- package/dist/express-index.js +14 -0
- package/dist/express-index.js.map +1 -0
- package/dist/fastify/adapter.d.ts +31 -0
- package/dist/fastify/adapter.d.ts.map +1 -0
- package/dist/fastify/adapter.js +64 -0
- package/dist/fastify/adapter.js.map +1 -0
- package/dist/fastify/agents.d.ts +13 -0
- package/dist/fastify/agents.d.ts.map +1 -0
- package/dist/fastify/agents.js +7 -0
- package/dist/fastify/agents.js.map +1 -0
- package/dist/fastify/api-security-middleware.d.ts +64 -0
- package/dist/fastify/api-security-middleware.d.ts.map +1 -0
- package/dist/fastify/api-security-middleware.js +139 -0
- package/dist/fastify/api-security-middleware.js.map +1 -0
- package/dist/fastify/compat.d.ts +22 -0
- package/dist/fastify/compat.d.ts.map +1 -0
- package/dist/fastify/compat.js +16 -0
- package/dist/fastify/compat.js.map +1 -0
- package/dist/fastify/daemon-status.d.ts +22 -0
- package/dist/fastify/daemon-status.d.ts.map +1 -0
- package/dist/fastify/daemon-status.js +9 -0
- package/dist/fastify/daemon-status.js.map +1 -0
- package/dist/fastify/host-tools.d.ts +13 -0
- package/dist/fastify/host-tools.d.ts.map +1 -0
- package/dist/fastify/host-tools.js +8 -0
- package/dist/fastify/host-tools.js.map +1 -0
- package/dist/fastify/index.d.ts +36 -0
- package/dist/fastify/index.d.ts.map +1 -0
- package/dist/fastify/index.js +18 -0
- package/dist/fastify/index.js.map +1 -0
- package/dist/fastify/local-daemon-request.d.ts +43 -0
- package/dist/fastify/local-daemon-request.d.ts.map +1 -0
- package/dist/fastify/local-daemon-request.js +155 -0
- package/dist/fastify/local-daemon-request.js.map +1 -0
- package/dist/fastify/origin.d.ts +21 -0
- package/dist/fastify/origin.d.ts.map +1 -0
- package/dist/fastify/origin.js +14 -0
- package/dist/fastify/origin.js.map +1 -0
- package/dist/fastify/request.d.ts +20 -0
- package/dist/fastify/request.d.ts.map +1 -0
- package/dist/fastify/request.js +25 -0
- package/dist/fastify/request.js.map +1 -0
- package/dist/fastify/response.d.ts +20 -0
- package/dist/fastify/response.d.ts.map +1 -0
- package/dist/fastify/response.js +41 -0
- package/dist/fastify/response.js.map +1 -0
- package/dist/fastify/route-registration-guard.d.ts +70 -0
- package/dist/fastify/route-registration-guard.d.ts.map +1 -0
- package/dist/fastify/route-registration-guard.js +69 -0
- package/dist/fastify/route-registration-guard.js.map +1 -0
- package/dist/fastify/run-stream.d.ts +18 -0
- package/dist/fastify/run-stream.d.ts.map +1 -0
- package/dist/fastify/run-stream.js +10 -0
- package/dist/fastify/run-stream.js.map +1 -0
- package/dist/fastify/runs.d.ts +17 -0
- package/dist/fastify/runs.d.ts.map +1 -0
- package/dist/fastify/runs.js +33 -0
- package/dist/fastify/runs.js.map +1 -0
- package/dist/frontend-control.d.ts +131 -0
- package/dist/frontend-control.d.ts.map +1 -0
- package/dist/frontend-control.js +77 -0
- package/dist/frontend-control.js.map +1 -0
- package/dist/frontend-sessions.d.ts +100 -0
- package/dist/frontend-sessions.d.ts.map +1 -0
- package/dist/frontend-sessions.js +180 -0
- package/dist/frontend-sessions.js.map +1 -0
- package/dist/health.d.ts +91 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +53 -0
- package/dist/health.js.map +1 -0
- package/dist/host-tools.d.ts +174 -0
- package/dist/host-tools.d.ts.map +1 -0
- package/dist/host-tools.js +338 -0
- package/dist/host-tools.js.map +1 -0
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/local-daemon-request.d.ts +44 -0
- package/dist/local-daemon-request.d.ts.map +1 -0
- package/dist/local-daemon-request.js +145 -0
- package/dist/local-daemon-request.js.map +1 -0
- package/dist/media.d.ts +131 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +352 -0
- package/dist/media.js.map +1 -0
- package/dist/memory.d.ts +230 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +331 -0
- package/dist/memory.js.map +1 -0
- package/dist/model-proxy.d.ts +45 -0
- package/dist/model-proxy.d.ts.map +1 -0
- package/dist/model-proxy.js +619 -0
- package/dist/model-proxy.js.map +1 -0
- package/dist/origin-validation.d.ts +64 -0
- package/dist/origin-validation.d.ts.map +1 -0
- package/dist/origin-validation.js +226 -0
- package/dist/origin-validation.js.map +1 -0
- package/dist/origin.d.ts +32 -0
- package/dist/origin.d.ts.map +1 -0
- package/dist/origin.js +14 -0
- package/dist/origin.js.map +1 -0
- package/dist/pack-http.d.ts +30 -0
- package/dist/pack-http.d.ts.map +1 -0
- package/dist/pack-http.js +12 -0
- package/dist/pack-http.js.map +1 -0
- package/dist/raw-sse.d.ts +44 -0
- package/dist/raw-sse.d.ts.map +1 -0
- package/dist/raw-sse.js +93 -0
- package/dist/raw-sse.js.map +1 -0
- package/dist/remote-run-events.d.ts +66 -0
- package/dist/remote-run-events.d.ts.map +1 -0
- package/dist/remote-run-events.js +230 -0
- package/dist/remote-run-events.js.map +1 -0
- package/dist/request.d.ts +19 -0
- package/dist/request.d.ts.map +1 -0
- package/dist/request.js +25 -0
- package/dist/request.js.map +1 -0
- package/dist/research.d.ts +42 -0
- package/dist/research.d.ts.map +1 -0
- package/dist/research.js +316 -0
- package/dist/research.js.map +1 -0
- package/dist/response.d.ts +14 -0
- package/dist/response.d.ts.map +1 -0
- package/dist/response.js +45 -0
- package/dist/response.js.map +1 -0
- package/dist/route-manifest.d.ts +31 -0
- package/dist/route-manifest.d.ts.map +1 -0
- package/dist/route-manifest.js +103 -0
- package/dist/route-manifest.js.map +1 -0
- package/dist/route-registration-guard.d.ts +65 -0
- package/dist/route-registration-guard.d.ts.map +1 -0
- package/dist/route-registration-guard.js +71 -0
- package/dist/route-registration-guard.js.map +1 -0
- package/dist/routines.d.ts +114 -0
- package/dist/routines.d.ts.map +1 -0
- package/dist/routines.js +320 -0
- package/dist/routines.js.map +1 -0
- package/dist/run-stream.d.ts +60 -0
- package/dist/run-stream.d.ts.map +1 -0
- package/dist/run-stream.js +108 -0
- package/dist/run-stream.js.map +1 -0
- package/dist/runs.d.ts +79 -0
- package/dist/runs.d.ts.map +1 -0
- package/dist/runs.js +232 -0
- package/dist/runs.js.map +1 -0
- package/dist/sse.d.ts +139 -0
- package/dist/sse.d.ts.map +1 -0
- package/dist/sse.js +157 -0
- package/dist/sse.js.map +1 -0
- package/dist/terminals.d.ts +125 -0
- package/dist/terminals.d.ts.map +1 -0
- package/dist/terminals.js +349 -0
- package/dist/terminals.js.map +1 -0
- package/dist/tool-catalog.d.ts +68 -0
- package/dist/tool-catalog.d.ts.map +1 -0
- package/dist/tool-catalog.js +68 -0
- package/dist/tool-catalog.js.map +1 -0
- package/dist/types.d.ts +58 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/workspace-root.d.ts +69 -0
- package/dist/workspace-root.d.ts.map +1 -0
- package/dist/workspace-root.js +63 -0
- package/dist/workspace-root.js.map +1 -0
- package/dist/xai.d.ts +86 -0
- package/dist/xai.d.ts.map +1 -0
- package/dist/xai.js +668 -0
- package/dist/xai.js.map +1 -0
- package/package.json +58 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module @jini-ai/http-kit
|
|
3
|
+
*
|
|
4
|
+
* JSON-route transport for a `@jini-ai/core` daemon composition: the `Result`/route-spec types,
|
|
5
|
+
* request parsing, response serialization, the same-origin guard, the Express-mounting Adapter,
|
|
6
|
+
* legacy-shaped compat error helpers, a route-pack registrar, generic daemon status/shutdown
|
|
7
|
+
* routes, and every route pack this package ships (runs, agents, host-tools, memory, routines,
|
|
8
|
+
* db-ops, terminals, model-proxy, active-context, delegated-tools) — all exported flat at this
|
|
9
|
+
* root, the load-bearing surface every consumer (including `@jini-ai/server`'s
|
|
10
|
+
* `createLocalNodeDaemon`) imports from directly.
|
|
11
|
+
*
|
|
12
|
+
* This package supported a switchable `express`/`fastify` HTTP transport from 2026-07-19 through
|
|
13
|
+
* 2026-07-22; it was removed since nothing ever consumed `transport: 'fastify'` in practice, and
|
|
14
|
+
* the maintained-but-unused Fastify subtree cost a recurring "does this new route pack also need a
|
|
15
|
+
* Fastify mounting sibling" tax on every future addition to this package. The removed
|
|
16
|
+
* implementation is preserved, unchanged, on the `future/fastify-transport` branch — see
|
|
17
|
+
* `FASTIFY-TRANSPORT-PARKED.md` at the repo root of that branch for the full reasoning and how to
|
|
18
|
+
* revive it. See `source-map.md` for this package's full provenance and scope-decision notes.
|
|
19
|
+
*/
|
|
20
|
+
export type { Handler, HttpMethod, InputParser, JsonRouteSpec, Result, RouteInputContext, } from './types.js';
|
|
21
|
+
export { err, ok } from './types.js';
|
|
22
|
+
export type { ParsedHostHeader, RequestWithOriginHeaders, } from './origin-validation.js';
|
|
23
|
+
export { allowedBrowserPorts, assertValidAllowedOrigins, configuredAllowedHosts, configuredAllowedOrigins, isAllowedBrowserHost, isAllowedBrowserOrigin, isIpLiteralHostname, isLoopbackOrPrivateLanHost, isLocalSameOrigin, isPrivateIpv4, parseHostHeader, } from './origin-validation.js';
|
|
24
|
+
export type { AdapterContext } from './adapter.js';
|
|
25
|
+
export { defineJsonRoute, mountJsonRoute } from './adapter.js';
|
|
26
|
+
export type { InstallRouteRegistrationGuardOptions, RouteRegistration } from './route-registration-guard.js';
|
|
27
|
+
export { getRouteRegistrationInventory, guardedRouteKey, installRouteRegistrationGuard, } from './route-registration-guard.js';
|
|
28
|
+
export type { CreateSseChannelOptions, SseChannel, SseEvent } from './sse.js';
|
|
29
|
+
export { createSseChannel, DEFAULT_MAX_QUEUED_SSE_EVENTS, requestedAfterCursor, sendRawApiError } from './sse.js';
|
|
30
|
+
export type { CreateSseResponseOptions, SseConnection } from './raw-sse.js';
|
|
31
|
+
export { createSseResponse } from './raw-sse.js';
|
|
32
|
+
export type { ResolveWorkspaceRootOptions, WorkspaceRootRequest, WorkspaceRootResolver, } from './workspace-root.js';
|
|
33
|
+
export { denyAllWorkspaceRoots, resolveWorkspaceRoot, WorkspaceRootDeniedError } from './workspace-root.js';
|
|
34
|
+
export { mountPackHttp } from './pack-http.js';
|
|
35
|
+
export type { RunCancellationService } from './cancel-owned-runs.js';
|
|
36
|
+
export { cancelRunsOwnedBy } from './cancel-owned-runs.js';
|
|
37
|
+
export type { ActiveContextDeps, ActiveContextResource } from './active-context.js';
|
|
38
|
+
export { ACTIVE_CONTEXT_TTL_MS, getActiveRoute, registerActiveContextRoutes, setActiveRoute, } from './active-context.js';
|
|
39
|
+
export type { CatalogueEntry, HostEditor, HostEditorsResponse, HostToolLaunchPlan, HostToolProbeEnv, LaunchHostToolResult, Platform, RealPlatform, } from './host-tools.js';
|
|
40
|
+
export { applicableForPlatform, CATALOGUE, currentPlatform, defaultProbeEnv, hostEditorsRoute, launchHostTool, listAvailableEditors, pathDirs, probeCommandOnPath, probeMacBundle, registerHostToolsRoutes, resolveEntry, resolveHostToolLaunchPlan, } from './host-tools.js';
|
|
41
|
+
export type { ApiBearerAuthMiddlewareDeps, ApiOriginGuardMiddlewareDeps, StrictBearerTokenDeps, } from './api-security-middleware.js';
|
|
42
|
+
export { bearerTokenFromHeader, registerApiBearerAuthMiddleware, registerApiOriginGuardMiddleware, requireStrictBearerToken, timingSafeTokenMatch, } from './api-security-middleware.js';
|
|
43
|
+
export { isLoopbackHostname, isLoopbackPeerAddress, localOriginFromHeader, normalizeLocalAuthority, requireLocalDaemonRequest, validateLocalDaemonRequest, } from './local-daemon-request.js';
|
|
44
|
+
export type { DaemonShutdownResponse, DaemonStatusDeps, DaemonStatusResponse, } from './daemon-status.js';
|
|
45
|
+
export { daemonShutdownRoute, daemonStatusRoute, registerDaemonStatusRoutes } from './daemon-status.js';
|
|
46
|
+
export type { RunCancelResponse, RunCreateRequest, RunHttpDeps, RunInternalErrorContext, RunListResponse, RunStartContext, RunStartHandler, RunStartResponse, RunStatusResponse, } from './runs.js';
|
|
47
|
+
export { registerRunEventStream, registerRunRoutes, RUN_EVENTS_ROUTE_PATH, runCancelRoute, runListRoute, runStartRoute, runStatusRoute, } from './runs.js';
|
|
48
|
+
export { JINI_ROUTE_MANIFEST, manifestRoutesForFamilies, routeFamilyManifest } from './route-manifest.js';
|
|
49
|
+
export type { AgentListResponse, AgentModelSummary, AgentsHttpDeps, AgentSummary } from './agents.js';
|
|
50
|
+
export { agentListRoute, agentRescanRoute, registerAgentRoutes } from './agents.js';
|
|
51
|
+
export type { MemoryChangeEmitter, MemoryConfigResponse, MemoryDeleteEntryResponse, MemoryEntryInput, MemoryEntryResponse, MemoryExtractionLog, MemoryExtractionsResponse, MemoryHttpDeps, MemoryIndexResponse, MemoryNoteEntry, MemoryNoteEntrySummary, MemoryNoteStore, MemoryNoteStoreOptions, MemoryOverviewResponse, MemoryRemovedResponse, MemoryTreeNode, MemoryTreeNodePatch, MemoryTreeResponse, MemoryUpdateTreeNodeResponse, MemoryVerificationsResponse, MemoryVerifyLog, } from './memory.js';
|
|
52
|
+
export { memoryClearExtractionsRoute, memoryClearVerificationsRoute, memoryCreateEntryRoute, memoryDeleteEntryRoute, memoryListExtractionsRoute, memoryListVerificationsRoute, memoryOverviewRoute, memoryReadEntryRoute, memoryRemoveExtractionRoute, memoryRemoveVerificationRoute, memoryTreeRoute, memoryUpdateEntryRoute, memoryUpdateTreeNodeRoute, memoryWriteConfigRoute, memoryWriteIndexRoute, registerMemoryEventStream, registerMemoryRoutes, } from './memory.js';
|
|
53
|
+
export type { RoutineDeleteResponse, RoutineHttpDeps, RoutineListResponse, RoutineResponse, RoutineRunNowResponse, RoutineRunsResponse, RoutineScheduler, } from './routines.js';
|
|
54
|
+
export { registerRoutineRoutes, routineCreateRoute, routineDeleteRoute, routineGetRoute, routineListRoute, routineRunNowRoute, routineRunsListRoute, routineUpdateRoute, } from './routines.js';
|
|
55
|
+
export type { CreateDaemonDbToolRegistrationsOptions, DaemonDbHttpDeps, DaemonDbInternalErrorContext, DaemonDbOperations, DaemonDbStatusReport, DaemonDbTableInfo, DaemonDbToolRegistrations, DaemonDbVacuumResult, DbIntegrityIssue, DbIntegrityIssueKind, DbIntegrityReport, } from './db-ops.js';
|
|
56
|
+
export { createDaemonDbToolRegistrations, daemonDbInspectRoute, daemonDbVacuumRoute, daemonDbVerifyRoute, DB_INSPECT_TOOL_ID, DB_VACUUM_TOOL_ID, DB_VERIFY_TOOL_ID, denyAllDaemonDbPolicy, registerDaemonDbRoutes, } from './db-ops.js';
|
|
57
|
+
export type { ToolCatalogEntry, ToolCatalogHttpDeps, ToolCatalogQuery, ToolCatalogSearchHit, } from './tool-catalog.js';
|
|
58
|
+
export { registerToolCatalogRoutes, toolCatalogDescribeRoute, toolCatalogSearchRoute, } from './tool-catalog.js';
|
|
59
|
+
export type { ComponentCatalogEntry, ComponentCatalogHttpDeps, ComponentCatalogQuery, ComponentCatalogSearchHit, } from './component-catalog.js';
|
|
60
|
+
export { registerComponentCatalogRoutes, componentCatalogDescribeRoute, componentCatalogSearchRoute, } from './component-catalog.js';
|
|
61
|
+
export type { DelegatedToolExecuteRequest, DelegatedToolExecuteResponse, DelegatedToolsHttpDeps, DelegatedToolsInternalErrorContext, } from './delegated-tools.js';
|
|
62
|
+
export { delegatedToolExecuteRoute, registerDelegatedToolRoutes } from './delegated-tools.js';
|
|
63
|
+
export type { RemoteRunEventHttpDeps, RemoteRunEventResponse, RemoteToolBridgeTokenConfig, RemoteToolResultRequest, RemoteToolUseRequest, } from './remote-run-events.js';
|
|
64
|
+
export { registerRemoteRunEventRoutes, remoteToolResultRoute, remoteToolUseRoute, requireRemoteToolBridgeToken, } from './remote-run-events.js';
|
|
65
|
+
export type { FrontendSessionAttachedEvent, FrontendSessionErrorEvent, FrontendSessionInvocationEvent, FrontendSessionResponseBody, FrontendSessionResponseRequest, FrontendSessionStreamEvent, FrontendSessionsHttpDeps, } from './frontend-sessions.js';
|
|
66
|
+
export { FRONTEND_SESSION_RESPONSE_ROUTE_PATH, FRONTEND_SESSION_STREAM_ROUTE_PATH, frontendSessionResponseRoute, handleFrontendSessionStream, parseCapabilityQuery, registerFrontendSessionRoutes, } from './frontend-sessions.js';
|
|
67
|
+
export { createFrontendControl } from './frontend-control.js';
|
|
68
|
+
export type { CreateFrontendControlOptions, FrontendBindErrorContext, FrontendControl, FrontendHttpExtension, } from './frontend-control.js';
|
|
69
|
+
export type { TerminalActionResponse, TerminalCreateRequest, TerminalListResponse, TerminalsHttpDeps, TerminalsInternalErrorContext, } from './terminals.js';
|
|
70
|
+
export { registerTerminalEventStream, registerTerminalRoutes, terminalCreateRoute, terminalDeleteRoute, terminalKillRoute, terminalListRoute, terminalResizeRoute, terminalStdinRoute, } from './terminals.js';
|
|
71
|
+
export type { ModelProxyHttpDeps, ModelProxyInternalErrorContext } from './model-proxy.js';
|
|
72
|
+
export { registerModelProxyRoutes } from './model-proxy.js';
|
|
73
|
+
export type { HealthHttpDeps, HealthReadinessResult, LivenessResponse, ReadinessResponse, VersionResponse } from './health.js';
|
|
74
|
+
export { apiHealthRoute, apiReadyRoute, apiVersionInfoRoute, healthRoute, readyRoute, registerHealthRoutes, versionInfoRoute, } from './health.js';
|
|
75
|
+
export type { AuthCredentials, AuthProvider, AuthSession, AuthUser, Charge, ChargeInput, ChargeStatus, ConnectorsAuthSessionResponse, ConnectorsAuthUserResponse, ConnectorsAuthVerifyResponse, ConnectorsChargeResponse, ConnectorsDbQueryResponse, ConnectorsDbRecordResponse, ConnectorsHttpDeps, ConnectorsInternalErrorContext, ConnectorsOkResponse, ConnectorsStorageGetResponse, ConnectorsStorageListResponse, ConnectorsStorageMetaResponse, DbProvider, DbQuery, DbRecord, PaymentsProvider, RealtimeProvider, StorageObjectMeta, StorageProvider, StoragePutOptions, } from './connectors.js';
|
|
76
|
+
export { connectorsAuthSessionRoute, connectorsAuthSignInRoute, connectorsAuthSignOutRoute, connectorsAuthSignUpRoute, connectorsDbDeleteRoute, connectorsDbGetRoute, connectorsDbInsertRoute, connectorsDbQueryRoute, connectorsDbUpdateRoute, connectorsPaymentsChargeRoute, connectorsPaymentsGetRoute, connectorsPaymentsRefundRoute, connectorsRealtimePublishRoute, connectorsStorageDeleteRoute, connectorsStorageGetRoute, connectorsStorageListRoute, connectorsStoragePutRoute, registerConnectorsRoutes, } from './connectors.js';
|
|
77
|
+
export type { ResearchHttpDeps, ResearchInternalErrorContext, ResearchProviderCredentials, ResearchSearchResponse, ResearchSource, } from './research.js';
|
|
78
|
+
export { registerResearchRoutes, researchSearchRoute } from './research.js';
|
|
79
|
+
export type { MediaGenerateResponse, MediaHttpDeps, MediaInternalErrorContext, MediaTaskDeleteResponse, MediaTaskListResponse, MediaTaskResponse, } from './media.js';
|
|
80
|
+
export { mediaGenerateRoute, mediaTaskDeleteRoute, mediaTaskGetRoute, mediaTaskListRoute, registerMediaRoutes, } from './media.js';
|
|
81
|
+
export type { AttachmentClaim, AttachmentRejectionReason, AttachmentsHttpDeps, AttachmentsInternalErrorContext, AttachmentStore, AttachmentUploadResponse, CreateDiskAttachmentStoreOptions, ObservedAttachmentIdentity, RecordedAttachmentIdentity, StoredAttachment, } from './attachments.js';
|
|
82
|
+
export { ATTACHMENTS_ROUTE_PATH, AttachmentRejectedError, createDiskAttachmentStore, detectAttachmentKind, handleAttachmentCleanup, handleAttachmentUpload, isUnchangedAttachment, registerAttachmentRoutes, sanitizeAttachmentName, writeBoundedAttachmentBody, } from './attachments.js';
|
|
83
|
+
export type { XaiAuthStatusResponse, XaiHttpDeps, XaiInternalErrorContext, XaiOauthStartResponse, XaiOkResponse, XaiSearchResponse, } from './xai.js';
|
|
84
|
+
export { registerXaiRoutes, xaiAuthStatusRoute, xaiOauthCancelRoute, xaiOauthCompleteRoute, xaiOauthDisconnectRoute, xaiOauthStartRoute, xaiSearchRoute, } from './xai.js';
|
|
85
|
+
export { createCompatApiError, createCompatApiErrorResponse, sendApiError as sendCompatApiError, } from './compat.js';
|
|
86
|
+
//# 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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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export { err, ok } from './types.js';
|
|
2
|
+
export { allowedBrowserPorts, assertValidAllowedOrigins, configuredAllowedHosts, configuredAllowedOrigins, isAllowedBrowserHost, isAllowedBrowserOrigin, isIpLiteralHostname, isLoopbackOrPrivateLanHost, isLocalSameOrigin, isPrivateIpv4, parseHostHeader, } from './origin-validation.js';
|
|
3
|
+
export { defineJsonRoute, mountJsonRoute } from './adapter.js';
|
|
4
|
+
export { getRouteRegistrationInventory, guardedRouteKey, installRouteRegistrationGuard, } from './route-registration-guard.js';
|
|
5
|
+
export { createSseChannel, DEFAULT_MAX_QUEUED_SSE_EVENTS, requestedAfterCursor, sendRawApiError } from './sse.js';
|
|
6
|
+
export { createSseResponse } from './raw-sse.js';
|
|
7
|
+
export { denyAllWorkspaceRoots, resolveWorkspaceRoot, WorkspaceRootDeniedError } from './workspace-root.js';
|
|
8
|
+
export { mountPackHttp } from './pack-http.js';
|
|
9
|
+
export { cancelRunsOwnedBy } from './cancel-owned-runs.js';
|
|
10
|
+
export { ACTIVE_CONTEXT_TTL_MS, getActiveRoute, registerActiveContextRoutes, setActiveRoute, } from './active-context.js';
|
|
11
|
+
export { applicableForPlatform, CATALOGUE, currentPlatform, defaultProbeEnv, hostEditorsRoute, launchHostTool, listAvailableEditors, pathDirs, probeCommandOnPath, probeMacBundle, registerHostToolsRoutes, resolveEntry, resolveHostToolLaunchPlan, } from './host-tools.js';
|
|
12
|
+
export { bearerTokenFromHeader, registerApiBearerAuthMiddleware, registerApiOriginGuardMiddleware, requireStrictBearerToken, timingSafeTokenMatch, } from './api-security-middleware.js';
|
|
13
|
+
export { isLoopbackHostname, isLoopbackPeerAddress, localOriginFromHeader, normalizeLocalAuthority, requireLocalDaemonRequest, validateLocalDaemonRequest, } from './local-daemon-request.js';
|
|
14
|
+
export { daemonShutdownRoute, daemonStatusRoute, registerDaemonStatusRoutes } from './daemon-status.js';
|
|
15
|
+
export { registerRunEventStream, registerRunRoutes, RUN_EVENTS_ROUTE_PATH, runCancelRoute, runListRoute, runStartRoute, runStatusRoute, } from './runs.js';
|
|
16
|
+
export { JINI_ROUTE_MANIFEST, manifestRoutesForFamilies, routeFamilyManifest } from './route-manifest.js';
|
|
17
|
+
export { agentListRoute, agentRescanRoute, registerAgentRoutes } from './agents.js';
|
|
18
|
+
export { memoryClearExtractionsRoute, memoryClearVerificationsRoute, memoryCreateEntryRoute, memoryDeleteEntryRoute, memoryListExtractionsRoute, memoryListVerificationsRoute, memoryOverviewRoute, memoryReadEntryRoute, memoryRemoveExtractionRoute, memoryRemoveVerificationRoute, memoryTreeRoute, memoryUpdateEntryRoute, memoryUpdateTreeNodeRoute, memoryWriteConfigRoute, memoryWriteIndexRoute, registerMemoryEventStream, registerMemoryRoutes, } from './memory.js';
|
|
19
|
+
export { registerRoutineRoutes, routineCreateRoute, routineDeleteRoute, routineGetRoute, routineListRoute, routineRunNowRoute, routineRunsListRoute, routineUpdateRoute, } from './routines.js';
|
|
20
|
+
export { createDaemonDbToolRegistrations, daemonDbInspectRoute, daemonDbVacuumRoute, daemonDbVerifyRoute, DB_INSPECT_TOOL_ID, DB_VACUUM_TOOL_ID, DB_VERIFY_TOOL_ID, denyAllDaemonDbPolicy, registerDaemonDbRoutes, } from './db-ops.js';
|
|
21
|
+
export { registerToolCatalogRoutes, toolCatalogDescribeRoute, toolCatalogSearchRoute, } from './tool-catalog.js';
|
|
22
|
+
export { registerComponentCatalogRoutes, componentCatalogDescribeRoute, componentCatalogSearchRoute, } from './component-catalog.js';
|
|
23
|
+
export { delegatedToolExecuteRoute, registerDelegatedToolRoutes } from './delegated-tools.js';
|
|
24
|
+
export { registerRemoteRunEventRoutes, remoteToolResultRoute, remoteToolUseRoute, requireRemoteToolBridgeToken, } from './remote-run-events.js';
|
|
25
|
+
export { FRONTEND_SESSION_RESPONSE_ROUTE_PATH, FRONTEND_SESSION_STREAM_ROUTE_PATH, frontendSessionResponseRoute, handleFrontendSessionStream, parseCapabilityQuery, registerFrontendSessionRoutes, } from './frontend-sessions.js';
|
|
26
|
+
export { createFrontendControl } from './frontend-control.js';
|
|
27
|
+
export { registerTerminalEventStream, registerTerminalRoutes, terminalCreateRoute, terminalDeleteRoute, terminalKillRoute, terminalListRoute, terminalResizeRoute, terminalStdinRoute, } from './terminals.js';
|
|
28
|
+
export { registerModelProxyRoutes } from './model-proxy.js';
|
|
29
|
+
export { apiHealthRoute, apiReadyRoute, apiVersionInfoRoute, healthRoute, readyRoute, registerHealthRoutes, versionInfoRoute, } from './health.js';
|
|
30
|
+
export { connectorsAuthSessionRoute, connectorsAuthSignInRoute, connectorsAuthSignOutRoute, connectorsAuthSignUpRoute, connectorsDbDeleteRoute, connectorsDbGetRoute, connectorsDbInsertRoute, connectorsDbQueryRoute, connectorsDbUpdateRoute, connectorsPaymentsChargeRoute, connectorsPaymentsGetRoute, connectorsPaymentsRefundRoute, connectorsRealtimePublishRoute, connectorsStorageDeleteRoute, connectorsStorageGetRoute, connectorsStorageListRoute, connectorsStoragePutRoute, registerConnectorsRoutes, } from './connectors.js';
|
|
31
|
+
export { registerResearchRoutes, researchSearchRoute } from './research.js';
|
|
32
|
+
export { mediaGenerateRoute, mediaTaskDeleteRoute, mediaTaskGetRoute, mediaTaskListRoute, registerMediaRoutes, } from './media.js';
|
|
33
|
+
export { ATTACHMENTS_ROUTE_PATH, AttachmentRejectedError, createDiskAttachmentStore, detectAttachmentKind, handleAttachmentCleanup, handleAttachmentUpload, isUnchangedAttachment, registerAttachmentRoutes, sanitizeAttachmentName, writeBoundedAttachmentBody, } from './attachments.js';
|
|
34
|
+
export { registerXaiRoutes, xaiAuthStatusRoute, xaiOauthCancelRoute, xaiOauthCompleteRoute, xaiOauthDisconnectRoute, xaiOauthStartRoute, xaiSearchRoute, } from './xai.js';
|
|
35
|
+
// Legacy-shaped compat error helpers (separate code/message/init call shape). `sendApiError`
|
|
36
|
+
// above (from `response.ts`) takes a single `ApiError` object; this compat `sendApiError` takes
|
|
37
|
+
// `(code, message, init)` — same job, different call-site generation, so it is re-exported here
|
|
38
|
+
// under a distinct name to avoid a duplicate export.
|
|
39
|
+
export { createCompatApiError, createCompatApiErrorResponse, sendApiError as sendCompatApiError, } from './compat.js';
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
2
|
+
interface LocalAuthority {
|
|
3
|
+
hostname: string;
|
|
4
|
+
port: string;
|
|
5
|
+
}
|
|
6
|
+
interface LocalDaemonValidation {
|
|
7
|
+
ok: true;
|
|
8
|
+
origin: string | null;
|
|
9
|
+
}
|
|
10
|
+
interface LocalDaemonValidationError {
|
|
11
|
+
ok: false;
|
|
12
|
+
message: string;
|
|
13
|
+
details: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
/** Parses a `Host`-header-shaped authority string, rejecting anything with a path/userinfo/query. */
|
|
16
|
+
export declare function normalizeLocalAuthority(value: unknown): LocalAuthority | null;
|
|
17
|
+
/** True when `hostname` is `localhost`, an IPv6 loopback literal, or a `127.0.0.0/8` IPv4 literal. */
|
|
18
|
+
export declare function isLoopbackHostname(hostname: unknown): boolean;
|
|
19
|
+
/** True when `address` (typically `req.socket.remoteAddress`) is a loopback peer, unwrapping an IPv4-mapped IPv6 prefix first. */
|
|
20
|
+
export declare function isLoopbackPeerAddress(address: unknown): boolean;
|
|
21
|
+
/** Parses an `Origin` header value into its origin string, requiring a bare `scheme://loopback-host[:port]` with no path/query/userinfo. */
|
|
22
|
+
export declare function localOriginFromHeader(value: unknown): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Validates that `req` is a loopback request: the TCP peer address, the `Host`
|
|
25
|
+
* header, and (when present) the `Origin` header must all resolve to a
|
|
26
|
+
* loopback host.
|
|
27
|
+
*
|
|
28
|
+
* @param req - The incoming request.
|
|
29
|
+
* @returns `{ ok: true, origin }` on success (`origin` is the validated `Origin` header value, or
|
|
30
|
+
* `null` when the request carried none); otherwise `{ ok: false, message, details }` naming which
|
|
31
|
+
* check failed.
|
|
32
|
+
*/
|
|
33
|
+
export declare function validateLocalDaemonRequest(req: Request): LocalDaemonValidation | LocalDaemonValidationError;
|
|
34
|
+
/**
|
|
35
|
+
* Express middleware that rejects any non-loopback request with a 403, and
|
|
36
|
+
* otherwise sets permissive same-machine CORS headers before calling `next()`.
|
|
37
|
+
*
|
|
38
|
+
* @param req - The incoming request.
|
|
39
|
+
* @param res - The response to reject on, or set CORS headers on before continuing.
|
|
40
|
+
* @param next - Called when the request validates as loopback.
|
|
41
|
+
*/
|
|
42
|
+
export declare function requireLocalDaemonRequest(req: Request, res: Response, next: NextFunction): void | Response;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=local-daemon-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-daemon-request.d.ts","sourceRoot":"","sources":["../src/local-daemon-request.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,qBAAqB;IAC7B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,UAAU,0BAA0B;IAClC,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAkB7E;AAED,sGAAsG;AACtG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAS7D;AAED,kIAAkI;AAClI,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQ/D;AAED,4IAA4I;AAC5I,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAcnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,GAAG,0BAA0B,CA4B3G;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,QAAQ,CAc1G"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module local-daemon-request
|
|
3
|
+
*
|
|
4
|
+
* A loopback-only request guard: validates that a request's peer address,
|
|
5
|
+
* `Host` header, and (if present) `Origin` header are all loopback, and sets
|
|
6
|
+
* the CORS headers a same-machine caller needs. Distinct from `./origin.js`'s
|
|
7
|
+
* `guardSameOrigin` (which checks a browser tab's origin against a configured
|
|
8
|
+
* allow-list) — this guard instead restricts an endpoint to same-machine
|
|
9
|
+
* callers only (e.g. a local companion process), regardless of origin
|
|
10
|
+
* allow-list configuration.
|
|
11
|
+
*/
|
|
12
|
+
import net from 'node:net';
|
|
13
|
+
import { sendApiError } from './compat.js';
|
|
14
|
+
/** Parses a `Host`-header-shaped authority string, rejecting anything with a path/userinfo/query. */
|
|
15
|
+
export function normalizeLocalAuthority(value) {
|
|
16
|
+
if (typeof value !== 'string')
|
|
17
|
+
return null;
|
|
18
|
+
const trimmed = value.trim();
|
|
19
|
+
if (!trimmed || /[\s/@]/.test(trimmed) || trimmed.includes(','))
|
|
20
|
+
return null;
|
|
21
|
+
try {
|
|
22
|
+
// The guard above already rejects any `/`, `@`, or whitespace in `trimmed`, and the WHATWG
|
|
23
|
+
// URL parser requires a non-empty host for an `http:` URL — so `parsed.hostname` is always
|
|
24
|
+
// non-empty and `parsed.pathname` is always `/` for every `trimmed` value that reaches this
|
|
25
|
+
// line without throwing. `hostname` below can still end up empty after stripping a trailing
|
|
26
|
+
// dot (e.g. `trimmed === '.'` parses to `parsed.hostname === '.'`), so that check stays.
|
|
27
|
+
const parsed = new URL(`http://${trimmed}`);
|
|
28
|
+
const hostname = parsed.hostname.toLowerCase().replace(/\.$/, '');
|
|
29
|
+
if (!hostname)
|
|
30
|
+
return null;
|
|
31
|
+
return { hostname, port: parsed.port };
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** True when `hostname` is `localhost`, an IPv6 loopback literal, or a `127.0.0.0/8` IPv4 literal. */
|
|
38
|
+
export function isLoopbackHostname(hostname) {
|
|
39
|
+
const normalized = String(hostname || '')
|
|
40
|
+
.toLowerCase()
|
|
41
|
+
.replace(/^\[|\]$/g, '')
|
|
42
|
+
.replace(/\.$/, '');
|
|
43
|
+
if (normalized === 'localhost')
|
|
44
|
+
return true;
|
|
45
|
+
if (normalized === '::1' || normalized === '0:0:0:0:0:0:0:1')
|
|
46
|
+
return true;
|
|
47
|
+
if (net.isIP(normalized) === 4)
|
|
48
|
+
return normalized === '127.0.0.1' || normalized.startsWith('127.');
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
/** True when `address` (typically `req.socket.remoteAddress`) is a loopback peer, unwrapping an IPv4-mapped IPv6 prefix first. */
|
|
52
|
+
export function isLoopbackPeerAddress(address) {
|
|
53
|
+
if (typeof address !== 'string')
|
|
54
|
+
return false;
|
|
55
|
+
const normalized = address.trim().toLowerCase().replace(/^\[|\]$/g, '');
|
|
56
|
+
if (!normalized)
|
|
57
|
+
return false;
|
|
58
|
+
if (normalized.startsWith('::ffff:'))
|
|
59
|
+
return isLoopbackPeerAddress(normalized.slice('::ffff:'.length));
|
|
60
|
+
if (normalized === '::1' || normalized === '0:0:0:0:0:0:0:1')
|
|
61
|
+
return true;
|
|
62
|
+
if (net.isIP(normalized) === 4)
|
|
63
|
+
return normalized === '127.0.0.1' || normalized.startsWith('127.');
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
/** Parses an `Origin` header value into its origin string, requiring a bare `scheme://loopback-host[:port]` with no path/query/userinfo. */
|
|
67
|
+
export function localOriginFromHeader(value) {
|
|
68
|
+
if (typeof value !== 'string')
|
|
69
|
+
return null;
|
|
70
|
+
const trimmed = value.trim();
|
|
71
|
+
if (!trimmed || trimmed === 'null' || trimmed.includes(','))
|
|
72
|
+
return null;
|
|
73
|
+
try {
|
|
74
|
+
const parsed = new URL(trimmed);
|
|
75
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:')
|
|
76
|
+
return null;
|
|
77
|
+
if (parsed.pathname !== '/' || parsed.search || parsed.hash || parsed.username || parsed.password)
|
|
78
|
+
return null;
|
|
79
|
+
if (!isLoopbackHostname(parsed.hostname))
|
|
80
|
+
return null;
|
|
81
|
+
return parsed.origin;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Validates that `req` is a loopback request: the TCP peer address, the `Host`
|
|
89
|
+
* header, and (when present) the `Origin` header must all resolve to a
|
|
90
|
+
* loopback host.
|
|
91
|
+
*
|
|
92
|
+
* @param req - The incoming request.
|
|
93
|
+
* @returns `{ ok: true, origin }` on success (`origin` is the validated `Origin` header value, or
|
|
94
|
+
* `null` when the request carried none); otherwise `{ ok: false, message, details }` naming which
|
|
95
|
+
* check failed.
|
|
96
|
+
*/
|
|
97
|
+
export function validateLocalDaemonRequest(req) {
|
|
98
|
+
if (!isLoopbackPeerAddress(req.socket?.remoteAddress)) {
|
|
99
|
+
return {
|
|
100
|
+
ok: false,
|
|
101
|
+
message: 'request peer must be a loopback address',
|
|
102
|
+
details: { peer: 'remoteAddress' },
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const host = normalizeLocalAuthority(req.get('host'));
|
|
106
|
+
if (!host || !isLoopbackHostname(host.hostname)) {
|
|
107
|
+
return {
|
|
108
|
+
ok: false,
|
|
109
|
+
message: 'request host must be a loopback daemon address',
|
|
110
|
+
details: { header: 'host' },
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const originHeader = req.get('origin');
|
|
114
|
+
if (originHeader !== undefined && !localOriginFromHeader(originHeader)) {
|
|
115
|
+
return {
|
|
116
|
+
ok: false,
|
|
117
|
+
message: 'request origin must be a loopback daemon origin',
|
|
118
|
+
details: { header: 'origin' },
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
return { ok: true, origin: localOriginFromHeader(originHeader) };
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Express middleware that rejects any non-loopback request with a 403, and
|
|
125
|
+
* otherwise sets permissive same-machine CORS headers before calling `next()`.
|
|
126
|
+
*
|
|
127
|
+
* @param req - The incoming request.
|
|
128
|
+
* @param res - The response to reject on, or set CORS headers on before continuing.
|
|
129
|
+
* @param next - Called when the request validates as loopback.
|
|
130
|
+
*/
|
|
131
|
+
export function requireLocalDaemonRequest(req, res, next) {
|
|
132
|
+
const validation = validateLocalDaemonRequest(req);
|
|
133
|
+
if (!validation.ok) {
|
|
134
|
+
return sendApiError(res, 403, 'FORBIDDEN', validation.message, { details: validation.details });
|
|
135
|
+
}
|
|
136
|
+
res.setHeader('Vary', 'Origin');
|
|
137
|
+
if (validation.origin) {
|
|
138
|
+
res.setHeader('Access-Control-Allow-Origin', validation.origin);
|
|
139
|
+
}
|
|
140
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
141
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
142
|
+
res.setHeader('Access-Control-Max-Age', '600');
|
|
143
|
+
next();
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=local-daemon-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-daemon-request.js","sourceRoot":"","sources":["../src/local-daemon-request.ts"],"names":[],"mappings":"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"}
|
package/dist/media.d.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { Express } from 'express';
|
|
2
|
+
import { type AdapterContext } from './adapter.js';
|
|
3
|
+
type MediaSurface = 'image' | 'video' | 'audio';
|
|
4
|
+
type AudioKind = 'music' | 'speech' | 'sfx';
|
|
5
|
+
type MediaSpeechFormat = 'mp3' | 'wav' | 'flac' | 'aac' | 'opus';
|
|
6
|
+
interface MediaImageReference {
|
|
7
|
+
readonly dataUrl: string;
|
|
8
|
+
}
|
|
9
|
+
interface MediaGenerationRequest {
|
|
10
|
+
readonly surface: MediaSurface;
|
|
11
|
+
readonly model: string;
|
|
12
|
+
readonly prompt?: string;
|
|
13
|
+
readonly aspect?: string;
|
|
14
|
+
readonly length?: number;
|
|
15
|
+
readonly duration?: number;
|
|
16
|
+
readonly voice?: string;
|
|
17
|
+
readonly audioKind?: AudioKind;
|
|
18
|
+
readonly language?: string;
|
|
19
|
+
readonly loop?: boolean;
|
|
20
|
+
readonly promptInfluence?: number;
|
|
21
|
+
readonly imageRef?: MediaImageReference;
|
|
22
|
+
readonly imageRefs?: readonly MediaImageReference[];
|
|
23
|
+
readonly wireModel?: string;
|
|
24
|
+
readonly speechFormat?: MediaSpeechFormat;
|
|
25
|
+
}
|
|
26
|
+
interface MediaGenerationResult {
|
|
27
|
+
readonly bytes: Buffer;
|
|
28
|
+
readonly providerNote: string;
|
|
29
|
+
readonly suggestedExt?: string;
|
|
30
|
+
readonly providerId: string;
|
|
31
|
+
readonly usedStubFallback: boolean;
|
|
32
|
+
readonly warnings: readonly string[];
|
|
33
|
+
}
|
|
34
|
+
interface MediaDispatchEngine {
|
|
35
|
+
generate(request: MediaGenerationRequest): Promise<MediaGenerationResult>;
|
|
36
|
+
}
|
|
37
|
+
type MediaTaskStatus = 'queued' | 'running' | 'done' | 'failed' | 'interrupted';
|
|
38
|
+
interface MediaTaskError {
|
|
39
|
+
readonly message: string;
|
|
40
|
+
readonly status?: number;
|
|
41
|
+
readonly code?: string;
|
|
42
|
+
}
|
|
43
|
+
interface MediaTask {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly ownerRef: string;
|
|
46
|
+
readonly status: MediaTaskStatus;
|
|
47
|
+
readonly surface?: string;
|
|
48
|
+
readonly model?: string;
|
|
49
|
+
readonly progress: readonly string[];
|
|
50
|
+
readonly file: unknown | null;
|
|
51
|
+
readonly error: MediaTaskError | null;
|
|
52
|
+
readonly startedAt: number;
|
|
53
|
+
readonly endedAt: number | null;
|
|
54
|
+
readonly createdAt: number;
|
|
55
|
+
readonly updatedAt: number;
|
|
56
|
+
}
|
|
57
|
+
interface MediaTaskCreateInput {
|
|
58
|
+
readonly id: string;
|
|
59
|
+
readonly ownerRef: string;
|
|
60
|
+
readonly status?: MediaTaskStatus;
|
|
61
|
+
readonly surface?: string;
|
|
62
|
+
readonly model?: string;
|
|
63
|
+
readonly progress?: readonly string[];
|
|
64
|
+
readonly file?: unknown | null;
|
|
65
|
+
readonly error?: MediaTaskError | null;
|
|
66
|
+
readonly startedAt?: number;
|
|
67
|
+
}
|
|
68
|
+
interface MediaTaskPatch {
|
|
69
|
+
readonly status?: MediaTaskStatus;
|
|
70
|
+
readonly surface?: string | null;
|
|
71
|
+
readonly model?: string | null;
|
|
72
|
+
readonly progress?: readonly string[];
|
|
73
|
+
readonly file?: unknown | null;
|
|
74
|
+
readonly error?: MediaTaskError | null;
|
|
75
|
+
readonly endedAt?: number | null;
|
|
76
|
+
}
|
|
77
|
+
interface MediaTaskListOptions {
|
|
78
|
+
readonly includeTerminal?: boolean;
|
|
79
|
+
}
|
|
80
|
+
interface MediaTaskStore {
|
|
81
|
+
create(input: MediaTaskCreateInput): Promise<MediaTask>;
|
|
82
|
+
get(id: string): Promise<MediaTask | null>;
|
|
83
|
+
update(id: string, patch: MediaTaskPatch): Promise<MediaTask | null>;
|
|
84
|
+
listByOwner(ownerRef: string, options?: MediaTaskListOptions): Promise<MediaTask[]>;
|
|
85
|
+
delete(id: string): Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Diagnostic detail for an internal-error response the public API deliberately does not disclose
|
|
89
|
+
* (SEC-005), matching `delegated-tools.ts`'s `DelegatedToolsInternalErrorContext` precedent.
|
|
90
|
+
*/
|
|
91
|
+
export interface MediaInternalErrorContext {
|
|
92
|
+
readonly source: 'media-generate-dispatch' | 'media-task-store';
|
|
93
|
+
readonly taskId: string | null;
|
|
94
|
+
readonly ownerRef: string | null;
|
|
95
|
+
readonly correlationId: string;
|
|
96
|
+
readonly error: unknown;
|
|
97
|
+
}
|
|
98
|
+
export interface MediaHttpDeps {
|
|
99
|
+
readonly engine: MediaDispatchEngine;
|
|
100
|
+
readonly taskStore: MediaTaskStore;
|
|
101
|
+
/** Host-owned sink for the real exception behind a generic `INTERNAL_ERROR` response (SEC-005). Defaults to `console.error`. */
|
|
102
|
+
readonly onInternalError?: (context: MediaInternalErrorContext) => void;
|
|
103
|
+
}
|
|
104
|
+
interface MediaGenerateRequest {
|
|
105
|
+
readonly ownerRef: string;
|
|
106
|
+
readonly request: MediaGenerationRequest;
|
|
107
|
+
}
|
|
108
|
+
interface MediaTaskListQuery {
|
|
109
|
+
readonly ownerRef: string;
|
|
110
|
+
readonly options: MediaTaskListOptions;
|
|
111
|
+
}
|
|
112
|
+
export interface MediaGenerateResponse {
|
|
113
|
+
readonly task: MediaTask;
|
|
114
|
+
}
|
|
115
|
+
export declare const mediaGenerateRoute: import("./types.js").JsonRouteSpec<MediaGenerateRequest, MediaGenerateResponse, MediaHttpDeps>;
|
|
116
|
+
export interface MediaTaskResponse {
|
|
117
|
+
readonly task: MediaTask;
|
|
118
|
+
}
|
|
119
|
+
export declare const mediaTaskGetRoute: import("./types.js").JsonRouteSpec<string, MediaTaskResponse, MediaHttpDeps>;
|
|
120
|
+
export interface MediaTaskDeleteResponse {
|
|
121
|
+
readonly ok: true;
|
|
122
|
+
}
|
|
123
|
+
export declare const mediaTaskDeleteRoute: import("./types.js").JsonRouteSpec<string, MediaTaskDeleteResponse, MediaHttpDeps>;
|
|
124
|
+
export interface MediaTaskListResponse {
|
|
125
|
+
readonly tasks: readonly MediaTask[];
|
|
126
|
+
}
|
|
127
|
+
export declare const mediaTaskListRoute: import("./types.js").JsonRouteSpec<MediaTaskListQuery, MediaTaskListResponse, MediaHttpDeps>;
|
|
128
|
+
/** Mounts every media route on `app`. A pack's `http(app, services)` calls this directly. */
|
|
129
|
+
export declare function registerMediaRoutes(app: Express, deps: MediaHttpDeps, adapter: AdapterContext): void;
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"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"}
|