@labacacia/nps-sdk 1.0.0-alpha.14 → 1.0.0-alpha.15
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.cn.md +7 -0
- package/CHANGELOG.md +7 -0
- package/README.cn.md +5 -5
- package/README.md +6 -6
- package/dist/conformance.js +1 -1
- package/dist/conformance.js.map +1 -1
- package/dist/core/codec.d.ts +5 -0
- package/dist/core/codec.d.ts.map +1 -1
- package/dist/core/codec.js +38 -1
- package/dist/core/codec.js.map +1 -1
- package/dist/core/codecs/ncp-codec.d.ts.map +1 -1
- package/dist/core/codecs/ncp-codec.js +20 -2
- package/dist/core/codecs/ncp-codec.js.map +1 -1
- package/dist/core/codecs/tier3-binary-vector-codec.d.ts +9 -0
- package/dist/core/codecs/tier3-binary-vector-codec.d.ts.map +1 -0
- package/dist/core/codecs/tier3-binary-vector-codec.js +155 -0
- package/dist/core/codecs/tier3-binary-vector-codec.js.map +1 -0
- package/dist/core/frame-header.d.ts +3 -1
- package/dist/core/frame-header.d.ts.map +1 -1
- package/dist/core/frame-header.js +2 -1
- package/dist/core/frame-header.js.map +1 -1
- package/dist/core/frames.d.ts +4 -1
- package/dist/core/frames.d.ts.map +1 -1
- package/dist/core/frames.js +3 -0
- package/dist/core/frames.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/ndp/federation.d.ts +8 -0
- package/dist/ndp/federation.d.ts.map +1 -0
- package/dist/ndp/federation.js +23 -0
- package/dist/ndp/federation.js.map +1 -0
- package/dist/ndp/frames.d.ts +4 -4
- package/dist/ndp/frames.d.ts.map +1 -1
- package/dist/ndp/frames.js +44 -9
- package/dist/ndp/frames.js.map +1 -1
- package/dist/ndp/index.d.ts +1 -0
- package/dist/ndp/index.d.ts.map +1 -1
- package/dist/ndp/index.js +1 -0
- package/dist/ndp/index.js.map +1 -1
- package/dist/ndp/ndp-error-codes.d.ts +2 -0
- package/dist/ndp/ndp-error-codes.d.ts.map +1 -1
- package/dist/ndp/ndp-error-codes.js +4 -0
- package/dist/ndp/ndp-error-codes.js.map +1 -1
- package/dist/ndp/validator.d.ts.map +1 -1
- package/dist/ndp/validator.js +5 -4
- package/dist/ndp/validator.js.map +1 -1
- package/dist/nip/frames.d.ts +18 -8
- package/dist/nip/frames.d.ts.map +1 -1
- package/dist/nip/frames.js +71 -19
- package/dist/nip/frames.js.map +1 -1
- package/dist/nwp/native-server.d.ts +2 -0
- package/dist/nwp/native-server.d.ts.map +1 -1
- package/dist/nwp/native-server.js +23 -1
- package/dist/nwp/native-server.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.cn.md
CHANGED
|
@@ -8,6 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## [1.0.0-alpha.15] —— 2026-06-28
|
|
12
|
+
|
|
13
|
+
### 变更
|
|
14
|
+
|
|
15
|
+
- 套件级 alpha.15 同步:对齐包元数据、当前 README / 版本 banner、分发源树以及 release-prep 说明到 NPS-Dev。
|
|
16
|
+
- 承载源事实树中的 NCP Tier-3 BinaryVector、入站 NWP Bridge server 加固、NIP canonical trust/revoke,以及 NDP discovery canonical-form 对齐。
|
|
17
|
+
|
|
11
18
|
## [1.0.0-alpha.14] —— 2026-06-26
|
|
12
19
|
|
|
13
20
|
### Added
|
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,13 @@ Until NPS reaches v1.0 stable, every repository in the suite is synchronized to
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## [1.0.0-alpha.15] — 2026-06-28
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Suite-wide alpha.15 sync: aligned package metadata, current README/version banners, distribution source trees, and release-prep notes with NPS-Dev.
|
|
16
|
+
- Carries the NCP Tier-3 BinaryVector, inbound NWP Bridge server hardening, NIP canonical trust/revoke, and NDP discovery canonical-form alignment delivered by the source-of-truth tree.
|
|
17
|
+
|
|
11
18
|
## [1.0.0-alpha.14] — 2026-06-26
|
|
12
19
|
|
|
13
20
|
### Added
|
package/README.cn.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# @labacacia/nps-sdk — TypeScript / Node.js
|
|
4
4
|
[](../../LICENSE)
|
|
5
|
-
[](../../CHANGELOG.cn.md)
|
|
6
|
+
[]()
|
|
7
7
|
[]()
|
|
8
8
|
[]()
|
|
9
9
|
[]()
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
## 状态
|
|
16
16
|
|
|
17
|
-
**v1.0.0-alpha.
|
|
17
|
+
**v1.0.0-alpha.15 — RFC-0002 跨 SDK 端口波(第三棒)** · 5 个协议 · 271 个测试 · 覆盖率 ≥ 98%
|
|
18
18
|
|
|
19
19
|
Alpha.14 候选新增:远程 NIP CA 类型化客户端(`NipCaClient`)、native-mode NWP 服务端 helper(`NwpNativeNodeServer`)和 TC-N1/TC-N2 一致性 manifest helper(`@labacacia/nps-sdk/conformance`)。
|
|
20
20
|
|
|
@@ -125,10 +125,10 @@ const results = catalogForProfile(NODE_L1).map((c) => ({ id: c.id, result: "pass
|
|
|
125
125
|
const manifest = createConformanceManifest({
|
|
126
126
|
profile: NODE_L1,
|
|
127
127
|
iutName: "my-node",
|
|
128
|
-
iutVersion: "1.0.0-alpha.
|
|
128
|
+
iutVersion: "1.0.0-alpha.15",
|
|
129
129
|
iutNid: "urn:nps:node:example.com:my-node",
|
|
130
130
|
peerName: "labacacia-fixture",
|
|
131
|
-
peerVersion: "1.0.0-alpha.
|
|
131
|
+
peerVersion: "1.0.0-alpha.15",
|
|
132
132
|
results,
|
|
133
133
|
});
|
|
134
134
|
const validation = validateConformanceManifest(manifest);
|
package/README.md
CHANGED
|
@@ -2,8 +2,8 @@ English | [中文版](./README.cn.md)
|
|
|
2
2
|
|
|
3
3
|
# @labacacia/nps-sdk — TypeScript / Node.js
|
|
4
4
|
[](../../LICENSE)
|
|
5
|
-
[](../../CHANGELOG.md)
|
|
6
|
+
[]()
|
|
7
7
|
[]()
|
|
8
8
|
[]()
|
|
9
9
|
[]()
|
|
@@ -14,9 +14,9 @@ Part of the [LabAcacia](https://github.com/LabAcacia) / INNO LOTUS PTY LTD open-
|
|
|
14
14
|
|
|
15
15
|
## Status
|
|
16
16
|
|
|
17
|
-
**v1.0.0-alpha.
|
|
17
|
+
**v1.0.0-alpha.15 — RFC-0002 cross-SDK port (third language)** · 5 protocols · 271 tests · ≥ 98% coverage
|
|
18
18
|
|
|
19
|
-
Alpha.
|
|
19
|
+
Alpha.15 additions: typed remote NIP CA client (`NipCaClient`), native-mode NWP serving helper (`NwpNativeNodeServer`), and TC-N1/TC-N2 conformance manifest helpers (`@labacacia/nps-sdk/conformance`).
|
|
20
20
|
|
|
21
21
|
| Protocol | Class | Status |
|
|
22
22
|
|----------|-------|--------|
|
|
@@ -125,10 +125,10 @@ const results = catalogForProfile(NODE_L1).map((c) => ({ id: c.id, result: "pass
|
|
|
125
125
|
const manifest = createConformanceManifest({
|
|
126
126
|
profile: NODE_L1,
|
|
127
127
|
iutName: "my-node",
|
|
128
|
-
iutVersion: "1.0.0-alpha.
|
|
128
|
+
iutVersion: "1.0.0-alpha.15",
|
|
129
129
|
iutNid: "urn:nps:node:example.com:my-node",
|
|
130
130
|
peerName: "labacacia-fixture",
|
|
131
|
-
peerVersion: "1.0.0-alpha.
|
|
131
|
+
peerVersion: "1.0.0-alpha.15",
|
|
132
132
|
results,
|
|
133
133
|
});
|
|
134
134
|
const validation = validateConformanceManifest(manifest);
|
package/dist/conformance.js
CHANGED
|
@@ -69,7 +69,7 @@ export const NODE_L1_CASES = [
|
|
|
69
69
|
c("TC-N1-NDP-01", NODE_L1, "N1-NDP-01", "AnnounceFrame carries activation_mode"),
|
|
70
70
|
c("TC-N1-NDP-02", NODE_L1, "N1-NDP-02", "AnnounceFrame signature"),
|
|
71
71
|
c("TC-N1-NDP-03", NODE_L1, "N1-NDP-03", "ResolveFrame response"),
|
|
72
|
-
c("TC-N1-NDP-04", NODE_L1, "N1-NDP-04", "GraphFrame
|
|
72
|
+
c("TC-N1-NDP-04", NODE_L1, "N1-NDP-04", "GraphFrame topology snapshot", true),
|
|
73
73
|
c("TC-N1-NWP-01", NODE_L1, "N1-NWP-01", "Inbox accepts ActionFrame"),
|
|
74
74
|
c("TC-N1-NWP-02", NODE_L1, "N1-NWP-02", "Inbox persists across restart"),
|
|
75
75
|
c("TC-N1-NWP-03", NODE_L1, "N1-NWP-03", "NWP pull serves inbox"),
|
package/dist/conformance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,aAAsB,CAAC;AAC9C,MAAM,CAAC,MAAM,OAAO,GAAG,aAAsB,CAAC;AAqC9C,MAAM,UAAU,yBAAyB,CAAC,IASzC;IACC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,eAAe,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;QACzD,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;QACvE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;QACxD,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,aAAa,EAAE;QACvF,KAAK;QACL,OAAO,EAAE;YACP,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;YACrD,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;YACrD,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;YACrD,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM;SAClD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,aAAa,CAAC;IAC9C,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,aAAa,CAAC;IAC9C,MAAM,IAAI,UAAU,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAgC;IAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7D,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QAC7G,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,kCAAkC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QAC3G,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,MAAM,CAAC,EAAE,yBAAyB,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACjG,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAClD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,MAAM,CAAC,EAAE,wCAAwC,EAAE,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qCAAqC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/F,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,CAAC,CAAC,EAAU,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK;IAC1F,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkC;IAC1D,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B,CAAC;IACvE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,0BAA0B,CAAC;IACnE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B,CAAC;IACpE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IACrE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,wCAAwC,CAAC;IACjF,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IACrE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;IACrD,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC;IACjE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,uCAAuC,CAAC;IAChF,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB,CAAC;IAClE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,CAAC;IAChE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"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"}
|
package/dist/core/codec.d.ts
CHANGED
|
@@ -13,11 +13,16 @@ export declare class Tier2MsgPackCodec {
|
|
|
13
13
|
encode(frame: NpsFrame): Uint8Array;
|
|
14
14
|
decode(frameType: FrameType, payload: Uint8Array, registry: FrameRegistry): NpsFrame;
|
|
15
15
|
}
|
|
16
|
+
export declare class Tier3BinaryVectorCodec {
|
|
17
|
+
encode(frame: NpsFrame): Uint8Array;
|
|
18
|
+
decode(frameType: FrameType, payload: Uint8Array, registry: FrameRegistry): NpsFrame;
|
|
19
|
+
}
|
|
16
20
|
export declare class NpsFrameCodec {
|
|
17
21
|
private readonly _registry;
|
|
18
22
|
private readonly _maxPayload;
|
|
19
23
|
private readonly _json;
|
|
20
24
|
private readonly _msgpack;
|
|
25
|
+
private readonly _binaryVector;
|
|
21
26
|
constructor(registry: FrameRegistry, options?: {
|
|
22
27
|
maxPayload?: number;
|
|
23
28
|
});
|
package/dist/core/codec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/core/codec.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,YAAY,EAEZ,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/core/codec.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,YAAY,EAEZ,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQnD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAID,qBAAa,cAAc;IACzB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU;IAWnC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,GAAG,QAAQ;CAYrF;AAID,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU;IAUnC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,GAAG,QAAQ;CAWrF;AAID,qBAAa,sBAAsB;IACjC,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU;IAUnC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,GAAG,QAAQ;CAWrF;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;gBAElD,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAO1E,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,YAAY,CAAA;KAAO,GAAG,UAAU;IAiClF,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ;IAOlC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW;IAMhD,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,YAAY;CAMrB"}
|
package/dist/core/codec.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import * as msgpack from "@msgpack/msgpack";
|
|
8
8
|
import { NpsCodecError } from "./exceptions.js";
|
|
9
9
|
import { DEFAULT_MAX_PAYLOAD, EncodingTier, FrameFlags, FrameHeader, } from "./frames.js";
|
|
10
|
+
import { decodeBinaryVectorPayload, encodeBinaryVectorPayload, } from "./codecs/tier3-binary-vector-codec.js";
|
|
10
11
|
// ── Tier-1 JSON codec ─────────────────────────────────────────────────────────
|
|
11
12
|
export class Tier1JsonCodec {
|
|
12
13
|
encode(frame) {
|
|
@@ -51,12 +52,34 @@ export class Tier2MsgPackCodec {
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
}
|
|
55
|
+
// ── Tier-3 BinaryVector codec ─────────────────────────────────────────────────
|
|
56
|
+
export class Tier3BinaryVectorCodec {
|
|
57
|
+
encode(frame) {
|
|
58
|
+
try {
|
|
59
|
+
return encodeBinaryVectorPayload(frame.toDict());
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
throw new NpsCodecError(`Tier-3 BinaryVector encode failed for 0x${frame.frameType.toString(16).padStart(2, "0")}: ${String(err)}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
decode(frameType, payload, registry) {
|
|
66
|
+
const cls = registry.resolve(frameType);
|
|
67
|
+
try {
|
|
68
|
+
const data = decodeBinaryVectorPayload(payload);
|
|
69
|
+
return cls.fromDict(data);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
throw new NpsCodecError(`Tier-3 BinaryVector decode failed for 0x${frameType.toString(16).padStart(2, "0")}: ${String(err)}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
54
76
|
// ── NpsFrameCodec (dispatcher) ────────────────────────────────────────────────
|
|
55
77
|
export class NpsFrameCodec {
|
|
56
78
|
_registry;
|
|
57
79
|
_maxPayload;
|
|
58
80
|
_json = new Tier1JsonCodec();
|
|
59
81
|
_msgpack = new Tier2MsgPackCodec();
|
|
82
|
+
_binaryVector = new Tier3BinaryVectorCodec();
|
|
60
83
|
constructor(registry, options = {}) {
|
|
61
84
|
this._registry = registry;
|
|
62
85
|
this._maxPayload = options.maxPayload ?? DEFAULT_MAX_PAYLOAD;
|
|
@@ -101,7 +124,19 @@ export class NpsFrameCodec {
|
|
|
101
124
|
}
|
|
102
125
|
// ── Private ───────────────────────────────────────────────────────────────
|
|
103
126
|
_buildFlags(frame, tier) {
|
|
104
|
-
let flags
|
|
127
|
+
let flags;
|
|
128
|
+
if (tier === EncodingTier.JSON) {
|
|
129
|
+
flags = FrameFlags.TIER1_JSON;
|
|
130
|
+
}
|
|
131
|
+
else if (tier === EncodingTier.MSGPACK) {
|
|
132
|
+
flags = FrameFlags.TIER2_MSGPACK;
|
|
133
|
+
}
|
|
134
|
+
else if (tier === EncodingTier.BINARY_VECTOR) {
|
|
135
|
+
flags = FrameFlags.TIER3_BINARY_VECTOR;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
throw new NpsCodecError(`Unsupported encoding tier: 0x${tier.toString(16).padStart(2, "0")}.`);
|
|
139
|
+
}
|
|
105
140
|
const isStreamFrame = "isLast" in frame;
|
|
106
141
|
const isFinal = !isStreamFrame || frame.isLast;
|
|
107
142
|
if (isFinal)
|
|
@@ -113,6 +148,8 @@ export class NpsFrameCodec {
|
|
|
113
148
|
return this._json;
|
|
114
149
|
if (tier === EncodingTier.MSGPACK)
|
|
115
150
|
return this._msgpack;
|
|
151
|
+
if (tier === EncodingTier.BINARY_VECTOR)
|
|
152
|
+
return this._binaryVector;
|
|
116
153
|
throw new NpsCodecError(`Unsupported encoding tier: 0x${tier.toString(16).padStart(2, "0")}.`);
|
|
117
154
|
}
|
|
118
155
|
}
|
package/dist/core/codec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/core/codec.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC;;;GAGG;AAEH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,WAAW,GAEZ,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/core/codec.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC;;;GAGG;AAEH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,WAAW,GAEZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAU/C,iFAAiF;AAEjF,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,KAAe;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CACrB,mCAAmC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAoB,EAAE,OAAmB,EAAE,QAAuB;QACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YACzD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CACrB,mCAAmC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,KAAe;QACpB,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CACrB,sCAAsC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CACtG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAoB,EAAE,OAAmB,EAAE,QAAuB;QACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAC;YAChE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CACrB,sCAAsC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAAC,KAAe;QACpB,IAAI,CAAC;YACH,OAAO,yBAAyB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CACrB,2CAA2C,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAoB,EAAE,OAAmB,EAAE,QAAuB;QACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAA4B,CAAC;YAC3E,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CACrB,2CAA2C,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,aAAa;IACP,SAAS,CAAgB;IACzB,WAAW,CAAS;IACpB,KAAK,GAAW,IAAI,cAAc,EAAE,CAAC;IACrC,QAAQ,GAAQ,IAAI,iBAAiB,EAAE,CAAC;IACxC,aAAa,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAE9D,YAAY,QAAuB,EAAE,UAAmC,EAAE;QACxE,IAAI,CAAC,SAAS,GAAK,QAAQ,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC/D,CAAC;IAED,6EAA6E;IAE7E,MAAM,CAAC,KAAe,EAAE,UAA2C,EAAE;QACnE,MAAM,IAAI,GAAM,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,OAAmB,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa;gBAAE,MAAM,GAAG,CAAC;YAC5C,MAAM,IAAI,aAAa,CAAC,uBAAuB,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,aAAa,CACrB,yBAAyB,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,4BAA4B;gBAClG,KAAK,OAAO,CAAC,MAAM,YAAY,IAAI,CAAC,WAAW,+CAA+C,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC;QACpD,IAAI,KAAK,GAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,MAAM;YAAE,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC;QAEpC,MAAM,MAAM,GAAO,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,GAAS,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAE7E,MAAM,CAAC,IAAgB;QACrB,MAAM,MAAM,GAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACxF,MAAM,KAAK,GAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAgB;QAChC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,6EAA6E;IAErE,WAAW,CAAC,KAAe,EAAE,IAAkB;QACrD,IAAI,KAAa,CAAC;QAClB,IAAI,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YAC/B,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YACzC,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC;QACnC,CAAC;aAAM,IAAI,IAAI,KAAK,YAAY,CAAC,aAAa,EAAE,CAAC;YAC/C,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,aAAa,CAAC,gCAAiC,IAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7G,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,IAAI,KAAK,CAAC;QACxC,MAAM,OAAO,GAAS,CAAC,aAAa,IAAK,KAA6B,CAAC,MAAM,CAAC;QAC9E,IAAI,OAAO;YAAE,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAEvC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,IAAkB;QACrC,IAAI,IAAI,KAAK,YAAY,CAAC,IAAI;YAAK,OAAO,IAAI,CAAC,KAAK,CAAC;QACrD,IAAI,IAAI,KAAK,YAAY,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,KAAK,YAAY,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QACnE,MAAM,IAAI,aAAa,CAAC,gCAAiC,IAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7G,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ncp-codec.d.ts","sourceRoot":"","sources":["../../../src/core/codecs/ncp-codec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ncp-codec.d.ts","sourceRoot":"","sources":["../../../src/core/codecs/ncp-codec.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,YAAY,EAGZ,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAY5B,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,YAAY,GACrB,YAAY,CAwDd;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,GACrB,UAAU,CAyDZ"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
// Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
|
|
3
3
|
//
|
|
4
4
|
// NCP Codec — Top-level encode/decode dispatcher
|
|
5
|
-
// Routes to Tier-1 JSON
|
|
5
|
+
// Routes to Tier-1 JSON, Tier-2 MsgPack, or Tier-3 BinaryVector based on
|
|
6
|
+
// frame header flags.
|
|
6
7
|
import { parseFrameHeader, writeFrameHeader, buildFlags, EncodingTier, NcpError, DEFAULT_MAX_PAYLOAD, } from "../frame-header.js";
|
|
7
8
|
import { encodeJson, decodeJson } from "./tier1-json-codec.js";
|
|
8
9
|
import { encodeMsgPack, decodeMsgPack } from "./tier2-msgpack-codec.js";
|
|
10
|
+
import { decodeBinaryVectorPayload, encodeBinaryVectorPayload, } from "./tier3-binary-vector-codec.js";
|
|
9
11
|
// ---------------------------------------------------------------------------
|
|
10
12
|
// Decode
|
|
11
13
|
// ---------------------------------------------------------------------------
|
|
@@ -40,8 +42,16 @@ export function decodeFrame(buffer, options) {
|
|
|
40
42
|
case EncodingTier.MsgPack:
|
|
41
43
|
payload = decodeMsgPack(payloadBytes);
|
|
42
44
|
break;
|
|
45
|
+
case EncodingTier.BinaryVector:
|
|
46
|
+
try {
|
|
47
|
+
payload = decodeBinaryVectorPayload(payloadBytes);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
throw new NcpError("NPS-CLIENT-BAD-FRAME", `Malformed BinaryVector payload: ${String(err)}`);
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
43
53
|
default:
|
|
44
|
-
// NCP-E-05: Reserved
|
|
54
|
+
// NCP-E-05: Reserved tier 0x03.
|
|
45
55
|
throw new NcpError("NCP-ENCODING-UNSUPPORTED", `Unsupported encoding tier: 0x${header.tier.toString(16).padStart(2, "0")}`);
|
|
46
56
|
}
|
|
47
57
|
return { header, payload, bytesConsumed: totalSize };
|
|
@@ -63,6 +73,14 @@ export function encodeFrame(payload, options) {
|
|
|
63
73
|
case EncodingTier.MsgPack:
|
|
64
74
|
payloadBytes = encodeMsgPack(payload);
|
|
65
75
|
break;
|
|
76
|
+
case EncodingTier.BinaryVector:
|
|
77
|
+
try {
|
|
78
|
+
payloadBytes = encodeBinaryVectorPayload(payload);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
throw new NcpError("NPS-CLIENT-BAD-FRAME", `BinaryVector encode failed: ${String(err)}`);
|
|
82
|
+
}
|
|
83
|
+
break;
|
|
66
84
|
default:
|
|
67
85
|
throw new NcpError("NCP-ENCODING-UNSUPPORTED", `Unsupported encoding tier for encode: ${tier}`);
|
|
68
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ncp-codec.js","sourceRoot":"","sources":["../../../src/core/codecs/ncp-codec.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,iDAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"ncp-codec.js","sourceRoot":"","sources":["../../../src/core/codecs/ncp-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encode a frame payload to Tier-3 BinaryVector v1 bytes.
|
|
3
|
+
*/
|
|
4
|
+
export declare function encodeBinaryVectorPayload(payload: unknown): Uint8Array;
|
|
5
|
+
/**
|
|
6
|
+
* Decode Tier-3 BinaryVector v1 bytes to a payload object.
|
|
7
|
+
*/
|
|
8
|
+
export declare function decodeBinaryVectorPayload(bytes: Uint8Array): unknown;
|
|
9
|
+
//# sourceMappingURL=tier3-binary-vector-codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier3-binary-vector-codec.d.ts","sourceRoot":"","sources":["../../../src/core/codecs/tier3-binary-vector-codec.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAqCtE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CA4DpE"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
|
|
3
|
+
//
|
|
4
|
+
// Tier-3 BinaryVector Codec — MessagePack metadata + float32 vector segments
|
|
5
|
+
// NPS-1 §8.1
|
|
6
|
+
import { encode, decode } from "@msgpack/msgpack";
|
|
7
|
+
const MAGIC = new Uint8Array([0x4e, 0x50, 0x42, 0x56]); // NPBV
|
|
8
|
+
const VERSION = 1;
|
|
9
|
+
const PREFIX_SIZE = 16;
|
|
10
|
+
const MARKER_KEY = "$nps_binary_vector";
|
|
11
|
+
/**
|
|
12
|
+
* Encode a frame payload to Tier-3 BinaryVector v1 bytes.
|
|
13
|
+
*/
|
|
14
|
+
export function encodeBinaryVectorPayload(payload) {
|
|
15
|
+
const metadata = cloneMetadata(payload);
|
|
16
|
+
if (!isRecord(metadata)) {
|
|
17
|
+
throw new Error("Tier-3 BinaryVector metadata root must be an object.");
|
|
18
|
+
}
|
|
19
|
+
const vectors = [];
|
|
20
|
+
extractVectorSearchVector(metadata, vectors);
|
|
21
|
+
if (vectors.length > 0xffff) {
|
|
22
|
+
throw new Error("Tier-3 BinaryVector supports at most 65535 vectors per frame.");
|
|
23
|
+
}
|
|
24
|
+
const metadataBytes = encode(metadata);
|
|
25
|
+
const segmentBytes = vectors.reduce((sum, vector) => sum + 4 + vector.length * 4, 0);
|
|
26
|
+
const out = new Uint8Array(PREFIX_SIZE + metadataBytes.length + segmentBytes);
|
|
27
|
+
const view = new DataView(out.buffer);
|
|
28
|
+
out.set(MAGIC, 0);
|
|
29
|
+
out[4] = VERSION;
|
|
30
|
+
out[5] = 0;
|
|
31
|
+
view.setUint16(6, vectors.length, false);
|
|
32
|
+
view.setUint32(8, metadataBytes.length, false);
|
|
33
|
+
view.setUint32(12, 0, false);
|
|
34
|
+
out.set(metadataBytes, PREFIX_SIZE);
|
|
35
|
+
let offset = PREFIX_SIZE + metadataBytes.length;
|
|
36
|
+
for (const vector of vectors) {
|
|
37
|
+
view.setUint32(offset, vector.length, false);
|
|
38
|
+
offset += 4;
|
|
39
|
+
for (const value of vector) {
|
|
40
|
+
view.setFloat32(offset, value, true);
|
|
41
|
+
offset += 4;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Decode Tier-3 BinaryVector v1 bytes to a payload object.
|
|
48
|
+
*/
|
|
49
|
+
export function decodeBinaryVectorPayload(bytes) {
|
|
50
|
+
if (bytes.length < PREFIX_SIZE) {
|
|
51
|
+
throw new Error(`Tier-3 BinaryVector payload too short: ${bytes.length} bytes.`);
|
|
52
|
+
}
|
|
53
|
+
if (!MAGIC.every((value, index) => bytes[index] === value)) {
|
|
54
|
+
throw new Error("Tier-3 BinaryVector payload magic mismatch.");
|
|
55
|
+
}
|
|
56
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
57
|
+
if (bytes[4] !== VERSION) {
|
|
58
|
+
throw new Error(`Unsupported Tier-3 BinaryVector version: ${bytes[4]}.`);
|
|
59
|
+
}
|
|
60
|
+
if (bytes[5] !== 0 || view.getUint32(12, false) !== 0) {
|
|
61
|
+
throw new Error("Tier-3 BinaryVector reserved fields must be zero.");
|
|
62
|
+
}
|
|
63
|
+
const vectorCount = view.getUint16(6, false);
|
|
64
|
+
const metadataLength = view.getUint32(8, false);
|
|
65
|
+
if (metadataLength > bytes.length - PREFIX_SIZE) {
|
|
66
|
+
throw new Error("Tier-3 BinaryVector metadata length exceeds payload length.");
|
|
67
|
+
}
|
|
68
|
+
let offset = PREFIX_SIZE;
|
|
69
|
+
const metadataBytes = bytes.subarray(offset, offset + metadataLength);
|
|
70
|
+
offset += metadataLength;
|
|
71
|
+
const metadata = decode(metadataBytes);
|
|
72
|
+
if (!isRecord(metadata)) {
|
|
73
|
+
throw new Error("Tier-3 BinaryVector metadata root must be a map.");
|
|
74
|
+
}
|
|
75
|
+
const vectors = [];
|
|
76
|
+
for (let i = 0; i < vectorCount; i += 1) {
|
|
77
|
+
if (bytes.length - offset < 4) {
|
|
78
|
+
throw new Error("Tier-3 BinaryVector vector segment missing dimension.");
|
|
79
|
+
}
|
|
80
|
+
const dim = view.getUint32(offset, false);
|
|
81
|
+
offset += 4;
|
|
82
|
+
const byteLength = dim * 4;
|
|
83
|
+
if (bytes.length - offset < byteLength) {
|
|
84
|
+
throw new Error("Tier-3 BinaryVector vector segment is truncated.");
|
|
85
|
+
}
|
|
86
|
+
const vector = [];
|
|
87
|
+
for (let j = 0; j < dim; j += 1) {
|
|
88
|
+
vector.push(view.getFloat32(offset, true));
|
|
89
|
+
offset += 4;
|
|
90
|
+
}
|
|
91
|
+
vectors.push(vector);
|
|
92
|
+
}
|
|
93
|
+
if (offset !== bytes.length) {
|
|
94
|
+
throw new Error("Tier-3 BinaryVector payload has trailing bytes.");
|
|
95
|
+
}
|
|
96
|
+
restoreVectorSearchVector(metadata, vectors);
|
|
97
|
+
return metadata;
|
|
98
|
+
}
|
|
99
|
+
function extractVectorSearchVector(metadata, vectors) {
|
|
100
|
+
const vectorSearch = metadata["vector_search"];
|
|
101
|
+
if (!isRecord(vectorSearch))
|
|
102
|
+
return;
|
|
103
|
+
const vector = vectorSearch["vector"];
|
|
104
|
+
if (!Array.isArray(vector) || !vector.every((value) => typeof value === "number" && Number.isFinite(value))) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const index = vectors.length;
|
|
108
|
+
vectors.push([...vector]);
|
|
109
|
+
vectorSearch["vector"] = {
|
|
110
|
+
[MARKER_KEY]: index,
|
|
111
|
+
dtype: "float32",
|
|
112
|
+
dim: vector.length,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function restoreVectorSearchVector(metadata, vectors) {
|
|
116
|
+
const vectorSearch = metadata["vector_search"];
|
|
117
|
+
if (!isRecord(vectorSearch) || !Object.hasOwn(vectorSearch, "vector"))
|
|
118
|
+
return;
|
|
119
|
+
const marker = vectorSearch["vector"];
|
|
120
|
+
if (!isRecord(marker)) {
|
|
121
|
+
throw new Error("Tier-3 BinaryVector marker must be an object.");
|
|
122
|
+
}
|
|
123
|
+
const index = marker[MARKER_KEY];
|
|
124
|
+
if (typeof index !== "number" || !Number.isInteger(index)) {
|
|
125
|
+
throw new Error("Tier-3 BinaryVector marker missing vector index.");
|
|
126
|
+
}
|
|
127
|
+
if (index < 0 || index >= vectors.length) {
|
|
128
|
+
throw new Error(`Tier-3 BinaryVector marker references vector ${index}, but only ${vectors.length} vectors are present.`);
|
|
129
|
+
}
|
|
130
|
+
if (marker["dtype"] !== "float32") {
|
|
131
|
+
throw new Error("Tier-3 BinaryVector v1 only supports dtype=float32.");
|
|
132
|
+
}
|
|
133
|
+
const dim = marker["dim"];
|
|
134
|
+
if (typeof dim !== "number" || !Number.isInteger(dim) || dim !== vectors[index].length) {
|
|
135
|
+
throw new Error("Tier-3 BinaryVector marker dimension does not match vector segment.");
|
|
136
|
+
}
|
|
137
|
+
vectorSearch["vector"] = vectors[index];
|
|
138
|
+
}
|
|
139
|
+
function cloneMetadata(value) {
|
|
140
|
+
if (Array.isArray(value)) {
|
|
141
|
+
return value.map(cloneMetadata);
|
|
142
|
+
}
|
|
143
|
+
if (isRecord(value)) {
|
|
144
|
+
const out = {};
|
|
145
|
+
for (const [key, item] of Object.entries(value)) {
|
|
146
|
+
out[key] = cloneMetadata(item);
|
|
147
|
+
}
|
|
148
|
+
return out;
|
|
149
|
+
}
|
|
150
|
+
return value;
|
|
151
|
+
}
|
|
152
|
+
function isRecord(value) {
|
|
153
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=tier3-binary-vector-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier3-binary-vector-codec.js","sourceRoot":"","sources":["../../../src/core/codecs/tier3-binary-vector-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ export declare enum EncodingTier {
|
|
|
3
3
|
/** Tier-1: UTF-8 JSON — development & compatibility. */
|
|
4
4
|
Json = 0,
|
|
5
5
|
/** Tier-2: MessagePack binary — production (~60% compression). */
|
|
6
|
-
MsgPack = 1
|
|
6
|
+
MsgPack = 1,
|
|
7
|
+
/** Tier-3: BinaryVector v1 — MessagePack metadata plus float32 vector segments. */
|
|
8
|
+
BinaryVector = 2
|
|
7
9
|
}
|
|
8
10
|
/** Unified frame type namespace for the full NPS suite (NPS-0 §9). */
|
|
9
11
|
export declare enum FrameType {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-header.d.ts","sourceRoot":"","sources":["../../src/core/frame-header.ts"],"names":[],"mappings":"AAUA,uDAAuD;AACvD,oBAAY,YAAY;IACtB,wDAAwD;IACxD,IAAI,IAAO;IACX,kEAAkE;IAClE,OAAO,IAAO;
|
|
1
|
+
{"version":3,"file":"frame-header.d.ts","sourceRoot":"","sources":["../../src/core/frame-header.ts"],"names":[],"mappings":"AAUA,uDAAuD;AACvD,oBAAY,YAAY;IACtB,wDAAwD;IACxD,IAAI,IAAO;IACX,kEAAkE;IAClE,OAAO,IAAO;IACd,mFAAmF;IACnF,YAAY,IAAO;CAEpB;AAED,sEAAsE;AACtE,oBAAY,SAAS;IAEnB,MAAM,IAAO;IACb,IAAI,IAAO;IACX,MAAM,IAAO;IACb,IAAI,IAAO;IACX,KAAK,IAAO,CAAE,sCAAsC;IACpD,KAAK,IAAO;IACZ,GAAG,IAAO,CAAE,iCAAiC;IAE7C,KAAK,KAAO;IACZ,MAAM,KAAO;IACb,SAAS,KAAO;IAEhB,KAAK,KAAO;IACZ,KAAK,KAAO;IACZ,MAAM,KAAO;IAEb,QAAQ,KAAO;IACf,OAAO,KAAO;IACd,KAAK,KAAO;IAEZ,IAAI,KAAO;IACX,QAAQ,KAAO;IACf,IAAI,KAAO;IACX,WAAW,KAAO;IAElB,KAAK,MAAO;CACb;AAMD,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,oDAAoD;AACpD,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAa/C,2DAA2D;AAC3D,qBAAa,QAAS,SAAQ,KAAK;aAKf,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;CAKlB;AAMD,2BAA2B;AAC3B,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,IAAI,EAAE,YAAY,CAAC;IACnB,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,yDAAyD;IACzD,UAAU,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,WAAW,CA6Fb;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,UAAU,GACjB,MAAM,CA0BR;AAMD,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAMT"}
|
|
@@ -13,7 +13,8 @@ export var EncodingTier;
|
|
|
13
13
|
EncodingTier[EncodingTier["Json"] = 0] = "Json";
|
|
14
14
|
/** Tier-2: MessagePack binary — production (~60% compression). */
|
|
15
15
|
EncodingTier[EncodingTier["MsgPack"] = 1] = "MsgPack";
|
|
16
|
-
|
|
16
|
+
/** Tier-3: BinaryVector v1 — MessagePack metadata plus float32 vector segments. */
|
|
17
|
+
EncodingTier[EncodingTier["BinaryVector"] = 2] = "BinaryVector";
|
|
17
18
|
// 0x03 = Reserved
|
|
18
19
|
})(EncodingTier || (EncodingTier = {}));
|
|
19
20
|
/** Unified frame type namespace for the full NPS suite (NPS-0 §9). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-header.js","sourceRoot":"","sources":["../../src/core/frame-header.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,4DAA4D;AAC5D,iDAAiD;AAEjD,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,uDAAuD;AACvD,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"frame-header.js","sourceRoot":"","sources":["../../src/core/frame-header.ts"],"names":[],"mappings":"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"}
|
package/dist/core/frames.d.ts
CHANGED
|
@@ -26,10 +26,12 @@ export declare enum FrameType {
|
|
|
26
26
|
* Wire encoding tier, stored in the lower 2 bits of the flags byte (NPS-1 §3.2).
|
|
27
27
|
* 0x00 = Tier-1 JSON — human-readable; development / compatibility.
|
|
28
28
|
* 0x01 = Tier-2 MsgPack — binary, ~60 % smaller; production default.
|
|
29
|
+
* 0x02 = Tier-3 BinaryVector — MsgPack metadata plus float32 vector segments.
|
|
29
30
|
*/
|
|
30
31
|
export declare enum EncodingTier {
|
|
31
32
|
JSON = 0,
|
|
32
|
-
MSGPACK = 1
|
|
33
|
+
MSGPACK = 1,
|
|
34
|
+
BINARY_VECTOR = 2
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Flags byte in the NPS frame header (NPS-1 §3.2).
|
|
@@ -44,6 +46,7 @@ export declare const FrameFlags: {
|
|
|
44
46
|
readonly NONE: 0;
|
|
45
47
|
readonly TIER1_JSON: 0;
|
|
46
48
|
readonly TIER2_MSGPACK: 1;
|
|
49
|
+
readonly TIER3_BINARY_VECTOR: 2;
|
|
47
50
|
readonly FINAL: 4;
|
|
48
51
|
readonly ENCRYPTED: 8;
|
|
49
52
|
readonly EXT: 128;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/core/frames.ts"],"names":[],"mappings":"AAWA,sEAAsE;AACtE,oBAAY,SAAS;IAEnB,MAAM,IAAa;IACnB,IAAI,IAAe;IACnB,MAAM,IAAa;IACnB,IAAI,IAAe;IACnB,KAAK,IAAc,CAAE,sCAAsC;IAC3D,KAAK,IAAc;IACnB,GAAG,IAAgB,CAAE,+BAA+B;IAGpD,KAAK,KAAc;IACnB,MAAM,KAAa;IACnB,SAAS,KAAU;IAGnB,KAAK,KAAc;IACnB,KAAK,KAAc;IACnB,MAAM,KAAa;IAGnB,QAAQ,KAAW;IACnB,OAAO,KAAY;IACnB,KAAK,KAAc;IAGnB,IAAI,KAAe;IACnB,QAAQ,KAAW;IACnB,IAAI,KAAe;IACnB,YAAY,KAAO;IAGnB,KAAK,MAAc;CACpB;AAID
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/core/frames.ts"],"names":[],"mappings":"AAWA,sEAAsE;AACtE,oBAAY,SAAS;IAEnB,MAAM,IAAa;IACnB,IAAI,IAAe;IACnB,MAAM,IAAa;IACnB,IAAI,IAAe;IACnB,KAAK,IAAc,CAAE,sCAAsC;IAC3D,KAAK,IAAc;IACnB,GAAG,IAAgB,CAAE,+BAA+B;IAGpD,KAAK,KAAc;IACnB,MAAM,KAAa;IACnB,SAAS,KAAU;IAGnB,KAAK,KAAc;IACnB,KAAK,KAAc;IACnB,MAAM,KAAa;IAGnB,QAAQ,KAAW;IACnB,OAAO,KAAY;IACnB,KAAK,KAAc;IAGnB,IAAI,KAAe;IACnB,QAAQ,KAAW;IACnB,IAAI,KAAe;IACnB,YAAY,KAAO;IAGnB,KAAK,MAAc;CACpB;AAID;;;;;GAKG;AACH,oBAAY,YAAY;IACtB,IAAI,IAAgB;IACpB,OAAO,IAAa;IACpB,aAAa,IAAO;CACrB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC;AAIX,eAAO,MAAM,mBAAmB,IAAK,CAAC;AACtC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAC3C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAI/C;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAW;aAEJ,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,MAAM;aACb,aAAa,EAAE,MAAM;gBAFrB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM;IAGvC,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAID,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;IAiC1C,OAAO,IAAI,UAAU;IAkBrB,QAAQ,IAAI,MAAM;CAGnB"}
|