@intutic/shared-types 2.9.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decide.d.ts +269 -0
- package/dist/decide.d.ts.map +1 -0
- package/dist/decide.js +781 -0
- package/dist/decide.js.map +1 -0
- package/dist/decideEngine.d.ts +195 -0
- package/dist/decideEngine.d.ts.map +1 -0
- package/dist/decideEngine.js +720 -0
- package/dist/decideEngine.js.map +1 -0
- package/dist/decideEvaluate.d.ts +250 -0
- package/dist/decideEvaluate.d.ts.map +1 -0
- package/dist/decideEvaluate.js +518 -0
- package/dist/decideEvaluate.js.map +1 -0
- package/dist/decideHostGuard.d.ts +56 -0
- package/dist/decideHostGuard.d.ts.map +1 -0
- package/dist/decideHostGuard.js +200 -0
- package/dist/decideHostGuard.js.map +1 -0
- package/dist/decideLog.d.ts +287 -0
- package/dist/decideLog.d.ts.map +1 -0
- package/dist/decideLog.js +543 -0
- package/dist/decideLog.js.map +1 -0
- package/dist/decideLogRedaction.d.ts +12 -0
- package/dist/decideLogRedaction.d.ts.map +1 -0
- package/dist/decideLogRedaction.js +19 -0
- package/dist/decideLogRedaction.js.map +1 -0
- package/dist/decideRecord.d.ts +128 -0
- package/dist/decideRecord.d.ts.map +1 -0
- package/dist/decideRecord.js +266 -0
- package/dist/decideRecord.js.map +1 -0
- package/dist/decideSdk.d.ts +86 -0
- package/dist/decideSdk.d.ts.map +1 -0
- package/dist/decideSdk.js +151 -0
- package/dist/decideSdk.js.map +1 -0
- package/dist/errors.d.ts +11 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +12 -1
- package/dist/errors.js.map +1 -1
- package/dist/gateLimits.d.ts +27 -0
- package/dist/gateLimits.d.ts.map +1 -1
- package/dist/gateLimits.js +29 -1
- package/dist/gateLimits.js.map +1 -1
- package/dist/gateRuleRecord.d.ts +244 -0
- package/dist/gateRuleRecord.d.ts.map +1 -0
- package/dist/gateRuleRecord.js +474 -0
- package/dist/gateRuleRecord.js.map +1 -0
- package/dist/guardrailIr.d.ts +301 -10
- package/dist/guardrailIr.d.ts.map +1 -1
- package/dist/guardrailIr.js +86 -7
- package/dist/guardrailIr.js.map +1 -1
- package/dist/guardrailRender.d.ts +38 -4
- package/dist/guardrailRender.d.ts.map +1 -1
- package/dist/guardrailRender.js +155 -14
- package/dist/guardrailRender.js.map +1 -1
- package/dist/index.d.ts +28 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +162 -8
- package/dist/index.js.map +1 -1
- package/dist/lanes.d.ts +94 -0
- package/dist/lanes.d.ts.map +1 -0
- package/dist/lanes.js +160 -0
- package/dist/lanes.js.map +1 -0
- package/dist/loopVerify.d.ts +49 -0
- package/dist/loopVerify.d.ts.map +1 -0
- package/dist/loopVerify.js +77 -0
- package/dist/loopVerify.js.map +1 -0
- package/dist/mcpBudgets.d.ts +8 -8
- package/dist/notifications.d.ts +1 -1
- package/dist/notifications.d.ts.map +1 -1
- package/dist/notifications.js +14 -0
- package/dist/notifications.js.map +1 -1
- package/dist/providers.d.ts +13 -0
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +31 -0
- package/dist/providers.js.map +1 -1
- package/dist/refusalDetail.d.ts +58 -0
- package/dist/refusalDetail.d.ts.map +1 -0
- package/dist/refusalDetail.js +128 -0
- package/dist/refusalDetail.js.map +1 -0
- package/dist/responses/decide.d.ts +1858 -0
- package/dist/responses/decide.d.ts.map +1 -0
- package/dist/responses/decide.js +166 -0
- package/dist/responses/decide.js.map +1 -0
- package/dist/responses/gateways.d.ts +745 -101
- package/dist/responses/gateways.d.ts.map +1 -1
- package/dist/responses/gateways.js +34 -2
- package/dist/responses/gateways.js.map +1 -1
- package/dist/responses/guardrails.d.ts +1434 -144
- package/dist/responses/guardrails.d.ts.map +1 -1
- package/dist/responses/identity.d.ts +6 -6
- package/dist/responses/index.d.ts +1 -0
- package/dist/responses/index.d.ts.map +1 -1
- package/dist/responses/index.js +1 -0
- package/dist/responses/index.js.map +1 -1
- package/dist/responses/integrations.d.ts +84 -84
- package/dist/responses/observability.d.ts +272 -92
- package/dist/responses/observability.d.ts.map +1 -1
- package/dist/responses/observability.js +31 -1
- package/dist/responses/observability.js.map +1 -1
- package/dist/responses/rules.d.ts +1026 -187
- package/dist/responses/rules.d.ts.map +1 -1
- package/dist/responses/rules.js +47 -1
- package/dist/responses/rules.js.map +1 -1
- package/dist/scopeMatch.d.ts +156 -0
- package/dist/scopeMatch.d.ts.map +1 -0
- package/dist/scopeMatch.js +451 -0
- package/dist/scopeMatch.js.map +1 -0
- package/dist/sopKeySince.d.ts +41 -0
- package/dist/sopKeySince.d.ts.map +1 -0
- package/dist/sopKeySince.js +81 -0
- package/dist/sopKeySince.js.map +1 -0
- package/dist/testOutcome.d.ts +164 -0
- package/dist/testOutcome.d.ts.map +1 -0
- package/dist/testOutcome.js +454 -0
- package/dist/testOutcome.js.map +1 -0
- package/dist/upstreamRetry.d.ts +2 -2
- package/dist/workspaceSettings.d.ts +91 -0
- package/dist/workspaceSettings.d.ts.map +1 -1
- package/dist/workspaceSettings.js +48 -2
- package/dist/workspaceSettings.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lanes.js","sourceRoot":"","sources":["../src/lanes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The deterministic stage of loop verification: before any
|
|
3
|
+
* judge is asked, a loop run's changes are checked against the declared file
|
|
4
|
+
* scope and its tool sequence against the declared plan. The control plane
|
|
5
|
+
* runs it over the workspace and org SOPs (`verifyLoop`); `intutic loop
|
|
6
|
+
* verify` runs it over the local SOPs first and sends nothing when it fails.
|
|
7
|
+
*
|
|
8
|
+
* - Only SOPs with no `roles:` count: a loop run has no agent role.
|
|
9
|
+
* - `scope_paths`: every changed path must be inside the scope in force
|
|
10
|
+
* (`collectScopePaths`, the org ceiling included). No tolerance, whatever
|
|
11
|
+
* the mode: a verify is a boundary check. Not applicable when no SOP
|
|
12
|
+
* declares a scope.
|
|
13
|
+
* - `plan_steps`: `planOffSteps` with tolerance 0.4 under `advise` and 0
|
|
14
|
+
* under `enforce` (any SOP declaring a plan with `plan_steps_mode:
|
|
15
|
+
* enforce`). Not applicable when there is no plan, or the run has no
|
|
16
|
+
* gateway traces to read a sequence from (a hook-only loop).
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
import type { RefusalScope } from './refusalDetail.js';
|
|
21
|
+
/** One SOP as the deterministic stage reads it (parse with `parseFrontMatterEnforcing`). */
|
|
22
|
+
export interface LoopVerifySop {
|
|
23
|
+
title: string;
|
|
24
|
+
scope: 'workspace' | 'org';
|
|
25
|
+
roles: readonly string[];
|
|
26
|
+
scopePaths: readonly string[];
|
|
27
|
+
scopeMode: 'advise' | 'enforce';
|
|
28
|
+
planSteps: readonly string[];
|
|
29
|
+
planMode: 'advise' | 'enforce';
|
|
30
|
+
}
|
|
31
|
+
export type LoopCheckId = 'scope_paths' | 'plan_steps';
|
|
32
|
+
export interface LoopCheck {
|
|
33
|
+
id: LoopCheckId;
|
|
34
|
+
status: 'pass' | 'fail' | 'not_applicable';
|
|
35
|
+
findings: string[];
|
|
36
|
+
scope?: RefusalScope;
|
|
37
|
+
}
|
|
38
|
+
/** The most findings one check lists; the rest are counted in a last finding. */
|
|
39
|
+
export declare const LOOP_CHECK_MAX_FINDINGS = 20;
|
|
40
|
+
export interface LoopVerifyInput {
|
|
41
|
+
/** `diffChangedPaths(diff)` ∪ `files` ∪ the change manifests' mutation targets. */
|
|
42
|
+
changedPaths: readonly string[];
|
|
43
|
+
/** The run's `execution_traces.tool_sequence`, by timestamp; empty for a hook-only loop. */
|
|
44
|
+
toolSequence: readonly string[];
|
|
45
|
+
sops: readonly LoopVerifySop[];
|
|
46
|
+
}
|
|
47
|
+
/** The two deterministic checks, `scope_paths` then `plan_steps`. */
|
|
48
|
+
export declare function verifyLoopDeterministic(input: LoopVerifyInput): LoopCheck[];
|
|
49
|
+
//# sourceMappingURL=loopVerify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loopVerify.d.ts","sourceRoot":"","sources":["../src/loopVerify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,GAAG,KAAK,CAAA;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;CAC/B;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,CAAA;AAEtD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,WAAW,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAA;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AAED,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,KAAK,CAAA;AAEzC,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,4FAA4F;IAC5F,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,IAAI,EAAE,SAAS,aAAa,EAAE,CAAA;CAC/B;AAOD,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,EAAE,CA4C3E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The deterministic stage of loop verification: before any
|
|
4
|
+
* judge is asked, a loop run's changes are checked against the declared file
|
|
5
|
+
* scope and its tool sequence against the declared plan. The control plane
|
|
6
|
+
* runs it over the workspace and org SOPs (`verifyLoop`); `intutic loop
|
|
7
|
+
* verify` runs it over the local SOPs first and sends nothing when it fails.
|
|
8
|
+
*
|
|
9
|
+
* - Only SOPs with no `roles:` count: a loop run has no agent role.
|
|
10
|
+
* - `scope_paths`: every changed path must be inside the scope in force
|
|
11
|
+
* (`collectScopePaths`, the org ceiling included). No tolerance, whatever
|
|
12
|
+
* the mode: a verify is a boundary check. Not applicable when no SOP
|
|
13
|
+
* declares a scope.
|
|
14
|
+
* - `plan_steps`: `planOffSteps` with tolerance 0.4 under `advise` and 0
|
|
15
|
+
* under `enforce` (any SOP declaring a plan with `plan_steps_mode:
|
|
16
|
+
* enforce`). Not applicable when there is no plan, or the run has no
|
|
17
|
+
* gateway traces to read a sequence from (a hook-only loop).
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.LOOP_CHECK_MAX_FINDINGS = void 0;
|
|
23
|
+
exports.verifyLoopDeterministic = verifyLoopDeterministic;
|
|
24
|
+
const refusalDetail_js_1 = require("./refusalDetail.js");
|
|
25
|
+
const scopeMatch_js_1 = require("./scopeMatch.js");
|
|
26
|
+
/** The most findings one check lists; the rest are counted in a last finding. */
|
|
27
|
+
exports.LOOP_CHECK_MAX_FINDINGS = 20;
|
|
28
|
+
function capped(findings, what) {
|
|
29
|
+
if (findings.length <= exports.LOOP_CHECK_MAX_FINDINGS)
|
|
30
|
+
return findings;
|
|
31
|
+
return [...findings.slice(0, exports.LOOP_CHECK_MAX_FINDINGS), `… and ${findings.length - exports.LOOP_CHECK_MAX_FINDINGS} more ${what}`];
|
|
32
|
+
}
|
|
33
|
+
/** The two deterministic checks, `scope_paths` then `plan_steps`. */
|
|
34
|
+
function verifyLoopDeterministic(input) {
|
|
35
|
+
const sops = input.sops.filter((s) => s.roles.length === 0);
|
|
36
|
+
const scopes = (0, scopeMatch_js_1.collectScopePaths)(sops, '');
|
|
37
|
+
let scopeCheck;
|
|
38
|
+
if (scopes.length === 0) {
|
|
39
|
+
scopeCheck = { id: 'scope_paths', status: 'not_applicable', findings: [] };
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const outside = [...new Set(input.changedPaths)].filter((p) => !(0, scopeMatch_js_1.isWithinScope)(p, scopes));
|
|
43
|
+
scopeCheck =
|
|
44
|
+
outside.length === 0
|
|
45
|
+
? { id: 'scope_paths', status: 'pass', findings: [] }
|
|
46
|
+
: {
|
|
47
|
+
id: 'scope_paths',
|
|
48
|
+
status: 'fail',
|
|
49
|
+
findings: capped(outside.map((p) => `${p} is outside the declared file scope (scope: ${scopes.join(', ')})`), 'paths outside the scope'),
|
|
50
|
+
scope: (0, refusalDetail_js_1.boundRefusalScope)({ paths: outside }) ?? undefined,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const plan = (0, scopeMatch_js_1.collectPlanSteps)(sops, '');
|
|
54
|
+
let planCheck;
|
|
55
|
+
if (plan.length === 0 || input.toolSequence.length === 0) {
|
|
56
|
+
planCheck = { id: 'plan_steps', status: 'not_applicable', findings: [] };
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const enforce = sops.some((s) => s.planSteps.length > 0 && s.planMode === 'enforce');
|
|
60
|
+
const off = (0, scopeMatch_js_1.planOffSteps)(input.toolSequence, plan, enforce ? 0 : scopeMatch_js_1.PLAN_DEVIATION_TOLERANCE);
|
|
61
|
+
if (off.offPlan.length === 0) {
|
|
62
|
+
planCheck = { id: 'plan_steps', status: 'pass', findings: [] };
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const shown = off.offPlan.slice(0, 5);
|
|
66
|
+
const more = off.offPlan.length > shown.length ? ', …' : '';
|
|
67
|
+
planCheck = {
|
|
68
|
+
id: 'plan_steps',
|
|
69
|
+
status: 'fail',
|
|
70
|
+
findings: [`Work outside the declared plan: ${Math.round(off.ratio * 100)}% of steps are unlisted (${shown.join(', ')}${more})`],
|
|
71
|
+
scope: (0, refusalDetail_js_1.boundRefusalScope)({ tools: off.offPlan }) ?? undefined,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return [scopeCheck, planCheck];
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=loopVerify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loopVerify.js","sourceRoot":"","sources":["../src/loopVerify.ts"],"names":[],"mappings":"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"}
|
package/dist/mcpBudgets.d.ts
CHANGED
|
@@ -72,32 +72,32 @@ export declare const McpBudgetSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
72
72
|
}, "strict", z.ZodTypeAny, {
|
|
73
73
|
period: "day" | "hour";
|
|
74
74
|
id: string;
|
|
75
|
-
limit: number;
|
|
76
75
|
scope: "member" | "tool" | "server" | "member_server";
|
|
76
|
+
limit: number;
|
|
77
77
|
tool?: string | undefined;
|
|
78
78
|
server?: string | undefined;
|
|
79
79
|
memberId?: string | undefined;
|
|
80
80
|
}, {
|
|
81
81
|
period: "day" | "hour";
|
|
82
82
|
id: string;
|
|
83
|
-
limit: number;
|
|
84
83
|
scope: "member" | "tool" | "server" | "member_server";
|
|
84
|
+
limit: number;
|
|
85
85
|
tool?: string | undefined;
|
|
86
86
|
server?: string | undefined;
|
|
87
87
|
memberId?: string | undefined;
|
|
88
88
|
}>, {
|
|
89
89
|
period: "day" | "hour";
|
|
90
90
|
id: string;
|
|
91
|
-
limit: number;
|
|
92
91
|
scope: "member" | "tool" | "server" | "member_server";
|
|
92
|
+
limit: number;
|
|
93
93
|
tool?: string | undefined;
|
|
94
94
|
server?: string | undefined;
|
|
95
95
|
memberId?: string | undefined;
|
|
96
96
|
}, {
|
|
97
97
|
period: "day" | "hour";
|
|
98
98
|
id: string;
|
|
99
|
-
limit: number;
|
|
100
99
|
scope: "member" | "tool" | "server" | "member_server";
|
|
100
|
+
limit: number;
|
|
101
101
|
tool?: string | undefined;
|
|
102
102
|
server?: string | undefined;
|
|
103
103
|
memberId?: string | undefined;
|
|
@@ -107,8 +107,8 @@ export declare const McpBudgetSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
107
107
|
budgets: {
|
|
108
108
|
period: "day" | "hour";
|
|
109
109
|
id: string;
|
|
110
|
-
limit: number;
|
|
111
110
|
scope: "member" | "tool" | "server" | "member_server";
|
|
111
|
+
limit: number;
|
|
112
112
|
tool?: string | undefined;
|
|
113
113
|
server?: string | undefined;
|
|
114
114
|
memberId?: string | undefined;
|
|
@@ -118,8 +118,8 @@ export declare const McpBudgetSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
118
118
|
budgets: {
|
|
119
119
|
period: "day" | "hour";
|
|
120
120
|
id: string;
|
|
121
|
-
limit: number;
|
|
122
121
|
scope: "member" | "tool" | "server" | "member_server";
|
|
122
|
+
limit: number;
|
|
123
123
|
tool?: string | undefined;
|
|
124
124
|
server?: string | undefined;
|
|
125
125
|
memberId?: string | undefined;
|
|
@@ -129,8 +129,8 @@ export declare const McpBudgetSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
129
129
|
budgets: {
|
|
130
130
|
period: "day" | "hour";
|
|
131
131
|
id: string;
|
|
132
|
-
limit: number;
|
|
133
132
|
scope: "member" | "tool" | "server" | "member_server";
|
|
133
|
+
limit: number;
|
|
134
134
|
tool?: string | undefined;
|
|
135
135
|
server?: string | undefined;
|
|
136
136
|
memberId?: string | undefined;
|
|
@@ -140,8 +140,8 @@ export declare const McpBudgetSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
140
140
|
budgets: {
|
|
141
141
|
period: "day" | "hour";
|
|
142
142
|
id: string;
|
|
143
|
-
limit: number;
|
|
144
143
|
scope: "member" | "tool" | "server" | "member_server";
|
|
144
|
+
limit: number;
|
|
145
145
|
tool?: string | undefined;
|
|
146
146
|
server?: string | undefined;
|
|
147
147
|
memberId?: string | undefined;
|
package/dist/notifications.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type NotificationChannel = 'slack' | 'email' | 'webhook' | 'pagerduty';
|
|
|
11
11
|
* not here. `incident.escalated`, `sop.status_changed`, `session.ended` and
|
|
12
12
|
* `calibration.threshold_breach` left on 2026-10-15: nothing emitted them.
|
|
13
13
|
*/
|
|
14
|
-
export declare const NOTIFICATION_EVENT_TYPES: readonly ["anomaly.detected", "anomaly.finding", "incident.created", "decision.pending", "decision.approved", "decision.rejected", "trajectory.alert", "anomaly.drift.detected", "anomaly.capability_miss", "anomaly.trust.updated", "sop.stale.detected", "sop.cascade.alert", "sop.cascade.invalidated", "sop.integrity.drift", "sop.lifecycle.transitioned", "sop.upstream.changed", "guardrail.ready", "guardrail.stale", "mcp.server.candidate", "mcp.server.tool_change_risk", "mcp.server.decided", "mcp.server.tool_toggled", "mcp.budget.threshold", "mcp.budget.exceeded", "judge.review.queued", "finops.budget.exceeded", "finops.budget.threshold", "finops.tokens.classified", "trial.started", "trial.expired_downgraded", "trial.day7_report_sent", "trial.day13_report_sent", "plan.captured", "plan.approved", "plan.rejected", "plan.closed", "plan.deviation.detected", "identity.offboarding.completed", "auth.login.failed", "scim.user.changed", "scim.group.changed", "webhook.secret.rotated", "evidence.exported", "credential.changed", "workspace.context.updated", "gateway.stale.detected", "gateway.cell.stuck_pending", "region.sync.stale", "org.cells.deprovision_scheduled", "org.cells.deprovision_canceled", "org.cells.deprovisioned", "device.enforcement.stale", "device.enforcement.disabled", "governance.gate.silent", "governance.gate.recovered", "governance.integrity.failed", "inventory.ungoverned.detected", "provider.outage.detected", "billing.subscription.past_due", "billing.dunning.downgraded", "billing.dunning.restored", "skill.malware.detected", "skill.semantic.flagged"];
|
|
14
|
+
export declare const NOTIFICATION_EVENT_TYPES: readonly ["anomaly.detected", "anomaly.finding", "incident.created", "decision.pending", "decision.approved", "decision.rejected", "trajectory.alert", "anomaly.drift.detected", "anomaly.capability_miss", "anomaly.trust.updated", "sop.stale.detected", "sop.cascade.alert", "sop.cascade.invalidated", "sop.integrity.drift", "sop.lifecycle.transitioned", "sop.upstream.changed", "guardrail.ready", "guardrail.stale", "mcp.server.candidate", "mcp.server.tool_change_risk", "mcp.server.decided", "mcp.server.tool_toggled", "mcp.budget.threshold", "mcp.budget.exceeded", "judge.review.queued", "decide.drift", "decide.canary_failed", "decide.promotion_ready", "finops.budget.exceeded", "finops.budget.threshold", "finops.tokens.classified", "trial.started", "trial.expired_downgraded", "trial.day7_report_sent", "trial.day13_report_sent", "plan.captured", "plan.approved", "plan.rejected", "plan.closed", "plan.deviation.detected", "identity.offboarding.completed", "auth.login.failed", "scim.user.changed", "scim.group.changed", "webhook.secret.rotated", "evidence.exported", "credential.changed", "workspace.context.updated", "gateway.stale.detected", "gateway.cell.stuck_pending", "region.sync.stale", "org.cells.deprovision_scheduled", "org.cells.deprovision_canceled", "org.cells.deprovisioned", "device.enforcement.stale", "device.enforcement.disabled", "governance.gate.silent", "governance.gate.recovered", "governance.integrity.failed", "inventory.ungoverned.detected", "provider.outage.detected", "billing.subscription.past_due", "billing.dunning.downgraded", "billing.dunning.restored", "skill.malware.detected", "skill.semantic.flagged"];
|
|
15
15
|
export type NotificationEventType = (typeof NOTIFICATION_EVENT_TYPES)[number];
|
|
16
16
|
export type NotificationStatus = 'sent' | 'failed' | 'deduplicated' | 'filtered';
|
|
17
17
|
export interface NotificationRule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;AAE7E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/notifications.js
CHANGED
|
@@ -81,6 +81,20 @@ exports.NOTIFICATION_EVENT_TYPES = [
|
|
|
81
81
|
// ── Governance judge ──
|
|
82
82
|
/** A judged response is waiting for a person in the judge review queue: the typed judge was unsure, or it is a spot check of one it cleared. */
|
|
83
83
|
'judge.review.queued',
|
|
84
|
+
// ── Decide rules ──
|
|
85
|
+
/**
|
|
86
|
+
* A decide rule's uploaded decisions drifted from the eval run of its active
|
|
87
|
+
* calibration: the escalation rate moved more than 0.15, or a question's
|
|
88
|
+
* median probability left the run's p10–p90 range. Computed by the control
|
|
89
|
+
* plane from `decide_events`, at most once a day per rule and model. Carries
|
|
90
|
+
* `ruleRef`, `ruleHash`, `modelDigest`, `measure`, `value`, `expected` and
|
|
91
|
+
* `threshold`. MEDIUM.
|
|
92
|
+
*/
|
|
93
|
+
'decide.drift',
|
|
94
|
+
/** A gate, SDK or gateway reported that its decide engine failed the known-answer canary, so its enforce rules refuse. Carries `source`, `engineHost` and `modelDigest`. HIGH. */
|
|
95
|
+
'decide.canary_failed',
|
|
96
|
+
/** A candidate calibration passed every exit-rule mark a machine checks and waits for an OWNER, ADMIN or EM to promote it. Carries `ruleRef`, `calibrationId`, `evalRunId` and the results. MEDIUM. */
|
|
97
|
+
'decide.promotion_ready',
|
|
84
98
|
// ── FinOps & budget ──
|
|
85
99
|
'finops.budget.exceeded',
|
|
86
100
|
'finops.budget.threshold',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,mCAAmC;AACnC,+CAA+C;;;
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/providers.d.ts
CHANGED
|
@@ -35,6 +35,12 @@
|
|
|
35
35
|
* not a config change. The dashboard wizard must say so, not imply the key
|
|
36
36
|
* is live the moment it's saved.
|
|
37
37
|
*
|
|
38
|
+
* `kind: 'decision'` marks a provider of decision models (TypeSafe, Fastino):
|
|
39
|
+
* the proxy forwards a customer's own calls to them on `/v1/systemone`
|
|
40
|
+
* (`packages/proxy/src/decision_traffic.rs`), governed like LLM calls. Such a
|
|
41
|
+
* key is customer traffic only. No judge, decide engine or other governance
|
|
42
|
+
* call Intutic makes uses it: those are self-hosted.
|
|
43
|
+
*
|
|
38
44
|
* @module
|
|
39
45
|
*/
|
|
40
46
|
/** How a single credential field should render in a form. */
|
|
@@ -66,6 +72,11 @@ export interface ProviderDefinition {
|
|
|
66
72
|
usageHint?: string;
|
|
67
73
|
/** See module doc — whether packages/proxy currently routes to this provider. */
|
|
68
74
|
routingLive: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* `decision`: a decision-model API (System One) the proxy forwards customer
|
|
77
|
+
* calls to. Absent: an LLM provider.
|
|
78
|
+
*/
|
|
79
|
+
kind?: 'decision';
|
|
69
80
|
}
|
|
70
81
|
/**
|
|
71
82
|
* The 3 providers this system supported before this registry existed —
|
|
@@ -90,6 +101,8 @@ export declare const LIVE_ROUTING_PROVIDER_IDS: readonly ["anthropic", "openai",
|
|
|
90
101
|
export declare const PROVIDER_REGISTRY: ProviderDefinition[];
|
|
91
102
|
export declare function getProviderDefinition(id: string): ProviderDefinition | undefined;
|
|
92
103
|
export declare function isKnownProviderId(id: string): boolean;
|
|
104
|
+
/** The ids of the decision-model providers: customer traffic, never a judge. */
|
|
105
|
+
export declare function decisionProviderIds(): string[];
|
|
93
106
|
/**
|
|
94
107
|
* DeepSeek's own API model ids — the only names the proxy routes to DeepSeek,
|
|
95
108
|
* matched exactly and case-insensitively. Mirrors
|
package/dist/providers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;AAEhE,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,iBAAiB,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,uBAAuB,EAAE,CAAA;IACjC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IAC1B,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,WAAW,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,yBAAyB,4CAA6C,CAAA;AAEnF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,EAiIjD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEhF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,mEAAoE,CAAA;AAEvG;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAEX,eAAe,GACf,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,SAAS,GACT,QAAQ,CAYX;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAA;AAEtE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAchF;AAED,+FAA+F;AAC/F,eAAO,MAAM,4BAA4B,0FAI/B,CAAA;AAIV;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAuC5G"}
|
package/dist/providers.js
CHANGED
|
@@ -36,12 +36,19 @@
|
|
|
36
36
|
* not a config change. The dashboard wizard must say so, not imply the key
|
|
37
37
|
* is live the moment it's saved.
|
|
38
38
|
*
|
|
39
|
+
* `kind: 'decision'` marks a provider of decision models (TypeSafe, Fastino):
|
|
40
|
+
* the proxy forwards a customer's own calls to them on `/v1/systemone`
|
|
41
|
+
* (`packages/proxy/src/decision_traffic.rs`), governed like LLM calls. Such a
|
|
42
|
+
* key is customer traffic only. No judge, decide engine or other governance
|
|
43
|
+
* call Intutic makes uses it: those are self-hosted.
|
|
44
|
+
*
|
|
39
45
|
* @module
|
|
40
46
|
*/
|
|
41
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
48
|
exports.AZURE_ENDPOINT_HOST_SUFFIXES = exports.DEEPSEEK_API_MODEL_IDS = exports.PROVIDER_REGISTRY = exports.LIVE_ROUTING_PROVIDER_IDS = void 0;
|
|
43
49
|
exports.getProviderDefinition = getProviderDefinition;
|
|
44
50
|
exports.isKnownProviderId = isKnownProviderId;
|
|
51
|
+
exports.decisionProviderIds = decisionProviderIds;
|
|
45
52
|
exports.inferProviderForModel = inferProviderForModel;
|
|
46
53
|
exports.cloudProviderForModel = cloudProviderForModel;
|
|
47
54
|
exports.checkCloudCredentialFields = checkCloudCredentialFields;
|
|
@@ -167,6 +174,26 @@ exports.PROVIDER_REGISTRY = [
|
|
|
167
174
|
fields: [{ key: 'apiKey', label: 'API Key', type: 'password', required: true }],
|
|
168
175
|
routingLive: true,
|
|
169
176
|
},
|
|
177
|
+
{
|
|
178
|
+
// Customer decision traffic only (see `kind` in the module doc).
|
|
179
|
+
id: 'typesafe',
|
|
180
|
+
displayName: 'TypeSafe (decision models)',
|
|
181
|
+
docsUrl: 'https://typesafe.ai',
|
|
182
|
+
fields: [{ key: 'apiKey', label: 'API Key', type: 'password', required: true }],
|
|
183
|
+
usageHint: 'Point a System One client at the proxy (/v1/systemone) and name a pinned model, e.g. jev-1.14.0.',
|
|
184
|
+
routingLive: true,
|
|
185
|
+
kind: 'decision',
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
// Customer decision traffic only (see `kind` in the module doc).
|
|
189
|
+
id: 'fastino',
|
|
190
|
+
displayName: 'Fastino (decision models)',
|
|
191
|
+
docsUrl: 'https://fastino.ai',
|
|
192
|
+
fields: [{ key: 'apiKey', label: 'API Key', type: 'password', required: true }],
|
|
193
|
+
usageHint: 'Point a System One client at the proxy (/v1/systemone) with decision_traffic.systemone_upstream set to your Fastino endpoint.',
|
|
194
|
+
routingLive: true,
|
|
195
|
+
kind: 'decision',
|
|
196
|
+
},
|
|
170
197
|
{
|
|
171
198
|
id: 'ollama',
|
|
172
199
|
displayName: 'Ollama (self-hosted)',
|
|
@@ -181,6 +208,10 @@ function getProviderDefinition(id) {
|
|
|
181
208
|
function isKnownProviderId(id) {
|
|
182
209
|
return exports.PROVIDER_REGISTRY.some((p) => p.id === id);
|
|
183
210
|
}
|
|
211
|
+
/** The ids of the decision-model providers: customer traffic, never a judge. */
|
|
212
|
+
function decisionProviderIds() {
|
|
213
|
+
return exports.PROVIDER_REGISTRY.filter((p) => p.kind === 'decision').map((p) => p.id);
|
|
214
|
+
}
|
|
184
215
|
/**
|
|
185
216
|
* DeepSeek's own API model ids — the only names the proxy routes to DeepSeek,
|
|
186
217
|
* matched exactly and case-insensitively. Mirrors
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a refusal says about where to retry: its `scope` (the
|
|
3
|
+
* paths, tools, step, detector or rule it concerns) and its `evidence` (what
|
|
4
|
+
* the refuser saw), bounded the same way on every surface.
|
|
5
|
+
*
|
|
6
|
+
* - Each list holds at most {@link REFUSAL_DETAIL_MAX_ITEMS} items, and each
|
|
7
|
+
* string at most {@link REFUSAL_DETAIL_MAX_CHARS} characters (code points),
|
|
8
|
+
* with C0 control characters (U+0000 to U+001F) removed first. A string
|
|
9
|
+
* that is empty after that is dropped; an empty list is left out; a scope
|
|
10
|
+
* with nothing left is null.
|
|
11
|
+
* - In an OPAQUE workspace both are dropped, and so is the stderr retry line:
|
|
12
|
+
* only the refusal code survives, as with the reason
|
|
13
|
+
* (`OPAQUE_REFUSAL_MESSAGE`). SILENT_LOG behaves as TRANSPARENT.
|
|
14
|
+
*
|
|
15
|
+
* Self-contained, so `@intutic/gate` keeps a byte-identical copy. The Python
|
|
16
|
+
* port is `intutic_clawde/gate/refusal_detail.py`, the Rust one is in the
|
|
17
|
+
* proxy's `refusal.rs`; all run `fixtures/refusal-detail-vectors.json`.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
/** Where a refusal applies, so a retry can stay out of it. */
|
|
22
|
+
export interface RefusalScope {
|
|
23
|
+
paths?: string[];
|
|
24
|
+
tools?: string[];
|
|
25
|
+
step?: string;
|
|
26
|
+
detector?: string;
|
|
27
|
+
rule?: string;
|
|
28
|
+
}
|
|
29
|
+
/** One thing the refuser saw. */
|
|
30
|
+
export interface RefusalEvidence {
|
|
31
|
+
kind: string;
|
|
32
|
+
detail: string;
|
|
33
|
+
}
|
|
34
|
+
export declare const REFUSAL_DETAIL_MAX_ITEMS = 8;
|
|
35
|
+
export declare const REFUSAL_DETAIL_MAX_CHARS = 256;
|
|
36
|
+
/** The stderr line an exit-code harness prints after the reason. */
|
|
37
|
+
export declare const RETRY_SCOPE_PREFIX = "[Intutic] Retry scope: ";
|
|
38
|
+
/** A scope bounded as the module doc says, keys in a fixed order; null when nothing is left. */
|
|
39
|
+
export declare function boundRefusalScope(scope: unknown): RefusalScope | null;
|
|
40
|
+
/** Evidence bounded: at most 8 items, each with a `kind` and a `detail` that survive bounding. */
|
|
41
|
+
export declare function boundRefusalEvidence(evidence: unknown): RefusalEvidence[];
|
|
42
|
+
/**
|
|
43
|
+
* The detail a refusal carries in `mode` (an intervention mode): nothing in
|
|
44
|
+
* OPAQUE; otherwise the bounded scope and evidence, each left out when empty.
|
|
45
|
+
*/
|
|
46
|
+
export declare function refusalDetailForMode(mode: string | null | undefined, scope: unknown, evidence: unknown): {
|
|
47
|
+
scope?: RefusalScope;
|
|
48
|
+
evidence?: RefusalEvidence[];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* The stderr line an exit-code harness gets after the reason:
|
|
52
|
+
* `[Intutic] Retry scope: <paths, else tools, comma-separated>`, or null when
|
|
53
|
+
* the scope names neither, or in OPAQUE.
|
|
54
|
+
*/
|
|
55
|
+
export declare function retryScopeLine(mode: string | null | undefined, scope: unknown): string | null;
|
|
56
|
+
/** The functions above as JavaScript source, for the hook gates to embed. */
|
|
57
|
+
export declare const REFUSAL_DETAIL_JS_SOURCE: string;
|
|
58
|
+
//# sourceMappingURL=refusalDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusalDetail.d.ts","sourceRoot":"","sources":["../src/refusalDetail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,wBAAwB,IAAI,CAAA;AACzC,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAC3C,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAuB3D,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAerE;AAED,kGAAkG;AAClG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE,CAWzE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG;IAAE,KAAK,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAAE,CAQ/J;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK7F;AAED,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,QAExB,CAAA"}
|