@scaniom/sdk 0.0.0-stage → 0.3.2

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/LICENSE ADDED
@@ -0,0 +1,8 @@
1
+ SCANIOM PROPRIETARY LICENSE NOTICE
2
+
3
+ Copyright (c) 2026 Scaniom. All rights reserved.
4
+
5
+ This source code and associated documentation are proprietary and confidential.
6
+ No permission is granted to copy, modify, distribute, sublicense, publish, or use
7
+ this software outside the owner-authorized Scaniom development and deployment
8
+ environments without prior written permission.
package/README.md CHANGED
@@ -1,3 +1,29 @@
1
- # Temporary Holding Version
1
+ # @scaniom/sdk
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Scaniom L2 SDK. The SDK is an adapter into the same Scaniom Node, policy, Gate and evidence runtime used by L1 and L4.
4
+
5
+ ```bash
6
+ npm install @scaniom/sdk
7
+ ```
8
+
9
+ ```ts
10
+ import { Scaniom } from "@scaniom/sdk";
11
+
12
+ const scaniom = new Scaniom({
13
+ nodeUrl: process.env.SCANIOM_NODE_URL!,
14
+ workloadId: process.env.SCANIOM_WORKLOAD_ID!,
15
+ runtimeToken: process.env.SCANIOM_RUNTIME_TOKEN,
16
+ });
17
+
18
+ const result = await scaniom.guardAction({
19
+ session: "session-123",
20
+ action: "tool_call",
21
+ target: "payments-api",
22
+ text: "proposed action",
23
+ execute: async () => performActualToolCall(),
24
+ });
25
+ ```
26
+
27
+ The execution contract is `PRE-GUARD -> ALLOW/BLOCK -> execute -> POST-OBSERVE -> evidence`. Provider credentials do not belong in the SDK. A runtime token is carried when supplied; R16 Slice D does not claim L2 bearer enforcement until the Node guard/observe boundary explicitly enables it.
28
+
29
+ The package is dependency-free at runtime and requires Node 18.17 or newer.
@@ -0,0 +1,158 @@
1
+ export type MachineAction = "pass" | "observe" | "restrict" | "contain" | "deny" | "isolate";
2
+ export type ActionType = "model_request" | "agent_action" | "tool_call" | "delegation" | "memory_read" | "memory_write" | "network_request" | "file_access" | "code_execution" | "computer_control" | "custom_action";
3
+ export type Capability = "tool_use" | "external_network" | "file_access" | "credential_access" | "code_execution" | "computer_control" | "agent_delegation" | "persistent_memory" | "unknown_tool";
4
+ export type ResourceSensitivity = "public" | "internal" | "confidential" | "secret" | "regulated" | "critical";
5
+ export declare const SCANIOM_SDK_VERSION: "0.3.2";
6
+ export type ScaniomOptions = {
7
+ nodeUrl?: string;
8
+ environment?: string;
9
+ workload?: string;
10
+ workloadId?: string;
11
+ connectionId?: string;
12
+ nodeKey?: string;
13
+ runtimeToken?: string;
14
+ defaultSession?: string;
15
+ timeoutMs?: number;
16
+ };
17
+ export type GuardInput = {
18
+ session?: string;
19
+ provider?: string;
20
+ model?: string | null;
21
+ action: ActionType;
22
+ text?: string;
23
+ target?: string | null;
24
+ resourceSensitivity?: ResourceSensitivity | null;
25
+ capabilities?: Capability[];
26
+ tools?: string[];
27
+ production?: boolean;
28
+ metadata?: Record<string, unknown>;
29
+ };
30
+ export type GuardDecision = {
31
+ version: "scaniom-guard-decision-0.3.1";
32
+ behaviorEventId: string;
33
+ sessionId: string;
34
+ workloadId: string;
35
+ scaniomAddress: string;
36
+ actionType: ActionType;
37
+ machineAction: MachineAction;
38
+ permitted: boolean;
39
+ restricted: boolean;
40
+ riskScore: number;
41
+ severity: "minimal" | "low" | "moderate" | "high" | "critical";
42
+ reasons: string[];
43
+ signals: Array<{
44
+ id: string;
45
+ label: string;
46
+ score: number;
47
+ category: string;
48
+ }>;
49
+ policy: {
50
+ version: number;
51
+ mode: "monitor" | "enforce";
52
+ profile: string;
53
+ digest: string;
54
+ };
55
+ isolationUntil: string | null;
56
+ };
57
+ export declare class ScaniomError extends Error {
58
+ readonly status: number;
59
+ readonly body: unknown;
60
+ constructor(message: string, status: number, body: unknown);
61
+ }
62
+ export declare class ScaniomBlockedError extends ScaniomError {
63
+ readonly decision: GuardDecision;
64
+ constructor(decision: GuardDecision);
65
+ }
66
+ export type GuardedExecution<T> = {
67
+ decision: GuardDecision;
68
+ result: T;
69
+ };
70
+ export declare class Scaniom {
71
+ readonly nodeUrl: string;
72
+ readonly environment?: string;
73
+ readonly workload: string;
74
+ readonly connectionId?: string;
75
+ readonly nodeKey?: string;
76
+ readonly runtimeToken?: string;
77
+ readonly defaultSession?: string;
78
+ readonly timeoutMs: number;
79
+ constructor(options: ScaniomOptions);
80
+ private headers;
81
+ private request;
82
+ guard(input: GuardInput): Promise<GuardDecision>;
83
+ observe(input: GuardInput & {
84
+ outcome?: "success" | "error";
85
+ }): Promise<GuardDecision>;
86
+ guardAction<T>(input: GuardInput & {
87
+ execute: () => Promise<T> | T;
88
+ }): Promise<GuardedExecution<T>>;
89
+ guardTool<T>(input: {
90
+ session?: string;
91
+ tool: string;
92
+ input?: unknown;
93
+ target?: string;
94
+ capabilities?: Capability[];
95
+ resourceSensitivity?: ResourceSensitivity;
96
+ production?: boolean;
97
+ execute: () => Promise<T> | T;
98
+ }): Promise<GuardedExecution<T>>;
99
+ delegate<T>(input: {
100
+ session?: string;
101
+ agent: string;
102
+ task?: unknown;
103
+ production?: boolean;
104
+ execute: () => Promise<T> | T;
105
+ }): Promise<GuardedExecution<T>>;
106
+ guardMemory<T>(input: {
107
+ session?: string;
108
+ operation: "read" | "write";
109
+ key: string;
110
+ value?: unknown;
111
+ sensitivity?: ResourceSensitivity;
112
+ execute: () => Promise<T> | T;
113
+ }): Promise<GuardedExecution<T>>;
114
+ guardNetwork<T>(input: {
115
+ session?: string;
116
+ target: string;
117
+ request?: unknown;
118
+ production?: boolean;
119
+ execute: () => Promise<T> | T;
120
+ }): Promise<GuardedExecution<T>>;
121
+ guardCode<T>(input: {
122
+ session?: string;
123
+ language?: string;
124
+ code: string;
125
+ target?: string;
126
+ production?: boolean;
127
+ execute: () => Promise<T> | T;
128
+ }): Promise<GuardedExecution<T>>;
129
+ guardFile<T>(input: {
130
+ session?: string;
131
+ operation: "read" | "write";
132
+ path: string;
133
+ content?: unknown;
134
+ sensitivity?: ResourceSensitivity;
135
+ execute: () => Promise<T> | T;
136
+ }): Promise<GuardedExecution<T>>;
137
+ responsesRaw(body: Record<string, unknown>, options?: {
138
+ session?: string;
139
+ signal?: AbortSignal;
140
+ }): Promise<Response>;
141
+ responses<T = unknown>(body: Record<string, unknown>, options?: {
142
+ session?: string;
143
+ }): Promise<T>;
144
+ openAIClientConfig(apiKey?: string): {
145
+ apiKey: string;
146
+ baseURL: string;
147
+ defaultHeaders: Record<string, string>;
148
+ };
149
+ openai<TClient>(client: TClient): {
150
+ client: TClient;
151
+ responses: {
152
+ create: <T = unknown>(body: Record<string, unknown>, options?: {
153
+ session?: string;
154
+ }) => Promise<T>;
155
+ };
156
+ };
157
+ }
158
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,217 @@
1
+ export const SCANIOM_SDK_VERSION = "0.3.2";
2
+ export class ScaniomError extends Error {
3
+ status;
4
+ body;
5
+ constructor(message, status, body) {
6
+ super(message);
7
+ this.name = "ScaniomError";
8
+ this.status = status;
9
+ this.body = body;
10
+ }
11
+ }
12
+ export class ScaniomBlockedError extends ScaniomError {
13
+ decision;
14
+ constructor(decision) {
15
+ super(`Scaniom ${decision.machineAction.toUpperCase()} blocked ${decision.actionType} at risk ${decision.riskScore}`, 403, decision);
16
+ this.name = "ScaniomBlockedError";
17
+ this.decision = decision;
18
+ }
19
+ }
20
+ function sessionId(value) {
21
+ if (value)
22
+ return value;
23
+ if (typeof crypto !== "undefined" && "randomUUID" in crypto)
24
+ return `scn-session-${crypto.randomUUID()}`;
25
+ return `scn-session-${Date.now()}-${Math.random().toString(16).slice(2)}`;
26
+ }
27
+ function textOf(value, limit = 100_000) {
28
+ if (typeof value === "string")
29
+ return value.slice(0, limit);
30
+ try {
31
+ return JSON.stringify(value).slice(0, limit);
32
+ }
33
+ catch {
34
+ return String(value).slice(0, limit);
35
+ }
36
+ }
37
+ export class Scaniom {
38
+ nodeUrl;
39
+ environment;
40
+ workload;
41
+ connectionId;
42
+ nodeKey;
43
+ runtimeToken;
44
+ defaultSession;
45
+ timeoutMs;
46
+ constructor(options) {
47
+ const workload = options.workloadId || options.workload;
48
+ if (!workload)
49
+ throw new Error("Scaniom workloadId is required");
50
+ this.nodeUrl = (options.nodeUrl || "http://127.0.0.1:8787").replace(/\/$/, "");
51
+ this.environment = options.environment;
52
+ this.workload = workload;
53
+ this.connectionId = options.connectionId;
54
+ this.nodeKey = options.nodeKey;
55
+ this.runtimeToken = options.runtimeToken;
56
+ this.defaultSession = options.defaultSession;
57
+ this.timeoutMs = Math.max(250, Math.min(120_000, options.timeoutMs ?? 15_000));
58
+ }
59
+ headers(session) {
60
+ const headers = {
61
+ "content-type": "application/json",
62
+ "x-scaniom-workload-id": this.workload,
63
+ "x-scaniom-session-id": sessionId(session || this.defaultSession),
64
+ };
65
+ if (this.connectionId)
66
+ headers["x-scaniom-connection-id"] = this.connectionId;
67
+ if (this.nodeKey)
68
+ headers["x-scaniom-node-key"] = this.nodeKey;
69
+ if (this.runtimeToken)
70
+ headers.authorization = `Bearer ${this.runtimeToken}`;
71
+ if (this.runtimeToken)
72
+ headers.authorization = `Bearer ${this.runtimeToken}`;
73
+ return headers;
74
+ }
75
+ async request(path, body, session) {
76
+ const response = await fetch(`${this.nodeUrl}${path}`, {
77
+ method: "POST",
78
+ headers: this.headers(session),
79
+ body: JSON.stringify(body),
80
+ signal: AbortSignal.timeout(this.timeoutMs),
81
+ });
82
+ const payload = await response.json().catch(() => ({ error: response.statusText }));
83
+ if (!response.ok) {
84
+ const message = typeof payload === "object" && payload !== null && "error" in payload
85
+ ? typeof payload.error === "string" ? String(payload.error) : response.statusText
86
+ : response.statusText;
87
+ throw new ScaniomError(message || `Scaniom Node ${response.status}`, response.status, payload);
88
+ }
89
+ return payload;
90
+ }
91
+ async guard(input) {
92
+ const session = sessionId(input.session || this.defaultSession);
93
+ return this.request("/v1/guard", {
94
+ version: "scaniom-guard-request-0.3.1",
95
+ workloadId: this.workload,
96
+ connectionId: this.connectionId,
97
+ sessionId: session,
98
+ provider: input.provider,
99
+ model: input.model,
100
+ actionType: input.action,
101
+ text: input.text,
102
+ target: input.target,
103
+ resourceSensitivity: input.resourceSensitivity,
104
+ capabilities: input.capabilities ?? [],
105
+ toolNames: input.tools ?? [],
106
+ production: input.production ?? false,
107
+ source: "sdk",
108
+ metadata: input.metadata ?? {},
109
+ }, session);
110
+ }
111
+ async observe(input) {
112
+ const session = sessionId(input.session || this.defaultSession);
113
+ return this.request("/v1/observe", {
114
+ version: "scaniom-guard-request-0.3.1",
115
+ workloadId: this.workload,
116
+ connectionId: this.connectionId,
117
+ sessionId: session,
118
+ provider: input.provider,
119
+ model: input.model,
120
+ actionType: input.action,
121
+ text: input.text,
122
+ target: input.target,
123
+ resourceSensitivity: input.resourceSensitivity,
124
+ capabilities: input.capabilities ?? [],
125
+ toolNames: input.tools ?? [],
126
+ production: input.production ?? false,
127
+ source: "sdk",
128
+ metadata: { ...(input.metadata ?? {}), outcome: input.outcome ?? "success" },
129
+ }, session);
130
+ }
131
+ async guardAction(input) {
132
+ const session = sessionId(input.session || this.defaultSession);
133
+ const decision = await this.guard({ ...input, session });
134
+ if (!decision.permitted)
135
+ throw new ScaniomBlockedError(decision);
136
+ try {
137
+ const result = await input.execute();
138
+ await this.observe({ ...input, session, outcome: "success", metadata: { ...(input.metadata ?? {}), preBehaviorEventId: decision.behaviorEventId } });
139
+ return { decision, result };
140
+ }
141
+ catch (error) {
142
+ await this.observe({ ...input, session, outcome: "error", metadata: { ...(input.metadata ?? {}), preBehaviorEventId: decision.behaviorEventId, errorType: error instanceof Error ? error.name : "unknown" } }).catch(() => undefined);
143
+ throw error;
144
+ }
145
+ }
146
+ async guardTool(input) {
147
+ return this.guardAction({
148
+ session: input.session,
149
+ action: "tool_call",
150
+ text: textOf(input.input),
151
+ target: input.target ?? input.tool,
152
+ tools: [input.tool],
153
+ capabilities: [...new Set(["tool_use", ...(input.capabilities ?? [])])],
154
+ resourceSensitivity: input.resourceSensitivity,
155
+ production: input.production,
156
+ execute: input.execute,
157
+ metadata: { tool: input.tool },
158
+ });
159
+ }
160
+ async delegate(input) {
161
+ return this.guardAction({
162
+ session: input.session,
163
+ action: "delegation",
164
+ text: textOf(input.task),
165
+ target: input.agent,
166
+ capabilities: ["agent_delegation"],
167
+ production: input.production,
168
+ execute: input.execute,
169
+ metadata: { delegatedAgent: input.agent },
170
+ });
171
+ }
172
+ async guardMemory(input) {
173
+ return this.guardAction({
174
+ session: input.session,
175
+ action: input.operation === "read" ? "memory_read" : "memory_write",
176
+ text: input.operation === "write" ? textOf(input.value) : "",
177
+ target: input.key,
178
+ resourceSensitivity: input.sensitivity,
179
+ capabilities: ["persistent_memory"],
180
+ execute: input.execute,
181
+ metadata: { memoryOperation: input.operation },
182
+ });
183
+ }
184
+ async guardNetwork(input) {
185
+ return this.guardAction({ session: input.session, action: "network_request", text: textOf(input.request), target: input.target, capabilities: ["external_network"], production: input.production, execute: input.execute, metadata: { networkTarget: input.target } });
186
+ }
187
+ async guardCode(input) {
188
+ return this.guardAction({ session: input.session, action: "code_execution", text: input.code, target: input.target ?? input.language ?? "code", capabilities: ["code_execution"], production: input.production, execute: input.execute, metadata: { language: input.language ?? null } });
189
+ }
190
+ async guardFile(input) {
191
+ return this.guardAction({ session: input.session, action: "file_access", text: input.operation === "write" ? textOf(input.content) : "", target: input.path, resourceSensitivity: input.sensitivity, capabilities: ["file_access"], execute: input.execute, metadata: { fileOperation: input.operation } });
192
+ }
193
+ async responsesRaw(body, options = {}) {
194
+ const session = sessionId(options.session || this.defaultSession);
195
+ const headers = this.headers(session);
196
+ return fetch(`${this.nodeUrl}/v1/sdk/responses`, { method: "POST", headers, body: JSON.stringify(body), signal: options.signal ?? AbortSignal.timeout(this.timeoutMs) });
197
+ }
198
+ async responses(body, options = {}) {
199
+ const response = await this.responsesRaw(body, options);
200
+ const payload = await response.json().catch(() => ({ error: response.statusText }));
201
+ if (!response.ok)
202
+ throw new ScaniomError(`Scaniom provider route ${response.status}`, response.status, payload);
203
+ return payload;
204
+ }
205
+ openAIClientConfig(apiKey = "scaniom-local") {
206
+ const defaultHeaders = { "x-scaniom-workload-id": this.workload };
207
+ if (this.connectionId)
208
+ defaultHeaders["x-scaniom-connection-id"] = this.connectionId;
209
+ if (this.nodeKey)
210
+ defaultHeaders["x-scaniom-node-key"] = this.nodeKey;
211
+ return { apiKey, baseURL: `${this.nodeUrl}/v1/sdk`, defaultHeaders };
212
+ }
213
+ openai(client) {
214
+ return { client, responses: { create: (body, options = {}) => this.responses(body, options) } };
215
+ }
216
+ }
217
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,46 @@
1
1
  {
2
2
  "name": "@scaniom/sdk",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.3.2",
4
+ "description": "Scaniom L2 SDK for machine-speed AI behavior guard, observation and evidence through the Scaniom Node.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "sideEffects": false,
20
+ "license": "UNLICENSED",
21
+ "engines": {
22
+ "node": ">=18.17"
23
+ },
24
+ "keywords": [
25
+ "scaniom",
26
+ "ai-safety",
27
+ "ai-security",
28
+ "agent-security",
29
+ "runtime",
30
+ "guardrails"
31
+ ],
32
+ "scripts": {
33
+ "build": "tsc -p tsconfig.json",
34
+ "prepack": "npm run build"
35
+ },
36
+ "devDependencies": {
37
+ "typescript": "^5.8.3"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/faradeen-ja/scaniom.git"
45
+ }
46
+ }