@intutic/clawde 2.9.1 → 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.
@@ -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":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAyGH,oDAaC;AAOD,0CA8DC;AAzLD,2CAcoB;AACpB,uDAQ0B;AAE1B,kFAAkF;AACrE,QAAA,4BAA4B,GAAG,KAAK,CAAA;AACjD,gEAAgE;AACnD,QAAA,uBAAuB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAU,CAAA;AA8CrF;;;GAGG;AACH,SAAS,OAAO,CAAC,SAAyC,EAAE,IAAsB;IAChF,MAAM,IAAI,GACR,IAAI,CAAC,IAAI;QACT,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;aACnB,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,yBAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9E,IAAI,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,IAAI,GAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAClD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,IAAsB,EAAE,GAAuC;IACjF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAA;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,oCAA4B,CAAA;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,mCAAiB,CAAC,gBAAgB,EAAE,iDAAiD,CAAC,CAAA;IAC3H,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,IAA8B,EAAE,IAAY;IAC/E,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAAyB,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,IAAI,mCAAiB,CAAC,gBAAgB,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,mCAAiB,CAAC,gBAAgB,EAAE,GAAG,IAAI,cAAc,CAAC,CAAA;IACtE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,SAAyC,EACzC,OAAyB,EAAE;IAE3B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAA;IACpF,MAAM,CAAC,GAAG,IAAA,8BAAkB,EAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IACtD,IAAI,CAAC,CAAC,CAAC,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;IACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAA,2CAAyB,EAAC,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,GAAG,CAAC,CAAA;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,IAAA,oCAAkB,EAAC,GAAG,CAAC,CAAA;IAEtC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,CAAA;QAC/B,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAA,yBAAa,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IACvJ,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC1B,IAAI,GAAG,GAA8B,IAAI,CAAA;IACzC,2EAA2E;IAC3E,6EAA6E;IAC7E,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,wCAAsB,EAAE,CAAC;QACrE,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAA;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,mCAAiB,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,MAAM,GAAG,CAAA;QAChF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAsC,EAAE,CAAA;IACpD,MAAM,OAAO,GAAoC,EAAE,CAAA;IACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,CAAA;QAC/B,MAAM,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAA;QACjD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,qBAAS,EAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAA;QACrF,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,IAAA,uBAAW,EAAC,IAAA,yBAAa,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;YACtE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,CAAA;YAClF,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;QACpF,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACtF,OAAO;QACL,OAAO;QACP,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI;QAC3B,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI;QAC/B,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;QACzB,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI;QACvB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;QAC/B,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI;QACzB,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,IAAI;QACrC,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,IAAI;QAC3C,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;KAClD,CAAA;AACH,CAAC"}
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
@@ -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