@cyrnel/sdk 1.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/CHANGELOG.md +7 -0
- package/README.md +44 -0
- package/dist/index.d.ts +116 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/package.json +35 -0
package/CHANGELOG.md
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# @cyrnel/sdk
|
|
2
|
+
|
|
3
|
+
TypeScript types and interfaces for building Cyrnel modules.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i @cyrnel/sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import type {
|
|
15
|
+
Module,
|
|
16
|
+
EnvironmentModule,
|
|
17
|
+
AdapterModule,
|
|
18
|
+
ServiceDefinition,
|
|
19
|
+
ToolDefinition,
|
|
20
|
+
JSONSchema,
|
|
21
|
+
} from "@cyrnel/sdk";
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Module types
|
|
25
|
+
|
|
26
|
+
- **`Module`**: Base interface with `setup` and `teardown`
|
|
27
|
+
- **`EnvironmentModule`**: Sandboxed runtime module with `execute`/`kill`
|
|
28
|
+
- **`AdapterModule`**: Service adapter module with `invoke`/`hydrate`
|
|
29
|
+
|
|
30
|
+
### Workflow types
|
|
31
|
+
|
|
32
|
+
- **`ServiceDefinition`**: Describes a service and its tools
|
|
33
|
+
- **`ToolDefinition`**: Describes a single tool with input/output schemas
|
|
34
|
+
|
|
35
|
+
### Bindings
|
|
36
|
+
|
|
37
|
+
`EnvironmentBindings` provides the runtime API available to environment modules:
|
|
38
|
+
- `discoverServices` / `discoverTools`: List registered services/tools
|
|
39
|
+
- `getService` / `getTool`: Fetch a single service or tool
|
|
40
|
+
- `invokeTool` Call a tool on a service
|
|
41
|
+
- `setState` / `setError` / `emitStdout` / `emitStderr` / `emitOutput`: Lifecycle signals
|
|
42
|
+
|
|
43
|
+
More details in our [specification](https://actelos.mintlify.app/spec/overview).
|
|
44
|
+
Built with [Cyrnel](https://github.com/actelos/cyrnel).
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export type JSONSchema = Record<string, unknown>;
|
|
2
|
+
export interface ToolDefinition {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
inputSchema: JSONSchema;
|
|
7
|
+
outputSchema: JSONSchema;
|
|
8
|
+
adapterDomain: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export interface ServiceDefinition {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
configSchema: JSONSchema;
|
|
14
|
+
secretsSchema: JSONSchema;
|
|
15
|
+
tools: ToolDefinition[];
|
|
16
|
+
adapterDomain: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
export interface ModuleSetupContext {
|
|
19
|
+
config: Record<string, unknown>;
|
|
20
|
+
secrets: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface Module {
|
|
23
|
+
setup(context: ModuleSetupContext): Promise<void>;
|
|
24
|
+
teardown(): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export interface ListServiceInput {
|
|
27
|
+
query?: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
enabled?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface ListServiceResult extends Omit<ServiceDefinition, "configSchema" | "secretsSchema" | "tools" | "adapterDomain"> {
|
|
32
|
+
id: string;
|
|
33
|
+
enabled: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface ListToolInput {
|
|
36
|
+
serviceId?: string;
|
|
37
|
+
query?: string;
|
|
38
|
+
limit?: number;
|
|
39
|
+
enabled?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface ListToolResult extends Omit<ToolDefinition, "inputSchema" | "outputSchema" | "adapterDomain"> {
|
|
42
|
+
serviceId: string;
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
effectivelyEnabled: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface GetServiceResult extends Omit<ServiceDefinition, "tools" | "adapterDomain"> {
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface GetToolInput {
|
|
50
|
+
serviceId: string;
|
|
51
|
+
toolId: string;
|
|
52
|
+
}
|
|
53
|
+
export interface GetToolResult extends Omit<ToolDefinition, "id" | "adapterDomain"> {
|
|
54
|
+
enabled: boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface InvokeInput {
|
|
57
|
+
serviceId: string;
|
|
58
|
+
toolId: string;
|
|
59
|
+
parameters: Record<string, unknown>;
|
|
60
|
+
}
|
|
61
|
+
export declare const EXECUTION_STATES: readonly ["queued", "running"];
|
|
62
|
+
export type ExecutionState = (typeof EXECUTION_STATES)[number];
|
|
63
|
+
export interface EnvironmentBindings {
|
|
64
|
+
discoverServices(input: ListServiceInput): Promise<ListServiceResult[]>;
|
|
65
|
+
discoverTools(input: ListToolInput): Promise<ListToolResult[]>;
|
|
66
|
+
getService(id: string): Promise<GetServiceResult>;
|
|
67
|
+
getTool(input: GetToolInput): Promise<GetToolResult>;
|
|
68
|
+
getToolDocs(input: GetToolInput): Promise<string>;
|
|
69
|
+
invokeTool(input: InvokeInput): Promise<unknown>;
|
|
70
|
+
setState(eid: number, data: ExecutionState): void;
|
|
71
|
+
setError(eid: number, data: string): void;
|
|
72
|
+
emitStdout(eid: number, data: Buffer): void;
|
|
73
|
+
emitStderr(eid: number, data: Buffer): void;
|
|
74
|
+
emitOutput(eid: number, data: Record<string, unknown>): void;
|
|
75
|
+
}
|
|
76
|
+
export interface EnvironmentSetupContext extends ModuleSetupContext {
|
|
77
|
+
bindings: EnvironmentBindings;
|
|
78
|
+
}
|
|
79
|
+
export interface ExecutionOptions {
|
|
80
|
+
timeoutMs: number;
|
|
81
|
+
}
|
|
82
|
+
export interface ExecutionInput {
|
|
83
|
+
eid: number;
|
|
84
|
+
code: string;
|
|
85
|
+
options?: ExecutionOptions;
|
|
86
|
+
}
|
|
87
|
+
export declare const EXECUTION_EXIT_STATES: readonly ["failed", "success", "timeout", "canceled"];
|
|
88
|
+
export type ExecutionExitState = (typeof EXECUTION_EXIT_STATES)[number];
|
|
89
|
+
export interface ToolDocsInput {
|
|
90
|
+
serviceId: string;
|
|
91
|
+
toolId: string;
|
|
92
|
+
description: string;
|
|
93
|
+
inputSchema: JSONSchema;
|
|
94
|
+
outputSchema: JSONSchema;
|
|
95
|
+
}
|
|
96
|
+
export interface EnvironmentModule extends Module {
|
|
97
|
+
setup(context: EnvironmentSetupContext): Promise<void>;
|
|
98
|
+
execute(input: ExecutionInput): Promise<ExecutionExitState>;
|
|
99
|
+
kill(eid: number): Promise<void>;
|
|
100
|
+
generateDocs(): Promise<string>;
|
|
101
|
+
generateToolDocs(input: ToolDocsInput): Promise<string>;
|
|
102
|
+
}
|
|
103
|
+
export type ToolState = Omit<ToolDefinition, "id" | "name" | "description" | "inputSchema" | "outputSchema">;
|
|
104
|
+
export interface ServiceState extends Omit<ServiceDefinition, "name" | "description" | "configSchema" | "secretsSchema" | "tools"> {
|
|
105
|
+
id: string;
|
|
106
|
+
tools: Record<string, ToolState>;
|
|
107
|
+
config: Record<string, unknown>;
|
|
108
|
+
secrets: Record<string, unknown>;
|
|
109
|
+
}
|
|
110
|
+
export interface AdapterModule extends Module {
|
|
111
|
+
generateDefinition(input: string): Promise<ServiceDefinition>;
|
|
112
|
+
hydrateService(state: ServiceState): Promise<void>;
|
|
113
|
+
dehydrateService(id: string): Promise<void>;
|
|
114
|
+
invoke(input: InvokeInput): Promise<unknown>;
|
|
115
|
+
}
|
|
116
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuFA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAU,CAAC;AAgC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;CACF,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cyrnel/sdk",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"description": "Cyrnel modules SDK",
|
|
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
|
+
"scripts": {
|
|
15
|
+
"build": "tsc -p tsconfig.json",
|
|
16
|
+
"check": "biome check .",
|
|
17
|
+
"check:fix": "biome check --write .",
|
|
18
|
+
"typecheck": "tsc --noEmit"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"cyrnel",
|
|
22
|
+
"agents"
|
|
23
|
+
],
|
|
24
|
+
"author": "0x15ba88ff",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"packageManager": "pnpm@10.30.3",
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@biomejs/biome": "2.4.15",
|
|
29
|
+
"@types/node": "^25.8.0",
|
|
30
|
+
"typescript": "^6.0.3"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
}
|
|
35
|
+
}
|