@blacklake-systems/sdk 0.1.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/LICENSE +21 -0
- package/README.md +116 -0
- package/dist/index.d.ts +173 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +183 -0
- package/dist/index.js.map +1 -0
- package/package.json +44 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 BlackLake Systems Ltd.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# @blacklake-systems/sdk
|
|
2
|
+
|
|
3
|
+
TypeScript SDK for the [BlackLake Control Plane](https://blacklake.systems/product) — agent governance infrastructure.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @blacklake-systems/sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { BlackLake } from '@blacklake-systems/sdk';
|
|
15
|
+
|
|
16
|
+
const bl = new BlackLake({
|
|
17
|
+
apiKey: process.env.BLACKLAKE_API_KEY!,
|
|
18
|
+
baseUrl: 'https://api.blacklake.systems',
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Evaluate governance before executing a tool call
|
|
22
|
+
const result = await bl.govern({
|
|
23
|
+
agent: 'expense-bot',
|
|
24
|
+
tool: 'payments.send',
|
|
25
|
+
action: { amount: 4200, vendor: 'Acme Corp' },
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
if (result.decision === 'allow') {
|
|
29
|
+
// proceed with tool call
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## API Reference
|
|
34
|
+
|
|
35
|
+
### `new BlackLake(config)`
|
|
36
|
+
|
|
37
|
+
| Option | Type | Default | Description |
|
|
38
|
+
|--------|------|---------|-------------|
|
|
39
|
+
| `apiKey` | `string` | — | Your BlackLake API key (required) |
|
|
40
|
+
| `baseUrl` | `string` | `http://localhost:3100` | API base URL |
|
|
41
|
+
|
|
42
|
+
### `bl.govern(request)`
|
|
43
|
+
|
|
44
|
+
Evaluate whether an agent is allowed to invoke a tool.
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
const result = await bl.govern({
|
|
48
|
+
agent: 'expense-bot', // agent name
|
|
49
|
+
tool: 'payments.send', // tool name
|
|
50
|
+
action: { amount: 4200 }, // optional: tool invocation payload
|
|
51
|
+
context: { ip: '10.0.0.1' } // optional: request metadata
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// result.decision: 'allow' | 'deny' | 'approval_required'
|
|
55
|
+
// result.evaluation_id: string
|
|
56
|
+
// result.policy_id: string | null
|
|
57
|
+
// result.reason: string
|
|
58
|
+
// result.evaluated_at: string (ISO 8601)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### `bl.agents`
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
await bl.agents.create({ name, environment, risk_classification, description?, approval_mode? });
|
|
65
|
+
await bl.agents.list({ environment?, status? });
|
|
66
|
+
await bl.agents.get(id);
|
|
67
|
+
await bl.agents.update(id, { name?, environment?, risk_classification?, status?, approval_mode? });
|
|
68
|
+
await bl.agents.suspend(id);
|
|
69
|
+
await bl.agents.activate(id);
|
|
70
|
+
await bl.agents.bindTool(agentId, toolId);
|
|
71
|
+
await bl.agents.listTools(agentId);
|
|
72
|
+
await bl.agents.unbindTool(agentId, toolId);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### `bl.tools`
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
await bl.tools.create({ name, risk_classification, description? });
|
|
79
|
+
await bl.tools.list();
|
|
80
|
+
await bl.tools.get(id);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### `bl.policies`
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
await bl.policies.create({ name, priority, outcome, agent_selector?, tool_selector?, enabled? });
|
|
87
|
+
await bl.policies.list();
|
|
88
|
+
await bl.policies.get(id);
|
|
89
|
+
await bl.policies.update(id, { name?, priority?, outcome?, agent_selector?, tool_selector?, enabled? });
|
|
90
|
+
await bl.policies.delete(id);
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### `bl.evaluations`
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
await bl.evaluations.list({ agent_id?, tool_id?, outcome?, limit?, offset? });
|
|
97
|
+
await bl.evaluations.get(id);
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Error Handling
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import { BlackLake, BlackLakeError } from '@blacklake-systems/sdk';
|
|
104
|
+
|
|
105
|
+
try {
|
|
106
|
+
await bl.govern({ agent: 'unknown', tool: 'unknown' });
|
|
107
|
+
} catch (err) {
|
|
108
|
+
if (err instanceof BlackLakeError) {
|
|
109
|
+
console.error(err.status, err.code, err.message);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Documentation
|
|
115
|
+
|
|
116
|
+
Full documentation at [blacklake.systems/product](https://blacklake.systems/product).
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
export interface Organisation {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
contact_email: string | null;
|
|
5
|
+
created_at: string;
|
|
6
|
+
}
|
|
7
|
+
export interface Agent {
|
|
8
|
+
id: string;
|
|
9
|
+
organisation_id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description: string | null;
|
|
12
|
+
environment: 'development' | 'staging' | 'production';
|
|
13
|
+
risk_classification: 'low' | 'medium' | 'high' | 'critical';
|
|
14
|
+
status: 'active' | 'suspended' | 'disabled';
|
|
15
|
+
approval_mode: 'auto_approve' | 'require_approval' | 'block';
|
|
16
|
+
created_at: string;
|
|
17
|
+
updated_at: string;
|
|
18
|
+
}
|
|
19
|
+
export interface Tool {
|
|
20
|
+
id: string;
|
|
21
|
+
organisation_id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string | null;
|
|
24
|
+
risk_classification: 'low' | 'medium' | 'high' | 'critical';
|
|
25
|
+
created_at: string;
|
|
26
|
+
}
|
|
27
|
+
export interface Policy {
|
|
28
|
+
id: string;
|
|
29
|
+
organisation_id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
priority: number;
|
|
32
|
+
agent_selector: Record<string, unknown>;
|
|
33
|
+
tool_selector: Record<string, unknown>;
|
|
34
|
+
outcome: 'allow' | 'deny' | 'approval_required';
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
created_at: string;
|
|
37
|
+
updated_at: string;
|
|
38
|
+
}
|
|
39
|
+
export interface GovernRequest {
|
|
40
|
+
agent: string;
|
|
41
|
+
tool: string;
|
|
42
|
+
action?: Record<string, unknown>;
|
|
43
|
+
context?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
export interface GovernResponse {
|
|
46
|
+
decision: 'allow' | 'deny' | 'approval_required';
|
|
47
|
+
evaluation_id: string;
|
|
48
|
+
policy_id: string | null;
|
|
49
|
+
reason: string;
|
|
50
|
+
evaluated_at: string;
|
|
51
|
+
}
|
|
52
|
+
export interface Evaluation {
|
|
53
|
+
id: string;
|
|
54
|
+
organisation_id: string;
|
|
55
|
+
agent_id: string;
|
|
56
|
+
tool_id: string;
|
|
57
|
+
policy_id: string | null;
|
|
58
|
+
action_payload: Record<string, unknown> | null;
|
|
59
|
+
outcome: 'allow' | 'deny' | 'approval_required' | 'default_deny';
|
|
60
|
+
evaluated_at: string;
|
|
61
|
+
request_context: Record<string, unknown> | null;
|
|
62
|
+
}
|
|
63
|
+
export interface PaginatedResponse<T> {
|
|
64
|
+
data: T[];
|
|
65
|
+
total: number;
|
|
66
|
+
}
|
|
67
|
+
export declare class BlackLakeError extends Error {
|
|
68
|
+
readonly status: number;
|
|
69
|
+
readonly code: string;
|
|
70
|
+
constructor(status: number, code: string, message: string);
|
|
71
|
+
}
|
|
72
|
+
export interface BlackLakeConfig {
|
|
73
|
+
apiKey: string;
|
|
74
|
+
baseUrl?: string;
|
|
75
|
+
}
|
|
76
|
+
declare class AgentsResource {
|
|
77
|
+
private client;
|
|
78
|
+
constructor(client: BlackLakeClient);
|
|
79
|
+
create(data: {
|
|
80
|
+
name: string;
|
|
81
|
+
description?: string;
|
|
82
|
+
environment: Agent['environment'];
|
|
83
|
+
risk_classification: Agent['risk_classification'];
|
|
84
|
+
approval_mode?: Agent['approval_mode'];
|
|
85
|
+
}): Promise<Agent>;
|
|
86
|
+
list(params?: {
|
|
87
|
+
environment?: string;
|
|
88
|
+
status?: string;
|
|
89
|
+
}): Promise<Agent[]>;
|
|
90
|
+
get(id: string): Promise<Agent>;
|
|
91
|
+
update(id: string, data: Partial<Pick<Agent, 'name' | 'description' | 'environment' | 'risk_classification' | 'status' | 'approval_mode'>>): Promise<Agent>;
|
|
92
|
+
suspend(id: string): Promise<Agent>;
|
|
93
|
+
activate(id: string): Promise<Agent>;
|
|
94
|
+
bindTool(agentId: string, toolId: string): Promise<{
|
|
95
|
+
id: string;
|
|
96
|
+
agent_id: string;
|
|
97
|
+
tool_id: string;
|
|
98
|
+
created_at: string;
|
|
99
|
+
}>;
|
|
100
|
+
listTools(agentId: string): Promise<Tool[]>;
|
|
101
|
+
unbindTool(agentId: string, toolId: string): Promise<void>;
|
|
102
|
+
}
|
|
103
|
+
declare class ToolsResource {
|
|
104
|
+
private client;
|
|
105
|
+
constructor(client: BlackLakeClient);
|
|
106
|
+
create(data: {
|
|
107
|
+
name: string;
|
|
108
|
+
description?: string;
|
|
109
|
+
risk_classification: Tool['risk_classification'];
|
|
110
|
+
}): Promise<Tool>;
|
|
111
|
+
list(): Promise<Tool[]>;
|
|
112
|
+
get(id: string): Promise<Tool>;
|
|
113
|
+
}
|
|
114
|
+
declare class PoliciesResource {
|
|
115
|
+
private client;
|
|
116
|
+
constructor(client: BlackLakeClient);
|
|
117
|
+
create(data: {
|
|
118
|
+
name: string;
|
|
119
|
+
priority: number;
|
|
120
|
+
agent_selector?: Record<string, unknown>;
|
|
121
|
+
tool_selector?: Record<string, unknown>;
|
|
122
|
+
outcome: Policy['outcome'];
|
|
123
|
+
enabled?: boolean;
|
|
124
|
+
}): Promise<Policy>;
|
|
125
|
+
list(): Promise<Policy[]>;
|
|
126
|
+
get(id: string): Promise<Policy>;
|
|
127
|
+
update(id: string, data: Partial<Pick<Policy, 'name' | 'priority' | 'agent_selector' | 'tool_selector' | 'outcome' | 'enabled'>>): Promise<Policy>;
|
|
128
|
+
delete(id: string): Promise<void>;
|
|
129
|
+
}
|
|
130
|
+
declare class EvaluationsResource {
|
|
131
|
+
private client;
|
|
132
|
+
constructor(client: BlackLakeClient);
|
|
133
|
+
list(params?: {
|
|
134
|
+
agent_id?: string;
|
|
135
|
+
tool_id?: string;
|
|
136
|
+
outcome?: string;
|
|
137
|
+
limit?: number;
|
|
138
|
+
offset?: number;
|
|
139
|
+
}): Promise<PaginatedResponse<Evaluation>>;
|
|
140
|
+
get(id: string): Promise<Evaluation>;
|
|
141
|
+
}
|
|
142
|
+
declare class OrganisationResource {
|
|
143
|
+
private client;
|
|
144
|
+
constructor(client: BlackLakeClient);
|
|
145
|
+
/** Fetch the current organisation (derived from the API key). */
|
|
146
|
+
get(): Promise<Organisation>;
|
|
147
|
+
/**
|
|
148
|
+
* Permanently delete the organisation and all associated data.
|
|
149
|
+
*
|
|
150
|
+
* This deletes agents, tools, policies, bindings, the audit log, and all API keys.
|
|
151
|
+
* The deletion is irreversible. The caller must pass the organisation's exact
|
|
152
|
+
* name as `confirmation` — any other value will be rejected.
|
|
153
|
+
*/
|
|
154
|
+
delete(confirmation: string): Promise<void>;
|
|
155
|
+
}
|
|
156
|
+
declare class BlackLakeClient {
|
|
157
|
+
private baseUrl;
|
|
158
|
+
private apiKey;
|
|
159
|
+
constructor(config: BlackLakeConfig);
|
|
160
|
+
request<T>(method: string, path: string, body?: unknown): Promise<T>;
|
|
161
|
+
}
|
|
162
|
+
export declare class BlackLake {
|
|
163
|
+
private client;
|
|
164
|
+
readonly agents: AgentsResource;
|
|
165
|
+
readonly tools: ToolsResource;
|
|
166
|
+
readonly policies: PoliciesResource;
|
|
167
|
+
readonly evaluations: EvaluationsResource;
|
|
168
|
+
readonly organisation: OrganisationResource;
|
|
169
|
+
constructor(config: BlackLakeConfig);
|
|
170
|
+
govern(request: GovernRequest): Promise<GovernResponse>;
|
|
171
|
+
}
|
|
172
|
+
export {};
|
|
173
|
+
//# 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,183 @@
|
|
|
1
|
+
// Error types
|
|
2
|
+
export class BlackLakeError extends Error {
|
|
3
|
+
status;
|
|
4
|
+
code;
|
|
5
|
+
constructor(status, code, message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.status = status;
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.name = 'BlackLakeError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
// Resource classes for namespaced methods
|
|
13
|
+
class AgentsResource {
|
|
14
|
+
client;
|
|
15
|
+
constructor(client) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
}
|
|
18
|
+
async create(data) {
|
|
19
|
+
return this.client.request('POST', '/v1/agents', data);
|
|
20
|
+
}
|
|
21
|
+
async list(params) {
|
|
22
|
+
const query = new URLSearchParams();
|
|
23
|
+
if (params?.environment)
|
|
24
|
+
query.set('environment', params.environment);
|
|
25
|
+
if (params?.status)
|
|
26
|
+
query.set('status', params.status);
|
|
27
|
+
const qs = query.toString();
|
|
28
|
+
return this.client.request('GET', `/v1/agents${qs ? `?${qs}` : ''}`);
|
|
29
|
+
}
|
|
30
|
+
async get(id) {
|
|
31
|
+
return this.client.request('GET', `/v1/agents/${id}`);
|
|
32
|
+
}
|
|
33
|
+
async update(id, data) {
|
|
34
|
+
return this.client.request('PATCH', `/v1/agents/${id}`, data);
|
|
35
|
+
}
|
|
36
|
+
async suspend(id) {
|
|
37
|
+
return this.client.request('POST', `/v1/agents/${id}/suspend`);
|
|
38
|
+
}
|
|
39
|
+
async activate(id) {
|
|
40
|
+
return this.client.request('POST', `/v1/agents/${id}/activate`);
|
|
41
|
+
}
|
|
42
|
+
async bindTool(agentId, toolId) {
|
|
43
|
+
return this.client.request('POST', `/v1/agents/${agentId}/tools`, { tool_id: toolId });
|
|
44
|
+
}
|
|
45
|
+
async listTools(agentId) {
|
|
46
|
+
return this.client.request('GET', `/v1/agents/${agentId}/tools`);
|
|
47
|
+
}
|
|
48
|
+
async unbindTool(agentId, toolId) {
|
|
49
|
+
await this.client.request('DELETE', `/v1/agents/${agentId}/tools/${toolId}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
class ToolsResource {
|
|
53
|
+
client;
|
|
54
|
+
constructor(client) {
|
|
55
|
+
this.client = client;
|
|
56
|
+
}
|
|
57
|
+
async create(data) {
|
|
58
|
+
return this.client.request('POST', '/v1/tools', data);
|
|
59
|
+
}
|
|
60
|
+
async list() {
|
|
61
|
+
return this.client.request('GET', '/v1/tools');
|
|
62
|
+
}
|
|
63
|
+
async get(id) {
|
|
64
|
+
return this.client.request('GET', `/v1/tools/${id}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
class PoliciesResource {
|
|
68
|
+
client;
|
|
69
|
+
constructor(client) {
|
|
70
|
+
this.client = client;
|
|
71
|
+
}
|
|
72
|
+
async create(data) {
|
|
73
|
+
return this.client.request('POST', '/v1/policies', data);
|
|
74
|
+
}
|
|
75
|
+
async list() {
|
|
76
|
+
return this.client.request('GET', '/v1/policies');
|
|
77
|
+
}
|
|
78
|
+
async get(id) {
|
|
79
|
+
return this.client.request('GET', `/v1/policies/${id}`);
|
|
80
|
+
}
|
|
81
|
+
async update(id, data) {
|
|
82
|
+
return this.client.request('PATCH', `/v1/policies/${id}`, data);
|
|
83
|
+
}
|
|
84
|
+
async delete(id) {
|
|
85
|
+
await this.client.request('DELETE', `/v1/policies/${id}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
class EvaluationsResource {
|
|
89
|
+
client;
|
|
90
|
+
constructor(client) {
|
|
91
|
+
this.client = client;
|
|
92
|
+
}
|
|
93
|
+
async list(params) {
|
|
94
|
+
const query = new URLSearchParams();
|
|
95
|
+
if (params?.agent_id)
|
|
96
|
+
query.set('agent_id', params.agent_id);
|
|
97
|
+
if (params?.tool_id)
|
|
98
|
+
query.set('tool_id', params.tool_id);
|
|
99
|
+
if (params?.outcome)
|
|
100
|
+
query.set('outcome', params.outcome);
|
|
101
|
+
if (params?.limit)
|
|
102
|
+
query.set('limit', String(params.limit));
|
|
103
|
+
if (params?.offset)
|
|
104
|
+
query.set('offset', String(params.offset));
|
|
105
|
+
const qs = query.toString();
|
|
106
|
+
return this.client.request('GET', `/v1/evaluations${qs ? `?${qs}` : ''}`);
|
|
107
|
+
}
|
|
108
|
+
async get(id) {
|
|
109
|
+
return this.client.request('GET', `/v1/evaluations/${id}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
class OrganisationResource {
|
|
113
|
+
client;
|
|
114
|
+
constructor(client) {
|
|
115
|
+
this.client = client;
|
|
116
|
+
}
|
|
117
|
+
/** Fetch the current organisation (derived from the API key). */
|
|
118
|
+
async get() {
|
|
119
|
+
return this.client.request('GET', '/v1/organisation');
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Permanently delete the organisation and all associated data.
|
|
123
|
+
*
|
|
124
|
+
* This deletes agents, tools, policies, bindings, the audit log, and all API keys.
|
|
125
|
+
* The deletion is irreversible. The caller must pass the organisation's exact
|
|
126
|
+
* name as `confirmation` — any other value will be rejected.
|
|
127
|
+
*/
|
|
128
|
+
async delete(confirmation) {
|
|
129
|
+
await this.client.request('POST', '/v1/organisation/delete', { confirmation });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Internal HTTP client
|
|
133
|
+
class BlackLakeClient {
|
|
134
|
+
baseUrl;
|
|
135
|
+
apiKey;
|
|
136
|
+
constructor(config) {
|
|
137
|
+
this.apiKey = config.apiKey;
|
|
138
|
+
this.baseUrl = (config.baseUrl ?? 'http://localhost:3100').replace(/\/$/, '');
|
|
139
|
+
}
|
|
140
|
+
async request(method, path, body) {
|
|
141
|
+
const headers = {
|
|
142
|
+
'x-api-key': this.apiKey,
|
|
143
|
+
};
|
|
144
|
+
if (body !== undefined) {
|
|
145
|
+
headers['Content-Type'] = 'application/json';
|
|
146
|
+
}
|
|
147
|
+
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
148
|
+
method,
|
|
149
|
+
headers,
|
|
150
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
151
|
+
});
|
|
152
|
+
if (response.status === 204) {
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
const data = await response.json();
|
|
156
|
+
if (!response.ok) {
|
|
157
|
+
const error = data['error'];
|
|
158
|
+
throw new BlackLakeError(response.status, error?.code ?? 'UNKNOWN_ERROR', error?.message ?? 'An unknown error occurred');
|
|
159
|
+
}
|
|
160
|
+
return data;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// Main SDK class
|
|
164
|
+
export class BlackLake {
|
|
165
|
+
client;
|
|
166
|
+
agents;
|
|
167
|
+
tools;
|
|
168
|
+
policies;
|
|
169
|
+
evaluations;
|
|
170
|
+
organisation;
|
|
171
|
+
constructor(config) {
|
|
172
|
+
this.client = new BlackLakeClient(config);
|
|
173
|
+
this.agents = new AgentsResource(this.client);
|
|
174
|
+
this.tools = new ToolsResource(this.client);
|
|
175
|
+
this.policies = new PoliciesResource(this.client);
|
|
176
|
+
this.evaluations = new EvaluationsResource(this.client);
|
|
177
|
+
this.organisation = new OrganisationResource(this.client);
|
|
178
|
+
}
|
|
179
|
+
async govern(request) {
|
|
180
|
+
return this.client.request('POST', '/v1/govern', request);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# 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
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@blacklake-systems/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript SDK for the BlackLake Control Plane — agent governance infrastructure",
|
|
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
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"prepublishOnly": "tsc"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"homepage": "https://blacklake.systems/product",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://blacklake.systems/support"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/blacklake-systems/control-plane",
|
|
29
|
+
"directory": "packages/sdk"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"blacklake",
|
|
33
|
+
"agent",
|
|
34
|
+
"governance",
|
|
35
|
+
"control-plane",
|
|
36
|
+
"sdk"
|
|
37
|
+
],
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"typescript": "^5.8.3"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=18"
|
|
43
|
+
}
|
|
44
|
+
}
|