@jinn-network/client 0.1.9-canary.5c19fc6d → 0.1.9-canary.5ff3d8cb

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 (295) hide show
  1. package/CONTRIBUTING.md +2 -2
  2. package/dist/adapters/mech/adapter.d.ts +10 -0
  3. package/dist/adapters/mech/adapter.js +19 -1
  4. package/dist/adapters/mech/adapter.js.map +1 -1
  5. package/dist/adapters/mech/types.d.ts +1 -88
  6. package/dist/adapters/mech/types.js +1 -45
  7. package/dist/adapters/mech/types.js.map +1 -1
  8. package/dist/api/bootstrap-endpoint.d.ts +18 -3
  9. package/dist/api/bootstrap-endpoint.js +3 -0
  10. package/dist/api/bootstrap-endpoint.js.map +1 -1
  11. package/dist/api/gather-status.js +6 -5
  12. package/dist/api/gather-status.js.map +1 -1
  13. package/dist/api/launcher-endpoints.js +6 -1
  14. package/dist/api/launcher-endpoints.js.map +1 -1
  15. package/dist/api/launcher-status.d.ts +2 -0
  16. package/dist/api/launcher-status.js.map +1 -1
  17. package/dist/api/launcher-tasks.d.ts +47 -0
  18. package/dist/api/launcher-tasks.js +88 -3
  19. package/dist/api/launcher-tasks.js.map +1 -1
  20. package/dist/api/loop-completion-build.d.ts +2 -2
  21. package/dist/api/loop-completion-build.js +2 -3
  22. package/dist/api/loop-completion-build.js.map +1 -1
  23. package/dist/api/portfolio-v0-build.d.ts +2 -1
  24. package/dist/api/portfolio-v0-build.js +5 -7
  25. package/dist/api/portfolio-v0-build.js.map +1 -1
  26. package/dist/api/prediction-v1-build.d.ts +2 -2
  27. package/dist/api/prediction-v1-build.js +5 -7
  28. package/dist/api/prediction-v1-build.js.map +1 -1
  29. package/dist/api/setup-endpoints.d.ts +4 -0
  30. package/dist/api/setup-endpoints.js +13 -7
  31. package/dist/api/setup-endpoints.js.map +1 -1
  32. package/dist/api/status-build.js +1 -4
  33. package/dist/api/status-build.js.map +1 -1
  34. package/dist/api/task-run-routing.d.ts +1 -1
  35. package/dist/api/task-runs-build.d.ts +2 -2
  36. package/dist/api/task-runs-build.js +5 -7
  37. package/dist/api/task-runs-build.js.map +1 -1
  38. package/dist/bin/jinn-distill-mcp.js +813 -0
  39. package/dist/bin/jinn-layer.js +4992 -1151
  40. package/dist/build-info.json +4 -4
  41. package/dist/build-meta.json +1 -1
  42. package/dist/captures/distil-export.d.ts +54 -0
  43. package/dist/captures/distil-export.js +135 -0
  44. package/dist/captures/distil-export.js.map +1 -0
  45. package/dist/captures/ingest.d.ts +21 -0
  46. package/dist/captures/ingest.js +144 -0
  47. package/dist/captures/ingest.js.map +1 -0
  48. package/dist/captures/live-publisher.js +4 -3
  49. package/dist/captures/live-publisher.js.map +1 -1
  50. package/dist/captures/publish.d.ts +4 -0
  51. package/dist/captures/publish.js +2 -2
  52. package/dist/captures/publish.js.map +1 -1
  53. package/dist/cli/execution-context.js +2 -1
  54. package/dist/cli/execution-context.js.map +1 -1
  55. package/dist/config.js +34 -1
  56. package/dist/config.js.map +1 -1
  57. package/dist/contracts/abis.d.ts +100 -0
  58. package/dist/contracts/abis.js +58 -0
  59. package/dist/contracts/abis.js.map +1 -0
  60. package/dist/contracts/addresses.d.ts +36 -0
  61. package/dist/contracts/addresses.js +60 -0
  62. package/dist/contracts/addresses.js.map +1 -0
  63. package/dist/corpus/onchain-query.d.ts +0 -1
  64. package/dist/corpus/onchain-query.js +2 -5
  65. package/dist/corpus/onchain-query.js.map +1 -1
  66. package/dist/daemon/balance-topup-loop.js +27 -12
  67. package/dist/daemon/balance-topup-loop.js.map +1 -1
  68. package/dist/daemon/creator.js +15 -13
  69. package/dist/daemon/creator.js.map +1 -1
  70. package/dist/daemon/daemon.js +35 -13
  71. package/dist/daemon/daemon.js.map +1 -1
  72. package/dist/daemon/loop-heartbeat.d.ts +62 -7
  73. package/dist/daemon/loop-heartbeat.js +50 -13
  74. package/dist/daemon/loop-heartbeat.js.map +1 -1
  75. package/dist/{api/peers.js → daemon/peer-sync.js} +2 -2
  76. package/dist/daemon/peer-sync.js.map +1 -0
  77. package/dist/daemon/reward-claim-loop.js +27 -12
  78. package/dist/daemon/reward-claim-loop.js.map +1 -1
  79. package/dist/daemon/spend-cap-gate.d.ts +0 -6
  80. package/dist/daemon/spend-cap-gate.js +1 -8
  81. package/dist/daemon/spend-cap-gate.js.map +1 -1
  82. package/dist/dashboard/assets/index-BdGCkGPF.js +157 -0
  83. package/dist/dashboard/assets/index-D7rvJRNa.css +1 -0
  84. package/dist/dashboard/index.html +2 -2
  85. package/dist/discovery/http.js +83 -1
  86. package/dist/discovery/http.js.map +1 -1
  87. package/dist/discovery/onchain.js +16 -8
  88. package/dist/discovery/onchain.js.map +1 -1
  89. package/dist/discovery/types.d.ts +43 -0
  90. package/dist/discovery/types.js.map +1 -1
  91. package/dist/discovery/with-fallback.js +10 -0
  92. package/dist/discovery/with-fallback.js.map +1 -1
  93. package/dist/earning/bootstrap-run.d.ts +25 -0
  94. package/dist/earning/bootstrap-run.js +315 -0
  95. package/dist/earning/bootstrap-run.js.map +1 -0
  96. package/dist/earning/bootstrap.d.ts +6 -11
  97. package/dist/earning/bootstrap.js +45 -195
  98. package/dist/earning/bootstrap.js.map +1 -1
  99. package/dist/earning/contracts.d.ts +2 -3
  100. package/dist/earning/contracts.js +12 -21
  101. package/dist/earning/contracts.js.map +1 -1
  102. package/dist/earning/master-gas.d.ts +10 -0
  103. package/dist/earning/master-gas.js +11 -0
  104. package/dist/earning/master-gas.js.map +1 -0
  105. package/dist/earning/safe-adapter.js +1 -45
  106. package/dist/earning/safe-adapter.js.map +1 -1
  107. package/dist/earning/steps/context.d.ts +42 -0
  108. package/dist/earning/steps/context.js +4 -0
  109. package/dist/earning/steps/context.js.map +1 -0
  110. package/dist/earning/steps/fleet-identity-register.d.ts +4 -0
  111. package/dist/earning/steps/fleet-identity-register.js +65 -0
  112. package/dist/earning/steps/fleet-identity-register.js.map +1 -0
  113. package/dist/earning/steps/fleet-safe-deploy.d.ts +4 -0
  114. package/dist/earning/steps/fleet-safe-deploy.js +62 -0
  115. package/dist/earning/steps/fleet-safe-deploy.js.map +1 -0
  116. package/dist/earning/steps/fleet-safe-predict.d.ts +4 -0
  117. package/dist/earning/steps/fleet-safe-predict.js +18 -0
  118. package/dist/earning/steps/fleet-safe-predict.js.map +1 -0
  119. package/dist/earning/steps/receipt-parsing.d.ts +12 -0
  120. package/dist/earning/steps/receipt-parsing.js +71 -0
  121. package/dist/earning/steps/receipt-parsing.js.map +1 -0
  122. package/dist/earning/stolas-staking.js +20 -14
  123. package/dist/earning/stolas-staking.js.map +1 -1
  124. package/dist/erc8004/addresses.d.ts +6 -5
  125. package/dist/erc8004/addresses.js +7 -5
  126. package/dist/erc8004/addresses.js.map +1 -1
  127. package/dist/erc8004/identity.d.ts +12 -1
  128. package/dist/erc8004/identity.js +31 -0
  129. package/dist/erc8004/identity.js.map +1 -1
  130. package/dist/erc8004/index.d.ts +1 -1
  131. package/dist/erc8004/index.js +1 -1
  132. package/dist/erc8004/index.js.map +1 -1
  133. package/dist/erc8004/reputation.js +16 -12
  134. package/dist/erc8004/reputation.js.map +1 -1
  135. package/dist/erc8004/validation.js +5 -4
  136. package/dist/erc8004/validation.js.map +1 -1
  137. package/dist/eval/capability-slate.d.ts +54 -0
  138. package/dist/eval/capability-slate.js +116 -0
  139. package/dist/eval/capability-slate.js.map +1 -0
  140. package/dist/eval/capability-stats.d.ts +39 -0
  141. package/dist/eval/capability-stats.js +123 -0
  142. package/dist/eval/capability-stats.js.map +1 -0
  143. package/dist/eval/contested-band.d.ts +18 -0
  144. package/dist/eval/contested-band.js +19 -0
  145. package/dist/eval/contested-band.js.map +1 -0
  146. package/dist/eval/corpus-index.d.ts +21 -0
  147. package/dist/eval/corpus-index.js +55 -0
  148. package/dist/eval/corpus-index.js.map +1 -0
  149. package/dist/eval/disjointness.d.ts +26 -0
  150. package/dist/eval/disjointness.js +67 -0
  151. package/dist/eval/disjointness.js.map +1 -0
  152. package/dist/eval/mcnemar-power.d.ts +14 -0
  153. package/dist/eval/mcnemar-power.js +40 -0
  154. package/dist/eval/mcnemar-power.js.map +1 -0
  155. package/dist/harnesses/engine/engine.d.ts +2 -1
  156. package/dist/harnesses/engine/engine.js +15 -2
  157. package/dist/harnesses/engine/engine.js.map +1 -1
  158. package/dist/harnesses/engine/persistence.d.ts +2 -61
  159. package/dist/harnesses/engine/persistence.js.map +1 -1
  160. package/dist/harnesses/impls/_evaluator-base.d.ts +48 -0
  161. package/dist/harnesses/impls/_evaluator-base.js +35 -0
  162. package/dist/harnesses/impls/_evaluator-base.js.map +1 -0
  163. package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +2 -3
  164. package/dist/harnesses/impls/claude-mcp-prediction/index.js +29 -99
  165. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -1
  166. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +4 -21
  167. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -1
  168. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +2 -0
  169. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +1 -1
  170. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
  171. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +30 -79
  172. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -1
  173. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +4 -19
  174. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -1
  175. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +2 -0
  176. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +1 -1
  177. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
  178. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.d.ts +39 -0
  179. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js +62 -0
  180. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js.map +1 -0
  181. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.d.ts +40 -0
  182. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js +44 -0
  183. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js.map +1 -0
  184. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.d.ts +56 -0
  185. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js +79 -0
  186. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js.map +1 -0
  187. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +3 -1
  188. package/dist/harnesses/impls/learner/adapters/codex-code.js +39 -4
  189. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  190. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +5 -15
  191. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +10 -29
  192. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -1
  193. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +5 -15
  194. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +10 -23
  195. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  196. package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +5 -15
  197. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +10 -25
  198. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -1
  199. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +8 -0
  200. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  201. package/dist/learner/verification-gate.d.ts +53 -0
  202. package/dist/learner/verification-gate.js +80 -0
  203. package/dist/learner/verification-gate.js.map +1 -0
  204. package/dist/main.js +74 -457
  205. package/dist/main.js.map +1 -1
  206. package/dist/monitoring/net-liveness.d.ts +143 -0
  207. package/dist/monitoring/net-liveness.js +301 -0
  208. package/dist/monitoring/net-liveness.js.map +1 -0
  209. package/dist/observability/progress.d.ts +11 -0
  210. package/dist/observability/progress.js +16 -0
  211. package/dist/observability/progress.js.map +1 -0
  212. package/dist/pilot/cost.d.ts +19 -0
  213. package/dist/pilot/cost.js +31 -0
  214. package/dist/pilot/cost.js.map +1 -0
  215. package/dist/pilot/instance.d.ts +20 -0
  216. package/dist/pilot/instance.js +19 -0
  217. package/dist/pilot/instance.js.map +1 -0
  218. package/dist/pilot/repo.d.ts +31 -0
  219. package/dist/pilot/repo.js +42 -0
  220. package/dist/pilot/repo.js.map +1 -0
  221. package/dist/pilot/solve.d.ts +22 -0
  222. package/dist/pilot/solve.js +37 -0
  223. package/dist/pilot/solve.js.map +1 -0
  224. package/dist/pilot/tally.d.ts +35 -0
  225. package/dist/pilot/tally.js +61 -0
  226. package/dist/pilot/tally.js.map +1 -0
  227. package/dist/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  228. package/dist/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  229. package/dist/plugins/local-trace-distiller/.mcp.json +8 -0
  230. package/dist/plugins/local-trace-distiller/README.md +27 -0
  231. package/dist/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  232. package/dist/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  233. package/dist/preflight/rpc-network.d.ts +10 -3
  234. package/dist/preflight/rpc-network.js +46 -13
  235. package/dist/preflight/rpc-network.js.map +1 -1
  236. package/dist/preflight/stable-cwd.d.ts +29 -0
  237. package/dist/preflight/stable-cwd.js +98 -0
  238. package/dist/preflight/stable-cwd.js.map +1 -0
  239. package/dist/solvernets/launched-record-dispatcher.js +6 -0
  240. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  241. package/dist/spend/credential.d.ts +2 -2
  242. package/dist/spend/credential.js +9 -3
  243. package/dist/spend/credential.js.map +1 -1
  244. package/dist/spend/spend-cap.d.ts +10 -0
  245. package/dist/spend/spend-cap.js +13 -0
  246. package/dist/spend/spend-cap.js.map +1 -0
  247. package/dist/store/store.d.ts +14 -0
  248. package/dist/store/store.js +10 -1
  249. package/dist/store/store.js.map +1 -1
  250. package/dist/trajectory/processors/identity-scrub.js +22 -3
  251. package/dist/trajectory/processors/identity-scrub.js.map +1 -1
  252. package/dist/trajectory/scrub/build.d.ts +19 -0
  253. package/dist/trajectory/scrub/build.js +25 -0
  254. package/dist/trajectory/scrub/build.js.map +1 -1
  255. package/dist/trajectory/scrub/layer2.d.ts +23 -0
  256. package/dist/trajectory/scrub/layer2.js +33 -0
  257. package/dist/trajectory/scrub/layer2.js.map +1 -0
  258. package/dist/trajectory/scrub/openredaction-stage.d.ts +127 -0
  259. package/dist/trajectory/scrub/openredaction-stage.js +186 -2
  260. package/dist/trajectory/scrub/openredaction-stage.js.map +1 -1
  261. package/dist/trajectory/scrub/pipeline.d.ts +21 -0
  262. package/dist/trajectory/scrub/pipeline.js +57 -0
  263. package/dist/trajectory/scrub/pipeline.js.map +1 -1
  264. package/dist/trajectory/scrub/plain-patterns-stage.d.ts +14 -1
  265. package/dist/trajectory/scrub/plain-patterns-stage.js +35 -5
  266. package/dist/trajectory/scrub/plain-patterns-stage.js.map +1 -1
  267. package/dist/trajectory/scrub/secretlint-stage.d.ts +22 -3
  268. package/dist/trajectory/scrub/secretlint-stage.js +118 -27
  269. package/dist/trajectory/scrub/secretlint-stage.js.map +1 -1
  270. package/dist/trajectory/transcript-watcher.d.ts +26 -0
  271. package/dist/trajectory/transcript-watcher.js +33 -0
  272. package/dist/trajectory/transcript-watcher.js.map +1 -1
  273. package/dist/types/skill-artifact.d.ts +442 -0
  274. package/dist/types/skill-artifact.js +137 -0
  275. package/dist/types/skill-artifact.js.map +1 -0
  276. package/dist/types/task-run-read-model.d.ts +21 -0
  277. package/dist/types/task-run-read-model.js +2 -0
  278. package/dist/types/task-run-read-model.js.map +1 -0
  279. package/dist/types/task-run.d.ts +75 -0
  280. package/dist/types/task-run.js +2 -0
  281. package/dist/types/task-run.js.map +1 -0
  282. package/dist/util/redact-rpc-urls.d.ts +1 -1
  283. package/dist/util/redact-rpc-urls.js +57 -2
  284. package/dist/util/redact-rpc-urls.js.map +1 -1
  285. package/package.json +11 -8
  286. package/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  287. package/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  288. package/plugins/local-trace-distiller/.mcp.json +8 -0
  289. package/plugins/local-trace-distiller/README.md +27 -0
  290. package/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  291. package/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  292. package/dist/api/peers.js.map +0 -1
  293. package/dist/dashboard/assets/index-BsrAAmvC.js +0 -171
  294. package/dist/dashboard/assets/index-DQOWJ2SF.css +0 -1
  295. /package/dist/{api/peers.d.ts → daemon/peer-sync.d.ts} +0 -0
@@ -0,0 +1,61 @@
1
+ import { nonInferiorityVerdict, pairedCostVerdict } from '../eval/capability-stats.js';
2
+ /** One-sided Wilcoxon signed-rank cannot reject below ~5 non-zero diffs
3
+ * (1/2^n ≥ α for n < 5), so a 'lower'/'not-lower' verdict on fewer is unpowered. */
4
+ const WILCOXON_MIN_REJECTABLE_N = 5;
5
+ export function tallyPilot(outcomes, opts) {
6
+ const byTask = new Map();
7
+ for (const o of outcomes)
8
+ (byTask.get(o.instance_id) ?? byTask.set(o.instance_id, []).get(o.instance_id)).push(o);
9
+ const rates = [];
10
+ const costDiffs = [];
11
+ let excluded = 0;
12
+ let aPassTot = 0, aTot = 0, bPassTot = 0, bTot = 0, bothSolve = 0;
13
+ for (const [, os] of byTask) {
14
+ const A = os.filter((o) => o.arm === 'A');
15
+ const B = os.filter((o) => o.arm === 'B');
16
+ const gradedA = A.filter((o) => o.passed !== null);
17
+ const gradedB = B.filter((o) => o.passed !== null);
18
+ if (gradedA.length === 0 || gradedB.length === 0) {
19
+ excluded++;
20
+ continue;
21
+ }
22
+ const pA = gradedA.filter((o) => o.passed === true).length / gradedA.length;
23
+ const pB = gradedB.filter((o) => o.passed === true).length / gradedB.length;
24
+ rates.push({ pA, pB });
25
+ aPassTot += gradedA.filter((o) => o.passed === true).length;
26
+ aTot += gradedA.length;
27
+ bPassTot += gradedB.filter((o) => o.passed === true).length;
28
+ bTot += gradedB.length;
29
+ // both-solve cost: mean cost on the repeats where BOTH arms passed (like-for-like)
30
+ if (pA > 0 && pB > 0) {
31
+ const meanCost = (xs, pass) => {
32
+ const f = xs.filter((o) => o.passed === pass);
33
+ return f.length ? f.reduce((s, o) => s + o.costUsd, 0) / f.length : NaN;
34
+ };
35
+ const ca = meanCost(gradedA, true), cb = meanCost(gradedB, true);
36
+ if (Number.isFinite(ca) && Number.isFinite(cb)) {
37
+ costDiffs.push(cb - ca);
38
+ bothSolve++;
39
+ }
40
+ }
41
+ }
42
+ const stockBaseRate = aTot > 0 ? aPassTot / aTot : 0;
43
+ const ni = rates.length
44
+ ? nonInferiorityVerdict(rates, { rng: opts.rng, stockBaseRate: Math.max(stockBaseRate, 1e-9) })
45
+ : { pass: false, lowerBound: NaN, relativeRegression: NaN, reasons: ['no gradeable pairs'] };
46
+ // pilot scale — small both-solve sets are expected; minN:1 lets the cost verdict go live rather than always 'inconclusive'.
47
+ // The verdict is still surfaced with its n + an `underpowered` flag so a tiny-n read isn't mistaken for a powered one.
48
+ const cost = pairedCostVerdict(costDiffs, { minN: 1 });
49
+ const median = (xs) => { if (!xs.length)
50
+ return NaN; const s = [...xs].sort((a, b) => a - b); const m = s.length >> 1; return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2; };
51
+ return {
52
+ n: rates.length + excluded,
53
+ armA: { resolveRate: stockBaseRate },
54
+ armB: { resolveRate: bTot > 0 ? bPassTot / bTot : 0 },
55
+ bothSolveTasks: bothSolve,
56
+ excluded,
57
+ quality: { lowerBound: ni.lowerBound, nonInferior: ni.pass, deltaPP: 100 * ((bTot > 0 ? bPassTot / bTot : 0) - stockBaseRate) },
58
+ cost: { verdict: cost.verdict, medianDeltaUsd: median(costDiffs), n: cost.n, underpowered: cost.n < WILCOXON_MIN_REJECTABLE_N },
59
+ };
60
+ }
61
+ //# sourceMappingURL=tally.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tally.js","sourceRoot":"","sources":["../../src/pilot/tally.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "local-trace-distiller",
3
+ "description": "Local trace distillation tools and workflow for deriving experimental skills from private session traces.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Jinn Network",
7
+ "url": "https://github.com/Jinn-Network/mono"
8
+ }
9
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "local-trace-distiller",
3
+ "version": "0.1.0",
4
+ "description": "Local trace distillation tools and skill workflow for deriving experimental skills from private session traces.",
5
+ "author": {
6
+ "name": "Jinn Network",
7
+ "url": "https://github.com/Jinn-Network/mono"
8
+ },
9
+ "homepage": "https://github.com/Jinn-Network/mono",
10
+ "repository": "https://github.com/Jinn-Network/mono",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "jinn",
14
+ "distill",
15
+ "traces",
16
+ "skills",
17
+ "mcp"
18
+ ],
19
+ "skills": "./skills/",
20
+ "mcpServers": "./.mcp.json",
21
+ "interface": {
22
+ "displayName": "Local Trace Distiller",
23
+ "shortDescription": "Derive experimental skills from local traces",
24
+ "longDescription": "Searches local captured session traces, clusters recurring patterns, and runs the existing Jinn distillation flow using the user's selected LLM provider.",
25
+ "developerName": "Jinn Network",
26
+ "category": "Coding",
27
+ "capabilities": [
28
+ "Interactive",
29
+ "Read",
30
+ "Write"
31
+ ],
32
+ "websiteURL": "https://github.com/Jinn-Network/mono",
33
+ "privacyPolicyURL": "https://github.com/Jinn-Network/mono",
34
+ "termsOfServiceURL": "https://github.com/Jinn-Network/mono",
35
+ "defaultPrompt": [
36
+ "Use /distill to derive an experimental skill from local traces."
37
+ ],
38
+ "brandColor": "#2563EB",
39
+ "screenshots": []
40
+ }
41
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "jinn-local-distill": {
4
+ "command": "jinn-distill-mcp",
5
+ "args": []
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,27 @@
1
+ # local-trace-distiller
2
+
3
+ Local trace distillation plugin for deriving experimental skills from private session traces.
4
+
5
+ ## Components
6
+
7
+ - `skills/distill/SKILL.md` — `/distill` workflow. No argument defaults to `this`; `all` runs a capped cluster-first scan.
8
+ - `.mcp.json` — launches `jinn-distil-mcp`.
9
+ - `jinn-distil-mcp` tools:
10
+ - `distill_trace_search` — compact local trace cards.
11
+ - `distill_trace_read` — scoped trace reads with full-transcript gating.
12
+ - `distill_trace_cluster` — cheap repeated-signal candidate discovery.
13
+ - `distill_local` — confirmed local run through `jinn-layer distil`.
14
+
15
+ ## Local Capture Source
16
+
17
+ Stop-hook captures are exported as `CapturedTask` JSON under:
18
+
19
+ ```text
20
+ ~/.jinn-client/harness-layer/captures
21
+ ```
22
+
23
+ Set `JINN_LAYER_CAPTURES_DIR` to override the directory. The MCP server and `jinn-layer distil` use the same directory, so agents can search traces and then invoke the existing distillation flow without a second data path.
24
+
25
+ ## Status
26
+
27
+ Generated skills are marked experimental and should be improved through user feedback before they are treated as stable. Public marketplace listing is intentionally out of scope for this version.
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@jinn-network/local-trace-distiller",
3
+ "version": "0.1.0",
4
+ "description": "Local trace distillation plugin. Searches private captures, clusters candidate skill opportunities, and invokes the existing Jinn skill distiller locally.",
5
+ "jinn": {
6
+ "supports": [
7
+ "jinn.local-distill"
8
+ ],
9
+ "capabilities": {
10
+ "tools": {
11
+ "jinn-local-distill": [
12
+ "distill_trace_search",
13
+ "distill_trace_read",
14
+ "distill_trace_cluster",
15
+ "distill_local",
16
+ "distill_feedback_record"
17
+ ]
18
+ }
19
+ },
20
+ "mcpServers": {
21
+ "jinn-local-distill": {
22
+ "command": "jinn-distill-mcp",
23
+ "tools": [
24
+ "distill_trace_search",
25
+ "distill_trace_read",
26
+ "distill_trace_cluster",
27
+ "distill_local",
28
+ "distill_feedback_record"
29
+ ]
30
+ }
31
+ },
32
+ "skills": [
33
+ "skills/distill/SKILL.md"
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: distill
3
+ description: Use local trace tools to derive experimental skills from private session traces. Trigger on /distill, "distill this", "distill all", or requests to turn repeated local work into a reusable skill.
4
+ tools: distill_trace_search, distill_trace_read, distill_trace_cluster, distill_local, distill_feedback_record
5
+ ---
6
+
7
+ # Local Trace Distill
8
+
9
+ Use this skill to help the user turn local work traces into experimental skills using the existing Jinn distillation methodology.
10
+
11
+ ## Arguments
12
+
13
+ - No argument means `this`: focus on the current or most recent session.
14
+ - `this`, `current`, or `recent`: inspect the most recent local trace cards, choose the best match for the current session, then distill only that trace unless the user chooses a broader set.
15
+ - `all`: run a capped, cheap scan over local trace cards, cluster recurring signals, present candidates, and ask the user which candidate to distill.
16
+ - A trace id, session id, or candidate trace list: inspect those traces and distill only the selected traces.
17
+
18
+ ## Tool Workflow
19
+
20
+ 1. Start with `distill_trace_search`, using compact cards. Do not read full transcripts first.
21
+ 2. For `all`, call `distill_trace_cluster` with a conservative cap. Default to `limit: 50` unless the user requested a different cap.
22
+ 3. Read only what is needed:
23
+ - Use `mode: "summary"` for orientation.
24
+ - Use `mode: "tool_calls"` to understand commands and edits.
25
+ - Use `mode: "transcript_excerpt"` with a query when one section matters.
26
+ - Use `mode: "full_transcript"` only when the skill cannot be safely derived from smaller reads, and set `allowFullTranscript: true` only after deciding it is necessary.
27
+ 4. Before calling `distill_local`, summarize the proposed source traces and the likely skill opportunity in one short paragraph.
28
+ 5. Call `distill_local` with `confirm: true` only after the user explicitly approves the run or has already requested an execution form such as "distill this now".
29
+ 6. Pass selected `traceIds` or `sessionIds` whenever the user chose a candidate. Avoid distilling every capture unless the user asked for `all` and then approved that broad run.
30
+
31
+ ## Distillation Methodology
32
+
33
+ Reuse the existing Jinn distillation methodology rather than inventing a new prompt:
34
+
35
+ - Prefer evaluator/user-accepted successful traces for success patterns.
36
+ - Use failed or abandoned traces only for concrete lessons and failure avoidances.
37
+ - Keep the skill grounded in repeated evidence when available; label single-trace outputs as experimental.
38
+ - Preserve provenance through the generated skill metadata.
39
+ - Run through the existing scrub, contamination, structure, and package gates via `distill_local`.
40
+
41
+ ## User Feedback Loop
42
+
43
+ Generated skills are experimental. After a later session uses one, ask the user whether it helped, hurt, was mixed, or went unused. If the user gives feedback, call `distill_feedback_record` with the skill name, verdict, session id if known, and only user-approved notes or accepted changes. Convert accepted feedback into a targeted skill improvement instead of accumulating broad notes.
44
+
45
+ ## Future Marketplace
46
+
47
+ Do not list local skills publicly in this version. Later versions may let users publish useful skills to a marketplace for others to use and pay for, but that requires explicit user approval and a separate publish flow.
48
+
49
+ ## Privacy
50
+
51
+ Local traces are private by default. Do not export trace content or generated skills to a remote marketplace or shared corpus unless the user explicitly asks for that future publish flow.
@@ -48,14 +48,19 @@ export type ProbeOk = {
48
48
  ok: true;
49
49
  host: string;
50
50
  latencyMs: number;
51
+ expectedChainId: number;
52
+ actualChainId: number;
53
+ localDev?: true;
51
54
  };
52
55
  export type ProbeFail = {
53
56
  ok: false;
54
57
  host: string;
58
+ expectedChainId: number;
59
+ actualChainId?: number;
55
60
  /** HTTP status when applicable (4xx / 5xx). */
56
61
  code?: number;
57
62
  /** Failure shape when no HTTP status is available. */
58
- reason?: 'unreachable' | 'unknown';
63
+ reason?: 'chain_mismatch' | 'unreachable' | 'unknown';
59
64
  message: string;
60
65
  };
61
66
  export type ProbeResult = ProbeOk | ProbeFail;
@@ -64,8 +69,9 @@ export interface ProbeFallbackChainOptions {
64
69
  log?: (message: string) => void;
65
70
  }
66
71
  /**
67
- * Probe each URL in a fallback chain with a per-slot `eth_blockNumber` call.
68
- * Records ok/latency or a structured failure (HTTP status / unreachable).
72
+ * Probe each URL in a fallback chain with per-slot `eth_chainId` +
73
+ * `eth_blockNumber` calls. Records ok/latency or a structured failure
74
+ * (chain mismatch / HTTP status / unreachable).
69
75
  *
70
76
  * The probe is **log-only** — it never throws on per-slot failures. Startup
71
77
  * gating remains the job of {@link checkRpcNetwork}, which fails loud on
@@ -73,6 +79,7 @@ export interface ProbeFallbackChainOptions {
73
79
  *
74
80
  * Per AC9 (issue #592): emits one log line per slot
75
81
  * `[rpc] <layer> <host> ok latency=Nms`
82
+ * `[rpc] <layer> <host> warn chain_mismatch expected=<id> actual=<id>`
76
83
  * `[rpc] <layer> <host> warn <http-status>` (e.g. 429, 503)
77
84
  * `[rpc] <layer> <host> warn unreachable: <message>`
78
85
  */
@@ -1,5 +1,5 @@
1
1
  import { createPublicClient, http, HttpRequestError } from 'viem';
2
- import { base, baseSepolia } from 'viem/chains';
2
+ import { base, baseSepolia, mainnet, sepolia } from 'viem/chains';
3
3
  import { describeFallbackChain, maskRpcHost } from '../rpc/transport.js';
4
4
  export function expectedChainIdForNetwork(network) {
5
5
  return network === 'testnet' ? 84532 : 8453;
@@ -119,24 +119,35 @@ export function rpcNetworkFailureHint(result) {
119
119
  }
120
120
  return 'Set rpcUrl to a Base mainnet endpoint such as https://mainnet.base.org, or set BASE_RPC_URL.';
121
121
  }
122
- function classifyProbeError(host, err) {
122
+ function expectedChainIdForProbe(network, layer) {
123
+ if (layer === 'L1')
124
+ return network === 'testnet' ? sepolia.id : mainnet.id;
125
+ return expectedChainIdForNetwork(network);
126
+ }
127
+ function expectedChainForProbe(network, layer) {
128
+ if (layer === 'L1')
129
+ return network === 'testnet' ? sepolia : mainnet;
130
+ return expectedChainForNetwork(network);
131
+ }
132
+ function classifyProbeError(host, expectedChainId, actualChainId, err) {
123
133
  const message = err instanceof Error ? err.message : String(err);
124
134
  if (err instanceof HttpRequestError && typeof err.status === 'number') {
125
- return { ok: false, host, code: err.status, message };
135
+ return { ok: false, host, expectedChainId, actualChainId, code: err.status, message };
126
136
  }
127
137
  // viem wraps HTTP errors inside other shapes; walk the cause chain.
128
138
  let cur = err?.cause;
129
139
  while (cur) {
130
140
  if (cur instanceof HttpRequestError && typeof cur.status === 'number') {
131
- return { ok: false, host, code: cur.status, message };
141
+ return { ok: false, host, expectedChainId, actualChainId, code: cur.status, message };
132
142
  }
133
143
  cur = cur.cause;
134
144
  }
135
- return { ok: false, host, reason: 'unreachable', message };
145
+ return { ok: false, host, expectedChainId, actualChainId, reason: 'unreachable', message };
136
146
  }
137
147
  /**
138
- * Probe each URL in a fallback chain with a per-slot `eth_blockNumber` call.
139
- * Records ok/latency or a structured failure (HTTP status / unreachable).
148
+ * Probe each URL in a fallback chain with per-slot `eth_chainId` +
149
+ * `eth_blockNumber` calls. Records ok/latency or a structured failure
150
+ * (chain mismatch / HTTP status / unreachable).
140
151
  *
141
152
  * The probe is **log-only** — it never throws on per-slot failures. Startup
142
153
  * gating remains the job of {@link checkRpcNetwork}, which fails loud on
@@ -144,28 +155,50 @@ function classifyProbeError(host, err) {
144
155
  *
145
156
  * Per AC9 (issue #592): emits one log line per slot
146
157
  * `[rpc] <layer> <host> ok latency=Nms`
158
+ * `[rpc] <layer> <host> warn chain_mismatch expected=<id> actual=<id>`
147
159
  * `[rpc] <layer> <host> warn <http-status>` (e.g. 429, 503)
148
160
  * `[rpc] <layer> <host> warn unreachable: <message>`
149
161
  */
150
162
  export async function probeFallbackChain(urls, network, layer, options = {}) {
151
163
  const log = options.log ?? ((m) => process.stderr.write(`${m}\n`));
152
- // Chain is informational only — eth_blockNumber doesn't depend on chain
153
- // identity. Both L1 and L2 layers reuse the same Base/Base-Sepolia pair
154
- // since this is just used to satisfy viem's typing.
155
- const chain = network === 'testnet' ? baseSepolia : base;
164
+ const expectedChainId = expectedChainIdForProbe(network, layer);
165
+ const chain = expectedChainForProbe(network, layer);
156
166
  const results = [];
157
167
  for (const url of urls) {
158
168
  const host = maskRpcHost(url);
159
169
  const client = createPublicClient({ chain, transport: http(url, { retryCount: 0 }) });
160
170
  const t0 = performance.now();
171
+ let actualChainId;
161
172
  try {
173
+ actualChainId = await client.getChainId();
174
+ const localDev = evmLocalDevOverrideAcceptable(expectedChainId, actualChainId, url);
175
+ if (actualChainId !== expectedChainId && !localDev) {
176
+ const failure = {
177
+ ok: false,
178
+ host,
179
+ expectedChainId,
180
+ actualChainId,
181
+ reason: 'chain_mismatch',
182
+ message: `expected chain ${expectedChainId}, got ${actualChainId}`,
183
+ };
184
+ log(`[rpc] ${layer} ${host} warn chain_mismatch expected=${expectedChainId} actual=${actualChainId}`);
185
+ results.push(failure);
186
+ continue;
187
+ }
162
188
  await client.getBlockNumber();
163
189
  const latencyMs = Math.max(0, Math.round(performance.now() - t0));
164
190
  log(`[rpc] ${layer} ${host} ok latency=${latencyMs}ms`);
165
- results.push({ ok: true, host, latencyMs });
191
+ results.push({
192
+ ok: true,
193
+ host,
194
+ latencyMs,
195
+ expectedChainId,
196
+ actualChainId,
197
+ ...(localDev ? { localDev: true } : {}),
198
+ });
166
199
  }
167
200
  catch (err) {
168
- const failure = classifyProbeError(host, err);
201
+ const failure = classifyProbeError(host, expectedChainId, actualChainId, err);
169
202
  if (failure.code !== undefined) {
170
203
  log(`[rpc] ${layer} ${host} warn ${failure.code}`);
171
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-network.js","sourceRoot":"","sources":["../../src/preflight/rpc-network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-network.js","sourceRoot":"","sources":["../../src/preflight/rpc-network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export interface ResolveStableCwdInput {
2
+ currentCwd: string;
3
+ earningDir: string;
4
+ homeDir: string;
5
+ exists: (p: string) => boolean;
6
+ sep?: string;
7
+ }
8
+ export interface ResolveStableCwdResult {
9
+ chosenCwd: string;
10
+ needsChdir: boolean;
11
+ logLine: string;
12
+ }
13
+ /**
14
+ * Pure resolver — no fs/os/process access. All inputs are injected so this can
15
+ * be unit-tested deterministically.
16
+ */
17
+ export declare function resolveStableCwd(input: ResolveStableCwdInput): ResolveStableCwdResult;
18
+ /**
19
+ * Real-world wrapper: gathers `process.cwd()`, `os.homedir()`, and `existsSync`,
20
+ * delegates the decision to `resolveStableCwd`, then performs the chdir.
21
+ *
22
+ * `earningDir` comes in as a param to keep this decoupled from the config
23
+ * module. Never crashes boot: a `process.cwd()` read can itself throw ENOENT
24
+ * (when the launch dir was deleted), and `process.chdir` can fail — both are
25
+ * caught and logged.
26
+ */
27
+ export declare function ensureStableCwd(opts: {
28
+ earningDir: string;
29
+ }): ResolveStableCwdResult;
@@ -0,0 +1,98 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { sep as pathSep } from 'node:path';
4
+ /**
5
+ * Issue #909 — `jinn run` inherits the launch shell's CWD. When the daemon is
6
+ * launched from an ephemeral directory that is later deleted, the process's CWD
7
+ * becomes a dangling inode; child processes (e.g. the `claude` CLI harness
8
+ * probe) call `getcwd()` → ENOENT → exit with "The current working directory
9
+ * was deleted...". The fix: on boot, before spawning any child, chdir to a
10
+ * guaranteed-stable directory under $HOME.
11
+ */
12
+ /**
13
+ * Sentinel used when `process.cwd()` itself throws (the launch dir was deleted).
14
+ * It is a relative non-path: `existsSync` reports it missing and it fails the
15
+ * under-$HOME check, so the resolver is forced to chdir to a stable target.
16
+ */
17
+ const DELETED_CWD_SENTINEL = '<deleted-cwd>';
18
+ /**
19
+ * Pure resolver — no fs/os/process access. All inputs are injected so this can
20
+ * be unit-tested deterministically.
21
+ */
22
+ export function resolveStableCwd(input) {
23
+ const { currentCwd, earningDir, homeDir, exists } = input;
24
+ const sep = input.sep ?? pathSep;
25
+ const isUnderHome = currentCwd === homeDir || currentCwd.startsWith(homeDir + sep);
26
+ const currentExists = exists(currentCwd);
27
+ if (currentExists && isUnderHome) {
28
+ return {
29
+ chosenCwd: currentCwd,
30
+ needsChdir: false,
31
+ logLine: `[main] cwd ${currentCwd} is stable; no chdir needed`,
32
+ };
33
+ }
34
+ // Prefer the earning dir, then ~/.jinn-client, then $HOME. The terminal
35
+ // homeDir is the last-resort floor and is chosen even if its exists-probe
36
+ // is false — we never return "nothing".
37
+ const candidates = [earningDir, joinPath(homeDir, '.jinn-client', sep), homeDir];
38
+ let chosenCwd = homeDir;
39
+ for (const candidate of candidates) {
40
+ if (candidate === homeDir || exists(candidate)) {
41
+ chosenCwd = candidate;
42
+ break;
43
+ }
44
+ }
45
+ return {
46
+ chosenCwd,
47
+ needsChdir: chosenCwd !== currentCwd,
48
+ logLine: `[main] chdir to ${chosenCwd} (was ${currentCwd})`,
49
+ };
50
+ }
51
+ function joinPath(base, child, sep) {
52
+ return base.endsWith(sep) ? base + child : base + sep + child;
53
+ }
54
+ /**
55
+ * Real-world wrapper: gathers `process.cwd()`, `os.homedir()`, and `existsSync`,
56
+ * delegates the decision to `resolveStableCwd`, then performs the chdir.
57
+ *
58
+ * `earningDir` comes in as a param to keep this decoupled from the config
59
+ * module. Never crashes boot: a `process.cwd()` read can itself throw ENOENT
60
+ * (when the launch dir was deleted), and `process.chdir` can fail — both are
61
+ * caught and logged.
62
+ */
63
+ export function ensureStableCwd(opts) {
64
+ // process.cwd() throws ENOENT when the current dir's inode is gone. Treat a
65
+ // throw as "cwd is gone": pass a sentinel that the resolver's exists-probe
66
+ // reports as missing, forcing a chdir to a stable target.
67
+ let currentCwd;
68
+ try {
69
+ currentCwd = process.cwd();
70
+ }
71
+ catch {
72
+ currentCwd = DELETED_CWD_SENTINEL;
73
+ }
74
+ const result = resolveStableCwd({
75
+ currentCwd,
76
+ earningDir: opts.earningDir,
77
+ homeDir: homedir(),
78
+ exists: (p) => {
79
+ try {
80
+ return existsSync(p);
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ },
86
+ });
87
+ if (result.needsChdir) {
88
+ try {
89
+ process.chdir(result.chosenCwd);
90
+ }
91
+ catch (err) {
92
+ console.warn(`[main] failed to chdir to ${result.chosenCwd}: ${err instanceof Error ? err.message : String(err)} — continuing`);
93
+ }
94
+ }
95
+ console.log(result.logLine);
96
+ return result;
97
+ }
98
+ //# sourceMappingURL=stable-cwd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-cwd.js","sourceRoot":"","sources":["../../src/preflight/stable-cwd.ts"],"names":[],"mappings":"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"}
@@ -146,6 +146,12 @@ function projectLauncherGeneratorState(raw) {
146
146
  const poolPublicationCurrentSize = finiteNumber(snapshot['poolPublicationCurrentSize']);
147
147
  if (poolPublicationCurrentSize !== undefined)
148
148
  projected.poolPublicationCurrentSize = poolPublicationCurrentSize;
149
+ const totalPosted = finiteNumber(snapshot['totalPosted']);
150
+ if (totalPosted !== undefined)
151
+ projected.totalPosted = totalPosted;
152
+ const lastPostedInstanceId = optionalString(snapshot['lastPostedInstanceId']);
153
+ if (lastPostedInstanceId)
154
+ projected.lastPostedInstanceId = lastPostedInstanceId;
149
155
  return projected;
150
156
  }
151
157
  function launcherStateReaderFor(generator) {
@@ -1 +1 @@
1
- {"version":3,"file":"launched-record-dispatcher.js","sourceRoot":"","sources":["../../src/solvernets/launched-record-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launched-record-dispatcher.js","sourceRoot":"","sources":["../../src/solvernets/launched-record-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,8 @@ export declare function hasClaudeCodeOnDisk(homeDirOverride?: string): boolean;
15
15
  /**
16
16
  * Does this operator have Codex CLI installed and authed?
17
17
  *
18
- * Codex CLI writes its OAuth to `~/.codex/auth.json`. Presence is the
19
- * subscription signal.
18
+ * Codex CLI writes OAuth to `$CODEX_HOME/auth.json` in hosted deploys or
19
+ * `~/.codex/auth.json` locally. Presence is the subscription signal.
20
20
  */
21
21
  export declare function hasCodexOnDisk(homeDirOverride?: string): boolean;
22
22
  /**