@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
|
@@ -16,6 +16,7 @@ import { createDomainDispatch } from '../store/index.js';
|
|
|
16
16
|
import { TaskRegistry } from './registry.js';
|
|
17
17
|
import { canTransition } from './lifecycle.js';
|
|
18
18
|
import { emitTaskCreated, emitTaskStarted, emitTaskBlocked, emitTaskCompleted, emitTaskFailed, emitTaskCancelled, } from '../emitters/tasks.js';
|
|
19
|
+
import { isFeatureGateEnabled, requireFeatureGate } from '../feature-flags/index.js';
|
|
19
20
|
// ---------------------------------------------------------------------------
|
|
20
21
|
// Error types
|
|
21
22
|
// ---------------------------------------------------------------------------
|
|
@@ -65,19 +66,28 @@ export class UnifiedTaskManager {
|
|
|
65
66
|
_bus;
|
|
66
67
|
/** Session ID for emitter context. */
|
|
67
68
|
_sessionId;
|
|
69
|
+
_featureFlags;
|
|
68
70
|
/**
|
|
69
71
|
* @param store - The Zustand runtime store to dispatch state updates to.
|
|
70
72
|
* @param bus - The RuntimeEventBus to emit task lifecycle events on.
|
|
71
73
|
* @param sessionId - The current session identifier for emitter context.
|
|
72
74
|
*/
|
|
73
|
-
constructor(store, bus, sessionId) {
|
|
75
|
+
constructor(store, bus, sessionId, featureFlags) {
|
|
74
76
|
this._store = store;
|
|
75
77
|
this._dispatch = createDomainDispatch(store);
|
|
76
78
|
this._bus = bus;
|
|
77
79
|
this._sessionId = sessionId;
|
|
80
|
+
this._featureFlags = featureFlags ?? null;
|
|
81
|
+
}
|
|
82
|
+
_isEnabled() {
|
|
83
|
+
return isFeatureGateEnabled(this._featureFlags, 'unified-runtime-task');
|
|
84
|
+
}
|
|
85
|
+
_requireEnabled(operation) {
|
|
86
|
+
requireFeatureGate(this._featureFlags, 'unified-runtime-task', operation);
|
|
78
87
|
}
|
|
79
88
|
// ── TaskManager interface ────────────────────────────────────────────────
|
|
80
89
|
createTask(params) {
|
|
90
|
+
this._requireEnabled('create runtime task');
|
|
81
91
|
const now = Date.now();
|
|
82
92
|
const id = crypto.randomUUID();
|
|
83
93
|
const task = {
|
|
@@ -112,6 +122,7 @@ export class UnifiedTaskManager {
|
|
|
112
122
|
return task;
|
|
113
123
|
}
|
|
114
124
|
startTask(taskId) {
|
|
125
|
+
this._requireEnabled('start runtime task');
|
|
115
126
|
const task = this._requireTask(taskId);
|
|
116
127
|
this._requireTransition(task, 'running');
|
|
117
128
|
const updated = this._applyTransition(task, 'running', {
|
|
@@ -121,6 +132,7 @@ export class UnifiedTaskManager {
|
|
|
121
132
|
return updated;
|
|
122
133
|
}
|
|
123
134
|
blockTask(taskId, reason) {
|
|
135
|
+
this._requireEnabled('block runtime task');
|
|
124
136
|
const task = this._requireTask(taskId);
|
|
125
137
|
this._requireTransition(task, 'blocked');
|
|
126
138
|
const updated = this._applyTransition(task, 'blocked', {});
|
|
@@ -128,6 +140,7 @@ export class UnifiedTaskManager {
|
|
|
128
140
|
return updated;
|
|
129
141
|
}
|
|
130
142
|
completeTask(taskId, result) {
|
|
143
|
+
this._requireEnabled('complete runtime task');
|
|
131
144
|
const task = this._requireTask(taskId);
|
|
132
145
|
this._requireTransition(task, 'completed');
|
|
133
146
|
const now = Date.now();
|
|
@@ -140,6 +153,7 @@ export class UnifiedTaskManager {
|
|
|
140
153
|
return updated;
|
|
141
154
|
}
|
|
142
155
|
failTask(taskId, params) {
|
|
156
|
+
this._requireEnabled('fail runtime task');
|
|
143
157
|
const task = this._requireTask(taskId);
|
|
144
158
|
this._requireTransition(task, 'failed');
|
|
145
159
|
const now = Date.now();
|
|
@@ -188,6 +202,7 @@ export class UnifiedTaskManager {
|
|
|
188
202
|
return updated;
|
|
189
203
|
}
|
|
190
204
|
cancelTask(taskId, params) {
|
|
205
|
+
this._requireEnabled('cancel runtime task');
|
|
191
206
|
const task = this._requireTask(taskId);
|
|
192
207
|
if (!task.cancellable) {
|
|
193
208
|
throw new TaskNotCancellableError(taskId);
|
|
@@ -204,6 +219,7 @@ export class UnifiedTaskManager {
|
|
|
204
219
|
return updated;
|
|
205
220
|
}
|
|
206
221
|
updateTask(taskId, params) {
|
|
222
|
+
this._requireEnabled('update runtime task');
|
|
207
223
|
const task = this._requireTask(taskId);
|
|
208
224
|
const updated = {
|
|
209
225
|
...task,
|
|
@@ -217,24 +233,37 @@ export class UnifiedTaskManager {
|
|
|
217
233
|
return updated;
|
|
218
234
|
}
|
|
219
235
|
getTask(taskId) {
|
|
236
|
+
if (!this._isEnabled())
|
|
237
|
+
return undefined;
|
|
220
238
|
return this._registry.get(taskId);
|
|
221
239
|
}
|
|
222
240
|
getTasksByKind(kind) {
|
|
241
|
+
if (!this._isEnabled())
|
|
242
|
+
return [];
|
|
223
243
|
return this._registry.getByKind(kind);
|
|
224
244
|
}
|
|
225
245
|
getRunningTasks() {
|
|
246
|
+
if (!this._isEnabled())
|
|
247
|
+
return [];
|
|
226
248
|
return this._registry.getRunning();
|
|
227
249
|
}
|
|
228
250
|
getRunningCount(kind) {
|
|
251
|
+
if (!this._isEnabled())
|
|
252
|
+
return 0;
|
|
229
253
|
return this._registry.getByKind(kind).filter((t) => t.status === 'running').length;
|
|
230
254
|
}
|
|
231
255
|
getChildTasks(parentTaskId) {
|
|
256
|
+
if (!this._isEnabled())
|
|
257
|
+
return [];
|
|
232
258
|
return this._registry.getChildren(parentTaskId);
|
|
233
259
|
}
|
|
234
260
|
getTaskStatus(taskId) {
|
|
261
|
+
if (!this._isEnabled())
|
|
262
|
+
return undefined;
|
|
235
263
|
return this._registry.get(taskId)?.status;
|
|
236
264
|
}
|
|
237
265
|
retryTask(taskId) {
|
|
266
|
+
this._requireEnabled('retry runtime task');
|
|
238
267
|
const task = this._requireTask(taskId);
|
|
239
268
|
if (task.status !== 'failed' && task.status !== 'cancelled') {
|
|
240
269
|
throw new TaskTransitionError(task.id, task.status, 'queued');
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
import { RuntimeTracer } from './tracer.js';
|
|
23
23
|
import { RuntimeMeter } from './meter.js';
|
|
24
24
|
import type { TelemetryProviderConfig } from './types.js';
|
|
25
|
+
import type { FeatureFlagManager } from '../feature-flags/index.js';
|
|
26
|
+
import type { OtlpConfig } from './exporters/index.js';
|
|
25
27
|
export type { AttributeValue, SpanAttributes, SpanContext, SpanEvent, SpanKind, SpanStatus, SpanStatusCode, ReadableSpan, Span, SpanExporter, Counter, Histogram, HistogramSnapshot, Gauge, MetricLabels, TracerConfig, MeterConfig, TelemetryProviderConfig, } from './types.js';
|
|
26
28
|
export { SpanStatusCode as SpanStatusCodes, SpanKind as SpanKinds } from './types.js';
|
|
27
29
|
export { RuntimeTracer } from './tracer.js';
|
|
@@ -30,12 +32,16 @@ export type { TelemetrySeverity, TelemetryViewMode, TelemetryFilter, TelemetryRe
|
|
|
30
32
|
export { TelemetryApiService } from './api.js';
|
|
31
33
|
export type { TurnSpanContext, TurnSpanEndContext, ToolSpanContext, ToolSpanEndContext, ToolPhase, LlmSpanContext, LlmSpanEndContext, LlmTokenUsage, PluginSpanContext, PluginSpanEndContext, PluginPhase, McpSpanContext, McpSpanEndContext, McpPhase, TransportSpanContext, TransportSpanEndContext, TransportPhase, TaskSpanContext, TaskSpanEndContext, TaskPhase, AgentSpanContext, AgentSpanEndContext, AgentPhase, PermissionSpanContext, PermissionSpanEndContext, PermissionPhase, SessionSpanContext, SessionSpanEndContext, SessionPhase, CompactionSpanContext, CompactionSpanEndContext, CompactionPhase, HealthCascadeSpanContext, } from './spans/index.js';
|
|
32
34
|
export { startTurnSpan, endTurnSpan, startToolSpan, recordToolPhase, endToolSpan, startLlmSpan, recordLlmStreamStart, endLlmSpan, startPluginSpan, recordPluginPhase, endPluginSpan, startMcpSpan, recordMcpPhase, endMcpSpan, startTransportSpan, recordTransportPhase, endTransportSpan, startTaskSpan, recordTaskPhase, endTaskSpan, startAgentSpan, recordAgentPhase, endAgentSpan, startPermissionSpan, recordPermissionPhase, endPermissionSpan, startSessionSpan, recordSessionPhase, endSessionSpan, startCompactionSpan, recordCompactionPhase, endCompactionSpan, recordHealthCascadeSpan, } from './spans/index.js';
|
|
33
|
-
export type { LocalLedgerConfig, ConsoleVerbosity, ConsoleExporterConfig } from './exporters/index.js';
|
|
34
|
-
export { LocalLedgerExporter, ConsoleExporter } from './exporters/index.js';
|
|
35
|
+
export type { LocalLedgerConfig, ConsoleVerbosity, ConsoleExporterConfig, OtlpConfig } from './exporters/index.js';
|
|
36
|
+
export { LocalLedgerExporter, ConsoleExporter, OtlpExporter } from './exporters/index.js';
|
|
35
37
|
export type { InstrumentationHandle } from './instrumentation/index.js';
|
|
36
38
|
export { DomainBridge, createInstrumentation } from './instrumentation/index.js';
|
|
37
39
|
/** Alias for TelemetryProviderConfig to match the factory parameter name. */
|
|
38
40
|
export type TelemetryConfig = TelemetryProviderConfig;
|
|
41
|
+
export interface TelemetryProviderOptions {
|
|
42
|
+
readonly featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null;
|
|
43
|
+
readonly otlp?: OtlpConfig;
|
|
44
|
+
}
|
|
39
45
|
/**
|
|
40
46
|
* Create a telemetry provider — a paired RuntimeTracer and RuntimeMeter.
|
|
41
47
|
*
|
|
@@ -46,7 +52,7 @@ export type TelemetryConfig = TelemetryProviderConfig;
|
|
|
46
52
|
* @param config - Optional telemetry provider configuration.
|
|
47
53
|
* @returns An object with `tracer` and `meter` instances.
|
|
48
54
|
*/
|
|
49
|
-
export declare function createTelemetryProvider(config?: TelemetryConfig): {
|
|
55
|
+
export declare function createTelemetryProvider(config?: TelemetryConfig, options?: TelemetryProviderOptions): {
|
|
50
56
|
tracer: RuntimeTracer;
|
|
51
57
|
meter: RuntimeMeter;
|
|
52
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/telemetry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,13 +21,14 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import { RuntimeTracer } from './tracer.js';
|
|
23
23
|
import { RuntimeMeter } from './meter.js';
|
|
24
|
+
import { OtlpExporter } from './exporters/index.js';
|
|
24
25
|
export { SpanStatusCode as SpanStatusCodes, SpanKind as SpanKinds } from './types.js';
|
|
25
26
|
// Re-export tracer and meter classes
|
|
26
27
|
export { RuntimeTracer } from './tracer.js';
|
|
27
28
|
export { RuntimeMeter } from './meter.js';
|
|
28
29
|
export { TelemetryApiService } from './api.js';
|
|
29
30
|
export { startTurnSpan, endTurnSpan, startToolSpan, recordToolPhase, endToolSpan, startLlmSpan, recordLlmStreamStart, endLlmSpan, startPluginSpan, recordPluginPhase, endPluginSpan, startMcpSpan, recordMcpPhase, endMcpSpan, startTransportSpan, recordTransportPhase, endTransportSpan, startTaskSpan, recordTaskPhase, endTaskSpan, startAgentSpan, recordAgentPhase, endAgentSpan, startPermissionSpan, recordPermissionPhase, endPermissionSpan, startSessionSpan, recordSessionPhase, endSessionSpan, startCompactionSpan, recordCompactionPhase, endCompactionSpan, recordHealthCascadeSpan, } from './spans/index.js';
|
|
30
|
-
export { LocalLedgerExporter, ConsoleExporter } from './exporters/index.js';
|
|
31
|
+
export { LocalLedgerExporter, ConsoleExporter, OtlpExporter } from './exporters/index.js';
|
|
31
32
|
export { DomainBridge, createInstrumentation } from './instrumentation/index.js';
|
|
32
33
|
/**
|
|
33
34
|
* Create a telemetry provider — a paired RuntimeTracer and RuntimeMeter.
|
|
@@ -39,11 +40,13 @@ export { DomainBridge, createInstrumentation } from './instrumentation/index.js'
|
|
|
39
40
|
* @param config - Optional telemetry provider configuration.
|
|
40
41
|
* @returns An object with `tracer` and `meter` instances.
|
|
41
42
|
*/
|
|
42
|
-
export function createTelemetryProvider(config) {
|
|
43
|
+
export function createTelemetryProvider(config, options = {}) {
|
|
44
|
+
const foundationEnabled = options.featureFlags?.isEnabled('otel-foundation') ?? false;
|
|
45
|
+
const remoteExportEnabled = foundationEnabled && (options.featureFlags?.isEnabled('otel-remote-export') ?? false);
|
|
43
46
|
const tracer = new RuntimeTracer(config?.tracer ?? {
|
|
44
47
|
scope: 'goodvibes-sdk',
|
|
45
|
-
enabled:
|
|
46
|
-
exporters: [],
|
|
48
|
+
enabled: foundationEnabled,
|
|
49
|
+
exporters: remoteExportEnabled && options.otlp ? [new OtlpExporter(options.otlp)] : [],
|
|
47
50
|
});
|
|
48
51
|
const meter = new RuntimeMeter(config?.meter ?? {
|
|
49
52
|
scope: 'goodvibes-sdk',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvG,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASjD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvG,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASjD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAMzF"}
|
|
@@ -17,5 +17,8 @@ const DEFAULTS = {
|
|
|
17
17
|
* @returns A fully configured PhasedToolExecutor instance.
|
|
18
18
|
*/
|
|
19
19
|
export function createPhasedExecutor(config) {
|
|
20
|
-
|
|
20
|
+
const enableBudgetEnforcement = config?.enableBudgetEnforcement
|
|
21
|
+
?? config?.featureFlags?.isEnabled('runtime-tools-budget-enforcement')
|
|
22
|
+
?? false;
|
|
23
|
+
return new PhasedToolExecutor({ ...DEFAULTS, ...config, enableBudgetEnforcement });
|
|
21
24
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ToolResult } from '../../types/tools.js';
|
|
2
|
+
import type { FeatureFlagManager } from '../feature-flags/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* BudgetExceedReason — typed discriminant for budget breach events.
|
|
4
5
|
*
|
|
@@ -102,6 +103,11 @@ export interface ExecutorConfig {
|
|
|
102
103
|
* ignored. Controlled by the `runtime-tools-budget-enforcement` feature flag.
|
|
103
104
|
*/
|
|
104
105
|
enableBudgetEnforcement?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Optional feature-flag manager used by createPhasedExecutor() to derive
|
|
108
|
+
* runtime-backed defaults. Explicit ExecutorConfig booleans still win.
|
|
109
|
+
*/
|
|
110
|
+
featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null;
|
|
105
111
|
/**
|
|
106
112
|
* Optional idempotency store.
|
|
107
113
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B,oBAAoB,GACpB,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,WAAW,GACX,WAAW,GACX,cAAc,GACd,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,WAAW,GACX,cAAc,GACd,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,EAAE,kBAAkB,CAAC;IAC1B,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,gCAAgC,EAAE,gBAAgB,CAAC;CAC1E;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,4EAA4E;IAC5E,YAAY,EAAE,kBAAkB,CAAC;IACjC,iHAAiH;IACjH,SAAS,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,4CAA4C;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,yDAAyD;IACzD,WAAW,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC;CACvE"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* In advisory mode, violations are reported but not blocked.
|
|
13
13
|
*/
|
|
14
14
|
import type { SecurityEvent } from '../runtime/events/security.js';
|
|
15
|
+
import type { FeatureFlagReader } from '../runtime/feature-flags/index.js';
|
|
15
16
|
/** Default rotation cadence: 90 days in ms. */
|
|
16
17
|
export declare const DEFAULT_ROTATION_CADENCE_MS: number;
|
|
17
18
|
/** Default warning threshold: 14 days before rotation deadline. */
|
|
@@ -116,6 +117,11 @@ export interface TokenAuditorConfig {
|
|
|
116
117
|
* When false, violations are reported but tokens remain usable.
|
|
117
118
|
*/
|
|
118
119
|
managed: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Feature flags gate managed blocking when supplied by SDK runtime services.
|
|
122
|
+
* Audits still report violations while disabled.
|
|
123
|
+
*/
|
|
124
|
+
featureFlags?: FeatureFlagReader;
|
|
119
125
|
}
|
|
120
126
|
/**
|
|
121
127
|
* Callback invoked after each token is audited in `auditAll()`.
|
|
@@ -153,6 +159,7 @@ export declare class ApiTokenAuditor {
|
|
|
153
159
|
constructor(config?: TokenAuditorConfig, options?: {
|
|
154
160
|
emitter?: SecurityEventEmitter;
|
|
155
161
|
});
|
|
162
|
+
private _managedBlockingEnabled;
|
|
156
163
|
/**
|
|
157
164
|
* Register a scope policy. Policies must be registered before tokens that
|
|
158
165
|
* reference them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-audit.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/security/token-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"token-audit.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/security/token-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAO3E,+CAA+C;AAC/C,eAAO,MAAM,2BAA2B,QAA2B,CAAC;AAEpE,mEAAmE;AACnE,eAAO,MAAM,qCAAqC,QAA2B,CAAC;AAM9E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,WAAW,CAAC;AAEnD,gDAAgD;AAChD,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhE,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,gDAAgD;AAChD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,wBAAwB,CAAC;IACnC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oCAAoC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oCAAoC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAMlE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;gBAG9C,MAAM,GAAE,kBAAuC,EAC/C,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,oBAAoB,CAAA;KAAE;IAM9C,OAAO,CAAC,uBAAuB;IAQ/B;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAK9C;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAU/C;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQzC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;IAQzD;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,wBAAwB,GAAG,IAAI;IAYzF,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,iBAAiB;IA0CzB;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,GAAE,MAAmB,GAAG,gBAAgB;IA2FpD;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO;IAa7D,sCAAsC;IACtC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,mCAAmC;IACnC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,qCAAqC;IACrC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,gEAAgE;IAChE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAInD,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;CAG3D"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* In advisory mode, violations are reported but not blocked.
|
|
13
13
|
*/
|
|
14
14
|
import { logger } from '../utils/logger.js';
|
|
15
|
+
import { isFeatureGateEnabled } from '../runtime/feature-flags/index.js';
|
|
15
16
|
// ---------------------------------------------------------------------------
|
|
16
17
|
// Constants
|
|
17
18
|
// ---------------------------------------------------------------------------
|
|
@@ -53,6 +54,9 @@ export class ApiTokenAuditor {
|
|
|
53
54
|
this._config = config;
|
|
54
55
|
this._emitter = options?.emitter ?? ((_event) => { });
|
|
55
56
|
}
|
|
57
|
+
_managedBlockingEnabled() {
|
|
58
|
+
return isFeatureGateEnabled(this._config.featureFlags, 'token-scope-rotation-audit');
|
|
59
|
+
}
|
|
56
60
|
// -------------------------------------------------------------------------
|
|
57
61
|
// Registry
|
|
58
62
|
// -------------------------------------------------------------------------
|
|
@@ -185,7 +189,7 @@ export class ApiTokenAuditor {
|
|
|
185
189
|
const isOverdue = rotation.outcome === 'overdue';
|
|
186
190
|
const isWarning = rotation.outcome === 'warning';
|
|
187
191
|
// In managed mode: block tokens with scope violations or overdue rotation
|
|
188
|
-
const isBlocked = this._config.managed && (hasViolation || isOverdue);
|
|
192
|
+
const isBlocked = this._config.managed && this._managedBlockingEnabled() && (hasViolation || isOverdue);
|
|
189
193
|
const result = {
|
|
190
194
|
tokenId,
|
|
191
195
|
label: metadata.label,
|
|
@@ -256,7 +260,7 @@ export class ApiTokenAuditor {
|
|
|
256
260
|
* Returns false when not in managed mode or when the token is not registered.
|
|
257
261
|
*/
|
|
258
262
|
isBlocked(tokenId, now = Date.now()) {
|
|
259
|
-
if (!this._config.managed)
|
|
263
|
+
if (!this._config.managed || !this._managedBlockingEnabled())
|
|
260
264
|
return false;
|
|
261
265
|
const scope = this.auditScope(tokenId);
|
|
262
266
|
if (!scope)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DomainVerbosity } from '../runtime/notifications/types.js';
|
|
2
|
+
import type { FeatureFlagReader } from '../runtime/feature-flags/index.js';
|
|
2
3
|
export type ModePreset = 'default' | 'vibecoding' | 'justvibes' | (string & Record<never, never>);
|
|
3
4
|
export interface VerbosityDefaults {
|
|
4
5
|
write: string;
|
|
@@ -28,8 +29,14 @@ export declare const HITL_OPERATOR: HITLModeDefinition;
|
|
|
28
29
|
export declare class ModeManager {
|
|
29
30
|
private currentMode;
|
|
30
31
|
private modes;
|
|
32
|
+
private readonly featureFlags;
|
|
31
33
|
private hitlMode;
|
|
32
34
|
private domainOverrides;
|
|
35
|
+
constructor(options?: {
|
|
36
|
+
readonly featureFlags?: FeatureFlagReader;
|
|
37
|
+
});
|
|
38
|
+
private hitlEnabled;
|
|
39
|
+
private requireHitlEnabled;
|
|
33
40
|
getMode(): ModePreset;
|
|
34
41
|
getModeDefinition(): ModeDefinition;
|
|
35
42
|
setMode(mode: ModePreset): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/mode-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"mode-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/mode-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAO3E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAElG,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;CACpC;AA6CD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,eAAe,CAAC;IACxC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,EAAE,kBAMxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBAM3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBAM3B,CAAC;AAQF,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IAEjD,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,eAAe,CAA2C;gBAEtD,OAAO,GAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAA;KAAO;IAIvE,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,IAAI,UAAU;IAIrB,iBAAiB,IAAI,cAAc;IAInC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAS/B,SAAS,IAAI,cAAc,EAAE;IAI7B,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IASvC,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQlD,WAAW,IAAI,QAAQ;IAKvB,aAAa,IAAI,kBAAkB;IAKnC;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAWjC,eAAe,IAAI,kBAAkB,EAAE;IAKvC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAKpE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAKnD,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAKrD,aAAa,CAAC,MAAM,EAAE;QACpB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QAC5C,gBAAgB,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,yBAAyB,CAAC,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;QAC7D,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;KACtE,GAAG,IAAI;CAUT"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isFeatureGateEnabled, requireFeatureGate } from '../runtime/feature-flags/index.js';
|
|
1
2
|
const DEFAULT_VERBOSITY = {
|
|
2
3
|
write: 'standard',
|
|
3
4
|
edit: 'with_diff',
|
|
@@ -62,8 +63,18 @@ const HITL_PRESETS = [HITL_QUIET, HITL_BALANCED, HITL_OPERATOR];
|
|
|
62
63
|
export class ModeManager {
|
|
63
64
|
currentMode = 'default';
|
|
64
65
|
modes = [...BUILT_IN_MODES];
|
|
66
|
+
featureFlags;
|
|
65
67
|
hitlMode = 'balanced';
|
|
66
68
|
domainOverrides = new Map();
|
|
69
|
+
constructor(options = {}) {
|
|
70
|
+
this.featureFlags = options.featureFlags ?? null;
|
|
71
|
+
}
|
|
72
|
+
hitlEnabled() {
|
|
73
|
+
return isFeatureGateEnabled(this.featureFlags, 'hitl-ux-modes');
|
|
74
|
+
}
|
|
75
|
+
requireHitlEnabled(operation) {
|
|
76
|
+
requireFeatureGate(this.featureFlags, 'hitl-ux-modes', operation);
|
|
77
|
+
}
|
|
67
78
|
// -------------------------------------------------------------------------
|
|
68
79
|
// Precision tool verbosity mode API
|
|
69
80
|
// -------------------------------------------------------------------------
|
|
@@ -100,9 +111,13 @@ export class ModeManager {
|
|
|
100
111
|
// HITL UX mode API.
|
|
101
112
|
// -------------------------------------------------------------------------
|
|
102
113
|
getHITLMode() {
|
|
114
|
+
if (!this.hitlEnabled())
|
|
115
|
+
return 'balanced';
|
|
103
116
|
return this.hitlMode;
|
|
104
117
|
}
|
|
105
118
|
getHITLPreset() {
|
|
119
|
+
if (!this.hitlEnabled())
|
|
120
|
+
return HITL_BALANCED;
|
|
106
121
|
return HITL_PRESETS.find((p) => p.name === this.hitlMode) ?? HITL_BALANCED;
|
|
107
122
|
}
|
|
108
123
|
/**
|
|
@@ -114,6 +129,7 @@ export class ModeManager {
|
|
|
114
129
|
* any domain-specific overrides.
|
|
115
130
|
*/
|
|
116
131
|
setHITLMode(mode) {
|
|
132
|
+
this.requireHitlEnabled('set HITL UX mode');
|
|
117
133
|
const found = HITL_PRESETS.find((p) => p.name === mode);
|
|
118
134
|
if (!found) {
|
|
119
135
|
const available = HITL_PRESETS.map((p) => `"${p.name}"`).join(', ');
|
|
@@ -123,18 +139,27 @@ export class ModeManager {
|
|
|
123
139
|
this.domainOverrides.clear();
|
|
124
140
|
}
|
|
125
141
|
listHITLPresets() {
|
|
142
|
+
if (!this.hitlEnabled())
|
|
143
|
+
return [];
|
|
126
144
|
return [...HITL_PRESETS];
|
|
127
145
|
}
|
|
128
146
|
setDomainVerbosity(domain, verbosity) {
|
|
147
|
+
this.requireHitlEnabled('set HITL domain verbosity');
|
|
129
148
|
this.domainOverrides.set(domain, verbosity);
|
|
130
149
|
}
|
|
131
150
|
getDomainVerbosity(domain) {
|
|
151
|
+
if (!this.hitlEnabled())
|
|
152
|
+
return HITL_BALANCED.defaultDomainVerbosity;
|
|
132
153
|
return this.domainOverrides.get(domain) ?? this.getHITLPreset().defaultDomainVerbosity;
|
|
133
154
|
}
|
|
134
155
|
getDomainOverrides() {
|
|
156
|
+
if (!this.hitlEnabled())
|
|
157
|
+
return {};
|
|
135
158
|
return Object.fromEntries(this.domainOverrides);
|
|
136
159
|
}
|
|
137
160
|
applyToRouter(router) {
|
|
161
|
+
if (!this.hitlEnabled())
|
|
162
|
+
return;
|
|
138
163
|
const preset = this.getHITLPreset();
|
|
139
164
|
router.setQuietWhileTyping(preset.quietWhileTyping);
|
|
140
165
|
router.setBatchWindowMs?.(preset.batchWindowMs);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ToolRegistry } from './registry.js';
|
|
2
|
+
import type { Tool } from '../types/tools.js';
|
|
2
3
|
import { FileStateCache } from '../state/file-cache.js';
|
|
3
4
|
import { ProjectIndex } from '../state/project-index.js';
|
|
4
5
|
import { ModeManager } from '../state/mode-manager.js';
|
|
@@ -21,6 +22,8 @@ import type { ServiceRegistry } from '../config/service-registry.js';
|
|
|
21
22
|
import { OverflowHandler } from './shared/overflow.js';
|
|
22
23
|
import type { SessionChangeTracker } from '../sessions/change-tracker.js';
|
|
23
24
|
import type { ArchetypeLoader } from '../agents/archetypes.js';
|
|
25
|
+
type ToolContractFeatureFlags = Pick<FeatureFlagManager, 'isEnabled'>;
|
|
26
|
+
export declare function registerToolWithContractGate(registry: ToolRegistry, tool: Tool, featureFlags?: ToolContractFeatureFlags | null): void;
|
|
24
27
|
/**
|
|
25
28
|
* Register all built-in tools into the given registry.
|
|
26
29
|
* Creates shared FileStateCache and ProjectIndex instances so read/write/edit
|
|
@@ -56,4 +59,5 @@ export declare function registerAllTools(registry: ToolRegistry, deps?: {
|
|
|
56
59
|
fileCache: FileStateCache;
|
|
57
60
|
projectIndex: ProjectIndex;
|
|
58
61
|
};
|
|
62
|
+
export {};
|
|
59
63
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/tools/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,17 @@ import { ProcessManager } from './shared/process-manager.js';
|
|
|
33
33
|
import { AgentMessageBus } from '../agents/message-bus.js';
|
|
34
34
|
import { CrossSessionTaskRegistry } from '../sessions/orchestration/index.js';
|
|
35
35
|
import { OverflowHandler } from './shared/overflow.js';
|
|
36
|
+
export function registerToolWithContractGate(registry, tool, featureFlags) {
|
|
37
|
+
const verifyContracts = featureFlags?.isEnabled('tool-contract-verification') ?? true;
|
|
38
|
+
if (!verifyContracts) {
|
|
39
|
+
registry.register(tool);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
registry.registerWithContract(tool, {
|
|
43
|
+
strictIdempotency: false,
|
|
44
|
+
strictPermissionClass: false,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
36
47
|
/**
|
|
37
48
|
* Register all built-in tools into the given registry.
|
|
38
49
|
* Creates shared FileStateCache and ProjectIndex instances so read/write/edit
|
|
@@ -79,8 +90,11 @@ export function registerAllTools(registry, deps) {
|
|
|
79
90
|
throw new Error('registerAllTools requires surfaceRoot');
|
|
80
91
|
}
|
|
81
92
|
const projectIndex = deps?.projectIndex ?? new ProjectIndex(workingDirectory);
|
|
82
|
-
|
|
83
|
-
|
|
93
|
+
const registerTool = (tool) => {
|
|
94
|
+
registerToolWithContractGate(registry, tool, deps.featureFlags);
|
|
95
|
+
};
|
|
96
|
+
registerTool(new ReadTool(projectIndex, fileCache));
|
|
97
|
+
registerTool(createWriteTool({
|
|
84
98
|
projectRoot: workingDirectory,
|
|
85
99
|
fileCache,
|
|
86
100
|
projectIndex,
|
|
@@ -89,20 +103,20 @@ export function registerAllTools(registry, deps) {
|
|
|
89
103
|
toolLLM: deps.toolLLM,
|
|
90
104
|
changeTracker: deps?.changeTracker,
|
|
91
105
|
}));
|
|
92
|
-
|
|
106
|
+
registerTool(createEditTool(fileCache, {
|
|
93
107
|
fileUndoManager,
|
|
94
108
|
configManager: deps.configManager,
|
|
95
109
|
toolLLM: deps.toolLLM,
|
|
96
110
|
changeTracker: deps?.changeTracker,
|
|
97
111
|
}));
|
|
98
|
-
|
|
99
|
-
|
|
112
|
+
registerTool(createFindTool(workingDirectory, deps.featureFlags));
|
|
113
|
+
registerTool(createExecTool(processManager, {
|
|
100
114
|
featureFlags: deps.featureFlags,
|
|
101
115
|
overflowHandler: deps.overflowHandler,
|
|
102
116
|
}));
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
117
|
+
registerTool(createAnalyzeTool(deps.toolLLM, deps.featureFlags, workingDirectory));
|
|
118
|
+
registerTool(new InspectTool(deps.featureFlags, workingDirectory));
|
|
119
|
+
registerTool(createAgentTool({
|
|
106
120
|
manager: agentManager,
|
|
107
121
|
messageBus: agentMessageBus,
|
|
108
122
|
configManager: deps.configManager,
|
|
@@ -111,38 +125,38 @@ export function registerAllTools(registry, deps) {
|
|
|
111
125
|
}));
|
|
112
126
|
const kvState = new KVState(undefined, workingDirectory);
|
|
113
127
|
const hookDispatcher = new HookDispatcher();
|
|
114
|
-
|
|
128
|
+
registerTool(createStateTool(kvState, projectIndex, {
|
|
115
129
|
memoryDir: join(workingDirectory, '.goodvibes', 'memory'),
|
|
116
130
|
hookDispatcher,
|
|
117
131
|
modeManager,
|
|
118
132
|
}));
|
|
119
|
-
|
|
120
|
-
|
|
133
|
+
registerTool(createWorkflowTool(workflowServices));
|
|
134
|
+
registerTool(createFetchTool({
|
|
121
135
|
serviceRegistry: deps.serviceRegistry,
|
|
122
136
|
featureFlags: deps.featureFlags,
|
|
123
137
|
}));
|
|
124
138
|
if (webSearchService) {
|
|
125
|
-
|
|
139
|
+
registerTool(createWebSearchTool(webSearchService));
|
|
126
140
|
}
|
|
127
|
-
|
|
141
|
+
registerTool(createRegistryTool(registry, {
|
|
128
142
|
workingDirectory,
|
|
129
143
|
homeDirectory: deps.configManager.getHomeDirectory() ?? undefined,
|
|
130
144
|
}));
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
145
|
+
registerTool(createTaskTool(sessionOrchestration));
|
|
146
|
+
registerTool(createTeamTool({ surfaceRoot: deps.surfaceRoot }));
|
|
147
|
+
registerTool(createWorklistTool({ surfaceRoot: deps.surfaceRoot }));
|
|
134
148
|
if (mcpRegistry) {
|
|
135
|
-
|
|
149
|
+
registerTool(createMcpTool(mcpRegistry));
|
|
136
150
|
}
|
|
137
|
-
|
|
138
|
-
|
|
151
|
+
registerTool(createPacketTool({ workingDirectory, surfaceRoot: deps.surfaceRoot }));
|
|
152
|
+
registerTool(createQueryTool({ workingDirectory, surfaceRoot: deps.surfaceRoot }));
|
|
139
153
|
if (remoteRunnerRegistry) {
|
|
140
|
-
|
|
154
|
+
registerTool(createRemoteTool(remoteRunnerRegistry));
|
|
141
155
|
}
|
|
142
|
-
|
|
156
|
+
registerTool(createReplTool(deps.configManager, deps.sandboxSessionRegistry, {
|
|
143
157
|
surfaceRoot: deps.surfaceRoot,
|
|
144
158
|
}));
|
|
145
|
-
|
|
146
|
-
|
|
159
|
+
registerTool(controlTool);
|
|
160
|
+
registerTool(createChannelTool(channelRegistry));
|
|
147
161
|
return { fileCache, projectIndex };
|
|
148
162
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FeatureFlagReader } from '../../runtime/feature-flags/index.js';
|
|
1
2
|
export declare const DEFAULT_MAX_CHARS = 50000;
|
|
2
3
|
/**
|
|
3
4
|
* RetentionPolicyConfig — limits enforced during cleanup for a spill backend.
|
|
@@ -111,6 +112,8 @@ export interface OverflowHandlerConfig {
|
|
|
111
112
|
retention?: RetentionPolicyConfig;
|
|
112
113
|
/** Inject a custom backend directly (takes precedence over spillBackend). */
|
|
113
114
|
backend?: SpillBackend;
|
|
115
|
+
/** Feature flags gate alternate spill backends when supplied by SDK runtime services. */
|
|
116
|
+
featureFlags?: FeatureFlagReader;
|
|
114
117
|
}
|
|
115
118
|
/**
|
|
116
119
|
* Handles large tool output by delegating overflow content to a pluggable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflow.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/shared/overflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"overflow.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/shared/overflow.ts"],"names":[],"mappings":"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"}
|