@lumenflow/control-plane-sdk 4.24.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/agent-host-registry.d.ts +61 -0
  2. package/dist/agent-host-registry.d.ts.map +1 -0
  3. package/dist/agent-host-registry.js +196 -0
  4. package/dist/agent-host-registry.js.map +1 -0
  5. package/dist/authenticate.d.ts +59 -0
  6. package/dist/authenticate.d.ts.map +1 -0
  7. package/dist/authenticate.js +113 -0
  8. package/dist/authenticate.js.map +1 -0
  9. package/dist/delegation-registry.d.ts +107 -0
  10. package/dist/delegation-registry.d.ts.map +1 -0
  11. package/dist/delegation-registry.js +160 -0
  12. package/dist/delegation-registry.js.map +1 -0
  13. package/dist/index.d.ts +5 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/mock/mock-control-plane-sync-port.d.ts +2 -2
  18. package/dist/mock/mock-control-plane-sync-port.d.ts.map +1 -1
  19. package/dist/mock/mock-control-plane-sync-port.js.map +1 -1
  20. package/dist/pack-outcome-descriptor.d.ts +42 -0
  21. package/dist/pack-outcome-descriptor.d.ts.map +1 -0
  22. package/dist/pack-outcome-descriptor.js +4 -0
  23. package/dist/pack-outcome-descriptor.js.map +1 -0
  24. package/dist/policy-mode.d.ts +2 -2
  25. package/dist/policy-mode.d.ts.map +1 -1
  26. package/dist/policy-mode.js +12 -4
  27. package/dist/policy-mode.js.map +1 -1
  28. package/dist/replay-artifact.d.ts +48 -0
  29. package/dist/replay-artifact.d.ts.map +1 -0
  30. package/dist/replay-artifact.js +4 -0
  31. package/dist/replay-artifact.js.map +1 -0
  32. package/dist/scope-grammar.d.ts +12 -0
  33. package/dist/scope-grammar.d.ts.map +1 -0
  34. package/dist/scope-grammar.js +109 -0
  35. package/dist/scope-grammar.js.map +1 -0
  36. package/dist/sync-port.d.ts +261 -24
  37. package/dist/sync-port.d.ts.map +1 -1
  38. package/dist/sync-port.js +92 -0
  39. package/dist/sync-port.js.map +1 -1
  40. package/dist/wu-events.d.ts +197 -0
  41. package/dist/wu-events.d.ts.map +1 -0
  42. package/dist/wu-events.js +109 -0
  43. package/dist/wu-events.js.map +1 -0
  44. package/package.json +4 -1
@@ -0,0 +1,160 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Apache-2.0 delegation registry schema for lumenflow-cloud (WU-2637, ADR-011 §1).
5
+ *
6
+ * Mirrors the delegation lifecycle shape that @lumenflow/core tracks for local
7
+ * LumenFlow agents, but lives on the Apache-2.0 boundary so that cloud can
8
+ * validate delegation records without linking the AGPL-3.0-only core package.
9
+ *
10
+ * The wrapper document carries an explicit `schema_version`. The parser accepts
11
+ * the current version as-is and migrates one prior snake_case shape to the
12
+ * current camelCase shape (the shape used by agents before the schema was
13
+ * promoted to the public SDK contract).
14
+ */
15
+ import { z } from 'zod';
16
+ /**
17
+ * Current (camelCase) registry schema version. Increment when the record shape
18
+ * changes; add a migration branch to `parseDelegationRegistry` when bumping.
19
+ */
20
+ export const DELEGATION_REGISTRY_SCHEMA_VERSION = 2;
21
+ /**
22
+ * Legacy snake_case registry schema version. `parseDelegationRegistry` accepts
23
+ * this version and migrates records forward to the current shape.
24
+ */
25
+ export const DELEGATION_REGISTRY_LEGACY_SCHEMA_VERSION = 1;
26
+ const DELEGATION_ID_PATTERN = /^dlg-[0-9a-f]{4}$/;
27
+ const WU_ID_PATTERN = /^WU-\d+$/;
28
+ const SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
29
+ export const DELEGATION_STATUSES = [
30
+ 'pending',
31
+ 'completed',
32
+ 'timeout',
33
+ 'crashed',
34
+ 'escalated',
35
+ ];
36
+ export const DELEGATION_INTENTS = ['delegation', 'legacy-spawn'];
37
+ export const DelegationAttestationSchema = z.object({
38
+ algorithm: z.literal('sha256'),
39
+ promptHash: z.string().regex(SHA256_HEX_PATTERN, {
40
+ message: 'promptHash must be a 64-character lowercase sha256 hex digest',
41
+ }),
42
+ promptLength: z.number().int().nonnegative(),
43
+ generatedAt: z.string().datetime(),
44
+ clientName: z.string().min(1),
45
+ });
46
+ export const DelegationRecordSchema = z.object({
47
+ id: z.string().regex(DELEGATION_ID_PATTERN, {
48
+ message: 'Delegation ID must match pattern dlg-XXXX (e.g., dlg-a1b2)',
49
+ }),
50
+ parentWuId: z.string().regex(WU_ID_PATTERN, {
51
+ message: 'Parent WU ID must match pattern WU-XXX (e.g., WU-2636)',
52
+ }),
53
+ targetWuId: z.string().regex(WU_ID_PATTERN, {
54
+ message: 'Target WU ID must match pattern WU-XXX (e.g., WU-2637)',
55
+ }),
56
+ lane: z.string().min(1),
57
+ intent: z.enum(DELEGATION_INTENTS).optional(),
58
+ delegatedAt: z.string().datetime(),
59
+ status: z.enum(DELEGATION_STATUSES),
60
+ completedAt: z.string().datetime().nullable(),
61
+ pickedUpAt: z.string().datetime().optional(),
62
+ pickedUpBy: z.string().min(1).optional(),
63
+ briefAttestation: DelegationAttestationSchema.optional(),
64
+ });
65
+ const DelegationRegistryDocumentSchema = z.object({
66
+ schema_version: z.literal(DELEGATION_REGISTRY_SCHEMA_VERSION),
67
+ records: z.array(DelegationRecordSchema),
68
+ });
69
+ /**
70
+ * Legacy snake_case record shape accepted by the migrator. Only fields that
71
+ * actually appeared on disk in the legacy shape are listed; everything else is
72
+ * passed through as-is so the zod parser on the forward side can reject
73
+ * mis-shaped inputs with a clear message.
74
+ */
75
+ const LegacyDelegationRecordSchema = z.object({
76
+ id: z.string(),
77
+ parent_wu_id: z.string(),
78
+ target_wu_id: z.string(),
79
+ lane: z.string(),
80
+ intent: z.string().optional(),
81
+ delegated_at: z.string(),
82
+ status: z.string(),
83
+ completed_at: z.string().nullable(),
84
+ picked_up_at: z.string().optional(),
85
+ picked_up_by: z.string().optional(),
86
+ brief_attestation: z
87
+ .object({
88
+ algorithm: z.string(),
89
+ prompt_hash: z.string(),
90
+ prompt_length: z.number(),
91
+ generated_at: z.string(),
92
+ client_name: z.string(),
93
+ })
94
+ .optional(),
95
+ });
96
+ function migrateLegacyRecord(record) {
97
+ const migrated = {
98
+ id: record.id,
99
+ parentWuId: record.parent_wu_id,
100
+ targetWuId: record.target_wu_id,
101
+ lane: record.lane,
102
+ delegatedAt: record.delegated_at,
103
+ status: record.status,
104
+ completedAt: record.completed_at,
105
+ };
106
+ if (record.intent !== undefined) {
107
+ migrated.intent = record.intent;
108
+ }
109
+ if (record.picked_up_at !== undefined) {
110
+ migrated.pickedUpAt = record.picked_up_at;
111
+ }
112
+ if (record.picked_up_by !== undefined) {
113
+ migrated.pickedUpBy = record.picked_up_by;
114
+ }
115
+ if (record.brief_attestation !== undefined) {
116
+ migrated.briefAttestation = {
117
+ algorithm: record.brief_attestation.algorithm,
118
+ promptHash: record.brief_attestation.prompt_hash,
119
+ promptLength: record.brief_attestation.prompt_length,
120
+ generatedAt: record.brief_attestation.generated_at,
121
+ clientName: record.brief_attestation.client_name,
122
+ };
123
+ }
124
+ return migrated;
125
+ }
126
+ /**
127
+ * Parses a delegation registry document. Accepts the current schema version
128
+ * verbatim and migrates the legacy snake_case version forward.
129
+ *
130
+ * @throws Error with a `schema_version`-prefixed message when the input carries
131
+ * an unknown schema version, and a zod ZodError when records fail
132
+ * validation.
133
+ */
134
+ export function parseDelegationRegistry(input) {
135
+ if (typeof input !== 'object' || input === null || Array.isArray(input)) {
136
+ throw new Error('Invalid delegation registry: expected an object with a schema_version field. ' +
137
+ 'Got ' +
138
+ (input === null ? 'null' : typeof input));
139
+ }
140
+ const asRecord = input;
141
+ if (asRecord.schema_version === DELEGATION_REGISTRY_SCHEMA_VERSION) {
142
+ return DelegationRegistryDocumentSchema.parse(input);
143
+ }
144
+ if (asRecord.schema_version === DELEGATION_REGISTRY_LEGACY_SCHEMA_VERSION) {
145
+ if (!Array.isArray(asRecord.records)) {
146
+ throw new Error('Invalid legacy delegation registry: `records` must be an array. ' +
147
+ 'Re-emit the registry with pnpm delegation:repair.');
148
+ }
149
+ const migratedRecords = asRecord.records.map((legacy) => migrateLegacyRecord(LegacyDelegationRecordSchema.parse(legacy)));
150
+ return DelegationRegistryDocumentSchema.parse({
151
+ schema_version: DELEGATION_REGISTRY_SCHEMA_VERSION,
152
+ records: migratedRecords,
153
+ });
154
+ }
155
+ throw new Error(`Unsupported delegation registry schema_version: ${String(asRecord.schema_version)}. ` +
156
+ `Expected ${DELEGATION_REGISTRY_SCHEMA_VERSION} (current) or ` +
157
+ `${DELEGATION_REGISTRY_LEGACY_SCHEMA_VERSION} (legacy). ` +
158
+ `Run pnpm lumenflow:upgrade on the emitting agent.`);
159
+ }
160
+ //# sourceMappingURL=delegation-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-registry.js","sourceRoot":"","sources":["../src/delegation-registry.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,13 @@
1
+ export * from './authenticate.js';
1
2
  export * from './sync-port.js';
2
3
  export * from './orchestration-state.js';
3
4
  export * from './signal-sync-port.js';
4
5
  export * from './workspace-config.js';
5
6
  export * from './policy-mode.js';
7
+ export * from './delegation-registry.js';
8
+ export * from './wu-events.js';
9
+ export * from './replay-artifact.js';
10
+ export * from './pack-outcome-descriptor.js';
6
11
  export * from './http/http-control-plane-sync-port.js';
7
12
  export * from './mock/mock-control-plane-sync-port.js';
8
13
  export * from './mock/mock-signal-sync-port.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -1,10 +1,15 @@
1
1
  // Copyright (c) 2026 Hellmai Ltd
2
2
  // SPDX-License-Identifier: Apache-2.0
3
+ export * from './authenticate.js';
3
4
  export * from './sync-port.js';
4
5
  export * from './orchestration-state.js';
5
6
  export * from './signal-sync-port.js';
6
7
  export * from './workspace-config.js';
7
8
  export * from './policy-mode.js';
9
+ export * from './delegation-registry.js';
10
+ export * from './wu-events.js';
11
+ export * from './replay-artifact.js';
12
+ export * from './pack-outcome-descriptor.js';
8
13
  export * from './http/http-control-plane-sync-port.js';
9
14
  export * from './mock/mock-control-plane-sync-port.js';
10
15
  export * from './mock/mock-signal-sync-port.js';
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;AAEtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AuthenticateInput, ControlPlaneIdentity, ControlPlanePolicyMode, ControlPlanePolicySet, ControlPlaneSyncPort, HeartbeatInput, HeartbeatResult, KernelEvent, PullConfigInput, PullPoliciesInput, PushEvidenceInput, PushKernelEventsInput, PushTelemetryInput, TelemetryRecord, WorkspaceControlPlaneSpec } from '../sync-port.js';
1
+ import type { AuthenticateInput, ControlPlaneIdentity, ControlPlanePolicyMode, ControlPlanePolicySet, ControlPlaneSyncPort, HeartbeatInput, HeartbeatResult, SdkKernelEvent, PullConfigInput, PullPoliciesInput, PushEvidenceInput, PushKernelEventsInput, PushTelemetryInput, TelemetryRecord, WorkspaceControlPlaneSpec } from '../sync-port.js';
2
2
  export interface MockControlPlaneSyncPortOptions {
3
3
  endpoint: string;
4
4
  org_id: string;
@@ -30,7 +30,7 @@ export declare class MockControlPlaneSyncPort implements ControlPlaneSyncPort {
30
30
  heartbeat(input: HeartbeatInput): Promise<HeartbeatResult>;
31
31
  readTelemetryEndpoint(endpoint: string): TelemetryRecord[];
32
32
  readEvidence(workspaceId: string): string[];
33
- readKernelEvents(workspaceId: string): KernelEvent[];
33
+ readKernelEvents(workspaceId: string): SdkKernelEvent[];
34
34
  }
35
35
  export declare function createMockControlPlaneSyncPort(options: MockControlPlaneSyncPortOptions): MockControlPlaneSyncPort;
36
36
  //# sourceMappingURL=mock-control-plane-sync-port.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-control-plane-sync-port.d.ts","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,sBAAsB,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAeD,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAC5E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAoC;gBAEzD,OAAO,EAAE,+BAA+B;IAU9C,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBtE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgBtE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAOvE,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAOrE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAO7E,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASrE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IA0BhE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAI1D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAI3C,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE;CAG5D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,+BAA+B,GACvC,wBAAwB,CAE1B"}
1
+ {"version":3,"file":"mock-control-plane-sync-port.d.ts","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,sBAAsB,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAeD,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAC5E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAuC;gBAE5D,OAAO,EAAE,+BAA+B;IAU9C,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBtE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgBtE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAOvE,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAOrE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAO7E,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASrE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IA0BhE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAI1D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAI3C,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE;CAG/D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,+BAA+B,GACvC,wBAAwB,CAE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"mock-control-plane-sync-port.js","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-control-plane-sync-port.js","sourceRoot":"","sources":["../../src/mock/mock-control-plane-sync-port.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Apache-2.0 mirror of the PackOutcomeDescriptor type from
3
+ * @lumenflow/kernel (AGPL-3.0-only).
4
+ *
5
+ * lumenflow-cloud is proprietary and cannot link AGPL code; this mirror
6
+ * lets cloud consumers type against the pack-capability registry feed
7
+ * described by ADR-012 (kernel/pack boundary) and ADR-013 (Manifest
8
+ * Extension fields) without dragging AGPL packages into the cloud's
9
+ * dependency closure.
10
+ *
11
+ * Shape must stay byte-identical with the canonical. A bidirectional
12
+ * structural-assignability parity test in
13
+ * `__tests__/packaging-boundary.test.ts` (WU-2741, INIT-060 Phase 6)
14
+ * keeps the two copies in sync — any drift surfaces as a compile-time
15
+ * failure in CI.
16
+ */
17
+ /**
18
+ * Pack-capability slots the runtime evaluates per pack. Each value
19
+ * corresponds to one of the ADR-013 Manifest Extension fields (plus
20
+ * `emitter` and `handler` registrations the runtime asserts against
21
+ * `emitted_event_kinds` / `subscribed_event_kinds` at boot).
22
+ */
23
+ export type PackCapability = 'emitted_event_kinds' | 'subscribed_event_kinds' | 'required_approvals' | 'surfaces_required' | 'emitter' | 'handler';
24
+ /**
25
+ * Outcome of a single pack-capability evaluation. See the canonical
26
+ * doc in `@lumenflow/kernel/pack/pack-outcome-descriptor` for semantics
27
+ * of `ok`, `degraded`, and `unavailable`.
28
+ */
29
+ export type PackOutcomeStatus = 'ok' | 'degraded' | 'unavailable';
30
+ /**
31
+ * A descriptor the runtime emits per pack capability. See
32
+ * `@lumenflow/kernel/pack/pack-outcome-descriptor` for field semantics;
33
+ * this mirror exists solely for the license boundary.
34
+ */
35
+ export interface PackOutcomeDescriptor {
36
+ pack_slug: string;
37
+ capability: PackCapability;
38
+ status: PackOutcomeStatus;
39
+ detail: string;
40
+ observed_at: string;
41
+ }
42
+ //# sourceMappingURL=pack-outcome-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-outcome-descriptor.d.ts","sourceRoot":"","sources":["../src/pack-outcome-descriptor.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB,qBAAqB,GACrB,wBAAwB,GACxB,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,GACT,SAAS,CAAC;AAEd;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,UAAU,GAAG,aAAa,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=pack-outcome-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-outcome-descriptor.js","sourceRoot":"","sources":["../src/pack-outcome-descriptor.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC"}
@@ -1,4 +1,4 @@
1
- import type { ControlPlanePolicyMode, ControlPlanePolicySet, KernelEvent } from './sync-port.js';
1
+ import { type ControlPlanePolicyMode, type ControlPlanePolicySet, type SdkKernelEvent } from './sync-port.js';
2
2
  export interface ApplyPolicyModeInput {
3
3
  mode: ControlPlanePolicyMode;
4
4
  workspace_id: string;
@@ -8,7 +8,7 @@ export interface ApplyPolicyModeInput {
8
8
  }
9
9
  export interface ApplyPolicyModeResult {
10
10
  effective: ControlPlanePolicySet;
11
- events: KernelEvent[];
11
+ events: SdkKernelEvent[];
12
12
  }
13
13
  export declare function applyPolicyMode(input: ApplyPolicyModeInput): ApplyPolicyModeResult;
14
14
  //# sourceMappingURL=policy-mode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy-mode.d.ts","sourceRoot":"","sources":["../src/policy-mode.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAsBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CA6DlF"}
1
+ {"version":3,"file":"policy-mode.d.ts","sourceRoot":"","sources":["../src/policy-mode.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAE1B,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AAUxB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AA2BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CA+DlF"}
@@ -1,5 +1,12 @@
1
1
  // Copyright (c) 2026 Hellmai Ltd
2
2
  // SPDX-License-Identifier: Apache-2.0
3
+ import { SDK_KERNEL_EVENT_SCHEMA_VERSION_V1, } from './sync-port.js';
4
+ const POLICY_WARNING_EVENT_ID_PREFIX = 'evt-policy-warning-';
5
+ function createPolicyWarningEventId(workspaceId, timestamp) {
6
+ // Deterministic id from workspace + timestamp keeps cloud dedup predictable.
7
+ const sanitized = `${workspaceId}:${timestamp}`.replace(/[^A-Za-z0-9:.-]+/g, '_');
8
+ return `${POLICY_WARNING_EVENT_ID_PREFIX}${sanitized}`;
9
+ }
3
10
  function clonePolicySet(input) {
4
11
  return {
5
12
  default_decision: input.default_decision,
@@ -9,11 +16,12 @@ function clonePolicySet(input) {
9
16
  function isLoosening(remoteDecision, localDecision) {
10
17
  return remoteDecision === 'deny' && localDecision === 'allow';
11
18
  }
12
- function createWarningEvent(message, timestamp) {
19
+ function createWarningEvent(message, timestamp, workspaceId) {
13
20
  return {
14
- schema_version: 1,
21
+ schema_version: SDK_KERNEL_EVENT_SCHEMA_VERSION_V1,
15
22
  kind: 'workspace_warning',
16
23
  timestamp,
24
+ event_id: createPolicyWarningEventId(workspaceId, timestamp),
17
25
  message,
18
26
  };
19
27
  }
@@ -33,7 +41,7 @@ export function applyPolicyMode(input) {
33
41
  if (input.mode === 'tighten-only') {
34
42
  throw new Error(`tighten-only mode rejected local policy loosening for default_decision in workspace ${input.workspace_id}`);
35
43
  }
36
- events.push(createWarningEvent(`dev-override allowed local policy loosening for default_decision in workspace ${input.workspace_id}`, timestamp));
44
+ events.push(createWarningEvent(`dev-override allowed local policy loosening for default_decision in workspace ${input.workspace_id}`, timestamp, input.workspace_id));
37
45
  }
38
46
  const mergedRules = new Map(remote.rules.map((rule) => [rule.id, { ...rule }]));
39
47
  for (const localRule of local.rules) {
@@ -43,7 +51,7 @@ export function applyPolicyMode(input) {
43
51
  if (input.mode === 'tighten-only') {
44
52
  throw new Error(`tighten-only mode rejected local policy loosening for rule ${localRule.id} in workspace ${input.workspace_id}`);
45
53
  }
46
- events.push(createWarningEvent(`dev-override allowed local policy loosening for rule ${localRule.id} in workspace ${input.workspace_id}`, timestamp));
54
+ events.push(createWarningEvent(`dev-override allowed local policy loosening for rule ${localRule.id} in workspace ${input.workspace_id}`, timestamp, input.workspace_id));
47
55
  }
48
56
  mergedRules.set(localRule.id, { ...localRule });
49
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy-mode.js","sourceRoot":"","sources":["../src/policy-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-mode.js","sourceRoot":"","sources":["../src/policy-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Apache-2.0 mirror of the ReplayArtifact type from
3
+ * @lumenflow/initiatives (AGPL-3.0-only).
4
+ *
5
+ * lumenflow-cloud is proprietary and cannot link AGPL code; this mirror
6
+ * lets cloud consumers type against the outbox/replay contract defined by
7
+ * ADR-010 (evidence-based control plane) and ADR-013 §2 (at-least-once
8
+ * delivery) without dragging AGPL packages into the cloud's dependency
9
+ * closure.
10
+ *
11
+ * Shape must stay byte-identical with the canonical. A bidirectional
12
+ * structural-assignability parity test in
13
+ * `__tests__/packaging-boundary.test.ts` (WU-2741, INIT-060 Phase 6)
14
+ * keeps the two copies in sync — any drift surfaces as a compile-time
15
+ * failure in CI.
16
+ */
17
+ /**
18
+ * Delivery status of a replay artifact relative to its destination
19
+ * handler.
20
+ *
21
+ * - `pending` — artifact is queued locally and has not been submitted.
22
+ * - `in_flight` — submission attempted; awaiting ack. Re-enters `pending`
23
+ * on sidecar restart.
24
+ * - `acked` — destination acknowledged receipt; safe to prune from the
25
+ * outbox after retention window.
26
+ * - `abandoned` — exceeded `max_attempts`; operator intervention needed.
27
+ * Retained for audit.
28
+ */
29
+ export type ReplayArtifactStatus = 'pending' | 'in_flight' | 'acked' | 'abandoned';
30
+ /**
31
+ * Persistent outbox record for an ADR-013 §4 queue+replay event.
32
+ *
33
+ * See `@lumenflow/initiatives/replay-artifact` for the canonical doc.
34
+ * Field semantics are identical; this mirror exists solely for the
35
+ * license boundary.
36
+ */
37
+ export interface ReplayArtifact {
38
+ event_id: string;
39
+ kind: string;
40
+ channel_id: string;
41
+ seq: number;
42
+ emitted_at: string;
43
+ payload: unknown;
44
+ attempts: number;
45
+ status: ReplayArtifactStatus;
46
+ last_error: string | null;
47
+ }
48
+ //# sourceMappingURL=replay-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-artifact.d.ts","sourceRoot":"","sources":["../src/replay-artifact.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=replay-artifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-artifact.js","sourceRoot":"","sources":["../src/replay-artifact.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC"}
@@ -0,0 +1,12 @@
1
+ export type ParsedToolScopeType = 'exact' | 'pack_wildcard' | 'global_wildcard';
2
+ export interface ParsedToolScope {
3
+ raw: string;
4
+ pack: string;
5
+ tool: string;
6
+ type: ParsedToolScopeType;
7
+ }
8
+ export declare function createToolScopeForToolName(toolName: string): string;
9
+ export declare function parseToolScope(scope: string): ParsedToolScope;
10
+ export declare function isToolScopeMatch(scope: string, toolName: string): boolean;
11
+ export declare function normalizeToolScopes(scopes: readonly string[]): string[];
12
+ //# sourceMappingURL=scope-grammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-grammar.d.ts","sourceRoot":"","sources":["../src/scope-grammar.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEhF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAUD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBnE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAyD7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmCzE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAQvE"}
@@ -0,0 +1,109 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ const TOOL_SCOPE_PREFIX = 'tool:';
4
+ const GLOBAL_WILDCARD_SCOPE = 'tool:*';
5
+ function isNonEmptyString(value) {
6
+ return typeof value === 'string' && value.trim().length > 0;
7
+ }
8
+ function normalizeScopeValue(scope) {
9
+ return scope.trim();
10
+ }
11
+ export function createToolScopeForToolName(toolName) {
12
+ // WU-2729: bare single-segment tool names (e.g. `gates`) are valid for
13
+ // first-party pack tools exposed via POST /tools/:name. Their scope form
14
+ // is `tool:<name>`. Multi-segment names (e.g. `lane:suggest`,
15
+ // `software-delivery:wu.claim`) keep their existing `tool:<pack>:<tool>`
16
+ // shape.
17
+ const [pack, ...toolParts] = toolName.split(':');
18
+ if (!isNonEmptyString(pack)) {
19
+ throw new Error(`Invalid tool name "${toolName}". Expected a non-empty tool name such as "gates" or "wu:delete".`);
20
+ }
21
+ if (toolParts.length === 0) {
22
+ return `${TOOL_SCOPE_PREFIX}${pack}`;
23
+ }
24
+ const tool = toolParts.join(':');
25
+ if (!isNonEmptyString(tool)) {
26
+ throw new Error(`Invalid tool name "${toolName}". Expected a non-empty tool segment after the pack prefix.`);
27
+ }
28
+ return `${TOOL_SCOPE_PREFIX}${pack}:${tool}`;
29
+ }
30
+ export function parseToolScope(scope) {
31
+ const normalized = normalizeScopeValue(scope);
32
+ if (normalized === GLOBAL_WILDCARD_SCOPE) {
33
+ return {
34
+ raw: normalized,
35
+ pack: '*',
36
+ tool: '*',
37
+ type: 'global_wildcard',
38
+ };
39
+ }
40
+ if (!normalized.startsWith(TOOL_SCOPE_PREFIX)) {
41
+ throw new Error(`Invalid tool scope "${scope}". Expected one of: tool:<pack>:<tool_name>, tool:<pack>:*, tool:*`);
42
+ }
43
+ const body = normalized.slice(TOOL_SCOPE_PREFIX.length);
44
+ const [pack, ...toolParts] = body.split(':');
45
+ if (!isNonEmptyString(pack)) {
46
+ throw new Error(`Invalid tool scope "${scope}". Expected one of: tool:<tool_name>, tool:<pack>:<tool_name>, tool:<pack>:*, tool:*`);
47
+ }
48
+ if (pack === '*') {
49
+ throw new Error(`Invalid tool scope "${scope}". Wildcard pack scopes must use the exact global form "tool:*".`);
50
+ }
51
+ // WU-2729: bare single-segment scope (e.g. `tool:gates`) is valid for
52
+ // first-party pack tools that are exposed with a short name.
53
+ if (toolParts.length === 0) {
54
+ return {
55
+ raw: normalized,
56
+ pack,
57
+ tool: pack,
58
+ type: 'exact',
59
+ };
60
+ }
61
+ const tool = toolParts.join(':');
62
+ if (!isNonEmptyString(tool)) {
63
+ throw new Error(`Invalid tool scope "${scope}". Expected one of: tool:<tool_name>, tool:<pack>:<tool_name>, tool:<pack>:*, tool:*`);
64
+ }
65
+ return {
66
+ raw: normalized,
67
+ pack,
68
+ tool,
69
+ type: tool === '*' ? 'pack_wildcard' : 'exact',
70
+ };
71
+ }
72
+ export function isToolScopeMatch(scope, toolName) {
73
+ const parsed = parseToolScope(scope);
74
+ if (parsed.type === 'global_wildcard') {
75
+ return true;
76
+ }
77
+ const [pack, ...toolParts] = toolName.split(':');
78
+ if (!isNonEmptyString(pack)) {
79
+ return false;
80
+ }
81
+ // WU-2729: bare single-segment tool names (e.g. `gates`) match a
82
+ // bare single-segment scope (`tool:gates`). parseToolScope normalizes
83
+ // bare scopes so pack==tool==the bare name.
84
+ if (toolParts.length === 0) {
85
+ if (parsed.type === 'pack_wildcard') {
86
+ return parsed.pack === pack;
87
+ }
88
+ return parsed.pack === pack && parsed.tool === pack;
89
+ }
90
+ const tool = toolParts.join(':');
91
+ if (!isNonEmptyString(tool)) {
92
+ return false;
93
+ }
94
+ if (parsed.pack !== pack) {
95
+ return false;
96
+ }
97
+ if (parsed.type === 'pack_wildcard') {
98
+ return true;
99
+ }
100
+ return parsed.tool === tool;
101
+ }
102
+ export function normalizeToolScopes(scopes) {
103
+ const deduped = new Set();
104
+ for (const scope of scopes) {
105
+ deduped.add(parseToolScope(scope).raw);
106
+ }
107
+ return [...deduped];
108
+ }
109
+ //# sourceMappingURL=scope-grammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-grammar.js","sourceRoot":"","sources":["../src/scope-grammar.ts"],"names":[],"mappings":"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"}