@net-mesh/sdk 0.25.2 → 0.27.0-beta.1
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/dist/index.d.ts +1 -0
- package/dist/index.js +11 -2
- package/dist/mesh.d.ts +18 -5
- package/dist/mesh.js +9 -5
- package/dist/transport.d.ts +1 -0
- package/dist/transport.js +32 -0
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ export type { MeshOsDaemon, MeshOsConfig, MeshOsDaemonSdkOptions, DaemonControl,
|
|
|
53
53
|
export { ReplicaGroup, ForkGroup, StandbyGroup, GroupError } from './groups';
|
|
54
54
|
export type { GroupErrorKind, GroupStrategy, GroupHealth, GroupMemberInfo, GroupHostConfig, ForkRecord, RequestContext, ReplicaGroupConfig, ForkGroupConfig, StandbyGroupConfig, } from './groups';
|
|
55
55
|
export { RedisStreamDedup } from './redis-dedup';
|
|
56
|
+
export { TransferControl, TransferHeader, transferStreamId, isTransferStreamId, nextTransferStreamId, } from './transport';
|
|
56
57
|
export type { NetNodeConfig, Transport, Receipt, PollRequest, PollResponseData, Stats, SubscribeOpts, StoredEvent, } from './types';
|
|
57
58
|
export type { ToolDescriptor, ToolEvent, ToolEventStart, ToolEventProgress, ToolEventDelta, ToolEventResult, ToolEventError, ToolOptions, ToolHandler, ToolServeHandle, StreamingToolHandler, ToolListChange, WatchToolsOptions, ToolMetadataResponse, ToolCallSpec, } from './tool';
|
|
58
59
|
export { isTerminalEvent, descriptorFrom, serveTool, serveToolStreaming, callTool, callToolStreaming, listTools, watchTools, addToolCapabilitiesToAnnounce, fetchToolMetadata, ToolCallParseError, TOOL_METADATA_FETCH_SERVICE, openai, anthropic, mcp, gemini, } from './tool';
|
package/dist/index.js
CHANGED
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
*/
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.standardPlacement = exports.StandardPlacementBuilder = exports.withMetadata = exports.requireAxisValue = exports.requireTag = exports.emptyCapabilities = exports.diffCapabilities = exports.whereHeader = exports.predicateFromRpcHeader = exports.predicateToRpcHeader = exports.predicateFromWire = exports.predicateToWire = exports.p = exports.startsWithReservedPrefix = exports.tagFromUserString = exports.tagFromString = exports.tagToString = exports.tagKey = exports.RPC_WHERE_HEADER = exports.RESERVED_PREFIXES = exports.TAXONOMY_AXES = exports.withSubnetLocalScope = exports.withRegionScope = exports.withTenantScope = exports.SCOPE_SUBNET_LOCAL = exports.SCOPE_REGION_PREFIX = exports.SCOPE_TENANT_PREFIX = exports.delegateToken = exports.channelHash = exports.TokenError = exports.IdentityError = exports.Token = exports.Identity = exports.RedexError = exports.NetDbError = exports.CortexError = exports.MemoriesAdapter = exports.TasksAdapter = exports.NetDb = exports.RedexFile = exports.Redex = exports.ChannelAuthError = exports.ChannelError = exports.NotConnectedError = exports.BackpressureError = exports.MeshNode = exports.TypedChannel = exports.TypedEventStream = exports.EventStream = exports.NetNode = void 0;
|
|
31
|
-
exports.
|
|
32
|
-
exports.gemini = exports.mcp = void 0;
|
|
31
|
+
exports.addToolCapabilitiesToAnnounce = exports.watchTools = exports.listTools = exports.callToolStreaming = exports.callTool = exports.serveToolStreaming = exports.serveTool = exports.descriptorFrom = exports.isTerminalEvent = exports.nextTransferStreamId = exports.isTransferStreamId = exports.transferStreamId = exports.TransferHeader = exports.TransferControl = exports.RedisStreamDedup = exports.GroupError = exports.StandbyGroup = exports.ForkGroup = exports.ReplicaGroup = exports.MeshOsSdkError = exports.MeshOsDaemonHandle = exports.MeshOsDaemonSdk = exports.parseMeshDbErrorKind = exports.QueryBuilder = exports.MeshQueryStream = exports.MeshQueryRunner = exports.MeshQuery = exports.InMemoryChainReader = exports.DisposableMeshQueryRunner = exports.MigrationError = exports.MigrationHandle = exports.DaemonError = exports.DaemonHandle = exports.DaemonRuntime = exports.GLOBAL_SUBNET = exports.subnetId = exports.validateCapabilities = exports.isReportValid = exports.isReportClean = exports.METADATA_SOFT_CAP_BYTES = exports.METADATA_RESERVED_PREFIXES = exports.METADATA_RESERVED_KEYS = exports.AXIS_SCHEMA = exports.renderDebugReport = exports.redactMetadataKeys = exports.predicateDebugReportFromWire = exports.predicateDebugReport = exports.evaluatePredicateWithTrace = exports.evaluatePredicate = exports.placementFilterFromFn = void 0;
|
|
32
|
+
exports.gemini = exports.mcp = exports.anthropic = exports.openai = exports.TOOL_METADATA_FETCH_SERVICE = exports.ToolCallParseError = exports.fetchToolMetadata = void 0;
|
|
33
33
|
// Main handle.
|
|
34
34
|
var node_1 = require("./node");
|
|
35
35
|
Object.defineProperty(exports, "NetNode", { enumerable: true, get: function () { return node_1.NetNode; } });
|
|
@@ -146,6 +146,15 @@ Object.defineProperty(exports, "GroupError", { enumerable: true, get: function (
|
|
|
146
146
|
// module directly.
|
|
147
147
|
var redis_dedup_1 = require("./redis-dedup");
|
|
148
148
|
Object.defineProperty(exports, "RedisStreamDedup", { enumerable: true, get: function () { return redis_dedup_1.RedisStreamDedup; } });
|
|
149
|
+
// Transport surface (blob + directory transfer over the fairscheduler
|
|
150
|
+
// stream transport). Wire types + stream-id helpers; node-driven ops
|
|
151
|
+
// follow with the Node behavioural tests (T-H).
|
|
152
|
+
var transport_1 = require("./transport");
|
|
153
|
+
Object.defineProperty(exports, "TransferControl", { enumerable: true, get: function () { return transport_1.TransferControl; } });
|
|
154
|
+
Object.defineProperty(exports, "TransferHeader", { enumerable: true, get: function () { return transport_1.TransferHeader; } });
|
|
155
|
+
Object.defineProperty(exports, "transferStreamId", { enumerable: true, get: function () { return transport_1.transferStreamId; } });
|
|
156
|
+
Object.defineProperty(exports, "isTransferStreamId", { enumerable: true, get: function () { return transport_1.isTransferStreamId; } });
|
|
157
|
+
Object.defineProperty(exports, "nextTransferStreamId", { enumerable: true, get: function () { return transport_1.nextTransferStreamId; } });
|
|
149
158
|
var tool_1 = require("./tool");
|
|
150
159
|
Object.defineProperty(exports, "isTerminalEvent", { enumerable: true, get: function () { return tool_1.isTerminalEvent; } });
|
|
151
160
|
Object.defineProperty(exports, "descriptorFrom", { enumerable: true, get: function () { return tool_1.descriptorFrom; } });
|
package/dist/mesh.d.ts
CHANGED
|
@@ -249,11 +249,14 @@ export declare class MeshNode {
|
|
|
249
249
|
*
|
|
250
250
|
* Pass `opts.token` to present a
|
|
251
251
|
* {@link Token PermissionToken} issued by the publisher — required
|
|
252
|
-
* when the channel was registered with `
|
|
253
|
-
* when your caps alone don't satisfy
|
|
254
|
-
* publisher verifies the
|
|
255
|
-
*
|
|
256
|
-
*
|
|
252
|
+
* when the channel was registered with `tokenRoots` (token
|
|
253
|
+
* enforcement) or when your caps alone don't satisfy
|
|
254
|
+
* `subscribeCaps`. The publisher verifies the presented token chain
|
|
255
|
+
* — it must root at one of the channel's `tokenRoots`, bind at its
|
|
256
|
+
* leaf to this node's entity id, and authorize `subscribe` — before
|
|
257
|
+
* admitting the subscribe. The credential must be presented on every
|
|
258
|
+
* subscribe; a previously-accepted one is not reused for a later
|
|
259
|
+
* bare subscribe.
|
|
257
260
|
*
|
|
258
261
|
* Throws a {@link ChannelAuthError} or {@link ChannelError} on
|
|
259
262
|
* rejection; network-level failures propagate as plain `Error`.
|
|
@@ -374,8 +377,18 @@ export interface ChannelConfig {
|
|
|
374
377
|
/**
|
|
375
378
|
* When true, subscribers must present a valid
|
|
376
379
|
* `PermissionToken` whose subject matches their entity id.
|
|
380
|
+
* On its own (no `tokenRoots`) this fails every authorization
|
|
381
|
+
* closed — pass `tokenRoots` to anchor a root of trust.
|
|
377
382
|
*/
|
|
378
383
|
requireToken?: boolean;
|
|
384
|
+
/**
|
|
385
|
+
* Root(s) of trust for token authorization: 32-byte entity ids
|
|
386
|
+
* whose signature may root a presented token chain. Setting this
|
|
387
|
+
* turns on token enforcement and anchors the channel — a chain is
|
|
388
|
+
* only honored if its root link was issued by one of these
|
|
389
|
+
* entities (e.g. the publisher that issues subscribe tokens).
|
|
390
|
+
*/
|
|
391
|
+
tokenRoots?: Buffer[];
|
|
379
392
|
/** Priority (0 = lowest). */
|
|
380
393
|
priority?: number;
|
|
381
394
|
/** Rate cap in packets per second. */
|
package/dist/mesh.js
CHANGED
|
@@ -294,6 +294,7 @@ class MeshNode {
|
|
|
294
294
|
visibility: config.visibility,
|
|
295
295
|
reliable: config.reliable,
|
|
296
296
|
requireToken: config.requireToken,
|
|
297
|
+
tokenRoots: config.tokenRoots,
|
|
297
298
|
priority: config.priority,
|
|
298
299
|
maxRatePps: config.maxRatePps,
|
|
299
300
|
publishCaps: config.publishCaps
|
|
@@ -315,11 +316,14 @@ class MeshNode {
|
|
|
315
316
|
*
|
|
316
317
|
* Pass `opts.token` to present a
|
|
317
318
|
* {@link Token PermissionToken} issued by the publisher — required
|
|
318
|
-
* when the channel was registered with `
|
|
319
|
-
* when your caps alone don't satisfy
|
|
320
|
-
* publisher verifies the
|
|
321
|
-
*
|
|
322
|
-
*
|
|
319
|
+
* when the channel was registered with `tokenRoots` (token
|
|
320
|
+
* enforcement) or when your caps alone don't satisfy
|
|
321
|
+
* `subscribeCaps`. The publisher verifies the presented token chain
|
|
322
|
+
* — it must root at one of the channel's `tokenRoots`, bind at its
|
|
323
|
+
* leaf to this node's entity id, and authorize `subscribe` — before
|
|
324
|
+
* admitting the subscribe. The credential must be presented on every
|
|
325
|
+
* subscribe; a previously-accepted one is not reused for a later
|
|
326
|
+
* bare subscribe.
|
|
323
327
|
*
|
|
324
328
|
* Throws a {@link ChannelAuthError} or {@link ChannelError} on
|
|
325
329
|
* rejection; network-level failures propagate as plain `Error`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TransferControl, TransferHeader, transferStreamId, isTransferStreamId, nextTransferStreamId, } from '@net-mesh/core';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Transport surface — on-demand cross-peer blob + directory transfer
|
|
3
|
+
// over the fairscheduler stream transport (Transport SDK plan, T-E).
|
|
4
|
+
//
|
|
5
|
+
// Moves content-addressed bytes (and whole directory trees) between
|
|
6
|
+
// peers over the substrate's reliable, fair-scheduled streams —
|
|
7
|
+
// distinct from RedEX replication (a push primitive) and nRPC
|
|
8
|
+
// (request/reply). Mirrors the Rust `net_sdk::transport` surface, the
|
|
9
|
+
// C ABI in `include/net_transport.h`, and the Python `net_sdk.transport`
|
|
10
|
+
// module.
|
|
11
|
+
//
|
|
12
|
+
// This module re-exports the cross-language wire contract + the
|
|
13
|
+
// stream-id helpers from the napi binding (`@net-mesh/core`):
|
|
14
|
+
//
|
|
15
|
+
// - `TransferControl` / `TransferHeader` — the postcard wire types
|
|
16
|
+
// with `encode()` / `decode()`, byte-identical across every
|
|
17
|
+
// language tier (locked by the cross-language golden vectors).
|
|
18
|
+
// - `transferStreamId` / `isTransferStreamId` / `nextTransferStreamId`.
|
|
19
|
+
//
|
|
20
|
+
// The node-driven ops (`serveBlobTransfer`, `fetchBlob`,
|
|
21
|
+
// `fetchBlobDiscovered`, `storeDir`, `fetchDir`) are methods on the
|
|
22
|
+
// napi `NetMesh` class (see `bindings/node/src/transport.rs`); the SDK
|
|
23
|
+
// `MeshNode` wrapper in `mesh.ts` delegates to them. A `napi build` must
|
|
24
|
+
// regenerate `@net-mesh/core`'s typings before tsc sees the new symbols.
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.nextTransferStreamId = exports.isTransferStreamId = exports.transferStreamId = exports.TransferHeader = exports.TransferControl = void 0;
|
|
27
|
+
var core_1 = require("@net-mesh/core");
|
|
28
|
+
Object.defineProperty(exports, "TransferControl", { enumerable: true, get: function () { return core_1.TransferControl; } });
|
|
29
|
+
Object.defineProperty(exports, "TransferHeader", { enumerable: true, get: function () { return core_1.TransferHeader; } });
|
|
30
|
+
Object.defineProperty(exports, "transferStreamId", { enumerable: true, get: function () { return core_1.transferStreamId; } });
|
|
31
|
+
Object.defineProperty(exports, "isTransferStreamId", { enumerable: true, get: function () { return core_1.isTransferStreamId; } });
|
|
32
|
+
Object.defineProperty(exports, "nextTransferStreamId", { enumerable: true, get: function () { return core_1.nextTransferStreamId; } });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@net-mesh/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0-beta.1",
|
|
4
4
|
"description": "Ergonomic TypeScript SDK for the Net mesh network",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"test:watch": "vitest"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@net-mesh/core": ">=0.
|
|
42
|
+
"@net-mesh/core": ">=0.27.0-0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@net-mesh/core": "file:../bindings/node",
|