@pellux/goodvibes-sdk 0.21.26 → 0.21.28

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.
@@ -23,6 +23,9 @@ export interface DaemonApiRouteHandlers {
23
23
  getTelemetryOtlpTraces(req: Request): MaybeResponse;
24
24
  getTelemetryOtlpLogs(req: Request): MaybeResponse;
25
25
  getTelemetryOtlpMetrics(req: Request): MaybeResponse;
26
+ postTelemetryOtlpLogs(req: Request): MaybeResponse;
27
+ postTelemetryOtlpTraces(req: Request): MaybeResponse;
28
+ postTelemetryOtlpMetrics(req: Request): MaybeResponse;
26
29
  getGatewayMethods(url: URL): MaybeResponse;
27
30
  getGatewayEvents(url: URL): MaybeResponse;
28
31
  getGatewayMethod(methodId: string): MaybeResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/_internal/daemon/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/_internal/daemon/context.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { DaemonApiRouteHandlers } from './context.js';
2
- export declare function dispatchOperatorRoutes(req: Request, handlers: Pick<DaemonApiRouteHandlers, 'getStatus' | 'getCurrentAuth' | 'getControlPlaneSnapshot' | 'getOperatorContract' | 'getControlPlaneWeb' | 'getControlPlaneRecentEvents' | 'getControlPlaneMessages' | 'getControlPlaneClients' | 'getTelemetrySnapshot' | 'getTelemetryEvents' | 'getTelemetryErrors' | 'getTelemetryTraces' | 'getTelemetryMetrics' | 'createTelemetryEventStream' | 'getTelemetryOtlpTraces' | 'getTelemetryOtlpLogs' | 'getTelemetryOtlpMetrics' | 'getGatewayMethods' | 'getGatewayEvents' | 'getGatewayMethod' | 'invokeGatewayMethod' | 'createControlPlaneEventStream' | 'getRoutesSnapshot' | 'getSurfaces' | 'getChannelAccounts' | 'getChannelSurfaceAccounts' | 'getChannelAccount' | 'postChannelAccountAction' | 'getChannelSetupSchema' | 'getChannelDoctor' | 'getChannelRepairActions' | 'getChannelLifecycle' | 'postChannelLifecycleMigrate' | 'getChannelCapabilities' | 'getChannelSurfaceCapabilities' | 'getChannelTools' | 'getChannelSurfaceTools' | 'getChannelAgentTools' | 'getChannelSurfaceAgentTools' | 'postChannelTool' | 'getChannelActions' | 'getChannelSurfaceActions' | 'postChannelAction' | 'postChannelResolveTarget' | 'postChannelAuthorize' | 'postChannelAllowlistResolve' | 'postChannelAllowlistEdit' | 'getChannelPolicies' | 'postChannelPolicy' | 'patchChannelPolicy' | 'getChannelPolicyAudit' | 'getChannelStatus' | 'getChannelDirectory' | 'getWatchers' | 'postWatcher' | 'patchWatcher' | 'watcherAction' | 'deleteWatcher' | 'getServiceStatus' | 'installService' | 'startService' | 'stopService' | 'restartService' | 'uninstallService' | 'getRouteBindings' | 'postRouteBinding' | 'patchRouteBinding' | 'deleteRouteBinding' | 'getApprovals' | 'approvalAction' | 'getRemote' | 'getHealth' | 'getAccounts' | 'getProviders' | 'getProvider' | 'getProviderUsage' | 'getSettings' | 'getContinuity' | 'getWorktrees' | 'getIntelligence' | 'getLocalAuth' | 'postLocalAuthUser' | 'deleteLocalAuthUser' | 'postLocalAuthPassword' | 'deleteLocalAuthSession' | 'deleteBootstrapFile' | 'getPanels' | 'postPanelOpen' | 'getEvents' | 'getConfig' | 'postConfig' | 'getReview' | 'getIntegrationSession' | 'getIntegrationTasks' | 'getIntegrationAutomation' | 'getIntegrationSessions' | 'getAutomationHeartbeat' | 'postAutomationHeartbeat' | 'getMemoryDoctor' | 'getMemoryVectorStats' | 'postMemoryVectorRebuild' | 'postMemoryEmbeddingDefault' | 'getKnowledgeStatus' | 'getKnowledgeSources' | 'getKnowledgeNodes' | 'getKnowledgeIssues' | 'getKnowledgeItem' | 'getKnowledgeConnectors' | 'getKnowledgeConnector' | 'getKnowledgeConnectorDoctor' | 'getKnowledgeProjectionTargets' | 'getKnowledgeGraphqlSchema' | 'getKnowledgeExtractions' | 'getKnowledgeUsage' | 'getKnowledgeCandidates' | 'getKnowledgeCandidate' | 'getKnowledgeReports' | 'getKnowledgeReport' | 'getKnowledgeExtraction' | 'getKnowledgeSourceExtraction' | 'getKnowledgeJobs' | 'getKnowledgeJob' | 'getKnowledgeJobRuns' | 'getKnowledgeSchedules' | 'getKnowledgeSchedule' | 'postKnowledgeIngestUrl' | 'postKnowledgeIngestArtifact' | 'postKnowledgeImportBookmarks' | 'postKnowledgeImportUrls' | 'postKnowledgeIngestConnector' | 'postKnowledgeSearch' | 'postKnowledgePacket' | 'postKnowledgeDecideCandidate' | 'postKnowledgeRunJob' | 'postKnowledgeLint' | 'postKnowledgeReindex' | 'postKnowledgeSaveSchedule' | 'deleteKnowledgeSchedule' | 'postKnowledgeSetScheduleEnabled' | 'postKnowledgeRenderProjection' | 'postKnowledgeMaterializeProjection' | 'executeKnowledgeGraphql' | 'getVoiceStatus' | 'getVoiceProviders' | 'getVoiceVoices' | 'postVoiceTts' | 'postVoiceStt' | 'postVoiceRealtimeSession' | 'getWebSearchProviders' | 'postWebSearch' | 'getArtifacts' | 'postArtifact' | 'getArtifact' | 'getArtifactContent' | 'getMediaProviders' | 'postMediaAnalyze' | 'postMediaTransform' | 'postMediaGenerate' | 'getMultimodalStatus' | 'getMultimodalProviders' | 'postMultimodalAnalyze' | 'postMultimodalPacket' | 'postMultimodalWriteback' | 'getRemoteNodeHostContract' | 'getSchedulerCapacity'>): Promise<Response | null>;
2
+ export declare function dispatchOperatorRoutes(req: Request, handlers: Pick<DaemonApiRouteHandlers, 'getStatus' | 'getCurrentAuth' | 'getControlPlaneSnapshot' | 'getOperatorContract' | 'getControlPlaneWeb' | 'getControlPlaneRecentEvents' | 'getControlPlaneMessages' | 'getControlPlaneClients' | 'getTelemetrySnapshot' | 'getTelemetryEvents' | 'getTelemetryErrors' | 'getTelemetryTraces' | 'getTelemetryMetrics' | 'createTelemetryEventStream' | 'getTelemetryOtlpTraces' | 'getTelemetryOtlpLogs' | 'getTelemetryOtlpMetrics' | 'postTelemetryOtlpLogs' | 'postTelemetryOtlpTraces' | 'postTelemetryOtlpMetrics' | 'getGatewayMethods' | 'getGatewayEvents' | 'getGatewayMethod' | 'invokeGatewayMethod' | 'createControlPlaneEventStream' | 'getRoutesSnapshot' | 'getSurfaces' | 'getChannelAccounts' | 'getChannelSurfaceAccounts' | 'getChannelAccount' | 'postChannelAccountAction' | 'getChannelSetupSchema' | 'getChannelDoctor' | 'getChannelRepairActions' | 'getChannelLifecycle' | 'postChannelLifecycleMigrate' | 'getChannelCapabilities' | 'getChannelSurfaceCapabilities' | 'getChannelTools' | 'getChannelSurfaceTools' | 'getChannelAgentTools' | 'getChannelSurfaceAgentTools' | 'postChannelTool' | 'getChannelActions' | 'getChannelSurfaceActions' | 'postChannelAction' | 'postChannelResolveTarget' | 'postChannelAuthorize' | 'postChannelAllowlistResolve' | 'postChannelAllowlistEdit' | 'getChannelPolicies' | 'postChannelPolicy' | 'patchChannelPolicy' | 'getChannelPolicyAudit' | 'getChannelStatus' | 'getChannelDirectory' | 'getWatchers' | 'postWatcher' | 'patchWatcher' | 'watcherAction' | 'deleteWatcher' | 'getServiceStatus' | 'installService' | 'startService' | 'stopService' | 'restartService' | 'uninstallService' | 'getRouteBindings' | 'postRouteBinding' | 'patchRouteBinding' | 'deleteRouteBinding' | 'getApprovals' | 'approvalAction' | 'getRemote' | 'getHealth' | 'getAccounts' | 'getProviders' | 'getProvider' | 'getProviderUsage' | 'getSettings' | 'getContinuity' | 'getWorktrees' | 'getIntelligence' | 'getLocalAuth' | 'postLocalAuthUser' | 'deleteLocalAuthUser' | 'postLocalAuthPassword' | 'deleteLocalAuthSession' | 'deleteBootstrapFile' | 'getPanels' | 'postPanelOpen' | 'getEvents' | 'getConfig' | 'postConfig' | 'getReview' | 'getIntegrationSession' | 'getIntegrationTasks' | 'getIntegrationAutomation' | 'getIntegrationSessions' | 'getAutomationHeartbeat' | 'postAutomationHeartbeat' | 'getMemoryDoctor' | 'getMemoryVectorStats' | 'postMemoryVectorRebuild' | 'postMemoryEmbeddingDefault' | 'getKnowledgeStatus' | 'getKnowledgeSources' | 'getKnowledgeNodes' | 'getKnowledgeIssues' | 'getKnowledgeItem' | 'getKnowledgeConnectors' | 'getKnowledgeConnector' | 'getKnowledgeConnectorDoctor' | 'getKnowledgeProjectionTargets' | 'getKnowledgeGraphqlSchema' | 'getKnowledgeExtractions' | 'getKnowledgeUsage' | 'getKnowledgeCandidates' | 'getKnowledgeCandidate' | 'getKnowledgeReports' | 'getKnowledgeReport' | 'getKnowledgeExtraction' | 'getKnowledgeSourceExtraction' | 'getKnowledgeJobs' | 'getKnowledgeJob' | 'getKnowledgeJobRuns' | 'getKnowledgeSchedules' | 'getKnowledgeSchedule' | 'postKnowledgeIngestUrl' | 'postKnowledgeIngestArtifact' | 'postKnowledgeImportBookmarks' | 'postKnowledgeImportUrls' | 'postKnowledgeIngestConnector' | 'postKnowledgeSearch' | 'postKnowledgePacket' | 'postKnowledgeDecideCandidate' | 'postKnowledgeRunJob' | 'postKnowledgeLint' | 'postKnowledgeReindex' | 'postKnowledgeSaveSchedule' | 'deleteKnowledgeSchedule' | 'postKnowledgeSetScheduleEnabled' | 'postKnowledgeRenderProjection' | 'postKnowledgeMaterializeProjection' | 'executeKnowledgeGraphql' | 'getVoiceStatus' | 'getVoiceProviders' | 'getVoiceVoices' | 'postVoiceTts' | 'postVoiceStt' | 'postVoiceRealtimeSession' | 'getWebSearchProviders' | 'postWebSearch' | 'getArtifacts' | 'postArtifact' | 'getArtifact' | 'getArtifactContent' | 'getMediaProviders' | 'postMediaAnalyze' | 'postMediaTransform' | 'postMediaGenerate' | 'getMultimodalStatus' | 'getMultimodalProviders' | 'postMultimodalAnalyze' | 'postMultimodalPacket' | 'postMultimodalWriteback' | 'getRemoteNodeHostContract' | 'getSchedulerCapacity'>): Promise<Response | null>;
3
3
  //# sourceMappingURL=operator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/_internal/daemon/operator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/_internal/daemon/operator.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,13 @@ export async function dispatchOperatorRoutes(req, handlers) {
38
38
  return handlers.getTelemetryOtlpLogs(req);
39
39
  if ((pathname === '/api/telemetry/otlp/v1/metrics' || pathname === '/api/v1/telemetry/otlp/v1/metrics') && method === 'GET')
40
40
  return handlers.getTelemetryOtlpMetrics(req);
41
+ // OTLP ingest receivers — POST /api/v1/telemetry/otlp/v1/{logs,traces,metrics}
42
+ if ((pathname === '/api/telemetry/otlp/v1/logs' || pathname === '/api/v1/telemetry/otlp/v1/logs') && method === 'POST')
43
+ return handlers.postTelemetryOtlpLogs(req);
44
+ if ((pathname === '/api/telemetry/otlp/v1/traces' || pathname === '/api/v1/telemetry/otlp/v1/traces') && method === 'POST')
45
+ return handlers.postTelemetryOtlpTraces(req);
46
+ if ((pathname === '/api/telemetry/otlp/v1/metrics' || pathname === '/api/v1/telemetry/otlp/v1/metrics') && method === 'POST')
47
+ return handlers.postTelemetryOtlpMetrics(req);
41
48
  if (pathname === '/api/control-plane/methods' && method === 'GET')
42
49
  return handlers.getGatewayMethods(url);
43
50
  const gatewayMethodInvokeMatch = pathname.match(/^\/api\/control-plane\/methods\/([^/]+)\/invoke$/);
@@ -35,10 +35,33 @@ interface TelemetryApiLike {
35
35
  buildOtlpLogDocument(filter: TelemetryFilter, view: TelemetryViewMode): unknown;
36
36
  buildOtlpMetricDocument(): unknown;
37
37
  }
38
+ /**
39
+ * Ingest sink — receives parsed OTLP records forwarded by the POST receivers.
40
+ * When null (no ingest sink wired), the route still accepts and acknowledges
41
+ * payloads (to keep client exporters happy) but discards the data.
42
+ */
43
+ interface TelemetryIngestSink {
44
+ /** Ingest a batch of log records from an OTLP ExportLogsServiceRequest. */
45
+ ingestLogs(payload: Record<string, unknown>): void;
46
+ /** Ingest a batch of trace spans from an OTLP ExportTraceServiceRequest. */
47
+ ingestTraces(payload: Record<string, unknown>): void;
48
+ /** Ingest a batch of metric data points from an OTLP ExportMetricsServiceRequest. */
49
+ ingestMetrics(payload: Record<string, unknown>): void;
50
+ }
38
51
  interface TelemetryRouteContext {
39
52
  readonly telemetryApi: TelemetryApiLike | null;
40
53
  readonly resolveAuthenticatedPrincipal: (req: Request) => AuthenticatedPrincipal | null;
54
+ /**
55
+ * Sink for OTLP POST receivers. Must be provided by the caller.
56
+ * In production `DaemonHttpRouter` this is the `TelemetryApiService` instance
57
+ * which stores ingested records in its bounded event buffer (default 500
58
+ * records) and makes them observable via GET /api/v1/telemetry/events.
59
+ * Pass `null` only in test/stub contexts where ingestion is intentionally
60
+ * a no-op — the receivers still return 200 to keep OTLP exporters happy but
61
+ * discard the payload.
62
+ */
63
+ readonly ingestSink: TelemetryIngestSink | null;
41
64
  }
42
- export declare function createDaemonTelemetryRouteHandlers(context: TelemetryRouteContext): Pick<DaemonApiRouteHandlers, 'getTelemetrySnapshot' | 'getTelemetryEvents' | 'getTelemetryErrors' | 'getTelemetryTraces' | 'getTelemetryMetrics' | 'createTelemetryEventStream' | 'getTelemetryOtlpTraces' | 'getTelemetryOtlpLogs' | 'getTelemetryOtlpMetrics'>;
65
+ export declare function createDaemonTelemetryRouteHandlers(context: TelemetryRouteContext): Pick<DaemonApiRouteHandlers, 'getTelemetrySnapshot' | 'getTelemetryEvents' | 'getTelemetryErrors' | 'getTelemetryTraces' | 'getTelemetryMetrics' | 'createTelemetryEventStream' | 'getTelemetryOtlpTraces' | 'getTelemetryOtlpLogs' | 'getTelemetryOtlpMetrics' | 'postTelemetryOtlpLogs' | 'postTelemetryOtlpTraces' | 'postTelemetryOtlpMetrics'>;
43
66
  export {};
44
67
  //# sourceMappingURL=telemetry-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-routes.d.ts","sourceRoot":"","sources":["../../../src/_internal/daemon/telemetry-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry-routes.d.ts","sourceRoot":"","sources":["../../../src/_internal/daemon/telemetry-routes.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,63 @@ function buildFilter(url) {
39
39
  ...(parseView(url.searchParams.get('view')) ? { view: parseView(url.searchParams.get('view')) } : {}),
40
40
  };
41
41
  }
42
+ // ---------------------------------------------------------------------------
43
+ // OTLP ingest helpers
44
+ // ---------------------------------------------------------------------------
45
+ /** Max ingest payload (4 MiB) — reject larger bodies with 413 */
46
+ const OTLP_INGEST_MAX_BODY_BYTES = 4 * 1024 * 1024;
47
+ /** Accepted content-types for OTLP/HTTP — JSON only; protobuf returns 415 */
48
+ const OTLP_ACCEPTED_CONTENT_TYPES = [
49
+ 'application/json',
50
+ ];
51
+ const OTLP_PARTIAL_SUCCESS_KEYS = {
52
+ logs: 'partialSuccess',
53
+ traces: 'partialSuccess',
54
+ metrics: 'partialSuccess',
55
+ };
56
+ /**
57
+ * Validate and parse an OTLP HTTP ingest request body.
58
+ * Returns a parsed JSON Record on success, or a Response (error) on failure.
59
+ *
60
+ * Protocol: OTLP/HTTP spec §4.2 — only application/json is accepted in this
61
+ * release. application/x-protobuf returns 415; protobuf decoding is planned
62
+ * for a future release.
63
+ */
64
+ async function parseOtlpBody(req) {
65
+ const contentType = (req.headers.get('content-type') ?? '').toLowerCase().split(';')[0].trim();
66
+ if (!OTLP_ACCEPTED_CONTENT_TYPES.some((ct) => contentType === ct)) {
67
+ return Response.json({
68
+ error: `Unsupported Content-Type '${contentType}' for OTLP ingest`,
69
+ code: 'UNSUPPORTED_MEDIA_TYPE',
70
+ category: 'bad_request',
71
+ hint: `Use 'application/json'. Protobuf decoding is not implemented in this release — planned for a future release.`,
72
+ }, { status: 415 });
73
+ }
74
+ const raw = await req.arrayBuffer();
75
+ if (raw.byteLength > OTLP_INGEST_MAX_BODY_BYTES) {
76
+ return Response.json({
77
+ error: `OTLP ingest payload too large (${raw.byteLength} > ${OTLP_INGEST_MAX_BODY_BYTES} bytes)`,
78
+ code: 'PAYLOAD_TOO_LARGE',
79
+ category: 'bad_request',
80
+ }, { status: 413 });
81
+ }
82
+ try {
83
+ const text = new TextDecoder().decode(raw);
84
+ const parsed = JSON.parse(text);
85
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
86
+ return Response.json({ error: 'OTLP ingest body must be a JSON object', code: 'INVALID_PAYLOAD', category: 'bad_request' }, { status: 400 });
87
+ }
88
+ return parsed;
89
+ }
90
+ catch {
91
+ return Response.json({ error: 'OTLP ingest body is not valid JSON', code: 'INVALID_PAYLOAD', category: 'bad_request' }, { status: 400 });
92
+ }
93
+ }
94
+ function otlpIngestSuccess(kind) {
95
+ // Per OTLP/HTTP spec: respond with ExportXxxServiceResponse shape.
96
+ // partialSuccess omitted when empty (all records accepted).
97
+ return Response.json({ [OTLP_PARTIAL_SUCCESS_KEYS[kind]]: {} });
98
+ }
42
99
  function unavailable() {
43
100
  return Response.json({
44
101
  error: 'Telemetry API unavailable',
@@ -223,5 +280,41 @@ export function createDaemonTelemetryRouteHandlers(context) {
223
280
  return access;
224
281
  return Response.json(context.telemetryApi.buildOtlpMetricDocument());
225
282
  },
283
+ // -------------------------------------------------------------------------
284
+ // OTLP POST ingest receivers
285
+ // -------------------------------------------------------------------------
286
+ postTelemetryOtlpLogs: async (req) => {
287
+ const auth = context.resolveAuthenticatedPrincipal(req);
288
+ if (!auth) {
289
+ return Response.json({ error: 'Authentication required for OTLP ingest', code: 'AUTH_REQUIRED', category: 'authentication', status: 401 }, { status: 401 });
290
+ }
291
+ const bodyOrErr = await parseOtlpBody(req);
292
+ if (bodyOrErr instanceof Response)
293
+ return bodyOrErr;
294
+ context.ingestSink?.ingestLogs(bodyOrErr);
295
+ return otlpIngestSuccess('logs');
296
+ },
297
+ postTelemetryOtlpTraces: async (req) => {
298
+ const auth = context.resolveAuthenticatedPrincipal(req);
299
+ if (!auth) {
300
+ return Response.json({ error: 'Authentication required for OTLP ingest', code: 'AUTH_REQUIRED', category: 'authentication', status: 401 }, { status: 401 });
301
+ }
302
+ const bodyOrErr = await parseOtlpBody(req);
303
+ if (bodyOrErr instanceof Response)
304
+ return bodyOrErr;
305
+ context.ingestSink?.ingestTraces(bodyOrErr);
306
+ return otlpIngestSuccess('traces');
307
+ },
308
+ postTelemetryOtlpMetrics: async (req) => {
309
+ const auth = context.resolveAuthenticatedPrincipal(req);
310
+ if (!auth) {
311
+ return Response.json({ error: 'Authentication required for OTLP ingest', code: 'AUTH_REQUIRED', category: 'authentication', status: 401 }, { status: 401 });
312
+ }
313
+ const bodyOrErr = await parseOtlpBody(req);
314
+ if (bodyOrErr instanceof Response)
315
+ return bodyOrErr;
316
+ context.ingestSink?.ingestMetrics(bodyOrErr);
317
+ return otlpIngestSuccess('metrics');
318
+ },
226
319
  };
227
320
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/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;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAsE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACvI,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,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,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;AAIrE,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAyB5F,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;AAItF,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IACvD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;IAClE,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;IACjE,QAAQ,CAAC,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;IAC/E,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IACpD,QAAQ,CAAC,2BAA2B,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9G,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC;IACtG,QAAQ,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK;QAC1D,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;QACpD,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KAC3B,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE;QACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,OAAO,CAAC,EAAE;YACjB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;YAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;YACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;YACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;SAC9B,CAAC;KACH,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC9D,QAAQ,CAAC,4BAA4B,EAAE,CACrC,OAAO,EAAE,OAAO,kDAAkD,EAAE,sBAAsB,GAAG,SAAS,EACtG,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KACpF,IAAI,CAAC;IACV,QAAQ,CAAC,sBAAsB,EAAE,CAC/B,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,KACtK,OAAO,CAAC;IACb,QAAQ,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,4BAA4B,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtH,QAAQ,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,4BAA4B,EAAE,WAAW,KAAK,IAAI,CAAC;IACnG;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,uCAAuC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACtG;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5D;;;;;OAKG;IACH,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxF;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,yBAAyB,EAAE,cAAc,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;IAC/F,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3C,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,4BAA4B,EAAE,WAAW,GAAG,QAAQ,CAAC;CAClE;AAED,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;gBAE7B,OAAO,EAAE,uBAAuB;IAS7D,OAAO,IAAI,IAAI;IAIT,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiF9C,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAyQzD,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC;IAQ3D,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;IAMhF,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ;IAQrD,iBAAiB,CACf,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,UAAU,GACN,KAAK,GACL,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,GACT,UAAU,GACV,aAAa,GACb,QAAQ,GACR,UAAU,GACV,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,QAAgB,GACnB,QAAQ;YAWG,WAAW;YA6BX,mBAAmB;IAQ3B,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAInD,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIlD,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;CAG5D"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/daemon/http/router.ts"],"names":[],"mappings":"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"}
@@ -192,6 +192,7 @@ export class DaemonHttpRouter {
192
192
  const token = this.context.extractAuthToken(request);
193
193
  return token ? this.context.describeAuthenticatedPrincipal(token) : null;
194
194
  },
195
+ ingestSink: this.telemetryApi,
195
196
  }),
196
197
  ...createDaemonChannelRouteHandlers({
197
198
  ...buildChannelRouteContext({
@@ -18,19 +18,19 @@ export interface CompanionTokenRecord {
18
18
  readonly createdAt: number;
19
19
  }
20
20
  /**
21
- * Load the stored companion token for a surface, or generate and persist a new one.
21
+ * Load the stored companion token, or generate and persist a new one.
22
+ * Token is always written to <daemonHomeDir>/operator-tokens.json at mode 0600.
22
23
  */
23
- export declare function getOrCreateCompanionToken(surface: string, options?: {
24
- basePath?: string;
25
- daemonHomeDir?: string;
24
+ export declare function getOrCreateCompanionToken(surface: string, options: {
25
+ daemonHomeDir: string;
26
26
  regenerate?: boolean;
27
27
  }): CompanionPairingResult;
28
28
  /**
29
- * Regenerate the companion token for a surface, replacing any existing token.
29
+ * Regenerate the companion token, replacing any existing token.
30
+ * Written to <daemonHomeDir>/operator-tokens.json at mode 0600.
30
31
  */
31
- export declare function regenerateCompanionToken(surface: string, options?: {
32
- basePath?: string;
33
- daemonHomeDir?: string;
32
+ export declare function regenerateCompanionToken(surface: string, options: {
33
+ daemonHomeDir: string;
34
34
  }): CompanionPairingResult;
35
35
  /**
36
36
  * Build a CompanionConnectionInfo object from raw parameters.
@@ -1 +1 @@
1
- {"version":3,"file":"companion-token.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/pairing/companion-token.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AA4CD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5E,sBAAsB,CAyBxB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,sBAAsB,CAExB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,uBAAuB,CAS1B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAS7E"}
1
+ {"version":3,"file":"companion-token.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/pairing/companion-token.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAyBD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACvD,sBAAsB,CA6BxB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACjC,sBAAsB,CAExB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,uBAAuB,CAS1B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAS7E"}
@@ -1,5 +1,5 @@
1
1
  import { randomBytes } from 'node:crypto';
2
- import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
2
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, chmodSync } from 'node:fs';
3
3
  import { join, dirname } from 'node:path';
4
4
  const TOKEN_PREFIX = 'gv_';
5
5
  function generateTokenValue() {
@@ -9,41 +9,25 @@ function generatePeerId() {
9
9
  return randomBytes(12).toString('hex');
10
10
  }
11
11
  /**
12
- * Resolve the token store path.
12
+ * Resolve the operator token store path.
13
13
  *
14
- * Resolution order (first match wins):
15
- * 1. daemonHomeDir daemon-identity-scoped path (0.21.19+, recommended)
16
- * 2. basePath workspace-scoped path (0.21.17–0.21.18 layout, legacy fallback)
17
- * 3. process.cwd() — absolute fallback
14
+ * The only valid location is <daemonHomeDir>/operator-tokens.json.
15
+ * Operator tokens are global (daemon-home scoped) since 0.21.28.
16
+ * No workspace-scoped fallback exists.
18
17
  *
19
- * Storing tokens under daemonHomeDir means workspace swaps never invalidate
20
- * paired companions — a token paired once works regardless of which working
21
- * directory the daemon is currently serving.
18
+ * @throws {Error} when daemonHomeDir is not provided all callers must supply it.
22
19
  */
23
- function resolveSharedTokenPath(basePath, daemonHomeDir) {
24
- if (daemonHomeDir) {
25
- return join(daemonHomeDir, 'operator-tokens.json');
26
- }
27
- const base = basePath ?? process.cwd();
28
- return join(base, '.goodvibes', 'operator-tokens.json');
20
+ function resolveSharedTokenPath(daemonHomeDir) {
21
+ return join(daemonHomeDir, 'operator-tokens.json');
29
22
  }
30
23
  /**
31
- * Resolve the path to the companion token file.
32
- *
33
- * Always resolves to the shared workspace-level path regardless of surface,
34
- * so that tokens are portable across TUI-embedded and standalone daemon postures.
35
- *
36
- * @deprecated `surface` parameter is ignored; use {@link resolveSharedTokenPath} directly.
37
- */
38
- function resolveTokenPath(_surface, basePath, daemonHomeDir) {
39
- return resolveSharedTokenPath(basePath, daemonHomeDir);
40
- }
41
- /**
42
- * Load the stored companion token for a surface, or generate and persist a new one.
24
+ * Load the stored companion token, or generate and persist a new one.
25
+ * Token is always written to <daemonHomeDir>/operator-tokens.json at mode 0600.
43
26
  */
44
27
  export function getOrCreateCompanionToken(surface, options) {
45
- const tokenPath = resolveTokenPath(surface, options?.basePath, options?.daemonHomeDir);
46
- if (!options?.regenerate && existsSync(tokenPath)) {
28
+ void surface; // surface parameter retained for API compatibility; token path is global
29
+ const tokenPath = resolveSharedTokenPath(options.daemonHomeDir);
30
+ if (!options.regenerate && existsSync(tokenPath)) {
47
31
  try {
48
32
  const raw = readFileSync(tokenPath, 'utf-8');
49
33
  const record = JSON.parse(raw);
@@ -60,12 +44,19 @@ export function getOrCreateCompanionToken(surface, options) {
60
44
  peerId: generatePeerId(),
61
45
  createdAt: Date.now(),
62
46
  };
63
- mkdirSync(dirname(tokenPath), { recursive: true });
64
- writeFileSync(tokenPath, JSON.stringify(record, null, 2), 'utf-8');
47
+ const dir = dirname(tokenPath);
48
+ mkdirSync(dir, { recursive: true });
49
+ // Write with mode 0600 (owner read/write only) and enforce after write
50
+ writeFileSync(tokenPath, JSON.stringify(record, null, 2), { encoding: 'utf-8', mode: 0o600 });
51
+ try {
52
+ chmodSync(tokenPath, 0o600);
53
+ }
54
+ catch { /* best-effort */ }
65
55
  return { token: record.token, peerId: record.peerId, createdAt: record.createdAt };
66
56
  }
67
57
  /**
68
- * Regenerate the companion token for a surface, replacing any existing token.
58
+ * Regenerate the companion token, replacing any existing token.
59
+ * Written to <daemonHomeDir>/operator-tokens.json at mode 0600.
69
60
  */
70
61
  export function regenerateCompanionToken(surface, options) {
71
62
  return getOrCreateCompanionToken(surface, { ...options, regenerate: true });
@@ -173,6 +173,45 @@ export declare class TelemetryApiService {
173
173
  private recordMatches;
174
174
  private resolveCursor;
175
175
  private resolveSpanCursor;
176
+ /**
177
+ * Implement TelemetryIngestSink.ingestLogs — delegates to ingestExternalLogs.
178
+ * Satisfies the interface expected by DaemonHttpRouterContext.ingestSink.
179
+ */
180
+ ingestLogs(payload: Record<string, unknown>): void;
181
+ /**
182
+ * Implement TelemetryIngestSink.ingestTraces — delegates to ingestExternalTraces.
183
+ */
184
+ ingestTraces(payload: Record<string, unknown>): void;
185
+ /**
186
+ * Implement TelemetryIngestSink.ingestMetrics — delegates to ingestExternalMetrics.
187
+ */
188
+ ingestMetrics(payload: Record<string, unknown>): void;
189
+ /**
190
+ * Ingest an externally-received OTLP log payload into this service's event
191
+ * buffer. Each entry in `resourceLogs[].scopeLogs[].logRecords[]` is mapped
192
+ * to a TelemetryRecord and appended to `this.records` with domain 'telemetry'.
193
+ * Records are bounded by eventLimit (default 500). Subscribers are notified.
194
+ * Call is synchronous and never throws.
195
+ */
196
+ ingestExternalLogs(payload: Record<string, unknown>): void;
197
+ /**
198
+ * Ingest an externally-received OTLP trace payload into this service's span
199
+ * buffer. Each entry in `resourceSpans[].scopeSpans[].spans[]` is mapped
200
+ * to a ReadableSpan and appended to `this.spans`, bounded by spanLimit.
201
+ */
202
+ ingestExternalTraces(payload: Record<string, unknown>): void;
203
+ /**
204
+ * Ingest an externally-received OTLP metrics payload. Creates a synthetic
205
+ * TelemetryRecord tagged 'OTLP_METRICS_INGEST' and appends it to the event
206
+ * buffer so it is visible on GET /api/v1/telemetry/events.
207
+ * Sentinel is only emitted when at least one metric datapoint is present.
208
+ */
209
+ ingestExternalMetrics(payload: Record<string, unknown>): void;
210
+ /**
211
+ * Build a synthetic TelemetryRecord for an externally-ingested OTLP payload.
212
+ * Domain is always 'telemetry'; source is 'otlp-ingest'.
213
+ */
214
+ private buildIngestedRecord;
176
215
  private notify;
177
216
  }
178
217
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/telemetry/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/telemetry/api.ts"],"names":[],"mappings":"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"}
@@ -522,6 +522,170 @@ export class TelemetryApiService {
522
522
  return index;
523
523
  throw new Error(`Invalid telemetry cursor: ${cursor}`);
524
524
  }
525
+ /**
526
+ * Implement TelemetryIngestSink.ingestLogs — delegates to ingestExternalLogs.
527
+ * Satisfies the interface expected by DaemonHttpRouterContext.ingestSink.
528
+ */
529
+ ingestLogs(payload) {
530
+ this.ingestExternalLogs(payload);
531
+ }
532
+ /**
533
+ * Implement TelemetryIngestSink.ingestTraces — delegates to ingestExternalTraces.
534
+ */
535
+ ingestTraces(payload) {
536
+ this.ingestExternalTraces(payload);
537
+ }
538
+ /**
539
+ * Implement TelemetryIngestSink.ingestMetrics — delegates to ingestExternalMetrics.
540
+ */
541
+ ingestMetrics(payload) {
542
+ this.ingestExternalMetrics(payload);
543
+ }
544
+ /**
545
+ * Ingest an externally-received OTLP log payload into this service's event
546
+ * buffer. Each entry in `resourceLogs[].scopeLogs[].logRecords[]` is mapped
547
+ * to a TelemetryRecord and appended to `this.records` with domain 'telemetry'.
548
+ * Records are bounded by eventLimit (default 500). Subscribers are notified.
549
+ * Call is synchronous and never throws.
550
+ */
551
+ ingestExternalLogs(payload) {
552
+ const resourceLogs = Array.isArray(payload['resourceLogs']) ? payload['resourceLogs'] : [];
553
+ for (const resource of resourceLogs) {
554
+ const scopeLogs = typeof resource === 'object' && resource !== null && Array.isArray(resource['scopeLogs'])
555
+ ? resource['scopeLogs']
556
+ : [];
557
+ for (const scope of scopeLogs) {
558
+ const logRecords = typeof scope === 'object' && scope !== null && Array.isArray(scope['logRecords'])
559
+ ? scope['logRecords']
560
+ : [];
561
+ for (const lr of logRecords) {
562
+ const entry = typeof lr === 'object' && lr !== null ? lr : {};
563
+ const record = this.buildIngestedRecord('OTLP_LOG_INGEST', entry);
564
+ appendBounded(this.records, record, this.eventLimit);
565
+ this.eventCountsByDomain.set('ops', (this.eventCountsByDomain.get('ops') ?? 0) + 1);
566
+ this.eventCountsByType.set('OTLP_LOG_INGEST', (this.eventCountsByType.get('OTLP_LOG_INGEST') ?? 0) + 1);
567
+ this.notify(record);
568
+ }
569
+ }
570
+ }
571
+ }
572
+ /**
573
+ * Ingest an externally-received OTLP trace payload into this service's span
574
+ * buffer. Each entry in `resourceSpans[].scopeSpans[].spans[]` is mapped
575
+ * to a ReadableSpan and appended to `this.spans`, bounded by spanLimit.
576
+ */
577
+ ingestExternalTraces(payload) {
578
+ const resourceSpans = Array.isArray(payload['resourceSpans']) ? payload['resourceSpans'] : [];
579
+ let spansAppended = 0;
580
+ for (const resource of resourceSpans) {
581
+ const scopeSpans = typeof resource === 'object' && resource !== null && Array.isArray(resource['scopeSpans'])
582
+ ? resource['scopeSpans']
583
+ : [];
584
+ for (const scope of scopeSpans) {
585
+ const spans = typeof scope === 'object' && scope !== null && Array.isArray(scope['spans'])
586
+ ? scope['spans']
587
+ : [];
588
+ for (const sp of spans) {
589
+ const entry = typeof sp === 'object' && sp !== null ? sp : {};
590
+ const traceId = typeof entry['traceId'] === 'string' ? entry['traceId'] : normalizeTraceId(undefined);
591
+ const spanId = typeof entry['spanId'] === 'string' ? entry['spanId'] : buildSpanId(`otlp:${this.seq}`);
592
+ const name = typeof entry['name'] === 'string' ? entry['name'] : 'otlp.span';
593
+ const startMs = typeof entry['startTimeUnixNano'] === 'number' ? Math.floor(entry['startTimeUnixNano'] / 1_000_000) : Date.now();
594
+ const endMs = typeof entry['endTimeUnixNano'] === 'number' ? Math.floor(entry['endTimeUnixNano'] / 1_000_000) : startMs;
595
+ const span = {
596
+ name,
597
+ kind: SpanKinds.INTERNAL,
598
+ spanContext: { traceId, spanId, isValid: true },
599
+ startTimeMs: startMs,
600
+ endTimeMs: endMs,
601
+ durationMs: endMs - startMs,
602
+ attributes: {},
603
+ events: [],
604
+ status: { code: SpanStatusCode.UNSET },
605
+ instrumentationScope: 'otlp-ingest',
606
+ };
607
+ appendBounded(this.spans, span, this.spanLimit);
608
+ spansAppended++;
609
+ }
610
+ }
611
+ }
612
+ // Push a sentinel record into the event buffer only when at least one span
613
+ // was appended — empty payloads must not produce false-positive observability
614
+ // events on GET /api/v1/telemetry/events.
615
+ if (spansAppended === 0)
616
+ return;
617
+ const record = this.buildIngestedRecord('OTLP_TRACE_INGEST', payload);
618
+ appendBounded(this.records, record, this.eventLimit);
619
+ this.eventCountsByDomain.set('ops', (this.eventCountsByDomain.get('ops') ?? 0) + 1);
620
+ this.eventCountsByType.set('OTLP_TRACE_INGEST', (this.eventCountsByType.get('OTLP_TRACE_INGEST') ?? 0) + 1);
621
+ this.notify(record);
622
+ }
623
+ /**
624
+ * Ingest an externally-received OTLP metrics payload. Creates a synthetic
625
+ * TelemetryRecord tagged 'OTLP_METRICS_INGEST' and appends it to the event
626
+ * buffer so it is visible on GET /api/v1/telemetry/events.
627
+ * Sentinel is only emitted when at least one metric datapoint is present.
628
+ */
629
+ ingestExternalMetrics(payload) {
630
+ // Count datapoints across all resourceMetrics -> scopeMetrics -> metrics -> dataPoints.
631
+ const resourceMetrics = Array.isArray(payload['resourceMetrics']) ? payload['resourceMetrics'] : [];
632
+ let datapointsFound = 0;
633
+ for (const resource of resourceMetrics) {
634
+ const scopeMetrics = typeof resource === 'object' && resource !== null && Array.isArray(resource['scopeMetrics'])
635
+ ? resource['scopeMetrics']
636
+ : [];
637
+ for (const scope of scopeMetrics) {
638
+ const metrics = typeof scope === 'object' && scope !== null && Array.isArray(scope['metrics'])
639
+ ? scope['metrics']
640
+ : [];
641
+ for (const metric of metrics) {
642
+ if (typeof metric !== 'object' || metric === null)
643
+ continue;
644
+ const m = metric;
645
+ // Datapoints may live under sum, gauge, histogram, exponentialHistogram, or summary.
646
+ for (const signalKey of ['sum', 'gauge', 'histogram', 'exponentialHistogram', 'summary']) {
647
+ const signal = m[signalKey];
648
+ if (typeof signal === 'object' && signal !== null) {
649
+ const dp = signal['dataPoints'];
650
+ if (Array.isArray(dp))
651
+ datapointsFound += dp.length;
652
+ }
653
+ }
654
+ }
655
+ }
656
+ }
657
+ // Emit sentinel only when at least one datapoint was present — empty
658
+ // payloads must not produce false-positive observability events.
659
+ if (datapointsFound === 0)
660
+ return;
661
+ const record = this.buildIngestedRecord('OTLP_METRICS_INGEST', payload);
662
+ appendBounded(this.records, record, this.eventLimit);
663
+ this.eventCountsByDomain.set('ops', (this.eventCountsByDomain.get('ops') ?? 0) + 1);
664
+ this.eventCountsByType.set('OTLP_METRICS_INGEST', (this.eventCountsByType.get('OTLP_METRICS_INGEST') ?? 0) + 1);
665
+ this.notify(record);
666
+ }
667
+ /**
668
+ * Build a synthetic TelemetryRecord for an externally-ingested OTLP payload.
669
+ * Domain is always 'telemetry'; source is 'otlp-ingest'.
670
+ */
671
+ buildIngestedRecord(type, payload) {
672
+ const domain = 'ops';
673
+ const now = Date.now();
674
+ const seq = this.seq++;
675
+ return {
676
+ id: `${domain}:${type}:${now}:${seq}`,
677
+ domain,
678
+ type,
679
+ timestamp: now,
680
+ severity: 'info',
681
+ traceId: normalizeTraceId(undefined),
682
+ sessionId: '',
683
+ source: 'otlp-ingest',
684
+ message: `OTLP ingest: ${type}`,
685
+ payload,
686
+ attributes: {},
687
+ };
688
+ }
525
689
  notify(record) {
526
690
  for (const subscriber of this.subscribers) {
527
691
  try {
@@ -1,5 +1,18 @@
1
1
  import type { MemoryClass, MemoryRecord, MemoryReviewState, MemoryScope } from './memory-store.js';
2
2
  import { MemoryEmbeddingProviderRegistry } from './memory-embeddings.js';
3
+ /**
4
+ * Resolves the path to the sqlite-vec native extension.
5
+ *
6
+ * When running inside a Bun bundled executable (import.meta.url path contains
7
+ * "$bunfs"), the npm package's import.meta.resolve() cannot find the extension
8
+ * because the virtual filesystem does not contain node_modules. In that case,
9
+ * the extension must be co-located with the binary under
10
+ * `<execDir>/lib/sqlite-vec-<os>-<arch>/vec0.<suffix>`.
11
+ *
12
+ * In development (bun run / node), the package's own getLoadablePath() is used
13
+ * via the re-exported `load()` function.
14
+ */
15
+ export declare function resolveSqliteVecPath(): string;
3
16
  export declare const MEMORY_VECTOR_DIMS = 384;
4
17
  export { embedMemoryText } from './memory-embeddings.js';
5
18
  export interface MemoryVectorSearchFilter {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-vector-store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/memory-vector-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EACL,+BAA+B,EAGhC,MAAM,wBAAwB,CAAC;AAOhC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAenE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CASrE;AAED,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IATpC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;gBAG3B,MAAM,EAAE,MAAM,EACd,UAAU,oBAAqB,EAC/B,iBAAiB,EAAE,+BAA+B;IAGrE,IAAI,IAAI,IAAI;IAoBZ,KAAK,IAAI,iBAAiB;IAe1B,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAQ5B,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IActD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU9B,IAAI,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI;IAyBtC,SAAS,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDnG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,wBAA6B,GAAG,qBAAqB,EAAE;IAkDrF,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,WAAW;CA2BpB"}
1
+ {"version":3,"file":"memory-vector-store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/memory-vector-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EACL,+BAA+B,EAGhC,MAAM,wBAAwB,CAAC;AAIhC;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAkBD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAenE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CASrE;AAED,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IATpC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;gBAG3B,MAAM,EAAE,MAAM,EACd,UAAU,oBAAqB,EAC/B,iBAAiB,EAAE,+BAA+B;IAGrE,IAAI,IAAI,IAAI;IAoBZ,KAAK,IAAI,iBAAiB;IAe1B,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAQ5B,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IActD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU9B,IAAI,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI;IAyBtC,SAAS,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDnG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,wBAA6B,GAAG,qBAAqB,EAAE;IAkDrF,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,WAAW;CA2BpB"}
@@ -1,11 +1,47 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { dirname } from 'node:path';
2
+ import { dirname, join } from 'node:path';
3
3
  import { mkdirSync } from 'node:fs';
4
4
  import { Database } from 'bun:sqlite';
5
5
  import { load as loadSqliteVec } from 'sqlite-vec';
6
6
  import { MemoryEmbeddingProviderRegistry, embedMemoryText, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
7
7
  import { logger } from '../utils/logger.js';
8
8
  import { summarizeError } from '../utils/error-display.js';
9
+ /**
10
+ * Resolves the path to the sqlite-vec native extension.
11
+ *
12
+ * When running inside a Bun bundled executable (import.meta.url path contains
13
+ * "$bunfs"), the npm package's import.meta.resolve() cannot find the extension
14
+ * because the virtual filesystem does not contain node_modules. In that case,
15
+ * the extension must be co-located with the binary under
16
+ * `<execDir>/lib/sqlite-vec-<os>-<arch>/vec0.<suffix>`.
17
+ *
18
+ * In development (bun run / node), the package's own getLoadablePath() is used
19
+ * via the re-exported `load()` function.
20
+ */
21
+ export function resolveSqliteVecPath() {
22
+ const isBundled = import.meta.url.includes('$bunfs');
23
+ if (isBundled) {
24
+ const os = process.platform === 'win32' ? 'windows' : process.platform;
25
+ const arch = process.arch;
26
+ const suffix = process.platform === 'win32' ? 'dll' : process.platform === 'darwin' ? 'dylib' : 'so';
27
+ return join(dirname(process.execPath), 'lib', `sqlite-vec-${os}-${arch}`, `vec0.${suffix}`);
28
+ }
29
+ // In dev mode, delegate to sqlite-vec's own resolver.
30
+ return '';
31
+ }
32
+ /**
33
+ * Loads the sqlite-vec extension into a Bun SQLite database.
34
+ * Handles both bundled-binary and development execution contexts.
35
+ */
36
+ function loadSqliteVecExtension(db) {
37
+ const bundledPath = resolveSqliteVecPath();
38
+ if (bundledPath) {
39
+ db.loadExtension(bundledPath);
40
+ }
41
+ else {
42
+ loadSqliteVec(db);
43
+ }
44
+ }
9
45
  // Keep this in sync with DEFAULT_MEMORY_EMBEDDING_DIMS in memory-embeddings.ts.
10
46
  // Duplicating the literal here avoids an initialization cycle when state/index.ts
11
47
  // re-exports both modules during targeted test imports.
@@ -68,7 +104,7 @@ export class SqliteVecMemoryIndex {
68
104
  mkdirSync(dirname(this.dbPath), { recursive: true });
69
105
  }
70
106
  this.db = new Database(this.dbPath);
71
- loadSqliteVec(this.db);
107
+ loadSqliteVecExtension(this.db);
72
108
  this.available = true;
73
109
  this.enabled = true;
74
110
  this.createSchema();
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.21.26';
3
+ let version = '0.21.28';
4
4
  try {
5
5
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
6
6
  version = pkg.version ?? version;
@@ -18,7 +18,8 @@
18
18
  * - If ~/.goodvibes/daemon/ does not exist:
19
19
  * - ~/.goodvibes/tui/auth-users.json → ~/.goodvibes/daemon/auth-users.json
20
20
  * - ~/.goodvibes/tui/auth-bootstrap.txt → ~/.goodvibes/daemon/auth-bootstrap.txt
21
- * - <cwd>/.goodvibes/operator-tokens.json ~/.goodvibes/daemon/operator-tokens.json (F3 revision)
21
+ * - Operator tokens are global-only: read/written exclusively at
22
+ * <daemonHomeDir>/operator-tokens.json. No workspace-scoped paths.
22
23
  * - Old paths are left intact (never deleted) to avoid breaking older binaries.
23
24
  */
24
25
  import type { RuntimeEventBus } from '../runtime/events/index.js';
@@ -31,8 +32,6 @@ export interface DaemonHomeDirs {
31
32
  export interface DaemonHomeOptions {
32
33
  /** Value of --daemon-home CLI flag, if provided. */
33
34
  readonly daemonHomeArg?: string | undefined;
34
- /** Current working directory, used as base for operator-tokens migration. */
35
- readonly cwd?: string;
36
35
  /** Override process.env for testing. */
37
36
  readonly env?: NodeJS.ProcessEnv;
38
37
  }
@@ -48,14 +47,36 @@ export interface DaemonHomeMigrationDeps {
48
47
  * Resolve the daemon home directory from CLI flag, environment variable, or default.
49
48
  */
50
49
  export declare function resolveDaemonHomeDir(options?: DaemonHomeOptions): string;
50
+ /**
51
+ * Returns the single canonical path for operator tokens.
52
+ * All reads and writes MUST use this path. No workspace-scoped fallback exists.
53
+ */
54
+ export declare function resolveOperatorTokenPath(daemonHomeDir: string): string;
51
55
  /**
52
56
  * Run migration if the daemon home directory does not yet exist.
53
57
  * Creates the directory and copies identity files from legacy paths if found.
54
58
  * Old files are NOT deleted.
55
59
  *
60
+ * Operator tokens are NOT migrated from workspace-scoped paths — the global
61
+ * daemon-home path is canonical since 0.21.28. If tokens are missing,
62
+ * the first pairing operation will create them at the global path.
63
+ *
56
64
  * Returns `freshInstall: true` when migration ran, `false` when the dir already existed.
57
65
  */
58
66
  export declare function runDaemonHomeMigration(daemonHomeDir: string, options?: DaemonHomeOptions, deps?: DaemonHomeMigrationDeps): DaemonHomeDirs;
67
+ /**
68
+ * Write operator tokens to the global daemon-home path with mode 0600.
69
+ * All token provisioning MUST go through this function.
70
+ *
71
+ * Uses a write-to-tmp-then-rename pattern for atomicity.
72
+ * Applies chmod 0600 after rename so the file is never world-readable.
73
+ */
74
+ export declare function writeOperatorTokenFile(daemonHomeDir: string, content: string): void;
75
+ /**
76
+ * Read operator tokens from the global daemon-home path.
77
+ * Returns undefined when the file does not exist or cannot be parsed.
78
+ */
79
+ export declare function readOperatorTokenFile(daemonHomeDir: string): string | undefined;
59
80
  /**
60
81
  * Read a single key from daemon-settings.json, or return undefined if missing.
61
82
  */
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-home.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workspace/daemon-home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAC;AAOxF,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAiB5E;AAMD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iBAAsB,EAC/B,IAAI,GAAE,uBAA4B,GACjC,cAAc,CAoFhB;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWxF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAc1F"}
1
+ {"version":3,"file":"daemon-home.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workspace/daemon-home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAC;AAOxF,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAiB5E;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEtE;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iBAAsB,EAC/B,IAAI,GAAE,uBAA4B,GACjC,cAAc,CA+BhB;AAMD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CASnF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWxF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAc1F"}
@@ -18,10 +18,11 @@
18
18
  * - If ~/.goodvibes/daemon/ does not exist:
19
19
  * - ~/.goodvibes/tui/auth-users.json → ~/.goodvibes/daemon/auth-users.json
20
20
  * - ~/.goodvibes/tui/auth-bootstrap.txt → ~/.goodvibes/daemon/auth-bootstrap.txt
21
- * - <cwd>/.goodvibes/operator-tokens.json ~/.goodvibes/daemon/operator-tokens.json (F3 revision)
21
+ * - Operator tokens are global-only: read/written exclusively at
22
+ * <daemonHomeDir>/operator-tokens.json. No workspace-scoped paths.
22
23
  * - Old paths are left intact (never deleted) to avoid breaking older binaries.
23
24
  */
24
- import { existsSync, mkdirSync, copyFileSync, readFileSync, writeFileSync, renameSync, readdirSync } from 'node:fs';
25
+ import { existsSync, mkdirSync, copyFileSync, readFileSync, writeFileSync, renameSync, chmodSync } from 'node:fs';
25
26
  import { join, isAbsolute, resolve, dirname } from 'node:path';
26
27
  import { homedir } from 'node:os';
27
28
  import { logger } from '../utils/logger.js';
@@ -49,6 +50,16 @@ export function resolveDaemonHomeDir(options = {}) {
49
50
  return join(homedir(), '.goodvibes', 'daemon');
50
51
  }
51
52
  // ---------------------------------------------------------------------------
53
+ // Global operator token path
54
+ // ---------------------------------------------------------------------------
55
+ /**
56
+ * Returns the single canonical path for operator tokens.
57
+ * All reads and writes MUST use this path. No workspace-scoped fallback exists.
58
+ */
59
+ export function resolveOperatorTokenPath(daemonHomeDir) {
60
+ return join(daemonHomeDir, 'operator-tokens.json');
61
+ }
62
+ // ---------------------------------------------------------------------------
52
63
  // One-time migration
53
64
  // ---------------------------------------------------------------------------
54
65
  /**
@@ -56,6 +67,10 @@ export function resolveDaemonHomeDir(options = {}) {
56
67
  * Creates the directory and copies identity files from legacy paths if found.
57
68
  * Old files are NOT deleted.
58
69
  *
70
+ * Operator tokens are NOT migrated from workspace-scoped paths — the global
71
+ * daemon-home path is canonical since 0.21.28. If tokens are missing,
72
+ * the first pairing operation will create them at the global path.
73
+ *
59
74
  * Returns `freshInstall: true` when migration ran, `false` when the dir already existed.
60
75
  */
61
76
  export function runDaemonHomeMigration(daemonHomeDir, options = {}, deps = {}) {
@@ -66,7 +81,6 @@ export function runDaemonHomeMigration(daemonHomeDir, options = {}, deps = {}) {
66
81
  // Create the daemon home directory tree
67
82
  mkdirSync(daemonHomeDir, { recursive: true });
68
83
  const userGoodVibesRoot = join(homedir(), '.goodvibes');
69
- const cwd = options.cwd ?? process.cwd();
70
84
  // Migrate auth-users.json from tui surface path
71
85
  const legacyAuthUsers = join(userGoodVibesRoot, 'tui', 'auth-users.json');
72
86
  if (existsSync(legacyAuthUsers)) {
@@ -77,67 +91,52 @@ export function runDaemonHomeMigration(daemonHomeDir, options = {}, deps = {}) {
77
91
  if (existsSync(legacyBootstrap)) {
78
92
  safeCopy(legacyBootstrap, join(daemonHomeDir, 'auth-bootstrap.txt'));
79
93
  }
80
- // Migrate operator-tokens.json search multiple legacy paths (F3 revision).
81
- // 0.21.17 used <cwd>/.goodvibes/operator-tokens.json (workspace-scoped).
82
- // 0.21.16 and earlier used surface-scoped ~/.goodvibes/<surface>/companion-token.json.
83
- // 0.21.19+ canonical path is <daemonHomeDir>/operator-tokens.json.
84
- const destTokenPath = join(daemonHomeDir, 'operator-tokens.json');
85
- if (!existsSync(destTokenPath)) {
86
- // Priority 1: workspace-scoped path from 0.21.17
87
- const legacyWorkspaceTokens = join(cwd, '.goodvibes', 'operator-tokens.json');
88
- // Priority 2: surface-scoped legacy tokens from 0.21.16 and earlier
89
- const legacySurfaceToken = join(userGoodVibesRoot, 'tui', 'companion-token.json');
90
- // Priority 3: XDG data home if set
91
- const xdgDataHome = options.env?.['XDG_DATA_HOME'];
92
- const xdgToken = xdgDataHome ? join(xdgDataHome, 'goodvibes', 'operator-tokens.json') : null;
93
- // Scan for any surface-scoped companion-token.json files under ~/.goodvibes/
94
- const surfaceScopedTokens = [];
95
- try {
96
- const entries = readdirSync(userGoodVibesRoot, { withFileTypes: true });
97
- for (const entry of entries) {
98
- if (entry.isDirectory()) {
99
- const candidate = join(userGoodVibesRoot, entry.name, 'companion-token.json');
100
- if (existsSync(candidate))
101
- surfaceScopedTokens.push(candidate);
102
- }
103
- }
104
- }
105
- catch {
106
- // Best-effort scan
107
- }
108
- const tokenSources = [
109
- legacyWorkspaceTokens,
110
- ...(xdgToken ? [xdgToken] : []),
111
- legacySurfaceToken,
112
- ...surfaceScopedTokens,
113
- ];
114
- for (const src of tokenSources) {
115
- if (!existsSync(src))
116
- continue;
117
- // Validate JSON before copying — corrupt JSON must not be migrated.
118
- try {
119
- JSON.parse(readFileSync(src, 'utf-8'));
120
- }
121
- catch (parseErr) {
122
- const reason = parseErr instanceof Error ? parseErr.message : String(parseErr);
123
- logger.warn('daemon-home: skipping corrupt token file during migration', {
124
- sourcePath: src,
125
- reason,
126
- });
127
- _emitMigrationEvent(deps.runtimeBus, { type: 'WORKSPACE_IDENTITY_MIGRATION_FAILED', sourcePath: src, reason });
128
- safeCopy(src, destTokenPath, { skipIfInvalid: true });
129
- continue;
130
- }
131
- if (safeCopy(src, destTokenPath)) {
132
- logger.info('daemon-home: migrated operator token', { from: src, to: destTokenPath });
133
- _emitMigrationEvent(deps.runtimeBus, { type: 'WORKSPACE_IDENTITY_MIGRATED', from: src, to: destTokenPath });
134
- }
135
- break; // First valid source wins
136
- }
137
- }
94
+ // NOTE: Operator tokens are NOT migrated from legacy workspace-scoped paths.
95
+ // The canonical path is <daemonHomeDir>/operator-tokens.json (global, set at 0600).
96
+ // If no token file exists at the canonical path, the first pairing call will
97
+ // create it via getOrCreateCompanionToken (companion-token.ts).
98
+ void deps; // deps.runtimeBus reserved for future migration event emission
138
99
  return { daemonHomeDir, freshInstall: true };
139
100
  }
140
101
  // ---------------------------------------------------------------------------
102
+ // Operator token file write (global-only, mode 0600)
103
+ // ---------------------------------------------------------------------------
104
+ /**
105
+ * Write operator tokens to the global daemon-home path with mode 0600.
106
+ * All token provisioning MUST go through this function.
107
+ *
108
+ * Uses a write-to-tmp-then-rename pattern for atomicity.
109
+ * Applies chmod 0600 after rename so the file is never world-readable.
110
+ */
111
+ export function writeOperatorTokenFile(daemonHomeDir, content) {
112
+ const tokenPath = resolveOperatorTokenPath(daemonHomeDir);
113
+ mkdirSync(dirname(tokenPath), { recursive: true });
114
+ const tmpPath = tokenPath + '.tmp';
115
+ writeFileSync(tmpPath, content, { encoding: 'utf-8', mode: 0o600 });
116
+ chmodSync(tmpPath, 0o600);
117
+ renameSync(tmpPath, tokenPath);
118
+ // Apply chmod again after rename — some filesystems reset permissions on rename
119
+ try {
120
+ chmodSync(tokenPath, 0o600);
121
+ }
122
+ catch { /* best-effort */ }
123
+ }
124
+ /**
125
+ * Read operator tokens from the global daemon-home path.
126
+ * Returns undefined when the file does not exist or cannot be parsed.
127
+ */
128
+ export function readOperatorTokenFile(daemonHomeDir) {
129
+ const tokenPath = resolveOperatorTokenPath(daemonHomeDir);
130
+ if (!existsSync(tokenPath))
131
+ return undefined;
132
+ try {
133
+ return readFileSync(tokenPath, 'utf-8');
134
+ }
135
+ catch {
136
+ return undefined;
137
+ }
138
+ }
139
+ // ---------------------------------------------------------------------------
141
140
  // Daemon settings persistence
142
141
  // ---------------------------------------------------------------------------
143
142
  /**
@@ -182,30 +181,11 @@ export function writeDaemonSetting(daemonHomeDir, key, value) {
182
181
  // ---------------------------------------------------------------------------
183
182
  // Helpers
184
183
  // ---------------------------------------------------------------------------
185
- /**
186
- * Emit a workspace migration event on the runtime bus.
187
- * Never throws — bus emission must not interrupt migration.
188
- */
189
- function _emitMigrationEvent(bus, payload) {
190
- if (!bus)
191
- return;
192
- try {
193
- const envelope = createEventEnvelope(payload.type, payload, { sessionId: '', source: 'daemon-home-migration' });
194
- bus.emit('workspace',
195
- // WorkspaceEvent discriminated-union member; single widening cast is safe.
196
- envelope);
197
- }
198
- catch {
199
- // Swallow — never let event emission break migration
200
- }
201
- }
202
184
  /**
203
185
  * Copy src to dest. Returns true on success, false on failure.
204
186
  * Failures are logged at warn level. Never throws.
205
187
  */
206
- function safeCopy(src, dest, opts) {
207
- if (opts?.skipIfInvalid)
208
- return false;
188
+ function safeCopy(src, dest) {
209
189
  try {
210
190
  copyFileSync(src, dest);
211
191
  return true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-sdk",
3
- "version": "0.21.26",
3
+ "version": "0.21.28",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/mgd34msu/goodvibes-sdk.git"