@pellux/goodvibes-sdk 1.0.0 → 1.1.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/contracts/artifacts/operator-contract.json +1320 -10
- package/dist/events/communication.d.ts +1 -1
- package/dist/platform/agents/orchestrator-runner.d.ts +5 -5
- package/dist/platform/agents/orchestrator-runner.js +6 -6
- package/dist/platform/agents/orchestrator.d.ts +4 -4
- package/dist/platform/agents/orchestrator.js +2 -2
- package/dist/platform/agents/wrfc-controller.d.ts +1 -1
- package/dist/platform/agents/wrfc-controller.js +3 -3
- package/dist/platform/calendar/index.d.ts +2 -2
- package/dist/platform/calendar/index.js +3 -3
- package/dist/platform/calendar/oauth-providers.d.ts +1 -1
- package/dist/platform/calendar/oauth-providers.js +1 -1
- package/dist/platform/calendar/oauth-types.d.ts +1 -1
- package/dist/platform/calendar/oauth-types.js +1 -1
- package/dist/platform/companion/companion-chat-branching.d.ts +66 -0
- package/dist/platform/companion/companion-chat-branching.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-branching.js +142 -0
- package/dist/platform/companion/companion-chat-broker-bridge.d.ts +1 -1
- package/dist/platform/companion/companion-chat-broker-bridge.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-broker-sync.d.ts +2 -2
- package/dist/platform/companion/companion-chat-broker-sync.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-broker-sync.js +1 -1
- package/dist/platform/companion/companion-chat-manager.d.ts +26 -5
- package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-manager.js +67 -81
- package/dist/platform/companion/companion-chat-routes.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-routes.js +77 -1
- package/dist/platform/companion/companion-chat-turn-execution.d.ts +61 -0
- package/dist/platform/companion/companion-chat-turn-execution.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-turn-execution.js +107 -0
- package/dist/platform/companion/companion-chat-types.d.ts +67 -0
- package/dist/platform/companion/companion-chat-types.d.ts.map +1 -1
- package/dist/platform/config/credential-status.d.ts +1 -1
- package/dist/platform/config/credential-status.js +1 -1
- package/dist/platform/config/index.d.ts +1 -1
- package/dist/platform/config/index.js +1 -1
- package/dist/platform/config/manager.d.ts +1 -1
- package/dist/platform/config/manager.js +1 -1
- package/dist/platform/config/migrations.d.ts +2 -2
- package/dist/platform/config/migrations.js +2 -2
- package/dist/platform/config/schema-domain-runtime.d.ts +8 -0
- package/dist/platform/config/schema-domain-runtime.d.ts.map +1 -1
- package/dist/platform/config/schema-domain-runtime.js +32 -0
- package/dist/platform/config/schema-types.d.ts +10 -2
- package/dist/platform/config/schema-types.d.ts.map +1 -1
- package/dist/platform/control-plane/gateway-scope-enforcement.js +2 -2
- package/dist/platform/control-plane/index.d.ts +2 -0
- package/dist/platform/control-plane/index.d.ts.map +1 -1
- package/dist/platform/control-plane/index.js +5 -1
- package/dist/platform/control-plane/invoke-input-validation.d.ts +1 -1
- package/dist/platform/control-plane/invoke-input-validation.js +1 -1
- package/dist/platform/control-plane/method-catalog-calendar.d.ts +2 -2
- package/dist/platform/control-plane/method-catalog-calendar.js +2 -2
- package/dist/platform/control-plane/method-catalog-channels.js +3 -3
- package/dist/platform/control-plane/method-catalog-control-automation.js +4 -4
- package/dist/platform/control-plane/method-catalog-control-companion.d.ts +1 -1
- package/dist/platform/control-plane/method-catalog-control-companion.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-control-companion.js +43 -0
- package/dist/platform/control-plane/method-catalog-control-core.js +3 -3
- package/dist/platform/control-plane/method-catalog-email.d.ts +1 -1
- package/dist/platform/control-plane/method-catalog-email.js +1 -1
- package/dist/platform/control-plane/method-catalog-fleet.d.ts +1 -1
- package/dist/platform/control-plane/method-catalog-push.d.ts +30 -0
- package/dist/platform/control-plane/method-catalog-push.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-push.js +80 -0
- package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts +1 -1
- package/dist/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-runtime.js +83 -1
- package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog.js +2 -0
- package/dist/platform/control-plane/operator-contract-schemas-fleet.js +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +8 -0
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-runtime.js +43 -0
- package/dist/platform/control-plane/routes/checkpoints.d.ts +1 -1
- package/dist/platform/control-plane/routes/fleet.d.ts +2 -2
- package/dist/platform/control-plane/routes/fleet.js +1 -1
- package/dist/platform/control-plane/routes/gateway-verb-error.d.ts +1 -1
- package/dist/platform/control-plane/routes/gateway-verb-error.js +1 -1
- package/dist/platform/control-plane/routes/index.js +1 -1
- package/dist/platform/control-plane/routes/invocation-params.d.ts +1 -1
- package/dist/platform/control-plane/routes/push.d.ts +26 -0
- package/dist/platform/control-plane/routes/push.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/push.js +104 -0
- package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts +31 -0
- package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/register-gateway-verb-groups.js +16 -0
- package/dist/platform/control-plane/routes/register-w3-s2.d.ts +2 -2
- package/dist/platform/control-plane/routes/session-search.d.ts +4 -4
- package/dist/platform/control-plane/session-broker.d.ts +1 -1
- package/dist/platform/control-plane/session-broker.js +1 -1
- package/dist/platform/control-plane/session-store-importer.d.ts +1 -1
- package/dist/platform/control-plane/session-store-importer.js +1 -1
- package/dist/platform/control-plane/session-types.d.ts +1 -1
- package/dist/platform/core/orchestrator-runtime.d.ts +4 -4
- package/dist/platform/core/orchestrator-tool-runtime.d.ts +1 -1
- package/dist/platform/core/orchestrator-turn-loop.d.ts +6 -6
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +23 -22
- package/dist/platform/core/orchestrator.d.ts +10 -10
- package/dist/platform/core/orchestrator.d.ts.map +1 -1
- package/dist/platform/core/orchestrator.js +8 -8
- package/dist/platform/daemon/boot.d.ts +6 -0
- package/dist/platform/daemon/boot.d.ts.map +1 -1
- package/dist/platform/daemon/boot.js +1 -0
- package/dist/platform/daemon/control-plane.js +2 -2
- package/dist/platform/daemon/facade.d.ts +4 -7
- package/dist/platform/daemon/facade.d.ts.map +1 -1
- package/dist/platform/daemon/facade.js +5 -7
- package/dist/platform/daemon/http/router-session-broker-adapter.d.ts +1 -1
- package/dist/platform/daemon/http/router.d.ts +1 -0
- package/dist/platform/daemon/http/router.d.ts.map +1 -1
- package/dist/platform/daemon/http/router.js +36 -19
- package/dist/platform/daemon/http/runtime-route-types.d.ts +1 -1
- package/dist/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
- package/dist/platform/daemon/http/webui-serving.d.ts +68 -0
- package/dist/platform/daemon/http/webui-serving.d.ts.map +1 -0
- package/dist/platform/daemon/http/webui-serving.js +230 -0
- package/dist/platform/knowledge/knowledge-api.d.ts +1 -1
- package/dist/platform/orchestration/budget.d.ts +2 -2
- package/dist/platform/orchestration/cancellation.d.ts +2 -2
- package/dist/platform/orchestration/controller-compat.d.ts +2 -3
- package/dist/platform/orchestration/controller-compat.d.ts.map +1 -1
- package/dist/platform/orchestration/dirty-guard.js +1 -1
- package/dist/platform/orchestration/engine.d.ts.map +1 -1
- package/dist/platform/orchestration/engine.js +3 -4
- package/dist/platform/orchestration/persistence.js +2 -2
- package/dist/platform/orchestration/phase-runner.d.ts +4 -4
- package/dist/platform/orchestration/scheduler.d.ts +1 -1
- package/dist/platform/orchestration/types.d.ts +3 -3
- package/dist/platform/presentation/glyphs.d.ts +1 -1
- package/dist/platform/presentation/glyphs.js +1 -1
- package/dist/platform/presentation/index.d.ts +3 -3
- package/dist/platform/presentation/index.js +3 -3
- package/dist/platform/presentation/thinking-phrases.d.ts +1 -1
- package/dist/platform/presentation/thinking-phrases.js +1 -1
- package/dist/platform/presentation/waiting-wording.d.ts +1 -1
- package/dist/platform/presentation/waiting-wording.js +1 -1
- package/dist/platform/push/delivery.d.ts +48 -0
- package/dist/platform/push/delivery.d.ts.map +1 -0
- package/dist/platform/push/delivery.js +117 -0
- package/dist/platform/push/encryption.d.ts +41 -0
- package/dist/platform/push/encryption.d.ts.map +1 -0
- package/dist/platform/push/encryption.js +82 -0
- package/dist/platform/push/index.d.ts +17 -0
- package/dist/platform/push/index.d.ts.map +1 -0
- package/dist/platform/push/index.js +10 -0
- package/dist/platform/push/service.d.ts +75 -0
- package/dist/platform/push/service.d.ts.map +1 -0
- package/dist/platform/push/service.js +95 -0
- package/dist/platform/push/subscription-store.d.ts +50 -0
- package/dist/platform/push/subscription-store.d.ts.map +1 -0
- package/dist/platform/push/subscription-store.js +123 -0
- package/dist/platform/push/types.d.ts +68 -0
- package/dist/platform/push/types.d.ts.map +1 -0
- package/dist/platform/push/types.js +13 -0
- package/dist/platform/push/vapid.d.ts +54 -0
- package/dist/platform/push/vapid.d.ts.map +1 -0
- package/dist/platform/push/vapid.js +113 -0
- package/dist/platform/runtime/feature-flags/flags.js +3 -3
- package/dist/platform/runtime/fleet/adapters/agent.d.ts +2 -2
- package/dist/platform/runtime/fleet/adapters/agent.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/agent.js +4 -4
- package/dist/platform/runtime/fleet/adapters/automation.d.ts +1 -1
- package/dist/platform/runtime/fleet/adapters/automation.js +1 -1
- package/dist/platform/runtime/fleet/adapters/code-index.d.ts +1 -1
- package/dist/platform/runtime/fleet/adapters/code-index.js +1 -1
- package/dist/platform/runtime/fleet/adapters/orchestration.js +1 -1
- package/dist/platform/runtime/fleet/adapters/schedule.d.ts +4 -4
- package/dist/platform/runtime/fleet/adapters/schedule.js +4 -4
- package/dist/platform/runtime/fleet/adapters/trigger.d.ts +3 -4
- package/dist/platform/runtime/fleet/adapters/trigger.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/trigger.js +3 -4
- package/dist/platform/runtime/fleet/adapters/wrfc.js +1 -1
- package/dist/platform/runtime/fleet/registry.d.ts +7 -7
- package/dist/platform/runtime/fleet/registry.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/registry.js +3 -3
- package/dist/platform/runtime/fleet/types.d.ts +9 -9
- package/dist/platform/runtime/fleet/types.d.ts.map +1 -1
- package/dist/platform/runtime/memory-spine/client.d.ts +127 -0
- package/dist/platform/runtime/memory-spine/client.d.ts.map +1 -0
- package/dist/platform/runtime/memory-spine/client.js +113 -0
- package/dist/platform/runtime/memory-spine/index.d.ts +11 -0
- package/dist/platform/runtime/memory-spine/index.d.ts.map +1 -0
- package/dist/platform/runtime/memory-spine/index.js +10 -0
- package/dist/platform/runtime/operator-client.d.ts +1 -1
- package/dist/platform/runtime/services.d.ts +6 -6
- package/dist/platform/runtime/services.d.ts.map +1 -1
- package/dist/platform/runtime/services.js +9 -9
- package/dist/platform/runtime/session-spine/union-cache.d.ts +1 -1
- package/dist/platform/runtime/session-spine/union-cache.js +1 -1
- package/dist/platform/state/canonical-memory.d.ts +7 -7
- package/dist/platform/state/canonical-memory.js +8 -8
- package/dist/platform/state/code-index-chunking.js +1 -1
- package/dist/platform/state/code-index-db.d.ts +1 -1
- package/dist/platform/state/code-index-store.js +1 -1
- package/dist/platform/state/index.d.ts +2 -2
- package/dist/platform/state/index.d.ts.map +1 -1
- package/dist/platform/state/index.js +1 -1
- package/dist/platform/state/memory-recall-contract.d.ts +59 -4
- package/dist/platform/state/memory-recall-contract.d.ts.map +1 -1
- package/dist/platform/state/memory-recall-contract.js +79 -3
- package/dist/platform/state/memory-registry.d.ts +8 -0
- package/dist/platform/state/memory-registry.d.ts.map +1 -1
- package/dist/platform/state/memory-registry.js +10 -0
- package/dist/platform/state/memory-vector-store.js +1 -1
- package/dist/platform/state/sqlite-vec-loader.d.ts +1 -1
- package/dist/platform/state/sqlite-vec-loader.js +1 -1
- package/dist/platform/state/vibe-projection.d.ts +3 -3
- package/dist/platform/state/vibe-projection.js +3 -3
- package/dist/platform/tools/agent/manager.d.ts +10 -10
- package/dist/platform/tools/agent/manager.js +7 -7
- package/dist/platform/tools/exec/runtime.js +5 -5
- package/dist/platform/tools/exec/schema.d.ts +1 -1
- package/dist/platform/tools/exec/schema.d.ts.map +1 -1
- package/dist/platform/tools/fetch/runtime.d.ts +1 -1
- package/dist/platform/tools/registry.d.ts +1 -1
- package/dist/platform/tools/registry.js +1 -1
- package/dist/platform/types/tools.d.ts +1 -1
- package/dist/platform/utils/request-body.d.ts.map +1 -1
- package/dist/platform/utils/request-body.js +50 -5
- package/dist/platform/version.js +1 -1
- package/package.json +13 -9
|
@@ -419,8 +419,8 @@ export class DaemonControlPlaneHelper {
|
|
|
419
419
|
return { status: 200, ok: true, body };
|
|
420
420
|
}
|
|
421
421
|
catch (error) {
|
|
422
|
-
// A handler-registered verb (
|
|
423
|
-
// sessions.search) may throw a GatewayVerbError to report an honest
|
|
422
|
+
// A handler-registered verb (fleet.*, checkpoints.*,
|
|
423
|
+
// sessions.search — see CHANGELOG 1.0.0) may throw a GatewayVerbError to report an honest
|
|
424
424
|
// caller-error status (400/404) instead of the blanket 500 below —
|
|
425
425
|
// see routes/gateway-verb-error.ts for why this seam is needed.
|
|
426
426
|
if (isGatewayVerbError(error)) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ApprovalBroker } from '../control-plane/index.js';
|
|
2
|
+
import { type RuntimeServices } from '../runtime/services.js';
|
|
2
3
|
import type { DaemonConfig, DaemonDangerConfig } from './types.js';
|
|
3
4
|
/**
|
|
4
5
|
* DaemonServer — HTTP task server. Enabled by default via `daemon.enabled`
|
|
@@ -81,14 +82,10 @@ export declare class DaemonServer {
|
|
|
81
82
|
get boundPort(): number;
|
|
82
83
|
/** The host the daemon is bound to. */
|
|
83
84
|
get boundHost(): string;
|
|
84
|
-
/**
|
|
85
|
-
* The daemon's shared approval broker. Exposed so embedders (and the boot
|
|
86
|
-
* factory's proof tests) can seed or inspect approvals against the SAME broker
|
|
87
|
-
* the HTTP approvals routes resolve through — e.g. to bridge an external
|
|
88
|
-
* approval UI, or to prove per-hunk approve/deny over the live wire without a
|
|
89
|
-
* running agent to originate a real tool-call approval.
|
|
90
|
-
*/
|
|
85
|
+
/** The daemon's shared approval broker — the SAME broker the HTTP approvals routes resolve through. Exposed so embedders and boot-factory proof tests can seed/inspect approvals (bridge an external UI, or prove per-hunk approve/deny over the live wire). */
|
|
91
86
|
get approvals(): ApprovalBroker;
|
|
87
|
+
/** The daemon's canonical single-writer memory registry — the SAME store the HTTP memory routes serve. Exposed so embedders and boot-factory proof tests can read back a wire write as a direct canonical-store read. */
|
|
88
|
+
get memory(): RuntimeServices['memoryRegistry'];
|
|
92
89
|
/**
|
|
93
90
|
* Start the daemon. Refuses to start if not explicitly enabled.
|
|
94
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../../src/platform/daemon/facade.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAA4C,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../../src/platform/daemon/facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -208,14 +208,10 @@ export class DaemonServer {
|
|
|
208
208
|
}
|
|
209
209
|
/** The host the daemon is bound to. */
|
|
210
210
|
get boundHost() { return this.host; }
|
|
211
|
-
/**
|
|
212
|
-
* The daemon's shared approval broker. Exposed so embedders (and the boot
|
|
213
|
-
* factory's proof tests) can seed or inspect approvals against the SAME broker
|
|
214
|
-
* the HTTP approvals routes resolve through — e.g. to bridge an external
|
|
215
|
-
* approval UI, or to prove per-hunk approve/deny over the live wire without a
|
|
216
|
-
* running agent to originate a real tool-call approval.
|
|
217
|
-
*/
|
|
211
|
+
/** The daemon's shared approval broker — the SAME broker the HTTP approvals routes resolve through. Exposed so embedders and boot-factory proof tests can seed/inspect approvals (bridge an external UI, or prove per-hunk approve/deny over the live wire). */
|
|
218
212
|
get approvals() { return this.approvalBroker; }
|
|
213
|
+
/** The daemon's canonical single-writer memory registry — the SAME store the HTTP memory routes serve. Exposed so embedders and boot-factory proof tests can read back a wire write as a direct canonical-store read. */
|
|
214
|
+
get memory() { return this.runtimeServices.memoryRegistry; }
|
|
219
215
|
/**
|
|
220
216
|
* Start the daemon. Refuses to start if not explicitly enabled.
|
|
221
217
|
*/
|
|
@@ -313,6 +309,8 @@ export class DaemonServer {
|
|
|
313
309
|
]);
|
|
314
310
|
await this.providerRuntime.startConfigured();
|
|
315
311
|
await this.companionChatManager.init();
|
|
312
|
+
// Init the canonical memory store so the daemon is a live single-writer memory service on accept (memory.records.add would else throw "not initialized" on a cold store).
|
|
313
|
+
await this.runtimeServices.memoryStore.init();
|
|
316
314
|
if (this.replyPoller === null) {
|
|
317
315
|
// Poll every 2 s for asynchronously-resolved surface replies; short interval
|
|
318
316
|
// keeps companion latency low while batching concurrent replies.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Adapts the real `SharedSessionBroker` to the narrow structural shape
|
|
5
5
|
* `createDaemonRuntimeRouteHandlers` (runtime-routes.ts) expects on its
|
|
6
|
-
* `sessionBroker` context field. Split out of router.ts (
|
|
6
|
+
* `sessionBroker` context field. Split out of router.ts (see CHANGELOG 1.0.0) to stay under
|
|
7
7
|
* the repo's grandfathered line-cap ceiling (see scripts/check-line-cap.ts) —
|
|
8
8
|
* this is a pure file-organization move, not a behavior change.
|
|
9
9
|
*/
|
|
@@ -143,6 +143,7 @@ export declare class DaemonHttpRouter {
|
|
|
143
143
|
dispose(): void;
|
|
144
144
|
private getConfigValue;
|
|
145
145
|
handleRequest(req: Request): Promise<Response>;
|
|
146
|
+
private dispatchAuthedRequest;
|
|
146
147
|
/**
|
|
147
148
|
* Dispatches routes that are exempt from the auth gate: login, remote-peer
|
|
148
149
|
* handshake, webhooks, and the control-plane web UI. Extracted from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAIL,KAAK,iBAAiB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC7G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAMpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACjI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAiC,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA2B5F,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ import { HomeGraphRoutes } from './home-graph-routes.js';
|
|
|
36
36
|
import { dispatchOpenAICompatibleRoutes } from './openai-compatible-routes.js';
|
|
37
37
|
import { ProjectPlanningRoutes } from './project-planning-routes.js';
|
|
38
38
|
import { parseDaemonJsonBody, parseDaemonJsonText, parseOptionalDaemonJsonBody, } from './router-request-body.js';
|
|
39
|
+
import { applyCorsHeaders, handleCorsPreflight, resolveWebuiServingPosture, serveWebuiBundle, } from './webui-serving.js';
|
|
39
40
|
export class DaemonHttpRouter {
|
|
40
41
|
context;
|
|
41
42
|
telemetryApi;
|
|
@@ -61,28 +62,44 @@ export class DaemonHttpRouter {
|
|
|
61
62
|
}
|
|
62
63
|
async handleRequest(req) {
|
|
63
64
|
return correlationCtx.run({ requestId: req.headers.get('x-request-id') ?? crypto.randomUUID() }, async () => {
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
source: 'runtime',
|
|
72
|
-
guidance: 'Authenticate with the operator shared token or an authenticated user session before calling daemon APIs.',
|
|
73
|
-
}), { status: 401 });
|
|
65
|
+
// Opt-in cross-origin + bundle-serving posture (both default off → no CORS,
|
|
66
|
+
// no bundle, daemon behaves exactly as before). CORS preflight is answered
|
|
67
|
+
// pre-auth (a browser OPTIONS carries no credentials; only allowlisted
|
|
68
|
+
// origins are granted, never a wildcard).
|
|
69
|
+
const serving = resolveWebuiServingPosture(this.context.configManager);
|
|
70
|
+
if (serving.cors.enabled && req.method === 'OPTIONS') {
|
|
71
|
+
return applyCorsHeaders(req, handleCorsPreflight(req, serving), serving);
|
|
74
72
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
source: 'runtime',
|
|
82
|
-
guidance: 'Check the daemon API path and version. New SDK-facing routes are published under /api/v1.',
|
|
83
|
-
}), { status: 404 });
|
|
73
|
+
// Same-origin bundle serving is pre-auth: the built app is public and
|
|
74
|
+
// token-authenticates its own API calls; reserved API paths return null
|
|
75
|
+
// here (API precedence) and flow to the normal auth-gated dispatch below.
|
|
76
|
+
const asset = serving.serveBundle ? await serveWebuiBundle(req, serving) : null;
|
|
77
|
+
const response = asset ?? await this.dispatchAuthedRequest(req);
|
|
78
|
+
return serving.cors.enabled ? applyCorsHeaders(req, response, serving) : response;
|
|
84
79
|
});
|
|
85
80
|
}
|
|
81
|
+
async dispatchAuthedRequest(req) {
|
|
82
|
+
// Pre-auth routes: no auth check (login, remote-peer handshake, webhooks, control-plane web UI).
|
|
83
|
+
const preAuth = await this.dispatchPreAuthRoutes(req);
|
|
84
|
+
if (preAuth)
|
|
85
|
+
return preAuth;
|
|
86
|
+
if (!this.context.checkAuth(req)) {
|
|
87
|
+
return jsonErrorResponse(new AppError('Authentication required', 'AUTH_REQUIRED', false, {
|
|
88
|
+
category: 'authentication',
|
|
89
|
+
source: 'runtime',
|
|
90
|
+
guidance: 'Authenticate with the operator shared token or an authenticated user session before calling daemon APIs.',
|
|
91
|
+
}), { status: 401 });
|
|
92
|
+
}
|
|
93
|
+
const apiResponse = await this.dispatchApiRoutes(req);
|
|
94
|
+
if (apiResponse)
|
|
95
|
+
return apiResponse;
|
|
96
|
+
const url = new URL(req.url);
|
|
97
|
+
return jsonErrorResponse(new AppError(`Route not found: ${url.pathname}`, 'NOT_FOUND', false, {
|
|
98
|
+
category: 'not_found',
|
|
99
|
+
source: 'runtime',
|
|
100
|
+
guidance: 'Check the daemon API path and version. New SDK-facing routes are published under /api/v1.',
|
|
101
|
+
}), { status: 404 });
|
|
102
|
+
}
|
|
86
103
|
/**
|
|
87
104
|
* Dispatches routes that are exempt from the auth gate: login, remote-peer
|
|
88
105
|
* handshake, webhooks, and the control-plane web UI. Extracted from
|
|
@@ -214,7 +214,7 @@ export interface DaemonRuntimeRouteContext extends Omit<SdkDaemonRuntimeRouteCon
|
|
|
214
214
|
id: string;
|
|
215
215
|
status: string;
|
|
216
216
|
} | null>;
|
|
217
|
-
/** Hard-remove a session record + its messages/inputs (
|
|
217
|
+
/** Hard-remove a session record + its messages/inputs (see CHANGELOG 1.0.0). Distinct from close. */
|
|
218
218
|
deleteSession(sessionId: string): Promise<'deleted' | 'not-found' | 'active'>;
|
|
219
219
|
cancelInput(sessionId: string, inputId: string): Promise<unknown | null>;
|
|
220
220
|
completeAgent(sessionId: string, agentId: string, message: string, meta: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-route-types.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/runtime-route-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-route-types.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/runtime-route-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,yBAAyB,IAAI,4BAA4B,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC/I,OAAO,KAAK,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAI1E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IACtF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,GAAG,SAAS,CAAC;IACd,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9E;AACD,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AACD,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC5C,CAAC;AACF,KAAK,iBAAiB,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AACjD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD,CAAC;AACF,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AACD,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CACrD,4BAA4B,EAC5B,mBAAmB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,eAAe,CACnH;IACC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;IACvE,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;IACtF,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC;IACzF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE;QACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,aAAa,CAAC,KAAK,EAAE;YACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC7B,WAAW,EAAE,qBAAqB,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;YAC/C,OAAO,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;SAClD,GAAG,OAAO,CAAC;YACV,IAAI,EAAE,gBAAgB,GAAG,OAAO,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,UAAU,CAAC;YAC1F,KAAK,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,0BAA0B,CAAA;aAAE,CAAC;YAC5D,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YACxC,YAAY,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;YAClD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;YAC1C,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;SACnC,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,EAAE;YAClB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC7B,WAAW,EAAE,qBAAqB,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;YAC/C,OAAO,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;YACjD,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;SAC1C,GAAG,OAAO,CAAC;YACV,IAAI,EAAE,gBAAgB,GAAG,OAAO,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,UAAU,CAAC;YAC1F,KAAK,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,0BAA0B,CAAA;aAAE,CAAC;YAC3E,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YACxC,YAAY,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;YAClD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;YAC1C,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;SACnC,CAAC,CAAC;QACH,eAAe,CAAC,KAAK,EAAE;YACrB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC7B,WAAW,EAAE,qBAAqB,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;YAC/C,OAAO,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;SAClD,GAAG,OAAO,CAAC;YACV,IAAI,EAAE,gBAAgB,GAAG,OAAO,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,UAAU,CAAC;YAC1F,KAAK,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,0BAA0B,CAAA;aAAE,CAAC;YAC3E,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YACxC,YAAY,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;YAClD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;YAC1C,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;SACnC,CAAC,CAAC;QACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,aAAa,CAAC,KAAK,EAAE;YACnB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;YAC/C,YAAY,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;YAClD,WAAW,CAAC,EAAE;gBACZ,WAAW,EAAE,qBAAqB,CAAC;gBACnC,SAAS,EAAE,MAAM,CAAC;gBAClB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAC7B,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5B,QAAQ,CAAC,KAAK,EAAE;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,WAAW,EAAE;gBACX,WAAW,EAAE,qBAAqB,CAAC;gBACnC,SAAS,EAAE,MAAM,CAAC;gBAClB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAC7B,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC;YACF,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;SAC9B,GAAG,OAAO,CAAC;YACV,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YACvB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,CAAC,EAAE;gBAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;aAAE,GAAG,SAAS,CAAC;SACtD,CAAC,CAAC;QACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACnH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;QACzD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;QACvD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,GAAG,OAAO,EAAE,CAAC;QAC9I,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;YAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAC7H,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC;QAChE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC;QACjE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC;QACxG,qGAAqG;QACrG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC;QAC9E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACzE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9H,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;YAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;SACnE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,YAAY,EAAE;QACrB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;QACnD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QAChC,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC;QAC5D,gBAAgB,CAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,SAAS,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;QAC7F,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjF,oBAAoB,IAAI;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;KAC1H,CAAC;IACF,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,4BAA4B,CAAC;IAC3E,QAAQ,CAAC,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,4BAA4B,CAAC;IAChH,QAAQ,CAAC,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,4BAA4B,CAAC;IAC7H,QAAQ,CAAC,aAAa,EAAE;QACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAC;KAC5D,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE;QAC9B,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;QACjD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;QAC9C,iBAAiB,CAAC,EAAE,QAAQ,GAAG,mBAAmB,GAAG,SAAS,CAAC;QAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACzC,iBAAiB,CAAC,EAAE,aAAa,GAAG,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC5F,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAChD,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,eAAe,GAAG,QAAQ,CAAC;IACvE,QAAQ,CAAC,4BAA4B,EAAE,CACrC,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAAE,KACrJ,IAAI,CAAC;IACV,QAAQ,CAAC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,KAAK,OAAO,CAAC;IACxP,QAAQ,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrF,QAAQ,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,aAAa,EAAE;QACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,IAAI;YAAE,KAAK,EAAE,oBAAoB,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9E,QAAQ,CAAC,eAAe,EAAE;QACxB,qBAAqB,CACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,IAAI,CAAC;KACT,GAAG,IAAI,CAAC;CACV;AAED,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,MAAM,MAAM,4BAA4B,GAAG,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* webui-serving.ts
|
|
3
|
+
*
|
|
4
|
+
* Two opt-in capabilities that let a browser-hosted web UI reach the daemon:
|
|
5
|
+
*
|
|
6
|
+
* 1. Same-origin bundle serving (PRIMARY). When `controlPlane.webui.serve` is
|
|
7
|
+
* on, the daemon serves a configured build directory at `/` so the bundle
|
|
8
|
+
* and the API share an origin — the browser's same-origin policy is then a
|
|
9
|
+
* non-issue. This is wire-compatible with `tailscale serve`, which fronts
|
|
10
|
+
* the single daemon origin over HTTPS: bundle + API arrive same-origin.
|
|
11
|
+
* The bundle is public (served without a token); the app itself
|
|
12
|
+
* token-authenticates its API calls, so no wire data leaks from serving
|
|
13
|
+
* static files.
|
|
14
|
+
*
|
|
15
|
+
* 2. Cross-origin request support (SECONDARY). When `controlPlane.cors.enabled`
|
|
16
|
+
* is on, OPTIONS preflight is answered and Access-Control-Allow-* headers
|
|
17
|
+
* are emitted ONLY for origins on the explicit `controlPlane.cors.allowedOrigins`
|
|
18
|
+
* allowlist (the Vite dev server, a deliberately separate origin, etc.).
|
|
19
|
+
* There is no wildcard: the matched origin is echoed back, credentials are
|
|
20
|
+
* allowlist-gated, and `Vary: Origin` is always set so caches stay correct.
|
|
21
|
+
*
|
|
22
|
+
* BOTH default OFF. With both off the daemon behaves exactly as before: no bundle
|
|
23
|
+
* is served and no Access-Control-Allow-Origin is ever emitted. The loopback
|
|
24
|
+
* default posture is unchanged; these capabilities are explicit opt-ins, never
|
|
25
|
+
* auto-enabled by network host mode.
|
|
26
|
+
*/
|
|
27
|
+
import type { ConfigManager } from '../../config/manager.js';
|
|
28
|
+
/** Resolved, per-request view of the two opt-in serving capabilities. */
|
|
29
|
+
export interface WebuiServingPosture {
|
|
30
|
+
/** True when the daemon should serve the configured bundle directory at `/`. */
|
|
31
|
+
readonly serveBundle: boolean;
|
|
32
|
+
/** Absolute or working-dir-relative bundle directory; empty string when unset. */
|
|
33
|
+
readonly bundleDir: string;
|
|
34
|
+
/** Cross-origin request support (OPTIONS preflight + Access-Control-Allow-*). */
|
|
35
|
+
readonly cors: {
|
|
36
|
+
readonly enabled: boolean;
|
|
37
|
+
/** Explicit origin allowlist. Never wildcarded; empty means "refuse every origin". */
|
|
38
|
+
readonly allowedOrigins: readonly string[];
|
|
39
|
+
};
|
|
40
|
+
/** OpenAI-compatible path prefix (reserved so bundle serving never shadows it). */
|
|
41
|
+
readonly openaiPathPrefix: string;
|
|
42
|
+
}
|
|
43
|
+
/** Read the current serving posture from config. Cheap; called per request. */
|
|
44
|
+
export declare function resolveWebuiServingPosture(configManager: ConfigManager): WebuiServingPosture;
|
|
45
|
+
/**
|
|
46
|
+
* Answer a CORS preflight (OPTIONS). Emits Access-Control-Allow-* only for an
|
|
47
|
+
* allowlisted origin; a non-allowlisted origin is refused honestly (403, no
|
|
48
|
+
* Access-Control-Allow-Origin) so the browser preflight fails cleanly.
|
|
49
|
+
*/
|
|
50
|
+
export declare function handleCorsPreflight(req: Request, posture: WebuiServingPosture): Response;
|
|
51
|
+
/**
|
|
52
|
+
* Decorate an actual (non-preflight) response with CORS headers when the request
|
|
53
|
+
* carries an allowlisted Origin. `Vary: Origin` is always added while CORS is
|
|
54
|
+
* enabled so caches never serve an allow-origin to the wrong origin. A
|
|
55
|
+
* non-allowlisted origin gets Vary but NO Access-Control-Allow-Origin — the
|
|
56
|
+
* browser then blocks the read honestly.
|
|
57
|
+
*/
|
|
58
|
+
export declare function applyCorsHeaders(req: Request, response: Response, posture: WebuiServingPosture): Response;
|
|
59
|
+
/**
|
|
60
|
+
* Serve a file from the configured bundle directory, with SPA fallback to
|
|
61
|
+
* index.html for navigation routes. Returns null when serving is disabled, the
|
|
62
|
+
* request is not a GET/HEAD, or the path is a reserved API route — in every
|
|
63
|
+
* "null" case the caller continues with normal daemon routing, so behavior is
|
|
64
|
+
* unchanged when the capability is off. Path traversal outside the bundle
|
|
65
|
+
* directory is refused with 403.
|
|
66
|
+
*/
|
|
67
|
+
export declare function serveWebuiBundle(req: Request, posture: WebuiServingPosture): Promise<Response | null>;
|
|
68
|
+
//# sourceMappingURL=webui-serving.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webui-serving.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/webui-serving.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,sFAAsF;QACtF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5C,CAAC;IACF,mFAAmF;IACnF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAOD,+EAA+E;AAC/E,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,aAAa,GAAG,mBAAmB,CAY5F;AAmBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,QAAQ,CA8BxF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,GAAG,QAAQ,CAUzG;AA+ED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuC3G"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* webui-serving.ts
|
|
3
|
+
*
|
|
4
|
+
* Two opt-in capabilities that let a browser-hosted web UI reach the daemon:
|
|
5
|
+
*
|
|
6
|
+
* 1. Same-origin bundle serving (PRIMARY). When `controlPlane.webui.serve` is
|
|
7
|
+
* on, the daemon serves a configured build directory at `/` so the bundle
|
|
8
|
+
* and the API share an origin — the browser's same-origin policy is then a
|
|
9
|
+
* non-issue. This is wire-compatible with `tailscale serve`, which fronts
|
|
10
|
+
* the single daemon origin over HTTPS: bundle + API arrive same-origin.
|
|
11
|
+
* The bundle is public (served without a token); the app itself
|
|
12
|
+
* token-authenticates its API calls, so no wire data leaks from serving
|
|
13
|
+
* static files.
|
|
14
|
+
*
|
|
15
|
+
* 2. Cross-origin request support (SECONDARY). When `controlPlane.cors.enabled`
|
|
16
|
+
* is on, OPTIONS preflight is answered and Access-Control-Allow-* headers
|
|
17
|
+
* are emitted ONLY for origins on the explicit `controlPlane.cors.allowedOrigins`
|
|
18
|
+
* allowlist (the Vite dev server, a deliberately separate origin, etc.).
|
|
19
|
+
* There is no wildcard: the matched origin is echoed back, credentials are
|
|
20
|
+
* allowlist-gated, and `Vary: Origin` is always set so caches stay correct.
|
|
21
|
+
*
|
|
22
|
+
* BOTH default OFF. With both off the daemon behaves exactly as before: no bundle
|
|
23
|
+
* is served and no Access-Control-Allow-Origin is ever emitted. The loopback
|
|
24
|
+
* default posture is unchanged; these capabilities are explicit opt-ins, never
|
|
25
|
+
* auto-enabled by network host mode.
|
|
26
|
+
*/
|
|
27
|
+
import { resolve, sep } from 'node:path';
|
|
28
|
+
import { readStringList } from '../helpers.js';
|
|
29
|
+
function readConfig(configManager, key) {
|
|
30
|
+
const getter = configManager.get;
|
|
31
|
+
return typeof getter === 'function' ? getter.call(configManager, key) : undefined;
|
|
32
|
+
}
|
|
33
|
+
/** Read the current serving posture from config. Cheap; called per request. */
|
|
34
|
+
export function resolveWebuiServingPosture(configManager) {
|
|
35
|
+
const serveBundle = readConfig(configManager, 'controlPlane.webui.serve') === true;
|
|
36
|
+
const bundleDirRaw = readConfig(configManager, 'controlPlane.webui.bundleDir');
|
|
37
|
+
const corsEnabled = readConfig(configManager, 'controlPlane.cors.enabled') === true;
|
|
38
|
+
const allowedOrigins = readStringList(readConfig(configManager, 'controlPlane.cors.allowedOrigins')) ?? [];
|
|
39
|
+
const openaiPrefixRaw = readConfig(configManager, 'controlPlane.openaiCompatible.pathPrefix');
|
|
40
|
+
return {
|
|
41
|
+
serveBundle,
|
|
42
|
+
bundleDir: typeof bundleDirRaw === 'string' ? bundleDirRaw.trim() : '',
|
|
43
|
+
cors: { enabled: corsEnabled, allowedOrigins },
|
|
44
|
+
openaiPathPrefix: typeof openaiPrefixRaw === 'string' && openaiPrefixRaw.trim() ? openaiPrefixRaw.trim() : '/v1',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// CORS (secondary path)
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
/** Append a token to an existing Vary header without duplicating it. */
|
|
51
|
+
function appendVary(existing, token) {
|
|
52
|
+
if (!existing)
|
|
53
|
+
return token;
|
|
54
|
+
const parts = existing.split(',').map((p) => p.trim()).filter(Boolean);
|
|
55
|
+
if (parts.some((p) => p.toLowerCase() === token.toLowerCase()))
|
|
56
|
+
return existing;
|
|
57
|
+
return [...parts, token].join(', ');
|
|
58
|
+
}
|
|
59
|
+
/** True when the origin is on the explicit allowlist (exact match, no wildcard). */
|
|
60
|
+
function isOriginAllowed(origin, allowlist) {
|
|
61
|
+
return allowlist.includes(origin);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Answer a CORS preflight (OPTIONS). Emits Access-Control-Allow-* only for an
|
|
65
|
+
* allowlisted origin; a non-allowlisted origin is refused honestly (403, no
|
|
66
|
+
* Access-Control-Allow-Origin) so the browser preflight fails cleanly.
|
|
67
|
+
*/
|
|
68
|
+
export function handleCorsPreflight(req, posture) {
|
|
69
|
+
const origin = req.headers.get('origin');
|
|
70
|
+
// A preflight with no Origin is not a browser CORS preflight — answer 204 with
|
|
71
|
+
// no allow-origin (nothing to grant); never emit a wildcard.
|
|
72
|
+
if (origin === null) {
|
|
73
|
+
return new Response(null, { status: 204, headers: { Vary: 'Origin' } });
|
|
74
|
+
}
|
|
75
|
+
if (!isOriginAllowed(origin, posture.cors.allowedOrigins)) {
|
|
76
|
+
return Response.json({ error: 'ORIGIN_NOT_ALLOWED', code: 'ORIGIN_NOT_ALLOWED', message: 'Origin is not on controlPlane.cors.allowedOrigins.' }, { status: 403, headers: { Vary: 'Origin' } });
|
|
77
|
+
}
|
|
78
|
+
// Echo the requested headers when present, otherwise a safe default that always
|
|
79
|
+
// includes Authorization so the bearer-token API flow works cross-origin.
|
|
80
|
+
const requestedHeaders = req.headers.get('access-control-request-headers');
|
|
81
|
+
const allowHeaders = requestedHeaders && requestedHeaders.trim()
|
|
82
|
+
? requestedHeaders
|
|
83
|
+
: 'Authorization, Content-Type';
|
|
84
|
+
return new Response(null, {
|
|
85
|
+
status: 204,
|
|
86
|
+
headers: {
|
|
87
|
+
'Access-Control-Allow-Origin': origin,
|
|
88
|
+
'Access-Control-Allow-Credentials': 'true',
|
|
89
|
+
'Access-Control-Allow-Methods': 'GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS',
|
|
90
|
+
'Access-Control-Allow-Headers': allowHeaders,
|
|
91
|
+
'Access-Control-Max-Age': '600',
|
|
92
|
+
Vary: 'Origin',
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Decorate an actual (non-preflight) response with CORS headers when the request
|
|
98
|
+
* carries an allowlisted Origin. `Vary: Origin` is always added while CORS is
|
|
99
|
+
* enabled so caches never serve an allow-origin to the wrong origin. A
|
|
100
|
+
* non-allowlisted origin gets Vary but NO Access-Control-Allow-Origin — the
|
|
101
|
+
* browser then blocks the read honestly.
|
|
102
|
+
*/
|
|
103
|
+
export function applyCorsHeaders(req, response, posture) {
|
|
104
|
+
const origin = req.headers.get('origin');
|
|
105
|
+
if (origin === null)
|
|
106
|
+
return response;
|
|
107
|
+
const headers = new Headers(response.headers);
|
|
108
|
+
headers.set('Vary', appendVary(headers.get('Vary'), 'Origin'));
|
|
109
|
+
if (isOriginAllowed(origin, posture.cors.allowedOrigins)) {
|
|
110
|
+
headers.set('Access-Control-Allow-Origin', origin);
|
|
111
|
+
headers.set('Access-Control-Allow-Credentials', 'true');
|
|
112
|
+
}
|
|
113
|
+
return new Response(response.body, { status: response.status, statusText: response.statusText, headers });
|
|
114
|
+
}
|
|
115
|
+
// ---------------------------------------------------------------------------
|
|
116
|
+
// Static bundle serving (primary path)
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
/** Extension → content type for the common web-bundle asset kinds. */
|
|
119
|
+
const CONTENT_TYPES = {
|
|
120
|
+
html: 'text/html; charset=utf-8',
|
|
121
|
+
js: 'text/javascript; charset=utf-8',
|
|
122
|
+
mjs: 'text/javascript; charset=utf-8',
|
|
123
|
+
css: 'text/css; charset=utf-8',
|
|
124
|
+
json: 'application/json; charset=utf-8',
|
|
125
|
+
map: 'application/json; charset=utf-8',
|
|
126
|
+
svg: 'image/svg+xml',
|
|
127
|
+
png: 'image/png',
|
|
128
|
+
jpg: 'image/jpeg',
|
|
129
|
+
jpeg: 'image/jpeg',
|
|
130
|
+
gif: 'image/gif',
|
|
131
|
+
webp: 'image/webp',
|
|
132
|
+
avif: 'image/avif',
|
|
133
|
+
ico: 'image/x-icon',
|
|
134
|
+
woff: 'font/woff',
|
|
135
|
+
woff2: 'font/woff2',
|
|
136
|
+
ttf: 'font/ttf',
|
|
137
|
+
wasm: 'application/wasm',
|
|
138
|
+
txt: 'text/plain; charset=utf-8',
|
|
139
|
+
webmanifest: 'application/manifest+json',
|
|
140
|
+
};
|
|
141
|
+
function extensionOf(pathname) {
|
|
142
|
+
const base = pathname.slice(pathname.lastIndexOf('/') + 1);
|
|
143
|
+
const dot = base.lastIndexOf('.');
|
|
144
|
+
return dot > 0 ? base.slice(dot + 1).toLowerCase() : '';
|
|
145
|
+
}
|
|
146
|
+
function contentTypeFor(pathname) {
|
|
147
|
+
return CONTENT_TYPES[extensionOf(pathname)] ?? 'application/octet-stream';
|
|
148
|
+
}
|
|
149
|
+
/** True when a path belongs to the daemon API/route surface and must never be
|
|
150
|
+
* served as a static file (API routes keep precedence). Boundary-aware so a SPA
|
|
151
|
+
* route like `/tasks` is not mistaken for the daemon's `/task` route. */
|
|
152
|
+
function isReservedApiPath(pathname, openaiPrefix) {
|
|
153
|
+
const reserved = ['/api', '/login', '/webhook', '/task', openaiPrefix];
|
|
154
|
+
return reserved.some((base) => pathname === base || pathname.startsWith(`${base}/`));
|
|
155
|
+
}
|
|
156
|
+
/** True when the request looks like an SPA navigation (HTML document) rather than
|
|
157
|
+
* a fetch for a concrete asset — used to decide whether the index.html fallback
|
|
158
|
+
* applies. A missing concrete asset must 404, not return the HTML shell. */
|
|
159
|
+
function isNavigationRequest(req, pathname) {
|
|
160
|
+
if (extensionOf(pathname) === '')
|
|
161
|
+
return true;
|
|
162
|
+
return (req.headers.get('accept') ?? '').includes('text/html');
|
|
163
|
+
}
|
|
164
|
+
function cacheControlFor(pathname, isShell) {
|
|
165
|
+
if (isShell || extensionOf(pathname) === 'html')
|
|
166
|
+
return 'no-cache';
|
|
167
|
+
if (pathname.includes('/assets/'))
|
|
168
|
+
return 'public, max-age=31536000, immutable';
|
|
169
|
+
return 'public, max-age=3600';
|
|
170
|
+
}
|
|
171
|
+
async function fileResponse(req, file, pathname, isShell) {
|
|
172
|
+
const headers = {
|
|
173
|
+
'Content-Type': contentTypeFor(pathname),
|
|
174
|
+
'Cache-Control': cacheControlFor(pathname, isShell),
|
|
175
|
+
};
|
|
176
|
+
if (req.method === 'HEAD') {
|
|
177
|
+
const size = await file.size;
|
|
178
|
+
return new Response(null, { status: 200, headers: { ...headers, 'Content-Length': String(size) } });
|
|
179
|
+
}
|
|
180
|
+
return new Response(file, { status: 200, headers });
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Serve a file from the configured bundle directory, with SPA fallback to
|
|
184
|
+
* index.html for navigation routes. Returns null when serving is disabled, the
|
|
185
|
+
* request is not a GET/HEAD, or the path is a reserved API route — in every
|
|
186
|
+
* "null" case the caller continues with normal daemon routing, so behavior is
|
|
187
|
+
* unchanged when the capability is off. Path traversal outside the bundle
|
|
188
|
+
* directory is refused with 403.
|
|
189
|
+
*/
|
|
190
|
+
export async function serveWebuiBundle(req, posture) {
|
|
191
|
+
if (!posture.serveBundle || !posture.bundleDir)
|
|
192
|
+
return null;
|
|
193
|
+
if (req.method !== 'GET' && req.method !== 'HEAD')
|
|
194
|
+
return null;
|
|
195
|
+
const url = new URL(req.url);
|
|
196
|
+
let pathname;
|
|
197
|
+
try {
|
|
198
|
+
pathname = decodeURIComponent(url.pathname);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
return new Response('Bad Request', { status: 400 });
|
|
202
|
+
}
|
|
203
|
+
if (pathname.includes('\0'))
|
|
204
|
+
return new Response('Bad Request', { status: 400 });
|
|
205
|
+
if (isReservedApiPath(pathname, posture.openaiPathPrefix))
|
|
206
|
+
return null;
|
|
207
|
+
const root = resolve(posture.bundleDir);
|
|
208
|
+
const relative = pathname === '/' ? 'index.html' : pathname.replace(/^\/+/, '');
|
|
209
|
+
const resolved = resolve(root, relative);
|
|
210
|
+
// Reject anything that escapes the bundle root (path traversal).
|
|
211
|
+
if (resolved !== root && !resolved.startsWith(root + sep)) {
|
|
212
|
+
return new Response('Forbidden', { status: 403 });
|
|
213
|
+
}
|
|
214
|
+
const file = Bun.file(resolved);
|
|
215
|
+
if (await file.exists()) {
|
|
216
|
+
const isShell = resolved === resolve(root, 'index.html');
|
|
217
|
+
// Derive the content type from the resolved file path, not the request path —
|
|
218
|
+
// a `GET /` serves index.html and must answer text/html, not octet-stream.
|
|
219
|
+
return fileResponse(req, file, resolved, isShell);
|
|
220
|
+
}
|
|
221
|
+
// SPA fallback: an unknown navigation route serves the app shell; a missing
|
|
222
|
+
// concrete asset is an honest 404 (never the HTML shell in a JS/CSS request).
|
|
223
|
+
if (isNavigationRequest(req, pathname)) {
|
|
224
|
+
const indexFile = Bun.file(resolve(root, 'index.html'));
|
|
225
|
+
if (await indexFile.exists()) {
|
|
226
|
+
return fileResponse(req, indexFile, '/index.html', true);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return new Response('Not Found', { status: 404 });
|
|
230
|
+
}
|
|
@@ -75,7 +75,7 @@ export interface MemoryApi {
|
|
|
75
75
|
export type MemoryApiRegistry = Pick<MemoryRegistry, 'add' | 'doctor' | 'delete' | 'exportBundle' | 'get' | 'getAll' | 'importBundle' | 'link' | 'linksFor' | 'rebuildVectors' | 'rebuildVectorsAsync' | 'review' | 'reviewQueue' | 'search' | 'searchSemantic' | 'update' | 'vectorStats'>;
|
|
76
76
|
/**
|
|
77
77
|
* memory-api-parallel query surface for the repo source-tree code index
|
|
78
|
-
* (
|
|
78
|
+
* (Stage A, see CHANGELOG 0.38.0). Deliberately NOT folded into MemoryApi:
|
|
79
79
|
* CodeContextResult/CodeIndexStats are a different record shape than
|
|
80
80
|
* MemoryRecord, and code-index retrieval carries no cls/reviewState/trustTier
|
|
81
81
|
* provenance semantics — see createCodeIndexApi / createMemoryApi below.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
|
|
2
2
|
/**
|
|
3
|
-
* Budget enforcement (
|
|
3
|
+
* Budget enforcement (see CHANGELOG 0.38.0). Enforcement point is BEFORE the
|
|
4
4
|
* scheduler claims an item into a new phase (i.e. before a new agent spawn)
|
|
5
5
|
* — never mid-item. An in-flight item's phase always runs to completion even
|
|
6
6
|
* if a later check here would refuse a NEW claim: honest semantics, never a
|
|
7
|
-
* mid-run kill on budget
|
|
7
|
+
* mid-run kill on budget.
|
|
8
8
|
*
|
|
9
9
|
* Usage is summed directly from WorkItem.usage, which phase-runner.ts
|
|
10
10
|
* populates from the SAME `priceUsage` function threaded through
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
|
|
2
2
|
/**
|
|
3
|
-
* Per-work-item cancellation registry (
|
|
4
|
-
* cooperative-cancellation
|
|
3
|
+
* Per-work-item cancellation registry (see CHANGELOG 0.38.0) — closing a
|
|
4
|
+
* previously deferred cooperative-cancellation gap.
|
|
5
5
|
*
|
|
6
6
|
* One AbortController per in-flight WorkItem. `engine.kill(itemId)` aborts
|
|
7
7
|
* the controller here AND calls `agentManager.cancel(agentId, 'kill')` — the
|