@labacacia/nps-sdk 1.0.0-alpha.1 → 1.0.0-alpha.13

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.
Files changed (452) hide show
  1. package/CHANGELOG.cn.md +181 -0
  2. package/CHANGELOG.md +234 -0
  3. package/LICENSE +0 -0
  4. package/NOTICE +0 -0
  5. package/README.cn.md +163 -0
  6. package/README.md +16 -6
  7. package/dist/core/anchor-cache.d.ts +0 -0
  8. package/dist/core/anchor-cache.d.ts.map +0 -0
  9. package/dist/core/anchor-cache.js +0 -0
  10. package/dist/core/anchor-cache.js.map +0 -0
  11. package/dist/core/cache.d.ts +0 -0
  12. package/dist/core/cache.d.ts.map +0 -0
  13. package/dist/core/cache.js +0 -0
  14. package/dist/core/cache.js.map +0 -0
  15. package/dist/core/canonical-json.d.ts +0 -0
  16. package/dist/core/canonical-json.d.ts.map +0 -0
  17. package/dist/core/canonical-json.js +0 -0
  18. package/dist/core/canonical-json.js.map +0 -0
  19. package/dist/core/codec.d.ts +0 -0
  20. package/dist/core/codec.d.ts.map +0 -0
  21. package/dist/core/codec.js +0 -0
  22. package/dist/core/codec.js.map +0 -0
  23. package/dist/core/codecs/index.d.ts +0 -0
  24. package/dist/core/codecs/index.d.ts.map +0 -0
  25. package/dist/core/codecs/index.js +0 -0
  26. package/dist/core/codecs/index.js.map +0 -0
  27. package/dist/core/codecs/ncp-codec.d.ts +0 -0
  28. package/dist/core/codecs/ncp-codec.d.ts.map +0 -0
  29. package/dist/core/codecs/ncp-codec.js +0 -0
  30. package/dist/core/codecs/ncp-codec.js.map +0 -0
  31. package/dist/core/codecs/tier1-json-codec.d.ts +0 -0
  32. package/dist/core/codecs/tier1-json-codec.d.ts.map +0 -0
  33. package/dist/core/codecs/tier1-json-codec.js +0 -0
  34. package/dist/core/codecs/tier1-json-codec.js.map +0 -0
  35. package/dist/core/codecs/tier2-msgpack-codec.d.ts +0 -0
  36. package/dist/core/codecs/tier2-msgpack-codec.d.ts.map +0 -0
  37. package/dist/core/codecs/tier2-msgpack-codec.js +0 -0
  38. package/dist/core/codecs/tier2-msgpack-codec.js.map +0 -0
  39. package/dist/core/crypto-provider.d.ts +0 -0
  40. package/dist/core/crypto-provider.d.ts.map +0 -0
  41. package/dist/core/crypto-provider.js +0 -0
  42. package/dist/core/crypto-provider.js.map +0 -0
  43. package/dist/core/exceptions.d.ts +0 -0
  44. package/dist/core/exceptions.d.ts.map +0 -0
  45. package/dist/core/exceptions.js +0 -0
  46. package/dist/core/exceptions.js.map +0 -0
  47. package/dist/core/frame-header.d.ts +1 -0
  48. package/dist/core/frame-header.d.ts.map +1 -1
  49. package/dist/core/frame-header.js +1 -0
  50. package/dist/core/frame-header.js.map +1 -1
  51. package/dist/core/frame-registry.d.ts +0 -0
  52. package/dist/core/frame-registry.d.ts.map +1 -1
  53. package/dist/core/frame-registry.js +1 -0
  54. package/dist/core/frame-registry.js.map +1 -1
  55. package/dist/core/frames.d.ts +3 -0
  56. package/dist/core/frames.d.ts.map +1 -1
  57. package/dist/core/frames.js +3 -0
  58. package/dist/core/frames.js.map +1 -1
  59. package/dist/core/index.d.ts +6 -4
  60. package/dist/core/index.d.ts.map +1 -1
  61. package/dist/core/index.js +17 -5
  62. package/dist/core/index.js.map +1 -1
  63. package/dist/core/registry.d.ts +0 -0
  64. package/dist/core/registry.d.ts.map +0 -0
  65. package/dist/core/registry.js +0 -0
  66. package/dist/core/registry.js.map +0 -0
  67. package/dist/core/status-codes.d.ts +20 -0
  68. package/dist/core/status-codes.d.ts.map +1 -1
  69. package/dist/core/status-codes.js +51 -0
  70. package/dist/core/status-codes.js.map +1 -1
  71. package/dist/index.d.ts +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +1 -1
  74. package/dist/index.js.map +1 -1
  75. package/dist/ncp/frames/anchor-frame.d.ts +0 -0
  76. package/dist/ncp/frames/anchor-frame.d.ts.map +0 -0
  77. package/dist/ncp/frames/anchor-frame.js +0 -0
  78. package/dist/ncp/frames/anchor-frame.js.map +0 -0
  79. package/dist/ncp/frames/caps-frame.d.ts +0 -0
  80. package/dist/ncp/frames/caps-frame.d.ts.map +0 -0
  81. package/dist/ncp/frames/caps-frame.js +0 -0
  82. package/dist/ncp/frames/caps-frame.js.map +0 -0
  83. package/dist/ncp/frames/diff-frame.d.ts +0 -0
  84. package/dist/ncp/frames/diff-frame.d.ts.map +0 -0
  85. package/dist/ncp/frames/diff-frame.js +0 -0
  86. package/dist/ncp/frames/diff-frame.js.map +0 -0
  87. package/dist/ncp/frames/error-frame.d.ts +0 -0
  88. package/dist/ncp/frames/error-frame.d.ts.map +0 -0
  89. package/dist/ncp/frames/error-frame.js +0 -0
  90. package/dist/ncp/frames/error-frame.js.map +0 -0
  91. package/dist/ncp/frames/hello-frame.d.ts +0 -0
  92. package/dist/ncp/frames/hello-frame.d.ts.map +0 -0
  93. package/dist/ncp/frames/hello-frame.js +0 -0
  94. package/dist/ncp/frames/hello-frame.js.map +0 -0
  95. package/dist/ncp/frames/stream-frame.d.ts +0 -0
  96. package/dist/ncp/frames/stream-frame.d.ts.map +0 -0
  97. package/dist/ncp/frames/stream-frame.js +0 -0
  98. package/dist/ncp/frames/stream-frame.js.map +0 -0
  99. package/dist/ncp/frames.d.ts +25 -0
  100. package/dist/ncp/frames.d.ts.map +1 -1
  101. package/dist/ncp/frames.js +61 -0
  102. package/dist/ncp/frames.js.map +1 -1
  103. package/dist/ncp/handshake.d.ts +0 -0
  104. package/dist/ncp/handshake.d.ts.map +0 -0
  105. package/dist/ncp/handshake.js +0 -0
  106. package/dist/ncp/handshake.js.map +0 -0
  107. package/dist/ncp/index.d.ts +1 -0
  108. package/dist/ncp/index.d.ts.map +1 -1
  109. package/dist/ncp/index.js +1 -0
  110. package/dist/ncp/index.js.map +1 -1
  111. package/dist/ncp/ncp-error-codes.d.ts +5 -0
  112. package/dist/ncp/ncp-error-codes.d.ts.map +1 -1
  113. package/dist/ncp/ncp-error-codes.js +27 -0
  114. package/dist/ncp/ncp-error-codes.js.map +1 -1
  115. package/dist/ncp/ncp-patch-format.d.ts +0 -0
  116. package/dist/ncp/ncp-patch-format.d.ts.map +0 -0
  117. package/dist/ncp/ncp-patch-format.js +0 -0
  118. package/dist/ncp/ncp-patch-format.js.map +0 -0
  119. package/dist/ncp/preamble.d.ts +47 -0
  120. package/dist/ncp/preamble.d.ts.map +1 -0
  121. package/dist/ncp/preamble.js +74 -0
  122. package/dist/ncp/preamble.js.map +1 -0
  123. package/dist/ncp/registry.d.ts +0 -0
  124. package/dist/ncp/registry.d.ts.map +1 -1
  125. package/dist/ncp/registry.js +2 -1
  126. package/dist/ncp/registry.js.map +1 -1
  127. package/dist/ncp/stream-manager.d.ts +0 -0
  128. package/dist/ncp/stream-manager.d.ts.map +0 -0
  129. package/dist/ncp/stream-manager.js +0 -0
  130. package/dist/ncp/stream-manager.js.map +0 -0
  131. package/dist/ndp/dns-txt.d.ts +35 -0
  132. package/dist/ndp/dns-txt.d.ts.map +1 -0
  133. package/dist/ndp/dns-txt.js +67 -0
  134. package/dist/ndp/dns-txt.js.map +1 -0
  135. package/dist/ndp/frames.d.ts +34 -9
  136. package/dist/ndp/frames.d.ts.map +1 -1
  137. package/dist/ndp/frames.js +54 -15
  138. package/dist/ndp/frames.js.map +1 -1
  139. package/dist/ndp/index.d.ts +3 -0
  140. package/dist/ndp/index.d.ts.map +1 -1
  141. package/dist/ndp/index.js +3 -0
  142. package/dist/ndp/index.js.map +1 -1
  143. package/dist/ndp/ndp-error-codes.d.ts +25 -0
  144. package/dist/ndp/ndp-error-codes.d.ts.map +1 -0
  145. package/dist/ndp/ndp-error-codes.js +48 -0
  146. package/dist/ndp/ndp-error-codes.js.map +1 -0
  147. package/dist/ndp/ndp-registry.d.ts +2 -0
  148. package/dist/ndp/ndp-registry.d.ts.map +1 -1
  149. package/dist/ndp/ndp-registry.js +25 -0
  150. package/dist/ndp/ndp-registry.js.map +1 -1
  151. package/dist/ndp/registry.d.ts +0 -0
  152. package/dist/ndp/registry.d.ts.map +0 -0
  153. package/dist/ndp/registry.js +0 -0
  154. package/dist/ndp/registry.js.map +0 -0
  155. package/dist/ndp/security.d.ts +8 -0
  156. package/dist/ndp/security.d.ts.map +1 -0
  157. package/dist/ndp/security.js +9 -0
  158. package/dist/ndp/security.js.map +1 -0
  159. package/dist/ndp/validator.d.ts +0 -0
  160. package/dist/ndp/validator.d.ts.map +0 -0
  161. package/dist/ndp/validator.js +0 -0
  162. package/dist/ndp/validator.js.map +0 -0
  163. package/dist/nip/acme/client.d.ts +31 -0
  164. package/dist/nip/acme/client.d.ts.map +1 -0
  165. package/dist/nip/acme/client.js +136 -0
  166. package/dist/nip/acme/client.js.map +1 -0
  167. package/dist/nip/acme/index.d.ts +6 -0
  168. package/dist/nip/acme/index.d.ts.map +1 -0
  169. package/dist/nip/acme/index.js +8 -0
  170. package/dist/nip/acme/index.js.map +1 -0
  171. package/dist/nip/acme/jws.d.ts +31 -0
  172. package/dist/nip/acme/jws.d.ts.map +1 -0
  173. package/dist/nip/acme/jws.js +76 -0
  174. package/dist/nip/acme/jws.js.map +1 -0
  175. package/dist/nip/acme/messages.d.ts +71 -0
  176. package/dist/nip/acme/messages.d.ts.map +1 -0
  177. package/dist/nip/acme/messages.js +4 -0
  178. package/dist/nip/acme/messages.js.map +1 -0
  179. package/dist/nip/acme/server.d.ts +41 -0
  180. package/dist/nip/acme/server.d.ts.map +1 -0
  181. package/dist/nip/acme/server.js +458 -0
  182. package/dist/nip/acme/server.js.map +1 -0
  183. package/dist/nip/acme/wire.d.ts +19 -0
  184. package/dist/nip/acme/wire.d.ts.map +1 -0
  185. package/dist/nip/acme/wire.js +21 -0
  186. package/dist/nip/acme/wire.js.map +1 -0
  187. package/dist/nip/assurance-level.d.ts +19 -0
  188. package/dist/nip/assurance-level.d.ts.map +1 -0
  189. package/dist/nip/assurance-level.js +38 -0
  190. package/dist/nip/assurance-level.js.map +1 -0
  191. package/dist/nip/cert-format.d.ts +5 -0
  192. package/dist/nip/cert-format.d.ts.map +1 -0
  193. package/dist/nip/cert-format.js +6 -0
  194. package/dist/nip/cert-format.js.map +1 -0
  195. package/dist/nip/error-codes.d.ts +44 -0
  196. package/dist/nip/error-codes.d.ts.map +1 -0
  197. package/dist/nip/error-codes.js +97 -0
  198. package/dist/nip/error-codes.js.map +1 -0
  199. package/dist/nip/frames.d.ts +19 -1
  200. package/dist/nip/frames.d.ts.map +1 -1
  201. package/dist/nip/frames.js +39 -4
  202. package/dist/nip/frames.js.map +1 -1
  203. package/dist/nip/identity.d.ts +0 -0
  204. package/dist/nip/identity.d.ts.map +0 -0
  205. package/dist/nip/identity.js +0 -0
  206. package/dist/nip/identity.js.map +0 -0
  207. package/dist/nip/index.d.ts +7 -0
  208. package/dist/nip/index.d.ts.map +1 -1
  209. package/dist/nip/index.js +9 -0
  210. package/dist/nip/index.js.map +1 -1
  211. package/dist/nip/registry.d.ts +0 -0
  212. package/dist/nip/registry.d.ts.map +0 -0
  213. package/dist/nip/registry.js +0 -0
  214. package/dist/nip/registry.js.map +0 -0
  215. package/dist/nip/reputation-client.d.ts +116 -0
  216. package/dist/nip/reputation-client.d.ts.map +1 -0
  217. package/dist/nip/reputation-client.js +261 -0
  218. package/dist/nip/reputation-client.js.map +1 -0
  219. package/dist/nip/verifier.d.ts +23 -0
  220. package/dist/nip/verifier.d.ts.map +1 -0
  221. package/dist/nip/verifier.js +90 -0
  222. package/dist/nip/verifier.js.map +1 -0
  223. package/dist/nip/x509/builder.d.ts +35 -0
  224. package/dist/nip/x509/builder.d.ts.map +1 -0
  225. package/dist/nip/x509/builder.js +59 -0
  226. package/dist/nip/x509/builder.js.map +1 -0
  227. package/dist/nip/x509/index.d.ts +4 -0
  228. package/dist/nip/x509/index.d.ts.map +1 -0
  229. package/dist/nip/x509/index.js +6 -0
  230. package/dist/nip/x509/index.js.map +1 -0
  231. package/dist/nip/x509/oids.d.ts +16 -0
  232. package/dist/nip/x509/oids.d.ts.map +1 -0
  233. package/dist/nip/x509/oids.js +22 -0
  234. package/dist/nip/x509/oids.js.map +1 -0
  235. package/dist/nip/x509/verifier.d.ts +26 -0
  236. package/dist/nip/x509/verifier.d.ts.map +1 -0
  237. package/dist/nip/x509/verifier.js +171 -0
  238. package/dist/nip/x509/verifier.js.map +1 -0
  239. package/dist/nop/client.d.ts +0 -0
  240. package/dist/nop/client.d.ts.map +0 -0
  241. package/dist/nop/client.js +0 -0
  242. package/dist/nop/client.js.map +1 -1
  243. package/dist/nop/dag-validator.d.ts +15 -0
  244. package/dist/nop/dag-validator.d.ts.map +1 -0
  245. package/dist/nop/dag-validator.js +91 -0
  246. package/dist/nop/dag-validator.js.map +1 -0
  247. package/dist/nop/frames.d.ts +8 -3
  248. package/dist/nop/frames.d.ts.map +1 -1
  249. package/dist/nop/frames.js +21 -6
  250. package/dist/nop/frames.js.map +1 -1
  251. package/dist/nop/index.d.ts +3 -0
  252. package/dist/nop/index.d.ts.map +1 -1
  253. package/dist/nop/index.js +3 -0
  254. package/dist/nop/index.js.map +1 -1
  255. package/dist/nop/models.d.ts +13 -2
  256. package/dist/nop/models.d.ts.map +1 -1
  257. package/dist/nop/models.js +9 -0
  258. package/dist/nop/models.js.map +1 -1
  259. package/dist/nop/nop-error-codes.d.ts +31 -0
  260. package/dist/nop/nop-error-codes.d.ts.map +1 -0
  261. package/dist/nop/nop-error-codes.js +61 -0
  262. package/dist/nop/nop-error-codes.js.map +1 -0
  263. package/dist/nop/nop-types.d.ts +0 -0
  264. package/dist/nop/nop-types.d.ts.map +0 -0
  265. package/dist/nop/nop-types.js +0 -0
  266. package/dist/nop/nop-types.js.map +0 -0
  267. package/dist/nop/orchestrator.d.ts +66 -0
  268. package/dist/nop/orchestrator.d.ts.map +1 -0
  269. package/dist/nop/orchestrator.js +229 -0
  270. package/dist/nop/orchestrator.js.map +1 -0
  271. package/dist/nop/registry.d.ts +0 -0
  272. package/dist/nop/registry.d.ts.map +0 -0
  273. package/dist/nop/registry.js +0 -0
  274. package/dist/nop/registry.js.map +0 -0
  275. package/dist/nwp/anchor-client.d.ts +109 -0
  276. package/dist/nwp/anchor-client.d.ts.map +1 -0
  277. package/dist/nwp/anchor-client.js +279 -0
  278. package/dist/nwp/anchor-client.js.map +1 -0
  279. package/dist/nwp/anchor-server.d.ts +127 -0
  280. package/dist/nwp/anchor-server.d.ts.map +1 -0
  281. package/dist/nwp/anchor-server.js +649 -0
  282. package/dist/nwp/anchor-server.js.map +1 -0
  283. package/dist/nwp/bridge.d.ts +24 -0
  284. package/dist/nwp/bridge.d.ts.map +1 -0
  285. package/dist/nwp/bridge.js +26 -0
  286. package/dist/nwp/bridge.js.map +1 -0
  287. package/dist/nwp/cgn.d.ts +19 -0
  288. package/dist/nwp/cgn.d.ts.map +1 -0
  289. package/dist/nwp/cgn.js +29 -0
  290. package/dist/nwp/cgn.js.map +1 -0
  291. package/dist/nwp/client.d.ts +10 -3
  292. package/dist/nwp/client.d.ts.map +1 -1
  293. package/dist/nwp/client.js +58 -7
  294. package/dist/nwp/client.js.map +1 -1
  295. package/dist/nwp/frames.d.ts +56 -2
  296. package/dist/nwp/frames.d.ts.map +1 -1
  297. package/dist/nwp/frames.js +86 -4
  298. package/dist/nwp/frames.js.map +1 -1
  299. package/dist/nwp/http-headers.d.ts +24 -0
  300. package/dist/nwp/http-headers.d.ts.map +1 -0
  301. package/dist/nwp/http-headers.js +29 -0
  302. package/dist/nwp/http-headers.js.map +1 -0
  303. package/dist/nwp/index.d.ts +9 -0
  304. package/dist/nwp/index.d.ts.map +1 -1
  305. package/dist/nwp/index.js +9 -0
  306. package/dist/nwp/index.js.map +1 -1
  307. package/dist/nwp/manifest.d.ts +75 -0
  308. package/dist/nwp/manifest.d.ts.map +1 -0
  309. package/dist/nwp/manifest.js +5 -0
  310. package/dist/nwp/manifest.js.map +1 -0
  311. package/dist/nwp/memory-node-server.d.ts +70 -0
  312. package/dist/nwp/memory-node-server.d.ts.map +1 -0
  313. package/dist/nwp/memory-node-server.js +315 -0
  314. package/dist/nwp/memory-node-server.js.map +1 -0
  315. package/dist/nwp/nwp-error-codes.d.ts +48 -0
  316. package/dist/nwp/nwp-error-codes.d.ts.map +1 -0
  317. package/dist/nwp/nwp-error-codes.js +108 -0
  318. package/dist/nwp/nwp-error-codes.js.map +1 -0
  319. package/dist/nwp/registry.d.ts +0 -0
  320. package/dist/nwp/registry.d.ts.map +0 -0
  321. package/dist/nwp/registry.js +0 -0
  322. package/dist/nwp/registry.js.map +0 -0
  323. package/dist/nwp/reputation.d.ts +37 -0
  324. package/dist/nwp/reputation.d.ts.map +1 -0
  325. package/dist/nwp/reputation.js +118 -0
  326. package/dist/nwp/reputation.js.map +1 -0
  327. package/dist/setup.d.ts +0 -0
  328. package/dist/setup.d.ts.map +0 -0
  329. package/dist/setup.js +0 -0
  330. package/dist/setup.js.map +0 -0
  331. package/doc/nps-sdk.core.cn.md +321 -0
  332. package/doc/nps-sdk.core.md +326 -0
  333. package/doc/nps-sdk.ncp.cn.md +270 -0
  334. package/doc/nps-sdk.ncp.md +276 -0
  335. package/doc/nps-sdk.ndp.cn.md +267 -0
  336. package/doc/nps-sdk.ndp.md +273 -0
  337. package/doc/nps-sdk.nip.cn.md +265 -0
  338. package/doc/nps-sdk.nip.md +272 -0
  339. package/doc/nps-sdk.nop.cn.md +329 -0
  340. package/doc/nps-sdk.nop.md +332 -0
  341. package/doc/nps-sdk.nwp.cn.md +288 -0
  342. package/doc/nps-sdk.nwp.md +295 -0
  343. package/doc/overview.cn.md +149 -0
  344. package/doc/overview.md +153 -0
  345. package/package.json +33 -4
  346. package/CONTRIBUTING.md +0 -33
  347. package/dist/codec-CmHeovTV.d.cts +0 -120
  348. package/dist/codec-CmHeovTV.d.ts +0 -120
  349. package/dist/core/index.cjs +0 -371
  350. package/dist/core/index.cjs.map +0 -1
  351. package/dist/core/index.d.cts +0 -41
  352. package/dist/frames-B3qLdl_g.d.cts +0 -77
  353. package/dist/frames-Ff7-ZPUl.d.ts +0 -77
  354. package/dist/index.cjs +0 -1556
  355. package/dist/index.cjs.map +0 -1
  356. package/dist/index.d.cts +0 -21
  357. package/dist/ncp/index.cjs +0 -188
  358. package/dist/ncp/index.cjs.map +0 -1
  359. package/dist/ncp/index.d.cts +0 -6
  360. package/dist/ndp/index.cjs +0 -252
  361. package/dist/ndp/index.cjs.map +0 -1
  362. package/dist/ndp/index.d.cts +0 -86
  363. package/dist/nip/index.cjs +0 -214
  364. package/dist/nip/index.cjs.map +0 -1
  365. package/dist/nip/index.d.cts +0 -65
  366. package/dist/nop/index.cjs +0 -762
  367. package/dist/nop/index.cjs.map +0 -1
  368. package/dist/nop/index.d.cts +0 -155
  369. package/dist/nwp/index.cjs +0 -658
  370. package/dist/nwp/index.cjs.map +0 -1
  371. package/dist/nwp/index.d.cts +0 -65
  372. package/nip-ca-server/Dockerfile +0 -27
  373. package/nip-ca-server/README.md +0 -45
  374. package/nip-ca-server/db/001_init.sql +0 -25
  375. package/nip-ca-server/docker-compose.yml +0 -29
  376. package/nip-ca-server/package.json +0 -23
  377. package/nip-ca-server/src/ca.ts +0 -155
  378. package/nip-ca-server/src/db.ts +0 -104
  379. package/nip-ca-server/src/index.ts +0 -157
  380. package/nip-ca-server/tsconfig.json +0 -13
  381. package/src/core/anchor-cache.ts +0 -129
  382. package/src/core/cache.ts +0 -93
  383. package/src/core/canonical-json.ts +0 -50
  384. package/src/core/codec.ts +0 -158
  385. package/src/core/codecs/index.ts +0 -5
  386. package/src/core/codecs/ncp-codec.ts +0 -170
  387. package/src/core/codecs/tier1-json-codec.ts +0 -33
  388. package/src/core/codecs/tier2-msgpack-codec.ts +0 -30
  389. package/src/core/crypto-provider.ts +0 -47
  390. package/src/core/exceptions.ts +0 -57
  391. package/src/core/frame-header.ts +0 -282
  392. package/src/core/frame-registry.ts +0 -91
  393. package/src/core/frames.ts +0 -183
  394. package/src/core/index.ts +0 -10
  395. package/src/core/registry.ts +0 -28
  396. package/src/core/status-codes.ts +0 -46
  397. package/src/index.ts +0 -10
  398. package/src/ncp/frames/anchor-frame.ts +0 -87
  399. package/src/ncp/frames/caps-frame.ts +0 -59
  400. package/src/ncp/frames/diff-frame.ts +0 -69
  401. package/src/ncp/frames/error-frame.ts +0 -26
  402. package/src/ncp/frames/hello-frame.ts +0 -50
  403. package/src/ncp/frames/stream-frame.ts +0 -35
  404. package/src/ncp/frames.ts +0 -199
  405. package/src/ncp/handshake.ts +0 -95
  406. package/src/ncp/index.ts +0 -12
  407. package/src/ncp/ncp-error-codes.ts +0 -34
  408. package/src/ncp/ncp-patch-format.ts +0 -16
  409. package/src/ncp/registry.ts +0 -14
  410. package/src/ncp/stream-manager.ts +0 -212
  411. package/src/ndp/frames.ts +0 -124
  412. package/src/ndp/index.ts +0 -7
  413. package/src/ndp/ndp-registry.ts +0 -82
  414. package/src/ndp/registry.ts +0 -12
  415. package/src/ndp/validator.ts +0 -64
  416. package/src/nip/frames.ts +0 -106
  417. package/src/nip/identity.ts +0 -113
  418. package/src/nip/index.ts +0 -6
  419. package/src/nip/registry.ts +0 -12
  420. package/src/nop/client.ts +0 -103
  421. package/src/nop/frames.ts +0 -181
  422. package/src/nop/index.ts +0 -7
  423. package/src/nop/models.ts +0 -79
  424. package/src/nop/nop-types.ts +0 -208
  425. package/src/nop/registry.ts +0 -13
  426. package/src/nwp/client.ts +0 -114
  427. package/src/nwp/frames.ts +0 -116
  428. package/src/nwp/index.ts +0 -6
  429. package/src/nwp/registry.ts +0 -11
  430. package/src/setup.ts +0 -32
  431. package/tests/core/anchor-cache.test.ts +0 -242
  432. package/tests/core/codec.test.ts +0 -205
  433. package/tests/core/frame-registry.test.ts +0 -46
  434. package/tests/core.test.ts +0 -327
  435. package/tests/ncp/diff-binary-bitset.test.ts +0 -107
  436. package/tests/ncp/e2e-enc-reject.test.ts +0 -93
  437. package/tests/ncp/err-error-frame.test.ts +0 -152
  438. package/tests/ncp/frames.test.ts +0 -359
  439. package/tests/ncp/framing.test.ts +0 -233
  440. package/tests/ncp/hello-frame.test.ts +0 -122
  441. package/tests/ncp/inline-anchor.test.ts +0 -88
  442. package/tests/ncp/security.test.ts +0 -184
  443. package/tests/ncp/stream-window.test.ts +0 -167
  444. package/tests/ncp/stream.test.ts +0 -242
  445. package/tests/ncp/version-negotiation.test.ts +0 -123
  446. package/tests/ndp.test.ts +0 -271
  447. package/tests/nip.test.ts +0 -184
  448. package/tests/nop.test.ts +0 -344
  449. package/tests/nwp.test.ts +0 -237
  450. package/tsconfig.json +0 -20
  451. package/tsup.config.ts +0 -20
  452. package/vitest.config.ts +0 -10
package/dist/nop/index.js CHANGED
@@ -4,4 +4,7 @@ export * from "./models.js";
4
4
  export * from "./frames.js";
5
5
  export * from "./registry.js";
6
6
  export * from "./client.js";
7
+ export * from "./nop-error-codes.js";
8
+ export * from "./dag-validator.js";
9
+ export * from "./orchestrator.js";
7
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nop/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nop/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -6,7 +6,9 @@ export declare enum TaskState {
6
6
  COMPLETED = "completed",
7
7
  FAILED = "failed",
8
8
  CANCELLED = "cancelled",
9
- SKIPPED = "skipped"
9
+ SKIPPED = "skipped",
10
+ COMPENSATING = "compensating",
11
+ COMPENSATED = "compensated"
10
12
  }
11
13
  export declare enum TaskPriority {
12
14
  LOW = "low",
@@ -22,7 +24,9 @@ export declare enum AggregateStrategy {
22
24
  MERGE = "merge",
23
25
  FIRST = "first",
24
26
  FASTEST_K = "fastest_k",
25
- ALL = "all"
27
+ ALL = "all",
28
+ WEIGHTED_FIRST_K = "weighted_first_k",
29
+ MERGE_ALL = "merge_all"
26
30
  }
27
31
  export interface RetryPolicy {
28
32
  maxRetries: number;
@@ -36,6 +40,11 @@ export interface TaskContext {
36
40
  requesterNid?: string;
37
41
  traceId?: string;
38
42
  }
43
+ export declare const CompensationPolicy: {
44
+ readonly NONE: "none";
45
+ readonly ON_FAILURE: "on_failure";
46
+ readonly ALWAYS: "always";
47
+ };
39
48
  export interface DagNode {
40
49
  id: string;
41
50
  action: string;
@@ -46,6 +55,8 @@ export interface DagNode {
46
55
  retryPolicy?: RetryPolicy;
47
56
  condition?: string;
48
57
  minRequired?: number;
58
+ compensate_action?: string;
59
+ compensate_params_mapping?: Record<string, unknown>;
49
60
  }
50
61
  export interface DagEdge {
51
62
  from: string;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/nop/models.ts"],"names":[],"mappings":"AAGA,oBAAY,SAAS;IACnB,OAAO,YAAkB;IACzB,SAAS,cAAkB;IAC3B,OAAO,YAAkB;IACzB,YAAY,iBAAkB;IAC9B,SAAS,cAAkB;IAC3B,MAAM,WAAkB;IACxB,SAAS,cAAkB;IAC3B,OAAO,YAAkB;CAC1B;AAED,oBAAY,YAAY;IACtB,GAAG,QAAW;IACd,MAAM,WAAW;IACjB,IAAI,SAAW;CAChB;AAED,oBAAY,eAAe;IACzB,KAAK,UAAgB;IACrB,MAAM,WAAgB;IACtB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,iBAAiB;IAC3B,KAAK,UAAe;IACpB,KAAK,UAAe;IACpB,SAAS,cAAe;IACxB,GAAG,QAAe;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAI,MAAM,CAAC;IACrB,OAAO,EAAO,eAAe,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,MAAM,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAU3E;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAK,MAAM,CAAC;IACvB,YAAY,CAAC,EAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAQ,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAc,MAAM,CAAC;IACvB,MAAM,EAAU,MAAM,CAAC;IACvB,KAAK,EAAW,MAAM,CAAC;IACvB,SAAS,CAAC,EAAM,SAAS,MAAM,EAAE,CAAC;IAClC,YAAY,CAAC,EAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAM,MAAM,CAAC;IACvB,WAAW,CAAC,EAAI,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAM,MAAM,CAAC;IACvB,WAAW,CAAC,EAAI,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAI,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/nop/models.ts"],"names":[],"mappings":"AAGA,oBAAY,SAAS;IACnB,OAAO,YAAkB;IACzB,SAAS,cAAkB;IAC3B,OAAO,YAAkB;IACzB,YAAY,iBAAkB;IAC9B,SAAS,cAAkB;IAC3B,MAAM,WAAkB;IACxB,SAAS,cAAkB;IAC3B,OAAO,YAAkB;IACzB,YAAY,iBAAkB;IAC9B,WAAW,gBAAkB;CAC9B;AAED,oBAAY,YAAY;IACtB,GAAG,QAAW;IACd,MAAM,WAAW;IACjB,IAAI,SAAW;CAChB;AAED,oBAAY,eAAe;IACzB,KAAK,UAAgB;IACrB,MAAM,WAAgB;IACtB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,iBAAiB;IAC3B,KAAK,UAAqB;IAC1B,KAAK,UAAqB;IAC1B,SAAS,cAAqB;IAC9B,GAAG,QAAqB;IACxB,gBAAgB,qBAAqB;IACrC,SAAS,cAAqB;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAI,MAAM,CAAC;IACrB,OAAO,EAAO,eAAe,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,MAAM,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAU3E;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAK,MAAM,CAAC;IACvB,YAAY,CAAC,EAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAQ,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,MAAM,WAAW,OAAO;IACtB,EAAE,EAAc,MAAM,CAAC;IACvB,MAAM,EAAU,MAAM,CAAC;IACvB,KAAK,EAAW,MAAM,CAAC;IACvB,SAAS,CAAC,EAAM,SAAS,MAAM,EAAE,CAAC;IAClC,YAAY,CAAC,EAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAmB,MAAM,CAAC;IACpC,WAAW,CAAC,EAAiB,WAAW,CAAC;IACzC,SAAS,CAAC,EAAmB,MAAM,CAAC;IACpC,WAAW,CAAC,EAAiB,MAAM,CAAC;IACpC,iBAAiB,CAAC,EAAW,MAAM,CAAC;IACpC,yBAAyB,CAAC,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAI,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B"}
@@ -10,6 +10,8 @@ export var TaskState;
10
10
  TaskState["FAILED"] = "failed";
11
11
  TaskState["CANCELLED"] = "cancelled";
12
12
  TaskState["SKIPPED"] = "skipped";
13
+ TaskState["COMPENSATING"] = "compensating";
14
+ TaskState["COMPENSATED"] = "compensated";
13
15
  })(TaskState || (TaskState = {}));
14
16
  export var TaskPriority;
15
17
  (function (TaskPriority) {
@@ -29,6 +31,8 @@ export var AggregateStrategy;
29
31
  AggregateStrategy["FIRST"] = "first";
30
32
  AggregateStrategy["FASTEST_K"] = "fastest_k";
31
33
  AggregateStrategy["ALL"] = "all";
34
+ AggregateStrategy["WEIGHTED_FIRST_K"] = "weighted_first_k";
35
+ AggregateStrategy["MERGE_ALL"] = "merge_all";
32
36
  })(AggregateStrategy || (AggregateStrategy = {}));
33
37
  export function computeDelayMs(policy, attempt) {
34
38
  const base = policy.baseDelayMs ?? 1000;
@@ -47,4 +51,9 @@ export function computeDelayMs(policy, attempt) {
47
51
  }
48
52
  return Math.min(delay, cap);
49
53
  }
54
+ export const CompensationPolicy = {
55
+ NONE: 'none',
56
+ ON_FAILURE: 'on_failure',
57
+ ALWAYS: 'always',
58
+ };
50
59
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/nop/models.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,gCAAyB,CAAA;IACzB,oCAA2B,CAAA;IAC3B,gCAAyB,CAAA;IACzB,0CAA8B,CAAA;IAC9B,oCAA2B,CAAA;IAC3B,8BAAwB,CAAA;IACxB,oCAA2B,CAAA;IAC3B,gCAAyB,CAAA;AAC3B,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAED,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,2BAAc,CAAA;IACd,iCAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAqB,CAAA;IACrB,oCAAsB,CAAA;IACtB,8CAA2B,CAAA;AAC7B,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,oCAAoB,CAAA;IACpB,oCAAoB,CAAA;IACpB,4CAAwB,CAAA;IACxB,gCAAkB,CAAA;AACpB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AASD,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,OAAe;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IACxC,MAAM,GAAG,GAAI,MAAM,CAAC,UAAU,IAAK,MAAM,CAAC;IAC1C,IAAI,KAAa,CAAC;IAClB,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,eAAe,CAAC,KAAK;YAAQ,KAAK,GAAG,IAAI,CAAC;YAAC,MAAM;QACtD,KAAK,eAAe,CAAC,MAAM;YAAO,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAAC,MAAM;QACtE,KAAK,eAAe,CAAC,WAAW;YAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAAC,MAAM;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/nop/models.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,gCAAyB,CAAA;IACzB,oCAA2B,CAAA;IAC3B,gCAAyB,CAAA;IACzB,0CAA8B,CAAA;IAC9B,oCAA2B,CAAA;IAC3B,8BAAwB,CAAA;IACxB,oCAA2B,CAAA;IAC3B,gCAAyB,CAAA;IACzB,0CAA8B,CAAA;IAC9B,wCAA6B,CAAA;AAC/B,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AAED,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,2BAAc,CAAA;IACd,iCAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAqB,CAAA;IACrB,oCAAsB,CAAA;IACtB,8CAA2B,CAAA;AAC7B,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,oCAA0B,CAAA;IAC1B,oCAA0B,CAAA;IAC1B,4CAA8B,CAAA;IAC9B,gCAAwB,CAAA;IACxB,0DAAqC,CAAA;IACrC,4CAA8B,CAAA;AAChC,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AASD,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,OAAe;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IACxC,MAAM,GAAG,GAAI,MAAM,CAAC,UAAU,IAAK,MAAM,CAAC;IAC1C,IAAI,KAAa,CAAC;IAClB,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,eAAe,CAAC,KAAK;YAAQ,KAAK,GAAG,IAAI,CAAC;YAAC,MAAM;QACtD,KAAK,eAAe,CAAC,MAAM;YAAO,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAAC,MAAM;QACtE,KAAK,eAAe,CAAC,WAAW;YAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAAC,MAAM;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAQD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAQ,MAAM;IAClB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAM,QAAQ;CACZ,CAAC"}
@@ -0,0 +1,31 @@
1
+ export declare const NOP_TASK_NOT_FOUND: "NOP-TASK-NOT-FOUND";
2
+ export declare const NOP_TASK_TIMEOUT: "NOP-TASK-TIMEOUT";
3
+ export declare const NOP_TASK_DAG_INVALID: "NOP-TASK-DAG-INVALID";
4
+ export declare const NOP_TASK_DAG_CYCLE: "NOP-TASK-DAG-CYCLE";
5
+ export declare const NOP_TASK_DAG_TOO_LARGE: "NOP-TASK-DAG-TOO-LARGE";
6
+ export declare const NOP_TASK_ALREADY_COMPLETED: "NOP-TASK-ALREADY-COMPLETED";
7
+ export declare const NOP_TASK_CANCELLED: "NOP-TASK-CANCELLED";
8
+ export declare const NOP_DELEGATE_SCOPE_VIOLATION: "NOP-DELEGATE-SCOPE-VIOLATION";
9
+ export declare const NOP_DELEGATE_REJECTED: "NOP-DELEGATE-REJECTED";
10
+ export declare const NOP_DELEGATE_CHAIN_TOO_DEEP: "NOP-DELEGATE-CHAIN-TOO-DEEP";
11
+ export declare const NOP_DELEGATE_TIMEOUT: "NOP-DELEGATE-TIMEOUT";
12
+ export declare const NOP_SYNC_TIMEOUT: "NOP-SYNC-TIMEOUT";
13
+ export declare const NOP_SYNC_DEPENDENCY_FAILED: "NOP-SYNC-DEPENDENCY-FAILED";
14
+ export declare const NOP_STREAM_SEQ_GAP: "NOP-STREAM-SEQ-GAP";
15
+ export declare const NOP_STREAM_NID_MISMATCH: "NOP-STREAM-NID-MISMATCH";
16
+ export declare const NOP_RESOURCE_INSUFFICIENT: "NOP-RESOURCE-INSUFFICIENT";
17
+ export declare const NOP_CONDITION_EVAL_ERROR: "NOP-CONDITION-EVAL-ERROR";
18
+ export declare const NOP_INPUT_MAPPING_ERROR: "NOP-INPUT-MAPPING-ERROR";
19
+ export declare const NOP_COMPENSATION_FAILED: "NOP-COMPENSATION-FAILED";
20
+ export declare const NOP_COMPENSATION_NOT_SUPPORTED: "NOP-COMPENSATION-NOT-SUPPORTED";
21
+ /** AlignStream NAK: sequence gap during alignment stream */
22
+ export declare const NOP_STREAM_NAK: "NOP-STREAM-NAK";
23
+ /** Callback HMAC header missing on webhook delivery */
24
+ export declare const NOP_CALLBACK_HMAC_MISSING: "NOP-CALLBACK-HMAC-MISSING";
25
+ /** Task result requested after result_ttl_seconds elapsed (v0.7) */
26
+ export declare const NOP_TASK_RESULT_EXPIRED: "NOP-TASK-RESULT-EXPIRED";
27
+ /** NAK retransmission requested for a frame no longer in sender's buffer (v0.7) */
28
+ export declare const NOP_STREAM_NAK_UNRESOLVABLE: "NOP-STREAM-NAK-UNRESOLVABLE";
29
+ /** Maps each NOP error code to its NPS status code. */
30
+ export declare const NOP_ERROR_TO_NPS_STATUS: Record<string, string>;
31
+ //# sourceMappingURL=nop-error-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nop-error-codes.d.ts","sourceRoot":"","sources":["../../src/nop/nop-error-codes.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB,EAAgB,oBAA6B,CAAC;AAC7E,eAAO,MAAM,gBAAgB,EAAkB,kBAA2B,CAAC;AAC3E,eAAO,MAAM,oBAAoB,EAAc,sBAA+B,CAAC;AAC/E,eAAO,MAAM,kBAAkB,EAAgB,oBAA6B,CAAC;AAC7E,eAAO,MAAM,sBAAsB,EAAY,wBAAiC,CAAC;AACjF,eAAO,MAAM,0BAA0B,EAAQ,4BAAqC,CAAC;AACrF,eAAO,MAAM,kBAAkB,EAAgB,oBAA6B,CAAC;AAC7E,eAAO,MAAM,4BAA4B,EAAM,8BAAuC,CAAC;AACvF,eAAO,MAAM,qBAAqB,EAAa,uBAAgC,CAAC;AAChF,eAAO,MAAM,2BAA2B,EAAO,6BAAsC,CAAC;AACtF,eAAO,MAAM,oBAAoB,EAAc,sBAA+B,CAAC;AAC/E,eAAO,MAAM,gBAAgB,EAAkB,kBAA2B,CAAC;AAC3E,eAAO,MAAM,0BAA0B,EAAQ,4BAAqC,CAAC;AACrF,eAAO,MAAM,kBAAkB,EAAgB,oBAA6B,CAAC;AAC7E,eAAO,MAAM,uBAAuB,EAAW,yBAAkC,CAAC;AAClF,eAAO,MAAM,yBAAyB,EAAS,2BAAoC,CAAC;AACpF,eAAO,MAAM,wBAAwB,EAAU,0BAAmC,CAAC;AACnF,eAAO,MAAM,uBAAuB,EAAW,yBAAkC,CAAC;AAClF,eAAO,MAAM,uBAAuB,EAAW,yBAAkC,CAAC;AAClF,eAAO,MAAM,8BAA8B,EAAI,gCAAyC,CAAC;AAGzF,4DAA4D;AAC5D,eAAO,MAAM,cAAc,EAAoB,gBAAyB,CAAC;AACzE,uDAAuD;AACvD,eAAO,MAAM,yBAAyB,EAAS,2BAAoC,CAAC;AACpF,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,EAAW,yBAAkC,CAAC;AAClF,mFAAmF;AACnF,eAAO,MAAM,2BAA2B,EAAO,6BAAsC,CAAC;AAEtF,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyB1D,CAAC"}
@@ -0,0 +1,61 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
3
+ //
4
+ // NOP Error Codes — all 20 protocol error codes per spec/error-codes.md
5
+ export const NOP_TASK_NOT_FOUND = "NOP-TASK-NOT-FOUND";
6
+ export const NOP_TASK_TIMEOUT = "NOP-TASK-TIMEOUT";
7
+ export const NOP_TASK_DAG_INVALID = "NOP-TASK-DAG-INVALID";
8
+ export const NOP_TASK_DAG_CYCLE = "NOP-TASK-DAG-CYCLE";
9
+ export const NOP_TASK_DAG_TOO_LARGE = "NOP-TASK-DAG-TOO-LARGE";
10
+ export const NOP_TASK_ALREADY_COMPLETED = "NOP-TASK-ALREADY-COMPLETED";
11
+ export const NOP_TASK_CANCELLED = "NOP-TASK-CANCELLED";
12
+ export const NOP_DELEGATE_SCOPE_VIOLATION = "NOP-DELEGATE-SCOPE-VIOLATION";
13
+ export const NOP_DELEGATE_REJECTED = "NOP-DELEGATE-REJECTED";
14
+ export const NOP_DELEGATE_CHAIN_TOO_DEEP = "NOP-DELEGATE-CHAIN-TOO-DEEP";
15
+ export const NOP_DELEGATE_TIMEOUT = "NOP-DELEGATE-TIMEOUT";
16
+ export const NOP_SYNC_TIMEOUT = "NOP-SYNC-TIMEOUT";
17
+ export const NOP_SYNC_DEPENDENCY_FAILED = "NOP-SYNC-DEPENDENCY-FAILED";
18
+ export const NOP_STREAM_SEQ_GAP = "NOP-STREAM-SEQ-GAP";
19
+ export const NOP_STREAM_NID_MISMATCH = "NOP-STREAM-NID-MISMATCH";
20
+ export const NOP_RESOURCE_INSUFFICIENT = "NOP-RESOURCE-INSUFFICIENT";
21
+ export const NOP_CONDITION_EVAL_ERROR = "NOP-CONDITION-EVAL-ERROR";
22
+ export const NOP_INPUT_MAPPING_ERROR = "NOP-INPUT-MAPPING-ERROR";
23
+ export const NOP_COMPENSATION_FAILED = "NOP-COMPENSATION-FAILED";
24
+ export const NOP_COMPENSATION_NOT_SUPPORTED = "NOP-COMPENSATION-NOT-SUPPORTED";
25
+ // ── Referenced in task description (extra codes) ──────────────────────────────
26
+ /** AlignStream NAK: sequence gap during alignment stream */
27
+ export const NOP_STREAM_NAK = "NOP-STREAM-NAK";
28
+ /** Callback HMAC header missing on webhook delivery */
29
+ export const NOP_CALLBACK_HMAC_MISSING = "NOP-CALLBACK-HMAC-MISSING";
30
+ /** Task result requested after result_ttl_seconds elapsed (v0.7) */
31
+ export const NOP_TASK_RESULT_EXPIRED = "NOP-TASK-RESULT-EXPIRED";
32
+ /** NAK retransmission requested for a frame no longer in sender's buffer (v0.7) */
33
+ export const NOP_STREAM_NAK_UNRESOLVABLE = "NOP-STREAM-NAK-UNRESOLVABLE";
34
+ /** Maps each NOP error code to its NPS status code. */
35
+ export const NOP_ERROR_TO_NPS_STATUS = {
36
+ "NOP-TASK-NOT-FOUND": "NPS-CLIENT-NOT-FOUND",
37
+ "NOP-TASK-TIMEOUT": "NPS-SERVER-TIMEOUT",
38
+ "NOP-TASK-DAG-INVALID": "NPS-CLIENT-BAD-FRAME",
39
+ "NOP-TASK-DAG-CYCLE": "NPS-CLIENT-BAD-FRAME",
40
+ "NOP-TASK-DAG-TOO-LARGE": "NPS-CLIENT-BAD-FRAME",
41
+ "NOP-TASK-ALREADY-COMPLETED": "NPS-CLIENT-CONFLICT",
42
+ "NOP-TASK-CANCELLED": "NPS-CLIENT-CONFLICT",
43
+ "NOP-DELEGATE-SCOPE-VIOLATION": "NPS-AUTH-FORBIDDEN",
44
+ "NOP-DELEGATE-REJECTED": "NPS-CLIENT-UNPROCESSABLE",
45
+ "NOP-DELEGATE-CHAIN-TOO-DEEP": "NPS-CLIENT-BAD-PARAM",
46
+ "NOP-DELEGATE-TIMEOUT": "NPS-SERVER-TIMEOUT",
47
+ "NOP-SYNC-TIMEOUT": "NPS-SERVER-TIMEOUT",
48
+ "NOP-SYNC-DEPENDENCY-FAILED": "NPS-CLIENT-UNPROCESSABLE",
49
+ "NOP-STREAM-SEQ-GAP": "NPS-STREAM-SEQ-GAP",
50
+ "NOP-STREAM-NID-MISMATCH": "NPS-AUTH-UNAUTHENTICATED",
51
+ "NOP-RESOURCE-INSUFFICIENT": "NPS-SERVER-UNAVAILABLE",
52
+ "NOP-CONDITION-EVAL-ERROR": "NPS-CLIENT-BAD-PARAM",
53
+ "NOP-INPUT-MAPPING-ERROR": "NPS-CLIENT-UNPROCESSABLE",
54
+ "NOP-COMPENSATION-FAILED": "NPS-CLIENT-UNPROCESSABLE",
55
+ "NOP-COMPENSATION-NOT-SUPPORTED": "NPS-CLIENT-UNPROCESSABLE",
56
+ "NOP-STREAM-NAK": "NPS-STREAM-SEQ-GAP",
57
+ "NOP-CALLBACK-HMAC-MISSING": "NPS-AUTH-UNAUTHENTICATED",
58
+ "NOP-TASK-RESULT-EXPIRED": "NPS-CLIENT-NOT-FOUND",
59
+ "NOP-STREAM-NAK-UNRESOLVABLE": "NPS-STREAM-SEQ-GAP",
60
+ };
61
+ //# sourceMappingURL=nop-error-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nop-error-codes.js","sourceRoot":"","sources":["../../src/nop/nop-error-codes.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AAExE,MAAM,CAAC,MAAM,kBAAkB,GAAgB,oBAA6B,CAAC;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAkB,kBAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAc,sBAA+B,CAAC;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAgB,oBAA6B,CAAC;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAY,wBAAiC,CAAC;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAQ,4BAAqC,CAAC;AACrF,MAAM,CAAC,MAAM,kBAAkB,GAAgB,oBAA6B,CAAC;AAC7E,MAAM,CAAC,MAAM,4BAA4B,GAAM,8BAAuC,CAAC;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAAa,uBAAgC,CAAC;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAO,6BAAsC,CAAC;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAc,sBAA+B,CAAC;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAkB,kBAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAQ,4BAAqC,CAAC;AACrF,MAAM,CAAC,MAAM,kBAAkB,GAAgB,oBAA6B,CAAC;AAC7E,MAAM,CAAC,MAAM,uBAAuB,GAAW,yBAAkC,CAAC;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAS,2BAAoC,CAAC;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAU,0BAAmC,CAAC;AACnF,MAAM,CAAC,MAAM,uBAAuB,GAAW,yBAAkC,CAAC;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAAW,yBAAkC,CAAC;AAClF,MAAM,CAAC,MAAM,8BAA8B,GAAI,gCAAyC,CAAC;AAEzF,iFAAiF;AACjF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAoB,gBAAyB,CAAC;AACzE,uDAAuD;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAS,2BAAoC,CAAC;AACpF,oEAAoE;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAW,yBAAkC,CAAC;AAClF,mFAAmF;AACnF,MAAM,CAAC,MAAM,2BAA2B,GAAO,6BAAsC,CAAC;AAEtF,uDAAuD;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,oBAAoB,EAAc,sBAAsB;IACxD,kBAAkB,EAAgB,oBAAoB;IACtD,sBAAsB,EAAY,sBAAsB;IACxD,oBAAoB,EAAc,sBAAsB;IACxD,wBAAwB,EAAU,sBAAsB;IACxD,4BAA4B,EAAM,qBAAqB;IACvD,oBAAoB,EAAc,qBAAqB;IACvD,8BAA8B,EAAI,oBAAoB;IACtD,uBAAuB,EAAW,0BAA0B;IAC5D,6BAA6B,EAAK,sBAAsB;IACxD,sBAAsB,EAAY,oBAAoB;IACtD,kBAAkB,EAAgB,oBAAoB;IACtD,4BAA4B,EAAM,0BAA0B;IAC5D,oBAAoB,EAAc,oBAAoB;IACtD,yBAAyB,EAAS,0BAA0B;IAC5D,2BAA2B,EAAO,wBAAwB;IAC1D,0BAA0B,EAAQ,sBAAsB;IACxD,yBAAyB,EAAS,0BAA0B;IAC5D,yBAAyB,EAAS,0BAA0B;IAC5D,gCAAgC,EAAE,0BAA0B;IAC5D,gBAAgB,EAAkB,oBAAoB;IACtD,2BAA2B,EAAO,0BAA0B;IAC5D,yBAAyB,EAAS,sBAAsB;IACxD,6BAA6B,EAAK,oBAAoB;CACvD,CAAC"}
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,66 @@
1
+ import type { DagNode } from "./models.js";
2
+ import { TaskState } from "./models.js";
3
+ import type { TaskFrame } from "./frames.js";
4
+ export interface NopTaskRecord {
5
+ taskId: string;
6
+ frame: TaskFrame;
7
+ state: TaskState;
8
+ startedAt: Date;
9
+ completedAt?: Date;
10
+ nodeResults: Map<string, NodeResult>;
11
+ error?: {
12
+ code: string;
13
+ message: string;
14
+ };
15
+ }
16
+ export interface NodeResult {
17
+ nodeId: string;
18
+ ok: boolean;
19
+ output?: unknown;
20
+ error?: {
21
+ code: string;
22
+ message: string;
23
+ };
24
+ skipped?: boolean;
25
+ }
26
+ export interface NopTaskResult {
27
+ taskId: string;
28
+ state: TaskState;
29
+ aggregatedResult?: unknown;
30
+ nodeResults: Record<string, NodeResult>;
31
+ error?: {
32
+ code: string;
33
+ message: string;
34
+ };
35
+ }
36
+ /** Dispatches a single DAG node to a remote Worker Agent. */
37
+ export interface INopWorkerDispatcher {
38
+ dispatch(nodeId: string, node: DagNode, params: unknown, deadlineMs: number): Promise<NodeResult>;
39
+ }
40
+ export declare class InMemoryNopTaskStore {
41
+ private readonly _tasks;
42
+ get(taskId: string): NopTaskRecord | undefined;
43
+ save(record: NopTaskRecord): void;
44
+ delete(taskId: string): void;
45
+ list(): readonly NopTaskRecord[];
46
+ }
47
+ export declare class NopOrchestrator {
48
+ private readonly dispatcher;
49
+ private readonly store;
50
+ private readonly opts;
51
+ constructor(dispatcher: INopWorkerDispatcher, store?: InMemoryNopTaskStore, opts?: {
52
+ defaultTimeoutMs?: number;
53
+ maxTimeoutMs?: number;
54
+ });
55
+ execute(task: TaskFrame, signal?: AbortSignal): Promise<NopTaskResult>;
56
+ private _kOfNSatisfied;
57
+ private _resolveInputs;
58
+ /** Minimal JSONPath evaluator: `$.nodeId.field` → results.get(nodeId).output.field */
59
+ private _jsonPath;
60
+ /** Minimal CEL condition evaluator: only handles `$.nodeId.field == "value"` patterns. */
61
+ private _evalCondition;
62
+ private _backoffDelay;
63
+ private _failure;
64
+ private _fromRecord;
65
+ }
66
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/nop/orchestrator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAO,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAe,aAAa,CAAC;AAItD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAO,MAAM,CAAC;IACpB,KAAK,EAAQ,SAAS,CAAC;IACvB,KAAK,EAAQ,SAAS,CAAC;IACvB,SAAS,EAAI,IAAI,CAAC;IAClB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,EAAO;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAI,MAAM,CAAC;IACjB,EAAE,EAAQ,OAAO,CAAC;IAClB,MAAM,CAAC,EAAG,OAAO,CAAC;IAClB,KAAK,CAAC,EAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAW,MAAM,CAAC;IACxB,KAAK,EAAY,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAM,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACnG;AAID,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAC9C,IAAI,CAAC,MAAM,EAAE,aAAa,GAAK,IAAI;IACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAU,IAAI;IACnC,IAAI,IAAK,SAAS,aAAa,EAAE;CAClC;AAID,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFJ,UAAU,EAAE,oBAAoB,EAChC,KAAK,GAAO,oBAAiD,EAC7D,IAAI,GAAE;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAM,MAAM,CAAC;KACtB;IAGF,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAsH5E,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,cAAc;IAkBtB,sFAAsF;IACtF,OAAO,CAAC,SAAS;IAYjB,0FAA0F;IAC1F,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,WAAW;CAepB"}
@@ -0,0 +1,229 @@
1
+ // Copyright 2026 INNO LOTUS PTY LTD
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ //
4
+ // NOP DAG Orchestrator — TypeScript port of NPS.NOP.NopOrchestrator (NPS-5 §3, §5).
5
+ // Dispatches DelegateFrames in topological order, handles retries, K-of-N,
6
+ // condition-based skipping, and result aggregation.
7
+ import { TaskState } from "./models.js";
8
+ import { validateDag, MAX_DELEGATE_DEPTH } from "./dag-validator.js";
9
+ // ── In-memory task store ──────────────────────────────────────────────────────
10
+ export class InMemoryNopTaskStore {
11
+ _tasks = new Map();
12
+ get(taskId) { return this._tasks.get(taskId); }
13
+ save(record) { this._tasks.set(record.taskId, record); }
14
+ delete(taskId) { this._tasks.delete(taskId); }
15
+ list() { return [...this._tasks.values()]; }
16
+ }
17
+ // ── Orchestrator ──────────────────────────────────────────────────────────────
18
+ export class NopOrchestrator {
19
+ dispatcher;
20
+ store;
21
+ opts;
22
+ constructor(dispatcher, store = new InMemoryNopTaskStore(), opts = {}) {
23
+ this.dispatcher = dispatcher;
24
+ this.store = store;
25
+ this.opts = opts;
26
+ }
27
+ async execute(task, signal) {
28
+ // 1. Delegation depth guard
29
+ if ((task.depth ?? 0) >= MAX_DELEGATE_DEPTH)
30
+ return this._failure(task.taskId, "NOP-DELEGATE-CHAIN-TOO-DEEP", `Delegation chain depth ${task.depth} exceeds maximum of ${MAX_DELEGATE_DEPTH}.`);
31
+ // 2. DAG validation
32
+ const validation = validateDag(task.dag);
33
+ if (!validation.valid)
34
+ return this._failure(task.taskId, validation.errorCode, validation.errorMessage);
35
+ // 3. Reject duplicate task IDs
36
+ if (this.store.get(task.taskId))
37
+ return this._failure(task.taskId, "NOP-TASK-ALREADY-COMPLETED", `Task '${task.taskId}' already exists.`);
38
+ // 4. Persist initial record
39
+ const record = {
40
+ taskId: task.taskId,
41
+ frame: task,
42
+ state: TaskState.PENDING,
43
+ startedAt: new Date(),
44
+ nodeResults: new Map(),
45
+ };
46
+ this.store.save(record);
47
+ // 5. Execute DAG in topological order
48
+ const order = validation.topologicalOrder;
49
+ const maxMs = Math.min(task.timeoutMs ?? this.opts.defaultTimeoutMs ?? 30_000, this.opts.maxTimeoutMs ?? 3_600_000);
50
+ const deadline = Date.now() + maxMs;
51
+ record.state = TaskState.RUNNING;
52
+ this.store.save(record);
53
+ for (const nodeId of order) {
54
+ if (signal?.aborted) {
55
+ record.state = TaskState.CANCELLED;
56
+ record.completedAt = new Date();
57
+ this.store.save(record);
58
+ return this._fromRecord(record);
59
+ }
60
+ if (Date.now() >= deadline) {
61
+ record.state = TaskState.FAILED;
62
+ record.error = { code: "NOP-TASK-TIMEOUT", message: "Task deadline exceeded." };
63
+ record.completedAt = new Date();
64
+ this.store.save(record);
65
+ return this._fromRecord(record);
66
+ }
67
+ const node = task.dag.nodes.find(n => n.id === nodeId);
68
+ // Condition-based skip
69
+ if (node.condition && !this._evalCondition(node.condition, record.nodeResults)) {
70
+ record.nodeResults.set(nodeId, { nodeId, ok: true, skipped: true });
71
+ this.store.save(record);
72
+ continue;
73
+ }
74
+ // K-of-N check
75
+ if (!this._kOfNSatisfied(node, record.nodeResults)) {
76
+ // Not enough successful predecessors — skip this node
77
+ record.nodeResults.set(nodeId, { nodeId, ok: false, skipped: true,
78
+ error: { code: "NOP-TASK-NODE-SKIPPED", message: "K-of-N prerequisite not met." } });
79
+ this.store.save(record);
80
+ continue;
81
+ }
82
+ // Resolve inputs from upstream outputs
83
+ const params = this._resolveInputs(node, record.nodeResults);
84
+ // Dispatch with retry
85
+ const nodeTimeoutMs = node.timeoutMs ?? maxMs;
86
+ const retryPolicy = node.retryPolicy ?? { maxRetries: 2, backoff: "exponential" };
87
+ const maxRetries = retryPolicy.maxRetries ?? 2;
88
+ let result;
89
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
90
+ if (attempt > 0) {
91
+ const delayMs = this._backoffDelay(retryPolicy, attempt - 1);
92
+ await new Promise(r => setTimeout(r, delayMs));
93
+ }
94
+ try {
95
+ result = await this.dispatcher.dispatch(nodeId, node, params, nodeTimeoutMs);
96
+ }
97
+ catch (err) {
98
+ result = {
99
+ nodeId,
100
+ ok: false,
101
+ error: { code: "NOP-TASK-NODE-FAILED", message: String(err) },
102
+ };
103
+ }
104
+ if (result.ok)
105
+ break;
106
+ }
107
+ record.nodeResults.set(nodeId, result);
108
+ this.store.save(record);
109
+ // If a non-skipped node failed, fail the whole task
110
+ if (!result.ok && !result.skipped) {
111
+ record.state = TaskState.FAILED;
112
+ record.error = result.error;
113
+ record.completedAt = new Date();
114
+ this.store.save(record);
115
+ return this._fromRecord(record);
116
+ }
117
+ }
118
+ // All nodes executed successfully
119
+ record.state = TaskState.COMPLETED;
120
+ record.completedAt = new Date();
121
+ this.store.save(record);
122
+ return this._fromRecord(record);
123
+ }
124
+ // ── Helpers ───────────────────────────────────────────────────────────────
125
+ _kOfNSatisfied(node, results) {
126
+ const deps = node.inputFrom ?? [];
127
+ if (deps.length === 0)
128
+ return true;
129
+ const minRequired = node.minRequired ?? 0;
130
+ if (minRequired === 0) {
131
+ // All must succeed (or be skipped)
132
+ return deps.every(dep => {
133
+ const r = results.get(dep);
134
+ return r && (r.ok || r.skipped);
135
+ });
136
+ }
137
+ const successCount = deps.filter(dep => {
138
+ const r = results.get(dep);
139
+ return r && r.ok && !r.skipped;
140
+ }).length;
141
+ return successCount >= minRequired;
142
+ }
143
+ _resolveInputs(node, results) {
144
+ if (!node.inputMapping || Object.keys(node.inputMapping).length === 0) {
145
+ // Pass through outputs of all direct predecessors
146
+ const upstream = node.inputFrom ?? [];
147
+ if (upstream.length === 0)
148
+ return undefined;
149
+ if (upstream.length === 1)
150
+ return results.get(upstream[0])?.output;
151
+ return Object.fromEntries(upstream.map(dep => [dep, results.get(dep)?.output]));
152
+ }
153
+ // inputMapping: { localParam: "$.upstreamId.field" }
154
+ const resolved = {};
155
+ for (const [local, path] of Object.entries(node.inputMapping)) {
156
+ resolved[local] = this._jsonPath(path, results);
157
+ }
158
+ return resolved;
159
+ }
160
+ /** Minimal JSONPath evaluator: `$.nodeId.field` → results.get(nodeId).output.field */
161
+ _jsonPath(path, results) {
162
+ const parts = path.replace(/^\$\./, "").split(".");
163
+ if (parts.length < 2)
164
+ return undefined;
165
+ const [nodeId, ...rest] = parts;
166
+ let val = results.get(nodeId)?.output;
167
+ for (const key of rest) {
168
+ if (val == null || typeof val !== "object")
169
+ return undefined;
170
+ val = val[key];
171
+ }
172
+ return val;
173
+ }
174
+ /** Minimal CEL condition evaluator: only handles `$.nodeId.field == "value"` patterns. */
175
+ _evalCondition(condition, results) {
176
+ // Best-effort: if we can't parse it, default to executing the node.
177
+ try {
178
+ const eqMatch = condition.match(/^\s*([\w.$]+)\s*==\s*"([^"]*)"\s*$/);
179
+ if (eqMatch) {
180
+ const val = this._jsonPath(eqMatch[1], results);
181
+ return String(val) === eqMatch[2];
182
+ }
183
+ const neMatch = condition.match(/^\s*([\w.$]+)\s*!=\s*"([^"]*)"\s*$/);
184
+ if (neMatch) {
185
+ const val = this._jsonPath(neMatch[1], results);
186
+ return String(val) !== neMatch[2];
187
+ }
188
+ }
189
+ catch { /* fall through */ }
190
+ return true;
191
+ }
192
+ _backoffDelay(policy, attempt) {
193
+ const base = policy.baseDelayMs ?? 1_000;
194
+ const cap = policy.maxDelayMs ?? 30_000;
195
+ let delay;
196
+ if (policy.backoff === "fixed")
197
+ delay = base;
198
+ else if (policy.backoff === "linear")
199
+ delay = base * (attempt + 1);
200
+ else
201
+ delay = base * Math.pow(2, attempt); // exponential
202
+ return Math.min(delay, cap);
203
+ }
204
+ _failure(taskId, code, message) {
205
+ return {
206
+ taskId,
207
+ state: TaskState.FAILED,
208
+ nodeResults: {},
209
+ error: { code, message },
210
+ };
211
+ }
212
+ _fromRecord(record) {
213
+ const nodeResults = {};
214
+ for (const [k, v] of record.nodeResults)
215
+ nodeResults[k] = v;
216
+ // Aggregate: collect all successful terminal outputs
217
+ const terminals = [...record.nodeResults.values()]
218
+ .filter(r => r.ok && !r.skipped && r.output !== undefined)
219
+ .map(r => r.output);
220
+ return {
221
+ taskId: record.taskId,
222
+ state: record.state,
223
+ aggregatedResult: terminals.length === 1 ? terminals[0] : terminals.length > 1 ? terminals : undefined,
224
+ nodeResults,
225
+ error: record.error,
226
+ };
227
+ }
228
+ }
229
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/nop/orchestrator.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes