@lumenflow/control-plane-sdk 4.23.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-host-registry.d.ts +61 -0
- package/dist/agent-host-registry.d.ts.map +1 -0
- package/dist/agent-host-registry.js +196 -0
- package/dist/agent-host-registry.js.map +1 -0
- package/dist/authenticate.d.ts +59 -0
- package/dist/authenticate.d.ts.map +1 -0
- package/dist/authenticate.js +113 -0
- package/dist/authenticate.js.map +1 -0
- package/dist/delegation-registry.d.ts +107 -0
- package/dist/delegation-registry.d.ts.map +1 -0
- package/dist/delegation-registry.js +160 -0
- package/dist/delegation-registry.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mock/mock-control-plane-sync-port.d.ts +2 -2
- package/dist/mock/mock-control-plane-sync-port.d.ts.map +1 -1
- package/dist/mock/mock-control-plane-sync-port.js.map +1 -1
- package/dist/pack-outcome-descriptor.d.ts +42 -0
- package/dist/pack-outcome-descriptor.d.ts.map +1 -0
- package/dist/pack-outcome-descriptor.js +4 -0
- package/dist/pack-outcome-descriptor.js.map +1 -0
- package/dist/policy-mode.d.ts +2 -2
- package/dist/policy-mode.d.ts.map +1 -1
- package/dist/policy-mode.js +12 -4
- package/dist/policy-mode.js.map +1 -1
- package/dist/replay-artifact.d.ts +48 -0
- package/dist/replay-artifact.d.ts.map +1 -0
- package/dist/replay-artifact.js +4 -0
- package/dist/replay-artifact.js.map +1 -0
- package/dist/scope-grammar.d.ts +12 -0
- package/dist/scope-grammar.d.ts.map +1 -0
- package/dist/scope-grammar.js +109 -0
- package/dist/scope-grammar.js.map +1 -0
- package/dist/sync-port.d.ts +261 -24
- package/dist/sync-port.d.ts.map +1 -1
- package/dist/sync-port.js +92 -0
- package/dist/sync-port.js.map +1 -1
- package/dist/wu-events.d.ts +197 -0
- package/dist/wu-events.d.ts.map +1 -0
- package/dist/wu-events.js +109 -0
- package/dist/wu-events.js.map +1 -0
- 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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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):
|
|
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,
|
|
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":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkBpD,OAAO,EAAE,oCAAoC,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAa5F,MAAM,uBAAuB,GAA0B;IACrD,gBAAgB,EAAE,MAAM;IACxB,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,sBAAsB,GAA0B;IACpD,gBAAgB,EAAE,MAAM;IACxB,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,6BAA6B,GAAG,EAAE,CAAC;AACzC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC,MAAM,OAAO,wBAAwB;IAClB,OAAO,CAAkC;IACzC,mBAAmB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC3D,mBAAmB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAClD,uBAAuB,GAAG,IAAI,GAAG,
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"pack-outcome-descriptor.js","sourceRoot":"","sources":["../src/pack-outcome-descriptor.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC"}
|
package/dist/policy-mode.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
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:
|
|
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,
|
|
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"}
|
package/dist/policy-mode.js
CHANGED
|
@@ -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:
|
|
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
|
}
|
package/dist/policy-mode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-mode.js","sourceRoot":"","sources":["../src/policy-mode.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;
|
|
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 @@
|
|
|
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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"}
|