@intutic/clawde 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/decideApi.d.ts +25 -0
- package/dist/decideApi.d.ts.map +1 -0
- package/dist/decideApi.js +36 -0
- package/dist/decideApi.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/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/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/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/refusals.d.ts.map +1 -1
- package/dist/refusals.js +3 -0
- package/dist/refusals.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decideEngine.js","sourceRoot":"","sources":["../src/decideEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The self-hosted guard on a decide engine's URL.
|
|
3
|
+
*
|
|
4
|
+
* A decide engine sees every tool call a rule asks about, so it must run on
|
|
5
|
+
* hardware the user controls. The guard judges the literal URL, with no DNS
|
|
6
|
+
* lookup: loopback and private addresses pass, a name passes only when it is
|
|
7
|
+
* `localhost`, ends in `.local`, or is listed in
|
|
8
|
+
* `INTUTIC_SELF_HOSTED_DECISION_HOSTS`, and the hosted decision APIs are
|
|
9
|
+
* refused even when listed.
|
|
10
|
+
*
|
|
11
|
+
* The parser is deliberately narrower than WHATWG's: a URL with anything but
|
|
12
|
+
* printable ASCII, a backslash, a percent sign, a query or a fragment is
|
|
13
|
+
* refused rather than normalised, so every HTTP client reaches the host the
|
|
14
|
+
* guard judged.
|
|
15
|
+
*
|
|
16
|
+
* Byte-identical copy in `packages/gate-js/src/`; the Python
|
|
17
|
+
* (`intutic_clawde/gate/decide_engine.py`) and Rust (`proxy/src/decide/guard.rs`)
|
|
18
|
+
* guards run the same `fixtures/decide-engine-vectors.json` host cases.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
/** Hosted decision APIs, matched on the host or any subdomain of it. */
|
|
23
|
+
export declare const DECIDE_HOSTED_DENYLIST: readonly ["typesafe.ai", "fastino.ai", "api.openai.com", "openai.azure.com", "services.ai.azure.com", "gateway.ai.cloudflare.com", "ai-gateway.vercel.sh", "api.fireworks.ai", "api.perplexity.ai", "cloud.databricks.com", "azuredatabricks.net"];
|
|
24
|
+
export type DecideHostVerdict = {
|
|
25
|
+
ok: true;
|
|
26
|
+
host: string;
|
|
27
|
+
reason: 'loopback' | 'private' | 'listed';
|
|
28
|
+
} | {
|
|
29
|
+
ok: false;
|
|
30
|
+
host: string;
|
|
31
|
+
reason: 'scheme' | 'bad_url' | 'credentials' | 'denylist' | 'decision_path' | 'not_listed';
|
|
32
|
+
};
|
|
33
|
+
export declare class DecideHostRefusedError extends Error {
|
|
34
|
+
readonly verdict: Extract<DecideHostVerdict, {
|
|
35
|
+
ok: false;
|
|
36
|
+
}>;
|
|
37
|
+
readonly code: "host_refused";
|
|
38
|
+
constructor(verdict: Extract<DecideHostVerdict, {
|
|
39
|
+
ok: false;
|
|
40
|
+
}>);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Judges a decide engine's base URL. `listed` is the value of
|
|
44
|
+
* `INTUTIC_SELF_HOSTED_DECISION_HOSTS` (a comma list).
|
|
45
|
+
*/
|
|
46
|
+
export declare function checkSelfHostedDecisionHost(url: string, listed?: string): DecideHostVerdict;
|
|
47
|
+
/** As {@link checkSelfHostedDecisionHost}, throwing {@link DecideHostRefusedError}; returns the host. */
|
|
48
|
+
export declare function assertSelfHostedDecisionHost(url: string, listed?: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* {@link checkSelfHostedDecisionHost} as JavaScript source, with the
|
|
51
|
+
* constants and helpers it reads, for the hook gates to embed. A CommonJS
|
|
52
|
+
* build names an exported constant `exports.X` inside a function; the source
|
|
53
|
+
* defines each as a plain `X`, so that prefix is dropped.
|
|
54
|
+
*/
|
|
55
|
+
export declare const DECIDE_HOST_GUARD_JS_SOURCE: string;
|
|
56
|
+
//# sourceMappingURL=decideHostGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decideHostGuard.d.ts","sourceRoot":"","sources":["../src/decideHostGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,oPAYzB,CAAA;AAKV,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAA;CAAE,GACrE;IACE,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,eAAe,GAAG,YAAY,CAAA;CAC3F,CAAA;AAEL,qBAAa,sBAAuB,SAAQ,KAAK;IAEnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC;IADvE,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAS;gBAClB,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC;CAIxE;AAiED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA2C3F;AAED,yGAAyG;AACzG,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjF;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,QAM5B,CAAA"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The self-hosted guard on a decide engine's URL.
|
|
4
|
+
*
|
|
5
|
+
* A decide engine sees every tool call a rule asks about, so it must run on
|
|
6
|
+
* hardware the user controls. The guard judges the literal URL, with no DNS
|
|
7
|
+
* lookup: loopback and private addresses pass, a name passes only when it is
|
|
8
|
+
* `localhost`, ends in `.local`, or is listed in
|
|
9
|
+
* `INTUTIC_SELF_HOSTED_DECISION_HOSTS`, and the hosted decision APIs are
|
|
10
|
+
* refused even when listed.
|
|
11
|
+
*
|
|
12
|
+
* The parser is deliberately narrower than WHATWG's: a URL with anything but
|
|
13
|
+
* printable ASCII, a backslash, a percent sign, a query or a fragment is
|
|
14
|
+
* refused rather than normalised, so every HTTP client reaches the host the
|
|
15
|
+
* guard judged.
|
|
16
|
+
*
|
|
17
|
+
* Byte-identical copy in `packages/gate-js/src/`; the Python
|
|
18
|
+
* (`intutic_clawde/gate/decide_engine.py`) and Rust (`proxy/src/decide/guard.rs`)
|
|
19
|
+
* guards run the same `fixtures/decide-engine-vectors.json` host cases.
|
|
20
|
+
*
|
|
21
|
+
* @module
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.DECIDE_HOST_GUARD_JS_SOURCE = exports.DecideHostRefusedError = exports.DECIDE_HOSTED_DENYLIST = void 0;
|
|
25
|
+
exports.checkSelfHostedDecisionHost = checkSelfHostedDecisionHost;
|
|
26
|
+
exports.assertSelfHostedDecisionHost = assertSelfHostedDecisionHost;
|
|
27
|
+
/** Hosted decision APIs, matched on the host or any subdomain of it. */
|
|
28
|
+
exports.DECIDE_HOSTED_DENYLIST = [
|
|
29
|
+
'typesafe.ai',
|
|
30
|
+
'fastino.ai',
|
|
31
|
+
'api.openai.com',
|
|
32
|
+
'openai.azure.com',
|
|
33
|
+
'services.ai.azure.com',
|
|
34
|
+
'gateway.ai.cloudflare.com',
|
|
35
|
+
'ai-gateway.vercel.sh',
|
|
36
|
+
'api.fireworks.ai',
|
|
37
|
+
'api.perplexity.ai',
|
|
38
|
+
'cloud.databricks.com',
|
|
39
|
+
'azuredatabricks.net',
|
|
40
|
+
];
|
|
41
|
+
/** Decision routes that are refused on any host that is not loopback or private. */
|
|
42
|
+
const DECISION_ROUTES = ['/v1/decisions', '/v1/systemone'];
|
|
43
|
+
class DecideHostRefusedError extends Error {
|
|
44
|
+
verdict;
|
|
45
|
+
code = 'host_refused';
|
|
46
|
+
constructor(verdict) {
|
|
47
|
+
super(`decide engine host refused (${verdict.reason}): ${verdict.host || '<none>'}`);
|
|
48
|
+
this.verdict = verdict;
|
|
49
|
+
this.name = 'DecideHostRefusedError';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.DecideHostRefusedError = DecideHostRefusedError;
|
|
53
|
+
function hostMatches(host, name) {
|
|
54
|
+
return host === name || host.endsWith('.' + name);
|
|
55
|
+
}
|
|
56
|
+
function normaliseName(name) {
|
|
57
|
+
const lower = name.trim().toLowerCase();
|
|
58
|
+
return lower.endsWith('.') ? lower.slice(0, -1) : lower;
|
|
59
|
+
}
|
|
60
|
+
function parseIpv4(host) {
|
|
61
|
+
const parts = host.split('.');
|
|
62
|
+
if (parts.length !== 4)
|
|
63
|
+
return null;
|
|
64
|
+
const out = [];
|
|
65
|
+
for (const p of parts) {
|
|
66
|
+
if (!/^(0|[1-9][0-9]{0,2})$/.test(p))
|
|
67
|
+
return null;
|
|
68
|
+
const n = Number(p);
|
|
69
|
+
if (n > 255)
|
|
70
|
+
return null;
|
|
71
|
+
out.push(n);
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
/** The eight 16-bit groups of an IPv6 literal, or null. */
|
|
76
|
+
function parseIpv6(text) {
|
|
77
|
+
if (!/^[0-9a-f:.]+$/.test(text))
|
|
78
|
+
return null;
|
|
79
|
+
const halves = text.split('::');
|
|
80
|
+
if (halves.length > 2)
|
|
81
|
+
return null;
|
|
82
|
+
const groups = (part) => {
|
|
83
|
+
if (part === '')
|
|
84
|
+
return [];
|
|
85
|
+
const out = [];
|
|
86
|
+
const items = part.split(':');
|
|
87
|
+
for (let i = 0; i < items.length; i++) {
|
|
88
|
+
const item = items[i];
|
|
89
|
+
if (i === items.length - 1 && item.includes('.')) {
|
|
90
|
+
const v4 = parseIpv4(item);
|
|
91
|
+
if (!v4)
|
|
92
|
+
return null;
|
|
93
|
+
out.push((v4[0] << 8) | v4[1], (v4[2] << 8) | v4[3]);
|
|
94
|
+
}
|
|
95
|
+
else if (/^[0-9a-f]{1,4}$/.test(item)) {
|
|
96
|
+
out.push(parseInt(item, 16));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return out;
|
|
103
|
+
};
|
|
104
|
+
const head = groups(halves[0]);
|
|
105
|
+
const tail = halves.length === 2 ? groups(halves[1]) : [];
|
|
106
|
+
if (!head || !tail)
|
|
107
|
+
return null;
|
|
108
|
+
if (halves.length === 1)
|
|
109
|
+
return head.length === 8 ? head : null;
|
|
110
|
+
const fill = 8 - head.length - tail.length;
|
|
111
|
+
if (fill < 1)
|
|
112
|
+
return null;
|
|
113
|
+
return [...head, ...new Array(fill).fill(0), ...tail];
|
|
114
|
+
}
|
|
115
|
+
/** Parses INTUTIC_SELF_HOSTED_DECISION_HOSTS: exact names, or `.suffix` for a name and its subdomains. */
|
|
116
|
+
function listedNames(listed) {
|
|
117
|
+
return (listed ?? '')
|
|
118
|
+
.split(',')
|
|
119
|
+
.map((e) => normaliseName(e))
|
|
120
|
+
.map((e) => (e.startsWith('.') ? e.slice(1) : e))
|
|
121
|
+
.filter((e) => e !== '');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Judges a decide engine's base URL. `listed` is the value of
|
|
125
|
+
* `INTUTIC_SELF_HOSTED_DECISION_HOSTS` (a comma list).
|
|
126
|
+
*/
|
|
127
|
+
function checkSelfHostedDecisionHost(url, listed) {
|
|
128
|
+
const scheme = /^(https?):\/\//i.exec(url);
|
|
129
|
+
if (!scheme)
|
|
130
|
+
return { ok: false, host: '', reason: 'scheme' };
|
|
131
|
+
const rest = url.slice(scheme[0].length);
|
|
132
|
+
if (/[^\x21-\x7e]|[\\%?#]/.test(rest))
|
|
133
|
+
return { ok: false, host: '', reason: 'bad_url' };
|
|
134
|
+
const slash = rest.indexOf('/');
|
|
135
|
+
const authority = slash === -1 ? rest : rest.slice(0, slash);
|
|
136
|
+
const path = slash === -1 ? '' : rest.slice(slash);
|
|
137
|
+
if (authority.includes('@'))
|
|
138
|
+
return { ok: false, host: '', reason: 'credentials' };
|
|
139
|
+
const m = /^(?:\[([0-9A-Fa-f:.]+)\]|([A-Za-z0-9._-]+))(?::([0-9]{1,5}))?$/.exec(authority);
|
|
140
|
+
if (!m || (m[3] !== undefined && Number(m[3]) > 65535))
|
|
141
|
+
return { ok: false, host: '', reason: 'bad_url' };
|
|
142
|
+
const v6 = m[1] !== undefined ? parseIpv6(m[1].toLowerCase()) : null;
|
|
143
|
+
if (m[1] !== undefined && !v6)
|
|
144
|
+
return { ok: false, host: '', reason: 'bad_url' };
|
|
145
|
+
const host = m[1] !== undefined ? m[1].toLowerCase() : normaliseName(m[2]);
|
|
146
|
+
if (host === '')
|
|
147
|
+
return { ok: false, host: '', reason: 'bad_url' };
|
|
148
|
+
if (exports.DECIDE_HOSTED_DENYLIST.some((d) => hostMatches(host, d)))
|
|
149
|
+
return { ok: false, host, reason: 'denylist' };
|
|
150
|
+
let local = null;
|
|
151
|
+
if (v6) {
|
|
152
|
+
if (v6.slice(0, 7).every((g) => g === 0) && v6[7] === 1)
|
|
153
|
+
local = 'loopback';
|
|
154
|
+
else if ((v6[0] & 0xfe00) === 0xfc00)
|
|
155
|
+
local = 'private';
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
const v4 = parseIpv4(host);
|
|
159
|
+
if (v4) {
|
|
160
|
+
if (v4[0] === 127)
|
|
161
|
+
local = 'loopback';
|
|
162
|
+
else if (v4[0] === 10 ||
|
|
163
|
+
(v4[0] === 172 && v4[1] >= 16 && v4[1] <= 31) ||
|
|
164
|
+
(v4[0] === 192 && v4[1] === 168) ||
|
|
165
|
+
(v4[0] === 169 && v4[1] === 254))
|
|
166
|
+
local = 'private';
|
|
167
|
+
}
|
|
168
|
+
else if (host === 'localhost')
|
|
169
|
+
local = 'loopback';
|
|
170
|
+
else if (host.endsWith('.local'))
|
|
171
|
+
local = 'private';
|
|
172
|
+
}
|
|
173
|
+
if (local)
|
|
174
|
+
return { ok: true, host, reason: local };
|
|
175
|
+
const lowerPath = path.toLowerCase();
|
|
176
|
+
if (DECISION_ROUTES.some((r) => lowerPath.includes(r)))
|
|
177
|
+
return { ok: false, host, reason: 'decision_path' };
|
|
178
|
+
if (listedNames(listed).some((name) => hostMatches(host, name)))
|
|
179
|
+
return { ok: true, host, reason: 'listed' };
|
|
180
|
+
return { ok: false, host, reason: 'not_listed' };
|
|
181
|
+
}
|
|
182
|
+
/** As {@link checkSelfHostedDecisionHost}, throwing {@link DecideHostRefusedError}; returns the host. */
|
|
183
|
+
function assertSelfHostedDecisionHost(url, listed) {
|
|
184
|
+
const verdict = checkSelfHostedDecisionHost(url, listed);
|
|
185
|
+
if (!verdict.ok)
|
|
186
|
+
throw new DecideHostRefusedError(verdict);
|
|
187
|
+
return verdict.host;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* {@link checkSelfHostedDecisionHost} as JavaScript source, with the
|
|
191
|
+
* constants and helpers it reads, for the hook gates to embed. A CommonJS
|
|
192
|
+
* build names an exported constant `exports.X` inside a function; the source
|
|
193
|
+
* defines each as a plain `X`, so that prefix is dropped.
|
|
194
|
+
*/
|
|
195
|
+
exports.DECIDE_HOST_GUARD_JS_SOURCE = [
|
|
196
|
+
`const DECIDE_HOSTED_DENYLIST = ${JSON.stringify(exports.DECIDE_HOSTED_DENYLIST)};`,
|
|
197
|
+
`const DECISION_ROUTES = ${JSON.stringify(DECISION_ROUTES)};`,
|
|
198
|
+
...[hostMatches, normaliseName, parseIpv4, parseIpv6, listedNames, checkSelfHostedDecisionHost].map((fn) => fn.toString().replace(/\bexports\./g, '')),
|
|
199
|
+
].join('\n');
|
|
200
|
+
//# sourceMappingURL=decideHostGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decideHostGuard.js","sourceRoot":"","sources":["../src/decideHostGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `decide(state, questions, opts)` for people building their own agents: ask
|
|
3
|
+
* a self-hosted model a few narrow questions about a state, and get each
|
|
4
|
+
* answer's probability, its three-valued reading through a band and, with a
|
|
5
|
+
* `when`, the outcome a decide rule would reach.
|
|
6
|
+
*
|
|
7
|
+
* The questions are written as a decide rule's `questions` and validated
|
|
8
|
+
* the same way, so wording that asks the model for approval is refused. Every
|
|
9
|
+
* call goes through the engine client and its host guard: a hosted decision
|
|
10
|
+
* API is refused before anything is sent, and there is no way to pass an
|
|
11
|
+
* engine object that skips the guard.
|
|
12
|
+
*
|
|
13
|
+
* Errors are {@link DecideEngineError}s and are thrown, so a caller cannot
|
|
14
|
+
* read an unavailable engine as an answer. The one exception is
|
|
15
|
+
* `too_large`: a state over the limit is never truncated, every answer is
|
|
16
|
+
* unknown, and with a `when` the outcome escalates.
|
|
17
|
+
*
|
|
18
|
+
* Self-contained but for the decide modules beside it, so `@intutic/gate` and
|
|
19
|
+
* `@intutic/clawde` carry byte-identical copies; each wraps it in a `decide()`
|
|
20
|
+
* that reads `~/.intutic/decide/engine.json` and the process environment. The
|
|
21
|
+
* Python port is `intutic_clawde/gate/decide_sdk.py`. All three run
|
|
22
|
+
* `fixtures/decide-sdk-vectors.json`.
|
|
23
|
+
*
|
|
24
|
+
* @module
|
|
25
|
+
*/
|
|
26
|
+
import { type ChoiceAtom, type DecideBand, type DecideQuestion, type Tri } from './decide.js';
|
|
27
|
+
import { type DecideAdapter, type DecideEngineConfig } from './decideEngine.js';
|
|
28
|
+
/** The budget when neither `budgetMs` nor `INTUTIC_DECIDE_BUDGET_MS` sets one. */
|
|
29
|
+
export declare const DECIDE_SDK_DEFAULT_BUDGET_MS = 7300;
|
|
30
|
+
/** The engine configuration's path under the home directory. */
|
|
31
|
+
export declare const DECIDE_ENGINE_FILE_PATH: readonly [".intutic", "decide", "engine.json"];
|
|
32
|
+
export interface DecideSdkOptions {
|
|
33
|
+
/** A `when` over the questions. With it, the result carries the rule's outcome. */
|
|
34
|
+
when?: string;
|
|
35
|
+
/** The band for every question without its own (default `{yes_at: 0.85, no_below: 0.15}`). */
|
|
36
|
+
band?: DecideBand;
|
|
37
|
+
/** What an unknown `when` does (default `ask`). */
|
|
38
|
+
escalate?: 'ask' | 'review' | 'refuse';
|
|
39
|
+
/** The engine's configuration. Without it, `engineFile` and `env` give it. */
|
|
40
|
+
engine?: DecideEngineConfig;
|
|
41
|
+
/** The parsed `engine.json`, or null when there is none. */
|
|
42
|
+
engineFile?: unknown;
|
|
43
|
+
/** The environment, which overrides `engineFile`. */
|
|
44
|
+
env?: Record<string, string | undefined>;
|
|
45
|
+
/** Milliseconds for the whole call (default `INTUTIC_DECIDE_BUDGET_MS`, else 7,300). */
|
|
46
|
+
budgetMs?: number;
|
|
47
|
+
}
|
|
48
|
+
export type DecideSdkAnswer = {
|
|
49
|
+
type: 'yes_no';
|
|
50
|
+
p: number | null;
|
|
51
|
+
value: Tri;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'choice';
|
|
54
|
+
perOrder: Array<Record<string, number>> | null;
|
|
55
|
+
/** Each option's atom `q == o`: the mean over the orders, their spread, and its value. */
|
|
56
|
+
options: Record<string, ChoiceAtom>;
|
|
57
|
+
/** The option whose atom is T, or null. At most one can be, because `yes_at` is above 0.5. */
|
|
58
|
+
choice: string | null;
|
|
59
|
+
};
|
|
60
|
+
export interface DecideSdkResult {
|
|
61
|
+
answers: Record<string, DecideSdkAnswer>;
|
|
62
|
+
/** `when`'s value, or null without a `when`. */
|
|
63
|
+
value: Tri | null;
|
|
64
|
+
outcome: 'allow' | 'refuse' | 'escalate' | null;
|
|
65
|
+
code: 'DECIDE_REFUSED' | 'DECIDE_ESCALATED' | null;
|
|
66
|
+
via: 'ask' | 'review' | null;
|
|
67
|
+
/** `too_large` when the state was over 16,384 bytes, a tool call's limit, and nothing was asked. */
|
|
68
|
+
error: 'too_large' | null;
|
|
69
|
+
model: string | null;
|
|
70
|
+
modelDigest: string | null;
|
|
71
|
+
digestStrength: 'strong' | 'weak' | null;
|
|
72
|
+
adapter: DecideAdapter;
|
|
73
|
+
latencyMs: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* `engine.json`'s parsed content through `read`, or null when the file does
|
|
77
|
+
* not exist. A file that does not parse leaves the engine not configured.
|
|
78
|
+
*/
|
|
79
|
+
export declare function loadDecideEngineFile(read: (path: string) => string, path: string): unknown;
|
|
80
|
+
/**
|
|
81
|
+
* Asks `questions` about `state`. Throws a `TypeError` for questions (or a
|
|
82
|
+
* `when`) a decide rule would refuse, and a {@link DecideEngineError} when
|
|
83
|
+
* the engine is not configured, its host is refused, or it cannot answer.
|
|
84
|
+
*/
|
|
85
|
+
export declare function decideQuestions(state: string, questions: Record<string, DecideQuestion>, opts?: DecideSdkOptions): Promise<DecideSdkResult>;
|
|
86
|
+
//# sourceMappingURL=decideSdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decideSdk.d.ts","sourceRoot":"","sources":["../src/decideSdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAQL,KAAK,UAAU,EAEf,KAAK,UAAU,EACf,KAAK,cAAc,EAEnB,KAAK,GAAG,EACT,MAAM,aAAa,CAAA;AACpB,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAExB,MAAM,mBAAmB,CAAA;AAE1B,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,OAAQ,CAAA;AACjD,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,gDAAiD,CAAA;AAErF,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8FAA8F;IAC9F,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACtC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,GAChD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;IAC9C,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACnC,8FAA8F;IAC9F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAEL,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,gDAAgD;IAChD,KAAK,EAAE,GAAG,GAAG,IAAI,CAAA;IACjB,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAA;IAC/C,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,IAAI,CAAA;IAClD,GAAG,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAA;IAC5B,oGAAoG;IACpG,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;IACxC,OAAO,EAAE,aAAa,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AA2BD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAa1F;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACzC,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,eAAe,CAAC,CA0D1B"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `decide(state, questions, opts)` for people building their own agents: ask
|
|
4
|
+
* a self-hosted model a few narrow questions about a state, and get each
|
|
5
|
+
* answer's probability, its three-valued reading through a band and, with a
|
|
6
|
+
* `when`, the outcome a decide rule would reach.
|
|
7
|
+
*
|
|
8
|
+
* The questions are written as a decide rule's `questions` and validated
|
|
9
|
+
* the same way, so wording that asks the model for approval is refused. Every
|
|
10
|
+
* call goes through the engine client and its host guard: a hosted decision
|
|
11
|
+
* API is refused before anything is sent, and there is no way to pass an
|
|
12
|
+
* engine object that skips the guard.
|
|
13
|
+
*
|
|
14
|
+
* Errors are {@link DecideEngineError}s and are thrown, so a caller cannot
|
|
15
|
+
* read an unavailable engine as an answer. The one exception is
|
|
16
|
+
* `too_large`: a state over the limit is never truncated, every answer is
|
|
17
|
+
* unknown, and with a `when` the outcome escalates.
|
|
18
|
+
*
|
|
19
|
+
* Self-contained but for the decide modules beside it, so `@intutic/gate` and
|
|
20
|
+
* `@intutic/clawde` carry byte-identical copies; each wraps it in a `decide()`
|
|
21
|
+
* that reads `~/.intutic/decide/engine.json` and the process environment. The
|
|
22
|
+
* Python port is `intutic_clawde/gate/decide_sdk.py`. All three run
|
|
23
|
+
* `fixtures/decide-sdk-vectors.json`.
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.DECIDE_ENGINE_FILE_PATH = exports.DECIDE_SDK_DEFAULT_BUDGET_MS = void 0;
|
|
29
|
+
exports.loadDecideEngineFile = loadDecideEngineFile;
|
|
30
|
+
exports.decideQuestions = decideQuestions;
|
|
31
|
+
const decide_js_1 = require("./decide.js");
|
|
32
|
+
const decideEngine_js_1 = require("./decideEngine.js");
|
|
33
|
+
/** The budget when neither `budgetMs` nor `INTUTIC_DECIDE_BUDGET_MS` sets one. */
|
|
34
|
+
exports.DECIDE_SDK_DEFAULT_BUDGET_MS = 7_300;
|
|
35
|
+
/** The engine configuration's path under the home directory. */
|
|
36
|
+
exports.DECIDE_ENGINE_FILE_PATH = ['.intutic', 'decide', 'engine.json'];
|
|
37
|
+
/**
|
|
38
|
+
* The rule the questions are checked as: an `on: response` rule whose `when`
|
|
39
|
+
* is the caller's, or one naming every question once.
|
|
40
|
+
*/
|
|
41
|
+
function sdkRule(questions, opts) {
|
|
42
|
+
const when = opts.when ??
|
|
43
|
+
Object.keys(questions)
|
|
44
|
+
.sort()
|
|
45
|
+
.map((n) => (questions[n]?.type === 'choice' ? `${n} == ${decide_js_1.NONE_OF_THESE}` : n))
|
|
46
|
+
.join(' OR ');
|
|
47
|
+
const rule = { id: 'sdk', on: 'response', questions, when };
|
|
48
|
+
if (opts.band !== undefined)
|
|
49
|
+
rule.band = opts.band;
|
|
50
|
+
if (opts.escalate !== undefined)
|
|
51
|
+
rule.escalate = opts.escalate;
|
|
52
|
+
return rule;
|
|
53
|
+
}
|
|
54
|
+
function budgetFrom(opts, env) {
|
|
55
|
+
if (opts.budgetMs !== undefined)
|
|
56
|
+
return opts.budgetMs;
|
|
57
|
+
const raw = env.INTUTIC_DECIDE_BUDGET_MS?.trim();
|
|
58
|
+
if (!raw)
|
|
59
|
+
return exports.DECIDE_SDK_DEFAULT_BUDGET_MS;
|
|
60
|
+
if (!/^[0-9]+$/.test(raw))
|
|
61
|
+
throw new decideEngine_js_1.DecideEngineError('not_configured', 'INTUTIC_DECIDE_BUDGET_MS must be a whole number');
|
|
62
|
+
return Number(raw);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* `engine.json`'s parsed content through `read`, or null when the file does
|
|
66
|
+
* not exist. A file that does not parse leaves the engine not configured.
|
|
67
|
+
*/
|
|
68
|
+
function loadDecideEngineFile(read, path) {
|
|
69
|
+
let text;
|
|
70
|
+
try {
|
|
71
|
+
text = read(path);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
if (err.code === 'ENOENT')
|
|
75
|
+
return null;
|
|
76
|
+
throw new decideEngine_js_1.DecideEngineError('not_configured', `${path} cannot be read`);
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
return JSON.parse(text);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
throw new decideEngine_js_1.DecideEngineError('not_configured', `${path} is not JSON`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Asks `questions` about `state`. Throws a `TypeError` for questions (or a
|
|
87
|
+
* `when`) a decide rule would refuse, and a {@link DecideEngineError} when
|
|
88
|
+
* the engine is not configured, its host is refused, or it cannot answer.
|
|
89
|
+
*/
|
|
90
|
+
async function decideQuestions(state, questions, opts = {}) {
|
|
91
|
+
if (typeof state !== 'string')
|
|
92
|
+
throw new TypeError('decide: state must be a string');
|
|
93
|
+
const v = (0, decide_js_1.validateDecideRule)(sdkRule(questions, opts));
|
|
94
|
+
if (!v.ok)
|
|
95
|
+
throw new TypeError(v.reason);
|
|
96
|
+
const rule = v.rule;
|
|
97
|
+
const env = opts.env ?? {};
|
|
98
|
+
const cfg = opts.engine ?? (0, decideEngine_js_1.resolveDecideEngineConfig)(opts.engineFile ?? null, env);
|
|
99
|
+
const budgetMs = budgetFrom(opts, env);
|
|
100
|
+
const engine = (0, decideEngine_js_1.createDecideEngine)(cfg);
|
|
101
|
+
const names = Object.keys(rule.questions).sort();
|
|
102
|
+
const calls = names.map((name) => {
|
|
103
|
+
const q = rule.questions[name];
|
|
104
|
+
return q.type === 'choice' ? { name, type: 'choice', ask: q.ask, options: (0, decide_js_1.decideOptions)(q) } : { name, type: 'yes_no', ask: q.ask };
|
|
105
|
+
});
|
|
106
|
+
const started = Date.now();
|
|
107
|
+
let res = null;
|
|
108
|
+
// A caller's state is held to the tool-call limit: the engine takes larger
|
|
109
|
+
// ones, up to an `on: response` state's limit, from the state builders only.
|
|
110
|
+
if (new TextEncoder().encode(state).length <= decideEngine_js_1.DECIDE_MAX_STATE_BYTES) {
|
|
111
|
+
try {
|
|
112
|
+
res = await engine.ask(state, calls, started + budgetMs);
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
if (!(err instanceof decideEngine_js_1.DecideEngineError) || err.code !== 'too_large')
|
|
116
|
+
throw err;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const inputs = {};
|
|
120
|
+
const answers = {};
|
|
121
|
+
for (const name of names) {
|
|
122
|
+
const q = rule.questions[name];
|
|
123
|
+
const a = res?.answers[name];
|
|
124
|
+
const band = (0, decide_js_1.decideQuestionBand)(rule, name);
|
|
125
|
+
inputs[name] = { p: a?.p, perOrder: a?.perOrder };
|
|
126
|
+
if (q.type === 'yes_no') {
|
|
127
|
+
const p = typeof a?.p === 'number' ? a.p : null;
|
|
128
|
+
answers[name] = { type: 'yes_no', p, value: p === null ? 'U' : (0, decide_js_1.bandValue)(p, band) };
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const options = (0, decide_js_1.choiceAtoms)((0, decide_js_1.decideOptions)(q), a?.perOrder ?? [], band);
|
|
132
|
+
const choice = Object.keys(options).find((o) => options[o].value === 'T') ?? null;
|
|
133
|
+
answers[name] = { type: 'choice', perOrder: a?.perOrder ?? null, options, choice };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const ruled = opts.when === undefined ? null : (0, decide_js_1.decideRuleOutcome)(rule, v.expr, inputs);
|
|
137
|
+
return {
|
|
138
|
+
answers,
|
|
139
|
+
value: ruled?.value ?? null,
|
|
140
|
+
outcome: ruled?.outcome ?? null,
|
|
141
|
+
code: ruled?.code ?? null,
|
|
142
|
+
via: ruled?.via ?? null,
|
|
143
|
+
error: res ? null : 'too_large',
|
|
144
|
+
model: res?.model ?? null,
|
|
145
|
+
modelDigest: res?.modelDigest ?? null,
|
|
146
|
+
digestStrength: res?.digestStrength ?? null,
|
|
147
|
+
adapter: cfg.adapter,
|
|
148
|
+
latencyMs: res?.latencyMs ?? Date.now() - started,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=decideSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decideSdk.js","sourceRoot":"","sources":["../src/decideSdk.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,4 +8,9 @@ export { PROXY_REFUSALS, REFUSAL_HEADER, REFUSAL_RULE_HEADER, STREAM_REFUSAL_MAR
|
|
|
8
8
|
export { UPSTREAM_ATTEMPTS_HEADER, UPSTREAM_FALLBACK_HEADER } from './upstream';
|
|
9
9
|
export { resolveContext } from './context-resolver';
|
|
10
10
|
export { normalizeRequest, normalizeResponse } from './schema-enforcer';
|
|
11
|
+
export { decide } from './decideApi';
|
|
12
|
+
export { DecideEngineError } from './decideEngine';
|
|
13
|
+
export type { DecideEngineConfig, DecideEngineErrorCode } from './decideEngine';
|
|
14
|
+
export type { DecideBand, DecideQuestion } from './decide';
|
|
15
|
+
export type { DecideSdkAnswer, DecideSdkOptions, DecideSdkResult } from './decideSdk';
|
|
11
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC1D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.normalizeResponse = exports.normalizeRequest = exports.resolveContext = exports.UPSTREAM_FALLBACK_HEADER = exports.UPSTREAM_ATTEMPTS_HEADER = exports.streamRefusal = exports.STREAM_REFUSAL_MARKER = exports.REFUSAL_RULE_HEADER = exports.REFUSAL_HEADER = exports.PROXY_REFUSALS = exports.verifyIntegrityRoot = exports.verifyEvidenceArchive = exports.ControlPlaneClient = exports.ClawdeClient = void 0;
|
|
17
|
+
exports.DecideEngineError = exports.decide = exports.normalizeResponse = exports.normalizeRequest = exports.resolveContext = exports.UPSTREAM_FALLBACK_HEADER = exports.UPSTREAM_ATTEMPTS_HEADER = exports.streamRefusal = exports.STREAM_REFUSAL_MARKER = exports.REFUSAL_RULE_HEADER = exports.REFUSAL_HEADER = exports.PROXY_REFUSALS = exports.verifyIntegrityRoot = exports.verifyEvidenceArchive = exports.ControlPlaneClient = exports.ClawdeClient = void 0;
|
|
18
18
|
var client_1 = require("./client");
|
|
19
19
|
Object.defineProperty(exports, "ClawdeClient", { enumerable: true, get: function () { return client_1.ClawdeClient; } });
|
|
20
20
|
var control_plane_1 = require("./control-plane");
|
|
@@ -39,4 +39,8 @@ Object.defineProperty(exports, "resolveContext", { enumerable: true, get: functi
|
|
|
39
39
|
var schema_enforcer_1 = require("./schema-enforcer");
|
|
40
40
|
Object.defineProperty(exports, "normalizeRequest", { enumerable: true, get: function () { return schema_enforcer_1.normalizeRequest; } });
|
|
41
41
|
Object.defineProperty(exports, "normalizeResponse", { enumerable: true, get: function () { return schema_enforcer_1.normalizeResponse; } });
|
|
42
|
+
var decideApi_1 = require("./decideApi");
|
|
43
|
+
Object.defineProperty(exports, "decide", { enumerable: true, get: function () { return decideApi_1.decide; } });
|
|
44
|
+
var decideEngine_1 = require("./decideEngine");
|
|
45
|
+
Object.defineProperty(exports, "DecideEngineError", { enumerable: true, get: function () { return decideEngine_1.DecideEngineError; } });
|
|
42
46
|
//# sourceMappingURL=index.js.map
|