@lumenflow/control-plane-sdk 3.4.0 → 3.5.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.
@@ -0,0 +1,32 @@
1
+ import type { AcceptedCount, AuthenticateInput, ControlPlaneIdentity, ControlPlanePolicySet, ControlPlaneSyncPort, HeartbeatInput, HeartbeatResult, PullConfigInput, PullPoliciesInput, PushEvidenceInput, PushKernelEventsInput, PushTelemetryInput, WorkspaceControlPlaneConfig, WorkspaceControlPlaneSpec } from '../sync-port.js';
2
+ export interface HttpControlPlaneSyncPortOptions {
3
+ fetchFn?: typeof fetch;
4
+ logger?: Pick<Console, 'warn'>;
5
+ timeoutMs?: number;
6
+ environment?: NodeJS.ProcessEnv;
7
+ }
8
+ export interface CreateHttpControlPlaneSyncPortOptions extends Omit<HttpControlPlaneSyncPortOptions, 'logger'> {
9
+ logger?: Pick<Console, 'warn'>;
10
+ }
11
+ export declare class HttpControlPlaneSyncPort implements ControlPlaneSyncPort {
12
+ private readonly config;
13
+ private readonly endpoint;
14
+ private readonly token;
15
+ private readonly timeoutMs;
16
+ private readonly fetchFn;
17
+ private readonly logger?;
18
+ constructor(config: WorkspaceControlPlaneConfig, options?: HttpControlPlaneSyncPortOptions);
19
+ pullPolicies(input: PullPoliciesInput): Promise<ControlPlanePolicySet>;
20
+ pullConfig(input: PullConfigInput): Promise<WorkspaceControlPlaneSpec>;
21
+ pushTelemetry(input: PushTelemetryInput): Promise<AcceptedCount>;
22
+ pushEvidence(input: PushEvidenceInput): Promise<AcceptedCount>;
23
+ pushKernelEvents(input: PushKernelEventsInput): Promise<AcceptedCount>;
24
+ authenticate(input: AuthenticateInput): Promise<ControlPlaneIdentity>;
25
+ heartbeat(input: HeartbeatInput): Promise<HeartbeatResult>;
26
+ private warn;
27
+ private warnFailure;
28
+ private getHeaders;
29
+ private postJson;
30
+ }
31
+ export declare function createHttpControlPlaneSyncPort(config: WorkspaceControlPlaneConfig, logger?: Pick<Console, 'warn'>, options?: CreateHttpControlPlaneSyncPortOptions): HttpControlPlaneSyncPort;
32
+ //# sourceMappingURL=http-control-plane-sync-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-control-plane-sync-port.d.ts","sourceRoot":"","sources":["../../src/http/http-control-plane-sync-port.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAyBzB,MAAM,WAAW,+BAA+B;IAC9C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,qCAAsC,SAAQ,IAAI,CACjE,+BAA+B,EAC/B,QAAQ,CACT;IACC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAChC;AAkCD,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAwB;gBAG9C,MAAM,EAAE,2BAA2B,EACnC,OAAO,GAAE,+BAAoC;IAiBlC,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAStE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAYtE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAShE,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAS9D,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAStE,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAcrE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IASvE,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;YAOJ,QAAQ;CA6BvB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,2BAA2B,EACnC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAC9B,OAAO,GAAE,qCAA0C,GAClD,wBAAwB,CAK1B"}
@@ -0,0 +1,189 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ const API_PATH = {
4
+ AUTHENTICATE: '/api/v1/authenticate',
5
+ HEARTBEAT: '/api/v1/heartbeat',
6
+ EVENTS: '/api/v1/events',
7
+ EVIDENCE: '/api/v1/evidence',
8
+ TELEMETRY: '/api/v1/telemetry',
9
+ POLICIES: '/api/v1/policies',
10
+ CONFIG: '/api/v1/config',
11
+ };
12
+ const HTTP = {
13
+ METHOD_POST: 'POST',
14
+ HEADER_AUTHORIZATION: 'authorization',
15
+ HEADER_CONTENT_TYPE: 'content-type',
16
+ CONTENT_TYPE_JSON: 'application/json',
17
+ };
18
+ const DEFAULT_TIMEOUT_MS = 10_000;
19
+ const TIMEOUT_ERROR_PREFIX = 'request timed out after';
20
+ const ERROR_NAME = {
21
+ ABORT: 'AbortError',
22
+ };
23
+ function normalizeEndpoint(endpoint) {
24
+ return endpoint.endsWith('/') ? endpoint.slice(0, endpoint.length - 1) : endpoint;
25
+ }
26
+ function asError(error) {
27
+ if (error instanceof Error) {
28
+ return error;
29
+ }
30
+ return new Error(String(error));
31
+ }
32
+ function describeError(error) {
33
+ return asError(error).message;
34
+ }
35
+ function cloneControlPlaneConfig(config) {
36
+ return {
37
+ ...config,
38
+ auth: {
39
+ ...config.auth,
40
+ },
41
+ };
42
+ }
43
+ async function safeResponseText(response) {
44
+ try {
45
+ return await response.text();
46
+ }
47
+ catch {
48
+ return '';
49
+ }
50
+ }
51
+ export class HttpControlPlaneSyncPort {
52
+ config;
53
+ endpoint;
54
+ token;
55
+ timeoutMs;
56
+ fetchFn;
57
+ logger;
58
+ constructor(config, options = {}) {
59
+ this.config = cloneControlPlaneConfig(config);
60
+ this.endpoint = normalizeEndpoint(config.endpoint);
61
+ this.fetchFn = options.fetchFn ?? fetch;
62
+ this.logger = options.logger;
63
+ this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
64
+ const environment = options.environment ?? process.env;
65
+ const rawToken = environment[config.auth.token_env];
66
+ this.token = typeof rawToken === 'string' ? rawToken.trim() : '';
67
+ if (this.token.length === 0) {
68
+ this.warn(`Missing auth token in env "${config.auth.token_env}". Requests may fail.`);
69
+ }
70
+ }
71
+ async pullPolicies(input) {
72
+ try {
73
+ return await this.postJson(API_PATH.POLICIES, input);
74
+ }
75
+ catch (error) {
76
+ this.warnFailure('pullPolicies', error);
77
+ throw error;
78
+ }
79
+ }
80
+ async pullConfig(input) {
81
+ try {
82
+ return await this.postJson(API_PATH.CONFIG, input);
83
+ }
84
+ catch (error) {
85
+ this.warnFailure('pullConfig', error);
86
+ return {
87
+ id: input.workspace_id,
88
+ control_plane: cloneControlPlaneConfig(this.config),
89
+ };
90
+ }
91
+ }
92
+ async pushTelemetry(input) {
93
+ try {
94
+ return await this.postJson(API_PATH.TELEMETRY, input);
95
+ }
96
+ catch (error) {
97
+ this.warnFailure('pushTelemetry', error);
98
+ return { accepted: 0 };
99
+ }
100
+ }
101
+ async pushEvidence(input) {
102
+ try {
103
+ return await this.postJson(API_PATH.EVIDENCE, input);
104
+ }
105
+ catch (error) {
106
+ this.warnFailure('pushEvidence', error);
107
+ return { accepted: 0 };
108
+ }
109
+ }
110
+ async pushKernelEvents(input) {
111
+ try {
112
+ return await this.postJson(API_PATH.EVENTS, input);
113
+ }
114
+ catch (error) {
115
+ this.warnFailure('pushKernelEvents', error);
116
+ throw error;
117
+ }
118
+ }
119
+ async authenticate(input) {
120
+ try {
121
+ return await this.postJson(API_PATH.AUTHENTICATE, input);
122
+ }
123
+ catch (error) {
124
+ this.warnFailure('authenticate', error);
125
+ return {
126
+ workspace_id: input.workspace_id,
127
+ org_id: input.org_id,
128
+ agent_id: input.agent_id,
129
+ token: '',
130
+ };
131
+ }
132
+ }
133
+ async heartbeat(input) {
134
+ try {
135
+ return await this.postJson(API_PATH.HEARTBEAT, input);
136
+ }
137
+ catch (error) {
138
+ this.warnFailure('heartbeat', error);
139
+ throw error;
140
+ }
141
+ }
142
+ warn(message) {
143
+ this.logger?.warn?.(`[control-plane] ${message}`);
144
+ }
145
+ warnFailure(operation, error) {
146
+ this.warn(`${operation} failed: ${describeError(error)}`);
147
+ }
148
+ getHeaders() {
149
+ return {
150
+ [HTTP.HEADER_AUTHORIZATION]: `Bearer ${this.token}`,
151
+ [HTTP.HEADER_CONTENT_TYPE]: HTTP.CONTENT_TYPE_JSON,
152
+ };
153
+ }
154
+ async postJson(apiPath, payload) {
155
+ const controller = new AbortController();
156
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
157
+ try {
158
+ const response = await this.fetchFn(`${this.endpoint}${apiPath}`, {
159
+ method: HTTP.METHOD_POST,
160
+ headers: this.getHeaders(),
161
+ body: JSON.stringify(payload),
162
+ signal: controller.signal,
163
+ });
164
+ if (!response.ok) {
165
+ const responseText = await safeResponseText(response);
166
+ const suffix = responseText.length > 0 ? `: ${responseText}` : '';
167
+ throw new Error(`HTTP ${response.status}${suffix}`);
168
+ }
169
+ return (await response.json());
170
+ }
171
+ catch (error) {
172
+ const parsedError = asError(error);
173
+ if (parsedError.name === ERROR_NAME.ABORT) {
174
+ throw new Error(`${TIMEOUT_ERROR_PREFIX} ${this.timeoutMs}ms`, { cause: error });
175
+ }
176
+ throw parsedError;
177
+ }
178
+ finally {
179
+ clearTimeout(timeout);
180
+ }
181
+ }
182
+ }
183
+ export function createHttpControlPlaneSyncPort(config, logger, options = {}) {
184
+ return new HttpControlPlaneSyncPort(config, {
185
+ ...options,
186
+ logger: options.logger ?? logger,
187
+ });
188
+ }
189
+ //# sourceMappingURL=http-control-plane-sync-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-control-plane-sync-port.js","sourceRoot":"","sources":["../../src/http/http-control-plane-sync-port.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './sync-port.js';
2
2
  export * from './workspace-config.js';
3
3
  export * from './policy-mode.js';
4
+ export * from './http/http-control-plane-sync-port.js';
4
5
  export * from './mock/mock-control-plane-sync-port.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ const kernelEventTypeParityCheck = true;
4
4
  export * from './sync-port.js';
5
5
  export * from './workspace-config.js';
6
6
  export * from './policy-mode.js';
7
+ export * from './http/http-control-plane-sync-port.js';
7
8
  export * from './mock/mock-control-plane-sync-port.js';
8
9
  void kernelEventTypeParityCheck;
9
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAWtC,MAAM,0BAA0B,GAA0B,IAAI,CAAC;AAE/D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AAEvD,KAAK,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAWtC,MAAM,0BAA0B,GAA0B,IAAI,CAAC;AAE/D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AAEvD,KAAK,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumenflow/control-plane-sdk",
3
- "version": "3.4.0",
3
+ "version": "3.5.0",
4
4
  "description": "Control plane sync contracts and adapters for LumenFlow runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -11,7 +11,7 @@
11
11
  "README.md"
12
12
  ],
13
13
  "dependencies": {
14
- "@lumenflow/kernel": "3.4.0"
14
+ "@lumenflow/kernel": "3.5.0"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@vitest/coverage-v8": "^4.0.18",