@z3rno/sdk 0.9.0 → 0.23.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/.gitattributes +2 -0
- package/Cargo.lock +2784 -0
- package/Cargo.toml +23 -0
- package/README.md +52 -56
- package/build.rs +5 -0
- package/index.d.ts +97 -0
- package/index.js +316 -0
- package/npm/darwin-arm64/README.md +3 -0
- package/npm/darwin-arm64/package.json +26 -0
- package/npm/darwin-x64/README.md +3 -0
- package/npm/darwin-x64/package.json +26 -0
- package/npm/linux-arm64-gnu/README.md +3 -0
- package/npm/linux-arm64-gnu/package.json +29 -0
- package/npm/linux-x64-gnu/README.md +3 -0
- package/npm/linux-x64-gnu/package.json +29 -0
- package/npm/win32-x64-msvc/README.md +3 -0
- package/npm/win32-x64-msvc/package.json +26 -0
- package/package.json +34 -50
- package/src/lib.rs +508 -0
- package/test.js +78 -0
- package/LICENSE +0 -201
- package/dist/index.cjs +0 -1355
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -2127
- package/dist/index.d.ts +0 -2127
- package/dist/index.js +0 -1316
- package/dist/index.js.map +0 -1
package/Cargo.toml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[workspace]
|
|
2
|
+
|
|
3
|
+
[package]
|
|
4
|
+
name = "z3rno-sdk-native"
|
|
5
|
+
version = "0.23.0"
|
|
6
|
+
edition = "2021"
|
|
7
|
+
license = "Apache-2.0"
|
|
8
|
+
publish = false
|
|
9
|
+
|
|
10
|
+
[lib]
|
|
11
|
+
crate-type = ["cdylib", "rlib"]
|
|
12
|
+
|
|
13
|
+
[dependencies]
|
|
14
|
+
napi = { version = "2", default-features = false, features = ["napi4", "tokio_rt", "serde-json"] }
|
|
15
|
+
napi-derive = "2"
|
|
16
|
+
z3rno-engine = { path = "../../engine" }
|
|
17
|
+
uuid = { version = "1", features = ["v4"] }
|
|
18
|
+
serde_json = "1"
|
|
19
|
+
anyhow = "1"
|
|
20
|
+
chrono = "0.4"
|
|
21
|
+
|
|
22
|
+
[build-dependencies]
|
|
23
|
+
napi-build = "2"
|
package/README.md
CHANGED
|
@@ -1,77 +1,73 @@
|
|
|
1
|
-
#
|
|
1
|
+
# bindings/typescript
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
TypeScript/Node bindings for z3rno, built with [napi-rs](https://napi.rs) —
|
|
4
|
+
native compiled bindings over `z3rno-engine`, not a thin HTTP client. The SDK
|
|
5
|
+
*is* the engine.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The API is **async-only**: every I/O method (`store`, `recall`, `forget`,
|
|
8
|
+
`advanced.audit`) returns a native `Promise`, run on napi-rs's managed Tokio
|
|
9
|
+
runtime. `tier()` is the one exception — no I/O, so it's a plain sync getter.
|
|
8
10
|
|
|
9
|
-
##
|
|
11
|
+
## Local development
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Quickstart
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
import { Z3rnoClient } from "@z3rno/sdk";
|
|
13
|
+
Not yet published to npm (that's a later slice). To build and test locally
|
|
14
|
+
from this directory:
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
```bash
|
|
17
|
+
npm install
|
|
18
|
+
npm run build # napi build --platform --release — compiles the native addon
|
|
19
|
+
npm test # node test.js — store -> recall -> forget -> audit against the embedded backend
|
|
24
20
|
```
|
|
25
21
|
|
|
26
|
-
|
|
22
|
+
`npm run build` regenerates `index.d.ts` and `index.js` from the Rust
|
|
23
|
+
`#[napi(...)]` annotations in `src/lib.rs` — don't hand-edit those two files.
|
|
27
24
|
|
|
28
|
-
|
|
25
|
+
## Usage
|
|
29
26
|
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
{
|
|
33
|
-
"import": "./dist/index.js", // ESM
|
|
34
|
-
"require": "./dist/index.cjs" // CJS
|
|
35
|
-
}
|
|
36
|
-
```
|
|
27
|
+
```ts
|
|
28
|
+
import { Client } from "@z3rno/sdk";
|
|
37
29
|
|
|
38
|
-
|
|
30
|
+
// Embedded backend (default): opens/creates "z3rno.db" in the cwd.
|
|
31
|
+
const client = await Client.connect();
|
|
39
32
|
|
|
40
|
-
|
|
33
|
+
const memory = await client.store({
|
|
34
|
+
tenantId: "t1",
|
|
35
|
+
tier: "episodic", // "working" | "episodic" | "semantic" | "procedural"
|
|
36
|
+
content: "hello",
|
|
37
|
+
embedding: [0.1, 0.2, 0.3], // optional — omit if this memory shouldn't be recallable by similarity search
|
|
38
|
+
metadata: { source: "chat" },
|
|
39
|
+
links: [], // optional graph edges: { targetId, relationship }[]
|
|
40
|
+
});
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|--------|-------------|
|
|
44
|
-
| `store(request)` | Store a new memory with optional type, metadata, relationships, TTL, and importance |
|
|
45
|
-
| `recall(params)` | Recall memories by semantic similarity query |
|
|
46
|
-
| `forget(params)` | Soft-delete a memory by ID |
|
|
47
|
-
| `audit(params?)` | Query the audit trail with optional filters and pagination |
|
|
42
|
+
const memories = await client.recall({ tenantId: "t1", query: [0.1, 0.2, 0.3], k: 5 });
|
|
48
43
|
|
|
49
|
-
|
|
44
|
+
const proof = await client.forget({ tenantId: "t1", id: memory.id });
|
|
45
|
+
// proof is `{ auditEventId, hash }`, or `null` if there was nothing to forget
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- **Runtime-validated responses** -- every API response is parsed through a Zod schema, giving both compile-time and runtime type safety.
|
|
54
|
-
- **Typed errors** -- `Z3rnoAuthenticationError`, `Z3rnoRateLimitError` (with `retryAfter`), `Z3rnoValidationError`.
|
|
55
|
-
- **Tree-shakeable** -- ESM build with clean exports for optimal bundling.
|
|
56
|
-
|
|
57
|
-
For a detailed step-by-step setup, see [QUICKSTART.md](QUICKSTART.md).
|
|
58
|
-
|
|
59
|
-
## API Documentation
|
|
47
|
+
client.tier(); // "embedded" or "postgres" — sync, no I/O
|
|
48
|
+
```
|
|
60
49
|
|
|
61
|
-
|
|
50
|
+
## Advanced
|
|
62
51
|
|
|
63
|
-
|
|
52
|
+
`client.advanced` exposes operations kept out of the top-level verb surface.
|
|
53
|
+
Today that's just the append-only, hash-chained audit log:
|
|
64
54
|
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
npm test
|
|
70
|
-
npm run build
|
|
55
|
+
```ts
|
|
56
|
+
const events = await client.advanced.audit("t1");
|
|
57
|
+
// each event: { id, tenantId, operation, memoryId, at, prevHash, hash }
|
|
58
|
+
// operation is "store" | "forget"; prevHash is undefined on the first event
|
|
71
59
|
```
|
|
72
60
|
|
|
73
|
-
|
|
61
|
+
## Production backend
|
|
74
62
|
|
|
75
|
-
|
|
63
|
+
The embedded backend (SQLite + an in-process vector index + an in-process
|
|
64
|
+
graph) is the zero-infra default, with no external services required. For a
|
|
65
|
+
production, multi-tenant deployment, connect to the Postgres + pgvector +
|
|
66
|
+
Apache AGE backend instead:
|
|
76
67
|
|
|
77
|
-
|
|
68
|
+
```ts
|
|
69
|
+
const client = await Client.connect({
|
|
70
|
+
backend: "postgres",
|
|
71
|
+
connectionString: "postgres://user:pass@host:5432/z3rno",
|
|
72
|
+
});
|
|
73
|
+
```
|
package/build.rs
ADDED
package/index.d.ts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/* auto-generated by NAPI-RS */
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* `client.store(...)` input. `embedding` and `links` are optional (a
|
|
8
|
+
* memory with no embedding simply isn't recallable by similarity search;
|
|
9
|
+
* no links means no graph edges).
|
|
10
|
+
*/
|
|
11
|
+
export interface StoreOptions {
|
|
12
|
+
tenantId: string
|
|
13
|
+
/** One of "working" | "episodic" | "semantic" | "procedural". */
|
|
14
|
+
tier: string
|
|
15
|
+
content: string
|
|
16
|
+
embedding?: Array<number>
|
|
17
|
+
metadata: JsonValue
|
|
18
|
+
links?: Array<LinkInput>
|
|
19
|
+
}
|
|
20
|
+
/** One graph edge from the memory being stored to an existing memory. */
|
|
21
|
+
export interface LinkInput {
|
|
22
|
+
targetId: string
|
|
23
|
+
relationship: string
|
|
24
|
+
}
|
|
25
|
+
/** `client.recall(...)` input. */
|
|
26
|
+
export interface RecallOptions {
|
|
27
|
+
tenantId: string
|
|
28
|
+
query: Array<number>
|
|
29
|
+
k: number
|
|
30
|
+
}
|
|
31
|
+
/** `client.forget(...)` input. */
|
|
32
|
+
export interface ForgetOptions {
|
|
33
|
+
tenantId: string
|
|
34
|
+
id: string
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* `Client.connect(...)` input. `backend` defaults to `"embedded"`; `path`
|
|
38
|
+
* defaults to `"z3rno.db"` in the current working directory when the
|
|
39
|
+
* embedded backend is used and `path` is omitted.
|
|
40
|
+
*/
|
|
41
|
+
export interface ConnectOptions {
|
|
42
|
+
/** One of "embedded" | "postgres". Defaults to "embedded". */
|
|
43
|
+
backend?: string
|
|
44
|
+
path?: string
|
|
45
|
+
connectionString?: string
|
|
46
|
+
}
|
|
47
|
+
export interface MemoryDto {
|
|
48
|
+
id: string
|
|
49
|
+
tenantId: string
|
|
50
|
+
tier: string
|
|
51
|
+
content: string
|
|
52
|
+
metadata: JsonValue
|
|
53
|
+
/** RFC 3339 timestamp. */
|
|
54
|
+
createdAt: string
|
|
55
|
+
}
|
|
56
|
+
export interface ForgetProofDto {
|
|
57
|
+
auditEventId: string
|
|
58
|
+
hash: string
|
|
59
|
+
}
|
|
60
|
+
export interface AuditEventDto {
|
|
61
|
+
id: string
|
|
62
|
+
tenantId: string
|
|
63
|
+
/** "store" | "forget". */
|
|
64
|
+
operation: string
|
|
65
|
+
memoryId: string
|
|
66
|
+
/** RFC 3339 timestamp. */
|
|
67
|
+
at: string
|
|
68
|
+
prevHash?: string
|
|
69
|
+
hash: string
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A connected z3rno client. Construct with `Client.connect(...)`, never
|
|
73
|
+
* `new Client()` — connecting the embedded backend is sync but connecting
|
|
74
|
+
* Postgres needs an `await`, so both go through one consistent async
|
|
75
|
+
* factory rather than a sync constructor plus a separate async path.
|
|
76
|
+
*/
|
|
77
|
+
export declare class Client {
|
|
78
|
+
static connect(options?: ConnectOptions | undefined | null): Promise<Client>
|
|
79
|
+
/**
|
|
80
|
+
* Which tenant-isolation guarantee this client's backend provides:
|
|
81
|
+
* "embedded" or "postgres". No I/O, so this is sync (not a Promise).
|
|
82
|
+
*/
|
|
83
|
+
tier(): string
|
|
84
|
+
store(options: StoreOptions): Promise<MemoryDto>
|
|
85
|
+
recall(options: RecallOptions): Promise<Array<MemoryDto>>
|
|
86
|
+
forget(options: ForgetOptions): Promise<ForgetProofDto | null>
|
|
87
|
+
/**
|
|
88
|
+
* Advanced operations namespace — currently just `.audit(tenantId)`,
|
|
89
|
+
* the one advanced operation the engine has. Mirrors the engine's own
|
|
90
|
+
* `MemoryEngine::advanced()` two-tier verb surface.
|
|
91
|
+
*/
|
|
92
|
+
get advanced(): Advanced
|
|
93
|
+
}
|
|
94
|
+
export declare class Advanced {
|
|
95
|
+
/** The tenant's full audit chain, oldest first. */
|
|
96
|
+
audit(tenantId: string): Promise<Array<AuditEventDto>>
|
|
97
|
+
}
|
package/index.js
ADDED
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/* prettier-ignore */
|
|
4
|
+
|
|
5
|
+
/* auto-generated by NAPI-RS */
|
|
6
|
+
|
|
7
|
+
const { existsSync, readFileSync } = require('fs')
|
|
8
|
+
const { join } = require('path')
|
|
9
|
+
|
|
10
|
+
const { platform, arch } = process
|
|
11
|
+
|
|
12
|
+
let nativeBinding = null
|
|
13
|
+
let localFileExisted = false
|
|
14
|
+
let loadError = null
|
|
15
|
+
|
|
16
|
+
function isMusl() {
|
|
17
|
+
// For Node 10
|
|
18
|
+
if (!process.report || typeof process.report.getReport !== 'function') {
|
|
19
|
+
try {
|
|
20
|
+
const lddPath = require('child_process').execSync('which ldd').toString().trim()
|
|
21
|
+
return readFileSync(lddPath, 'utf8').includes('musl')
|
|
22
|
+
} catch (e) {
|
|
23
|
+
return true
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
const { glibcVersionRuntime } = process.report.getReport().header
|
|
27
|
+
return !glibcVersionRuntime
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
switch (platform) {
|
|
32
|
+
case 'android':
|
|
33
|
+
switch (arch) {
|
|
34
|
+
case 'arm64':
|
|
35
|
+
localFileExisted = existsSync(join(__dirname, 'z3rno-sdk-native.android-arm64.node'))
|
|
36
|
+
try {
|
|
37
|
+
if (localFileExisted) {
|
|
38
|
+
nativeBinding = require('./z3rno-sdk-native.android-arm64.node')
|
|
39
|
+
} else {
|
|
40
|
+
nativeBinding = require('@z3rno/sdk-android-arm64')
|
|
41
|
+
}
|
|
42
|
+
} catch (e) {
|
|
43
|
+
loadError = e
|
|
44
|
+
}
|
|
45
|
+
break
|
|
46
|
+
case 'arm':
|
|
47
|
+
localFileExisted = existsSync(join(__dirname, 'z3rno-sdk-native.android-arm-eabi.node'))
|
|
48
|
+
try {
|
|
49
|
+
if (localFileExisted) {
|
|
50
|
+
nativeBinding = require('./z3rno-sdk-native.android-arm-eabi.node')
|
|
51
|
+
} else {
|
|
52
|
+
nativeBinding = require('@z3rno/sdk-android-arm-eabi')
|
|
53
|
+
}
|
|
54
|
+
} catch (e) {
|
|
55
|
+
loadError = e
|
|
56
|
+
}
|
|
57
|
+
break
|
|
58
|
+
default:
|
|
59
|
+
throw new Error(`Unsupported architecture on Android ${arch}`)
|
|
60
|
+
}
|
|
61
|
+
break
|
|
62
|
+
case 'win32':
|
|
63
|
+
switch (arch) {
|
|
64
|
+
case 'x64':
|
|
65
|
+
localFileExisted = existsSync(
|
|
66
|
+
join(__dirname, 'z3rno-sdk-native.win32-x64-msvc.node')
|
|
67
|
+
)
|
|
68
|
+
try {
|
|
69
|
+
if (localFileExisted) {
|
|
70
|
+
nativeBinding = require('./z3rno-sdk-native.win32-x64-msvc.node')
|
|
71
|
+
} else {
|
|
72
|
+
nativeBinding = require('@z3rno/sdk-win32-x64-msvc')
|
|
73
|
+
}
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadError = e
|
|
76
|
+
}
|
|
77
|
+
break
|
|
78
|
+
case 'ia32':
|
|
79
|
+
localFileExisted = existsSync(
|
|
80
|
+
join(__dirname, 'z3rno-sdk-native.win32-ia32-msvc.node')
|
|
81
|
+
)
|
|
82
|
+
try {
|
|
83
|
+
if (localFileExisted) {
|
|
84
|
+
nativeBinding = require('./z3rno-sdk-native.win32-ia32-msvc.node')
|
|
85
|
+
} else {
|
|
86
|
+
nativeBinding = require('@z3rno/sdk-win32-ia32-msvc')
|
|
87
|
+
}
|
|
88
|
+
} catch (e) {
|
|
89
|
+
loadError = e
|
|
90
|
+
}
|
|
91
|
+
break
|
|
92
|
+
case 'arm64':
|
|
93
|
+
localFileExisted = existsSync(
|
|
94
|
+
join(__dirname, 'z3rno-sdk-native.win32-arm64-msvc.node')
|
|
95
|
+
)
|
|
96
|
+
try {
|
|
97
|
+
if (localFileExisted) {
|
|
98
|
+
nativeBinding = require('./z3rno-sdk-native.win32-arm64-msvc.node')
|
|
99
|
+
} else {
|
|
100
|
+
nativeBinding = require('@z3rno/sdk-win32-arm64-msvc')
|
|
101
|
+
}
|
|
102
|
+
} catch (e) {
|
|
103
|
+
loadError = e
|
|
104
|
+
}
|
|
105
|
+
break
|
|
106
|
+
default:
|
|
107
|
+
throw new Error(`Unsupported architecture on Windows: ${arch}`)
|
|
108
|
+
}
|
|
109
|
+
break
|
|
110
|
+
case 'darwin':
|
|
111
|
+
localFileExisted = existsSync(join(__dirname, 'z3rno-sdk-native.darwin-universal.node'))
|
|
112
|
+
try {
|
|
113
|
+
if (localFileExisted) {
|
|
114
|
+
nativeBinding = require('./z3rno-sdk-native.darwin-universal.node')
|
|
115
|
+
} else {
|
|
116
|
+
nativeBinding = require('@z3rno/sdk-darwin-universal')
|
|
117
|
+
}
|
|
118
|
+
break
|
|
119
|
+
} catch {}
|
|
120
|
+
switch (arch) {
|
|
121
|
+
case 'x64':
|
|
122
|
+
localFileExisted = existsSync(join(__dirname, 'z3rno-sdk-native.darwin-x64.node'))
|
|
123
|
+
try {
|
|
124
|
+
if (localFileExisted) {
|
|
125
|
+
nativeBinding = require('./z3rno-sdk-native.darwin-x64.node')
|
|
126
|
+
} else {
|
|
127
|
+
nativeBinding = require('@z3rno/sdk-darwin-x64')
|
|
128
|
+
}
|
|
129
|
+
} catch (e) {
|
|
130
|
+
loadError = e
|
|
131
|
+
}
|
|
132
|
+
break
|
|
133
|
+
case 'arm64':
|
|
134
|
+
localFileExisted = existsSync(
|
|
135
|
+
join(__dirname, 'z3rno-sdk-native.darwin-arm64.node')
|
|
136
|
+
)
|
|
137
|
+
try {
|
|
138
|
+
if (localFileExisted) {
|
|
139
|
+
nativeBinding = require('./z3rno-sdk-native.darwin-arm64.node')
|
|
140
|
+
} else {
|
|
141
|
+
nativeBinding = require('@z3rno/sdk-darwin-arm64')
|
|
142
|
+
}
|
|
143
|
+
} catch (e) {
|
|
144
|
+
loadError = e
|
|
145
|
+
}
|
|
146
|
+
break
|
|
147
|
+
default:
|
|
148
|
+
throw new Error(`Unsupported architecture on macOS: ${arch}`)
|
|
149
|
+
}
|
|
150
|
+
break
|
|
151
|
+
case 'freebsd':
|
|
152
|
+
if (arch !== 'x64') {
|
|
153
|
+
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
|
|
154
|
+
}
|
|
155
|
+
localFileExisted = existsSync(join(__dirname, 'z3rno-sdk-native.freebsd-x64.node'))
|
|
156
|
+
try {
|
|
157
|
+
if (localFileExisted) {
|
|
158
|
+
nativeBinding = require('./z3rno-sdk-native.freebsd-x64.node')
|
|
159
|
+
} else {
|
|
160
|
+
nativeBinding = require('@z3rno/sdk-freebsd-x64')
|
|
161
|
+
}
|
|
162
|
+
} catch (e) {
|
|
163
|
+
loadError = e
|
|
164
|
+
}
|
|
165
|
+
break
|
|
166
|
+
case 'linux':
|
|
167
|
+
switch (arch) {
|
|
168
|
+
case 'x64':
|
|
169
|
+
if (isMusl()) {
|
|
170
|
+
localFileExisted = existsSync(
|
|
171
|
+
join(__dirname, 'z3rno-sdk-native.linux-x64-musl.node')
|
|
172
|
+
)
|
|
173
|
+
try {
|
|
174
|
+
if (localFileExisted) {
|
|
175
|
+
nativeBinding = require('./z3rno-sdk-native.linux-x64-musl.node')
|
|
176
|
+
} else {
|
|
177
|
+
nativeBinding = require('@z3rno/sdk-linux-x64-musl')
|
|
178
|
+
}
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadError = e
|
|
181
|
+
}
|
|
182
|
+
} else {
|
|
183
|
+
localFileExisted = existsSync(
|
|
184
|
+
join(__dirname, 'z3rno-sdk-native.linux-x64-gnu.node')
|
|
185
|
+
)
|
|
186
|
+
try {
|
|
187
|
+
if (localFileExisted) {
|
|
188
|
+
nativeBinding = require('./z3rno-sdk-native.linux-x64-gnu.node')
|
|
189
|
+
} else {
|
|
190
|
+
nativeBinding = require('@z3rno/sdk-linux-x64-gnu')
|
|
191
|
+
}
|
|
192
|
+
} catch (e) {
|
|
193
|
+
loadError = e
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
break
|
|
197
|
+
case 'arm64':
|
|
198
|
+
if (isMusl()) {
|
|
199
|
+
localFileExisted = existsSync(
|
|
200
|
+
join(__dirname, 'z3rno-sdk-native.linux-arm64-musl.node')
|
|
201
|
+
)
|
|
202
|
+
try {
|
|
203
|
+
if (localFileExisted) {
|
|
204
|
+
nativeBinding = require('./z3rno-sdk-native.linux-arm64-musl.node')
|
|
205
|
+
} else {
|
|
206
|
+
nativeBinding = require('@z3rno/sdk-linux-arm64-musl')
|
|
207
|
+
}
|
|
208
|
+
} catch (e) {
|
|
209
|
+
loadError = e
|
|
210
|
+
}
|
|
211
|
+
} else {
|
|
212
|
+
localFileExisted = existsSync(
|
|
213
|
+
join(__dirname, 'z3rno-sdk-native.linux-arm64-gnu.node')
|
|
214
|
+
)
|
|
215
|
+
try {
|
|
216
|
+
if (localFileExisted) {
|
|
217
|
+
nativeBinding = require('./z3rno-sdk-native.linux-arm64-gnu.node')
|
|
218
|
+
} else {
|
|
219
|
+
nativeBinding = require('@z3rno/sdk-linux-arm64-gnu')
|
|
220
|
+
}
|
|
221
|
+
} catch (e) {
|
|
222
|
+
loadError = e
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
break
|
|
226
|
+
case 'arm':
|
|
227
|
+
if (isMusl()) {
|
|
228
|
+
localFileExisted = existsSync(
|
|
229
|
+
join(__dirname, 'z3rno-sdk-native.linux-arm-musleabihf.node')
|
|
230
|
+
)
|
|
231
|
+
try {
|
|
232
|
+
if (localFileExisted) {
|
|
233
|
+
nativeBinding = require('./z3rno-sdk-native.linux-arm-musleabihf.node')
|
|
234
|
+
} else {
|
|
235
|
+
nativeBinding = require('@z3rno/sdk-linux-arm-musleabihf')
|
|
236
|
+
}
|
|
237
|
+
} catch (e) {
|
|
238
|
+
loadError = e
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
localFileExisted = existsSync(
|
|
242
|
+
join(__dirname, 'z3rno-sdk-native.linux-arm-gnueabihf.node')
|
|
243
|
+
)
|
|
244
|
+
try {
|
|
245
|
+
if (localFileExisted) {
|
|
246
|
+
nativeBinding = require('./z3rno-sdk-native.linux-arm-gnueabihf.node')
|
|
247
|
+
} else {
|
|
248
|
+
nativeBinding = require('@z3rno/sdk-linux-arm-gnueabihf')
|
|
249
|
+
}
|
|
250
|
+
} catch (e) {
|
|
251
|
+
loadError = e
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
break
|
|
255
|
+
case 'riscv64':
|
|
256
|
+
if (isMusl()) {
|
|
257
|
+
localFileExisted = existsSync(
|
|
258
|
+
join(__dirname, 'z3rno-sdk-native.linux-riscv64-musl.node')
|
|
259
|
+
)
|
|
260
|
+
try {
|
|
261
|
+
if (localFileExisted) {
|
|
262
|
+
nativeBinding = require('./z3rno-sdk-native.linux-riscv64-musl.node')
|
|
263
|
+
} else {
|
|
264
|
+
nativeBinding = require('@z3rno/sdk-linux-riscv64-musl')
|
|
265
|
+
}
|
|
266
|
+
} catch (e) {
|
|
267
|
+
loadError = e
|
|
268
|
+
}
|
|
269
|
+
} else {
|
|
270
|
+
localFileExisted = existsSync(
|
|
271
|
+
join(__dirname, 'z3rno-sdk-native.linux-riscv64-gnu.node')
|
|
272
|
+
)
|
|
273
|
+
try {
|
|
274
|
+
if (localFileExisted) {
|
|
275
|
+
nativeBinding = require('./z3rno-sdk-native.linux-riscv64-gnu.node')
|
|
276
|
+
} else {
|
|
277
|
+
nativeBinding = require('@z3rno/sdk-linux-riscv64-gnu')
|
|
278
|
+
}
|
|
279
|
+
} catch (e) {
|
|
280
|
+
loadError = e
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
break
|
|
284
|
+
case 's390x':
|
|
285
|
+
localFileExisted = existsSync(
|
|
286
|
+
join(__dirname, 'z3rno-sdk-native.linux-s390x-gnu.node')
|
|
287
|
+
)
|
|
288
|
+
try {
|
|
289
|
+
if (localFileExisted) {
|
|
290
|
+
nativeBinding = require('./z3rno-sdk-native.linux-s390x-gnu.node')
|
|
291
|
+
} else {
|
|
292
|
+
nativeBinding = require('@z3rno/sdk-linux-s390x-gnu')
|
|
293
|
+
}
|
|
294
|
+
} catch (e) {
|
|
295
|
+
loadError = e
|
|
296
|
+
}
|
|
297
|
+
break
|
|
298
|
+
default:
|
|
299
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`)
|
|
300
|
+
}
|
|
301
|
+
break
|
|
302
|
+
default:
|
|
303
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (!nativeBinding) {
|
|
307
|
+
if (loadError) {
|
|
308
|
+
throw loadError
|
|
309
|
+
}
|
|
310
|
+
throw new Error(`Failed to load native binding`)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
const { Client, Advanced } = nativeBinding
|
|
314
|
+
|
|
315
|
+
module.exports.Client = Client
|
|
316
|
+
module.exports.Advanced = Advanced
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@z3rno/sdk-darwin-arm64",
|
|
3
|
+
"version": "0.23.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/the-ai-project-co/z3rno"
|
|
7
|
+
},
|
|
8
|
+
"os": [
|
|
9
|
+
"darwin"
|
|
10
|
+
],
|
|
11
|
+
"cpu": [
|
|
12
|
+
"arm64"
|
|
13
|
+
],
|
|
14
|
+
"main": "z3rno-sdk-native.darwin-arm64.node",
|
|
15
|
+
"files": [
|
|
16
|
+
"z3rno-sdk-native.darwin-arm64.node"
|
|
17
|
+
],
|
|
18
|
+
"license": "Apache-2.0",
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">= 18"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public",
|
|
24
|
+
"provenance": true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@z3rno/sdk-darwin-x64",
|
|
3
|
+
"version": "0.23.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/the-ai-project-co/z3rno"
|
|
7
|
+
},
|
|
8
|
+
"os": [
|
|
9
|
+
"darwin"
|
|
10
|
+
],
|
|
11
|
+
"cpu": [
|
|
12
|
+
"x64"
|
|
13
|
+
],
|
|
14
|
+
"main": "z3rno-sdk-native.darwin-x64.node",
|
|
15
|
+
"files": [
|
|
16
|
+
"z3rno-sdk-native.darwin-x64.node"
|
|
17
|
+
],
|
|
18
|
+
"license": "Apache-2.0",
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">= 18"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public",
|
|
24
|
+
"provenance": true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@z3rno/sdk-linux-arm64-gnu",
|
|
3
|
+
"version": "0.23.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/the-ai-project-co/z3rno"
|
|
7
|
+
},
|
|
8
|
+
"os": [
|
|
9
|
+
"linux"
|
|
10
|
+
],
|
|
11
|
+
"cpu": [
|
|
12
|
+
"arm64"
|
|
13
|
+
],
|
|
14
|
+
"main": "z3rno-sdk-native.linux-arm64-gnu.node",
|
|
15
|
+
"files": [
|
|
16
|
+
"z3rno-sdk-native.linux-arm64-gnu.node"
|
|
17
|
+
],
|
|
18
|
+
"license": "Apache-2.0",
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">= 18"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public",
|
|
24
|
+
"provenance": true
|
|
25
|
+
},
|
|
26
|
+
"libc": [
|
|
27
|
+
"glibc"
|
|
28
|
+
]
|
|
29
|
+
}
|