@runcore-sh/runcore 0.3.1 → 0.4.0

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 (523) hide show
  1. package/README.md +19 -19
  2. package/brain-template/agents/README.md +20 -0
  3. package/brain-template/identity/README.md +20 -0
  4. package/brain-template/identity/brand.md +25 -0
  5. package/brain-template/identity/principles.md +21 -0
  6. package/brain-template/identity/tone-of-voice.md +23 -0
  7. package/brain-template/knowledge/notes/tier-gated-ui-spec.md +1 -1
  8. package/brain-template/metrics/README.md +13 -0
  9. package/brain-template/operations/goals.yaml +12 -0
  10. package/brain-template/operations/todos.md +17 -0
  11. package/brain-template/ops/README.md +13 -0
  12. package/brain-template/scheduling/README.md +2 -2
  13. package/brain-template/skills/README.md +23 -0
  14. package/brain-template/templates/README.md +9 -0
  15. package/brain-template/training/README.md +20 -0
  16. package/dictionary.json +2 -2
  17. package/dist/activity/log.d.ts +3 -0
  18. package/dist/activity/log.d.ts.map +1 -1
  19. package/dist/activity/log.js +12 -0
  20. package/dist/activity/log.js.map +1 -1
  21. package/dist/agents/autonomous.js +1 -0
  22. package/dist/agents/autonomous.js.map +1 -1
  23. package/dist/agents/commit.d.ts.map +1 -1
  24. package/dist/agents/commit.js +3 -10
  25. package/dist/agents/commit.js.map +1 -1
  26. package/dist/agents/dedup-guard.d.ts.map +1 -1
  27. package/dist/agents/dedup-guard.js +26 -23
  28. package/dist/agents/dedup-guard.js.map +1 -1
  29. package/dist/agents/feed.d.ts +69 -0
  30. package/dist/agents/feed.d.ts.map +1 -0
  31. package/dist/agents/feed.js +176 -0
  32. package/dist/agents/feed.js.map +1 -0
  33. package/dist/agents/governance.d.ts +14 -0
  34. package/dist/agents/governance.d.ts.map +1 -1
  35. package/dist/agents/governance.js +73 -1
  36. package/dist/agents/governance.js.map +1 -1
  37. package/dist/agents/governed-spawn.d.ts +12 -0
  38. package/dist/agents/governed-spawn.d.ts.map +1 -1
  39. package/dist/agents/governed-spawn.js +8 -2
  40. package/dist/agents/governed-spawn.js.map +1 -1
  41. package/dist/agents/index.d.ts +2 -0
  42. package/dist/agents/index.d.ts.map +1 -1
  43. package/dist/agents/index.js +1 -0
  44. package/dist/agents/index.js.map +1 -1
  45. package/dist/agents/issue-reporter.d.ts +15 -0
  46. package/dist/agents/issue-reporter.d.ts.map +1 -0
  47. package/dist/agents/issue-reporter.js +123 -0
  48. package/dist/agents/issue-reporter.js.map +1 -0
  49. package/dist/agents/issues.d.ts +33 -0
  50. package/dist/agents/issues.d.ts.map +1 -0
  51. package/dist/agents/issues.js +141 -0
  52. package/dist/agents/issues.js.map +1 -0
  53. package/dist/agents/reflection.js +3 -3
  54. package/dist/agents/reflection.js.map +1 -1
  55. package/dist/agents/runtime/driver.d.ts.map +1 -1
  56. package/dist/agents/runtime/driver.js +1 -2
  57. package/dist/agents/runtime/driver.js.map +1 -1
  58. package/dist/agents/runtime/manager.d.ts.map +1 -1
  59. package/dist/agents/runtime/manager.js +1 -0
  60. package/dist/agents/runtime/manager.js.map +1 -1
  61. package/dist/agents/runtime/types.d.ts +2 -0
  62. package/dist/agents/runtime/types.d.ts.map +1 -1
  63. package/dist/agents/spawn.d.ts.map +1 -1
  64. package/dist/agents/spawn.js +20 -26
  65. package/dist/agents/spawn.js.map +1 -1
  66. package/dist/agents/store.d.ts.map +1 -1
  67. package/dist/agents/store.js +34 -1
  68. package/dist/agents/store.js.map +1 -1
  69. package/dist/agents/types.d.ts +27 -0
  70. package/dist/agents/types.d.ts.map +1 -1
  71. package/dist/auth/identity.d.ts +3 -0
  72. package/dist/auth/identity.d.ts.map +1 -1
  73. package/dist/auth/identity.js +9 -1
  74. package/dist/auth/identity.js.map +1 -1
  75. package/dist/auth/middleware.d.ts.map +1 -1
  76. package/dist/auth/middleware.js +4 -0
  77. package/dist/auth/middleware.js.map +1 -1
  78. package/dist/calibration/conversation.d.ts +46 -0
  79. package/dist/calibration/conversation.d.ts.map +1 -0
  80. package/dist/calibration/conversation.js +295 -0
  81. package/dist/calibration/conversation.js.map +1 -0
  82. package/dist/calibration/index.d.ts +5 -0
  83. package/dist/calibration/index.d.ts.map +1 -0
  84. package/dist/calibration/index.js +5 -0
  85. package/dist/calibration/index.js.map +1 -0
  86. package/dist/calibration/runner.d.ts +127 -0
  87. package/dist/calibration/runner.d.ts.map +1 -0
  88. package/dist/calibration/runner.js +307 -0
  89. package/dist/calibration/runner.js.map +1 -0
  90. package/dist/calibration/store.d.ts +49 -0
  91. package/dist/calibration/store.d.ts.map +1 -0
  92. package/dist/calibration/store.js +140 -0
  93. package/dist/calibration/store.js.map +1 -0
  94. package/dist/calibration/types.d.ts +93 -0
  95. package/dist/calibration/types.d.ts.map +1 -0
  96. package/dist/calibration/types.js +53 -0
  97. package/dist/calibration/types.js.map +1 -0
  98. package/dist/cli.d.ts +1 -1
  99. package/dist/cli.js +17 -2
  100. package/dist/cli.js.map +1 -1
  101. package/dist/config/index.d.ts +5 -0
  102. package/dist/config/index.d.ts.map +1 -0
  103. package/dist/config/index.js +3 -0
  104. package/dist/config/index.js.map +1 -0
  105. package/dist/config/loader.d.ts +28 -0
  106. package/dist/config/loader.d.ts.map +1 -0
  107. package/dist/config/loader.js +181 -0
  108. package/dist/config/loader.js.map +1 -0
  109. package/dist/config/schema.d.ts +76 -0
  110. package/dist/config/schema.d.ts.map +1 -0
  111. package/dist/config/schema.js +93 -0
  112. package/dist/config/schema.js.map +1 -0
  113. package/dist/dictionary/challenge.d.ts +66 -0
  114. package/dist/dictionary/challenge.d.ts.map +1 -0
  115. package/dist/dictionary/challenge.js +145 -0
  116. package/dist/dictionary/challenge.js.map +1 -0
  117. package/dist/dictionary/client.d.ts +32 -0
  118. package/dist/dictionary/client.d.ts.map +1 -0
  119. package/dist/dictionary/client.js +139 -0
  120. package/dist/dictionary/client.js.map +1 -0
  121. package/dist/dictionary/compatibility.d.ts +8 -0
  122. package/dist/dictionary/compatibility.d.ts.map +1 -0
  123. package/dist/dictionary/compatibility.js +56 -0
  124. package/dist/dictionary/compatibility.js.map +1 -0
  125. package/dist/dictionary/index.d.ts +22 -0
  126. package/dist/dictionary/index.d.ts.map +1 -0
  127. package/dist/dictionary/index.js +15 -0
  128. package/dist/dictionary/index.js.map +1 -0
  129. package/dist/dictionary/matcher.d.ts +18 -0
  130. package/dist/dictionary/matcher.d.ts.map +1 -0
  131. package/dist/dictionary/matcher.js +98 -0
  132. package/dist/dictionary/matcher.js.map +1 -0
  133. package/dist/dictionary/publisher.d.ts +17 -0
  134. package/dist/dictionary/publisher.d.ts.map +1 -0
  135. package/dist/dictionary/publisher.js +156 -0
  136. package/dist/dictionary/publisher.js.map +1 -0
  137. package/dist/dictionary/sync.d.ts +28 -0
  138. package/dist/dictionary/sync.d.ts.map +1 -0
  139. package/dist/dictionary/sync.js +268 -0
  140. package/dist/dictionary/sync.js.map +1 -0
  141. package/dist/dictionary/types.d.ts +75 -0
  142. package/dist/dictionary/types.d.ts.map +1 -0
  143. package/dist/dictionary/types.js +8 -0
  144. package/dist/dictionary/types.js.map +1 -0
  145. package/dist/dictionary/updater.d.ts +23 -0
  146. package/dist/dictionary/updater.d.ts.map +1 -0
  147. package/dist/dictionary/updater.js +84 -0
  148. package/dist/dictionary/updater.js.map +1 -0
  149. package/dist/dictionary/versioning.d.ts +15 -0
  150. package/dist/dictionary/versioning.d.ts.map +1 -0
  151. package/dist/dictionary/versioning.js +52 -0
  152. package/dist/dictionary/versioning.js.map +1 -0
  153. package/dist/errors.d.ts +36 -0
  154. package/dist/errors.d.ts.map +1 -0
  155. package/dist/errors.js +66 -0
  156. package/dist/errors.js.map +1 -0
  157. package/dist/events/event-bus.d.ts +37 -0
  158. package/dist/events/event-bus.d.ts.map +1 -0
  159. package/dist/events/event-bus.js +261 -0
  160. package/dist/events/event-bus.js.map +1 -0
  161. package/dist/events/index.d.ts +3 -0
  162. package/dist/events/index.d.ts.map +1 -0
  163. package/dist/events/index.js +2 -0
  164. package/dist/events/index.js.map +1 -0
  165. package/dist/events/types.d.ts +71 -0
  166. package/dist/events/types.d.ts.map +1 -0
  167. package/dist/events/types.js +7 -0
  168. package/dist/events/types.js.map +1 -0
  169. package/dist/feed/client.d.ts +34 -0
  170. package/dist/feed/client.d.ts.map +1 -0
  171. package/dist/feed/client.js +206 -0
  172. package/dist/feed/client.js.map +1 -0
  173. package/dist/feed/index.d.ts +61 -0
  174. package/dist/feed/index.d.ts.map +1 -0
  175. package/dist/feed/index.js +115 -0
  176. package/dist/feed/index.js.map +1 -0
  177. package/dist/feed/metrics.d.ts +51 -0
  178. package/dist/feed/metrics.d.ts.map +1 -0
  179. package/dist/feed/metrics.js +84 -0
  180. package/dist/feed/metrics.js.map +1 -0
  181. package/dist/feed/mixer.d.ts +89 -0
  182. package/dist/feed/mixer.d.ts.map +1 -0
  183. package/dist/feed/mixer.js +230 -0
  184. package/dist/feed/mixer.js.map +1 -0
  185. package/dist/feed/tiers.d.ts +15 -0
  186. package/dist/feed/tiers.d.ts.map +1 -0
  187. package/dist/feed/tiers.js +75 -0
  188. package/dist/feed/tiers.js.map +1 -0
  189. package/dist/feed/types.d.ts +76 -0
  190. package/dist/feed/types.d.ts.map +1 -0
  191. package/dist/feed/types.js +6 -0
  192. package/dist/feed/types.js.map +1 -0
  193. package/dist/files/registry.d.ts +77 -0
  194. package/dist/files/registry.d.ts.map +1 -0
  195. package/dist/files/registry.js +222 -0
  196. package/dist/files/registry.js.map +1 -0
  197. package/dist/google/plugin.d.ts +17 -0
  198. package/dist/google/plugin.d.ts.map +1 -0
  199. package/dist/google/plugin.js +169 -0
  200. package/dist/google/plugin.js.map +1 -0
  201. package/dist/health/checker.d.ts.map +1 -1
  202. package/dist/health/checker.js +14 -4
  203. package/dist/health/checker.js.map +1 -1
  204. package/dist/health/checks/openrouter.js +1 -1
  205. package/dist/health/checks/openrouter.js.map +1 -1
  206. package/dist/health/checks.d.ts +1 -1
  207. package/dist/health/checks.d.ts.map +1 -1
  208. package/dist/health/checks.js +9 -3
  209. package/dist/health/checks.js.map +1 -1
  210. package/dist/ledger/distance.d.ts +19 -0
  211. package/dist/ledger/distance.d.ts.map +1 -0
  212. package/dist/ledger/distance.js +70 -0
  213. package/dist/ledger/distance.js.map +1 -0
  214. package/dist/ledger/index.d.ts +8 -0
  215. package/dist/ledger/index.d.ts.map +1 -0
  216. package/dist/ledger/index.js +7 -0
  217. package/dist/ledger/index.js.map +1 -0
  218. package/dist/ledger/store.d.ts +27 -0
  219. package/dist/ledger/store.d.ts.map +1 -0
  220. package/dist/ledger/store.js +123 -0
  221. package/dist/ledger/store.js.map +1 -0
  222. package/dist/ledger/types.d.ts +109 -0
  223. package/dist/ledger/types.d.ts.map +1 -0
  224. package/dist/ledger/types.js +57 -0
  225. package/dist/ledger/types.js.map +1 -0
  226. package/dist/literacy.d.ts +50 -0
  227. package/dist/literacy.d.ts.map +1 -0
  228. package/dist/literacy.js +141 -0
  229. package/dist/literacy.js.map +1 -0
  230. package/dist/llm/complete.d.ts.map +1 -1
  231. package/dist/llm/complete.js +36 -3
  232. package/dist/llm/complete.js.map +1 -1
  233. package/dist/llm/fetch-guard.d.ts.map +1 -1
  234. package/dist/llm/fetch-guard.js +2 -0
  235. package/dist/llm/fetch-guard.js.map +1 -1
  236. package/dist/llm/membrane.d.ts +5 -0
  237. package/dist/llm/membrane.d.ts.map +1 -1
  238. package/dist/llm/membrane.js +48 -8
  239. package/dist/llm/membrane.js.map +1 -1
  240. package/dist/llm/nlp-detect.d.ts +17 -0
  241. package/dist/llm/nlp-detect.d.ts.map +1 -0
  242. package/dist/llm/nlp-detect.js +45 -0
  243. package/dist/llm/nlp-detect.js.map +1 -0
  244. package/dist/llm/ollama.d.ts +5 -0
  245. package/dist/llm/ollama.d.ts.map +1 -1
  246. package/dist/llm/ollama.js +39 -1
  247. package/dist/llm/ollama.js.map +1 -1
  248. package/dist/llm/openrouter.d.ts.map +1 -1
  249. package/dist/llm/openrouter.js +17 -1
  250. package/dist/llm/openrouter.js.map +1 -1
  251. package/dist/llm/providers/ollama.d.ts +7 -2
  252. package/dist/llm/providers/ollama.d.ts.map +1 -1
  253. package/dist/llm/providers/ollama.js +109 -17
  254. package/dist/llm/providers/ollama.js.map +1 -1
  255. package/dist/llm/providers/openrouter.js +1 -1
  256. package/dist/llm/providers/openrouter.js.map +1 -1
  257. package/dist/llm/sensitive-registry.d.ts +6 -0
  258. package/dist/llm/sensitive-registry.d.ts.map +1 -1
  259. package/dist/llm/sensitive-registry.js +60 -1
  260. package/dist/llm/sensitive-registry.js.map +1 -1
  261. package/dist/mcp-server.js +25 -18
  262. package/dist/mcp-server.js.map +1 -1
  263. package/dist/metrics/collector.d.ts +6 -0
  264. package/dist/metrics/collector.d.ts.map +1 -1
  265. package/dist/metrics/collector.js +150 -0
  266. package/dist/metrics/collector.js.map +1 -1
  267. package/dist/metrics/types.d.ts +1 -1
  268. package/dist/metrics/types.d.ts.map +1 -1
  269. package/dist/middleware/error-handler.d.ts +13 -0
  270. package/dist/middleware/error-handler.d.ts.map +1 -0
  271. package/dist/middleware/error-handler.js +71 -0
  272. package/dist/middleware/error-handler.js.map +1 -0
  273. package/dist/notifications/channels/adapter.d.ts +28 -0
  274. package/dist/notifications/channels/adapter.d.ts.map +1 -0
  275. package/dist/notifications/channels/adapter.js +55 -0
  276. package/dist/notifications/channels/adapter.js.map +1 -0
  277. package/dist/notifications/channels/index.d.ts +6 -0
  278. package/dist/notifications/channels/index.d.ts.map +1 -0
  279. package/dist/notifications/channels/index.js +6 -0
  280. package/dist/notifications/channels/index.js.map +1 -0
  281. package/dist/notifications/channels/log.d.ts +15 -0
  282. package/dist/notifications/channels/log.d.ts.map +1 -0
  283. package/dist/notifications/channels/log.js +29 -0
  284. package/dist/notifications/channels/log.js.map +1 -0
  285. package/dist/notifications/engine.d.ts +37 -0
  286. package/dist/notifications/engine.d.ts.map +1 -0
  287. package/dist/notifications/engine.js +198 -0
  288. package/dist/notifications/engine.js.map +1 -0
  289. package/dist/notifications/index.d.ts +12 -3
  290. package/dist/notifications/index.d.ts.map +1 -1
  291. package/dist/notifications/index.js +15 -3
  292. package/dist/notifications/index.js.map +1 -1
  293. package/dist/notifications/types.d.ts +97 -0
  294. package/dist/notifications/types.d.ts.map +1 -0
  295. package/dist/notifications/types.js +14 -0
  296. package/dist/notifications/types.js.map +1 -0
  297. package/dist/onboarding/bootstrap.d.ts +51 -0
  298. package/dist/onboarding/bootstrap.d.ts.map +1 -0
  299. package/dist/onboarding/bootstrap.js +92 -0
  300. package/dist/onboarding/bootstrap.js.map +1 -0
  301. package/dist/onboarding/conversation.d.ts +131 -0
  302. package/dist/onboarding/conversation.d.ts.map +1 -0
  303. package/dist/onboarding/conversation.js +259 -0
  304. package/dist/onboarding/conversation.js.map +1 -0
  305. package/dist/onboarding/flow.d.ts +63 -0
  306. package/dist/onboarding/flow.d.ts.map +1 -0
  307. package/dist/onboarding/flow.js +287 -0
  308. package/dist/onboarding/flow.js.map +1 -0
  309. package/dist/onboarding/index.d.ts +17 -0
  310. package/dist/onboarding/index.d.ts.map +1 -0
  311. package/dist/onboarding/index.js +23 -0
  312. package/dist/onboarding/index.js.map +1 -0
  313. package/dist/onboarding/name-extraction.d.ts +42 -0
  314. package/dist/onboarding/name-extraction.d.ts.map +1 -0
  315. package/dist/onboarding/name-extraction.js +164 -0
  316. package/dist/onboarding/name-extraction.js.map +1 -0
  317. package/dist/onboarding/nerve-link.d.ts +23 -0
  318. package/dist/onboarding/nerve-link.d.ts.map +1 -0
  319. package/dist/onboarding/nerve-link.js +24 -0
  320. package/dist/onboarding/nerve-link.js.map +1 -0
  321. package/dist/onboarding/phases.d.ts +66 -0
  322. package/dist/onboarding/phases.d.ts.map +1 -0
  323. package/dist/onboarding/phases.js +167 -0
  324. package/dist/onboarding/phases.js.map +1 -0
  325. package/dist/onboarding/safe-word.d.ts +39 -0
  326. package/dist/onboarding/safe-word.d.ts.map +1 -0
  327. package/dist/onboarding/safe-word.js +90 -0
  328. package/dist/onboarding/safe-word.js.map +1 -0
  329. package/dist/onboarding/types.d.ts +124 -0
  330. package/dist/onboarding/types.d.ts.map +1 -0
  331. package/dist/onboarding/types.js +46 -0
  332. package/dist/onboarding/types.js.map +1 -0
  333. package/dist/openloop/resolution-scanner.d.ts +1 -1
  334. package/dist/openloop/resolution-scanner.d.ts.map +1 -1
  335. package/dist/openloop/resolution-scanner.js +4 -14
  336. package/dist/openloop/resolution-scanner.js.map +1 -1
  337. package/dist/plugins/index.d.ts +24 -0
  338. package/dist/plugins/index.d.ts.map +1 -0
  339. package/dist/plugins/index.js +91 -0
  340. package/dist/plugins/index.js.map +1 -0
  341. package/dist/plugins/status.d.ts +10 -0
  342. package/dist/plugins/status.d.ts.map +1 -0
  343. package/dist/plugins/status.js +12 -0
  344. package/dist/plugins/status.js.map +1 -0
  345. package/dist/posture/index.d.ts +2 -2
  346. package/dist/posture/index.d.ts.map +1 -1
  347. package/dist/posture/index.js +1 -1
  348. package/dist/posture/index.js.map +1 -1
  349. package/dist/posture/types.d.ts +34 -0
  350. package/dist/posture/types.d.ts.map +1 -1
  351. package/dist/posture/types.js +28 -0
  352. package/dist/posture/types.js.map +1 -1
  353. package/dist/pulse/activation-event.d.ts +5 -4
  354. package/dist/pulse/activation-event.d.ts.map +1 -1
  355. package/dist/pulse/activation-event.js +31 -8
  356. package/dist/pulse/activation-event.js.map +1 -1
  357. package/dist/pulse/activation-log.d.ts.map +1 -1
  358. package/dist/pulse/activation-log.js.map +1 -1
  359. package/dist/pulse/index.d.ts +3 -0
  360. package/dist/pulse/index.d.ts.map +1 -1
  361. package/dist/pulse/index.js +4 -0
  362. package/dist/pulse/index.js.map +1 -1
  363. package/dist/pulse/tier.d.ts +67 -0
  364. package/dist/pulse/tier.d.ts.map +1 -0
  365. package/dist/pulse/tier.js +104 -0
  366. package/dist/pulse/tier.js.map +1 -0
  367. package/dist/pulse/work.d.ts +66 -0
  368. package/dist/pulse/work.d.ts.map +1 -0
  369. package/dist/pulse/work.js +117 -0
  370. package/dist/pulse/work.js.map +1 -0
  371. package/dist/runtime-lock.d.ts +51 -0
  372. package/dist/runtime-lock.d.ts.map +1 -0
  373. package/dist/runtime-lock.js +147 -0
  374. package/dist/runtime-lock.js.map +1 -0
  375. package/dist/server.d.ts.map +1 -1
  376. package/dist/server.js +1244 -188
  377. package/dist/server.js.map +1 -1
  378. package/dist/services/whatsapp.js +1 -1
  379. package/dist/services/whatsapp.js.map +1 -1
  380. package/dist/settings.d.ts +15 -0
  381. package/dist/settings.d.ts.map +1 -1
  382. package/dist/settings.js +48 -1
  383. package/dist/settings.js.map +1 -1
  384. package/dist/skills/index.d.ts +2 -2
  385. package/dist/skills/index.d.ts.map +1 -1
  386. package/dist/skills/index.js +2 -2
  387. package/dist/skills/index.js.map +1 -1
  388. package/dist/skills/registry.d.ts +53 -142
  389. package/dist/skills/registry.d.ts.map +1 -1
  390. package/dist/skills/registry.js +249 -611
  391. package/dist/skills/registry.js.map +1 -1
  392. package/dist/stream/emitter.d.ts +36 -0
  393. package/dist/stream/emitter.d.ts.map +1 -0
  394. package/dist/stream/emitter.js +177 -0
  395. package/dist/stream/emitter.js.map +1 -0
  396. package/dist/stream/index.d.ts +4 -0
  397. package/dist/stream/index.d.ts.map +1 -0
  398. package/dist/stream/index.js +3 -0
  399. package/dist/stream/index.js.map +1 -0
  400. package/dist/stream/types.d.ts +100 -0
  401. package/dist/stream/types.d.ts.map +1 -0
  402. package/dist/stream/types.js +19 -0
  403. package/dist/stream/types.js.map +1 -0
  404. package/dist/threads/index.d.ts +3 -0
  405. package/dist/threads/index.d.ts.map +1 -0
  406. package/dist/threads/index.js +2 -0
  407. package/dist/threads/index.js.map +1 -0
  408. package/dist/threads/store.d.ts +36 -0
  409. package/dist/threads/store.d.ts.map +1 -0
  410. package/dist/threads/store.js +171 -0
  411. package/dist/threads/store.js.map +1 -0
  412. package/dist/threads/types.d.ts +16 -0
  413. package/dist/threads/types.d.ts.map +1 -0
  414. package/dist/threads/types.js +6 -0
  415. package/dist/threads/types.js.map +1 -0
  416. package/dist/tick/index.d.ts +10 -0
  417. package/dist/tick/index.d.ts.map +1 -0
  418. package/dist/tick/index.js +8 -0
  419. package/dist/tick/index.js.map +1 -0
  420. package/dist/tick/runner.d.ts +56 -0
  421. package/dist/tick/runner.d.ts.map +1 -0
  422. package/dist/tick/runner.js +235 -0
  423. package/dist/tick/runner.js.map +1 -0
  424. package/dist/tick/types.d.ts +73 -0
  425. package/dist/tick/types.d.ts.map +1 -0
  426. package/dist/tick/types.js +8 -0
  427. package/dist/tick/types.js.map +1 -0
  428. package/dist/tier/types.js +3 -3
  429. package/dist/tier/types.js.map +1 -1
  430. package/dist/ui-sync.d.ts +34 -0
  431. package/dist/ui-sync.d.ts.map +1 -0
  432. package/dist/ui-sync.js +108 -0
  433. package/dist/ui-sync.js.map +1 -0
  434. package/dist/utils/git.d.ts +12 -0
  435. package/dist/utils/git.d.ts.map +1 -0
  436. package/dist/utils/git.js +44 -0
  437. package/dist/utils/git.js.map +1 -0
  438. package/dist/volumes/index.d.ts +3 -0
  439. package/dist/volumes/index.d.ts.map +1 -0
  440. package/dist/volumes/index.js +2 -0
  441. package/dist/volumes/index.js.map +1 -0
  442. package/dist/volumes/manager.d.ts +83 -0
  443. package/dist/volumes/manager.d.ts.map +1 -0
  444. package/dist/volumes/manager.js +462 -0
  445. package/dist/volumes/manager.js.map +1 -0
  446. package/dist/volumes/types.d.ts +66 -0
  447. package/dist/volumes/types.d.ts.map +1 -0
  448. package/dist/volumes/types.js +8 -0
  449. package/dist/volumes/types.js.map +1 -0
  450. package/package.json +8 -5
  451. package/public/avatar/Hey-Dash_en_windows_v4_0_0.zip +0 -0
  452. package/public/avatar/README.md +43 -0
  453. package/public/avatar/cache/06fa55aececcc478.mp4 +0 -0
  454. package/public/avatar/cache/07a65738ba170827.mp4 +0 -0
  455. package/public/avatar/cache/08b6f4880f59a385.mp4 +0 -0
  456. package/public/avatar/cache/0ef9e0e78d715af4.mp4 +0 -0
  457. package/public/avatar/cache/0fa85e9e8f444a8b.mp4 +0 -0
  458. package/public/avatar/cache/1185fd491f413406.mp4 +0 -0
  459. package/public/avatar/cache/1b374d5390258fea.mp4 +0 -0
  460. package/public/avatar/cache/1e2367029b92f8aa.mp4 +0 -0
  461. package/public/avatar/cache/272c004a41087de5.mp4 +0 -0
  462. package/public/avatar/cache/2a0f3ff34d92521a.mp4 +0 -0
  463. package/public/avatar/cache/307a6f70859aeab8.mp4 +0 -0
  464. package/public/avatar/cache/332384e088ca214b.mp4 +0 -0
  465. package/public/avatar/cache/39fc4e81574d14ed.mp4 +0 -0
  466. package/public/avatar/cache/4a5c6051c1ef6a71.mp4 +0 -0
  467. package/public/avatar/cache/51f4aa76398c8c29.mp4 +0 -0
  468. package/public/avatar/cache/5d9a960bbf71732c.mp4 +0 -0
  469. package/public/avatar/cache/5e0954401e15af89.mp4 +0 -0
  470. package/public/avatar/cache/884ae6717fcacdd5.mp4 +0 -0
  471. package/public/avatar/cache/8ea0b7220d139615.mp4 +0 -0
  472. package/public/avatar/cache/9b9c4f7b8508eecc.mp4 +0 -0
  473. package/public/avatar/cache/9be1030ec2aa2b01.mp4 +0 -0
  474. package/public/avatar/cache/b35f7a3d558f22cb.mp4 +0 -0
  475. package/public/avatar/cache/be89f49970672374.mp4 +0 -0
  476. package/public/avatar/cache/c11fdc99479492b6.mp4 +0 -0
  477. package/public/avatar/cache/c900811e3382ac6d.mp4 +0 -0
  478. package/public/avatar/cache/d42a73667acf5716.mp4 +0 -0
  479. package/public/avatar/cache/e539f247a8908603.mp4 +0 -0
  480. package/public/avatar/cache/e78fceae2373b7c1.mp4 +0 -0
  481. package/public/avatar/cache/ec95af57d33b3f07.mp4 +0 -0
  482. package/public/avatar/cache/eeb8d775f40dbe2c.mp4 +0 -0
  483. package/public/avatar/dash_headhshot_v1.png +0 -0
  484. package/public/avatar/idle.mp4 +0 -0
  485. package/public/avatar/photo.png +0 -0
  486. package/public/board.html +6 -0
  487. package/public/browser.html +6 -2
  488. package/public/demo-data/Family Photos/2024/christmas-dinner.txt +13 -0
  489. package/public/demo-data/Family Photos/2025/summer-cookout.txt +13 -0
  490. package/public/demo-data/Financial/Insurance/auto-policy.txt +26 -0
  491. package/public/demo-data/Financial/Insurance/homeowners-policy.txt +20 -0
  492. package/public/demo-data/Financial/Taxes/property-tax-2025.txt +18 -0
  493. package/public/demo-data/Financial/Taxes/w2-2025.txt +18 -0
  494. package/public/demo-data/Health Records/lab-results-2026.txt +26 -0
  495. package/public/demo-data/Health Records/prescription-list.txt +24 -0
  496. package/public/demo-data/Health Records/vaccination-record.csv +8 -0
  497. package/public/demo-data/Legal/Estate/beneficiary-contacts.csv +4 -0
  498. package/public/demo-data/Legal/Estate/will-summary.txt +22 -0
  499. package/public/demo-data/Recipes/christmas-cookies.md +25 -0
  500. package/public/demo-data/Recipes/grandmas-chili.md +30 -0
  501. package/public/demo-data/Work/Contracts/lawn-service-2026.txt +23 -0
  502. package/public/demo-data/Work/Projects/project-status.md +19 -0
  503. package/public/demo-data/passwords.txt +13 -0
  504. package/public/demo-ingest.html +388 -0
  505. package/public/help.html +4 -1
  506. package/public/icon-192.png +0 -0
  507. package/public/icon-512.png +0 -0
  508. package/public/index.html +2641 -574
  509. package/public/library.html +51 -29
  510. package/public/manifest.json +21 -0
  511. package/public/nerve/icon-192.svg +6 -0
  512. package/public/nerve/icon-512.svg +6 -0
  513. package/public/nerve/index.html +698 -0
  514. package/public/nerve/manifest.json +24 -0
  515. package/public/nerve/sw.js +84 -0
  516. package/public/observatory.html +5 -1
  517. package/public/ops.html +33 -3
  518. package/public/pulse.html +3 -0
  519. package/public/registry.html +6 -2
  520. package/public/roadmap.html +7 -2
  521. package/public/sw.js +65 -0
  522. package/brain-template/registry.md +0 -566
  523. package/brain-template/rest_api-integration.md +0 -522
@@ -0,0 +1,84 @@
1
+ // Core Nerve — Service Worker
2
+ // Caches app shell, handles push notifications
3
+
4
+ const CACHE_NAME = "nerve-v1";
5
+ const SHELL = ["/nerve"];
6
+
7
+ // Install: cache the app shell
8
+ self.addEventListener("install", (e) => {
9
+ e.waitUntil(
10
+ caches.open(CACHE_NAME).then((c) => c.addAll(SHELL))
11
+ );
12
+ self.skipWaiting();
13
+ });
14
+
15
+ // Activate: clean old caches
16
+ self.addEventListener("activate", (e) => {
17
+ e.waitUntil(
18
+ caches.keys().then((keys) =>
19
+ Promise.all(keys.filter((k) => k !== CACHE_NAME).map((k) => caches.delete(k)))
20
+ )
21
+ );
22
+ self.clients.claim();
23
+ });
24
+
25
+ // Fetch: cache-first for shell, network-only for API
26
+ self.addEventListener("fetch", (e) => {
27
+ const url = new URL(e.request.url);
28
+
29
+ // API calls always go to network
30
+ if (url.pathname.startsWith("/api/")) return;
31
+
32
+ e.respondWith(
33
+ caches.match(e.request).then((cached) => {
34
+ if (cached) return cached;
35
+ return fetch(e.request).then((res) => {
36
+ if (res.ok && e.request.method === "GET") {
37
+ const clone = res.clone();
38
+ caches.open(CACHE_NAME).then((c) => c.put(e.request, clone));
39
+ }
40
+ return res;
41
+ });
42
+ })
43
+ );
44
+ });
45
+
46
+ // Push: show notification when server sends one
47
+ self.addEventListener("push", (e) => {
48
+ if (!e.data) return;
49
+
50
+ let payload;
51
+ try {
52
+ payload = e.data.json();
53
+ } catch {
54
+ payload = { title: "Core", body: e.data.text() };
55
+ }
56
+
57
+ const options = {
58
+ body: payload.body || "",
59
+ icon: "/public/nerve/icon-192.svg",
60
+ badge: "/public/nerve/icon-192.svg",
61
+ vibrate: [100, 50, 100],
62
+ data: payload.data || {},
63
+ actions: [{ action: "open", title: "Open" }],
64
+ tag: "nerve-" + (payload.data?.state ? Object.values(payload.data.state).join("-") : "update"),
65
+ renotify: true,
66
+ };
67
+
68
+ e.waitUntil(self.registration.showNotification(payload.title || "Core", options));
69
+ });
70
+
71
+ // Notification click: open the nerve PWA
72
+ self.addEventListener("notificationclick", (e) => {
73
+ e.notification.close();
74
+ e.waitUntil(
75
+ self.clients.matchAll({ type: "window" }).then((clients) => {
76
+ for (const client of clients) {
77
+ if (client.url.includes("/nerve") && "focus" in client) {
78
+ return client.focus();
79
+ }
80
+ }
81
+ return self.clients.openWindow("/nerve");
82
+ })
83
+ );
84
+ });
@@ -915,6 +915,9 @@
915
915
  </main>
916
916
 
917
917
  <script>
918
+ var sessionId = sessionStorage.getItem("dash_sid");
919
+ function authHeaders() { return sessionId ? { "x-session-id": sessionId } : {}; }
920
+ fetch('/api/tier', { headers: authHeaders() }).then(r=>{ if(r.status===401){location.href='/';return null;} return r.json(); }).then(d=>{if(d&&(!d.capabilities||!d.capabilities.spawning))location.href='/'}).catch(()=>{});
918
921
  (function() {
919
922
  // --- Helpers ---
920
923
 
@@ -941,7 +944,8 @@
941
944
  const controller = new AbortController();
942
945
  const timer = setTimeout(() => controller.abort(), timeoutMs);
943
946
  try {
944
- const res = await fetch(url, { signal: controller.signal });
947
+ const res = await fetch(url, { signal: controller.signal, headers: authHeaders() });
948
+ if (res.status === 401) { window.location.href = '/'; return null; }
945
949
  if (!res.ok) throw new Error(res.statusText);
946
950
  return res.json();
947
951
  } finally {
package/public/ops.html CHANGED
@@ -652,6 +652,9 @@
652
652
  </main>
653
653
 
654
654
  <script>
655
+ var sessionId = sessionStorage.getItem("dash_sid");
656
+ function authHeaders() { return sessionId ? { "x-session-id": sessionId } : {}; }
657
+ fetch('/api/tier', { headers: authHeaders() }).then(r=>{ if(r.status===401){location.href='/';return null;} return r.json(); }).then(d=>{if(d&&(!d.capabilities||!d.capabilities.spawning))location.href='/'}).catch(()=>{});
655
658
  (function() {
656
659
  const POLL_INTERVAL = 15000;
657
660
  let activitySince = 0;
@@ -704,7 +707,8 @@
704
707
  const controller = new AbortController();
705
708
  const timer = setTimeout(() => controller.abort(), timeoutMs);
706
709
  try {
707
- const res = await fetch(url, { signal: controller.signal });
710
+ const res = await fetch(url, { signal: controller.signal, headers: authHeaders() });
711
+ if (res.status === 401) { window.location.href = '/'; return null; }
708
712
  if (!res.ok) throw new Error(res.statusText);
709
713
  return res.json();
710
714
  } finally {
@@ -774,7 +778,7 @@
774
778
  btn.disabled = true;
775
779
  btn.textContent = 'Restarting...';
776
780
  try {
777
- await fetch('/api/ops/sidecars/' + name + '/restart', { method: 'POST' });
781
+ await fetch('/api/ops/sidecars/' + name + '/restart', { method: 'POST', headers: authHeaders() });
778
782
  // Refresh after short delay to let sidecar come up
779
783
  setTimeout(() => refreshAll(), 1500);
780
784
  } catch {
@@ -784,6 +788,32 @@
784
788
  });
785
789
  }
786
790
 
791
+ function humanizeOps(summary, source) {
792
+ if (!summary) return "";
793
+ var s = summary;
794
+ var cm = s.match(/^Agent task "(.+?)" completed/);
795
+ if (cm) return "\u2705 " + cm[1];
796
+ var fm = s.match(/^Agent task "(.+?)" failed.*?\n(?:Output:\n)?(.+)/s);
797
+ if (fm) return "\u274C " + fm[1] + " \u2014 " + fm[2].trim().slice(0, 60);
798
+ var fs = s.match(/^Agent task "(.+?)" failed/);
799
+ if (fs) return "\u274C " + fs[1];
800
+ var sp = s.match(/^Spawn (\d+) agent\(s\): (.+)/);
801
+ if (sp) return "\u{1F680} Starting " + sp[1] + ": " + sp[2];
802
+ var wm = s.match(/^Working on (\d+) task\(s\): (.+)/);
803
+ if (wm) return "\u{1F3C3} " + wm[1] + " running: " + wm[2];
804
+ if (s.startsWith("Batch done")) return "\u{1F3C1} Batch complete";
805
+ var lm = s.match(/^LLM call: "(.+?)"/);
806
+ if (lm) return "\u{1F4AD} " + lm[1];
807
+ if (s.includes("credits exhausted") || s.includes("Credits exhausted")) return "\u{1F4B8} Credits used up";
808
+ var qm = s.match(/New queue item (DASH-\d+).*?"(.+?)"/);
809
+ if (qm) return "\u{1F4CB} " + qm[2];
810
+ if (s.includes("new email")) return "\u{1F4E7} " + s;
811
+ if (s.includes("Compacted conversation")) return "\u{1F4E6} Memory compacted";
812
+ var pe = s.match(/^Poll error: (.+)/);
813
+ if (pe) return "\u{1F50C} " + pe[1].slice(0, 60);
814
+ return s.length > 100 ? s.slice(0, 97) + "..." : s;
815
+ }
816
+
787
817
  function renderActivity(data) {
788
818
  if (data.activities.length > 0) {
789
819
  allActivities = allActivities.concat(data.activities);
@@ -805,7 +835,7 @@
805
835
  <div class="activity-item">
806
836
  <span class="activity-time">${fmtTime(a.timestamp)}</span>
807
837
  <span class="activity-source" data-s="${escHtml(a.source)}">${escHtml(a.source)}</span>
808
- <span class="activity-text">${escHtml(a.summary)}</span>
838
+ <span class="activity-text">${escHtml(humanizeOps(a.summary, a.source))}</span>
809
839
  </div>
810
840
  `).join('');
811
841
  }
package/public/pulse.html CHANGED
@@ -229,6 +229,9 @@
229
229
  </div>
230
230
 
231
231
  <script>
232
+ var sessionId = sessionStorage.getItem("dash_sid");
233
+ function authHeaders() { return sessionId ? { "x-session-id": sessionId } : {}; }
234
+ fetch('/api/tier', { headers: authHeaders() }).then(r=>{ if(r.status===401){location.href='/';return null;} return r.json(); }).then(d=>{if(d&&(!d.capabilities||!d.capabilities.vault))location.href='/'}).catch(()=>{});
232
235
  // --- State ---
233
236
  const state = {
234
237
  sense: 0.3,
@@ -399,12 +399,16 @@
399
399
  </div>
400
400
 
401
401
  <script>
402
+ var sessionId = sessionStorage.getItem("dash_sid");
403
+ function authHeaders() { return sessionId ? { "x-session-id": sessionId } : {}; }
404
+ fetch('/api/tier', { headers: authHeaders() }).then(r=>{ if(r.status===401){location.href='/';return null;} return r.json(); }).then(d=>{if(d&&(!d.capabilities||!d.capabilities.integrations))location.href='/'}).catch(()=>{});
402
405
  (function() {
403
406
  let currentData = null;
404
407
 
405
408
  async function fetchData() {
406
409
  try {
407
- const res = await fetch("/api/capabilities");
410
+ const res = await fetch("/api/capabilities", { headers: authHeaders() });
411
+ if (res.status === 401) { window.location.href = '/'; return null; }
408
412
  if (!res.ok) throw new Error("HTTP " + res.status);
409
413
  return await res.json();
410
414
  } catch (err) {
@@ -593,7 +597,7 @@
593
597
  try {
594
598
  await fetch("/api/settings", {
595
599
  method: "PUT",
596
- headers: { "Content-Type": "application/json" },
600
+ headers: Object.assign({ "Content-Type": "application/json" }, authHeaders()),
597
601
  body: JSON.stringify({ capabilities: { [capId]: enabled } })
598
602
  });
599
603
  await refresh();
@@ -496,6 +496,9 @@
496
496
  </div>
497
497
 
498
498
  <script>
499
+ var sessionId = sessionStorage.getItem("dash_sid");
500
+ function authHeaders() { return sessionId ? { "x-session-id": sessionId } : {}; }
501
+ fetch('/api/tier', { headers: authHeaders() }).then(r=>{ if(r.status===401){location.href='/';return null;} return r.json(); }).then(d=>{if(d&&(!d.capabilities||!d.capabilities.spawning))location.href='/'}).catch(()=>{});
499
502
  // --- View switching (global scope for inline onclick) ---
500
503
  let currentView = 'roadmap';
501
504
  let rearviewLoaded = false;
@@ -526,7 +529,8 @@ async function loadRearview(hours) {
526
529
  container.innerHTML = '<div class="loading">Loading recent activity...</div>';
527
530
 
528
531
  try {
529
- const res = await fetch('/api/roadmap/recent?hours=' + hours);
532
+ const res = await fetch('/api/roadmap/recent?hours=' + hours, { headers: authHeaders() });
533
+ if (res.status === 401) { window.location.href = '/'; return; }
530
534
  if (!res.ok) throw new Error('Failed to load');
531
535
  const data = await res.json();
532
536
  rearviewLoaded = true;
@@ -584,7 +588,8 @@ function renderRearview(data, container) {
584
588
 
585
589
  // --- Fetch & parse ---
586
590
  async function load() {
587
- const res = await fetch('/api/roadmap');
591
+ const res = await fetch('/api/roadmap', { headers: authHeaders() });
592
+ if (res.status === 401) { window.location.href = '/'; return; }
588
593
  if (!res.ok) { document.getElementById('loading').textContent = 'Failed to load roadmap'; return; }
589
594
  data = await res.json();
590
595
  activeStreams = new Set(data.streams.map(s => s.id));
package/public/sw.js ADDED
@@ -0,0 +1,65 @@
1
+ // Core service worker — cache-first for app shell, network-first for API
2
+ const CACHE_NAME = "core-v1";
3
+ const APP_SHELL = [
4
+ "/",
5
+ "/public/manifest.json",
6
+ ];
7
+
8
+ // Install: cache app shell
9
+ self.addEventListener("install", (e) => {
10
+ e.waitUntil(
11
+ caches.open(CACHE_NAME).then((cache) => cache.addAll(APP_SHELL))
12
+ );
13
+ self.skipWaiting();
14
+ });
15
+
16
+ // Activate: clean old caches
17
+ self.addEventListener("activate", (e) => {
18
+ e.waitUntil(
19
+ caches.keys().then((keys) =>
20
+ Promise.all(keys.filter((k) => k !== CACHE_NAME).map((k) => caches.delete(k)))
21
+ )
22
+ );
23
+ self.clients.claim();
24
+ });
25
+
26
+ // Fetch: network-first for API, cache-first for shell/static
27
+ self.addEventListener("fetch", (e) => {
28
+ const url = new URL(e.request.url);
29
+
30
+ // Skip non-GET, SSE, and cross-origin
31
+ if (e.request.method !== "GET") return;
32
+ if (url.origin !== self.location.origin) return;
33
+ if (e.request.headers.get("accept") === "text/event-stream") return;
34
+
35
+ // API calls: network-first, cache fallback for reads
36
+ if (url.pathname.startsWith("/api/")) {
37
+ e.respondWith(
38
+ fetch(e.request)
39
+ .then((res) => {
40
+ // Cache successful GET responses for offline fallback
41
+ if (res.ok) {
42
+ const clone = res.clone();
43
+ caches.open(CACHE_NAME).then((cache) => cache.put(e.request, clone));
44
+ }
45
+ return res;
46
+ })
47
+ .catch(() => caches.match(e.request))
48
+ );
49
+ return;
50
+ }
51
+
52
+ // App shell & static: cache-first, network fallback
53
+ e.respondWith(
54
+ caches.match(e.request).then((cached) => {
55
+ if (cached) return cached;
56
+ return fetch(e.request).then((res) => {
57
+ if (res.ok) {
58
+ const clone = res.clone();
59
+ caches.open(CACHE_NAME).then((cache) => cache.put(e.request, clone));
60
+ }
61
+ return res;
62
+ });
63
+ })
64
+ );
65
+ });