@pellux/goodvibes-sdk 0.24.0 → 0.25.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/_internal/platform/agents/orchestrator.d.ts +2 -0
- package/dist/_internal/platform/agents/orchestrator.d.ts.map +1 -1
- package/dist/_internal/platform/agents/orchestrator.js +38 -0
- package/dist/_internal/platform/automation/delivery-manager.d.ts +5 -0
- package/dist/_internal/platform/automation/delivery-manager.d.ts.map +1 -1
- package/dist/_internal/platform/automation/delivery-manager.js +14 -1
- package/dist/_internal/platform/automation/manager-runtime.d.ts +5 -0
- package/dist/_internal/platform/automation/manager-runtime.d.ts.map +1 -1
- package/dist/_internal/platform/automation/manager-runtime.js +32 -0
- package/dist/_internal/platform/channels/plugin-registry.d.ts +6 -0
- package/dist/_internal/platform/channels/plugin-registry.d.ts.map +1 -1
- package/dist/_internal/platform/channels/plugin-registry.js +17 -4
- package/dist/_internal/platform/channels/route-manager.d.ts +7 -0
- package/dist/_internal/platform/channels/route-manager.d.ts.map +1 -1
- package/dist/_internal/platform/channels/route-manager.js +41 -3
- package/dist/_internal/platform/channels/surface-registry.d.ts +3 -1
- package/dist/_internal/platform/channels/surface-registry.d.ts.map +1 -1
- package/dist/_internal/platform/channels/surface-registry.js +16 -17
- package/dist/_internal/platform/config/schema-types.d.ts +1 -1
- package/dist/_internal/platform/config/schema-types.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/gateway.d.ts +5 -0
- package/dist/_internal/platform/control-plane/gateway.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/gateway.js +69 -4
- package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade-composition.js +2 -0
- package/dist/_internal/platform/daemon/facade.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade.js +3 -1
- package/dist/_internal/platform/daemon/service-manager.d.ts +5 -0
- package/dist/_internal/platform/daemon/service-manager.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/service-manager.js +29 -0
- package/dist/_internal/platform/integrations/delivery.d.ts +5 -1
- package/dist/_internal/platform/integrations/delivery.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/delivery.js +8 -1
- package/dist/_internal/platform/integrations/notifier.d.ts +5 -1
- package/dist/_internal/platform/integrations/notifier.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/notifier.js +6 -3
- package/dist/_internal/platform/permissions/manager.d.ts +3 -1
- package/dist/_internal/platform/permissions/manager.d.ts.map +1 -1
- package/dist/_internal/platform/permissions/manager.js +9 -5
- package/dist/_internal/platform/runtime/emitters/routes.d.ts +5 -0
- package/dist/_internal/platform/runtime/emitters/routes.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/emitters/routes.js +3 -0
- package/dist/_internal/platform/runtime/events/contracts/automation-route.d.ts +1 -0
- package/dist/_internal/platform/runtime/events/contracts/automation-route.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/contracts/automation-route.js +7 -0
- package/dist/_internal/platform/runtime/events/contracts.d.ts +1 -1
- package/dist/_internal/platform/runtime/events/contracts.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/contracts.js +3 -2
- package/dist/_internal/platform/runtime/events/routes.d.ts +5 -0
- package/dist/_internal/platform/runtime/events/routes.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/feature-flags/flags.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/feature-flags/flags.js +17 -21
- package/dist/_internal/platform/runtime/feature-flags/gates.d.ts +7 -0
- package/dist/_internal/platform/runtime/feature-flags/gates.d.ts.map +1 -0
- package/dist/_internal/platform/runtime/feature-flags/gates.js +38 -0
- package/dist/_internal/platform/runtime/feature-flags/index.d.ts +2 -0
- package/dist/_internal/platform/runtime/feature-flags/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/feature-flags/index.js +1 -0
- package/dist/_internal/platform/runtime/mcp/index.d.ts +2 -1
- package/dist/_internal/platform/runtime/mcp/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/mcp/index.js +4 -1
- package/dist/_internal/platform/runtime/permissions/index.d.ts +20 -1
- package/dist/_internal/platform/runtime/permissions/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/permissions/index.js +27 -1
- package/dist/_internal/platform/runtime/permissions/policy-loader.d.ts +6 -0
- package/dist/_internal/platform/runtime/permissions/policy-loader.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/permissions/policy-loader.js +7 -2
- package/dist/_internal/platform/runtime/plugins/index.d.ts +2 -1
- package/dist/_internal/platform/runtime/plugins/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/plugins/index.js +4 -1
- package/dist/_internal/platform/runtime/services.d.ts +1 -0
- package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/services.js +21 -5
- package/dist/_internal/platform/runtime/shell-command-ops.d.ts +2 -0
- package/dist/_internal/platform/runtime/shell-command-ops.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/shell-command-ops.js +4 -1
- package/dist/_internal/platform/runtime/tasks/index.d.ts +2 -1
- package/dist/_internal/platform/runtime/tasks/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/tasks/index.js +2 -2
- package/dist/_internal/platform/runtime/tasks/manager.d.ts +5 -1
- package/dist/_internal/platform/runtime/tasks/manager.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/tasks/manager.js +30 -1
- package/dist/_internal/platform/runtime/telemetry/index.d.ts +9 -3
- package/dist/_internal/platform/runtime/telemetry/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/telemetry/index.js +7 -4
- package/dist/_internal/platform/runtime/tools/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/tools/index.js +4 -1
- package/dist/_internal/platform/runtime/tools/types.d.ts +6 -0
- package/dist/_internal/platform/runtime/tools/types.d.ts.map +1 -1
- package/dist/_internal/platform/security/token-audit.d.ts +7 -0
- package/dist/_internal/platform/security/token-audit.d.ts.map +1 -1
- package/dist/_internal/platform/security/token-audit.js +6 -2
- package/dist/_internal/platform/state/mode-manager.d.ts +7 -0
- package/dist/_internal/platform/state/mode-manager.d.ts.map +1 -1
- package/dist/_internal/platform/state/mode-manager.js +25 -0
- package/dist/_internal/platform/tools/index.d.ts +4 -0
- package/dist/_internal/platform/tools/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/index.js +37 -23
- package/dist/_internal/platform/tools/shared/overflow.d.ts +3 -0
- package/dist/_internal/platform/tools/shared/overflow.d.ts.map +1 -1
- package/dist/_internal/platform/tools/shared/overflow.js +6 -2
- package/dist/_internal/platform/version.js +1 -1
- package/dist/_internal/platform/watchers/registry.d.ts +6 -0
- package/dist/_internal/platform/watchers/registry.d.ts.map +1 -1
- package/dist/_internal/platform/watchers/registry.js +32 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { dirname, join, resolve } from 'node:path';
|
|
|
3
3
|
import { spawnSync, spawn } from 'node:child_process';
|
|
4
4
|
import { ConfigManager } from '../config/manager.js';
|
|
5
5
|
import { resolveScopedDirectory } from '../runtime/surface-root.js';
|
|
6
|
+
import { isFeatureGateEnabled, requireFeatureGate } from '../runtime/feature-flags/index.js';
|
|
6
7
|
function detectPlatform(platform) {
|
|
7
8
|
switch (platform) {
|
|
8
9
|
case 'systemd':
|
|
@@ -166,6 +167,7 @@ export class PlatformServiceManager {
|
|
|
166
167
|
binaryBaseName;
|
|
167
168
|
defaultServiceName;
|
|
168
169
|
defaultServiceDescription;
|
|
170
|
+
featureFlags;
|
|
169
171
|
constructor(configManager, options) {
|
|
170
172
|
this.configManager = configManager;
|
|
171
173
|
this.workingDirectory = resolve(options.workingDirectory);
|
|
@@ -176,6 +178,13 @@ export class PlatformServiceManager {
|
|
|
176
178
|
this.binaryBaseName = options.binaryBaseName;
|
|
177
179
|
this.defaultServiceName = options.defaultServiceName;
|
|
178
180
|
this.defaultServiceDescription = options.defaultServiceDescription;
|
|
181
|
+
this.featureFlags = options.featureFlags ?? null;
|
|
182
|
+
}
|
|
183
|
+
isEnabled() {
|
|
184
|
+
return isFeatureGateEnabled(this.featureFlags, 'service-management', ['service-installation']);
|
|
185
|
+
}
|
|
186
|
+
requireEnabled(operation) {
|
|
187
|
+
requireFeatureGate(this.featureFlags, 'service-management', operation, ['service-installation']);
|
|
179
188
|
}
|
|
180
189
|
getPaths() {
|
|
181
190
|
return {
|
|
@@ -187,6 +196,21 @@ export class PlatformServiceManager {
|
|
|
187
196
|
const platform = detectPlatform(String(this.configManager.get('service.platform')));
|
|
188
197
|
const serviceName = resolveServiceName(this.configManager, this.defaultServiceName);
|
|
189
198
|
const path = definitionPath(platform, serviceName, this.getPaths(), this.surfaceRoot);
|
|
199
|
+
if (!this.isEnabled()) {
|
|
200
|
+
const definition = this.resolveDefinition();
|
|
201
|
+
return {
|
|
202
|
+
platform,
|
|
203
|
+
path,
|
|
204
|
+
installed: false,
|
|
205
|
+
autostart: false,
|
|
206
|
+
running: false,
|
|
207
|
+
logPath: resolveLogPath(this.configManager, platform, this.workingDirectory, this.surfaceRoot),
|
|
208
|
+
commandPreview: [definition.command, ...definition.args].join(' '),
|
|
209
|
+
suggestedCommands: [],
|
|
210
|
+
lastAction: 'status',
|
|
211
|
+
actionError: 'service-management feature flag is disabled',
|
|
212
|
+
};
|
|
213
|
+
}
|
|
190
214
|
const installed = existsSync(path);
|
|
191
215
|
const pidPath = pidFilePath(platform, this.workingDirectory, this.surfaceRoot);
|
|
192
216
|
const pid = existsSync(pidPath) ? this.readPid(pidPath) : undefined;
|
|
@@ -210,6 +234,7 @@ export class PlatformServiceManager {
|
|
|
210
234
|
};
|
|
211
235
|
}
|
|
212
236
|
install() {
|
|
237
|
+
this.requireEnabled('install service');
|
|
213
238
|
const platform = detectPlatform(String(this.configManager.get('service.platform')));
|
|
214
239
|
const serviceName = resolveServiceName(this.configManager, this.defaultServiceName);
|
|
215
240
|
const definition = this.resolveDefinition();
|
|
@@ -229,6 +254,7 @@ export class PlatformServiceManager {
|
|
|
229
254
|
};
|
|
230
255
|
}
|
|
231
256
|
uninstall() {
|
|
257
|
+
this.requireEnabled('uninstall service');
|
|
232
258
|
const status = this.status();
|
|
233
259
|
if (existsSync(status.path)) {
|
|
234
260
|
rmSync(status.path, { force: true });
|
|
@@ -243,6 +269,7 @@ export class PlatformServiceManager {
|
|
|
243
269
|
};
|
|
244
270
|
}
|
|
245
271
|
start() {
|
|
272
|
+
this.requireEnabled('start service');
|
|
246
273
|
const platform = detectPlatform(String(this.configManager.get('service.platform')));
|
|
247
274
|
if (platform === 'manual') {
|
|
248
275
|
return this.startManual(platform);
|
|
@@ -250,6 +277,7 @@ export class PlatformServiceManager {
|
|
|
250
277
|
return this.runPlatformAction(platform, 'start');
|
|
251
278
|
}
|
|
252
279
|
stop() {
|
|
280
|
+
this.requireEnabled('stop service');
|
|
253
281
|
const platform = detectPlatform(String(this.configManager.get('service.platform')));
|
|
254
282
|
if (platform === 'manual') {
|
|
255
283
|
return this.stopManual(platform);
|
|
@@ -257,6 +285,7 @@ export class PlatformServiceManager {
|
|
|
257
285
|
return this.runPlatformAction(platform, 'stop');
|
|
258
286
|
}
|
|
259
287
|
restart() {
|
|
288
|
+
this.requireEnabled('restart service');
|
|
260
289
|
const platform = detectPlatform(String(this.configManager.get('service.platform')));
|
|
261
290
|
if (platform === 'manual') {
|
|
262
291
|
this.stopManual(platform);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GoodVibesSdkError } from '../../errors/index.js';
|
|
2
|
+
import type { FeatureFlagManager } from '../runtime/feature-flags/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* The three possible outcomes for a single integration delivery attempt.
|
|
4
5
|
*
|
|
@@ -92,6 +93,9 @@ export interface DeliveryQueueConfig {
|
|
|
92
93
|
*/
|
|
93
94
|
sloEnforced: boolean;
|
|
94
95
|
}
|
|
96
|
+
export interface DeliveryQueueOptions extends Partial<DeliveryQueueConfig> {
|
|
97
|
+
readonly featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null;
|
|
98
|
+
}
|
|
95
99
|
/**
|
|
96
100
|
* Delivery queue with retry/backoff and dead-letter storage.
|
|
97
101
|
*
|
|
@@ -117,7 +121,7 @@ export declare class DeliveryQueue {
|
|
|
117
121
|
private _delivered;
|
|
118
122
|
private _retrying;
|
|
119
123
|
private _deadLettered;
|
|
120
|
-
constructor(config?:
|
|
124
|
+
constructor(config?: DeliveryQueueOptions);
|
|
121
125
|
/**
|
|
122
126
|
* Enqueue a delivery attempt.
|
|
123
127
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/delivery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,7 +94,14 @@ export class DeliveryQueue {
|
|
|
94
94
|
_retrying = 0;
|
|
95
95
|
_deadLettered = 0;
|
|
96
96
|
constructor(config = {}) {
|
|
97
|
-
|
|
97
|
+
const { featureFlags, ...queueConfig } = config;
|
|
98
|
+
this._config = {
|
|
99
|
+
...DEFAULT_CONFIG,
|
|
100
|
+
...queueConfig,
|
|
101
|
+
sloEnforced: queueConfig.sloEnforced
|
|
102
|
+
?? featureFlags?.isEnabled('integration-delivery-slo')
|
|
103
|
+
?? DEFAULT_CONFIG.sloEnforced,
|
|
104
|
+
};
|
|
98
105
|
}
|
|
99
106
|
// -------------------------------------------------------------------------
|
|
100
107
|
// Public API
|
|
@@ -3,6 +3,7 @@ import { SlackIntegration } from './slack.js';
|
|
|
3
3
|
import { DiscordIntegration } from './discord.js';
|
|
4
4
|
import type { DeliveryQueueConfig, IntegrationQueueStatus } from './delivery.js';
|
|
5
5
|
import { ServiceRegistry } from '../config/service-registry.js';
|
|
6
|
+
import type { FeatureFlagManager } from '../runtime/feature-flags/index.js';
|
|
6
7
|
/**
|
|
7
8
|
* Notifier — unified notification dispatcher.
|
|
8
9
|
*
|
|
@@ -21,11 +22,14 @@ export declare class Notifier {
|
|
|
21
22
|
slack?: SlackIntegration;
|
|
22
23
|
discord?: DiscordIntegration;
|
|
23
24
|
delivery?: Partial<DeliveryQueueConfig>;
|
|
25
|
+
featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null;
|
|
24
26
|
});
|
|
25
27
|
/**
|
|
26
28
|
* Create a Notifier pre-wired from configured services and environment variables.
|
|
27
29
|
*/
|
|
28
|
-
static fromConfig(serviceRegistry: Pick<ServiceRegistry, 'resolveSecret'
|
|
30
|
+
static fromConfig(serviceRegistry: Pick<ServiceRegistry, 'resolveSecret'>, options?: {
|
|
31
|
+
featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null;
|
|
32
|
+
}): Promise<Notifier>;
|
|
29
33
|
/**
|
|
30
34
|
* Send a notification to all configured channels.
|
|
31
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/notifier.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/notifier.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAM5E;;;;;;;;GAQG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,OAAO,CAAC,EAAE;QACpB,KAAK,CAAC,EAAE,gBAAgB,CAAC;QACzB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACxC,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;KAC7D;IASD;;OAEG;WACU,UAAU,CACrB,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,EACvD,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,CAAA;KAAO,GAC5E,OAAO,CAAC,QAAQ,CAAC;IAmCpB;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAczE;;;OAGG;IACH,cAAc,IAAI,sBAAsB,EAAE;IAY1C;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,sDAAsD,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IAalJ,4EAA4E;IAC5E,OAAO,IAAI,IAAI;IAIf,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAoC9C,6CAA6C;IAC7C,MAAM,IAAI,IAAI;IAWd,OAAO,CAAC,UAAU;CAuBnB"}
|
|
@@ -24,12 +24,15 @@ export class Notifier {
|
|
|
24
24
|
constructor(options) {
|
|
25
25
|
this.slack = options?.slack;
|
|
26
26
|
this.discord = options?.discord;
|
|
27
|
-
this._queue = new DeliveryQueue(
|
|
27
|
+
this._queue = new DeliveryQueue({
|
|
28
|
+
...(options?.delivery ?? {}),
|
|
29
|
+
featureFlags: options?.featureFlags,
|
|
30
|
+
});
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
33
|
* Create a Notifier pre-wired from configured services and environment variables.
|
|
31
34
|
*/
|
|
32
|
-
static async fromConfig(serviceRegistry) {
|
|
35
|
+
static async fromConfig(serviceRegistry, options = {}) {
|
|
33
36
|
const [slackWebhookFromService, slackTokenFromService, discordWebhookFromService, discordTokenFromService,] = await Promise.all([
|
|
34
37
|
serviceRegistry.resolveSecret('slack', 'webhookUrl'),
|
|
35
38
|
serviceRegistry.resolveSecret('slack', 'primary'),
|
|
@@ -46,7 +49,7 @@ export class Notifier {
|
|
|
46
49
|
const discord = discordWebhook || discordToken
|
|
47
50
|
? new DiscordIntegration(discordWebhook, discordToken)
|
|
48
51
|
: undefined;
|
|
49
|
-
return new Notifier({ slack, discord });
|
|
52
|
+
return new Notifier({ slack, discord, featureFlags: options.featureFlags });
|
|
50
53
|
}
|
|
51
54
|
// -------------------------------------------------------------------------
|
|
52
55
|
// Public API
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getConfigSnapshot } from '../config/index.js';
|
|
2
2
|
import type { PermissionRequestHandler } from './prompt.js';
|
|
3
3
|
import type { PolicyRuntimeState } from '../runtime/permissions/policy-runtime.js';
|
|
4
|
+
import type { FeatureFlagManager } from '../runtime/feature-flags/index.js';
|
|
4
5
|
import type { HookDispatcher } from '../hooks/index.js';
|
|
5
6
|
import type { ConfigManager } from '../config/manager.js';
|
|
6
7
|
import type { PermissionCategory, PermissionCheckResult } from './types.js';
|
|
@@ -29,7 +30,8 @@ export declare class PermissionManager {
|
|
|
29
30
|
private readonly configReader;
|
|
30
31
|
private readonly hookDispatcher;
|
|
31
32
|
private readonly policyRuntimeState;
|
|
32
|
-
|
|
33
|
+
private readonly featureFlags;
|
|
34
|
+
constructor(requestPermission: PermissionRequestHandler | undefined, configReader: PermissionConfigReader, policyRuntimeState: Pick<PolicyRuntimeState, 'recordPermissionRequest' | 'recordPermissionDecision' | 'getRegistry'>, hookDispatcher?: Pick<HookDispatcher, 'fire'> | null, featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null);
|
|
33
35
|
/**
|
|
34
36
|
* check - Returns a Promise that resolves to true (approved) or false (denied).
|
|
35
37
|
* Blocks orchestrator until the user responds when a prompt is needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/permissions/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAGnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,KAAK,wBAAwB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,oBAAoB,IAAI,OAAO,CAAC;IAChC,WAAW,IAAI,wBAAwB,CAAC;IACxC,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,qBAAqB,CAAC,GAC3E,sBAAsB,CAMxB;AAyCD;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmG;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/permissions/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAGnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,KAAK,wBAAwB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,oBAAoB,IAAI,OAAO,CAAC;IAChC,WAAW,IAAI,wBAAwB,CAAC;IACxC,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,qBAAqB,CAAC,GAC3E,sBAAsB,CAMxB;AAyCD;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmG;IACtI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+C;gBAG1E,iBAAiB,EAAE,wBAAwB,YAAqD,EAChG,YAAY,EAAE,sBAAsB,EACpC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,GAAG,0BAA0B,GAAG,aAAa,CAAC,EACpH,cAAc,GAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,IAAW,EAC1D,YAAY,GAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAW;IASnE;;;OAGG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAoGpG,4FAA4F;IAC5F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,kBAAkB;IAOrF;;;OAGG;IACH,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,aAAa;YA0BP,QAAQ;CAsBvB"}
|
|
@@ -62,11 +62,13 @@ export class PermissionManager {
|
|
|
62
62
|
configReader;
|
|
63
63
|
hookDispatcher;
|
|
64
64
|
policyRuntimeState;
|
|
65
|
-
|
|
65
|
+
featureFlags;
|
|
66
|
+
constructor(requestPermission = async () => ({ approved: false, remember: false }), configReader, policyRuntimeState, hookDispatcher = null, featureFlags = null) {
|
|
66
67
|
this.requestPermission = requestPermission;
|
|
67
68
|
this.configReader = configReader;
|
|
68
69
|
this.policyRuntimeState = policyRuntimeState;
|
|
69
70
|
this.hookDispatcher = hookDispatcher;
|
|
71
|
+
this.featureFlags = featureFlags;
|
|
70
72
|
}
|
|
71
73
|
/**
|
|
72
74
|
* check - Returns a Promise that resolves to true (approved) or false (denied).
|
|
@@ -102,10 +104,12 @@ export class PermissionManager {
|
|
|
102
104
|
if (mode === 'allow-all') {
|
|
103
105
|
return this.emitAndReturn(callId, toolName, category, this.result(true, false, 'runtime_mode', 'mode_allow_all', analysis));
|
|
104
106
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
if (this.featureFlags?.isEnabled('permissions-policy-engine') === true) {
|
|
108
|
+
const evaluatorDecision = this.evaluateRuntimePolicy(toolName, args, mode);
|
|
109
|
+
const mappedDecision = this.mapEvaluatorDecision(evaluatorDecision, analysis);
|
|
110
|
+
if (mappedDecision) {
|
|
111
|
+
return this.emitAndReturn(callId, toolName, category, mappedDecision);
|
|
112
|
+
}
|
|
109
113
|
}
|
|
110
114
|
// 3. custom mode: check per-tool setting
|
|
111
115
|
if (mode === 'custom') {
|
|
@@ -15,6 +15,11 @@ export declare function emitRouteBindingUpdated(bus: RuntimeEventBus, ctx: Emitt
|
|
|
15
15
|
bindingId: string;
|
|
16
16
|
changedFields: string[];
|
|
17
17
|
}): void;
|
|
18
|
+
export declare function emitRouteBindingRemoved(bus: RuntimeEventBus, ctx: EmitterContext, data: {
|
|
19
|
+
bindingId: string;
|
|
20
|
+
surfaceKind: RouteSurfaceKind;
|
|
21
|
+
externalId: string;
|
|
22
|
+
}): void;
|
|
18
23
|
export declare function emitRouteBindingResolved(bus: RuntimeEventBus, ctx: EmitterContext, data: {
|
|
19
24
|
bindingId: string;
|
|
20
25
|
surfaceKind: RouteSurfaceKind;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/emitters/routes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAc,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUjD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5H,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,GACnD,IAAI,CAEN;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5H,IAAI,CAEN;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtH,IAAI,CAEN;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzE,IAAI,CAEN"}
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/emitters/routes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAc,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUjD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5H,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,GACnD,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7E,IAAI,CAEN;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5H,IAAI,CAEN;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtH,IAAI,CAEN;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,WAAW,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzE,IAAI,CAEN"}
|
|
@@ -11,6 +11,9 @@ export function emitRouteBindingCreated(bus, ctx, data) {
|
|
|
11
11
|
export function emitRouteBindingUpdated(bus, ctx, data) {
|
|
12
12
|
bus.emit('routes', routeEvent('ROUTE_BINDING_UPDATED', data, ctx));
|
|
13
13
|
}
|
|
14
|
+
export function emitRouteBindingRemoved(bus, ctx, data) {
|
|
15
|
+
bus.emit('routes', routeEvent('ROUTE_BINDING_REMOVED', data, ctx));
|
|
16
|
+
}
|
|
14
17
|
export function emitRouteBindingResolved(bus, ctx, data) {
|
|
15
18
|
bus.emit('routes', routeEvent('ROUTE_BINDING_RESOLVED', data, ctx));
|
|
16
19
|
}
|
|
@@ -14,6 +14,7 @@ export declare function validateAutomationScheduleError(v: unknown): ContractRes
|
|
|
14
14
|
export declare function validateAutomationJobAutoDisabled(v: unknown): ContractResult;
|
|
15
15
|
export declare function validateRouteBindingCreated(v: unknown): ContractResult;
|
|
16
16
|
export declare function validateRouteBindingUpdated(v: unknown): ContractResult;
|
|
17
|
+
export declare function validateRouteBindingRemoved(v: unknown): ContractResult;
|
|
17
18
|
export declare function validateRouteBindingResolved(v: unknown): ContractResult;
|
|
18
19
|
export declare function validateRouteReplyTargetCaptured(v: unknown): ContractResult;
|
|
19
20
|
export declare function validateRouteBindingFailed(v: unknown): ContractResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-route.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/platform/runtime/events/contracts/automation-route.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"automation-route.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/platform/runtime/events/contracts/automation-route.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,6 +116,13 @@ export function validateRouteBindingUpdated(v) {
|
|
|
116
116
|
{ key: 'changedFields', kind: 'string[]' },
|
|
117
117
|
]);
|
|
118
118
|
}
|
|
119
|
+
export function validateRouteBindingRemoved(v) {
|
|
120
|
+
return validateEventFields('ROUTE_BINDING_REMOVED', v, [
|
|
121
|
+
{ key: 'bindingId', kind: 'string' },
|
|
122
|
+
{ key: 'surfaceKind', kind: 'enum', values: ROUTE_SURFACE_KINDS },
|
|
123
|
+
{ key: 'externalId', kind: 'string' },
|
|
124
|
+
]);
|
|
125
|
+
}
|
|
119
126
|
export function validateRouteBindingResolved(v) {
|
|
120
127
|
return validateEventFields('ROUTE_BINDING_RESOLVED', v, [
|
|
121
128
|
{ key: 'bindingId', kind: 'string' },
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export { type ContractResult, type EventEnvelopeShape, type FieldKind, type FieldSpec, validateEnvelope, validateEventFields, isString, isNumber, isBoolean, isObject, } from './contracts/shared.js';
|
|
5
5
|
export { validateTurnStarted, validateTurnStreaming, validateTurnCompleted, validateTurnFailed, validateTurnCancelled, validateToolReceived, validateToolSucceeded, validateToolFailed, } from './contracts/turn-tool.js';
|
|
6
6
|
export { validateAgentSpawning, validateAgentCompleted, validateAgentFailed, validateMcpConnected, validateMcpDisconnected, validateMcpReconnecting, } from './contracts/agent-mcp.js';
|
|
7
|
-
export { validatePluginLoaded, validatePluginFailed, validateAutomationJobCreated, validateAutomationJobUpdated, validateAutomationJobEnabled, validateAutomationJobDisabled, validateAutomationRunQueued, validateAutomationRunStarted, validateAutomationRunCompleted, validateAutomationRunFailed, validateAutomationRunCancelled, validateAutomationScheduleError, validateAutomationJobAutoDisabled, validateRouteBindingCreated, validateRouteBindingUpdated, validateRouteBindingResolved, validateRouteReplyTargetCaptured, validateRouteBindingFailed, validateControlPlaneClientConnected, validateControlPlaneClientDisconnected, validateControlPlaneSubscriptionCreated, validateControlPlaneSubscriptionDropped, validateControlPlaneAuthGranted, validateControlPlaneAuthRejected, validateDeliveryQueued, validateDeliveryStarted, validateDeliverySucceeded, validateDeliveryFailed, validateDeliveryDeadLettered, validateWatcherStarted, validateWatcherHeartbeat, validateWatcherCheckpointAdvanced, validateWatcherFailed, validateWatcherStopped, validateSurfaceEnabled, validateSurfaceDisabled, validateSurfaceAccountConnected, validateSurfaceAccountDegraded, validateSurfaceCapabilityChanged, } from './contracts/automation-route.js';
|
|
7
|
+
export { validatePluginLoaded, validatePluginFailed, validateAutomationJobCreated, validateAutomationJobUpdated, validateAutomationJobEnabled, validateAutomationJobDisabled, validateAutomationRunQueued, validateAutomationRunStarted, validateAutomationRunCompleted, validateAutomationRunFailed, validateAutomationRunCancelled, validateAutomationScheduleError, validateAutomationJobAutoDisabled, validateRouteBindingCreated, validateRouteBindingUpdated, validateRouteBindingRemoved, validateRouteBindingResolved, validateRouteReplyTargetCaptured, validateRouteBindingFailed, validateControlPlaneClientConnected, validateControlPlaneClientDisconnected, validateControlPlaneSubscriptionCreated, validateControlPlaneSubscriptionDropped, validateControlPlaneAuthGranted, validateControlPlaneAuthRejected, validateDeliveryQueued, validateDeliveryStarted, validateDeliverySucceeded, validateDeliveryFailed, validateDeliveryDeadLettered, validateWatcherStarted, validateWatcherHeartbeat, validateWatcherCheckpointAdvanced, validateWatcherFailed, validateWatcherStopped, validateSurfaceEnabled, validateSurfaceDisabled, validateSurfaceAccountConnected, validateSurfaceAccountDegraded, validateSurfaceCapabilityChanged, } from './contracts/automation-route.js';
|
|
8
8
|
export declare function validateEvent(event: unknown): import('./contracts/shared.js').ContractResult;
|
|
9
9
|
export declare function isKnownEventType(type: unknown): type is string;
|
|
10
10
|
export declare function registeredEventTypes(): readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/contracts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,iCAAiC,EACjC,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,0BAA0B,EAC1B,mCAAmC,EACnC,sCAAsC,EACtC,uCAAuC,EACvC,uCAAuC,EACvC,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,iCAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/contracts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,iCAAiC,EACjC,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,0BAA0B,EAC1B,mCAAmC,EACnC,sCAAsC,EACtC,uCAAuC,EACvC,uCAAuC,EACvC,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,iCAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AAwHzC,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,uBAAuB,EAAE,cAAc,CAO5F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAE9D;AAED,wBAAgB,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAExD"}
|
|
@@ -5,10 +5,10 @@ export { validateEnvelope, validateEventFields, isString, isNumber, isBoolean, i
|
|
|
5
5
|
import { isObject, isString, } from './contracts/shared.js';
|
|
6
6
|
export { validateTurnStarted, validateTurnStreaming, validateTurnCompleted, validateTurnFailed, validateTurnCancelled, validateToolReceived, validateToolSucceeded, validateToolFailed, } from './contracts/turn-tool.js';
|
|
7
7
|
export { validateAgentSpawning, validateAgentCompleted, validateAgentFailed, validateMcpConnected, validateMcpDisconnected, validateMcpReconnecting, } from './contracts/agent-mcp.js';
|
|
8
|
-
export { validatePluginLoaded, validatePluginFailed, validateAutomationJobCreated, validateAutomationJobUpdated, validateAutomationJobEnabled, validateAutomationJobDisabled, validateAutomationRunQueued, validateAutomationRunStarted, validateAutomationRunCompleted, validateAutomationRunFailed, validateAutomationRunCancelled, validateAutomationScheduleError, validateAutomationJobAutoDisabled, validateRouteBindingCreated, validateRouteBindingUpdated, validateRouteBindingResolved, validateRouteReplyTargetCaptured, validateRouteBindingFailed, validateControlPlaneClientConnected, validateControlPlaneClientDisconnected, validateControlPlaneSubscriptionCreated, validateControlPlaneSubscriptionDropped, validateControlPlaneAuthGranted, validateControlPlaneAuthRejected, validateDeliveryQueued, validateDeliveryStarted, validateDeliverySucceeded, validateDeliveryFailed, validateDeliveryDeadLettered, validateWatcherStarted, validateWatcherHeartbeat, validateWatcherCheckpointAdvanced, validateWatcherFailed, validateWatcherStopped, validateSurfaceEnabled, validateSurfaceDisabled, validateSurfaceAccountConnected, validateSurfaceAccountDegraded, validateSurfaceCapabilityChanged, } from './contracts/automation-route.js';
|
|
8
|
+
export { validatePluginLoaded, validatePluginFailed, validateAutomationJobCreated, validateAutomationJobUpdated, validateAutomationJobEnabled, validateAutomationJobDisabled, validateAutomationRunQueued, validateAutomationRunStarted, validateAutomationRunCompleted, validateAutomationRunFailed, validateAutomationRunCancelled, validateAutomationScheduleError, validateAutomationJobAutoDisabled, validateRouteBindingCreated, validateRouteBindingUpdated, validateRouteBindingRemoved, validateRouteBindingResolved, validateRouteReplyTargetCaptured, validateRouteBindingFailed, validateControlPlaneClientConnected, validateControlPlaneClientDisconnected, validateControlPlaneSubscriptionCreated, validateControlPlaneSubscriptionDropped, validateControlPlaneAuthGranted, validateControlPlaneAuthRejected, validateDeliveryQueued, validateDeliveryStarted, validateDeliverySucceeded, validateDeliveryFailed, validateDeliveryDeadLettered, validateWatcherStarted, validateWatcherHeartbeat, validateWatcherCheckpointAdvanced, validateWatcherFailed, validateWatcherStopped, validateSurfaceEnabled, validateSurfaceDisabled, validateSurfaceAccountConnected, validateSurfaceAccountDegraded, validateSurfaceCapabilityChanged, } from './contracts/automation-route.js';
|
|
9
9
|
import { validateTurnStarted, validateTurnStreaming, validateTurnCompleted, validateTurnFailed, validateTurnCancelled, validateToolReceived, validateToolSucceeded, validateToolFailed, } from './contracts/turn-tool.js';
|
|
10
10
|
import { validateAgentSpawning, validateAgentCompleted, validateAgentFailed, validateMcpConnected, validateMcpDisconnected, validateMcpReconnecting, } from './contracts/agent-mcp.js';
|
|
11
|
-
import { validatePluginLoaded, validatePluginFailed, validateAutomationJobCreated, validateAutomationJobUpdated, validateAutomationJobEnabled, validateAutomationJobDisabled, validateAutomationRunQueued, validateAutomationRunStarted, validateAutomationRunCompleted, validateAutomationRunFailed, validateAutomationRunCancelled, validateAutomationScheduleError, validateAutomationJobAutoDisabled, validateRouteBindingCreated, validateRouteBindingUpdated, validateRouteBindingResolved, validateRouteReplyTargetCaptured, validateRouteBindingFailed, validateControlPlaneClientConnected, validateControlPlaneClientDisconnected, validateControlPlaneSubscriptionCreated, validateControlPlaneSubscriptionDropped, validateControlPlaneAuthGranted, validateControlPlaneAuthRejected, validateDeliveryQueued, validateDeliveryStarted, validateDeliverySucceeded, validateDeliveryFailed, validateDeliveryDeadLettered, validateWatcherStarted, validateWatcherHeartbeat, validateWatcherCheckpointAdvanced, validateWatcherFailed, validateWatcherStopped, validateSurfaceEnabled, validateSurfaceDisabled, validateSurfaceAccountConnected, validateSurfaceAccountDegraded, validateSurfaceCapabilityChanged, } from './contracts/automation-route.js';
|
|
11
|
+
import { validatePluginLoaded, validatePluginFailed, validateAutomationJobCreated, validateAutomationJobUpdated, validateAutomationJobEnabled, validateAutomationJobDisabled, validateAutomationRunQueued, validateAutomationRunStarted, validateAutomationRunCompleted, validateAutomationRunFailed, validateAutomationRunCancelled, validateAutomationScheduleError, validateAutomationJobAutoDisabled, validateRouteBindingCreated, validateRouteBindingUpdated, validateRouteBindingRemoved, validateRouteBindingResolved, validateRouteReplyTargetCaptured, validateRouteBindingFailed, validateControlPlaneClientConnected, validateControlPlaneClientDisconnected, validateControlPlaneSubscriptionCreated, validateControlPlaneSubscriptionDropped, validateControlPlaneAuthGranted, validateControlPlaneAuthRejected, validateDeliveryQueued, validateDeliveryStarted, validateDeliverySucceeded, validateDeliveryFailed, validateDeliveryDeadLettered, validateWatcherStarted, validateWatcherHeartbeat, validateWatcherCheckpointAdvanced, validateWatcherFailed, validateWatcherStopped, validateSurfaceEnabled, validateSurfaceDisabled, validateSurfaceAccountConnected, validateSurfaceAccountDegraded, validateSurfaceCapabilityChanged, } from './contracts/automation-route.js';
|
|
12
12
|
const EVENT_VALIDATORS = {
|
|
13
13
|
TURN_STARTED: validateTurnStarted,
|
|
14
14
|
TURN_STREAMING: validateTurnStreaming,
|
|
@@ -39,6 +39,7 @@ const EVENT_VALIDATORS = {
|
|
|
39
39
|
AUTOMATION_JOB_AUTO_DISABLED: validateAutomationJobAutoDisabled,
|
|
40
40
|
ROUTE_BINDING_CREATED: validateRouteBindingCreated,
|
|
41
41
|
ROUTE_BINDING_UPDATED: validateRouteBindingUpdated,
|
|
42
|
+
ROUTE_BINDING_REMOVED: validateRouteBindingRemoved,
|
|
42
43
|
ROUTE_BINDING_RESOLVED: validateRouteBindingResolved,
|
|
43
44
|
ROUTE_REPLY_TARGET_CAPTURED: validateRouteReplyTargetCaptured,
|
|
44
45
|
ROUTE_BINDING_FAILED: validateRouteBindingFailed,
|
|
@@ -17,6 +17,11 @@ export type RouteEvent = {
|
|
|
17
17
|
type: 'ROUTE_BINDING_UPDATED';
|
|
18
18
|
bindingId: string;
|
|
19
19
|
changedFields: string[];
|
|
20
|
+
} | {
|
|
21
|
+
type: 'ROUTE_BINDING_REMOVED';
|
|
22
|
+
bindingId: string;
|
|
23
|
+
surfaceKind: RouteSurfaceKind;
|
|
24
|
+
externalId: string;
|
|
20
25
|
} | {
|
|
21
26
|
type: 'ROUTE_BINDING_RESOLVED';
|
|
22
27
|
bindingId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/routes.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF;;GAEG;AAEH,eAAO,MAAM,mBAAmB,0LAiBtB,CAAC;AACX,eAAO,MAAM,kBAAkB,uDAAwD,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,6BAA6B,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/routes.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF;;GAEG;AAEH,eAAO,MAAM,mBAAmB,0LAiBtB,CAAC;AACX,eAAO,MAAM,kBAAkB,uDAAwD,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,6BAA6B,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/feature-flags/flags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/feature-flags/flags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EA0gBtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAE7D,CAAC"}
|
|
@@ -30,10 +30,7 @@ export const FEATURE_FLAGS = [
|
|
|
30
30
|
description: 'Enables the HITL UX mode system (quiet/balanced/operator) for notification verbosity '
|
|
31
31
|
+ 'control. When enabled, ModeManager applies the configured HITL preset to the '
|
|
32
32
|
+ 'notification router at startup and on mode change. '
|
|
33
|
-
+ 'Disable to keep the router on its baseline delivery policy.
|
|
34
|
-
+ '@remarks This flag is informational for dashboard display only. '
|
|
35
|
-
+ 'HITL modes are always applied from config at startup regardless of this flag — '
|
|
36
|
-
+ 'it does not gate the runtime behaviour of ModeManager.',
|
|
33
|
+
+ 'Disable to keep the router on its baseline delivery policy and reject HITL mode changes.',
|
|
37
34
|
defaultState: 'disabled',
|
|
38
35
|
tier: 3,
|
|
39
36
|
runtimeToggleable: true,
|
|
@@ -94,10 +91,6 @@ export const FEATURE_FLAGS = [
|
|
|
94
91
|
runtimeToggleable: true,
|
|
95
92
|
},
|
|
96
93
|
// ── Tier 7 (continued) ──────────────────────────────────────────────────
|
|
97
|
-
// @remarks policy-signing: this flag is informational for UI/ops status display only —
|
|
98
|
-
// it is NOT a runtime gate. Signing always runs when a signing key is provided via
|
|
99
|
-
// `signingKey` in `PolicyLoaderOptions`; the flag does not suppress or bypass that
|
|
100
|
-
// behaviour. Use this flag to surface signing status in dashboards or operational tooling.
|
|
101
94
|
{
|
|
102
95
|
id: 'policy-signing',
|
|
103
96
|
name: 'Policy Signing',
|
|
@@ -266,9 +259,9 @@ export const FEATURE_FLAGS = [
|
|
|
266
259
|
{
|
|
267
260
|
id: 'automation-runtime',
|
|
268
261
|
name: 'Automation Runtime',
|
|
269
|
-
description: 'Enables the first-class automation job
|
|
270
|
-
+ 'run history, catch-up behavior,
|
|
271
|
-
+ '
|
|
262
|
+
description: 'Legacy startup alias for automation-domain. Enables the first-class automation job '
|
|
263
|
+
+ 'and run model, including durable scheduling, run history, catch-up behavior, '
|
|
264
|
+
+ 'and execution policies.',
|
|
272
265
|
defaultState: 'disabled',
|
|
273
266
|
tier: 6,
|
|
274
267
|
runtimeToggleable: false,
|
|
@@ -276,8 +269,9 @@ export const FEATURE_FLAGS = [
|
|
|
276
269
|
{
|
|
277
270
|
id: 'gateway-control-plane',
|
|
278
271
|
name: 'Gateway Control Plane',
|
|
279
|
-
description: '
|
|
280
|
-
+ 'task, and integration state over
|
|
272
|
+
description: 'Legacy startup alias for control-plane-gateway. Enables the unified control-plane '
|
|
273
|
+
+ 'server that exposes shared automation, session, task, and integration state over '
|
|
274
|
+
+ 'authenticated APIs and live event streams.',
|
|
281
275
|
defaultState: 'disabled',
|
|
282
276
|
tier: 6,
|
|
283
277
|
runtimeToggleable: false,
|
|
@@ -285,8 +279,8 @@ export const FEATURE_FLAGS = [
|
|
|
285
279
|
{
|
|
286
280
|
id: 'omnichannel-route-binding',
|
|
287
281
|
name: 'Omnichannel Route Binding',
|
|
288
|
-
description: 'Enables route binding and reply-context
|
|
289
|
-
+ 'ntfy, and generic webhook surfaces.',
|
|
282
|
+
description: 'Legacy startup alias for route-binding. Enables route binding and reply-context '
|
|
283
|
+
+ 'preservation across terminal, web, Slack, Discord, ntfy, and generic webhook surfaces.',
|
|
290
284
|
defaultState: 'disabled',
|
|
291
285
|
tier: 6,
|
|
292
286
|
runtimeToggleable: false,
|
|
@@ -294,7 +288,8 @@ export const FEATURE_FLAGS = [
|
|
|
294
288
|
{
|
|
295
289
|
id: 'omnichannel-surface-adapters',
|
|
296
290
|
name: 'Omnichannel Surface Adapters',
|
|
297
|
-
description: '
|
|
291
|
+
description: 'Legacy startup alias that enables all non-TUI channel surface gates. Enables the '
|
|
292
|
+
+ 'channel adapter layer for interactive Slack and Discord surfaces plus '
|
|
298
293
|
+ 'notification-oriented ntfy and generic webhook delivery.',
|
|
299
294
|
defaultState: 'disabled',
|
|
300
295
|
tier: 7,
|
|
@@ -303,7 +298,8 @@ export const FEATURE_FLAGS = [
|
|
|
303
298
|
{
|
|
304
299
|
id: 'embedded-web-control-ui',
|
|
305
300
|
name: 'Embedded Web Control UI',
|
|
306
|
-
description: 'Enables the embedded browser operator surface
|
|
301
|
+
description: 'Legacy startup alias for web-surface. Enables the embedded browser operator surface '
|
|
302
|
+
+ 'served by the control plane.',
|
|
307
303
|
defaultState: 'disabled',
|
|
308
304
|
tier: 7,
|
|
309
305
|
runtimeToggleable: false,
|
|
@@ -311,8 +307,8 @@ export const FEATURE_FLAGS = [
|
|
|
311
307
|
{
|
|
312
308
|
id: 'managed-watcher-services',
|
|
313
309
|
name: 'Managed Watcher Services',
|
|
314
|
-
description: 'Enables the watcher registry and managed
|
|
315
|
-
+ 'automation triggers and integration health.',
|
|
310
|
+
description: 'Legacy startup alias for watcher-framework. Enables the watcher registry and managed '
|
|
311
|
+
+ 'long-running source listeners for external automation triggers and integration health.',
|
|
316
312
|
defaultState: 'disabled',
|
|
317
313
|
tier: 7,
|
|
318
314
|
runtimeToggleable: false,
|
|
@@ -320,8 +316,8 @@ export const FEATURE_FLAGS = [
|
|
|
320
316
|
{
|
|
321
317
|
id: 'service-installation',
|
|
322
318
|
name: 'Service Installation',
|
|
323
|
-
description: 'Enables platform service install,
|
|
324
|
-
+ 'Goodvibes deployments.',
|
|
319
|
+
description: 'Legacy startup alias for service-management. Enables platform service install, '
|
|
320
|
+
+ 'autostart, and status management for daemonized Goodvibes deployments.',
|
|
325
321
|
defaultState: 'disabled',
|
|
326
322
|
tier: 7,
|
|
327
323
|
runtimeToggleable: false,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FeatureFlagManager } from './manager.js';
|
|
2
|
+
export type FeatureFlagReader = Pick<FeatureFlagManager, 'isEnabled'> | null | undefined;
|
|
3
|
+
export declare function isFeatureGateEnabled(featureFlags: FeatureFlagReader, flagId: string, aliases?: readonly string[]): boolean;
|
|
4
|
+
export declare function requireFeatureGate(featureFlags: FeatureFlagReader, flagId: string, operation: string, aliases?: readonly string[]): void;
|
|
5
|
+
export declare function surfaceFeatureGateId(surface: string): string | null;
|
|
6
|
+
export declare function isSurfaceFeatureGateEnabled(featureFlags: FeatureFlagReader, surface: string): boolean;
|
|
7
|
+
//# sourceMappingURL=gates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/feature-flags/gates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAEzF,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,iBAAiB,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,SAAS,MAAM,EAAO,GAC9B,OAAO,CAGT;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,iBAAiB,EAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,SAAS,MAAM,EAAO,GAC9B,IAAI,CAGN;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAenE;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,MAAM,GACd,OAAO,CAOT"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export function isFeatureGateEnabled(featureFlags, flagId, aliases = []) {
|
|
2
|
+
if (!featureFlags)
|
|
3
|
+
return true;
|
|
4
|
+
return featureFlags.isEnabled(flagId) || aliases.some((alias) => featureFlags.isEnabled(alias));
|
|
5
|
+
}
|
|
6
|
+
export function requireFeatureGate(featureFlags, flagId, operation, aliases = []) {
|
|
7
|
+
if (isFeatureGateEnabled(featureFlags, flagId, aliases))
|
|
8
|
+
return;
|
|
9
|
+
throw new Error(`${flagId} feature flag is disabled; cannot ${operation}`);
|
|
10
|
+
}
|
|
11
|
+
export function surfaceFeatureGateId(surface) {
|
|
12
|
+
switch (surface) {
|
|
13
|
+
case 'web':
|
|
14
|
+
return 'web-surface';
|
|
15
|
+
case 'slack':
|
|
16
|
+
return 'slack-surface';
|
|
17
|
+
case 'discord':
|
|
18
|
+
return 'discord-surface';
|
|
19
|
+
case 'ntfy':
|
|
20
|
+
return 'ntfy-surface';
|
|
21
|
+
case 'webhook':
|
|
22
|
+
return 'webhook-surface';
|
|
23
|
+
default:
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function isSurfaceFeatureGateEnabled(featureFlags, surface) {
|
|
28
|
+
if (!featureFlags)
|
|
29
|
+
return true;
|
|
30
|
+
if (surface === 'tui' || surface === 'service')
|
|
31
|
+
return true;
|
|
32
|
+
if (featureFlags.isEnabled('omnichannel-surface-adapters'))
|
|
33
|
+
return true;
|
|
34
|
+
if (surface === 'web' && featureFlags.isEnabled('embedded-web-control-ui'))
|
|
35
|
+
return true;
|
|
36
|
+
const flagId = surfaceFeatureGateId(surface);
|
|
37
|
+
return flagId ? featureFlags.isEnabled(flagId) : false;
|
|
38
|
+
}
|
|
@@ -19,4 +19,6 @@ export type { FlagState, FeatureFlag, FlagConfig, FlagTransition } from './types
|
|
|
19
19
|
export type { FlagSubscriber } from './manager.js';
|
|
20
20
|
export { FeatureFlagManager, createFeatureFlagManager } from './manager.js';
|
|
21
21
|
export { FEATURE_FLAGS, FEATURE_FLAG_MAP } from './flags.js';
|
|
22
|
+
export type { FeatureFlagReader } from './gates.js';
|
|
23
|
+
export { isFeatureGateEnabled, isSurfaceFeatureGateEnabled, requireFeatureGate, surfaceFeatureGateId, } from './gates.js';
|
|
22
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -17,3 +17,4 @@
|
|
|
17
17
|
*/
|
|
18
18
|
export { FeatureFlagManager, createFeatureFlagManager } from './manager.js';
|
|
19
19
|
export { FEATURE_FLAGS, FEATURE_FLAG_MAP } from './flags.js';
|
|
20
|
+
export { isFeatureGateEnabled, isSurfaceFeatureGateEnabled, requireFeatureGate, surfaceFeatureGateId, } from './gates.js';
|