@corenel/harness 0.19.0 → 0.20.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.
Files changed (51) hide show
  1. package/dist/core/spawn.d.ts +7 -0
  2. package/dist/core/spawn.d.ts.map +1 -1
  3. package/dist/core/spawn.js +21 -10
  4. package/dist/core/spawn.js.map +1 -1
  5. package/dist/guardrail/glob.d.ts +1 -2
  6. package/dist/guardrail/glob.d.ts.map +1 -1
  7. package/dist/guardrail/glob.js +4 -29
  8. package/dist/guardrail/glob.js.map +1 -1
  9. package/dist/install/lockfile.d.ts +25 -5
  10. package/dist/install/lockfile.d.ts.map +1 -1
  11. package/dist/install/lockfile.js +60 -4
  12. package/dist/install/lockfile.js.map +1 -1
  13. package/dist/install/nameEntries.d.ts +28 -0
  14. package/dist/install/nameEntries.d.ts.map +1 -0
  15. package/dist/install/nameEntries.js +198 -0
  16. package/dist/install/nameEntries.js.map +1 -0
  17. package/dist/install/pinRefusal.d.ts +4 -0
  18. package/dist/install/pinRefusal.d.ts.map +1 -0
  19. package/dist/install/pinRefusal.js +19 -0
  20. package/dist/install/pinRefusal.js.map +1 -0
  21. package/dist/install/requirements.d.ts +7 -0
  22. package/dist/install/requirements.d.ts.map +1 -0
  23. package/dist/install/requirements.js +23 -0
  24. package/dist/install/requirements.js.map +1 -0
  25. package/dist/providers/egressGuard.d.ts +17 -0
  26. package/dist/providers/egressGuard.d.ts.map +1 -0
  27. package/dist/providers/egressGuard.js +26 -0
  28. package/dist/providers/egressGuard.js.map +1 -0
  29. package/dist/providers/gateway.d.ts +33 -0
  30. package/dist/providers/gateway.d.ts.map +1 -1
  31. package/dist/providers/gateway.js +42 -2
  32. package/dist/providers/gateway.js.map +1 -1
  33. package/dist/sidecar/fleetJws.d.ts +15 -0
  34. package/dist/sidecar/fleetJws.d.ts.map +1 -0
  35. package/dist/sidecar/fleetJws.js +47 -0
  36. package/dist/sidecar/fleetJws.js.map +1 -0
  37. package/dist/sidecar/host.d.ts +4 -0
  38. package/dist/sidecar/host.d.ts.map +1 -1
  39. package/dist/sidecar/host.js +8 -1
  40. package/dist/sidecar/host.js.map +1 -1
  41. package/dist/sidecar/identity.d.ts +5 -0
  42. package/dist/sidecar/identity.d.ts.map +1 -1
  43. package/dist/sidecar/server.d.ts +15 -6
  44. package/dist/sidecar/server.d.ts.map +1 -1
  45. package/dist/sidecar/server.js +71 -4
  46. package/dist/sidecar/server.js.map +1 -1
  47. package/dist/skills.d.ts +18 -0
  48. package/dist/skills.d.ts.map +1 -1
  49. package/dist/skills.js +93 -12
  50. package/dist/skills.js.map +1 -1
  51. package/package.json +5 -4
@@ -0,0 +1,198 @@
1
+ import { PACKAGE_REF_FILE, parsePackageRef, serializePackageRef, nameEntryDir, packageInstallDir } from '@corenel/protocol';
2
+ const NAME_RE = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
3
+ export class NameEntryConflict extends Error {
4
+ constructor(path, message) {
5
+ super(message);
6
+ Object.defineProperty(this, "path", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ this.name = 'NameEntryConflict';
13
+ this.path = path;
14
+ }
15
+ }
16
+ function unscoped(name) {
17
+ const i = name.indexOf('/');
18
+ return name.startsWith('@') && i > 0 ? name.slice(i + 1) : name;
19
+ }
20
+ function flatten(top) {
21
+ const out = [];
22
+ const seen = new Set();
23
+ const walk = (p) => {
24
+ const key = `${p.name}@${p.version}`;
25
+ if (seen.has(key))
26
+ return;
27
+ seen.add(key);
28
+ out.push(p);
29
+ for (const d of p.dependencies)
30
+ walk(d);
31
+ };
32
+ walk(top);
33
+ return out;
34
+ }
35
+ async function readOrNull(fs, path) {
36
+ try {
37
+ return await fs.read(path);
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ function isNotFound(e) {
44
+ return e instanceof Error && /not found|enoent|no such|does not exist/i.test(e.message);
45
+ }
46
+ /** Whether a folder exists with something in it. An empty folder counts as absent.
47
+ * Fails CLOSED: any error other than "not found" is a conflict, never "absent". */
48
+ async function hasEntries(fs, dir) {
49
+ let exists;
50
+ try {
51
+ exists = (await fs.stat(dir)) !== null;
52
+ }
53
+ catch (e) {
54
+ if (isNotFound(e))
55
+ return false;
56
+ throw new NameEntryConflict(dir, `could not read ${dir}; not linked`);
57
+ }
58
+ if (!exists)
59
+ return false;
60
+ try {
61
+ const nodes = fs.listDir ? await fs.listDir(dir) : await fs.list(dir);
62
+ return nodes.length > 0;
63
+ }
64
+ catch {
65
+ throw new NameEntryConflict(dir, `could not read ${dir}; not linked`);
66
+ }
67
+ }
68
+ async function plan(fs, base, installed, as, managed) {
69
+ const out = [];
70
+ const byDir = new Map();
71
+ for (const p of flatten(installed)) {
72
+ if (p.type !== 'agent' && p.type !== 'skill')
73
+ continue;
74
+ const type = p.type;
75
+ if (p === installed && as && type !== 'agent')
76
+ throw new NameEntryConflict(as, `"as" renames only an agent; ${p.name} is a ${type}`);
77
+ const name = p === installed && type === 'agent' && as ? as : unscoped(p.name);
78
+ if (!NAME_RE.test(name))
79
+ throw new NameEntryConflict(name, `"${name}" is not a valid ${type} name (letters, digits, - and _, starting with a letter or digit)`);
80
+ const dir = nameEntryDir(base, type, name);
81
+ const claimed = byDir.get(dir);
82
+ if (claimed)
83
+ throw new NameEntryConflict(dir, `${p.name}@${p.version} and ${claimed} would both install as ${type} "${name}"`);
84
+ byDir.set(dir, `${p.name}@${p.version}`);
85
+ const top = p === installed && type === 'agent';
86
+ const mark = top ? managed : undefined;
87
+ const refText = await readOrNull(fs, `${dir}/${PACKAGE_REF_FILE}`);
88
+ let previous = null;
89
+ if (refText !== null) {
90
+ try {
91
+ previous = parsePackageRef(refText);
92
+ }
93
+ catch {
94
+ throw new NameEntryConflict(dir, `${dir} holds an unreadable ${PACKAGE_REF_FILE}; remove it to install ${p.name}`);
95
+ }
96
+ if (previous.managed && !mark)
97
+ throw new NameEntryConflict(dir, `${type} "${name}" is managed by the fleet; ${p.name} was not linked`);
98
+ if (!previous.managed && mark)
99
+ throw new NameEntryConflict(dir, `a local ${type} named "${name}" already exists; ${p.name} was not linked`);
100
+ if (previous.package !== p.name)
101
+ throw new NameEntryConflict(dir, `${type} "${name}" is already ${previous.package}; ${p.name} was not linked`);
102
+ }
103
+ else if (mark) {
104
+ /* A managed agent may link into a folder that holds only what an earlier
105
+ * deployment left (settings, memory). Never over a local definition. */
106
+ if ((await readOrNull(fs, `${dir}/AGENT.md`)) !== null)
107
+ throw new NameEntryConflict(dir, `a local ${type} named "${name}" already exists; ${p.name} was not linked`);
108
+ }
109
+ else if (await hasEntries(fs, dir)) {
110
+ throw new NameEntryConflict(dir, `a local ${type} named "${name}" already exists; ${p.name} was not linked`);
111
+ }
112
+ out.push({ type, name, path: `${dir}/${PACKAGE_REF_FILE}`, package: p.name, version: p.version, digest: p.digest, previous, dir, ...(mark ? { managed: mark } : {}) });
113
+ }
114
+ return out;
115
+ }
116
+ /** Every name entry of a type under base, as references. `complete` is false when any
117
+ * listing or reference could not be read: the caller must then not conclude "unused". */
118
+ async function referencesOf(fs, base, type) {
119
+ const root = nameEntryDir(base, type, '').replace(/\/$/, '');
120
+ let names;
121
+ try {
122
+ if ((await fs.stat(root)) === null)
123
+ return { refs: [], complete: true };
124
+ const nodes = fs.listDir ? await fs.listDir(root) : await fs.list(root);
125
+ names = nodes.filter((n) => n.kind === 'directory' && !n.name.startsWith('@')).map((n) => n.name);
126
+ }
127
+ catch {
128
+ return { refs: [], complete: false };
129
+ }
130
+ const refs = [];
131
+ let complete = true;
132
+ for (const n of names) {
133
+ const file = `${root}/${n}/${PACKAGE_REF_FILE}`;
134
+ try {
135
+ if ((await fs.stat(file)) === null)
136
+ continue; // a local agent or skill: no reference
137
+ refs.push(parsePackageRef(await fs.read(file)));
138
+ }
139
+ catch {
140
+ complete = false;
141
+ }
142
+ }
143
+ return { refs, complete };
144
+ }
145
+ export async function writeNameEntries(fs, base, installed, opts = {}) {
146
+ const planned = await plan(fs, base, installed, opts.as, opts.managed);
147
+ for (const e of planned) {
148
+ await fs.write(e.path, serializePackageRef({ package: e.package, version: e.version, digest: e.digest, ...(e.managed ? { managed: e.managed } : {}) }));
149
+ }
150
+ for (const e of planned) {
151
+ const prev = e.previous;
152
+ if (!prev || prev.version === e.version)
153
+ continue;
154
+ const { refs, complete } = await referencesOf(fs, base, e.type);
155
+ const stillUsed = refs.some((r) => r.package === prev.package && r.version === prev.version);
156
+ if (complete && !stillUsed) {
157
+ try {
158
+ await fs.remove(packageInstallDir(base, e.type, prev));
159
+ }
160
+ catch { /* already gone */ }
161
+ }
162
+ }
163
+ return planned.map(({ type, name, path, package: pkg, version }) => ({ type, name, path, package: pkg, version }));
164
+ }
165
+ /** Every name entry of a type under base that points at `pkg` (any version), by the
166
+ * reference it holds rather than by the folder's name: an agent linked under an `as`
167
+ * name is found as well. Folders that cannot be listed or read are skipped. */
168
+ export async function nameEntriesFor(fs, base, type, pkg) {
169
+ const root = nameEntryDir(base, type, '').replace(/\/$/, '');
170
+ let names;
171
+ try {
172
+ if ((await fs.stat(root)) === null)
173
+ return [];
174
+ const nodes = fs.listDir ? await fs.listDir(root) : await fs.list(root);
175
+ names = [...new Set(nodes.map((n) => n.name).filter((n) => !n.startsWith('@')))];
176
+ }
177
+ catch {
178
+ return [];
179
+ }
180
+ const out = [];
181
+ for (const name of names) {
182
+ const dir = `${root}/${name}`;
183
+ const text = await readOrNull(fs, `${dir}/${PACKAGE_REF_FILE}`);
184
+ if (text === null)
185
+ continue;
186
+ let ref;
187
+ try {
188
+ ref = parsePackageRef(text);
189
+ }
190
+ catch {
191
+ continue;
192
+ }
193
+ if (ref.package === pkg)
194
+ out.push({ type, name, dir, ref });
195
+ }
196
+ return out;
197
+ }
198
+ //# sourceMappingURL=nameEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nameEntries.js","sourceRoot":"","sources":["../../install/nameEntries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** The refusal text naming the pinned entry, or null when no pin digest appears in
2
+ * `coreMessage` (the caller then falls back to core's own wording). */
3
+ export declare function pinRefusalMessage(coreMessage: string, pins: ReadonlyMap<string, string>): string | null;
4
+ //# sourceMappingURL=pinRefusal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinRefusal.d.ts","sourceRoot":"","sources":["../../install/pinRefusal.ts"],"names":[],"mappings":"AAQA;uEACuE;AACvE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAOvG"}
@@ -0,0 +1,19 @@
1
+ /* The line for an install that a lockfile pin refused. Core throws DIGEST_MISMATCH
2
+ * for any node of the install tree, with the expected digest (the pin) in its
3
+ * message but not always a name, so the entry to blame is the pin whose digest the
4
+ * message carries, not the ref the person typed: a dependency whose bytes changed
5
+ * must not be reported as the agent that depends on it. Pure; no core import
6
+ * (kernel boundary). */
7
+ import { lockfilePath } from './lockfile.js';
8
+ /** The refusal text naming the pinned entry, or null when no pin digest appears in
9
+ * `coreMessage` (the caller then falls back to core's own wording). */
10
+ export function pinRefusalMessage(coreMessage, pins) {
11
+ for (const [key, digest] of pins) {
12
+ if (!coreMessage.includes(digest))
13
+ continue;
14
+ const lockPath = lockfilePath();
15
+ return `${key} does not match the digest recorded in ${lockPath} (${digest}). Not installed. If this version was republished on purpose, remove its entry from ${lockPath} and install again.`;
16
+ }
17
+ return null;
18
+ }
19
+ //# sourceMappingURL=pinRefusal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinRefusal.js","sourceRoot":"","sources":["../../install/pinRefusal.ts"],"names":[],"mappings":"AAAA;;;;;wBAKwB;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;uEACuE;AACvE,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,IAAiC;IACtF,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QAC5C,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,OAAO,GAAG,GAAG,0CAA0C,QAAQ,KAAK,MAAM,uFAAuF,QAAQ,qBAAqB,CAAC;IACjM,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { InstalledPackageInfo } from '@corenel/protocol';
2
+ export interface AvailableOnMachine {
3
+ mcp: readonly string[];
4
+ skills: readonly string[];
5
+ }
6
+ export declare function unmetRequirements(installed: InstalledPackageInfo, available: AvailableOnMachine): string[];
7
+ //# sourceMappingURL=requirements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../install/requirements.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IAAG,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAEzF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAa1G"}
@@ -0,0 +1,23 @@
1
+ export function unmetRequirements(installed, available) {
2
+ const mcp = new Set(available.mcp);
3
+ const skills = new Set(available.skills);
4
+ const out = [];
5
+ const seen = new Set();
6
+ const add = (line) => { if (!seen.has(line)) {
7
+ seen.add(line);
8
+ out.push(line);
9
+ } };
10
+ const walk = (p) => {
11
+ for (const s of p.requires?.mcp ?? [])
12
+ if (!mcp.has(s))
13
+ add(`needs MCP server "${s}", not configured`);
14
+ for (const s of p.requires?.skills ?? [])
15
+ if (!skills.has(s))
16
+ add(`needs skill "${s}", not installed`);
17
+ for (const d of p.dependencies)
18
+ walk(d);
19
+ };
20
+ walk(installed);
21
+ return out;
22
+ }
23
+ //# sourceMappingURL=requirements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../install/requirements.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,iBAAiB,CAAC,SAA+B,EAAE,SAA6B;IAC9F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,IAAI,GAAG,CAAC,CAAuB,EAAQ,EAAE;QAC7C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;QACvG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACvG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type EgressSurface, type ModelEgress } from '@corenel/protocol';
2
+ /** The protocol's own surface type (EgressReport), so the two cannot drift. */
3
+ export type { EgressSurface };
4
+ export interface EgressRefusal {
5
+ surface: EgressSurface;
6
+ model: string;
7
+ endpoint: string;
8
+ }
9
+ export interface EgressGuard {
10
+ check(endpointUrl: string, model: string): string | null;
11
+ }
12
+ export declare function createEgressGuard(o: {
13
+ policy: () => ModelEgress;
14
+ onRefused: (e: EgressRefusal) => void;
15
+ surface: EgressSurface;
16
+ }): EgressGuard;
17
+ //# sourceMappingURL=egressGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"egressGuard.d.ts","sourceRoot":"","sources":["../../providers/egressGuard.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0C,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEjH,+EAA+E;AAC/E,YAAY,EAAE,aAAa,EAAE,CAAC;AAC9B,MAAM,WAAW,aAAa;IAAG,OAAO,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC1F,MAAM,WAAW,WAAW;IAAG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE;AAEzF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,MAAM,EAAE,MAAM,WAAW,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,aAAa,CAAC;CACxB,GAAG,WAAW,CAUd"}
@@ -0,0 +1,26 @@
1
+ /* The one model egress check (fleet slice 2). Kernel-safe: protocol types and
2
+ * functions only, no @prompd/core, no fleet import. The policy is read on every
3
+ * call, so a new fleet document applies to the next request without a restart.
4
+ * A policy read that throws refuses (fail closed). */
5
+ import { checkModelEgress, egressRefusalMessage } from '@corenel/protocol';
6
+ export function createEgressGuard(o) {
7
+ return {
8
+ check(endpointUrl, model) {
9
+ let policy;
10
+ try {
11
+ policy = o.policy();
12
+ }
13
+ catch {
14
+ policy = { allow: [] };
15
+ }
16
+ if (checkModelEgress(policy, endpointUrl, model).ok)
17
+ return null;
18
+ try {
19
+ o.onRefused({ surface: o.surface, model, endpoint: endpointUrl });
20
+ }
21
+ catch { /* a sink never changes a refusal */ }
22
+ return egressRefusalMessage(model, endpointUrl);
23
+ },
24
+ };
25
+ }
26
+ //# sourceMappingURL=egressGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"egressGuard.js","sourceRoot":"","sources":["../../providers/egressGuard.ts"],"names":[],"mappings":"AAAA;;;sDAGsD;AACtD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAwC,MAAM,mBAAmB,CAAC;AAOjH,MAAM,UAAU,iBAAiB,CAAC,CAIjC;IACC,OAAO;QACL,KAAK,CAAC,WAAW,EAAE,KAAK;YACtB,IAAI,MAAmB,CAAC;YACxB,IAAI,CAAC;gBAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAAC,CAAC;YAC9D,IAAI,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YACjE,IAAI,CAAC;gBAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;YACzH,OAAO,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import OpenAI from 'openai';
2
2
  import type { ChatCompletionMessageParam, ChatCompletionTool } from 'openai/resources/chat/completions';
3
3
  import type { IAuthTokenProvider, Usage } from '@corenel/protocol';
4
+ import type { EgressGuard } from './egressGuard';
4
5
  export type { Usage };
5
6
  export declare function setGatewayBase(url: string): void;
6
7
  export interface StreamCompletionParams {
@@ -68,6 +69,7 @@ export type ModelRoute = {
68
69
  /** A custom provider that lists the model wins, whatever `gateway` says. */
69
70
  export declare function routeForModel(model: string, routing: ModelRouting): ModelRoute;
70
71
  export declare function modelRouteRefusalMessage(model: string): string;
72
+ export declare function localRefusalResponse(message: string): Response;
71
73
  /** A client whose every request is routed by the model it names: to the custom
72
74
  * provider that serves it, else to the gateway when `routing.gateway` is true,
73
75
  * else refused with no request made. Pure data in (no storage reads), so it is
@@ -106,4 +108,35 @@ export declare function createCustomClient(p: {
106
108
  baseURL: string;
107
109
  apiKey: string;
108
110
  }): OpenAI;
111
+ /** Where one model call goes, decided by the host per request. `url` is the
112
+ * endpoint identity the egress policy names: the Corenel API base (`.../api`,
113
+ * the request goes to `{url}/v1/chat/completions`), or an OpenAI-format base
114
+ * (the request goes to `{url}/chat/completions`, nothing appended). Carries a
115
+ * provider key: never log a value of this type. */
116
+ export type EndpointRoute = {
117
+ api: 'corenel';
118
+ url: string;
119
+ } | {
120
+ api: 'openai';
121
+ url: string;
122
+ apiKey: string;
123
+ };
124
+ export type RouteDecision = {
125
+ ok: true;
126
+ route: EndpointRoute;
127
+ } | {
128
+ ok: false;
129
+ message: string;
130
+ };
131
+ /** A client whose every request is routed by its model, checked by `guard`,
132
+ * and only then sent: to the Corenel gateway with the host token (gatewayRequest),
133
+ * or to an OpenAI-format endpoint with its own key (customRequest, the same
134
+ * request function the routed browser client uses). A refusal of either kind
135
+ * returns before any network I/O. */
136
+ export declare function createGuardedChatClient(o: {
137
+ auth: IAuthTokenProvider;
138
+ origin?: string;
139
+ route: (model: string) => Promise<RouteDecision>;
140
+ guard: EgressGuard;
141
+ }): OpenAI;
109
142
  //# sourceMappingURL=gateway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../providers/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../providers/gateway.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACxG,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD,YAAY,EAAE,KAAK,EAAE,CAAC;AAMtB,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEhD;AAUD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;;gDAE4C;IAC5C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;+EAC2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAEpF,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,qBAAqB,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,KAAK,CAKnJ;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAmF7B;AAmDD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CASjG;AAID;0CAC0C;AAC1C,MAAM,WAAW,mBAAmB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE;AAE1F;yEACyE;AACzE,MAAM,WAAW,YAAY;IAAG,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,mBAAmB,EAAE,CAAA;CAAE;AAEpF,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,UAAU,CAI9E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9D;AASD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAK9D;AAwED;;;kBAGkB;AAClB,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,YAAY,EACrB,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,MAAM,CAsBR;AAED;;;sEAGsE;AACtE,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAE/G,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAE1E;AAKD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI,CAEzD;AAcD;;;;;oEAKoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED;;;+CAG+C;AAC/C,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAE3F,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAA0B;AAEvF;;;+CAG+C;AAC/C,wBAAgB,kBAAkB,CAAC,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAUjF;AAID;;;;mDAImD;AACnD,MAAM,MAAM,aAAa,GACrB;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAIhG;;;;qCAIqC;AACrC,wBAAgB,uBAAuB,CAAC,CAAC,EAAE;IACzC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,KAAK,EAAE,WAAW,CAAC;CACpB,GAAG,MAAM,CAwBT"}
@@ -190,9 +190,13 @@ export function modelRouteRefusalMessage(model) {
190
190
  * while a 4xx is surfaced with its body's message and never retried.
191
191
  * Its body carries LOCAL_FAILURE.refused, so streamCompletion reports it as
192
192
  * "Status 403 (refused locally, nothing was sent): <reason>" -- not as the
193
- * gateway, which was never contacted. */
193
+ * gateway, which was never contacted. Used for routing refusals, egress
194
+ * refusals and a missing provider key alike. */
195
+ export function localRefusalResponse(message) {
196
+ return new Response(JSON.stringify({ error: { message, code: LOCAL_FAILURE.refused } }), { status: 403, headers: { 'content-type': 'application/json' } });
197
+ }
194
198
  function refusalResponse(model) {
195
- return new Response(JSON.stringify({ error: { message: modelRouteRefusalMessage(model), code: LOCAL_FAILURE.refused } }), { status: 403, headers: { 'content-type': 'application/json' } });
199
+ return localRefusalResponse(modelRouteRefusalMessage(model));
196
200
  }
197
201
  /** The request body's `model`, or null when it is not a JSON object naming one. */
198
202
  function modelOfBody(body) {
@@ -336,4 +340,40 @@ export function createCustomClient(p) {
336
340
  },
337
341
  });
338
342
  }
343
+ const GUARDED_BASE = 'http://egress-routed.invalid/v1';
344
+ /** A client whose every request is routed by its model, checked by `guard`,
345
+ * and only then sent: to the Corenel gateway with the host token (gatewayRequest),
346
+ * or to an OpenAI-format endpoint with its own key (customRequest, the same
347
+ * request function the routed browser client uses). A refusal of either kind
348
+ * returns before any network I/O. */
349
+ export function createGuardedChatClient(o) {
350
+ return new OpenAI({
351
+ baseURL: GUARDED_BASE,
352
+ apiKey: 'prompd-gateway',
353
+ dangerouslyAllowBrowser: true,
354
+ fetch: async (url, init) => {
355
+ const target = String(url);
356
+ const req = init;
357
+ // The SDK only ever builds URLs under its baseURL; anything else is a
358
+ // programming error, never a destination to guess.
359
+ if (!target.startsWith(GUARDED_BASE))
360
+ throw new Error(`Refusing to route a request outside the chat API base: ${target}`);
361
+ const suffix = target.slice(GUARDED_BASE.length);
362
+ const model = modelOfBody(req?.body);
363
+ if (model === null)
364
+ return localRefusalResponse('Refused: the request names no model (nothing was sent)');
365
+ const decision = await o.route(model);
366
+ if (!decision.ok)
367
+ return localRefusalResponse(decision.message);
368
+ const refusal = o.guard.check(decision.route.url, model);
369
+ if (refusal !== null)
370
+ return localRefusalResponse(refusal);
371
+ const r = decision.route;
372
+ const base = r.url.replace(/\/+$/, '');
373
+ if (r.api === 'corenel')
374
+ return gatewayRequest(o.auth, o.origin ? { origin: o.origin } : {}, `${base}/v1${suffix}`, req);
375
+ return customRequest({ baseURL: base, apiKey: r.apiKey, models: [] }, `${base}${suffix}`, req);
376
+ },
377
+ });
378
+ }
339
379
  //# sourceMappingURL=gateway.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../providers/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../providers/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { EcPublicJwk } from '@corenel/protocol';
2
+ import { type KeySigner } from './deviceKeys';
3
+ export interface JwsHeader {
4
+ alg: 'ES256';
5
+ typ: string;
6
+ kid?: string;
7
+ }
8
+ export declare function signJws(signer: KeySigner, header: {
9
+ typ: string;
10
+ kid?: string;
11
+ }, payload: object): Promise<string>;
12
+ export declare function decodeJwsHeader(token: string): JwsHeader | null;
13
+ /** The payload if `token` is an ES256 JWS of purpose `typ` signed by `jwk`, else null. Never throws. */
14
+ export declare function verifyJws<T>(jwk: EcPublicJwk, token: string, typ: string): Promise<T | null>;
15
+ //# sourceMappingURL=fleetJws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleetJws.d.ts","sourceRoot":"","sources":["../../sidecar/fleetJws.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAiD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE7F,MAAM,WAAW,SAAS;IAAG,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE;AAetE,wBAAsB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxH;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQ/D;AAED,wGAAwG;AACxG,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAOlG"}
@@ -0,0 +1,47 @@
1
+ import { bytesToB64url, b64urlToBytes, verifySignature } from './deviceKeys.js';
2
+ const te = new TextEncoder();
3
+ const td = new TextDecoder();
4
+ const B64URL = /^[A-Za-z0-9_-]+$/;
5
+ const encodeJson = (v) => bytesToB64url(te.encode(JSON.stringify(v)));
6
+ function decodeJson(part) {
7
+ if (!B64URL.test(part))
8
+ return undefined;
9
+ try {
10
+ return JSON.parse(td.decode(b64urlToBytes(part)));
11
+ }
12
+ catch {
13
+ return undefined;
14
+ }
15
+ }
16
+ const isObj = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
17
+ export async function signJws(signer, header, payload) {
18
+ const h = encodeJson({ alg: 'ES256', typ: header.typ, ...(header.kid ? { kid: header.kid } : {}) });
19
+ const p = encodeJson(payload);
20
+ const sig = await signer.sign(te.encode(`${h}.${p}`));
21
+ return `${h}.${p}.${bytesToB64url(sig)}`;
22
+ }
23
+ export function decodeJwsHeader(token) {
24
+ if (typeof token !== 'string')
25
+ return null;
26
+ const parts = token.split('.');
27
+ if (parts.length !== 3)
28
+ return null;
29
+ const h = decodeJson(parts[0]);
30
+ if (!isObj(h) || h.alg !== 'ES256' || typeof h.typ !== 'string')
31
+ return null;
32
+ if (h.kid !== undefined && typeof h.kid !== 'string')
33
+ return null;
34
+ return { alg: 'ES256', typ: h.typ, ...(typeof h.kid === 'string' ? { kid: h.kid } : {}) };
35
+ }
36
+ /** The payload if `token` is an ES256 JWS of purpose `typ` signed by `jwk`, else null. Never throws. */
37
+ export async function verifyJws(jwk, token, typ) {
38
+ const header = decodeJwsHeader(token);
39
+ if (!header || header.typ !== typ)
40
+ return null;
41
+ const [h, p, s] = token.split('.');
42
+ if (!(await verifySignature(jwk, te.encode(`${h}.${p}`), s)))
43
+ return null;
44
+ const payload = decodeJson(p);
45
+ return isObj(payload) ? payload : null;
46
+ }
47
+ //# sourceMappingURL=fleetJws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleetJws.js","sourceRoot":"","sources":["../../sidecar/fleetJws.ts"],"names":[],"mappings":"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"}
@@ -247,6 +247,10 @@ export declare function isSidecarDenial(e: unknown): boolean;
247
247
  export declare const SIDECAR_UNPROVEN_DENIAL = "sidecar refused before proving its key";
248
248
  export declare function isSidecarUnprovenDenial(e: unknown): boolean;
249
249
  export declare function isSidecarAccountRefusal(e: unknown): boolean;
250
+ /** The sidecar refused this ACCOUNT because its fleet policy limits sign-in
251
+ * (slice 4). The device is fine and stays paired; retrying changes nothing
252
+ * until a fleet admin changes the policy. */
253
+ export declare function isFleetLoginsRefusal(e: unknown): boolean;
250
254
  export declare class SidecarHost {
251
255
  private readonly ch;
252
256
  private readonly opts;