@jinn-network/client 0.1.2 → 0.1.3-canary.262e5cda

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 (812) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/CONTRIBUTING.md +8 -2
  3. package/README.md +38 -14
  4. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +36 -0
  5. package/deployments/deployment-jinn-mvi-l1-sepolia.json +36 -0
  6. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +12 -0
  7. package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
  8. package/deployments/deployment-stolas-l2-baseSepolia-fast.json +1 -1
  9. package/dist/adapters/adapter.d.ts +2 -2
  10. package/dist/adapters/claim-registry/client.d.ts +9 -0
  11. package/dist/adapters/claim-registry/client.js +22 -2
  12. package/dist/adapters/claim-registry/client.js.map +1 -1
  13. package/dist/adapters/local/adapter.d.ts +2 -2
  14. package/dist/adapters/local/adapter.js +8 -8
  15. package/dist/adapters/local/adapter.js.map +1 -1
  16. package/dist/adapters/mech/adapter.d.ts +3 -4
  17. package/dist/adapters/mech/adapter.js +86 -50
  18. package/dist/adapters/mech/adapter.js.map +1 -1
  19. package/dist/adapters/mech/contracts.d.ts +6 -4
  20. package/dist/adapters/mech/contracts.js +118 -14
  21. package/dist/adapters/mech/contracts.js.map +1 -1
  22. package/dist/adapters/mech/ipfs.d.ts +61 -6
  23. package/dist/adapters/mech/ipfs.js +159 -26
  24. package/dist/adapters/mech/ipfs.js.map +1 -1
  25. package/dist/adapters/mech/safe-revert.d.ts +39 -0
  26. package/dist/adapters/mech/safe-revert.js +130 -0
  27. package/dist/adapters/mech/safe-revert.js.map +1 -0
  28. package/dist/adapters/mech/safe.js +47 -21
  29. package/dist/adapters/mech/safe.js.map +1 -1
  30. package/dist/adapters/mech/types.d.ts +8 -0
  31. package/dist/adapters/mech/types.js.map +1 -1
  32. package/dist/agent/agent-ws.d.ts +55 -0
  33. package/dist/agent/agent-ws.js +288 -0
  34. package/dist/agent/agent-ws.js.map +1 -0
  35. package/dist/agent/auto-mode-detect.d.ts +6 -0
  36. package/dist/agent/auto-mode-detect.js +44 -0
  37. package/dist/agent/auto-mode-detect.js.map +1 -0
  38. package/dist/agent/operator-claude.d.ts +22 -0
  39. package/dist/agent/operator-claude.js +130 -0
  40. package/dist/agent/operator-claude.js.map +1 -0
  41. package/dist/api/admin-endpoint.d.ts +12 -0
  42. package/dist/api/admin-endpoint.js +71 -0
  43. package/dist/api/admin-endpoint.js.map +1 -0
  44. package/dist/api/bootstrap-endpoint.d.ts +16 -0
  45. package/dist/api/bootstrap-endpoint.js +78 -0
  46. package/dist/api/bootstrap-endpoint.js.map +1 -0
  47. package/dist/api/events-endpoint.d.ts +9 -0
  48. package/dist/api/events-endpoint.js +46 -0
  49. package/dist/api/events-endpoint.js.map +1 -0
  50. package/dist/api/fleet-build.d.ts +1 -1
  51. package/dist/api/fleet-build.js +17 -8
  52. package/dist/api/fleet-build.js.map +1 -1
  53. package/dist/api/gather-status.js +5 -1
  54. package/dist/api/gather-status.js.map +1 -1
  55. package/dist/api/handshake.d.ts +17 -0
  56. package/dist/api/handshake.js +28 -0
  57. package/dist/api/handshake.js.map +1 -0
  58. package/dist/api/peers.js +20 -5
  59. package/dist/api/peers.js.map +1 -1
  60. package/dist/api/portfolio-v0-build.d.ts +6 -0
  61. package/dist/api/portfolio-v0-build.js +6 -1
  62. package/dist/api/portfolio-v0-build.js.map +1 -1
  63. package/dist/api/rewards-build.js +3 -8
  64. package/dist/api/rewards-build.js.map +1 -1
  65. package/dist/api/server.d.ts +54 -0
  66. package/dist/api/server.js +239 -13
  67. package/dist/api/server.js.map +1 -1
  68. package/dist/api/setup-endpoints.d.ts +34 -0
  69. package/dist/api/setup-endpoints.js +188 -0
  70. package/dist/api/setup-endpoints.js.map +1 -0
  71. package/dist/api/status-build.d.ts +9 -1
  72. package/dist/api/status-build.js +44 -9
  73. package/dist/api/status-build.js.map +1 -1
  74. package/dist/api/status-rollup-build.d.ts +46 -1
  75. package/dist/api/status-rollup-build.js +168 -5
  76. package/dist/api/status-rollup-build.js.map +1 -1
  77. package/dist/api/ui-token.d.ts +5 -0
  78. package/dist/api/ui-token.js +36 -0
  79. package/dist/api/ui-token.js.map +1 -0
  80. package/dist/build-info.d.ts +32 -0
  81. package/dist/build-info.js +69 -0
  82. package/dist/build-info.js.map +1 -0
  83. package/dist/build-info.json +6 -0
  84. package/dist/build-meta.json +1 -1
  85. package/dist/cli/command.d.ts +9 -0
  86. package/dist/cli/commands/balance.d.ts +7 -0
  87. package/dist/cli/commands/balance.js +38 -32
  88. package/dist/cli/commands/balance.js.map +1 -1
  89. package/dist/cli/commands/bootstrap.d.ts +13 -1
  90. package/dist/cli/commands/bootstrap.js +150 -132
  91. package/dist/cli/commands/bootstrap.js.map +1 -1
  92. package/dist/cli/commands/claim-rewards.js +14 -2
  93. package/dist/cli/commands/claim-rewards.js.map +1 -1
  94. package/dist/cli/commands/conformance.d.ts +12 -0
  95. package/dist/cli/commands/conformance.js +140 -0
  96. package/dist/cli/commands/conformance.js.map +1 -0
  97. package/dist/cli/commands/create.d.ts +36 -0
  98. package/dist/cli/commands/create.js +374 -0
  99. package/dist/cli/commands/create.js.map +1 -0
  100. package/dist/cli/commands/doctor.d.ts +34 -1
  101. package/dist/cli/commands/doctor.js +136 -121
  102. package/dist/cli/commands/doctor.js.map +1 -1
  103. package/dist/cli/commands/fleet-scale.d.ts +19 -1
  104. package/dist/cli/commands/fleet-scale.js +379 -361
  105. package/dist/cli/commands/fleet-scale.js.map +1 -1
  106. package/dist/cli/commands/fleet.d.ts +7 -0
  107. package/dist/cli/commands/fleet.js +39 -33
  108. package/dist/cli/commands/fleet.js.map +1 -1
  109. package/dist/cli/commands/fund-requirements.d.ts +14 -1
  110. package/dist/cli/commands/fund-requirements.js +183 -174
  111. package/dist/cli/commands/fund-requirements.js.map +1 -1
  112. package/dist/cli/commands/history.d.ts +10 -1
  113. package/dist/cli/commands/history.js +66 -57
  114. package/dist/cli/commands/history.js.map +1 -1
  115. package/dist/cli/commands/impls.d.ts +18 -0
  116. package/dist/cli/commands/impls.js +208 -0
  117. package/dist/cli/commands/impls.js.map +1 -0
  118. package/dist/cli/commands/init.js +4 -1
  119. package/dist/cli/commands/init.js.map +1 -1
  120. package/dist/cli/commands/intents.js +13 -9
  121. package/dist/cli/commands/intents.js.map +1 -1
  122. package/dist/cli/commands/logs.d.ts +6 -1
  123. package/dist/cli/commands/logs.js +77 -70
  124. package/dist/cli/commands/logs.js.map +1 -1
  125. package/dist/cli/commands/migrate-agent-id.d.ts +26 -0
  126. package/dist/cli/commands/migrate-agent-id.js +165 -0
  127. package/dist/cli/commands/migrate-agent-id.js.map +1 -0
  128. package/dist/cli/commands/plug-ins.d.ts +34 -0
  129. package/dist/cli/commands/plug-ins.js +282 -0
  130. package/dist/cli/commands/plug-ins.js.map +1 -0
  131. package/dist/cli/commands/plugin-install.d.ts +10 -0
  132. package/dist/cli/commands/plugin-install.js +226 -14
  133. package/dist/cli/commands/plugin-install.js.map +1 -1
  134. package/dist/cli/commands/rewards.d.ts +7 -0
  135. package/dist/cli/commands/rewards.js +46 -40
  136. package/dist/cli/commands/rewards.js.map +1 -1
  137. package/dist/cli/commands/run.d.ts +14 -1
  138. package/dist/cli/commands/run.js +232 -90
  139. package/dist/cli/commands/run.js.map +1 -1
  140. package/dist/cli/commands/status.d.ts +10 -0
  141. package/dist/cli/commands/status.js +97 -34
  142. package/dist/cli/commands/status.js.map +1 -1
  143. package/dist/cli/commands/submit-intent.js +33 -6
  144. package/dist/cli/commands/submit-intent.js.map +1 -1
  145. package/dist/cli/commands/ui.js +45 -0
  146. package/dist/cli/commands/ui.js.map +1 -0
  147. package/dist/cli/commands/update.d.ts +5 -0
  148. package/dist/cli/commands/update.js +102 -97
  149. package/dist/cli/commands/update.js.map +1 -1
  150. package/dist/cli/commands/version.js +3 -1
  151. package/dist/cli/commands/version.js.map +1 -1
  152. package/dist/cli/commands/withdraw.d.ts +21 -1
  153. package/dist/cli/commands/withdraw.js +175 -159
  154. package/dist/cli/commands/withdraw.js.map +1 -1
  155. package/dist/cli/execution-context.d.ts +1 -1
  156. package/dist/cli/execution-context.js +2 -1
  157. package/dist/cli/execution-context.js.map +1 -1
  158. package/dist/cli/help.js +7 -0
  159. package/dist/cli/help.js.map +1 -1
  160. package/dist/cli/index.d.ts +7 -0
  161. package/dist/cli/index.js +18 -2
  162. package/dist/cli/index.js.map +1 -1
  163. package/dist/cli/intent-registry-access.d.ts +33 -1
  164. package/dist/cli/intent-registry-access.js +40 -2
  165. package/dist/cli/intent-registry-access.js.map +1 -1
  166. package/dist/cli/open-browser.d.ts +1 -0
  167. package/dist/cli/open-browser.js +18 -0
  168. package/dist/cli/open-browser.js.map +1 -0
  169. package/dist/cli/password.d.ts +3 -3
  170. package/dist/cli/password.js +5 -5
  171. package/dist/cli/password.js.map +1 -1
  172. package/dist/config.d.ts +883 -11
  173. package/dist/config.js +435 -4
  174. package/dist/config.js.map +1 -1
  175. package/dist/conformance/checks/artifacts.d.ts +37 -0
  176. package/dist/conformance/checks/artifacts.js +110 -0
  177. package/dist/conformance/checks/artifacts.js.map +1 -0
  178. package/dist/conformance/checks/envelope-schema.d.ts +17 -0
  179. package/dist/conformance/checks/envelope-schema.js +36 -0
  180. package/dist/conformance/checks/envelope-schema.js.map +1 -0
  181. package/dist/conformance/checks/hash-signature.d.ts +26 -0
  182. package/dist/conformance/checks/hash-signature.js +70 -0
  183. package/dist/conformance/checks/hash-signature.js.map +1 -0
  184. package/dist/conformance/checks/payload.d.ts +19 -0
  185. package/dist/conformance/checks/payload.js +52 -0
  186. package/dist/conformance/checks/payload.js.map +1 -0
  187. package/dist/conformance/checks/secret-scrub.d.ts +33 -0
  188. package/dist/conformance/checks/secret-scrub.js +118 -0
  189. package/dist/conformance/checks/secret-scrub.js.map +1 -0
  190. package/dist/conformance/checks/source-runtime.d.ts +43 -0
  191. package/dist/conformance/checks/source-runtime.js +68 -0
  192. package/dist/conformance/checks/source-runtime.js.map +1 -0
  193. package/dist/conformance/checks/source-static.d.ts +61 -0
  194. package/dist/conformance/checks/source-static.js +311 -0
  195. package/dist/conformance/checks/source-static.js.map +1 -0
  196. package/dist/conformance/checks/trajectory-chain.d.ts +18 -0
  197. package/dist/conformance/checks/trajectory-chain.js +51 -0
  198. package/dist/conformance/checks/trajectory-chain.js.map +1 -0
  199. package/dist/conformance/checks/trajectory-profile.d.ts +17 -0
  200. package/dist/conformance/checks/trajectory-profile.js +51 -0
  201. package/dist/conformance/checks/trajectory-profile.js.map +1 -0
  202. package/dist/conformance/checks/trajectory-schema.d.ts +20 -0
  203. package/dist/conformance/checks/trajectory-schema.js +40 -0
  204. package/dist/conformance/checks/trajectory-schema.js.map +1 -0
  205. package/dist/conformance/checks/verdict.d.ts +44 -0
  206. package/dist/conformance/checks/verdict.js +122 -0
  207. package/dist/conformance/checks/verdict.js.map +1 -0
  208. package/dist/conformance/harness.d.ts +32 -0
  209. package/dist/conformance/harness.js +228 -0
  210. package/dist/conformance/harness.js.map +1 -0
  211. package/dist/conformance/types.d.ts +88 -0
  212. package/dist/conformance/types.js +31 -0
  213. package/dist/conformance/types.js.map +1 -0
  214. package/dist/corpus/acquire.d.ts +37 -0
  215. package/dist/corpus/acquire.js +155 -0
  216. package/dist/corpus/acquire.js.map +1 -0
  217. package/dist/corpus/cache.d.ts +14 -0
  218. package/dist/corpus/cache.js +18 -0
  219. package/dist/corpus/cache.js.map +1 -0
  220. package/dist/corpus/fetch.d.ts +9 -0
  221. package/dist/corpus/fetch.js +24 -0
  222. package/dist/corpus/fetch.js.map +1 -0
  223. package/dist/corpus/index.d.ts +16 -0
  224. package/dist/corpus/index.js +78 -0
  225. package/dist/corpus/index.js.map +1 -0
  226. package/dist/corpus/query.d.ts +17 -0
  227. package/dist/corpus/query.js +108 -0
  228. package/dist/corpus/query.js.map +1 -0
  229. package/dist/corpus/route-resolver.d.ts +16 -0
  230. package/dist/corpus/route-resolver.js +20 -0
  231. package/dist/corpus/route-resolver.js.map +1 -0
  232. package/dist/corpus/types.d.ts +107 -0
  233. package/dist/corpus/types.js +50 -0
  234. package/dist/corpus/types.js.map +1 -0
  235. package/dist/daemon/balance-topup-loop.js +2 -1
  236. package/dist/daemon/balance-topup-loop.js.map +1 -1
  237. package/dist/daemon/creator.d.ts +2 -2
  238. package/dist/daemon/creator.js +2 -2
  239. package/dist/daemon/creator.js.map +1 -1
  240. package/dist/daemon/daemon.d.ts +70 -15
  241. package/dist/daemon/daemon.js +159 -41
  242. package/dist/daemon/daemon.js.map +1 -1
  243. package/dist/daemon/delivery-watcher.js +31 -1
  244. package/dist/daemon/delivery-watcher.js.map +1 -1
  245. package/dist/daemon/jinn-claim-loop-canonical.d.ts +207 -0
  246. package/dist/daemon/jinn-claim-loop-canonical.js +296 -0
  247. package/dist/daemon/jinn-claim-loop-canonical.js.map +1 -0
  248. package/dist/daemon/jinn-claim-loop-mock.d.ts +61 -0
  249. package/dist/daemon/jinn-claim-loop-mock.js +122 -0
  250. package/dist/daemon/jinn-claim-loop-mock.js.map +1 -0
  251. package/dist/daemon/jinn-claim-loop.d.ts +123 -0
  252. package/dist/daemon/jinn-claim-loop.js +256 -0
  253. package/dist/daemon/jinn-claim-loop.js.map +1 -0
  254. package/dist/daemon/reward-claim-loop.d.ts +2 -0
  255. package/dist/daemon/reward-claim-loop.js +32 -27
  256. package/dist/daemon/reward-claim-loop.js.map +1 -1
  257. package/dist/dashboard/assets/index-Bxlk5qpa.js +68 -0
  258. package/dist/dashboard/assets/index-DQ3u_vP5.css +32 -0
  259. package/dist/dashboard/index.html +18 -74
  260. package/dist/earning/agent-wallet-binding.d.ts +133 -0
  261. package/dist/earning/agent-wallet-binding.js +202 -0
  262. package/dist/earning/agent-wallet-binding.js.map +1 -0
  263. package/dist/earning/bootstrap.d.ts +64 -0
  264. package/dist/earning/bootstrap.js +325 -32
  265. package/dist/earning/bootstrap.js.map +1 -1
  266. package/dist/earning/contracts.d.ts +323 -0
  267. package/dist/earning/contracts.js +276 -0
  268. package/dist/earning/contracts.js.map +1 -1
  269. package/dist/earning/funding-plan.d.ts +90 -0
  270. package/dist/earning/funding-plan.js +203 -0
  271. package/dist/earning/funding-plan.js.map +1 -0
  272. package/dist/earning/migrate-agent-id.d.ts +130 -0
  273. package/dist/earning/migrate-agent-id.js +257 -0
  274. package/dist/earning/migrate-agent-id.js.map +1 -0
  275. package/dist/earning/orphan-sweep.d.ts +14 -0
  276. package/dist/earning/orphan-sweep.js +63 -2
  277. package/dist/earning/orphan-sweep.js.map +1 -1
  278. package/dist/earning/reconcile.d.ts +2 -0
  279. package/dist/earning/reconcile.js +30 -0
  280. package/dist/earning/reconcile.js.map +1 -1
  281. package/dist/earning/stolas-claim.d.ts +86 -6
  282. package/dist/earning/stolas-claim.js +123 -9
  283. package/dist/earning/stolas-claim.js.map +1 -1
  284. package/dist/earning/store.d.ts +39 -0
  285. package/dist/earning/store.js +72 -1
  286. package/dist/earning/store.js.map +1 -1
  287. package/dist/earning/testnet-setup-migration.d.ts +32 -0
  288. package/dist/earning/testnet-setup-migration.js +214 -0
  289. package/dist/earning/testnet-setup-migration.js.map +1 -0
  290. package/dist/earning/types.d.ts +53 -9
  291. package/dist/earning/types.js +51 -2
  292. package/dist/earning/types.js.map +1 -1
  293. package/dist/earning/viem-clients.d.ts +20 -0
  294. package/dist/earning/viem-clients.js +32 -1
  295. package/dist/earning/viem-clients.js.map +1 -1
  296. package/dist/erc8004/abis.d.ts +381 -0
  297. package/dist/erc8004/abis.js +238 -0
  298. package/dist/erc8004/abis.js.map +1 -0
  299. package/dist/erc8004/addresses.d.ts +40 -0
  300. package/dist/erc8004/addresses.js +64 -0
  301. package/dist/erc8004/addresses.js.map +1 -0
  302. package/dist/erc8004/identity.d.ts +202 -0
  303. package/dist/erc8004/identity.js +305 -0
  304. package/dist/erc8004/identity.js.map +1 -0
  305. package/dist/erc8004/index.d.ts +13 -0
  306. package/dist/erc8004/index.js +20 -0
  307. package/dist/erc8004/index.js.map +1 -0
  308. package/dist/erc8004/reputation.d.ts +349 -0
  309. package/dist/erc8004/reputation.js +464 -0
  310. package/dist/erc8004/reputation.js.map +1 -0
  311. package/dist/erc8004/subgraph.d.ts +46 -0
  312. package/dist/erc8004/subgraph.js +37 -0
  313. package/dist/erc8004/subgraph.js.map +1 -0
  314. package/dist/erc8004/validation.d.ts +145 -0
  315. package/dist/erc8004/validation.js +219 -0
  316. package/dist/erc8004/validation.js.map +1 -0
  317. package/dist/errors/persisted-bootstrap-error.d.ts +4 -0
  318. package/dist/errors/persisted-bootstrap-error.js +50 -0
  319. package/dist/errors/persisted-bootstrap-error.js.map +1 -0
  320. package/dist/events/emitter.d.ts +12 -0
  321. package/dist/events/emitter.js +23 -0
  322. package/dist/events/emitter.js.map +1 -0
  323. package/dist/events/ring-buffer.d.ts +25 -0
  324. package/dist/events/ring-buffer.js +46 -0
  325. package/dist/events/ring-buffer.js.map +1 -0
  326. package/dist/events/types.d.ts +42 -0
  327. package/dist/events/types.js +28 -0
  328. package/dist/events/types.js.map +1 -0
  329. package/dist/index.d.ts +1 -1
  330. package/dist/intents/kinds/index.d.ts +10 -0
  331. package/dist/intents/kinds/index.js +7 -0
  332. package/dist/intents/kinds/index.js.map +1 -1
  333. package/dist/intents/kinds/learner-loop-test.d.ts +2 -0
  334. package/dist/intents/kinds/learner-loop-test.js +39 -0
  335. package/dist/intents/kinds/learner-loop-test.js.map +1 -0
  336. package/dist/intents/kinds/prediction-apy-v0.js +5 -1
  337. package/dist/intents/kinds/prediction-apy-v0.js.map +1 -1
  338. package/dist/intents/kinds/prediction-v0.js +5 -0
  339. package/dist/intents/kinds/prediction-v0.js.map +1 -1
  340. package/dist/intents/kinds/spec-kind.d.ts +18 -1
  341. package/dist/intents/posting-service.d.ts +3 -5
  342. package/dist/intents/posting-service.js +16 -50
  343. package/dist/intents/posting-service.js.map +1 -1
  344. package/dist/intents/prediction-apy-v0-auto.d.ts +12 -2
  345. package/dist/intents/prediction-apy-v0-auto.js +27 -2
  346. package/dist/intents/prediction-apy-v0-auto.js.map +1 -1
  347. package/dist/intents/prediction-v0-auto.d.ts +14 -4
  348. package/dist/intents/prediction-v0-auto.js +29 -5
  349. package/dist/intents/prediction-v0-auto.js.map +1 -1
  350. package/dist/intents/signing.d.ts +13 -0
  351. package/dist/intents/signing.js +27 -0
  352. package/dist/intents/signing.js.map +1 -0
  353. package/dist/intents/sources.d.ts +12 -5
  354. package/dist/intents/sources.js +11 -11
  355. package/dist/intents/sources.js.map +1 -1
  356. package/dist/main.d.ts +5 -2
  357. package/dist/main.js +792 -66
  358. package/dist/main.js.map +1 -1
  359. package/dist/mcp/acquire-artifact.d.ts +39 -0
  360. package/dist/mcp/acquire-artifact.js +163 -0
  361. package/dist/mcp/acquire-artifact.js.map +1 -0
  362. package/dist/mcp/operator-server.d.ts +20 -3
  363. package/dist/mcp/operator-server.js +500 -25
  364. package/dist/mcp/operator-server.js.map +1 -1
  365. package/dist/mcp/search-artifacts.d.ts +31 -0
  366. package/dist/mcp/search-artifacts.js +40 -0
  367. package/dist/mcp/search-artifacts.js.map +1 -0
  368. package/dist/mcp/server.js +103 -58
  369. package/dist/mcp/server.js.map +1 -1
  370. package/dist/observability/emit-event.d.ts +1 -1
  371. package/dist/observability/emit-event.js.map +1 -1
  372. package/dist/operator-errors.js +4 -5
  373. package/dist/operator-errors.js.map +1 -1
  374. package/dist/preflight/claude-auth.d.ts +11 -11
  375. package/dist/preflight/claude-auth.js +18 -32
  376. package/dist/preflight/claude-auth.js.map +1 -1
  377. package/dist/restorer/capability/index.d.ts +82 -0
  378. package/dist/restorer/capability/index.js +12 -0
  379. package/dist/restorer/capability/index.js.map +1 -0
  380. package/dist/restorer/capability/scoped-rpc.d.ts +12 -0
  381. package/dist/restorer/capability/scoped-rpc.js +34 -0
  382. package/dist/restorer/capability/scoped-rpc.js.map +1 -0
  383. package/dist/restorer/capability/scoped-secrets.d.ts +8 -0
  384. package/dist/restorer/capability/scoped-secrets.js +10 -0
  385. package/dist/restorer/capability/scoped-secrets.js.map +1 -0
  386. package/dist/restorer/capability/scoped-signer.d.ts +46 -0
  387. package/dist/restorer/capability/scoped-signer.js +73 -0
  388. package/dist/restorer/capability/scoped-signer.js.map +1 -0
  389. package/dist/restorer/engine/canonical-json.d.ts +0 -17
  390. package/dist/restorer/engine/canonical-json.js +56 -49
  391. package/dist/restorer/engine/canonical-json.js.map +1 -1
  392. package/dist/restorer/engine/claim.js +8 -1
  393. package/dist/restorer/engine/claim.js.map +1 -1
  394. package/dist/restorer/engine/delivery.d.ts +2 -0
  395. package/dist/restorer/engine/delivery.js +2 -2
  396. package/dist/restorer/engine/delivery.js.map +1 -1
  397. package/dist/restorer/engine/engine.d.ts +143 -26
  398. package/dist/restorer/engine/engine.js +485 -104
  399. package/dist/restorer/engine/engine.js.map +1 -1
  400. package/dist/restorer/engine/envelope-assembly.d.ts +65 -0
  401. package/dist/restorer/engine/envelope-assembly.js +60 -0
  402. package/dist/restorer/engine/envelope-assembly.js.map +1 -0
  403. package/dist/restorer/engine/packaging.d.ts +30 -30
  404. package/dist/restorer/engine/packaging.js +73 -47
  405. package/dist/restorer/engine/packaging.js.map +1 -1
  406. package/dist/restorer/engine/persistence.d.ts +7 -7
  407. package/dist/restorer/engine/persistence.js +4 -4
  408. package/dist/restorer/engine/persistence.js.map +1 -1
  409. package/dist/restorer/engine/registry.d.ts +24 -13
  410. package/dist/restorer/engine/registry.js +16 -13
  411. package/dist/restorer/engine/registry.js.map +1 -1
  412. package/dist/restorer/engine/validate-manifest.d.ts +23 -0
  413. package/dist/restorer/engine/validate-manifest.js +49 -0
  414. package/dist/restorer/engine/validate-manifest.js.map +1 -0
  415. package/dist/restorer/engine/verification-stub.d.ts +18 -0
  416. package/dist/restorer/engine/verification-stub.js +18 -0
  417. package/dist/restorer/engine/verification-stub.js.map +1 -0
  418. package/dist/restorer/external-impls/index.d.ts +3 -0
  419. package/dist/restorer/external-impls/index.js +2 -0
  420. package/dist/restorer/external-impls/index.js.map +1 -0
  421. package/dist/restorer/external-impls/loader.d.ts +49 -0
  422. package/dist/restorer/external-impls/loader.js +138 -0
  423. package/dist/restorer/external-impls/loader.js.map +1 -0
  424. package/dist/restorer/external-impls/package-hash.d.ts +26 -0
  425. package/dist/restorer/external-impls/package-hash.js +102 -0
  426. package/dist/restorer/external-impls/package-hash.js.map +1 -0
  427. package/dist/restorer/external-impls/types.d.ts +42 -0
  428. package/dist/restorer/external-impls/types.js +10 -0
  429. package/dist/restorer/external-impls/types.js.map +1 -0
  430. package/dist/restorer/impls/claude-code-learner/adapters/claude-code.d.ts +38 -0
  431. package/dist/restorer/impls/claude-code-learner/adapters/claude-code.js +200 -0
  432. package/dist/restorer/impls/claude-code-learner/adapters/claude-code.js.map +1 -0
  433. package/dist/restorer/impls/claude-code-learner/harvest.d.ts +19 -0
  434. package/dist/restorer/impls/claude-code-learner/harvest.js +146 -0
  435. package/dist/restorer/impls/claude-code-learner/harvest.js.map +1 -0
  436. package/dist/restorer/impls/claude-code-learner/index.d.ts +15 -0
  437. package/dist/restorer/impls/claude-code-learner/index.js +14 -0
  438. package/dist/restorer/impls/claude-code-learner/index.js.map +1 -0
  439. package/dist/restorer/impls/claude-code-learner/mcp-config.d.ts +48 -0
  440. package/dist/restorer/impls/claude-code-learner/mcp-config.js +52 -0
  441. package/dist/restorer/impls/claude-code-learner/mcp-config.js.map +1 -0
  442. package/dist/restorer/impls/claude-code-learner/plugin-path.d.ts +14 -0
  443. package/dist/restorer/impls/claude-code-learner/plugin-path.js +30 -0
  444. package/dist/restorer/impls/claude-code-learner/plugin-path.js.map +1 -0
  445. package/dist/restorer/impls/claude-code-learner/restorer.d.ts +38 -0
  446. package/dist/restorer/impls/claude-code-learner/restorer.js +73 -0
  447. package/dist/restorer/impls/claude-code-learner/restorer.js.map +1 -0
  448. package/dist/restorer/impls/claude-code-learner/test-utils/fake-plugin-outputs.d.ts +19 -0
  449. package/dist/restorer/impls/claude-code-learner/test-utils/fake-plugin-outputs.js +111 -0
  450. package/dist/restorer/impls/claude-code-learner/test-utils/fake-plugin-outputs.js.map +1 -0
  451. package/dist/restorer/impls/claude-code-learner/test-utils/noop-adapter.d.ts +22 -0
  452. package/dist/restorer/impls/claude-code-learner/test-utils/noop-adapter.js +35 -0
  453. package/dist/restorer/impls/claude-code-learner/test-utils/noop-adapter.js.map +1 -0
  454. package/dist/restorer/impls/claude-code-learner/test-utils/synthetic-session.d.ts +20 -0
  455. package/dist/restorer/impls/claude-code-learner/test-utils/synthetic-session.js +34 -0
  456. package/dist/restorer/impls/claude-code-learner/test-utils/synthetic-session.js.map +1 -0
  457. package/dist/restorer/impls/claude-code-learner/types.d.ts +99 -0
  458. package/dist/restorer/impls/claude-code-learner/types.js +2 -0
  459. package/dist/restorer/impls/claude-code-learner/types.js.map +1 -0
  460. package/dist/restorer/impls/claude-code-learner/wrapper.d.ts +49 -0
  461. package/dist/restorer/impls/claude-code-learner/wrapper.js +144 -0
  462. package/dist/restorer/impls/claude-code-learner/wrapper.js.map +1 -0
  463. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +2 -2
  464. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +2 -2
  465. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -1
  466. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +7 -0
  467. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +38 -0
  468. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -1
  469. package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +2 -2
  470. package/dist/restorer/impls/claude-mcp-prediction/index.js +12 -2
  471. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -1
  472. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +9 -2
  473. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +9 -125
  474. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
  475. package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +2 -2
  476. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +9 -2
  477. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +1 -1
  478. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +10 -0
  479. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +10 -119
  480. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
  481. package/dist/restorer/impls/claude-mcp-shared/single-session-orchestrator.d.ts +84 -0
  482. package/dist/restorer/impls/claude-mcp-shared/single-session-orchestrator.js +206 -0
  483. package/dist/restorer/impls/claude-mcp-shared/single-session-orchestrator.js.map +1 -0
  484. package/dist/restorer/impls/evaluation-context.d.ts +11 -4
  485. package/dist/restorer/impls/evaluation-context.js +9 -2
  486. package/dist/restorer/impls/evaluation-context.js.map +1 -1
  487. package/dist/restorer/impls/index.d.ts +46 -1
  488. package/dist/restorer/impls/index.js +38 -0
  489. package/dist/restorer/impls/index.js.map +1 -1
  490. package/dist/restorer/impls/legacy-claude/index.d.ts +13 -1
  491. package/dist/restorer/impls/legacy-claude/index.js +2 -0
  492. package/dist/restorer/impls/legacy-claude/index.js.map +1 -1
  493. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +4 -4
  494. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +184 -55
  495. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -1
  496. package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +1 -1
  497. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +8 -1
  498. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -1
  499. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +3 -3
  500. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +153 -15
  501. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  502. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +14 -5
  503. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +16 -23
  504. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -1
  505. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +1 -1
  506. package/dist/restorer/impls/prediction-v0-baseline/index.js +16 -7
  507. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -1
  508. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +5 -3
  509. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -1
  510. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +2 -2
  511. package/dist/restorer/impls/prediction-v0-evaluator/index.js +175 -67
  512. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -1
  513. package/dist/restorer/manifest/index.d.ts +3 -0
  514. package/dist/restorer/manifest/index.js +3 -0
  515. package/dist/restorer/manifest/index.js.map +1 -0
  516. package/dist/restorer/manifest/load.d.ts +7 -0
  517. package/dist/restorer/manifest/load.js +49 -0
  518. package/dist/restorer/manifest/load.js.map +1 -0
  519. package/dist/restorer/manifest/types.d.ts +75 -0
  520. package/dist/restorer/manifest/types.js +8 -0
  521. package/dist/restorer/manifest/types.js.map +1 -0
  522. package/dist/restorer/manifest/verify.d.ts +15 -0
  523. package/dist/restorer/manifest/verify.js +53 -0
  524. package/dist/restorer/manifest/verify.js.map +1 -0
  525. package/dist/restorer/plug-ins/index.d.ts +14 -0
  526. package/dist/restorer/plug-ins/index.js +11 -0
  527. package/dist/restorer/plug-ins/index.js.map +1 -0
  528. package/dist/restorer/plug-ins/loader.d.ts +27 -0
  529. package/dist/restorer/plug-ins/loader.js +101 -0
  530. package/dist/restorer/plug-ins/loader.js.map +1 -0
  531. package/dist/restorer/plug-ins/manifest.d.ts +7 -0
  532. package/dist/restorer/plug-ins/manifest.js +97 -0
  533. package/dist/restorer/plug-ins/manifest.js.map +1 -0
  534. package/dist/restorer/plug-ins/registry.d.ts +24 -0
  535. package/dist/restorer/plug-ins/registry.js +17 -0
  536. package/dist/restorer/plug-ins/registry.js.map +1 -0
  537. package/dist/restorer/plug-ins/serialise.d.ts +29 -0
  538. package/dist/restorer/plug-ins/serialise.js +29 -0
  539. package/dist/restorer/plug-ins/serialise.js.map +1 -0
  540. package/dist/restorer/plug-ins/types.d.ts +77 -0
  541. package/dist/restorer/plug-ins/types.js +10 -0
  542. package/dist/restorer/plug-ins/types.js.map +1 -0
  543. package/dist/restorer/types.d.ts +66 -11
  544. package/dist/restorer/types.js.map +1 -1
  545. package/dist/runner/claude.d.ts +3 -3
  546. package/dist/runner/claude.js +57 -21
  547. package/dist/runner/claude.js.map +1 -1
  548. package/dist/runner/runner.d.ts +29 -2
  549. package/dist/runner/simple.d.ts +2 -2
  550. package/dist/runner/simple.js +2 -2
  551. package/dist/runner/simple.js.map +1 -1
  552. package/dist/scripts/fix-node-pty.mjs +62 -0
  553. package/dist/setup-mode.d.ts +34 -0
  554. package/dist/setup-mode.js +49 -0
  555. package/dist/setup-mode.js.map +1 -0
  556. package/dist/store/store.d.ts +79 -3
  557. package/dist/store/store.js +189 -6
  558. package/dist/store/store.js.map +1 -1
  559. package/dist/templates/plug-in/hook/README.md.tmpl +24 -0
  560. package/dist/templates/plug-in/hook/gitignore.tmpl +3 -0
  561. package/dist/templates/plug-in/hook/hooks/event.sh.tmpl +15 -0
  562. package/dist/templates/plug-in/hook/jinn-plugin.json.tmpl +16 -0
  563. package/dist/templates/plug-in/hook/package.json.tmpl +14 -0
  564. package/dist/templates/plug-in/hook/test/manifest.test.ts.tmpl +21 -0
  565. package/dist/templates/plug-in/mcp-tool/README.md.tmpl +26 -0
  566. package/dist/templates/plug-in/mcp-tool/gitignore.tmpl +4 -0
  567. package/dist/templates/plug-in/mcp-tool/jinn-plugin.json.tmpl +16 -0
  568. package/dist/templates/plug-in/mcp-tool/package.json.tmpl +19 -0
  569. package/dist/templates/plug-in/mcp-tool/src/server.ts.tmpl +17 -0
  570. package/dist/templates/plug-in/mcp-tool/test/server.test.ts.tmpl +18 -0
  571. package/dist/templates/plug-in/memory-backend/README.md.tmpl +33 -0
  572. package/dist/templates/plug-in/memory-backend/gitignore.tmpl +4 -0
  573. package/dist/templates/plug-in/memory-backend/jinn-plugin.json.tmpl +16 -0
  574. package/dist/templates/plug-in/memory-backend/package.json.tmpl +19 -0
  575. package/dist/templates/plug-in/memory-backend/src/server.ts.tmpl +23 -0
  576. package/dist/templates/plug-in/memory-backend/test/server.test.ts.tmpl +17 -0
  577. package/dist/templates/plug-in/phase-agent-override/README.md.tmpl +30 -0
  578. package/dist/templates/plug-in/phase-agent-override/agents/agent.md.tmpl +26 -0
  579. package/dist/templates/plug-in/phase-agent-override/gitignore.tmpl +3 -0
  580. package/dist/templates/plug-in/phase-agent-override/jinn-plugin.json.tmpl +17 -0
  581. package/dist/templates/plug-in/phase-agent-override/package.json.tmpl +14 -0
  582. package/dist/templates/plug-in/phase-agent-override/test/manifest.test.ts.tmpl +24 -0
  583. package/dist/templates/plug-in/skill-bundle/.claude-plugin/plugin.json.tmpl +5 -0
  584. package/dist/templates/plug-in/skill-bundle/README.md.tmpl +28 -0
  585. package/dist/templates/plug-in/skill-bundle/gitignore.tmpl +3 -0
  586. package/dist/templates/plug-in/skill-bundle/jinn-plugin.json.tmpl +15 -0
  587. package/dist/templates/plug-in/skill-bundle/package.json.tmpl +14 -0
  588. package/dist/templates/plug-in/skill-bundle/skills/example/SKILL.md.tmpl +14 -0
  589. package/dist/templates/plug-in/skill-bundle/test/manifest.test.ts.tmpl +21 -0
  590. package/dist/templates/plug-in/topic-explorer/README.md.tmpl +24 -0
  591. package/dist/templates/plug-in/topic-explorer/agents/explorer.md.tmpl +26 -0
  592. package/dist/templates/plug-in/topic-explorer/gitignore.tmpl +3 -0
  593. package/dist/templates/plug-in/topic-explorer/jinn-plugin.json.tmpl +17 -0
  594. package/dist/templates/plug-in/topic-explorer/package.json.tmpl +14 -0
  595. package/dist/templates/plug-in/topic-explorer/test/manifest.test.ts.tmpl +22 -0
  596. package/dist/templates/restorer/alternative-harness/README.md.tmpl +44 -0
  597. package/dist/templates/restorer/alternative-harness/gitignore.tmpl +3 -0
  598. package/dist/templates/restorer/alternative-harness/jinn.manifest.json.tmpl +22 -0
  599. package/dist/templates/restorer/alternative-harness/package.json.tmpl +26 -0
  600. package/dist/templates/restorer/alternative-harness/src/coordinator.ts.tmpl +50 -0
  601. package/dist/templates/restorer/alternative-harness/src/harness.ts.tmpl +31 -0
  602. package/dist/templates/restorer/alternative-harness/src/index.ts.tmpl +44 -0
  603. package/dist/templates/restorer/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  604. package/dist/templates/restorer/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  605. package/dist/templates/restorer/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  606. package/dist/templates/restorer/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  607. package/dist/templates/restorer/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  608. package/dist/templates/restorer/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  609. package/dist/templates/restorer/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  610. package/dist/templates/restorer/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  611. package/dist/templates/restorer/alternative-harness/test/coordinator.test.ts.tmpl +52 -0
  612. package/dist/templates/restorer/alternative-harness/test/unit.test.ts.tmpl +54 -0
  613. package/dist/templates/restorer/alternative-harness/tsconfig.json.tmpl +16 -0
  614. package/dist/templates/restorer/evaluator/README.md.tmpl +36 -0
  615. package/dist/templates/restorer/evaluator/gitignore.tmpl +3 -0
  616. package/dist/templates/restorer/evaluator/jinn.manifest.json.tmpl +22 -0
  617. package/dist/templates/restorer/evaluator/package.json.tmpl +26 -0
  618. package/dist/templates/restorer/evaluator/src/index.ts.tmpl +35 -0
  619. package/dist/templates/restorer/evaluator/test/unit.test.ts.tmpl +48 -0
  620. package/dist/templates/restorer/evaluator/tsconfig.json.tmpl +16 -0
  621. package/dist/templates/restorer/forecaster/README.md.tmpl +25 -0
  622. package/dist/templates/restorer/forecaster/gitignore.tmpl +5 -0
  623. package/dist/templates/restorer/forecaster/jinn.manifest.json.tmpl +22 -0
  624. package/dist/templates/restorer/forecaster/package.json.tmpl +26 -0
  625. package/dist/templates/restorer/forecaster/src/index.ts.tmpl +33 -0
  626. package/dist/templates/restorer/forecaster/test/unit.test.ts.tmpl +41 -0
  627. package/dist/templates/restorer/forecaster/tsconfig.json.tmpl +16 -0
  628. package/dist/trajectory/collector.d.ts +49 -0
  629. package/dist/trajectory/collector.js +86 -0
  630. package/dist/trajectory/collector.js.map +1 -0
  631. package/dist/trajectory/emit.d.ts +27 -0
  632. package/dist/trajectory/emit.js +40 -0
  633. package/dist/trajectory/emit.js.map +1 -0
  634. package/dist/trajectory/hash-chain.d.ts +18 -0
  635. package/dist/trajectory/hash-chain.js +23 -0
  636. package/dist/trajectory/hash-chain.js.map +1 -0
  637. package/dist/trajectory/index.d.ts +22 -0
  638. package/dist/trajectory/index.js +23 -0
  639. package/dist/trajectory/index.js.map +1 -0
  640. package/dist/trajectory/schema.d.ts +14 -14
  641. package/dist/trajectory/secret-scrub.d.ts +32 -0
  642. package/dist/trajectory/secret-scrub.js +51 -0
  643. package/dist/trajectory/secret-scrub.js.map +1 -0
  644. package/dist/trajectory/span-profile.d.ts +27 -0
  645. package/dist/trajectory/span-profile.js +51 -0
  646. package/dist/trajectory/span-profile.js.map +1 -0
  647. package/dist/trajectory/wrappers/http.d.ts +37 -0
  648. package/dist/trajectory/wrappers/http.js +85 -0
  649. package/dist/trajectory/wrappers/http.js.map +1 -0
  650. package/dist/trajectory/wrappers/mcp.d.ts +17 -0
  651. package/dist/trajectory/wrappers/mcp.js +58 -0
  652. package/dist/trajectory/wrappers/mcp.js.map +1 -0
  653. package/dist/trajectory/wrappers/subprocess.d.ts +32 -0
  654. package/dist/trajectory/wrappers/subprocess.js +70 -0
  655. package/dist/trajectory/wrappers/subprocess.js.map +1 -0
  656. package/dist/tx-retry.js +23 -9
  657. package/dist/tx-retry.js.map +1 -1
  658. package/dist/types/desired-state.d.ts +211 -21
  659. package/dist/types/desired-state.js +26 -15
  660. package/dist/types/desired-state.js.map +1 -1
  661. package/dist/types/envelope.d.ts +1473 -0
  662. package/dist/types/envelope.js +114 -0
  663. package/dist/types/envelope.js.map +1 -0
  664. package/dist/types/index.d.ts +4 -4
  665. package/dist/types/index.js +4 -4
  666. package/dist/types/index.js.map +1 -1
  667. package/dist/types/intent.d.ts +276 -0
  668. package/dist/types/intent.js +74 -0
  669. package/dist/types/intent.js.map +1 -0
  670. package/dist/types/payloads/index.d.ts +11 -0
  671. package/dist/types/payloads/index.js +46 -0
  672. package/dist/types/payloads/index.js.map +1 -0
  673. package/dist/types/payloads/portfolio-v0.d.ts +481 -0
  674. package/dist/types/payloads/portfolio-v0.js +94 -0
  675. package/dist/types/payloads/portfolio-v0.js.map +1 -0
  676. package/dist/types/payloads/prediction-apy-v0.d.ts +231 -0
  677. package/dist/types/payloads/prediction-apy-v0.js +63 -0
  678. package/dist/types/payloads/prediction-apy-v0.js.map +1 -0
  679. package/dist/types/payloads/prediction-v0.d.ts +262 -0
  680. package/dist/types/payloads/prediction-v0.js +73 -0
  681. package/dist/types/payloads/prediction-v0.js.map +1 -0
  682. package/dist/types/portfolio.d.ts +23 -685
  683. package/dist/types/portfolio.js +16 -106
  684. package/dist/types/portfolio.js.map +1 -1
  685. package/dist/types/prediction-apy.d.ts +9 -344
  686. package/dist/types/prediction-apy.js +9 -65
  687. package/dist/types/prediction-apy.js.map +1 -1
  688. package/dist/types/prediction.d.ts +25 -396
  689. package/dist/types/prediction.js +5 -79
  690. package/dist/types/prediction.js.map +1 -1
  691. package/dist/types/window.d.ts +12 -0
  692. package/dist/types/window.js +6 -0
  693. package/dist/types/window.js.map +1 -0
  694. package/dist/util/path-safety.d.ts +22 -0
  695. package/dist/util/path-safety.js +29 -0
  696. package/dist/util/path-safety.js.map +1 -0
  697. package/dist/util/redact-rpc-urls.d.ts +5 -0
  698. package/dist/util/redact-rpc-urls.js +9 -0
  699. package/dist/util/redact-rpc-urls.js.map +1 -0
  700. package/dist/x402/acquire.d.ts +14 -3
  701. package/dist/x402/acquire.js +28 -11
  702. package/dist/x402/acquire.js.map +1 -1
  703. package/dist/x402/handler.d.ts +15 -3
  704. package/dist/x402/handler.js +67 -24
  705. package/dist/x402/handler.js.map +1 -1
  706. package/package.json +36 -11
  707. package/plugins/claude-code-learner/.claude-plugin/plugin.json +9 -0
  708. package/plugins/claude-code-learner/AGENTS.md +30 -0
  709. package/plugins/claude-code-learner/CLAUDE.md +31 -0
  710. package/plugins/claude-code-learner/README.md +58 -0
  711. package/plugins/claude-code-learner/agents/analyst.md +69 -0
  712. package/plugins/claude-code-learner/agents/consolidator.md +95 -0
  713. package/plugins/claude-code-learner/agents/explorer.md +54 -0
  714. package/plugins/claude-code-learner/agents/planner.md +88 -0
  715. package/plugins/claude-code-learner/agents/promoter.md +114 -0
  716. package/plugins/claude-code-learner/agents/step-worker.md +48 -0
  717. package/plugins/claude-code-learner/agents/strategist.md +86 -0
  718. package/plugins/claude-code-learner/hooks/hooks.json +16 -0
  719. package/plugins/claude-code-learner/hooks/session-start +49 -0
  720. package/plugins/claude-code-learner/skills/coordinator/SKILL.md +131 -0
  721. package/plugins/claude-code-learner/skills/debrief/SKILL.md +71 -0
  722. package/plugins/claude-code-learner/skills/execute/SKILL.md +91 -0
  723. package/plugins/claude-code-learner/skills/improve/SKILL.md +57 -0
  724. package/plugins/claude-code-learner/skills/memory-consolidation/SKILL.md +57 -0
  725. package/plugins/claude-code-learner/skills/orient/SKILL.md +82 -0
  726. package/plugins/claude-code-learner/skills/plan/SKILL.md +54 -0
  727. package/plugins/claude-code-learner/skills/strategize/SKILL.md +63 -0
  728. package/skills/jinn-operator/SKILL.md +84 -35
  729. package/templates/plug-in/hook/README.md.tmpl +24 -0
  730. package/templates/plug-in/hook/gitignore.tmpl +3 -0
  731. package/templates/plug-in/hook/hooks/event.sh.tmpl +15 -0
  732. package/templates/plug-in/hook/jinn-plugin.json.tmpl +16 -0
  733. package/templates/plug-in/hook/package.json.tmpl +14 -0
  734. package/templates/plug-in/hook/test/manifest.test.ts.tmpl +21 -0
  735. package/templates/plug-in/mcp-tool/README.md.tmpl +26 -0
  736. package/templates/plug-in/mcp-tool/gitignore.tmpl +4 -0
  737. package/templates/plug-in/mcp-tool/jinn-plugin.json.tmpl +16 -0
  738. package/templates/plug-in/mcp-tool/package.json.tmpl +19 -0
  739. package/templates/plug-in/mcp-tool/src/server.ts.tmpl +17 -0
  740. package/templates/plug-in/mcp-tool/test/server.test.ts.tmpl +18 -0
  741. package/templates/plug-in/memory-backend/README.md.tmpl +33 -0
  742. package/templates/plug-in/memory-backend/gitignore.tmpl +4 -0
  743. package/templates/plug-in/memory-backend/jinn-plugin.json.tmpl +16 -0
  744. package/templates/plug-in/memory-backend/package.json.tmpl +19 -0
  745. package/templates/plug-in/memory-backend/src/server.ts.tmpl +23 -0
  746. package/templates/plug-in/memory-backend/test/server.test.ts.tmpl +17 -0
  747. package/templates/plug-in/phase-agent-override/README.md.tmpl +30 -0
  748. package/templates/plug-in/phase-agent-override/agents/agent.md.tmpl +26 -0
  749. package/templates/plug-in/phase-agent-override/gitignore.tmpl +3 -0
  750. package/templates/plug-in/phase-agent-override/jinn-plugin.json.tmpl +17 -0
  751. package/templates/plug-in/phase-agent-override/package.json.tmpl +14 -0
  752. package/templates/plug-in/phase-agent-override/test/manifest.test.ts.tmpl +24 -0
  753. package/templates/plug-in/skill-bundle/.claude-plugin/plugin.json.tmpl +5 -0
  754. package/templates/plug-in/skill-bundle/README.md.tmpl +28 -0
  755. package/templates/plug-in/skill-bundle/gitignore.tmpl +3 -0
  756. package/templates/plug-in/skill-bundle/jinn-plugin.json.tmpl +15 -0
  757. package/templates/plug-in/skill-bundle/package.json.tmpl +14 -0
  758. package/templates/plug-in/skill-bundle/skills/example/SKILL.md.tmpl +14 -0
  759. package/templates/plug-in/skill-bundle/test/manifest.test.ts.tmpl +21 -0
  760. package/templates/plug-in/topic-explorer/README.md.tmpl +24 -0
  761. package/templates/plug-in/topic-explorer/agents/explorer.md.tmpl +26 -0
  762. package/templates/plug-in/topic-explorer/gitignore.tmpl +3 -0
  763. package/templates/plug-in/topic-explorer/jinn-plugin.json.tmpl +17 -0
  764. package/templates/plug-in/topic-explorer/package.json.tmpl +14 -0
  765. package/templates/plug-in/topic-explorer/test/manifest.test.ts.tmpl +22 -0
  766. package/templates/restorer/alternative-harness/README.md.tmpl +44 -0
  767. package/templates/restorer/alternative-harness/gitignore.tmpl +3 -0
  768. package/templates/restorer/alternative-harness/jinn.manifest.json.tmpl +22 -0
  769. package/templates/restorer/alternative-harness/package.json.tmpl +26 -0
  770. package/templates/restorer/alternative-harness/src/coordinator.ts.tmpl +50 -0
  771. package/templates/restorer/alternative-harness/src/harness.ts.tmpl +31 -0
  772. package/templates/restorer/alternative-harness/src/index.ts.tmpl +44 -0
  773. package/templates/restorer/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  774. package/templates/restorer/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  775. package/templates/restorer/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  776. package/templates/restorer/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  777. package/templates/restorer/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  778. package/templates/restorer/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  779. package/templates/restorer/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  780. package/templates/restorer/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  781. package/templates/restorer/alternative-harness/test/coordinator.test.ts.tmpl +52 -0
  782. package/templates/restorer/alternative-harness/test/unit.test.ts.tmpl +54 -0
  783. package/templates/restorer/alternative-harness/tsconfig.json.tmpl +16 -0
  784. package/templates/restorer/evaluator/README.md.tmpl +36 -0
  785. package/templates/restorer/evaluator/gitignore.tmpl +3 -0
  786. package/templates/restorer/evaluator/jinn.manifest.json.tmpl +22 -0
  787. package/templates/restorer/evaluator/package.json.tmpl +26 -0
  788. package/templates/restorer/evaluator/src/index.ts.tmpl +35 -0
  789. package/templates/restorer/evaluator/test/unit.test.ts.tmpl +48 -0
  790. package/templates/restorer/evaluator/tsconfig.json.tmpl +16 -0
  791. package/templates/restorer/forecaster/README.md.tmpl +25 -0
  792. package/templates/restorer/forecaster/gitignore.tmpl +5 -0
  793. package/templates/restorer/forecaster/jinn.manifest.json.tmpl +22 -0
  794. package/templates/restorer/forecaster/package.json.tmpl +26 -0
  795. package/templates/restorer/forecaster/src/index.ts.tmpl +33 -0
  796. package/templates/restorer/forecaster/test/unit.test.ts.tmpl +41 -0
  797. package/templates/restorer/forecaster/tsconfig.json.tmpl +16 -0
  798. package/dist/bin/jinn-mcp.d.ts +0 -2
  799. package/dist/bin/jinn-mcp.js +0 -10
  800. package/dist/bin/jinn-mcp.js.map +0 -1
  801. package/dist/cli/commands/quickstart.js +0 -330
  802. package/dist/cli/commands/quickstart.js.map +0 -1
  803. package/dist/discovery/registry.d.ts +0 -97
  804. package/dist/discovery/registry.js +0 -177
  805. package/dist/discovery/registry.js.map +0 -1
  806. package/dist/discovery/subgraph.d.ts +0 -37
  807. package/dist/discovery/subgraph.js +0 -87
  808. package/dist/discovery/subgraph.js.map +0 -1
  809. package/dist/restorer/engine/manifest-assembly.d.ts +0 -67
  810. package/dist/restorer/engine/manifest-assembly.js +0 -79
  811. package/dist/restorer/engine/manifest-assembly.js.map +0 -1
  812. /package/dist/cli/commands/{quickstart.d.ts → ui.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/restorer/plug-ins/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Load installed Path 1 plug-ins from operator config and assemble a
3
+ * normalised slot registry. Per-plug-in failures are recorded but never
4
+ * abort the load — daemon boot continues with the surviving registry.
5
+ *
6
+ * Collision policy (phase-agent-override): first-installed-wins on the
7
+ * `(phase, agent, scope.matchKinds)` key. A collision is recorded as an
8
+ * error and the second plug-in is DROPPED. The operator must explicitly
9
+ * remove the existing plug-in before installing the new one.
10
+ * See plan §"Cross-task conventions / Slot routing rule".
11
+ */
12
+ import type { ExternalPlugInEntry } from './types.js';
13
+ import type { SlotRegistry } from './registry.js';
14
+ export interface LoadPlugInsArgs {
15
+ entries: readonly ExternalPlugInEntry[];
16
+ /** Version of the bundled claude-code-learner package. Used for compat checks. */
17
+ learnerVersion: string;
18
+ }
19
+ export interface LoadPlugInsResult {
20
+ registry: SlotRegistry;
21
+ errors: ReadonlyArray<{
22
+ plugInName: string;
23
+ reason: string;
24
+ }>;
25
+ warnings: ReadonlyArray<string>;
26
+ }
27
+ export declare function loadPlugIns({ entries, learnerVersion, }: LoadPlugInsArgs): Promise<LoadPlugInsResult>;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Load installed Path 1 plug-ins from operator config and assemble a
3
+ * normalised slot registry. Per-plug-in failures are recorded but never
4
+ * abort the load — daemon boot continues with the surviving registry.
5
+ *
6
+ * Collision policy (phase-agent-override): first-installed-wins on the
7
+ * `(phase, agent, scope.matchKinds)` key. A collision is recorded as an
8
+ * error and the second plug-in is DROPPED. The operator must explicitly
9
+ * remove the existing plug-in before installing the new one.
10
+ * See plan §"Cross-task conventions / Slot routing rule".
11
+ */
12
+ import { resolve } from 'node:path';
13
+ import semver from 'semver';
14
+ import { loadPlugInManifest } from './manifest.js';
15
+ export async function loadPlugIns({ entries, learnerVersion, }) {
16
+ const errors = [];
17
+ const warnings = [];
18
+ const topicExplorers = [];
19
+ const mcpTools = [];
20
+ const skillBundles = [];
21
+ const memoryBackends = [];
22
+ const hooks = [];
23
+ // Track first-installed-wins collisions for phase-agent overrides.
24
+ const phaseAgentKeyed = new Map();
25
+ for (const entry of entries) {
26
+ let manifest;
27
+ try {
28
+ manifest = await loadPlugInManifest(entry.entry);
29
+ }
30
+ catch (err) {
31
+ errors.push({ plugInName: entry.name, reason: err.message });
32
+ continue;
33
+ }
34
+ if (manifest.name !== entry.name) {
35
+ errors.push({
36
+ plugInName: entry.name,
37
+ reason: `manifest name "${manifest.name}" mismatches config entry "${entry.name}"`,
38
+ });
39
+ continue;
40
+ }
41
+ const range = manifest.compatibility.claudeCodeLearner;
42
+ if (!semver.satisfies(learnerVersion, range)) {
43
+ warnings.push(`plug-in ${manifest.name}@${manifest.version} compatibility ${range} out-of-range for claude-code-learner@${learnerVersion}; loading anyway, expected to break`);
44
+ }
45
+ const packageRoot = resolve(entry.entry);
46
+ for (const slot of manifest.slots) {
47
+ const provenance = {
48
+ plugInName: manifest.name,
49
+ plugInVersion: manifest.version,
50
+ packageRoot,
51
+ };
52
+ switch (slot.type) {
53
+ case 'phase-agent-override': {
54
+ const key = `${slot.phase}|${slot.agent}|${(slot.scope?.matchKinds ?? ['*']).join(',')}`;
55
+ if (phaseAgentKeyed.has(key)) {
56
+ const first = phaseAgentKeyed.get(key).plugInName;
57
+ errors.push({
58
+ plugInName: manifest.name,
59
+ reason: `phase-agent-override collision on "${key}": slot already registered by "${first}". Remove "${first}" before installing "${manifest.name}".`,
60
+ });
61
+ // Do not register the second plug-in — first-installed-wins.
62
+ break;
63
+ }
64
+ phaseAgentKeyed.set(key, { ...provenance, slot });
65
+ break;
66
+ }
67
+ case 'topic-explorer':
68
+ topicExplorers.push({ ...provenance, slot });
69
+ break;
70
+ case 'mcp-tool':
71
+ mcpTools.push({ ...provenance, slot });
72
+ break;
73
+ case 'skill-bundle':
74
+ skillBundles.push({ ...provenance, slot });
75
+ break;
76
+ case 'memory-backend':
77
+ memoryBackends.push({ ...provenance, slot });
78
+ break;
79
+ case 'hook':
80
+ hooks.push({ ...provenance, slot });
81
+ break;
82
+ }
83
+ }
84
+ }
85
+ const phaseAgentOverrides = [
86
+ ...phaseAgentKeyed.values(),
87
+ ];
88
+ return {
89
+ registry: {
90
+ phaseAgentOverrides,
91
+ topicExplorers,
92
+ mcpTools,
93
+ skillBundles,
94
+ memoryBackends,
95
+ hooks,
96
+ },
97
+ errors,
98
+ warnings,
99
+ };
100
+ }
101
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/restorer/plug-ins/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Load + validate a Path 1 plug-in's `jinn-plugin.json` manifest from a
3
+ * package root. Pure: no network, no signature verification (Path 1
4
+ * plug-ins inherit trust from the harness — see spec §4.3).
5
+ */
6
+ import type { JinnPlugInManifest } from './types.js';
7
+ export declare function loadPlugInManifest(packageRoot: string): Promise<JinnPlugInManifest>;
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Load + validate a Path 1 plug-in's `jinn-plugin.json` manifest from a
3
+ * package root. Pure: no network, no signature verification (Path 1
4
+ * plug-ins inherit trust from the harness — see spec §4.3).
5
+ */
6
+ import { readFile } from 'node:fs/promises';
7
+ import { existsSync } from 'node:fs';
8
+ import { join, resolve, relative, isAbsolute } from 'node:path';
9
+ import { fileURLToPath } from 'node:url';
10
+ import { Ajv2020 } from 'ajv/dist/2020.js';
11
+ import * as addFormatsModule from 'ajv-formats';
12
+ const addFormats = addFormatsModule
13
+ .default;
14
+ // TODO: refactor to import from client/src/util/path-safety.ts once Stream A
15
+ // creates that module (isInsidePackageDir mirrors isInsideWorkingDir from
16
+ // client/src/restorer/engine/packaging.ts).
17
+ function isInsidePackageDir(base, candidate) {
18
+ const b = resolve(base);
19
+ const c = resolve(candidate);
20
+ const rel = relative(b, c);
21
+ return rel !== '' && !rel.startsWith('..') && !isAbsolute(rel);
22
+ }
23
+ const SCHEMA_PATH = fileURLToPath(new URL('../../../schemas/jinn-plugin-v1.json', import.meta.url));
24
+ let validatorPromise = null;
25
+ let lastValidator;
26
+ async function getValidator() {
27
+ if (validatorPromise)
28
+ return validatorPromise;
29
+ validatorPromise = (async () => {
30
+ const ajv = new Ajv2020({ allErrors: true, strict: false });
31
+ addFormats(ajv);
32
+ const schema = JSON.parse(await readFile(SCHEMA_PATH, 'utf8'));
33
+ const compiled = ajv.compile(schema);
34
+ lastValidator = compiled;
35
+ return compiled;
36
+ })();
37
+ return validatorPromise;
38
+ }
39
+ export async function loadPlugInManifest(packageRoot) {
40
+ const root = resolve(packageRoot);
41
+ const manifestPath = join(root, 'jinn-plugin.json');
42
+ const pkgJsonPath = join(root, 'package.json');
43
+ if (!existsSync(manifestPath)) {
44
+ throw new Error(`jinn-plugin.json not found in ${root}`);
45
+ }
46
+ if (!existsSync(pkgJsonPath)) {
47
+ throw new Error(`package.json not found in ${root}`);
48
+ }
49
+ const [manifestText, pkgJsonText] = await Promise.all([
50
+ readFile(manifestPath, 'utf8'),
51
+ readFile(pkgJsonPath, 'utf8'),
52
+ ]);
53
+ let manifest;
54
+ try {
55
+ manifest = JSON.parse(manifestText);
56
+ }
57
+ catch (err) {
58
+ throw new Error(`jinn-plugin.json is invalid JSON: ${err.message}`);
59
+ }
60
+ const validate = await getValidator();
61
+ if (!validate(manifest)) {
62
+ const errs = (lastValidator?.errors ?? [])
63
+ .map((e) => `${e.instancePath} ${e.message}`)
64
+ .join('; ');
65
+ throw new Error(`jinn-plugin.json failed schema validation: ${errs}`);
66
+ }
67
+ const pkgJson = JSON.parse(pkgJsonText);
68
+ if (pkgJson.name !== manifest.name) {
69
+ throw new Error(`name mismatch: package.json has "${pkgJson.name}" but jinn-plugin.json has "${manifest.name}"`);
70
+ }
71
+ if (pkgJson.version !== manifest.version) {
72
+ throw new Error(`version mismatch: package.json has "${pkgJson.version}" but jinn-plugin.json has "${manifest.version}"`);
73
+ }
74
+ // Resolve + verify each slot's entry path on disk.
75
+ for (const slot of manifest.slots) {
76
+ if ('entry' in slot && slot.entry) {
77
+ const entryAbs = join(root, slot.entry);
78
+ if (!isInsidePackageDir(root, entryAbs)) {
79
+ throw new Error(`slot entry escapes package root (path traversal): ${slot.entry} (slot type: ${slot.type})`);
80
+ }
81
+ if (!existsSync(entryAbs)) {
82
+ throw new Error(`slot entry not found: ${slot.entry} (slot type: ${slot.type})`);
83
+ }
84
+ }
85
+ if ('skillsDir' in slot && slot.skillsDir) {
86
+ const skillsAbs = join(root, slot.skillsDir);
87
+ if (!isInsidePackageDir(root, skillsAbs)) {
88
+ throw new Error(`slot skillsDir escapes package root (path traversal): ${slot.skillsDir}`);
89
+ }
90
+ if (!existsSync(skillsAbs)) {
91
+ throw new Error(`slot skillsDir not found: ${slot.skillsDir}`);
92
+ }
93
+ }
94
+ }
95
+ return manifest;
96
+ }
97
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/restorer/plug-ins/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * In-memory normalised view of all installed Path 1 plug-ins, keyed by
3
+ * slot type. Built once at daemon boot from `config.learnerPlugIns[]`
4
+ * via {@link loadPlugIns}; serialised to JSON and threaded into the
5
+ * harness via `JINN_SLOT_REGISTRY_JSON` (see `serialise.ts`).
6
+ */
7
+ import type { PhaseAgentOverrideSlot, TopicExplorerSlot, McpToolSlot, SkillBundleSlot, MemoryBackendSlot, HookSlot } from './types.js';
8
+ /** A slot as stored in the registry — original slot data plus provenance. */
9
+ export interface RegistrySlot<S> {
10
+ plugInName: string;
11
+ plugInVersion: string;
12
+ /** Absolute path to the plug-in package root. */
13
+ packageRoot: string;
14
+ slot: S;
15
+ }
16
+ export interface SlotRegistry {
17
+ phaseAgentOverrides: ReadonlyArray<RegistrySlot<PhaseAgentOverrideSlot>>;
18
+ topicExplorers: ReadonlyArray<RegistrySlot<TopicExplorerSlot>>;
19
+ mcpTools: ReadonlyArray<RegistrySlot<McpToolSlot>>;
20
+ skillBundles: ReadonlyArray<RegistrySlot<SkillBundleSlot>>;
21
+ memoryBackends: ReadonlyArray<RegistrySlot<MemoryBackendSlot>>;
22
+ hooks: ReadonlyArray<RegistrySlot<HookSlot>>;
23
+ }
24
+ export declare function emptyRegistry(): SlotRegistry;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * In-memory normalised view of all installed Path 1 plug-ins, keyed by
3
+ * slot type. Built once at daemon boot from `config.learnerPlugIns[]`
4
+ * via {@link loadPlugIns}; serialised to JSON and threaded into the
5
+ * harness via `JINN_SLOT_REGISTRY_JSON` (see `serialise.ts`).
6
+ */
7
+ export function emptyRegistry() {
8
+ return {
9
+ phaseAgentOverrides: [],
10
+ topicExplorers: [],
11
+ mcpTools: [],
12
+ skillBundles: [],
13
+ memoryBackends: [],
14
+ hooks: [],
15
+ };
16
+ }
17
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/restorer/plug-ins/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,mBAAmB,EAAE,EAAE;QACvB,cAAc,EAAE,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,EAAE;QAClB,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Serialise the in-memory {@link SlotRegistry} into a JSON-stable shape
3
+ * for the harness hand-off (`workingDir/.coordinator/slots.json`).
4
+ *
5
+ * Phase skills `Read` this file and route plug-in contributions into
6
+ * orient / strategize / plan / execute / debrief / improve /
7
+ * memory-consolidation. Shape is intentionally simple — no types, just
8
+ * JSON objects that markdown skills can grep/jq.
9
+ */
10
+ import type { SlotRegistry } from './registry.js';
11
+ import type { Slot, PhaseAgentOverrideSlot, TopicExplorerSlot, McpToolSlot, SkillBundleSlot, MemoryBackendSlot, HookSlot } from './types.js';
12
+ export interface SerialisedSlot<S extends Slot> {
13
+ plugInName: string;
14
+ packageRoot: string;
15
+ slot: S;
16
+ }
17
+ export interface SerialisedRegistry {
18
+ /** ISO timestamp of registry construction. */
19
+ builtAt: string;
20
+ /** claude-code-learner version this registry was built against. */
21
+ learnerVersion: string;
22
+ phaseAgentOverrides: ReadonlyArray<SerialisedSlot<PhaseAgentOverrideSlot>>;
23
+ topicExplorers: ReadonlyArray<SerialisedSlot<TopicExplorerSlot>>;
24
+ mcpTools: ReadonlyArray<SerialisedSlot<McpToolSlot>>;
25
+ skillBundles: ReadonlyArray<SerialisedSlot<SkillBundleSlot>>;
26
+ memoryBackends: ReadonlyArray<SerialisedSlot<MemoryBackendSlot>>;
27
+ hooks: ReadonlyArray<SerialisedSlot<HookSlot>>;
28
+ }
29
+ export declare function serialiseRegistry(registry: SlotRegistry, learnerVersion: string): SerialisedRegistry;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Serialise the in-memory {@link SlotRegistry} into a JSON-stable shape
3
+ * for the harness hand-off (`workingDir/.coordinator/slots.json`).
4
+ *
5
+ * Phase skills `Read` this file and route plug-in contributions into
6
+ * orient / strategize / plan / execute / debrief / improve /
7
+ * memory-consolidation. Shape is intentionally simple — no types, just
8
+ * JSON objects that markdown skills can grep/jq.
9
+ */
10
+ function projectSlot(r) {
11
+ return {
12
+ plugInName: r.plugInName,
13
+ packageRoot: r.packageRoot,
14
+ slot: r.slot,
15
+ };
16
+ }
17
+ export function serialiseRegistry(registry, learnerVersion) {
18
+ return {
19
+ builtAt: new Date().toISOString(),
20
+ learnerVersion,
21
+ phaseAgentOverrides: registry.phaseAgentOverrides.map(projectSlot),
22
+ topicExplorers: registry.topicExplorers.map(projectSlot),
23
+ mcpTools: registry.mcpTools.map(projectSlot),
24
+ skillBundles: registry.skillBundles.map(projectSlot),
25
+ memoryBackends: registry.memoryBackends.map(projectSlot),
26
+ hooks: registry.hooks.map(projectSlot),
27
+ };
28
+ }
29
+ //# sourceMappingURL=serialise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialise.js","sourceRoot":"","sources":["../../../src/restorer/plug-ins/serialise.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgCH,SAAS,WAAW,CAAiB,CAAkB;IACrD,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAAsB,EACtB,cAAsB;IAEtB,OAAO;QACL,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,cAAc;QACd,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC;QAClE,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QACxD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QAC5C,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;QACpD,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QACxD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Type definitions for the Path 1 plug-in surface (`jinn-plugin.json`).
3
+ *
4
+ * Spec: spec/2026-04-30-plug-in-surface.md §4. Plan:
5
+ * docs/superpowers/plans/2026-04-30-plug-in-surface-path-1-mechanism.md.
6
+ *
7
+ * The shape mirrors `client/schemas/jinn-plugin-v1.json` 1:1.
8
+ */
9
+ export type SlotScope = {
10
+ matchKinds: readonly string[];
11
+ };
12
+ export type PhaseAgentOverrideSlot = {
13
+ type: 'phase-agent-override';
14
+ phase: 'strategize' | 'plan' | 'execute' | 'debrief' | 'improve' | 'memory-consolidation';
15
+ agent: 'strategist' | 'planner' | 'step-worker' | 'analyst' | 'promoter' | 'consolidator';
16
+ scope?: SlotScope;
17
+ entry: string;
18
+ };
19
+ export type TopicExplorerSlot = {
20
+ type: 'topic-explorer';
21
+ phase: 'orient' | 'debrief';
22
+ topic: string;
23
+ scope?: SlotScope;
24
+ entry: string;
25
+ };
26
+ export type McpToolSlot = {
27
+ type: 'mcp-tool';
28
+ command: string;
29
+ args: readonly string[];
30
+ namespace?: string;
31
+ };
32
+ export type SkillBundleSlot = {
33
+ type: 'skill-bundle';
34
+ skillsDir: string;
35
+ scope?: SlotScope;
36
+ };
37
+ export type MemoryBackendSlot = {
38
+ type: 'memory-backend';
39
+ command: string;
40
+ args: readonly string[];
41
+ scope?: SlotScope;
42
+ };
43
+ export type HookSlot = {
44
+ type: 'hook';
45
+ event: 'session-start' | 'pre-phase' | 'post-phase' | 'session-end';
46
+ phase?: 'orient' | 'strategize' | 'plan' | 'execute' | 'debrief' | 'improve' | 'memory-consolidation';
47
+ entry: string;
48
+ scope?: SlotScope;
49
+ };
50
+ export type Slot = PhaseAgentOverrideSlot | TopicExplorerSlot | McpToolSlot | SkillBundleSlot | MemoryBackendSlot | HookSlot;
51
+ export interface JinnPlugInManifest {
52
+ schemaVersion: '1.0.0';
53
+ name: string;
54
+ version: string;
55
+ description?: string;
56
+ compatibility: {
57
+ claudeCodeLearner: string;
58
+ supportedKinds?: readonly string[];
59
+ };
60
+ slots: readonly Slot[];
61
+ author?: {
62
+ name: string;
63
+ url?: string;
64
+ };
65
+ license?: string;
66
+ homepage?: string;
67
+ }
68
+ /**
69
+ * One entry in operator config (`config.learnerPlugIns[]`). Points the
70
+ * loader at a package root that contains a `jinn-plugin.json` manifest.
71
+ */
72
+ export interface ExternalPlugInEntry {
73
+ /** MUST equal the manifest's `name`. */
74
+ name: string;
75
+ /** Local filesystem path to the plug-in package's root (typically a node_modules path). */
76
+ entry: string;
77
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Type definitions for the Path 1 plug-in surface (`jinn-plugin.json`).
3
+ *
4
+ * Spec: spec/2026-04-30-plug-in-surface.md §4. Plan:
5
+ * docs/superpowers/plans/2026-04-30-plug-in-surface-path-1-mechanism.md.
6
+ *
7
+ * The shape mirrors `client/schemas/jinn-plugin-v1.json` 1:1.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/restorer/plug-ins/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -3,10 +3,12 @@
3
3
  *
4
4
  * Pure type definitions; no runtime side effects.
5
5
  */
6
- import type { DesiredState } from '../types/desired-state.js';
6
+ import type { RestorationJob } from '../types/desired-state.js';
7
7
  import type { OutputArtifact, RationaleEntry, Snapshot } from '../types/portfolio.js';
8
+ import type { TrajectoryCollector } from '../trajectory/index.js';
9
+ import type { ScopedSigner, ScopedRpc, ScopedSecrets } from './capability/index.js';
8
10
  export interface RestorationContext {
9
- intent: DesiredState;
11
+ intent: RestorationJob;
10
12
  /**
11
13
  * IPFS CID of this job's desired state (from Marketplace / observe).
12
14
  * Restorers' submission manifests should reference the same CID; evaluators
@@ -26,6 +28,31 @@ export interface RestorationContext {
26
28
  /** Fires at window.endTs. */
27
29
  abort: AbortSignal;
28
30
  msUntilEndTs: () => number;
31
+ /**
32
+ * In-run trajectory collector. Impls call ctx.trajectory.addSpan(...)
33
+ * (or use the traced wrappers) to emit spans. The engine emits the
34
+ * collected trajectory to IPFS before envelope assembly and populates
35
+ * envelope.trajectory with the resulting { cid, sha256 }.
36
+ */
37
+ trajectory: TrajectoryCollector;
38
+ /**
39
+ * Scoped signer capability. Present when the daemon is providing a
40
+ * signing surface to this impl per its manifest allow-list. Absent
41
+ * for stub-mode CLI introspection.
42
+ * Spec: `spec/2026-05-executor-trust-boundary.md` §3.2.
43
+ */
44
+ signer?: ScopedSigner;
45
+ /**
46
+ * Scoped read-only RPC client. Method-filtered, rate-limited, and
47
+ * chain-scoped per the impl's manifest.
48
+ * Spec: `spec/2026-05-executor-trust-boundary.md` §3.3.
49
+ */
50
+ rpc?: ScopedRpc;
51
+ /**
52
+ * Per-impl secret bag, populated by `onEnable`.
53
+ * Spec: `spec/2026-05-executor-trust-boundary.md` §3.4.
54
+ */
55
+ secrets?: ScopedSecrets;
29
56
  }
30
57
  export interface RestorationOutput {
31
58
  venueRef: {
@@ -38,9 +65,36 @@ export interface RestorationOutput {
38
65
  /** Shape is per spec.kind convention. */
39
66
  gating: Record<string, unknown>;
40
67
  informational?: Record<string, unknown>;
68
+ /**
69
+ * Full restoration payload for impls whose kind has a non-portfolio payload
70
+ * schema (e.g. prediction.v0, prediction.apy.v0).
71
+ *
72
+ * When set, engine.pack() uses this directly as the envelope payload
73
+ * (validated against the kind's restoration schema) instead of building the
74
+ * portfolio-shaped { preSnapshot, postSnapshot, fills, gating } wrapper.
75
+ * Portfolio impls MUST leave this undefined (engine falls back to legacy shape).
76
+ */
77
+ restorationPayload?: Record<string, unknown>;
78
+ /**
79
+ * Full verdict payload for evaluator impls (intentType === 'evaluation').
80
+ *
81
+ * When set, engine.pack() uses role='verdict' and passes this as the
82
+ * envelope payload directly (validated against the kind's verdict schema).
83
+ * Restoration impls MUST leave this undefined.
84
+ */
85
+ verdictPayload?: Record<string, unknown>;
41
86
  artifacts?: OutputArtifact[];
42
87
  rationale?: RationaleEntry[];
43
88
  }
89
+ /**
90
+ * Kind/type slice for contextual impl probes (`isReady`, `enableMetadata`,
91
+ * `onEnable` / `onDisable` delegation on wrappers). Mirrors the `supports()`
92
+ * discriminant.
93
+ */
94
+ export type ImplIntentPeek = {
95
+ kind: string;
96
+ type?: 'restoration' | 'evaluation';
97
+ };
44
98
  /**
45
99
  * Context-free readiness probe. "Are this impl's external dependencies
46
100
  * satisfied right now, regardless of any specific intent?" Used by
@@ -134,7 +188,7 @@ export interface RestorerImpl {
134
188
  /**
135
189
  * Return true if this impl should handle the given (kind, type) pair.
136
190
  *
137
- * `type` reflects DesiredState.type:
191
+ * `type` reflects RestorationJob.type:
138
192
  * - 'restoration' (or undefined — legacy default): the impl runs a restoration attempt
139
193
  * - 'evaluation': the impl runs as an evaluator producing a verdict
140
194
  *
@@ -145,7 +199,7 @@ export interface RestorerImpl {
145
199
  kind: string;
146
200
  type?: 'restoration' | 'evaluation';
147
201
  }): boolean;
148
- canAttempt?(intent: DesiredState): Promise<{
202
+ canAttempt?(intent: RestorationJob): Promise<{
149
203
  ok: true;
150
204
  } | {
151
205
  ok: false;
@@ -153,17 +207,18 @@ export interface RestorerImpl {
153
207
  }>;
154
208
  run(ctx: RestorationContext): Promise<RestorationOutput>;
155
209
  /**
156
- * Context-free readiness probe. Zero-dep impls can omit this (treated
157
- * as `{ ready: true }`). Impls with external deps (credentials, files,
158
- * exchange approvals) report current readiness plus a `nextStep` hint.
210
+ * Readiness probe. Zero-dep impls can omit this (treated as `{ ready: true }`).
211
+ * When `spec` is provided (daemon pre-claim gate, `jinn intents`), wrappers
212
+ * should delegate to the kind-matched specialist instead of aggregating all.
159
213
  */
160
- isReady?(): Promise<ReadyStatus>;
214
+ isReady?(spec?: ImplIntentPeek): Promise<ReadyStatus>;
161
215
  /**
162
216
  * Describes what `onEnable` wants from the caller. Consumed by
163
217
  * `jinn intents list` so the agent can tell the operator what a
164
218
  * specific kind's enable flow needs without triggering it first.
219
+ * With `spec`, wrappers delegate to the specialist for that kind.
165
220
  */
166
- enableMetadata?(): IntentEnableMetadata;
221
+ enableMetadata?(spec?: ImplIntentPeek): IntentEnableMetadata | undefined;
167
222
  /**
168
223
  * Idempotent enable-state machine. Called by `jinn intents enable <kind>`.
169
224
  *
@@ -182,7 +237,7 @@ export interface RestorerImpl {
182
237
  * Impls that omit this method cannot be enabled by the generic CLI;
183
238
  * they are either always-on (zero-dep) or require manual config.
184
239
  */
185
- onEnable?(args: Record<string, string | undefined>): Promise<EnableResult>;
240
+ onEnable?(args: Record<string, string | undefined>, spec?: ImplIntentPeek): Promise<EnableResult>;
186
241
  /**
187
242
  * Optional inverse of `onEnable`. Invoked when the operator runs
188
243
  * `jinn intents disable <kind>`. Should NOT destroy unrecoverable
@@ -190,5 +245,5 @@ export interface RestorerImpl {
190
245
  * that for explicit `jinn intents purge` or similar (out of scope
191
246
  * for this interface).
192
247
  */
193
- onDisable?(): Promise<void>;
248
+ onDisable?(spec?: ImplIntentPeek): Promise<void>;
194
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/restorer/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2DH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAgB;IACzD,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE;QACR,WAAW,EAAE,mDAAmD;QAChE,GAAG,EAAE,UAAU;KAChB;CACF,CAAC;AA0DF,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,MAAM,CAAS;IAExB,YAAY,MAAc,EAAE,OAAgB;QAC1C,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/restorer/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoHH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAgB;IACzD,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE;QACR,WAAW,EAAE,mDAAmD;QAChE,GAAG,EAAE,UAAU;KAChB;CACF,CAAC;AA0DF,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,MAAM,CAAS;IAExB,YAAY,MAAc,EAAE,OAAgB;QAC1C,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { DesiredState, RestorationResult } from '../types/index.js';
1
+ import type { RestorationJob, RestorationResult } from '../types/index.js';
2
2
  import type { Runner, RunnerContext } from './runner.js';
3
3
  export interface ClaudeRunnerConfig {
4
4
  claudePath?: string;
@@ -10,6 +10,6 @@ export declare class ClaudeRunner implements Runner {
10
10
  private model?;
11
11
  private readonly mcpLauncher;
12
12
  constructor(config?: ClaudeRunnerConfig);
13
- run(desiredState: DesiredState, context: RunnerContext): Promise<RestorationResult>;
13
+ run(restorationJob: RestorationJob, context: RunnerContext): Promise<RestorationResult>;
14
14
  }
15
- export declare function buildPrompt(desiredState: DesiredState): string;
15
+ export declare function buildPrompt(restorationJob: RestorationJob): string;