@intutic/shared-types 2.3.0 → 2.4.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/auth.d.ts +106 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +17 -1
- package/dist/auth.js.map +1 -1
- package/dist/cloudProbe.d.ts +54 -0
- package/dist/cloudProbe.d.ts.map +1 -0
- package/dist/cloudProbe.js +254 -0
- package/dist/cloudProbe.js.map +1 -0
- package/dist/enums.d.ts +48 -0
- package/dist/enums.d.ts.map +1 -1
- package/dist/enums.js +31 -3
- package/dist/enums.js.map +1 -1
- package/dist/finops.d.ts +38 -0
- package/dist/finops.d.ts.map +1 -1
- package/dist/guardrailIr.d.ts +6 -6
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -6
- package/dist/index.js.map +1 -1
- package/dist/mcpBudgets.d.ts +24 -24
- package/dist/notifications.d.ts +17 -2
- package/dist/notifications.d.ts.map +1 -1
- package/dist/notifications.js +26 -1
- package/dist/notifications.js.map +1 -1
- package/dist/providerVerification.d.ts +35 -9
- package/dist/providerVerification.d.ts.map +1 -1
- package/dist/providerVerification.js +79 -19
- package/dist/providerVerification.js.map +1 -1
- package/dist/providers.d.ts +50 -13
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +131 -27
- package/dist/providers.js.map +1 -1
- package/dist/spendBudgets.d.ts +122 -0
- package/dist/spendBudgets.d.ts.map +1 -0
- package/dist/spendBudgets.js +92 -0
- package/dist/spendBudgets.js.map +1 -0
- package/dist/upstreamRetry.d.ts +121 -0
- package/dist/upstreamRetry.d.ts.map +1 -0
- package/dist/upstreamRetry.js +90 -0
- package/dist/upstreamRetry.js.map +1 -0
- package/dist/wasmRuleDescriptor.d.ts +43 -0
- package/dist/wasmRuleDescriptor.d.ts.map +1 -0
- package/dist/wasmRuleDescriptor.js +65 -0
- package/dist/wasmRuleDescriptor.js.map +1 -0
- package/dist/workspaceSettings.d.ts +37 -0
- package/dist/workspaceSettings.d.ts.map +1 -1
- package/dist/workspaceSettings.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpstreamRetrySettingsSchema = exports.UpstreamFallbackTargetSchema = exports.UPSTREAM_PROVIDERS = exports.DEFAULT_UPSTREAM_RETRY = exports.DEFAULT_UPSTREAM_RETRY_STATUSES = exports.UPSTREAM_RETRY_LIMITS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The workspace setting `upstreamRetry`: how the LLM proxy retries a provider
|
|
6
|
+
* call that failed before any response reached the client, and where it falls
|
|
7
|
+
* back when those retries run out.
|
|
8
|
+
*
|
|
9
|
+
* Every field is optional and overrides the proxy's own `config.yaml` value
|
|
10
|
+
* (`intutic_settings.routing.retry` / `.fallbacks`) field by field, so a
|
|
11
|
+
* workspace can change one knob without restating the rest. The proxy reads
|
|
12
|
+
* it from `/api/v1/auth/key-context` (`packages/proxy/src/routing/retry.rs`,
|
|
13
|
+
* `WorkspaceRetry`); `fixtures/upstream-retry-vectors.json` holds the two
|
|
14
|
+
* readings together.
|
|
15
|
+
*/
|
|
16
|
+
const zod_1 = require("zod");
|
|
17
|
+
/**
|
|
18
|
+
* The ceilings both the schema and the proxy enforce, so no setting can
|
|
19
|
+
* configure a retry storm. The proxy clamps `config.yaml` to the same values
|
|
20
|
+
* (`RetryConfig::bounded`); a test holds the two equal.
|
|
21
|
+
*/
|
|
22
|
+
exports.UPSTREAM_RETRY_LIMITS = {
|
|
23
|
+
maxAttempts: 5,
|
|
24
|
+
maxBackoffMs: 60_000,
|
|
25
|
+
budgetMs: 120_000,
|
|
26
|
+
fallbackTargets: 5,
|
|
27
|
+
fallbackModels: 50,
|
|
28
|
+
};
|
|
29
|
+
/** Retried by default: 429, 500, 502, 503, 504 and Anthropic's 529 overloaded. */
|
|
30
|
+
exports.DEFAULT_UPSTREAM_RETRY_STATUSES = [429, 500, 502, 503, 504, 529];
|
|
31
|
+
/** The defaults the proxy applies when neither config.yaml nor the workspace sets a field. */
|
|
32
|
+
exports.DEFAULT_UPSTREAM_RETRY = {
|
|
33
|
+
enabled: true,
|
|
34
|
+
maxAttempts: 3,
|
|
35
|
+
initialBackoffMs: 500,
|
|
36
|
+
maxBackoffMs: 8_000,
|
|
37
|
+
budgetMs: 30_000,
|
|
38
|
+
onStatus: [...exports.DEFAULT_UPSTREAM_RETRY_STATUSES],
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Providers a fallback target may name: every id the proxy resolves
|
|
42
|
+
* (`provider_from_wire_id` in packages/proxy/src/proxy.rs), the cloud
|
|
43
|
+
* providers' aliases included, so a target copied from config.yaml is valid
|
|
44
|
+
* here too. A test holds the two lists equal.
|
|
45
|
+
*/
|
|
46
|
+
exports.UPSTREAM_PROVIDERS = [
|
|
47
|
+
'anthropic',
|
|
48
|
+
'openai',
|
|
49
|
+
'gemini',
|
|
50
|
+
'mistral',
|
|
51
|
+
'openrouter',
|
|
52
|
+
'deepseek',
|
|
53
|
+
'bedrock',
|
|
54
|
+
'vertex_ai',
|
|
55
|
+
'vertex',
|
|
56
|
+
'azure_openai',
|
|
57
|
+
'azure',
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* One fallback target. `model` alone switches model on the provider that
|
|
61
|
+
* model resolves to; `provider` alone sends the same model to another
|
|
62
|
+
* provider; both pin the pair.
|
|
63
|
+
*/
|
|
64
|
+
exports.UpstreamFallbackTargetSchema = zod_1.z
|
|
65
|
+
.object({
|
|
66
|
+
model: zod_1.z.string().trim().min(1).max(200).optional(),
|
|
67
|
+
provider: zod_1.z.enum(exports.UPSTREAM_PROVIDERS).optional(),
|
|
68
|
+
})
|
|
69
|
+
.strict()
|
|
70
|
+
.refine((t) => t.model !== undefined || t.provider !== undefined, {
|
|
71
|
+
message: 'A fallback target names a model, a provider, or both',
|
|
72
|
+
});
|
|
73
|
+
exports.UpstreamRetrySettingsSchema = zod_1.z
|
|
74
|
+
.object({
|
|
75
|
+
enabled: zod_1.z.boolean().optional(),
|
|
76
|
+
maxAttempts: zod_1.z.number().int().min(1).max(exports.UPSTREAM_RETRY_LIMITS.maxAttempts).optional(),
|
|
77
|
+
initialBackoffMs: zod_1.z.number().int().min(0).max(exports.UPSTREAM_RETRY_LIMITS.maxBackoffMs).optional(),
|
|
78
|
+
maxBackoffMs: zod_1.z.number().int().min(0).max(exports.UPSTREAM_RETRY_LIMITS.maxBackoffMs).optional(),
|
|
79
|
+
budgetMs: zod_1.z.number().int().min(0).max(exports.UPSTREAM_RETRY_LIMITS.budgetMs).optional(),
|
|
80
|
+
onStatus: zod_1.z.array(zod_1.z.number().int().min(400).max(599)).max(20).optional(),
|
|
81
|
+
/** Ordered targets, keyed by the model whose retries ran out. */
|
|
82
|
+
fallbacks: zod_1.z
|
|
83
|
+
.record(zod_1.z.string().trim().min(1).max(200), zod_1.z.array(exports.UpstreamFallbackTargetSchema).min(1).max(exports.UPSTREAM_RETRY_LIMITS.fallbackTargets))
|
|
84
|
+
.refine((f) => Object.keys(f).length <= exports.UPSTREAM_RETRY_LIMITS.fallbackModels, {
|
|
85
|
+
message: `At most ${exports.UPSTREAM_RETRY_LIMITS.fallbackModels} models may have fallbacks`,
|
|
86
|
+
})
|
|
87
|
+
.optional(),
|
|
88
|
+
})
|
|
89
|
+
.strict();
|
|
90
|
+
//# sourceMappingURL=upstreamRetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upstreamRetry.js","sourceRoot":"","sources":["../src/upstreamRetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The descriptor of a custom rule uploaded to the control plane — one shape
|
|
3
|
+
* for every proxy that enforces it.
|
|
4
|
+
*
|
|
5
|
+
* The control plane publishes the workspace's active rules as a list of these:
|
|
6
|
+
* to Valkey for the LLM proxy (`wasm:plugins:{workspaceId}`, read by
|
|
7
|
+
* `packages/proxy/src/wasm/registry.rs` as `WasmPluginDescriptor`), and as
|
|
8
|
+
* `wasmRules` on the MCP proxy's policy responses (`GET /api/v1/sop/rules`,
|
|
9
|
+
* `GET /api/v1/policy/resolve`). The binary is fetched separately, by the
|
|
10
|
+
* SHA-256 the descriptor names, and checked against it before it loads.
|
|
11
|
+
*
|
|
12
|
+
* {@link parseWasmRuleDescriptors} reads the list the way the Rust proxy's
|
|
13
|
+
* serde does: one malformed entry makes the whole list unreadable, and a
|
|
14
|
+
* proxy keeps the rules it already enforces rather than applying part of a
|
|
15
|
+
* list — dropping the entry would silently stop enforcing that rule.
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
/** `ENFORCE` decides calls; `SHADOW` is evaluated and reported, and never changes one. */
|
|
20
|
+
export type WasmRuleMode = 'ENFORCE' | 'SHADOW';
|
|
21
|
+
export interface WasmRuleDescriptor {
|
|
22
|
+
/** The control plane's rule id (`wasm_…`), the id both proxies report the rule by. */
|
|
23
|
+
ruleId: string;
|
|
24
|
+
name: string;
|
|
25
|
+
/** Lowercase hex SHA-256 of the binary; the binary is fetched and verified by it. */
|
|
26
|
+
sha256: string;
|
|
27
|
+
/** Ascending: lower runs first. Local rules default to 100. */
|
|
28
|
+
priority: number;
|
|
29
|
+
mode: WasmRuleMode;
|
|
30
|
+
}
|
|
31
|
+
export type WasmRuleDescriptorsParse = {
|
|
32
|
+
ok: true;
|
|
33
|
+
rules: WasmRuleDescriptor[];
|
|
34
|
+
} | {
|
|
35
|
+
ok: false;
|
|
36
|
+
reason: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Reads a descriptor list. Anything but an array of well-formed descriptors is
|
|
40
|
+
* unreadable, with the first problem as the reason.
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseWasmRuleDescriptors(value: unknown): WasmRuleDescriptorsParse;
|
|
43
|
+
//# sourceMappingURL=wasmRuleDescriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasmRuleDescriptor.d.ts","sourceRoot":"","sources":["../src/wasmRuleDescriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,0FAA0F;AAC1F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/C,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAA;IACd,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAAE,GACzC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAWjC;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAsBjF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The descriptor of a custom rule uploaded to the control plane — one shape
|
|
4
|
+
* for every proxy that enforces it.
|
|
5
|
+
*
|
|
6
|
+
* The control plane publishes the workspace's active rules as a list of these:
|
|
7
|
+
* to Valkey for the LLM proxy (`wasm:plugins:{workspaceId}`, read by
|
|
8
|
+
* `packages/proxy/src/wasm/registry.rs` as `WasmPluginDescriptor`), and as
|
|
9
|
+
* `wasmRules` on the MCP proxy's policy responses (`GET /api/v1/sop/rules`,
|
|
10
|
+
* `GET /api/v1/policy/resolve`). The binary is fetched separately, by the
|
|
11
|
+
* SHA-256 the descriptor names, and checked against it before it loads.
|
|
12
|
+
*
|
|
13
|
+
* {@link parseWasmRuleDescriptors} reads the list the way the Rust proxy's
|
|
14
|
+
* serde does: one malformed entry makes the whole list unreadable, and a
|
|
15
|
+
* proxy keeps the rules it already enforces rather than applying part of a
|
|
16
|
+
* list — dropping the entry would silently stop enforcing that rule.
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.parseWasmRuleDescriptors = parseWasmRuleDescriptors;
|
|
22
|
+
function parseMode(value) {
|
|
23
|
+
// Absent on a descriptor written before modes existed, which must keep
|
|
24
|
+
// enforcing — the same default `registry.rs` gives `RuleMode`.
|
|
25
|
+
if (value === undefined)
|
|
26
|
+
return 'ENFORCE';
|
|
27
|
+
if (value === 'ENFORCE' || value === 'enforce')
|
|
28
|
+
return 'ENFORCE';
|
|
29
|
+
if (value === 'SHADOW' || value === 'shadow')
|
|
30
|
+
return 'SHADOW';
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Reads a descriptor list. Anything but an array of well-formed descriptors is
|
|
35
|
+
* unreadable, with the first problem as the reason.
|
|
36
|
+
*/
|
|
37
|
+
function parseWasmRuleDescriptors(value) {
|
|
38
|
+
if (!Array.isArray(value))
|
|
39
|
+
return { ok: false, reason: 'the rule list is not an array' };
|
|
40
|
+
const rules = [];
|
|
41
|
+
for (const [index, entry] of value.entries()) {
|
|
42
|
+
if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) {
|
|
43
|
+
return { ok: false, reason: `entry ${index} is not an object` };
|
|
44
|
+
}
|
|
45
|
+
const e = entry;
|
|
46
|
+
const { ruleId, name, sha256, priority } = e;
|
|
47
|
+
if (typeof ruleId !== 'string' || ruleId.length === 0)
|
|
48
|
+
return { ok: false, reason: `entry ${index} has no ruleId` };
|
|
49
|
+
if (typeof name !== 'string')
|
|
50
|
+
return { ok: false, reason: `rule ${ruleId} has no name` };
|
|
51
|
+
// Any string, as serde reads it: a hash that names no binary is refused
|
|
52
|
+
// per rule when the binary is fetched, with an incident, not here.
|
|
53
|
+
if (typeof sha256 !== 'string')
|
|
54
|
+
return { ok: false, reason: `rule ${ruleId} has no SHA-256` };
|
|
55
|
+
if (typeof priority !== 'number' || !Number.isInteger(priority) || priority < 0) {
|
|
56
|
+
return { ok: false, reason: `rule ${ruleId} has no priority` };
|
|
57
|
+
}
|
|
58
|
+
const mode = parseMode(e['mode']);
|
|
59
|
+
if (!mode)
|
|
60
|
+
return { ok: false, reason: `rule ${ruleId} has an unknown mode` };
|
|
61
|
+
rules.push({ ruleId, name, sha256, priority, mode });
|
|
62
|
+
}
|
|
63
|
+
return { ok: true, rules };
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=wasmRuleDescriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasmRuleDescriptor.js","sourceRoot":"","sources":["../src/wasmRuleDescriptor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAiCH,4DAsBC;AAnCD,SAAS,SAAS,CAAC,KAAc;IAC/B,uEAAuE;IACvE,+DAA+D;IAC/D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAChE,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,KAAc;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAA;IACxF,MAAM,KAAK,GAAyB,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,KAAK,mBAAmB,EAAE,CAAA;QACjE,CAAC;QACD,MAAM,CAAC,GAAG,KAAgC,CAAA;QAC1C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,KAAK,gBAAgB,EAAE,CAAA;QACnH,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,MAAM,cAAc,EAAE,CAAA;QACxF,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,MAAM,iBAAiB,EAAE,CAAA;QAC7F,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,MAAM,kBAAkB,EAAE,CAAA;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,MAAM,sBAAsB,EAAE,CAAA;QAC7E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC"}
|
|
@@ -13,6 +13,7 @@ import type { McpProxyFailBehavior, McpProxyMode, BypassEnforcementTier } from '
|
|
|
13
13
|
import type { SsoGroupPolicy } from './attenuation.js';
|
|
14
14
|
import type { McpBudgetSettings } from './mcpBudgets.js';
|
|
15
15
|
import type { PiiDetectorSettings } from './piiDetectors.js';
|
|
16
|
+
import type { UpstreamRetrySettings } from './upstreamRetry.js';
|
|
16
17
|
export type { McpProxyFailBehavior, McpProxyMode, BypassEnforcementTier };
|
|
17
18
|
/**
|
|
18
19
|
* The MCP governance proxy's anomaly detectors, by id. The proxy's own
|
|
@@ -92,6 +93,15 @@ export interface WorkspaceSettings {
|
|
|
92
93
|
* in a settings write clears it, and is never stored.
|
|
93
94
|
*/
|
|
94
95
|
piiDetectors?: PiiDetectorSettings | null;
|
|
96
|
+
/**
|
|
97
|
+
* How the LLM proxy retries a provider call that failed before any response
|
|
98
|
+
* reached the client, and the ordered fallback targets it tries when those
|
|
99
|
+
* retries run out (`UpstreamRetrySettingsSchema`). Each field overrides the
|
|
100
|
+
* proxy's own config.yaml value; absent fields keep it. The proxy reads it
|
|
101
|
+
* from `/api/v1/auth/key-context`. `null` in a settings write clears it, and
|
|
102
|
+
* is never stored.
|
|
103
|
+
*/
|
|
104
|
+
upstreamRetry?: UpstreamRetrySettings | null;
|
|
95
105
|
/**
|
|
96
106
|
* Bring-your-own-cloud trace storage. Optional — absent means Intutic-managed
|
|
97
107
|
* storage. Previously accessed only through `as unknown as` casts; typed here
|
|
@@ -145,6 +155,12 @@ export interface WorkspaceSettings {
|
|
|
145
155
|
/** Feature flags for platform capabilities (Phase 5+) */
|
|
146
156
|
featureFlags?: {
|
|
147
157
|
ff_bandit_routing?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Run the router and record the model it would have picked, while every
|
|
160
|
+
* request is still served with the model it asked for. Read by the proxy
|
|
161
|
+
* from `workspace:feature_flags:{ws}`; the cost posture presets set it.
|
|
162
|
+
*/
|
|
163
|
+
ff_shadow_routing?: boolean;
|
|
148
164
|
ff_response_cache_exact?: boolean;
|
|
149
165
|
ff_response_cache_semantic?: boolean;
|
|
150
166
|
/** Phase 5 — MetaClaw prompt evolution engine (Enterprise only) */
|
|
@@ -319,6 +335,16 @@ export interface WorkspaceSettings {
|
|
|
319
335
|
* must not start refusing completions because a default changed.
|
|
320
336
|
*/
|
|
321
337
|
allowedModels?: string[];
|
|
338
|
+
/**
|
|
339
|
+
* The models smart routing may choose between for this workspace.
|
|
340
|
+
* Distributed to the proxy under `workspace:routing_candidates:{workspaceId}`
|
|
341
|
+
* (same pattern as `allowedModels` above). Absent or empty means the proxy's
|
|
342
|
+
* own configured pool. Either way the proxy narrows the pool further to the
|
|
343
|
+
* models this workspace can actually reach: a provider it holds a
|
|
344
|
+
* credential for, the `allowedModels` allowlist, and the models a verified
|
|
345
|
+
* credential's provider listed.
|
|
346
|
+
*/
|
|
347
|
+
routingCandidates?: string[];
|
|
322
348
|
/**
|
|
323
349
|
* Additive MCP server allowlist: server names the MCP governance proxy
|
|
324
350
|
* (`packages/mcp-proxy`) will proxy for this workspace, matched against
|
|
@@ -382,6 +408,17 @@ export interface WorkspaceSettings {
|
|
|
382
408
|
* no limits.
|
|
383
409
|
*/
|
|
384
410
|
mcpBudgets?: McpBudgetSettings;
|
|
411
|
+
/**
|
|
412
|
+
* The plan's daily spend cap (`workspaces.daily_spend_cap_usd`, set from the
|
|
413
|
+
* plan) as a hard block: with `enforcement_mode: 'hard'` AND
|
|
414
|
+
* `workspace_hard_cap_enabled: true`, the control plane checks the day's
|
|
415
|
+
* spend every five minutes and, once it is over the cap, the proxy refuses
|
|
416
|
+
* every request with `OVERAGE_HARD_CAP_EXCEEDED` until midnight UTC
|
|
417
|
+
* (`billingService.enforceOverageCap`). Either one absent or off: no block.
|
|
418
|
+
* Separate from the workspace budget caps (`PUT /api/v1/budget`).
|
|
419
|
+
*/
|
|
420
|
+
enforcement_mode?: 'soft' | 'hard';
|
|
421
|
+
workspace_hard_cap_enabled?: boolean;
|
|
385
422
|
/**
|
|
386
423
|
* What happens when a server's tool set changes and the change scores high
|
|
387
424
|
* risk (`mcpToolRisk.ts`). `notify` (the default, and what an absent value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceSettings.d.ts","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"workspaceSettings.d.ts","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceSettings.js","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"workspaceSettings.js","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intutic/shared-types",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "Shared TypeScript types for the Intutic control plane, CLI, and sync daemon",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"zod": "^3.23",
|
|
21
|
-
"@intutic/anomaly-taxonomy": "2.
|
|
21
|
+
"@intutic/anomaly-taxonomy": "2.4.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"typescript": "^5.5",
|