wyrm-mcp 7.5.0 → 7.5.2

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 (643) hide show
  1. package/COMPARISON.md +1 -1
  2. package/README.md +77 -478
  3. package/dist/activation.js +1 -59
  4. package/dist/agent-daemon.js +4 -281
  5. package/dist/agent-loop.js +7 -332
  6. package/dist/analytics.js +13 -236
  7. package/dist/attribution.js +1 -49
  8. package/dist/audit.js +2 -457
  9. package/dist/auto-capture.js +3 -138
  10. package/dist/auto-orchestrator.js +1 -325
  11. package/dist/autoconfig.js +42 -1121
  12. package/dist/buddy-runner.js +1 -109
  13. package/dist/buddy.js +14 -564
  14. package/dist/build-flags.js +1 -15
  15. package/dist/capabilities.js +3 -183
  16. package/dist/capture.js +1 -56
  17. package/dist/causality.js +8 -148
  18. package/dist/cli.js +20 -281
  19. package/dist/cloud/cli.js +5 -541
  20. package/dist/cloud/client.js +1 -221
  21. package/dist/cloud/crypto.js +1 -85
  22. package/dist/cloud/machine-id.js +2 -113
  23. package/dist/cloud/recovery.js +1 -60
  24. package/dist/cloud/sync-engine.js +7 -543
  25. package/dist/cloud-backup.js +5 -579
  26. package/dist/cloud-profile.js +1 -138
  27. package/dist/cloud-sync-entrypoint.js +1 -47
  28. package/dist/cloud-sync.js +2 -309
  29. package/dist/connectors/bridge-source.js +1 -77
  30. package/dist/connectors/index.js +1 -69
  31. package/dist/connectors/ingest.js +2 -116
  32. package/dist/connectors/types.js +0 -17
  33. package/dist/constellation.js +12 -168
  34. package/dist/content-signature.js +1 -45
  35. package/dist/context-build-budgeted.js +4 -144
  36. package/dist/context-ranking.js +1 -69
  37. package/dist/crypto.js +1 -179
  38. package/dist/daemon-write-endpoint.js +1 -290
  39. package/dist/daemon-writer.js +2 -406
  40. package/dist/database.js +53 -1289
  41. package/dist/deprecations.js +2 -162
  42. package/dist/design.js +13 -141
  43. package/dist/event-replication.js +1 -112
  44. package/dist/events-sse.js +7 -43
  45. package/dist/events.js +6 -238
  46. package/dist/failure-patterns.js +44 -954
  47. package/dist/federation.js +12 -239
  48. package/dist/goals.js +13 -101
  49. package/dist/golden.js +3 -355
  50. package/dist/handlers/agent.js +4 -165
  51. package/dist/handlers/alias-adapters.js +1 -129
  52. package/dist/handlers/aliases.js +1 -171
  53. package/dist/handlers/audit.js +1 -87
  54. package/dist/handlers/boundary.js +1 -221
  55. package/dist/handlers/capture.js +73 -1114
  56. package/dist/handlers/causality.js +9 -119
  57. package/dist/handlers/cloud.js +85 -382
  58. package/dist/handlers/companion.js +28 -459
  59. package/dist/handlers/datalake.js +7 -187
  60. package/dist/handlers/dispatch-context.js +0 -22
  61. package/dist/handlers/entity.js +25 -256
  62. package/dist/handlers/events.js +16 -335
  63. package/dist/handlers/failure.js +18 -485
  64. package/dist/handlers/goals.js +4 -296
  65. package/dist/handlers/intelligence.js +127 -690
  66. package/dist/handlers/invoicing.js +1 -70
  67. package/dist/handlers/mcpclient.js +6 -137
  68. package/dist/handlers/orchestration.js +40 -125
  69. package/dist/handlers/output-schemas.js +1 -24
  70. package/dist/handlers/presence.js +3 -99
  71. package/dist/handlers/project.js +28 -182
  72. package/dist/handlers/prompts.js +6 -157
  73. package/dist/handlers/quest.js +4 -224
  74. package/dist/handlers/recall.js +13 -272
  75. package/dist/handlers/registry.js +1 -167
  76. package/dist/handlers/resources.js +1 -288
  77. package/dist/handlers/review.js +11 -74
  78. package/dist/handlers/run.js +16 -498
  79. package/dist/handlers/search.js +15 -338
  80. package/dist/handlers/session.js +31 -643
  81. package/dist/handlers/share.js +8 -184
  82. package/dist/handlers/shims.js +1 -464
  83. package/dist/handlers/skill.js +67 -449
  84. package/dist/handlers/survivors.js +1 -120
  85. package/dist/handlers/symbols.js +8 -109
  86. package/dist/handlers/syncops.js +4 -302
  87. package/dist/handlers/types.js +1 -27
  88. package/dist/harvest.js +5 -191
  89. package/dist/hours.js +7 -156
  90. package/dist/http-auth.js +3 -321
  91. package/dist/http-fast.js +22 -1360
  92. package/dist/icons.js +1 -47
  93. package/dist/importers.js +1 -268
  94. package/dist/index.js +2 -844
  95. package/dist/indexer.js +4 -145
  96. package/dist/intelligence.js +31 -283
  97. package/dist/internal-dispatch.js +3 -212
  98. package/dist/keyset.js +1 -110
  99. package/dist/knowledge-graph.js +12 -176
  100. package/dist/license.js +2 -441
  101. package/dist/logger.js +2 -199
  102. package/dist/maintenance.js +2 -148
  103. package/dist/mcp-client.js +6 -262
  104. package/dist/memory-artifacts.js +32 -606
  105. package/dist/migrate-prompt.js +2 -124
  106. package/dist/migrations.js +43 -788
  107. package/dist/performance.js +1 -228
  108. package/dist/presence.js +11 -140
  109. package/dist/priority-embed.js +5 -164
  110. package/dist/project-resolve.js +1 -68
  111. package/dist/providers/embedding-provider.js +1 -355
  112. package/dist/readonly-gate.js +1 -29
  113. package/dist/receipt.js +1 -100
  114. package/dist/rehydration.js +9 -157
  115. package/dist/reindex.js +1 -88
  116. package/dist/render-target.js +21 -544
  117. package/dist/render.js +4 -280
  118. package/dist/repl-guard.js +1 -173
  119. package/dist/replication-daemon-entrypoint.js +1 -31
  120. package/dist/replication-daemon.js +2 -262
  121. package/dist/rerank.js +1 -252
  122. package/dist/resilience.js +1 -591
  123. package/dist/reverse-bridge.js +5 -360
  124. package/dist/security.js +1 -244
  125. package/dist/session-seen.js +3 -51
  126. package/dist/setup.js +1 -260
  127. package/dist/skill-author.js +5 -168
  128. package/dist/spec-kit.js +1 -191
  129. package/dist/sqlite-busy.js +1 -154
  130. package/dist/statusline.js +11 -315
  131. package/dist/sub-agent.js +13 -262
  132. package/dist/summarizer.js +13 -139
  133. package/dist/symbols.js +7 -283
  134. package/dist/sync.js +5 -359
  135. package/dist/tasks-dispatch.js +1 -84
  136. package/dist/tasks.js +1 -282
  137. package/dist/token-budget.js +1 -143
  138. package/dist/tool-analytics.js +7 -129
  139. package/dist/tool-annotations.js +1 -365
  140. package/dist/tool-manifest-v2.json +1 -1
  141. package/dist/tool-manifest.json +1 -1
  142. package/dist/tool-profiles.js +1 -75
  143. package/dist/trace-harvest.js +6 -244
  144. package/dist/truth-cascade.js +1 -4
  145. package/dist/types.js +1 -30
  146. package/dist/ui-dashboard.js +41 -50
  147. package/dist/ulid.js +1 -81
  148. package/dist/usage-tracker.js +1 -66
  149. package/dist/validate.js +1 -129
  150. package/dist/vault.js +1 -534
  151. package/dist/vector-init.js +1 -67
  152. package/dist/vectors.js +3 -234
  153. package/dist/version-check.js +4 -145
  154. package/dist/visibility.js +19 -155
  155. package/dist/wyrm-cli.js +131 -2849
  156. package/dist/wyrm-guard.js +15 -470
  157. package/dist/wyrm-loop.js +3 -174
  158. package/dist/wyrm-manifest.json +1 -1
  159. package/dist/wyrm-statusline-daemon.js +1 -11
  160. package/dist/wyrm-statusline.js +4 -56
  161. package/dist/wyrm-ui.js +9 -77
  162. package/package.json +11 -6
  163. package/scripts/postinstall.cjs +3 -2
  164. package/skills/wyrm-getting-started/SKILL.md +105 -0
  165. package/skills/wyrm-memory-and-recall/SKILL.md +88 -0
  166. package/skills/wyrm-negative-learning/SKILL.md +63 -0
  167. package/skills/wyrm-nvidia-nim/SKILL.md +107 -0
  168. package/dist/activation.d.ts +0 -34
  169. package/dist/activation.d.ts.map +0 -1
  170. package/dist/activation.js.map +0 -1
  171. package/dist/agent-daemon.d.ts +0 -72
  172. package/dist/agent-daemon.d.ts.map +0 -1
  173. package/dist/agent-daemon.js.map +0 -1
  174. package/dist/agent-loop.d.ts +0 -96
  175. package/dist/agent-loop.d.ts.map +0 -1
  176. package/dist/agent-loop.js.map +0 -1
  177. package/dist/analytics.d.ts +0 -100
  178. package/dist/analytics.d.ts.map +0 -1
  179. package/dist/analytics.js.map +0 -1
  180. package/dist/attribution.d.ts +0 -51
  181. package/dist/attribution.d.ts.map +0 -1
  182. package/dist/attribution.js.map +0 -1
  183. package/dist/audit.d.ts +0 -258
  184. package/dist/audit.d.ts.map +0 -1
  185. package/dist/audit.js.map +0 -1
  186. package/dist/auto-capture.d.ts +0 -43
  187. package/dist/auto-capture.d.ts.map +0 -1
  188. package/dist/auto-capture.js.map +0 -1
  189. package/dist/auto-orchestrator.d.ts +0 -118
  190. package/dist/auto-orchestrator.d.ts.map +0 -1
  191. package/dist/auto-orchestrator.js.map +0 -1
  192. package/dist/autoconfig.d.ts +0 -171
  193. package/dist/autoconfig.d.ts.map +0 -1
  194. package/dist/autoconfig.js.map +0 -1
  195. package/dist/buddy-runner.d.ts +0 -24
  196. package/dist/buddy-runner.d.ts.map +0 -1
  197. package/dist/buddy-runner.js.map +0 -1
  198. package/dist/buddy.d.ts +0 -110
  199. package/dist/buddy.d.ts.map +0 -1
  200. package/dist/buddy.js.map +0 -1
  201. package/dist/build-flags.d.ts +0 -15
  202. package/dist/build-flags.d.ts.map +0 -1
  203. package/dist/build-flags.js.map +0 -1
  204. package/dist/capabilities.d.ts +0 -59
  205. package/dist/capabilities.d.ts.map +0 -1
  206. package/dist/capabilities.js.map +0 -1
  207. package/dist/capture.d.ts +0 -19
  208. package/dist/capture.d.ts.map +0 -1
  209. package/dist/capture.js.map +0 -1
  210. package/dist/causality.d.ts +0 -97
  211. package/dist/causality.d.ts.map +0 -1
  212. package/dist/causality.js.map +0 -1
  213. package/dist/cli.d.ts +0 -148
  214. package/dist/cli.d.ts.map +0 -1
  215. package/dist/cli.js.map +0 -1
  216. package/dist/cloud/cli.d.ts +0 -16
  217. package/dist/cloud/cli.d.ts.map +0 -1
  218. package/dist/cloud/cli.js.map +0 -1
  219. package/dist/cloud/client.d.ts +0 -208
  220. package/dist/cloud/client.d.ts.map +0 -1
  221. package/dist/cloud/client.js.map +0 -1
  222. package/dist/cloud/crypto.d.ts +0 -28
  223. package/dist/cloud/crypto.d.ts.map +0 -1
  224. package/dist/cloud/crypto.js.map +0 -1
  225. package/dist/cloud/machine-id.d.ts +0 -80
  226. package/dist/cloud/machine-id.d.ts.map +0 -1
  227. package/dist/cloud/machine-id.js.map +0 -1
  228. package/dist/cloud/recovery.d.ts +0 -30
  229. package/dist/cloud/recovery.d.ts.map +0 -1
  230. package/dist/cloud/recovery.js.map +0 -1
  231. package/dist/cloud/sync-engine.d.ts +0 -87
  232. package/dist/cloud/sync-engine.d.ts.map +0 -1
  233. package/dist/cloud/sync-engine.js.map +0 -1
  234. package/dist/cloud-backup.d.ts +0 -109
  235. package/dist/cloud-backup.d.ts.map +0 -1
  236. package/dist/cloud-backup.js.map +0 -1
  237. package/dist/cloud-profile.d.ts +0 -103
  238. package/dist/cloud-profile.d.ts.map +0 -1
  239. package/dist/cloud-profile.js.map +0 -1
  240. package/dist/cloud-sync-entrypoint.d.ts +0 -18
  241. package/dist/cloud-sync-entrypoint.d.ts.map +0 -1
  242. package/dist/cloud-sync-entrypoint.js.map +0 -1
  243. package/dist/cloud-sync.d.ts +0 -105
  244. package/dist/cloud-sync.d.ts.map +0 -1
  245. package/dist/cloud-sync.js.map +0 -1
  246. package/dist/connectors/bridge-source.d.ts +0 -46
  247. package/dist/connectors/bridge-source.d.ts.map +0 -1
  248. package/dist/connectors/bridge-source.js.map +0 -1
  249. package/dist/connectors/index.d.ts +0 -24
  250. package/dist/connectors/index.d.ts.map +0 -1
  251. package/dist/connectors/index.js.map +0 -1
  252. package/dist/connectors/ingest.d.ts +0 -16
  253. package/dist/connectors/ingest.d.ts.map +0 -1
  254. package/dist/connectors/ingest.js.map +0 -1
  255. package/dist/connectors/types.d.ts +0 -99
  256. package/dist/connectors/types.d.ts.map +0 -1
  257. package/dist/connectors/types.js.map +0 -1
  258. package/dist/constellation.d.ts +0 -44
  259. package/dist/constellation.d.ts.map +0 -1
  260. package/dist/constellation.js.map +0 -1
  261. package/dist/content-signature.d.ts +0 -33
  262. package/dist/content-signature.d.ts.map +0 -1
  263. package/dist/content-signature.js.map +0 -1
  264. package/dist/context-build-budgeted.d.ts +0 -43
  265. package/dist/context-build-budgeted.d.ts.map +0 -1
  266. package/dist/context-build-budgeted.js.map +0 -1
  267. package/dist/context-ranking.d.ts +0 -43
  268. package/dist/context-ranking.d.ts.map +0 -1
  269. package/dist/context-ranking.js.map +0 -1
  270. package/dist/crypto.d.ts +0 -72
  271. package/dist/crypto.d.ts.map +0 -1
  272. package/dist/crypto.js.map +0 -1
  273. package/dist/daemon-write-endpoint.d.ts +0 -112
  274. package/dist/daemon-write-endpoint.d.ts.map +0 -1
  275. package/dist/daemon-write-endpoint.js.map +0 -1
  276. package/dist/daemon-writer.d.ts +0 -196
  277. package/dist/daemon-writer.d.ts.map +0 -1
  278. package/dist/daemon-writer.js.map +0 -1
  279. package/dist/database.d.ts +0 -501
  280. package/dist/database.d.ts.map +0 -1
  281. package/dist/database.js.map +0 -1
  282. package/dist/deprecations.d.ts +0 -99
  283. package/dist/deprecations.d.ts.map +0 -1
  284. package/dist/deprecations.js.map +0 -1
  285. package/dist/design.d.ts +0 -81
  286. package/dist/design.d.ts.map +0 -1
  287. package/dist/design.js.map +0 -1
  288. package/dist/event-replication.d.ts +0 -69
  289. package/dist/event-replication.d.ts.map +0 -1
  290. package/dist/event-replication.js.map +0 -1
  291. package/dist/events-sse.d.ts +0 -34
  292. package/dist/events-sse.d.ts.map +0 -1
  293. package/dist/events-sse.js.map +0 -1
  294. package/dist/events.d.ts +0 -111
  295. package/dist/events.d.ts.map +0 -1
  296. package/dist/events.js.map +0 -1
  297. package/dist/failure-patterns.d.ts +0 -612
  298. package/dist/failure-patterns.d.ts.map +0 -1
  299. package/dist/failure-patterns.js.map +0 -1
  300. package/dist/federation.d.ts +0 -86
  301. package/dist/federation.d.ts.map +0 -1
  302. package/dist/federation.js.map +0 -1
  303. package/dist/goals.d.ts +0 -95
  304. package/dist/goals.d.ts.map +0 -1
  305. package/dist/goals.js.map +0 -1
  306. package/dist/golden.d.ts +0 -72
  307. package/dist/golden.d.ts.map +0 -1
  308. package/dist/golden.js.map +0 -1
  309. package/dist/handlers/agent.d.ts +0 -7
  310. package/dist/handlers/agent.d.ts.map +0 -1
  311. package/dist/handlers/agent.js.map +0 -1
  312. package/dist/handlers/alias-adapters.d.ts +0 -62
  313. package/dist/handlers/alias-adapters.d.ts.map +0 -1
  314. package/dist/handlers/alias-adapters.js.map +0 -1
  315. package/dist/handlers/aliases.d.ts +0 -54
  316. package/dist/handlers/aliases.d.ts.map +0 -1
  317. package/dist/handlers/aliases.js.map +0 -1
  318. package/dist/handlers/audit.d.ts +0 -7
  319. package/dist/handlers/audit.d.ts.map +0 -1
  320. package/dist/handlers/audit.js.map +0 -1
  321. package/dist/handlers/boundary.d.ts +0 -118
  322. package/dist/handlers/boundary.d.ts.map +0 -1
  323. package/dist/handlers/boundary.js.map +0 -1
  324. package/dist/handlers/capture.d.ts +0 -25
  325. package/dist/handlers/capture.d.ts.map +0 -1
  326. package/dist/handlers/capture.js.map +0 -1
  327. package/dist/handlers/causality.d.ts +0 -7
  328. package/dist/handlers/causality.d.ts.map +0 -1
  329. package/dist/handlers/causality.js.map +0 -1
  330. package/dist/handlers/cloud.d.ts +0 -7
  331. package/dist/handlers/cloud.d.ts.map +0 -1
  332. package/dist/handlers/cloud.js.map +0 -1
  333. package/dist/handlers/companion.d.ts +0 -7
  334. package/dist/handlers/companion.d.ts.map +0 -1
  335. package/dist/handlers/companion.js.map +0 -1
  336. package/dist/handlers/datalake.d.ts +0 -7
  337. package/dist/handlers/datalake.d.ts.map +0 -1
  338. package/dist/handlers/datalake.js.map +0 -1
  339. package/dist/handlers/dispatch-context.d.ts +0 -153
  340. package/dist/handlers/dispatch-context.d.ts.map +0 -1
  341. package/dist/handlers/dispatch-context.js.map +0 -1
  342. package/dist/handlers/entity.d.ts +0 -7
  343. package/dist/handlers/entity.d.ts.map +0 -1
  344. package/dist/handlers/entity.js.map +0 -1
  345. package/dist/handlers/events.d.ts +0 -7
  346. package/dist/handlers/events.d.ts.map +0 -1
  347. package/dist/handlers/events.js.map +0 -1
  348. package/dist/handlers/failure.d.ts +0 -29
  349. package/dist/handlers/failure.d.ts.map +0 -1
  350. package/dist/handlers/failure.js.map +0 -1
  351. package/dist/handlers/goals.d.ts +0 -27
  352. package/dist/handlers/goals.d.ts.map +0 -1
  353. package/dist/handlers/goals.js.map +0 -1
  354. package/dist/handlers/intelligence.d.ts +0 -7
  355. package/dist/handlers/intelligence.d.ts.map +0 -1
  356. package/dist/handlers/intelligence.js.map +0 -1
  357. package/dist/handlers/invoicing.d.ts +0 -7
  358. package/dist/handlers/invoicing.d.ts.map +0 -1
  359. package/dist/handlers/invoicing.js.map +0 -1
  360. package/dist/handlers/mcpclient.d.ts +0 -7
  361. package/dist/handlers/mcpclient.d.ts.map +0 -1
  362. package/dist/handlers/mcpclient.js.map +0 -1
  363. package/dist/handlers/orchestration.d.ts +0 -7
  364. package/dist/handlers/orchestration.d.ts.map +0 -1
  365. package/dist/handlers/orchestration.js.map +0 -1
  366. package/dist/handlers/output-schemas.d.ts +0 -25
  367. package/dist/handlers/output-schemas.d.ts.map +0 -1
  368. package/dist/handlers/output-schemas.js.map +0 -1
  369. package/dist/handlers/presence.d.ts +0 -7
  370. package/dist/handlers/presence.d.ts.map +0 -1
  371. package/dist/handlers/presence.js.map +0 -1
  372. package/dist/handlers/project.d.ts +0 -7
  373. package/dist/handlers/project.d.ts.map +0 -1
  374. package/dist/handlers/project.js.map +0 -1
  375. package/dist/handlers/prompts.d.ts +0 -59
  376. package/dist/handlers/prompts.d.ts.map +0 -1
  377. package/dist/handlers/prompts.js.map +0 -1
  378. package/dist/handlers/quest.d.ts +0 -24
  379. package/dist/handlers/quest.d.ts.map +0 -1
  380. package/dist/handlers/quest.js.map +0 -1
  381. package/dist/handlers/recall.d.ts +0 -20
  382. package/dist/handlers/recall.d.ts.map +0 -1
  383. package/dist/handlers/recall.js.map +0 -1
  384. package/dist/handlers/registry.d.ts +0 -79
  385. package/dist/handlers/registry.d.ts.map +0 -1
  386. package/dist/handlers/registry.js.map +0 -1
  387. package/dist/handlers/resources.d.ts +0 -131
  388. package/dist/handlers/resources.d.ts.map +0 -1
  389. package/dist/handlers/resources.js.map +0 -1
  390. package/dist/handlers/review.d.ts +0 -16
  391. package/dist/handlers/review.d.ts.map +0 -1
  392. package/dist/handlers/review.js.map +0 -1
  393. package/dist/handlers/run.d.ts +0 -91
  394. package/dist/handlers/run.d.ts.map +0 -1
  395. package/dist/handlers/run.js.map +0 -1
  396. package/dist/handlers/search.d.ts +0 -22
  397. package/dist/handlers/search.d.ts.map +0 -1
  398. package/dist/handlers/search.js.map +0 -1
  399. package/dist/handlers/session.d.ts +0 -54
  400. package/dist/handlers/session.d.ts.map +0 -1
  401. package/dist/handlers/session.js.map +0 -1
  402. package/dist/handlers/share.d.ts +0 -7
  403. package/dist/handlers/share.d.ts.map +0 -1
  404. package/dist/handlers/share.js.map +0 -1
  405. package/dist/handlers/shims.d.ts +0 -84
  406. package/dist/handlers/shims.d.ts.map +0 -1
  407. package/dist/handlers/shims.js.map +0 -1
  408. package/dist/handlers/skill.d.ts +0 -7
  409. package/dist/handlers/skill.d.ts.map +0 -1
  410. package/dist/handlers/skill.js.map +0 -1
  411. package/dist/handlers/survivors.d.ts +0 -95
  412. package/dist/handlers/survivors.d.ts.map +0 -1
  413. package/dist/handlers/survivors.js.map +0 -1
  414. package/dist/handlers/symbols.d.ts +0 -7
  415. package/dist/handlers/symbols.d.ts.map +0 -1
  416. package/dist/handlers/symbols.js.map +0 -1
  417. package/dist/handlers/syncops.d.ts +0 -7
  418. package/dist/handlers/syncops.d.ts.map +0 -1
  419. package/dist/handlers/syncops.js.map +0 -1
  420. package/dist/handlers/types.d.ts +0 -221
  421. package/dist/handlers/types.d.ts.map +0 -1
  422. package/dist/handlers/types.js.map +0 -1
  423. package/dist/harvest.d.ts +0 -75
  424. package/dist/harvest.d.ts.map +0 -1
  425. package/dist/harvest.js.map +0 -1
  426. package/dist/hours.d.ts +0 -82
  427. package/dist/hours.d.ts.map +0 -1
  428. package/dist/hours.js.map +0 -1
  429. package/dist/http-auth.d.ts +0 -73
  430. package/dist/http-auth.d.ts.map +0 -1
  431. package/dist/http-auth.js.map +0 -1
  432. package/dist/http-fast.d.ts +0 -13
  433. package/dist/http-fast.d.ts.map +0 -1
  434. package/dist/http-fast.js.map +0 -1
  435. package/dist/icons.d.ts +0 -42
  436. package/dist/icons.d.ts.map +0 -1
  437. package/dist/icons.js.map +0 -1
  438. package/dist/importers.d.ts +0 -77
  439. package/dist/importers.d.ts.map +0 -1
  440. package/dist/importers.js.map +0 -1
  441. package/dist/index.d.ts +0 -18
  442. package/dist/index.d.ts.map +0 -1
  443. package/dist/index.js.map +0 -1
  444. package/dist/indexer.d.ts +0 -86
  445. package/dist/indexer.d.ts.map +0 -1
  446. package/dist/indexer.js.map +0 -1
  447. package/dist/intelligence.d.ts +0 -139
  448. package/dist/intelligence.d.ts.map +0 -1
  449. package/dist/intelligence.js.map +0 -1
  450. package/dist/internal-dispatch.d.ts +0 -35
  451. package/dist/internal-dispatch.d.ts.map +0 -1
  452. package/dist/internal-dispatch.js.map +0 -1
  453. package/dist/keyset.d.ts +0 -78
  454. package/dist/keyset.d.ts.map +0 -1
  455. package/dist/keyset.js.map +0 -1
  456. package/dist/knowledge-graph.d.ts +0 -113
  457. package/dist/knowledge-graph.d.ts.map +0 -1
  458. package/dist/knowledge-graph.js.map +0 -1
  459. package/dist/license.d.ts +0 -188
  460. package/dist/license.d.ts.map +0 -1
  461. package/dist/license.js.map +0 -1
  462. package/dist/logger.d.ts +0 -76
  463. package/dist/logger.d.ts.map +0 -1
  464. package/dist/logger.js.map +0 -1
  465. package/dist/maintenance.d.ts +0 -56
  466. package/dist/maintenance.d.ts.map +0 -1
  467. package/dist/maintenance.js.map +0 -1
  468. package/dist/mcp-client.d.ts +0 -76
  469. package/dist/mcp-client.d.ts.map +0 -1
  470. package/dist/mcp-client.js.map +0 -1
  471. package/dist/memory-artifacts.d.ts +0 -250
  472. package/dist/memory-artifacts.d.ts.map +0 -1
  473. package/dist/memory-artifacts.js.map +0 -1
  474. package/dist/migrate-prompt.d.ts +0 -37
  475. package/dist/migrate-prompt.d.ts.map +0 -1
  476. package/dist/migrate-prompt.js.map +0 -1
  477. package/dist/migrations.d.ts +0 -31
  478. package/dist/migrations.d.ts.map +0 -1
  479. package/dist/migrations.js.map +0 -1
  480. package/dist/performance.d.ts +0 -114
  481. package/dist/performance.d.ts.map +0 -1
  482. package/dist/performance.js.map +0 -1
  483. package/dist/presence.d.ts +0 -111
  484. package/dist/presence.d.ts.map +0 -1
  485. package/dist/presence.js.map +0 -1
  486. package/dist/priority-embed.d.ts +0 -76
  487. package/dist/priority-embed.d.ts.map +0 -1
  488. package/dist/priority-embed.js.map +0 -1
  489. package/dist/project-resolve.d.ts +0 -47
  490. package/dist/project-resolve.d.ts.map +0 -1
  491. package/dist/project-resolve.js.map +0 -1
  492. package/dist/providers/embedding-provider.d.ts +0 -162
  493. package/dist/providers/embedding-provider.d.ts.map +0 -1
  494. package/dist/providers/embedding-provider.js.map +0 -1
  495. package/dist/readonly-gate.d.ts +0 -19
  496. package/dist/readonly-gate.d.ts.map +0 -1
  497. package/dist/readonly-gate.js.map +0 -1
  498. package/dist/receipt.d.ts +0 -98
  499. package/dist/receipt.d.ts.map +0 -1
  500. package/dist/receipt.js.map +0 -1
  501. package/dist/rehydration.d.ts +0 -39
  502. package/dist/rehydration.d.ts.map +0 -1
  503. package/dist/rehydration.js.map +0 -1
  504. package/dist/reindex.d.ts +0 -28
  505. package/dist/reindex.d.ts.map +0 -1
  506. package/dist/reindex.js.map +0 -1
  507. package/dist/render-target.d.ts +0 -316
  508. package/dist/render-target.d.ts.map +0 -1
  509. package/dist/render-target.js.map +0 -1
  510. package/dist/render.d.ts +0 -249
  511. package/dist/render.d.ts.map +0 -1
  512. package/dist/render.js.map +0 -1
  513. package/dist/repl-guard.d.ts +0 -80
  514. package/dist/repl-guard.d.ts.map +0 -1
  515. package/dist/repl-guard.js.map +0 -1
  516. package/dist/replication-daemon-entrypoint.d.ts +0 -15
  517. package/dist/replication-daemon-entrypoint.d.ts.map +0 -1
  518. package/dist/replication-daemon-entrypoint.js.map +0 -1
  519. package/dist/replication-daemon.d.ts +0 -96
  520. package/dist/replication-daemon.d.ts.map +0 -1
  521. package/dist/replication-daemon.js.map +0 -1
  522. package/dist/rerank.d.ts +0 -84
  523. package/dist/rerank.d.ts.map +0 -1
  524. package/dist/rerank.js.map +0 -1
  525. package/dist/resilience.d.ts +0 -146
  526. package/dist/resilience.d.ts.map +0 -1
  527. package/dist/resilience.js.map +0 -1
  528. package/dist/reverse-bridge.d.ts +0 -253
  529. package/dist/reverse-bridge.d.ts.map +0 -1
  530. package/dist/reverse-bridge.js.map +0 -1
  531. package/dist/security.d.ts +0 -81
  532. package/dist/security.d.ts.map +0 -1
  533. package/dist/security.js.map +0 -1
  534. package/dist/session-seen.d.ts +0 -39
  535. package/dist/session-seen.d.ts.map +0 -1
  536. package/dist/session-seen.js.map +0 -1
  537. package/dist/setup.d.ts +0 -21
  538. package/dist/setup.d.ts.map +0 -1
  539. package/dist/setup.js.map +0 -1
  540. package/dist/skill-author.d.ts +0 -90
  541. package/dist/skill-author.d.ts.map +0 -1
  542. package/dist/skill-author.js.map +0 -1
  543. package/dist/spec-kit.d.ts +0 -56
  544. package/dist/spec-kit.d.ts.map +0 -1
  545. package/dist/spec-kit.js.map +0 -1
  546. package/dist/sqlite-busy.d.ts +0 -134
  547. package/dist/sqlite-busy.d.ts.map +0 -1
  548. package/dist/sqlite-busy.js.map +0 -1
  549. package/dist/statusline.d.ts +0 -68
  550. package/dist/statusline.d.ts.map +0 -1
  551. package/dist/statusline.js.map +0 -1
  552. package/dist/sub-agent.d.ts +0 -58
  553. package/dist/sub-agent.d.ts.map +0 -1
  554. package/dist/sub-agent.js.map +0 -1
  555. package/dist/summarizer.d.ts +0 -30
  556. package/dist/summarizer.d.ts.map +0 -1
  557. package/dist/summarizer.js.map +0 -1
  558. package/dist/symbols.d.ts +0 -65
  559. package/dist/symbols.d.ts.map +0 -1
  560. package/dist/symbols.js.map +0 -1
  561. package/dist/sync.d.ts +0 -39
  562. package/dist/sync.d.ts.map +0 -1
  563. package/dist/sync.js.map +0 -1
  564. package/dist/tasks-dispatch.d.ts +0 -48
  565. package/dist/tasks-dispatch.d.ts.map +0 -1
  566. package/dist/tasks-dispatch.js.map +0 -1
  567. package/dist/tasks.d.ts +0 -214
  568. package/dist/tasks.d.ts.map +0 -1
  569. package/dist/tasks.js.map +0 -1
  570. package/dist/token-budget.d.ts +0 -89
  571. package/dist/token-budget.d.ts.map +0 -1
  572. package/dist/token-budget.js.map +0 -1
  573. package/dist/tool-analytics.d.ts +0 -85
  574. package/dist/tool-analytics.d.ts.map +0 -1
  575. package/dist/tool-analytics.js.map +0 -1
  576. package/dist/tool-annotations.d.ts +0 -111
  577. package/dist/tool-annotations.d.ts.map +0 -1
  578. package/dist/tool-annotations.js.map +0 -1
  579. package/dist/tool-profiles.d.ts +0 -56
  580. package/dist/tool-profiles.d.ts.map +0 -1
  581. package/dist/tool-profiles.js.map +0 -1
  582. package/dist/trace-harvest.d.ts +0 -78
  583. package/dist/trace-harvest.d.ts.map +0 -1
  584. package/dist/trace-harvest.js.map +0 -1
  585. package/dist/truth-cascade.d.ts +0 -13
  586. package/dist/truth-cascade.d.ts.map +0 -1
  587. package/dist/truth-cascade.js.map +0 -1
  588. package/dist/types.d.ts +0 -273
  589. package/dist/types.d.ts.map +0 -1
  590. package/dist/types.js.map +0 -1
  591. package/dist/ui-dashboard.d.ts +0 -8
  592. package/dist/ui-dashboard.d.ts.map +0 -1
  593. package/dist/ui-dashboard.js.map +0 -1
  594. package/dist/ulid.d.ts +0 -26
  595. package/dist/ulid.d.ts.map +0 -1
  596. package/dist/ulid.js.map +0 -1
  597. package/dist/usage-tracker.d.ts +0 -55
  598. package/dist/usage-tracker.d.ts.map +0 -1
  599. package/dist/usage-tracker.js.map +0 -1
  600. package/dist/validate.d.ts +0 -53
  601. package/dist/validate.d.ts.map +0 -1
  602. package/dist/validate.js.map +0 -1
  603. package/dist/vault.d.ts +0 -47
  604. package/dist/vault.d.ts.map +0 -1
  605. package/dist/vault.js.map +0 -1
  606. package/dist/vector-init.d.ts +0 -28
  607. package/dist/vector-init.d.ts.map +0 -1
  608. package/dist/vector-init.js.map +0 -1
  609. package/dist/vectors.d.ts +0 -108
  610. package/dist/vectors.d.ts.map +0 -1
  611. package/dist/vectors.js.map +0 -1
  612. package/dist/version-check.d.ts +0 -37
  613. package/dist/version-check.d.ts.map +0 -1
  614. package/dist/version-check.js.map +0 -1
  615. package/dist/visibility.d.ts +0 -48
  616. package/dist/visibility.d.ts.map +0 -1
  617. package/dist/visibility.js.map +0 -1
  618. package/dist/wyrm-cli.d.ts +0 -11
  619. package/dist/wyrm-cli.d.ts.map +0 -1
  620. package/dist/wyrm-cli.js.map +0 -1
  621. package/dist/wyrm-guard.d.ts +0 -97
  622. package/dist/wyrm-guard.d.ts.map +0 -1
  623. package/dist/wyrm-guard.js.map +0 -1
  624. package/dist/wyrm-loop.d.ts +0 -27
  625. package/dist/wyrm-loop.d.ts.map +0 -1
  626. package/dist/wyrm-loop.js.map +0 -1
  627. package/dist/wyrm-statusline-daemon.d.ts +0 -11
  628. package/dist/wyrm-statusline-daemon.d.ts.map +0 -1
  629. package/dist/wyrm-statusline-daemon.js.map +0 -1
  630. package/dist/wyrm-statusline.d.ts +0 -18
  631. package/dist/wyrm-statusline.d.ts.map +0 -1
  632. package/dist/wyrm-statusline.js.map +0 -1
  633. package/dist/wyrm-ui.d.ts +0 -20
  634. package/dist/wyrm-ui.d.ts.map +0 -1
  635. package/dist/wyrm-ui.js.map +0 -1
  636. package/skills/azur-codirector-workflow/SKILL.md +0 -169
  637. package/skills/dragon-spec-author/SKILL.md +0 -158
  638. package/skills/ghost-protocol-portfolio/SKILL.md +0 -155
  639. package/skills/professional-ascii-art/SKILL.md +0 -241
  640. package/skills/ryan-founder-workflow/SKILL.md +0 -169
  641. package/skills/sachintha-creative-stack/SKILL.md +0 -264
  642. package/skills/wyrm-project-bootstrap/SKILL.md +0 -124
  643. package/skills/wyrm-release-workflow/SKILL.md +0 -148
package/COMPARISON.md CHANGED
@@ -29,7 +29,7 @@ This table compares facts that mean the same thing for every system.
29
29
 
30
30
  | System | Open source | Runs fully local / no cloud | LLM at **write** (ingest) | LLM at **answer** | Headline metric |
31
31
  |---|---|---|---|---|---|
32
- | **Wyrm** | AGPL-3.0 (dual-licensed) | ✅ yes | ❌ **none** (deterministic FTS/vector) | ❌ **none** (retrieval only) | retrieval recall@k |
32
+ | **Wyrm** | No (proprietary freeware) | ✅ yes | ❌ **none** (deterministic FTS/vector) | ❌ **none** (retrieval only) | retrieval recall@k |
33
33
  | Mem0 | Apache-2.0 (+ managed cloud) | self-host possible | ✅ required (LLM extraction + ADD/UPDATE/DELETE/NOOP) | ✅ required | QA accuracy (LLM-judge "J") |
34
34
  | Zep / Graphiti | Graphiti Apache-2.0 (Zep cloud) | self-host possible | ✅ required (LLM graph construction) | ✅ required | QA accuracy (LLM-judge) |
35
35
  | SuperMemory · cognee · SuperLocalMemory | varies | varies | varies | varies | *no citable LoCoMo/LongMemEval number found* (see below) |
package/README.md CHANGED
@@ -1,522 +1,121 @@
1
- # Wyrm — the intelligence layer for AI agents
2
-
3
- > Persistent memory is table stakes. The real problem is what agents *do* with it — Wyrm blocks the repeat, keeps decisions true, and learns as a fleet. Memory is the substrate; the judgment is the moat.
4
-
5
- [![npm version](https://img.shields.io/npm/v/wyrm-mcp?color=00B89F&label=npm)](https://www.npmjs.com/package/wyrm-mcp)
6
- [![License: Proprietary](https://img.shields.io/badge/License-Proprietary-b91c1c.svg)](LICENSE)
7
- [![Tests](https://img.shields.io/badge/tests-1901%20passing-00B89F)](https://github.com/Ghosts-Protocol-Pvt-Ltd/Wyrm)
8
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
9
- [![MCP](https://img.shields.io/badge/MCP-compatible-00B89F)](https://modelcontextprotocol.io)
10
-
11
- **[wyrm.ghosts.lk](https://wyrm.ghosts.lk)**  ·  **[npm](https://www.npmjs.com/package/wyrm-mcp)**  ·  **[GitHub](https://github.com/Ghosts-Protocol-Pvt-Ltd/Wyrm)**  ·  **[Ghost Protocol](https://ghosts.lk)**  ·  `npm i -g wyrm-mcp`
12
-
13
- Local-first persistent memory for AI agents over MCP — by [Ghost Protocol](https://ghosts.lk). Runs fully offline on your machine: no cloud, no LLM required. The official build activates with a one-time free `wyrm login`; your memory stays local either way. The managed cloud tier lives at **[wyrm.ghosts.lk](https://wyrm.ghosts.lk)**.
14
-
15
- ---
16
-
17
- ## What Wyrm actually is
18
-
19
- Wyrm is not "AI memory." It's the **substrate** that turns one-shot AI conversations into *accreting intelligence*. Five things, only one of which is memory:
20
-
21
- 1. **⌇ Memory across sessions, tools, and projects.** Your AI inherits prior state instead of starting cold every conversation. Works with Claude / Copilot / Cursor / Windsurf / Codex.
22
- 2. **✖ Counter-pattern blocking.** When an approach fails, Wyrm records it. Next time, your AI is *blocked* from suggesting the same failed thing again. Other memory tools learn only from success — Wyrm learns from failure too.
23
- 3. **→ Autonomous goal pursuit (OODA agent loop).** Set a persistent goal ("ship v2", "keep deps current weekly"), and the `wyrm-loop` daemon runs Observe→Orient→Decide→Act iterations until success criteria are met.
24
- 4. **↯ Federation.** Wyrm calls other MCP servers (GitHub, Slack, Linear, …) as tools. Buddy Protocol v1.0 lets Wyrm talk to other AI memory tools. Composes your whole stack into one mind.
25
- 5. **✺ Creative substrate.** First-class design tokens (colour / type / spacing / motion / shadow / radius / breakpoint) and a tagged design-reference clipper — Wyrm is not just for code.
26
-
27
- **Reproducible numbers — with receipts.** Every figure below is offline and reproducible from this repo → **[BENCHMARKS.md](BENCHMARKS.md)**:
28
-
29
- - **Retrieval** — real LoCoMo (1,982 evidence QA): the deterministic **zero-LLM, zero-cloud** floor is recall@5 **52.4%** / recall@10 **59.9%**, lifting to **60.3% / 72.2%** with local Ollama vectors.
30
- - **Negative learning** — the benchmark no recall-only memory runs: the firewall blocks a repeated mistake at **100% recall · 100% precision** (0 false blocks on novel actions), deterministic, p50 ~0.1 ms.
31
- - **Reranker (opt-in)** — a local cross-encoder lifts recall@1 **33% → 53%** (+19 pts) and MRR **.45 → .61**.
32
- - **Honest vs the field** → **[COMPARISON.md](COMPARISON.md)**: Wyrm reports *retrieval recall@k*; mem0 / Zep report *LLM-judged QA-accuracy* — different axes, never conflated, every competitor figure cited + vendor-self-reported.
33
-
34
- ```
35
- You: "What did we decide about the auth architecture last week?"
36
- AI: *calls wyrm_session_prime* "We went with JWT + refresh tokens, stored
37
- in httpOnly cookies. Truth #142 cites the Tuesday session — there's
38
- a downstream impact on the OAuth flow we should check first."
39
- ```
40
-
41
- You don't ask for memory. The AI cites it on its own. Visibly, with sources.
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/Ghosts-Protocol-Pvt-Ltd/wyrm-mcp/main/assets/dragon-mark.svg" alt="Wyrm" width="96" />
3
+ </p>
4
+
5
+ <p align="center">
6
+ <img src="https://raw.githubusercontent.com/Ghosts-Protocol-Pvt-Ltd/wyrm-mcp/main/assets/hero.svg" alt="Wyrm — memory that survives the session" width="100%" />
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://www.npmjs.com/package/wyrm-mcp"><img src="https://img.shields.io/npm/v/wyrm-mcp?style=flat-square&labelColor=050505&color=c9ccd1&label=npm" alt="npm version" /></a>
11
+ <a href="https://www.npmjs.com/package/wyrm-mcp"><img src="https://img.shields.io/npm/dm/wyrm-mcp?style=flat-square&labelColor=050505&color=c9ccd1&label=downloads" alt="npm downloads" /></a>
12
+ <a href="#requirements"><img src="https://img.shields.io/node/v/wyrm-mcp?style=flat-square&labelColor=050505&color=c9ccd1" alt="node" /></a>
13
+ <img src="https://img.shields.io/badge/license-proprietary-c9ccd1?style=flat-square&labelColor=050505" alt="license: proprietary" />
14
+ <img src="https://img.shields.io/badge/registry-lk.ghosts%2Fwyrm-34d399?style=flat-square&labelColor=050505" alt="MCP registry" />
15
+ <img src="https://img.shields.io/badge/runs-local--first-34d399?style=flat-square&labelColor=050505" alt="local-first" />
16
+ </p>
17
+
18
+ <p align="center">
19
+ <b>Persistent memory for AI agents, over MCP.</b><br/>
20
+ Ground truths, recorded failures that block repeats, decision causality, and hybrid recall.<br/>
21
+ A structured SQLite memory on your machine. No cloud, no separate LLM.
22
+ </p>
23
+
24
+ <p align="center">
25
+ <a href="https://ghosts.lk/wyrm">Website</a> ·
26
+ <a href="#quickstart">Quickstart</a> ·
27
+ <a href="https://github.com/Ghosts-Protocol-Pvt-Ltd/wyrm-mcp/discussions">Discussions</a> ·
28
+ <a href="CHANGELOG.md">Changelog</a>
29
+ </p>
42
30
 
43
31
  ---
44
32
 
45
- ## New in 7.0 — "BROOD": memory for agent FLEETS
33
+ ## What it is
46
34
 
47
- > *One agent burns its hand and a hundred siblings never touch the stove.*
35
+ Most AI coding sessions start from zero. Wyrm gives the agent a memory that persists across them. It keeps your project's decisions, conventions, open work, and dead-ends in a structured database on your own machine, and hands them back to the model at the start of the next session. An agent connected to Wyrm recalls what was decided last week instead of re-deriving it, and can be stopped from repeating an approach that already failed.
48
36
 
49
- The unit of cognition is now the **run** an orchestrator fanning out structured-output subagents — and 7.0 rebuilds Wyrm around it:
37
+ It speaks the Model Context Protocol, so it drops into Claude, Cursor, Copilot, Windsurf, and Codex without glue code.
50
38
 
51
- - **The lean frozen surface.** Default ListTools advertises **32 tools** (≈7,993 tokens — chars/4, the F1-census convention — byte-stable across calls) instead of 6.x's 62-tool default / 137 full-load — and **every one of the 137 6.x names stays callable** through a generated alias spine routing to the same handlers. `WYRM_PROFILE=essential` = the core 4 (`session_prime` / `recall` / `capture` / `failure_check`); `WYRM_PROFILE=legacy` (or `full`, now its permanent synonym) re-advertises everything. Discovery is a hard CI gate: BM25 top-3 **100%** on 65 intent queries (threshold 90%).
52
- - **Run-native attribution.** First-class `runs`/`run_agents` tables; every write attributable to `(agent_id, run_id)` (explicit param > `_meta['wyrm/actor']` > env > clientInfo), bound into the signed Ed25519 audit chain.
53
- - **Fleet negative learning.** A failure recorded by one subagent **blocks the repeat for every sibling**: run-scoped quarantine with principled promotion, structured `failure_check` verdicts (`{blocked, matches[], recorded_by_agent, run_id, confidence}` — deterministic, no LLM), and **`wyrm-guard`** — a PreToolUse hook bin that enforces it harness-side (block / warn / silent when clean; measured p95 ≤70ms incl. node startup). `wyrm_stats view=failures` prints the ROI number nobody else can: *"N repeats blocked this run."*
54
- - **The run loop.** `wyrm_run` `action=start|join|status|debrief|end` — debrief fans each agent's learnings through LOCAL-only extraction (Ollama / deterministic fallback, never a cloud LLM) into a run-scoped review queue; `end` promotes/expires quarantined failures and releases the run's claims. Fleet-mode `session_prime {run_id, role}` returns a byte-stable cached brief (≤1,200 tokens) — 12 simultaneous primes share one prompt-cache prefix. **Distribute-once**: an orchestrator that primes one `{run_id, role, for_spawn: true}` per role gets that brief back as clean embeddable markdown (+ `brief_hash` + the `run_briefs` cache key) and embeds it in each same-role agent's spawn-prompt **prefix** — so the cacheable share of the fleet's prime cost becomes never-sent bytes (measured: a 12-agent / 4-role run's prime deliveries drop 12 → 4; bench `S3b` is −38.7% vs the `S3` floor). Agent-side prime stays the byte-identical CAS-row fallback, so a forgetful orchestrator degrades to the unchanged per-agent cost, never below.
55
- - **A typed machine wire.** The 7 hot-path domains (capture, recall, search, failure, quest, session/prime, review) return schema-validated `structuredContent`; `content[0].text` is *derived* from it (plain ASCII default, `WYRM_FANCY=1` for glyphs); SEP-1303 structured errors fleets self-correct on; 100% of advertised tools annotated; `prime`/`debrief` exposed as MCP protocol-level prompts.
56
- - **Single-channel wire (opt-in token economy).** `WYRM_CHANNEL` (vendor-neutral, set per MCP-client config) chooses which channel(s) ride the wire. Default **`both`** = today's exact bytes (no change unless you opt in). **`structured`** keeps the full `structuredContent` body byte-identical and collapses `content[0].text` to the template's summary line + a "full body in structuredContent" pointer — **lossless by construction** (the text was always *derived* from the body) and protocol-valid, but requires that your harness forwards `structuredContent` to the model. **`text`** drops `structuredContent` and keeps the full prose (the human-complete derivation) — the lean mode for harnesses that read text only; **note:** a strict MCP client rejects a body-less response for a tool that declares an `outputSchema`, so `text` is for non-strict / text-only consumers. Measured on `bench/token-economy.mjs --channel`: an opted-in working hour drops **~40%** (`structured`) to **~49%** (`text`); recall (82% of that hour) is the lever. `session_rehydrate` is exempt (its briefing markdown *is* the payload).
57
- - **CLI exile + deletions.** 22 operator/egress tools moved to `wyrm` subcommands — their MCP names return a structured redirect with the exact command (`wyrm_cloud_backup`/`wyrm_sync_export` keep executing through 7.0.x so scheduled backups never silently stop). The legacy `wyrm-http` server is **deleted** (its 6.18 access log measured zero traffic) — `wyrm serve` is the HTTP surface.
39
+ ## Quickstart
58
40
 
59
- **Compatibility:** all 137 names callable; text output reformats (exact-string consumers pin the 6.x line — kept on the `legacy` dist-tag (`wyrm-mcp@6.18.1`): `npm i wyrm-mcp@legacy`); a v6.x database opens with 100% rows (migrations 20–24, all additive + guarded). Per-name dispositions: `specs/wyrm-v7-brood/disposition.md` in the repo.
60
-
61
- ## New in 6.0 — "Present"
62
-
63
- - **Live statusline** — `wyrm-statusline` binary renders Wyrm's live state into your Claude Code (or Cursor / Windsurf) statusline: `Wyrm · ProjectName · 3 ⟶ · ~12k saved · ⬢ 7`. Auto-spawned daemon, idle-times-out, privacy mode for screen-shares.
64
- - **✧ Cross-project memory** — `wyrm_constellation` queries FTS5 across every registered Wyrm project at once. *"Have I solved this before in any project?"* Privacy-gated: per-row `cross_project_visibility` defaults to `'within'`.
65
- - **▰ Tool profiles** — `essential` / `standard` / `full` profiles. *(7.0: client-name auto-detection removed — `WYRM_PROFILE` is the one lever; `full` = `legacy`.)*
66
- - **⊡ Cache markers** — `wyrm_context_build` segregates a stable preamble for Anthropic prompt-caching (10× cost cut on cached portions).
67
- - **↺ `wyrm_migrate_prompt`** — rewrite Wyrm-managed blocks in `.cursor/rules`, `.github/copilot-instructions.md`, `CLAUDE.md` idempotently. Operator content outside the markers is preserved verbatim.
68
-
69
- Enable the statusline in Claude Code:
70
- ```json
71
- { "statusLine": { "type": "command", "command": "wyrm-statusline", "padding": 0 } }
72
- ```
73
-
74
- ## What's in the box (32 advertised tools · 137 names callable)
75
-
76
- - **⌇ Memory** — projects, sessions, quests, ground truths, memory artifacts, hybrid FTS5 + vector search
77
- - **✖ Counter-pattern** — failure check / record / resolve, blocks repeated mistakes at suggestion time
78
- - **⬢ Ground truths** — validated facts versioned with cascade-invalidation when upstream changes
79
- - **✱ Decision chain** — `wyrm_decided_because`, `decision_upstream` / `_downstream`, blast-radius traversal
80
- - **→ Agent loop** — `wyrm_goal_set`, `wyrm_agent_init`, daemon runs OODA until success criteria are met
81
- - **↯ Federation** — `wyrm_mcp_register` for outbound MCP, Buddy Protocol v1.0 for peer AI tools
82
- - **🕸 Knowledge graph** — entity / relationship graph with shortest-path and neighborhood queries
83
- - **🎨 Design substrate** — `design_tokens` + tagged `design_references` library
84
- - **🛡 Audit chain** — hash-chained, Ed25519-signable audit log for SOC2 / HIPAA
85
- - **💰 Hour ledger + invoicing** — generate invoices from session content
86
- - **🌐 Federated team sync** — per-row `is_shared` flag; PII never leaves your box unless explicitly shared
87
- - **🔒 Encryption** — AES-256-GCM; keys never leave your machine
88
- - **👁 Visibility tools** — `wyrm_intro` + `wyrm_digest` make Wyrm's work product legible to humans
89
-
90
- ## Built for these workflows
91
-
92
- - **Founders** with multi-product portfolios — cross-project memory makes patterns from project A inform project B
93
- - **Designers / creatives** — design tokens + reference clipper turn Wyrm into a creative substrate, not just a code-memory tool
94
- - **Co-founders / operators** — `wyrm_digest` shows what Wyrm did this week in plain English
95
- - **Long-running autonomous work** — agent loop runs your standing goals overnight
96
- - 🧠 **Memory Artifacts** — Store lessons, patterns, anti-patterns, heuristics with confidence scoring and lifecycle tracking
97
- - 🧱 **Ground Truths** — Versioned, validated project facts injected into every AI context build
98
- - 🧭 **Reasoning Scaffolds** — Structured checklists surfaced automatically when task type matches
99
- - 🔬 **Distillation Queue** — Batch-extract session knowledge into reviewed, curated memory
100
- - 🔍 **Hybrid Search** — Reciprocal Rank Fusion combining FTS5 + vector candidates
101
-
102
- ---
103
-
104
- ## Installation
105
-
106
- ### npm (recommended)
107
41
  ```bash
108
- npm install -g wyrm-mcp
42
+ npm install -g wyrm-mcp # install
43
+ wyrm-setup # wire it into your AI clients, then restart them
109
44
  ```
110
45
 
111
- ### Homebrew (macOS / Linux)
112
- ```bash
113
- brew tap ghosts-lk/wyrm
114
- brew install wyrm-mcp
115
- ```
46
+ Then, from inside your client, ask it to call `wyrm_capabilities` to confirm the connection. The everyday loop is four steps the agent runs on its own once the habit sets in:
116
47
 
117
- ### Docker
118
- ```bash
119
- docker run -d -p 3000:3000 -v wyrm-data:/data ghcr.io/ghosts-lk/wyrm-mcp:latest
120
48
  ```
121
- Or with Docker Compose:
122
- ```bash
123
- curl -O https://raw.githubusercontent.com/Ghosts-Protocol-Pvt-Ltd/Wyrm/main/docker-compose.yml
124
- docker compose up -d
49
+ prime → load the project's truths, quests, and dead-ends at session start
50
+ recall → retrieve what you know before re-deriving it
51
+ check → before retrying an approach, ask if it already failed
52
+ capture → store durable facts, lessons, and tasks as you go
125
53
  ```
126
54
 
127
- ### npx (no install)
128
- ```bash
129
- npx wyrm-mcp
130
- ```
131
-
132
- ---
133
-
134
- ## Quick Start
135
-
136
- ### 1. Install
137
-
138
- ```bash
139
- npm install -g wyrm-mcp
140
- ```
141
-
142
- ### 2. Connect to Your AI
143
-
144
- Add Wyrm to your AI client's MCP configuration:
145
-
146
- <details>
147
- <summary><strong>Claude Desktop</strong></summary>
148
-
149
- Edit `~/.config/claude/claude_desktop_config.json` (Linux) or `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):
150
-
151
- ```json
152
- {
153
- "mcpServers": {
154
- "wyrm": {
155
- "command": "wyrm-mcp"
156
- }
157
- }
158
- }
159
- ```
55
+ ## Measured, not asserted
160
56
 
161
- </details>
57
+ <p align="center">
58
+ <img src="https://raw.githubusercontent.com/Ghosts-Protocol-Pvt-Ltd/wyrm-mcp/main/assets/receipt.svg" alt="Wyrm measured receipt" width="720" />
59
+ </p>
162
60
 
163
- <details>
164
- <summary><strong>GitHub Copilot (VS Code)</strong></summary>
61
+ Every number Wyrm publishes comes from a benchmark committed to the source, reproducible on your own data. The negative-learning firewall and the recall lift are the two that matter most, and both are covered below.
165
62
 
166
- Add to `.vscode/settings.json` or your user settings:
63
+ ## Why Wyrm
167
64
 
168
- ```json
169
- {
170
- "mcp": {
171
- "servers": {
172
- "wyrm": {
173
- "command": "wyrm-mcp"
174
- }
175
- }
176
- }
177
- }
178
- ```
179
-
180
- </details>
181
-
182
- <details>
183
- <summary><strong>GitHub Copilot CLI</strong></summary>
184
-
185
- Add to `~/.copilot/mcp-config.json`:
186
-
187
- ```json
188
- {
189
- "mcpServers": {
190
- "wyrm": {
191
- "command": "wyrm-mcp"
192
- }
193
- }
194
- }
195
- ```
196
-
197
- </details>
65
+ ### It remembers what failed, not just what worked
198
66
 
199
- <details>
200
- <summary><strong>Cursor</strong></summary>
67
+ Most memory tools store successes. Wyrm also records dead-ends and blocks the repeat. You record a failed approach with `wyrm_failure_record`, and a later `wyrm_failure_check` surfaces it before the agent walks back into it. Across a session that stops re-litigating solved problems; across a fleet of agents, one worker's dead-end warns the rest, once.
201
68
 
202
- Add to `~/.cursor/mcp.json`:
69
+ ### Recall that finds things by meaning, not just keywords
203
70
 
204
- ```json
205
- {
206
- "mcpServers": {
207
- "wyrm": {
208
- "command": "wyrm-mcp"
209
- }
210
- }
211
- }
212
- ```
213
-
214
- </details>
71
+ `wyrm_recall` runs keyword search (FTS5) and semantic search over a vector index, fuses them, and reranks. It is hybrid by default, no configuration required. For higher accuracy you can opt into NVIDIA NIM retrieval (below).
215
72
 
216
- <details>
217
- <summary><strong>Windsurf</strong></summary>
73
+ ### Local-first, and honest about egress
218
74
 
219
- Add to `~/.codeium/windsurf/mcp_config.json`:
220
-
221
- ```json
222
- {
223
- "mcpServers": {
224
- "wyrm": {
225
- "command": "wyrm-mcp"
226
- }
227
- }
228
- }
229
- ```
75
+ By default nothing leaves your machine. The database is a single SQLite file at `~/.wyrm/wyrm.db`. When you do opt into a hosted embedding path, Wyrm reports exactly what left and where, in a determinism receipt and on its health endpoint. The privacy claim is one you can verify from the runtime, not just the docs.
230
76
 
231
- </details>
77
+ ### Built for one agent or a fleet
232
78
 
233
- Or run **`wyrm-setup`** to auto-detect and configure every supported AI client at once (VS Code Copilot, Claude Desktop, Cursor, Windsurf, Zed, Continue, plus Claude Code hooks).
79
+ Every memory is attributed to the agent and run that produced it, so a swarm of agents can share one accountable memory bus, with failures kept private to your account by default. A live event stream keeps devices in sync.
234
80
 
235
- ### 3. Enable Semantic Search (Optional but Recommended)
81
+ ## NVIDIA NIM retrieval (optional)
236
82
 
237
- Wyrm uses hybrid search (FTS5 + semantic vectors) when [Ollama](https://ollama.com) is running locally. No configuration needed Wyrm auto-detects it.
83
+ Wyrm can use NVIDIA NIM for embeddings and reranking when accuracy is worth a hosted call. On a retrieval benchmark committed in the repo, recall@1 moved from 33% on the local baseline to 47% with NIM embeddings and 52% with NIM reranking added. It is an explicit opt-in, off by default, and the egress is disclosed on every call.
238
84
 
239
85
  ```bash
240
- # Install Ollama: https://ollama.com
241
- ollama pull nomic-embed-text
86
+ export WYRM_VECTOR_PROVIDER=nim
87
+ export WYRM_RERANK_PROVIDER=nim
88
+ export NIM_API_KEY=nvapi-...
242
89
  ```
243
90
 
244
- That's it. Once `nomic-embed-text` is available, `wyrm_search` automatically upgrades from keyword-only to hybrid semantic+keyword search using Reciprocal Rank Fusion. If Ollama isn't running, Wyrm falls back to FTS5 silently — no errors, no config changes required.
91
+ <sub>Ghost Protocol (Pvt) Ltd is a member of NVIDIA Inception.</sub>
245
92
 
246
- To use OpenAI embeddings instead:
247
- ```bash
248
- WYRM_VECTOR_PROVIDER=openai OPENAI_API_KEY=sk-... wyrm-mcp
249
- ```
93
+ ## Works with
250
94
 
251
- ### 4. Use It
95
+ Claude (Code, desktop, web) · Cursor · GitHub Copilot · Windsurf · Codex, and any MCP-capable client.
252
96
 
253
- Once connected, your AI has access to all Wyrm tools. Try:
97
+ ## Requirements
254
98
 
255
- ```
256
- "Scan ~/projects for git repositories"
257
- "Start a session for my auth refactor"
258
- "What quests are pending across all projects?"
259
- "Search my memory for anything about database migrations"
260
- ```
261
-
262
- ---
263
-
264
- ## MCP Tools Reference
265
-
266
- Wyrm exposes a frozen 32-verb typed surface (137 tools callable) via the Model Context Protocol:
267
-
268
- ### Projects
269
-
270
- | Tool | Description |
271
- |------|-------------|
272
- | `wyrm_scan_projects` | Discover git projects in a directory tree |
273
- | `wyrm_list_projects` | List all registered projects with metadata |
274
- | `wyrm_project_context` | Get full context for a project (sessions, quests, data) |
275
- | `wyrm_global_context` | Overview across all projects |
276
-
277
- ### Sessions
278
-
279
- | Tool | Description |
280
- |------|-------------|
281
- | `wyrm_session_start` | Start or continue a named session with context |
282
- | `wyrm_session_update` | Update session with completed work, decisions, and notes |
283
-
284
- ### Quests (Task Tracking)
285
-
286
- | Tool | Description |
287
- |------|-------------|
288
- | `wyrm_quest_add` | Add a task with priority, tags, and description |
289
- | `wyrm_quest_complete` | Mark a task as done with completion notes |
290
- | `wyrm_all_quests` | List pending tasks across all projects |
291
-
292
- ### Data Lake
293
-
294
- | Tool | Description |
295
- |------|-------------|
296
- | `wyrm_data_insert` | Store a data point with namespace and metadata |
297
- | `wyrm_data_batch_insert` | Bulk insert for large datasets |
298
- | `wyrm_data_query` | Query stored data by namespace, key, or content |
299
- | `wyrm_data_categories` | List all data categories for a project |
300
-
301
- ### Skills Registry
302
-
303
- | Tool | Description |
304
- |------|-------------|
305
- | `wyrm_skill_register` | Register or update a skill with metadata |
306
- | `wyrm_skill_list` | List skills with filtering options |
307
- | `wyrm_skill_get` | Get detailed skill information |
308
- | `wyrm_skill_search` | Search skills by name, description, or tags |
309
- | `wyrm_skill_activate` / `wyrm_skill_deactivate` | Toggle skill status |
310
- | `wyrm_skill_delete` | Remove a skill |
311
- | `wyrm_skill_stats` | Skill registry statistics |
312
-
313
- ### Search & Utilities
314
-
315
- | Tool | Description |
316
- |------|-------------|
317
- | `wyrm_search` | Full-text search across all projects, sessions, quests, and data |
318
- | `wyrm_set_global` | Set global context that applies across all projects |
319
- | `wyrm_sync` | Sync database with `.wyrm/` markdown files |
320
- | `wyrm_stats` | Database statistics and health |
321
- | `wyrm_usage` | Token usage stats, cache hit rates, and cost estimates |
322
- | `wyrm_maintenance` | Vacuum, archive old data, optimize indexes |
323
- | `wyrm_setup` | Auto-configure Wyrm in every supported AI client it detects |
324
-
325
- ### Auto-Orchestration
326
-
327
- | Tool | Description |
328
- |------|-------------|
329
- | `wyrm_orchestrate_task` | Classify a task and get an orchestration plan |
330
- | `wyrm_orchestration_config` | View or update orchestration settings |
331
- | `wyrm_orchestration_stats` | Orchestration effectiveness and task distribution |
332
-
333
- ### Knowledge Graph
334
-
335
- | Tool | Description |
336
- |------|-------------|
337
- | `wyrm_entity_add` | Add a named entity to the project's knowledge graph |
338
- | `wyrm_entity_link` | Create a typed, directional relationship between two entities |
339
- | `wyrm_entity_search` | Find entities by name or alias |
340
- | `wyrm_entity_graph` | Get the neighborhood graph around an entity (recursive traversal) |
341
- | `wyrm_entity_path` | Find shortest path between two entities |
342
- | `wyrm_entity_merge` | Merge two duplicate entities, consolidating aliases and relationships |
343
-
344
- ### Memory Artifacts
345
-
346
- | Tool | Description |
347
- |------|-------------|
348
- | `wyrm_remember` | Store a distilled memory artifact — pattern, lesson, anti-pattern, heuristic, or reasoning trace |
349
- | `wyrm_recall` | Retrieve relevant memory artifacts for a task — hybrid FTS5 + local-vector retrieval (convex score blend) when embeddings are available, lexical+tag fallback offline |
350
- | `wyrm_feedback` | Record whether a recalled artifact was helpful (updates confidence via Bayesian adjustment) |
351
- | `wyrm_context_build` | Assemble a task-specific context brief: ground truths + best scaffold + relevant memory artifacts |
352
-
353
- ### Intelligence Amplification
354
-
355
- | Tool | Description |
356
- |------|-------------|
357
- | `wyrm_truth_set` | Store a validated ground truth (architecture, constraints, decisions) — versioned, history preserved |
358
- | `wyrm_truth_get` | Retrieve all current ground truths for a project, optionally filtered by category |
359
- | `wyrm_scaffold_save` | Save a reasoning scaffold — structured step-by-step checklist for a problem type |
360
- | `wyrm_scaffold_get` | Find the best matching reasoning scaffold for a task description |
361
- | `wyrm_distill` | Queue candidate memory artifacts from a session for human review |
362
- | `wyrm_review` | Approve (activate) or reject (permanently delete) any queued review candidate — from auto-capture, harvest, capture conflict-routing, imports, or distillation |
363
-
364
- ---
365
-
366
- ## Configuration
367
-
368
- ### Environment Variables
369
-
370
- | Variable | Default | Description |
371
- |----------|---------|-------------|
372
- | `WYRM_DB_PATH` | `~/.wyrm/wyrm.db` | SQLite database location |
373
- | `WYRM_ENCRYPTION_KEY` | *(none)* | AES-256-GCM encryption key for sensitive data |
374
- | `WYRM_LOG_LEVEL` | `info` | Logging level (`debug`, `info`, `warn`, `error`) |
375
- | `WYRM_HTTP_PORT` | `3333` | HTTP API server port |
376
-
377
- ### Encryption
378
-
379
- To enable encryption for sensitive context data:
380
-
381
- ```bash
382
- # Generate a key
383
- openssl rand -hex 32
384
-
385
- # Set it before starting Wyrm
386
- export WYRM_ENCRYPTION_KEY="your-64-char-hex-key"
387
- ```
388
-
389
- All encryption happens locally. Keys never leave your machine.
390
-
391
- ### Per-Project Files
392
-
393
- Each tracked project gets a `.wyrm/` directory:
394
-
395
- ```
396
- project/
397
- └── .wyrm/
398
- ├── hoard.md # Project knowledge — architecture, decisions, context
399
- ├── chronicles.md # 📜 Session history — what was discussed and built
400
- ├── quests.md # ⚔️ Task queue — pending and completed work
401
- └── protocol.md # 🔥 AI guidelines — project-specific instructions
402
- ```
403
-
404
- These sync bi-directionally with the SQLite database via `wyrm_sync`.
405
-
406
- ---
407
-
408
- ## Architecture
409
-
410
- ```
411
- ┌─────────────────────────────────────────────────────────┐
412
- │ AI Assistants │
413
- │ (Copilot · Claude · Cursor · Windsurf · Zed) │
414
- └────────────────────────┬────────────────────────────────┘
415
- │ MCP (stdio)
416
-
417
- ┌─────────────────────────────────────────────────────────┐
418
- │ Wyrm MCP Server │
419
- │ │
420
- │ ┌──────────────────────────────────────────────────┐ │
421
- │ │ Intelligence Layer │ │
422
- │ │ Ground Truths · Reasoning Scaffolds · Distill │ │
423
- │ └──────────────────────────────────────────────────┘ │
424
- │ ┌──────────────────────────────────────────────────┐ │
425
- │ │ Memory Artifacts · Knowledge Graph │ │
426
- │ └──────────────────────────────────────────────────┘ │
427
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
428
- │ │ Projects │ │ Sessions │ │ Quests │ │ Skills │ │
429
- │ └──────────┘ └──────────┘ └──────────┘ └────────┘ │
430
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
431
- │ │ DataLake │ │ Hybrid │ │ Crypto │ │ Sync │ │
432
- │ │ │ │ Search │ │(AES-256) │ │ (.md) │ │
433
- │ └──────────┘ └──────────┘ └──────────┘ └────────┘ │
434
- │ │
435
- │ SQLite Database (WAL mode) │
436
- │ Optional HTTP API (:3333) │
437
- └─────────────────────────────────────────────────────────┘
438
- ```
99
+ Node.js 22 or newer. Optional: a local Ollama with `nomic-embed-text` for semantic recall without any hosted call.
439
100
 
440
- **Stack:** TypeScript · Node.js · better-sqlite3 · FTS5 · MCP SDK
101
+ ## Community and feedback
441
102
 
442
- ---
443
-
444
- ## Development
445
-
446
- ```bash
447
- # Clone and install
448
- git clone https://github.com/Ghosts-Protocol-Pvt-Ltd/Wyrm.git
449
- cd Wyrm/packages/mcp-server
450
- npm install
451
-
452
- # Build
453
- npm run build
454
-
455
- # Run tests
456
- npm test
457
-
458
- # Watch mode
459
- npm run dev
460
- ```
461
-
462
- ### Project Structure
463
-
464
- ```
465
- Wyrm/
466
- ├── packages/
467
- │ ├── mcp-server/ # Core MCP server
468
- │ │ ├── src/
469
- │ │ │ ├── index.ts # MCP tool definitions & server
470
- │ │ │ ├── database.ts # SQLite schema & queries
471
- │ │ │ ├── crypto.ts # AES-256-GCM encryption
472
- │ │ │ ├── security.ts # Input sanitization
473
- │ │ │ └── ...
474
- │ │ ├── tests/ # Jest test suite
475
- │ │ └── package.json
476
- │ └── vscode-extension/ # VS Code extension (optional)
477
- ├── config/ # Configuration templates
478
- ├── templates/ # Project template files
479
- ├── docs/ # Documentation
480
- ├── examples/ # Usage examples
481
- └── scripts/ # Utility scripts
482
- ```
483
-
484
- ---
103
+ Wyrm sends no telemetry, so the way we learn what is working is you telling us.
485
104
 
486
- ## Contributing
105
+ - **`wyrm feedback`** from your terminal opens a prefilled report. Add `--bug`, `--idea`, or `--question`.
106
+ - **[Discussions](https://github.com/Ghosts-Protocol-Pvt-Ltd/wyrm-mcp/discussions)** for questions, ideas, and how it is going.
107
+ - **[Issues](https://github.com/Ghosts-Protocol-Pvt-Ltd/wyrm-mcp/issues)** for bugs and concrete requests.
108
+ - Email [ryan@ghosts.lk](mailto:ryan@ghosts.lk).
487
109
 
488
- Wyrm is a **proprietary repository** free to use, but not open to external contributions. We do **not** accept forks or external pull requests.
489
-
490
- Issues and bug reports are welcome: please open an issue or email ryan@ghosts.lk.
491
-
492
- ---
493
-
494
- ## Security
495
-
496
- - **Local-only** — All your data stays on your machine. The only default outbound call is a once-a-day npm version check (no data sent beyond the request itself; opt out with `WYRM_NO_VERSION_CHECK=1`).
497
- - **No telemetry** — Zero data collection, zero phone-home.
498
- - **Optional encryption** — AES-256-GCM for sensitive context data.
499
- - **Audited** — Security audits documented in [SECURITY_AUDIT.md](SECURITY_AUDIT.md) and [SECURITY_AUDIT_V2.md](SECURITY_AUDIT_V2.md).
500
-
501
- Found a vulnerability? Please open an issue or email ryan@ghosts.lk.
502
-
503
- ---
110
+ If Wyrm earned a place in your workflow, a star helps other people find it.
504
111
 
505
112
  ## License
506
113
 
507
- **Open standard + protected implementation:**
508
-
509
- - **The Wyrm Memory Protocol** ([`PROTOCOL.md`](../../PROTOCOL.md)) is an **open spec, freely implementable** by anyone (CC-BY-4.0) — build a WMP-compatible memory without touching Wyrm's code.
510
- - **This implementation** (`wyrm-mcp`) is **[Proprietary Freeware](LICENSE)** — free to use, all rights reserved. Copyright © 2024-2026 [Ghost Protocol (Pvt) Ltd](https://ghosts.lk).
511
-
512
- For a **commercial license** (embedding Wyrm in a closed product, or running it as a managed service), contact [ryan@ghosts.lk](mailto:ryan@ghosts.lk).
513
-
514
- ---
515
-
516
- <div align="center">
517
-
518
- *The dragon remembers.*
114
+ Wyrm is proprietary software, free to use under the [Wyrm license](LICENSE) and Terms of Service. This repository is the public home for the docs, the changelog, and the community. The source is not published here. For a commercial license (embedding Wyrm in a closed product, or running it as a managed service), contact [ryan@ghosts.lk](mailto:ryan@ghosts.lk).
519
115
 
520
- Built by [Ghost Protocol](https://ghosts.lk)
116
+ <br/>
521
117
 
522
- </div>
118
+ <p align="center">
119
+ <sub>Built by <a href="https://ghosts.lk">Ghost Protocol</a> · Colombo, Sri Lanka</sub><br/>
120
+ <sub>NVIDIA, the NVIDIA logo, and NVIDIA Inception are trademarks and/or registered trademarks of NVIDIA Corporation.</sub>
121
+ </p>