@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 ADDED
@@ -0,0 +1,7 @@
1
+ # @cyrnel/sdk
2
+
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 752be8c: First public release.
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).
@@ -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":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,EAAE,UAAU,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,UAAU,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAID,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,iBAAiB,EACjB,cAAc,GAAG,eAAe,GAAG,OAAO,GAAG,eAAe,CAC7D;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,cAAc,EACd,aAAa,GAAG,cAAc,GAAG,eAAe,CACjD;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,eAAe,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,eAAe,CAAC;IACpD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,gCAAiC,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxE,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,eAAO,MAAM,qBAAqB,uDAKxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAkB,SAAQ,MAAM;IAC/C,KAAK,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5D,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAID,MAAM,MAAM,SAAS,GAAG,IAAI,CAC1B,cAAc,EACd,IAAI,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAC/D,CAAC;AAEF,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,iBAAiB,EACjB,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,OAAO,CACpE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export const EXECUTION_STATES = ["queued", "running"];
2
+ export const EXECUTION_EXIT_STATES = [
3
+ "failed",
4
+ "success",
5
+ "timeout",
6
+ "canceled",
7
+ ];
8
+ //# sourceMappingURL=index.js.map
@@ -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
+ }