va-claw 0.1.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 (316) hide show
  1. package/CONTRIBUTING.md +36 -0
  2. package/LICENSE +21 -0
  3. package/README.md +337 -0
  4. package/bin/va-claw +3 -0
  5. package/bin/va-claw.mjs +3 -0
  6. package/docs/README.md +6 -0
  7. package/index.html +728 -0
  8. package/package.json +43 -0
  9. package/packages/channels/discord/dist/.tsbuildinfo +1 -0
  10. package/packages/channels/discord/dist/cli-runner.d.ts +18 -0
  11. package/packages/channels/discord/dist/cli-runner.d.ts.map +1 -0
  12. package/packages/channels/discord/dist/cli-runner.js +58 -0
  13. package/packages/channels/discord/dist/cli-runner.js.map +1 -0
  14. package/packages/channels/discord/dist/cli-runner.test.d.ts +2 -0
  15. package/packages/channels/discord/dist/cli-runner.test.d.ts.map +1 -0
  16. package/packages/channels/discord/dist/cli-runner.test.js +173 -0
  17. package/packages/channels/discord/dist/cli-runner.test.js.map +1 -0
  18. package/packages/channels/discord/dist/discord-client.d.ts +3 -0
  19. package/packages/channels/discord/dist/discord-client.d.ts.map +1 -0
  20. package/packages/channels/discord/dist/discord-client.js +49 -0
  21. package/packages/channels/discord/dist/discord-client.js.map +1 -0
  22. package/packages/channels/discord/dist/format.d.ts +6 -0
  23. package/packages/channels/discord/dist/format.d.ts.map +1 -0
  24. package/packages/channels/discord/dist/format.js +19 -0
  25. package/packages/channels/discord/dist/format.js.map +1 -0
  26. package/packages/channels/discord/dist/format.test.d.ts +2 -0
  27. package/packages/channels/discord/dist/format.test.d.ts.map +1 -0
  28. package/packages/channels/discord/dist/format.test.js +63 -0
  29. package/packages/channels/discord/dist/format.test.js.map +1 -0
  30. package/packages/channels/discord/dist/index.d.ts +3 -0
  31. package/packages/channels/discord/dist/index.d.ts.map +1 -0
  32. package/packages/channels/discord/dist/index.js +2 -0
  33. package/packages/channels/discord/dist/index.js.map +1 -0
  34. package/packages/channels/discord/dist/prompt.d.ts +4 -0
  35. package/packages/channels/discord/dist/prompt.d.ts.map +1 -0
  36. package/packages/channels/discord/dist/prompt.js +28 -0
  37. package/packages/channels/discord/dist/prompt.js.map +1 -0
  38. package/packages/channels/discord/dist/prompt.test.d.ts +2 -0
  39. package/packages/channels/discord/dist/prompt.test.d.ts.map +1 -0
  40. package/packages/channels/discord/dist/prompt.test.js +130 -0
  41. package/packages/channels/discord/dist/prompt.test.js.map +1 -0
  42. package/packages/channels/discord/dist/runtime.d.ts +11 -0
  43. package/packages/channels/discord/dist/runtime.d.ts.map +1 -0
  44. package/packages/channels/discord/dist/runtime.js +66 -0
  45. package/packages/channels/discord/dist/runtime.js.map +1 -0
  46. package/packages/channels/discord/dist/runtime.test.d.ts +2 -0
  47. package/packages/channels/discord/dist/runtime.test.d.ts.map +1 -0
  48. package/packages/channels/discord/dist/runtime.test.js +107 -0
  49. package/packages/channels/discord/dist/runtime.test.js.map +1 -0
  50. package/packages/channels/discord/dist/types.d.ts +30 -0
  51. package/packages/channels/discord/dist/types.d.ts.map +1 -0
  52. package/packages/channels/discord/dist/types.js +2 -0
  53. package/packages/channels/discord/dist/types.js.map +1 -0
  54. package/packages/channels/discord/package.json +21 -0
  55. package/packages/channels/dist/.tsbuildinfo +1 -0
  56. package/packages/channels/dist/index.d.ts +14 -0
  57. package/packages/channels/dist/index.d.ts.map +1 -0
  58. package/packages/channels/dist/index.js +25 -0
  59. package/packages/channels/dist/index.js.map +1 -0
  60. package/packages/channels/package.json +23 -0
  61. package/packages/channels/slack/dist/.tsbuildinfo +1 -0
  62. package/packages/channels/slack/dist/cli.d.ts +7 -0
  63. package/packages/channels/slack/dist/cli.d.ts.map +1 -0
  64. package/packages/channels/slack/dist/cli.js +53 -0
  65. package/packages/channels/slack/dist/cli.js.map +1 -0
  66. package/packages/channels/slack/dist/cli.test.d.ts +2 -0
  67. package/packages/channels/slack/dist/cli.test.d.ts.map +1 -0
  68. package/packages/channels/slack/dist/cli.test.js +43 -0
  69. package/packages/channels/slack/dist/cli.test.js.map +1 -0
  70. package/packages/channels/slack/dist/index.d.ts +7 -0
  71. package/packages/channels/slack/dist/index.d.ts.map +1 -0
  72. package/packages/channels/slack/dist/index.js +28 -0
  73. package/packages/channels/slack/dist/index.js.map +1 -0
  74. package/packages/channels/slack/dist/message.d.ts +15 -0
  75. package/packages/channels/slack/dist/message.d.ts.map +1 -0
  76. package/packages/channels/slack/dist/message.js +38 -0
  77. package/packages/channels/slack/dist/message.js.map +1 -0
  78. package/packages/channels/slack/dist/slack.test.d.ts +2 -0
  79. package/packages/channels/slack/dist/slack.test.d.ts.map +1 -0
  80. package/packages/channels/slack/dist/slack.test.js +23 -0
  81. package/packages/channels/slack/dist/slack.test.js.map +1 -0
  82. package/packages/channels/slack/dist/types.d.ts +22 -0
  83. package/packages/channels/slack/dist/types.d.ts.map +1 -0
  84. package/packages/channels/slack/dist/types.js +2 -0
  85. package/packages/channels/slack/dist/types.js.map +1 -0
  86. package/packages/channels/slack/package.json +21 -0
  87. package/packages/channels/telegram/dist/.tsbuildinfo +1 -0
  88. package/packages/channels/telegram/dist/cli.d.ts +13 -0
  89. package/packages/channels/telegram/dist/cli.d.ts.map +1 -0
  90. package/packages/channels/telegram/dist/cli.js +53 -0
  91. package/packages/channels/telegram/dist/cli.js.map +1 -0
  92. package/packages/channels/telegram/dist/cli.test.d.ts +2 -0
  93. package/packages/channels/telegram/dist/cli.test.d.ts.map +1 -0
  94. package/packages/channels/telegram/dist/cli.test.js +167 -0
  95. package/packages/channels/telegram/dist/cli.test.js.map +1 -0
  96. package/packages/channels/telegram/dist/index.d.ts +7 -0
  97. package/packages/channels/telegram/dist/index.d.ts.map +1 -0
  98. package/packages/channels/telegram/dist/index.js +21 -0
  99. package/packages/channels/telegram/dist/index.js.map +1 -0
  100. package/packages/channels/telegram/dist/message.d.ts +6 -0
  101. package/packages/channels/telegram/dist/message.d.ts.map +1 -0
  102. package/packages/channels/telegram/dist/message.js +33 -0
  103. package/packages/channels/telegram/dist/message.js.map +1 -0
  104. package/packages/channels/telegram/dist/telegram.test.d.ts +2 -0
  105. package/packages/channels/telegram/dist/telegram.test.d.ts.map +1 -0
  106. package/packages/channels/telegram/dist/telegram.test.js +25 -0
  107. package/packages/channels/telegram/dist/telegram.test.js.map +1 -0
  108. package/packages/channels/telegram/dist/types.d.ts +20 -0
  109. package/packages/channels/telegram/dist/types.d.ts.map +1 -0
  110. package/packages/channels/telegram/dist/types.js +2 -0
  111. package/packages/channels/telegram/dist/types.js.map +1 -0
  112. package/packages/channels/telegram/package.json +21 -0
  113. package/packages/cli/dist/.tsbuildinfo +1 -0
  114. package/packages/cli/dist/bin/va-claw.d.mts +3 -0
  115. package/packages/cli/dist/bin/va-claw.d.mts.map +1 -0
  116. package/packages/cli/dist/bin/va-claw.mjs +4 -0
  117. package/packages/cli/dist/bin/va-claw.mjs.map +1 -0
  118. package/packages/cli/dist/channel-handlers.d.ts +8 -0
  119. package/packages/cli/dist/channel-handlers.d.ts.map +1 -0
  120. package/packages/cli/dist/channel-handlers.js +80 -0
  121. package/packages/cli/dist/channel-handlers.js.map +1 -0
  122. package/packages/cli/dist/deps-exports.d.ts +3 -0
  123. package/packages/cli/dist/deps-exports.d.ts.map +1 -0
  124. package/packages/cli/dist/deps-exports.js +3 -0
  125. package/packages/cli/dist/deps-exports.js.map +1 -0
  126. package/packages/cli/dist/deps.d.ts +3 -0
  127. package/packages/cli/dist/deps.d.ts.map +1 -0
  128. package/packages/cli/dist/deps.js +81 -0
  129. package/packages/cli/dist/deps.js.map +1 -0
  130. package/packages/cli/dist/handlers.d.ts +33 -0
  131. package/packages/cli/dist/handlers.d.ts.map +1 -0
  132. package/packages/cli/dist/handlers.js +207 -0
  133. package/packages/cli/dist/handlers.js.map +1 -0
  134. package/packages/cli/dist/index.d.ts +10 -0
  135. package/packages/cli/dist/index.d.ts.map +1 -0
  136. package/packages/cli/dist/index.js +9 -0
  137. package/packages/cli/dist/index.js.map +1 -0
  138. package/packages/cli/dist/install-files.d.ts +11 -0
  139. package/packages/cli/dist/install-files.d.ts.map +1 -0
  140. package/packages/cli/dist/install-files.js +72 -0
  141. package/packages/cli/dist/install-files.js.map +1 -0
  142. package/packages/cli/dist/memory-status.d.ts +3 -0
  143. package/packages/cli/dist/memory-status.d.ts.map +1 -0
  144. package/packages/cli/dist/memory-status.js +45 -0
  145. package/packages/cli/dist/memory-status.js.map +1 -0
  146. package/packages/cli/dist/output.d.ts +8 -0
  147. package/packages/cli/dist/output.d.ts.map +1 -0
  148. package/packages/cli/dist/output.js +45 -0
  149. package/packages/cli/dist/output.js.map +1 -0
  150. package/packages/cli/dist/platform.d.ts +6 -0
  151. package/packages/cli/dist/platform.d.ts.map +1 -0
  152. package/packages/cli/dist/platform.js +31 -0
  153. package/packages/cli/dist/platform.js.map +1 -0
  154. package/packages/cli/dist/program.d.ts +5 -0
  155. package/packages/cli/dist/program.d.ts.map +1 -0
  156. package/packages/cli/dist/program.js +116 -0
  157. package/packages/cli/dist/program.js.map +1 -0
  158. package/packages/cli/dist/test-helpers.d.ts +7 -0
  159. package/packages/cli/dist/test-helpers.d.ts.map +1 -0
  160. package/packages/cli/dist/test-helpers.js +91 -0
  161. package/packages/cli/dist/test-helpers.js.map +1 -0
  162. package/packages/cli/dist/types.d.ts +82 -0
  163. package/packages/cli/dist/types.d.ts.map +1 -0
  164. package/packages/cli/dist/types.js +2 -0
  165. package/packages/cli/dist/types.js.map +1 -0
  166. package/packages/cli/dist/wait.d.ts +2 -0
  167. package/packages/cli/dist/wait.d.ts.map +1 -0
  168. package/packages/cli/dist/wait.js +25 -0
  169. package/packages/cli/dist/wait.js.map +1 -0
  170. package/packages/cli/package.json +29 -0
  171. package/packages/daemon/dist/.tsbuildinfo +1 -0
  172. package/packages/daemon/dist/cli-adapter.d.ts +14 -0
  173. package/packages/daemon/dist/cli-adapter.d.ts.map +1 -0
  174. package/packages/daemon/dist/cli-adapter.js +30 -0
  175. package/packages/daemon/dist/cli-adapter.js.map +1 -0
  176. package/packages/daemon/dist/index.d.ts +5 -0
  177. package/packages/daemon/dist/index.d.ts.map +1 -0
  178. package/packages/daemon/dist/index.js +4 -0
  179. package/packages/daemon/dist/index.js.map +1 -0
  180. package/packages/daemon/dist/runner.d.ts +2 -0
  181. package/packages/daemon/dist/runner.d.ts.map +1 -0
  182. package/packages/daemon/dist/runner.js +18 -0
  183. package/packages/daemon/dist/runner.js.map +1 -0
  184. package/packages/daemon/dist/runtime.d.ts +24 -0
  185. package/packages/daemon/dist/runtime.d.ts.map +1 -0
  186. package/packages/daemon/dist/runtime.js +83 -0
  187. package/packages/daemon/dist/runtime.js.map +1 -0
  188. package/packages/daemon/dist/service-files.d.ts +13 -0
  189. package/packages/daemon/dist/service-files.d.ts.map +1 -0
  190. package/packages/daemon/dist/service-files.js +84 -0
  191. package/packages/daemon/dist/service-files.js.map +1 -0
  192. package/packages/daemon/dist/service.d.ts +4 -0
  193. package/packages/daemon/dist/service.d.ts.map +1 -0
  194. package/packages/daemon/dist/service.js +31 -0
  195. package/packages/daemon/dist/service.js.map +1 -0
  196. package/packages/daemon/dist/types.d.ts +11 -0
  197. package/packages/daemon/dist/types.d.ts.map +1 -0
  198. package/packages/daemon/dist/types.js +2 -0
  199. package/packages/daemon/dist/types.js.map +1 -0
  200. package/packages/daemon/dist/wake-cycle.d.ts +17 -0
  201. package/packages/daemon/dist/wake-cycle.d.ts.map +1 -0
  202. package/packages/daemon/dist/wake-cycle.js +58 -0
  203. package/packages/daemon/dist/wake-cycle.js.map +1 -0
  204. package/packages/daemon/package.json +22 -0
  205. package/packages/identity/dist/.tsbuildinfo +1 -0
  206. package/packages/identity/dist/defaults.d.ts +5 -0
  207. package/packages/identity/dist/defaults.d.ts.map +1 -0
  208. package/packages/identity/dist/defaults.js +70 -0
  209. package/packages/identity/dist/defaults.js.map +1 -0
  210. package/packages/identity/dist/index.d.ts +6 -0
  211. package/packages/identity/dist/index.d.ts.map +1 -0
  212. package/packages/identity/dist/index.js +5 -0
  213. package/packages/identity/dist/index.js.map +1 -0
  214. package/packages/identity/dist/path.d.ts +3 -0
  215. package/packages/identity/dist/path.d.ts.map +1 -0
  216. package/packages/identity/dist/path.js +16 -0
  217. package/packages/identity/dist/path.js.map +1 -0
  218. package/packages/identity/dist/render.d.ts +4 -0
  219. package/packages/identity/dist/render.d.ts.map +1 -0
  220. package/packages/identity/dist/render.js +34 -0
  221. package/packages/identity/dist/render.js.map +1 -0
  222. package/packages/identity/dist/storage.d.ts +4 -0
  223. package/packages/identity/dist/storage.d.ts.map +1 -0
  224. package/packages/identity/dist/storage.js +27 -0
  225. package/packages/identity/dist/storage.js.map +1 -0
  226. package/packages/identity/dist/types.d.ts +29 -0
  227. package/packages/identity/dist/types.d.ts.map +1 -0
  228. package/packages/identity/dist/types.js +2 -0
  229. package/packages/identity/dist/types.js.map +1 -0
  230. package/packages/identity/dist/wizard.d.ts +3 -0
  231. package/packages/identity/dist/wizard.d.ts.map +1 -0
  232. package/packages/identity/dist/wizard.js +37 -0
  233. package/packages/identity/dist/wizard.js.map +1 -0
  234. package/packages/identity/package.json +21 -0
  235. package/packages/identity/test/identity.test.mjs +71 -0
  236. package/packages/identity/test/storage.test.mjs +91 -0
  237. package/packages/identity/vendor/clack-prompts/index.d.ts +10 -0
  238. package/packages/identity/vendor/clack-prompts/index.js +55 -0
  239. package/packages/identity/vendor/clack-prompts/package.json +11 -0
  240. package/packages/memory/dist/.tsbuildinfo +1 -0
  241. package/packages/memory/dist/default-store.d.ts +21 -0
  242. package/packages/memory/dist/default-store.d.ts.map +1 -0
  243. package/packages/memory/dist/default-store.js +52 -0
  244. package/packages/memory/dist/default-store.js.map +1 -0
  245. package/packages/memory/dist/embedding.d.ts +6 -0
  246. package/packages/memory/dist/embedding.d.ts.map +1 -0
  247. package/packages/memory/dist/embedding.js +56 -0
  248. package/packages/memory/dist/embedding.js.map +1 -0
  249. package/packages/memory/dist/forgetting-curve.d.ts +3 -0
  250. package/packages/memory/dist/forgetting-curve.d.ts.map +1 -0
  251. package/packages/memory/dist/forgetting-curve.js +21 -0
  252. package/packages/memory/dist/forgetting-curve.js.map +1 -0
  253. package/packages/memory/dist/index.d.ts +5 -0
  254. package/packages/memory/dist/index.d.ts.map +1 -0
  255. package/packages/memory/dist/index.js +4 -0
  256. package/packages/memory/dist/index.js.map +1 -0
  257. package/packages/memory/dist/memory-store.d.ts +39 -0
  258. package/packages/memory/dist/memory-store.d.ts.map +1 -0
  259. package/packages/memory/dist/memory-store.js +417 -0
  260. package/packages/memory/dist/memory-store.js.map +1 -0
  261. package/packages/memory/dist/sqlite.d.ts +19 -0
  262. package/packages/memory/dist/sqlite.d.ts.map +1 -0
  263. package/packages/memory/dist/sqlite.js +195 -0
  264. package/packages/memory/dist/sqlite.js.map +1 -0
  265. package/packages/memory/dist/types.d.ts +43 -0
  266. package/packages/memory/dist/types.d.ts.map +1 -0
  267. package/packages/memory/dist/types.js +2 -0
  268. package/packages/memory/dist/types.js.map +1 -0
  269. package/packages/memory/package.json +18 -0
  270. package/packages/skills/dist/.tsbuildinfo +1 -0
  271. package/packages/skills/dist/frontmatter.d.ts +3 -0
  272. package/packages/skills/dist/frontmatter.d.ts.map +1 -0
  273. package/packages/skills/dist/frontmatter.js +85 -0
  274. package/packages/skills/dist/frontmatter.js.map +1 -0
  275. package/packages/skills/dist/index.d.ts +6 -0
  276. package/packages/skills/dist/index.d.ts.map +1 -0
  277. package/packages/skills/dist/index.js +5 -0
  278. package/packages/skills/dist/index.js.map +1 -0
  279. package/packages/skills/dist/paths.d.ts +13 -0
  280. package/packages/skills/dist/paths.d.ts.map +1 -0
  281. package/packages/skills/dist/paths.js +43 -0
  282. package/packages/skills/dist/paths.js.map +1 -0
  283. package/packages/skills/dist/search.d.ts +3 -0
  284. package/packages/skills/dist/search.d.ts.map +1 -0
  285. package/packages/skills/dist/search.js +20 -0
  286. package/packages/skills/dist/search.js.map +1 -0
  287. package/packages/skills/dist/store.d.ts +8 -0
  288. package/packages/skills/dist/store.d.ts.map +1 -0
  289. package/packages/skills/dist/store.js +75 -0
  290. package/packages/skills/dist/store.js.map +1 -0
  291. package/packages/skills/dist/types.d.ts +9 -0
  292. package/packages/skills/dist/types.d.ts.map +1 -0
  293. package/packages/skills/dist/types.js +2 -0
  294. package/packages/skills/dist/types.js.map +1 -0
  295. package/packages/skills/package.json +18 -0
  296. package/skills/install-va-claw.md +180 -0
  297. package/vendor/commander/index.d.ts +16 -0
  298. package/vendor/commander/index.js +110 -0
  299. package/vendor/commander/package.json +11 -0
  300. package/vendor/croner/LICENSE +22 -0
  301. package/vendor/croner/README.md +339 -0
  302. package/vendor/croner/dist/croner.cjs +1 -0
  303. package/vendor/croner/dist/croner.d.cts +693 -0
  304. package/vendor/croner/dist/croner.d.ts +693 -0
  305. package/vendor/croner/dist/croner.js +1 -0
  306. package/vendor/croner/dist/croner.umd.js +1 -0
  307. package/vendor/croner/package.json +73 -0
  308. package/vendor/discord.js/index.d.ts +22 -0
  309. package/vendor/discord.js/index.js +37 -0
  310. package/vendor/discord.js/package.json +7 -0
  311. package/vendor/grammy/index.d.ts +43 -0
  312. package/vendor/grammy/index.js +89 -0
  313. package/vendor/grammy/package.json +7 -0
  314. package/vendor/slack-bolt/index.d.ts +29 -0
  315. package/vendor/slack-bolt/index.js +72 -0
  316. package/vendor/slack-bolt/package.json +7 -0
package/index.html ADDED
@@ -0,0 +1,728 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>VA-CLAW // MEMORY. IDENTITY. LOOP.</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
+ <link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
10
+ <style>
11
+ :root {
12
+ --void: #0a0a0f;
13
+ --green: #00ff41;
14
+ --violet: #a855f7;
15
+ --cyan: #00ffff;
16
+ --magenta: #ff00ff;
17
+ --yellow: #ffff00;
18
+ --amber: #ff6b35;
19
+ --grid-line: rgba(0, 255, 255, 0.05);
20
+ --scanline: rgba(18, 16, 16, 0.1);
21
+ }
22
+
23
+ * {
24
+ box-sizing: border-box;
25
+ margin: 0;
26
+ padding: 0;
27
+ image-rendering: pixelated;
28
+ }
29
+
30
+ body {
31
+ background-color: var(--void);
32
+ color: var(--green);
33
+ font-family: 'Press Start 2P', cursive;
34
+ line-height: 1.6;
35
+ overflow-x: hidden;
36
+ font-size: 12px;
37
+ }
38
+
39
+ /* PIXEL GRID BACKGROUND */
40
+ body::before {
41
+ content: "";
42
+ position: fixed;
43
+ top: 0;
44
+ left: 0;
45
+ width: 100%;
46
+ height: 100%;
47
+ background-image:
48
+ linear-gradient(var(--grid-line) 1px, transparent 1px),
49
+ linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
50
+ background-size: 40px 40px;
51
+ z-index: -1;
52
+ pointer-events: none;
53
+ }
54
+
55
+ /* SCANLINES */
56
+ body::after {
57
+ content: "";
58
+ position: fixed;
59
+ top: 0;
60
+ left: 0;
61
+ width: 100%;
62
+ height: 100%;
63
+ background: linear-gradient(
64
+ rgba(18, 16, 16, 0) 50%,
65
+ rgba(0, 0, 0, 0.25) 50%
66
+ ), linear-gradient(
67
+ 90deg,
68
+ rgba(255, 0, 0, 0.06),
69
+ rgba(0, 255, 0, 0.02),
70
+ rgba(0, 0, 255, 0.06)
71
+ );
72
+ background-size: 100% 3px, 3px 100%;
73
+ z-index: 9999;
74
+ pointer-events: none;
75
+ opacity: 0.15;
76
+ }
77
+
78
+ /* UTILS */
79
+ .neon-text {
80
+ text-shadow: 0 0 10px var(--green), 0 0 20px var(--green);
81
+ }
82
+ .neon-violet {
83
+ color: var(--violet);
84
+ text-shadow: 0 0 10px var(--violet), 0 0 20px var(--violet);
85
+ }
86
+ .neon-cyan {
87
+ color: var(--cyan);
88
+ text-shadow: 0 0 10px var(--cyan), 0 0 20px var(--cyan);
89
+ }
90
+ .neon-yellow {
91
+ color: var(--yellow);
92
+ text-shadow: 0 0 10px var(--yellow), 0 0 20px var(--yellow);
93
+ }
94
+ .neon-magenta {
95
+ color: var(--magenta);
96
+ text-shadow: 0 0 10px var(--magenta), 0 0 20px var(--magenta);
97
+ }
98
+
99
+ .pixel-border {
100
+ box-shadow:
101
+ 4px 0 0 var(--green),
102
+ -4px 0 0 var(--green),
103
+ 0 4px 0 var(--green),
104
+ 0 -4px 0 var(--green);
105
+ margin: 4px;
106
+ }
107
+
108
+ .pixel-border-violet {
109
+ box-shadow:
110
+ 4px 0 0 var(--violet),
111
+ -4px 0 0 var(--violet),
112
+ 0 4px 0 var(--violet),
113
+ 0 -4px 0 var(--violet);
114
+ margin: 4px;
115
+ }
116
+
117
+ .pixel-border-cyan {
118
+ box-shadow:
119
+ 4px 0 0 var(--cyan),
120
+ -4px 0 0 var(--cyan),
121
+ 0 4px 0 var(--cyan),
122
+ 0 -4px 0 var(--cyan);
123
+ margin: 4px;
124
+ }
125
+
126
+ .btn {
127
+ display: inline-block;
128
+ padding: 16px 24px;
129
+ text-decoration: none;
130
+ cursor: pointer;
131
+ border: none;
132
+ background: var(--void);
133
+ color: var(--green);
134
+ transition: transform 0.1s steps(2);
135
+ font-family: 'Press Start 2P', cursive;
136
+ }
137
+
138
+ .btn:hover {
139
+ transform: translate(4px, 4px);
140
+ box-shadow:
141
+ 4px 0 0 var(--yellow),
142
+ -4px 0 0 var(--yellow),
143
+ 0 4px 0 var(--yellow),
144
+ 0 -4px 0 var(--yellow);
145
+ color: var(--yellow);
146
+ }
147
+
148
+ .btn-yellow {
149
+ color: var(--yellow);
150
+ box-shadow:
151
+ 4px 0 0 var(--yellow),
152
+ -4px 0 0 var(--yellow),
153
+ 0 4px 0 var(--yellow),
154
+ 0 -4px 0 var(--yellow);
155
+ }
156
+
157
+ /* LAYOUT */
158
+ .container {
159
+ max-width: 1000px;
160
+ margin: 0 auto;
161
+ padding: 40px 20px;
162
+ }
163
+
164
+ section {
165
+ margin-bottom: 120px;
166
+ opacity: 0;
167
+ transform: translateY(20px);
168
+ transition: opacity 0.3s steps(3), transform 0.3s steps(3);
169
+ }
170
+
171
+ section.visible {
172
+ opacity: 1;
173
+ transform: translateY(0);
174
+ }
175
+
176
+ /* HERO */
177
+ .hero {
178
+ text-align: center;
179
+ padding-top: 80px;
180
+ }
181
+
182
+ .ascii-logo {
183
+ display: inline-block;
184
+ white-space: pre;
185
+ font-family: monospace;
186
+ font-size: 10px;
187
+ line-height: 1.2;
188
+ margin-bottom: 40px;
189
+ color: var(--cyan);
190
+ text-shadow: 0 0 15px var(--cyan);
191
+ }
192
+
193
+ .tagline {
194
+ font-size: 18px;
195
+ margin-bottom: 10px;
196
+ }
197
+
198
+ .sub-tagline {
199
+ font-size: 12px;
200
+ color: var(--violet);
201
+ margin-bottom: 40px;
202
+ }
203
+
204
+ .big-sell {
205
+ background: var(--yellow);
206
+ color: var(--void);
207
+ padding: 10px;
208
+ display: inline-block;
209
+ margin-bottom: 40px;
210
+ animation: blink 1s steps(2) infinite;
211
+ }
212
+
213
+ @keyframes blink {
214
+ 50% { opacity: 0; }
215
+ }
216
+
217
+ .terminal-box {
218
+ background: #000;
219
+ text-align: left;
220
+ padding: 20px;
221
+ max-width: 600px;
222
+ margin: 0 auto 40px;
223
+ font-family: monospace;
224
+ font-size: 14px;
225
+ position: relative;
226
+ overflow: hidden;
227
+ }
228
+
229
+ .terminal-content {
230
+ white-space: pre-wrap;
231
+ color: #fff;
232
+ }
233
+
234
+ .cursor {
235
+ display: inline-block;
236
+ width: 10px;
237
+ height: 18px;
238
+ background: var(--green);
239
+ vertical-align: middle;
240
+ animation: cursor-blink 0.8s steps(2) infinite;
241
+ }
242
+
243
+ @keyframes cursor-blink {
244
+ 50% { opacity: 0; }
245
+ }
246
+
247
+ /* PITCH */
248
+ .pitch-grid {
249
+ display: grid;
250
+ grid-template-columns: repeat(3, 1fr);
251
+ gap: 20px;
252
+ text-align: center;
253
+ }
254
+
255
+ .pitch-col {
256
+ padding: 20px;
257
+ }
258
+
259
+ .pitch-title {
260
+ color: var(--magenta);
261
+ margin-bottom: 20px;
262
+ font-size: 14px;
263
+ }
264
+
265
+ /* CAPABILITIES */
266
+ .cap-grid {
267
+ display: grid;
268
+ grid-template-columns: repeat(3, 1fr);
269
+ gap: 40px;
270
+ }
271
+
272
+ .cap-card {
273
+ padding: 20px;
274
+ background: rgba(10, 10, 15, 0.8);
275
+ transition: transform 0.1s steps(2);
276
+ }
277
+
278
+ .cap-card:hover {
279
+ transform: translate(8px, 8px);
280
+ box-shadow:
281
+ 4px 0 0 var(--cyan),
282
+ -4px 0 0 var(--cyan),
283
+ 0 4px 0 var(--cyan),
284
+ 0 -4px 0 var(--cyan);
285
+ }
286
+
287
+ .cap-icon {
288
+ font-size: 20px;
289
+ margin-bottom: 20px;
290
+ display: block;
291
+ }
292
+
293
+ .cap-name {
294
+ color: var(--cyan);
295
+ margin-bottom: 15px;
296
+ font-size: 14px;
297
+ }
298
+
299
+ .cap-desc {
300
+ font-size: 10px;
301
+ line-height: 1.8;
302
+ color: #ccc;
303
+ }
304
+
305
+ /* INSTALL */
306
+ .install-box {
307
+ text-align: center;
308
+ }
309
+
310
+ .box-frame {
311
+ display: inline-block;
312
+ padding: 40px;
313
+ background: var(--void);
314
+ color: var(--yellow);
315
+ border: 4px solid var(--yellow);
316
+ white-space: pre;
317
+ font-family: monospace;
318
+ font-size: 16px;
319
+ line-height: 1.4;
320
+ }
321
+
322
+ /* CLI REFERENCE */
323
+ .cli-grid {
324
+ display: grid;
325
+ grid-template-columns: 1fr 1fr;
326
+ gap: 40px;
327
+ background: rgba(0, 0, 0, 0.4);
328
+ padding: 30px;
329
+ }
330
+
331
+ .cli-col h3 {
332
+ color: var(--violet);
333
+ margin-bottom: 20px;
334
+ border-bottom: 2px solid var(--violet);
335
+ padding-bottom: 10px;
336
+ }
337
+
338
+ .cli-cmd {
339
+ margin-bottom: 15px;
340
+ font-family: monospace;
341
+ font-size: 12px;
342
+ }
343
+
344
+ .cmd-main { color: var(--cyan); }
345
+ .cmd-sub { color: var(--green); }
346
+ .cmd-comment { color: #666; font-style: italic; display: block; margin-bottom: 4px; }
347
+
348
+ /* CHANNELS */
349
+ .channels-grid {
350
+ display: grid;
351
+ grid-template-columns: repeat(3, 1fr);
352
+ gap: 20px;
353
+ }
354
+
355
+ .channel-card {
356
+ padding: 20px;
357
+ text-align: center;
358
+ }
359
+
360
+ .discord { border: 4px solid #5865F2; color: #5865F2; }
361
+ .telegram { border: 4px solid #0088cc; color: #0088cc; }
362
+ .slack { border: 4px solid #4A154B; color: #4A154B; }
363
+
364
+ /* FOOTER */
365
+ footer {
366
+ text-align: center;
367
+ padding: 80px 20px;
368
+ border-top: 4px solid var(--grid-line);
369
+ }
370
+
371
+ .footer-links {
372
+ margin: 30px 0;
373
+ }
374
+
375
+ .footer-links a {
376
+ color: var(--green);
377
+ text-decoration: none;
378
+ margin: 0 15px;
379
+ }
380
+
381
+ .footer-links a:hover {
382
+ color: var(--yellow);
383
+ }
384
+
385
+ .quote {
386
+ color: var(--magenta);
387
+ font-size: 10px;
388
+ margin-top: 40px;
389
+ }
390
+
391
+ /* RESPONSIVE */
392
+ @media (max-width: 768px) {
393
+ .pitch-grid, .cap-grid, .cli-grid, .channels-grid {
394
+ grid-template-columns: 1fr;
395
+ }
396
+ .ascii-logo { font-size: 6px; }
397
+ .box-frame { font-size: 12px; padding: 20px; width: 100%; overflow-x: auto; }
398
+ .tagline { font-size: 14px; }
399
+ }
400
+
401
+ /* INFINITE GRID EFFECT */
402
+ .grid-container {
403
+ position: fixed;
404
+ bottom: 0;
405
+ left: 0;
406
+ width: 100%;
407
+ height: 40vh;
408
+ perspective: 500px;
409
+ z-index: -2;
410
+ overflow: hidden;
411
+ pointer-events: none;
412
+ }
413
+
414
+ .moving-grid {
415
+ position: absolute;
416
+ top: 0;
417
+ left: -50%;
418
+ width: 200%;
419
+ height: 200%;
420
+ background-image:
421
+ linear-gradient(var(--grid-line) 2px, transparent 2px),
422
+ linear-gradient(90deg, var(--grid-line) 2px, transparent 2px);
423
+ background-size: 50px 50px;
424
+ transform: rotateX(60deg) translateY(0);
425
+ animation: grid-move 5s linear infinite;
426
+ }
427
+
428
+ @keyframes grid-move {
429
+ 0% { transform: rotateX(60deg) translateY(0); }
430
+ 100% { transform: rotateX(60deg) translateY(50px); }
431
+ }
432
+
433
+ .dither-bg {
434
+ background-image: radial-gradient(var(--grid-line) 1px, transparent 1px);
435
+ background-size: 4px 4px;
436
+ }
437
+ </style>
438
+ </head>
439
+ <body>
440
+
441
+ <div class="grid-container">
442
+ <div class="moving-grid"></div>
443
+ </div>
444
+
445
+ <div class="container">
446
+
447
+ <!-- HERO SECTION -->
448
+ <section class="hero visible">
449
+ <div class="ascii-logo">
450
+ __ _____ _____ _ _____ _ _
451
+ \ \ / / _ \ / ____| | / ____| | | |
452
+ \ V / |_| || | | | | (___ | | | |
453
+ > <| __/ | | | | \___ \| |/\| |
454
+ / . \ | | | |____| |____ __) | /\ |
455
+ /_/ \_\|_| \_____|______|_____/\/ \/
456
+ </div>
457
+
458
+ <h1 class="tagline neon-text">> YOUR AI CLI COMPANION</h1>
459
+ <p class="sub-tagline">MEMORY. IDENTITY. LOOP.</p>
460
+
461
+ <div class="big-sell">
462
+ ★ WORKS WITH YOUR CLAUDE CODE & CODEX SUBSCRIPTION<br>
463
+ ZERO EXTRA COST. ZERO NEW ACCOUNTS.
464
+ </div>
465
+
466
+ <div class="terminal-box pixel-border">
467
+ <div class="terminal-content" id="demo-terminal"></div><span class="cursor"></span>
468
+ </div>
469
+
470
+ <div class="hero-btns">
471
+ <a href="https://github.com/Vadaski/va-claw" class="btn pixel-border btn-yellow">[ ★ STAR ON GITHUB ]</a>
472
+ <a href="#install" class="btn pixel-border">[ ↓ GET STARTED ]</a>
473
+ </div>
474
+ </section>
475
+
476
+ <!-- THE PITCH -->
477
+ <section class="pitch">
478
+ <div class="pitch-grid">
479
+ <div class="pitch-col">
480
+ <h2 class="pitch-title">THE PROBLEM</h2>
481
+ <p>EVERY SESSION<br>STARTS BLANK.</p>
482
+ <p style="margin-top:20px; color:var(--amber)">YOUR AI FORGETS<br>YOU EXIST.</p>
483
+ </div>
484
+ <div class="pitch-col">
485
+ <h2 class="pitch-title">THE SOLUTION</h2>
486
+ <p>VA-CLAW GIVES IT<br>MEMORY.</p>
487
+ <p style="margin-top:20px; color:var(--cyan)">ONE IDENTITY.<br>EVERYWHERE.</p>
488
+ </div>
489
+ <div class="pitch-col">
490
+ <h2 class="pitch-title">THE RESULT</h2>
491
+ <p>AN AI THAT<br>KNOWS YOU.</p>
492
+ <p style="margin-top:20px; color:var(--green)">WORKS WHILE<br>YOU SLEEP.</p>
493
+ </div>
494
+ </div>
495
+ </section>
496
+
497
+ <!-- CAPABILITIES -->
498
+ <section class="capabilities">
499
+ <div class="cap-grid">
500
+ <div class="cap-card pixel-border-violet">
501
+ <span class="cap-icon">🧠</span>
502
+ <h3 class="cap-name">MEMORY</h3>
503
+ <p class="cap-desc">SQLite local DB. Search, list, clear. Persists across sessions.</p>
504
+ </div>
505
+ <div class="cap-card pixel-border-violet">
506
+ <span class="cap-icon">👤</span>
507
+ <h3 class="cap-name">IDENTITY</h3>
508
+ <p class="cap-desc">Define who your AI is. Injected into CLAUDE.MD automatically.</p>
509
+ </div>
510
+ <div class="cap-card pixel-border-violet">
511
+ <span class="cap-icon">⏰</span>
512
+ <h3 class="cap-name">LOOP</h3>
513
+ <p class="cap-desc">Cron daemon wakes your AI on schedule. Captures output.</p>
514
+ </div>
515
+ <div class="cap-card pixel-border-violet">
516
+ <span class="cap-icon">💬</span>
517
+ <h3 class="cap-name">CHANNELS</h3>
518
+ <p class="cap-desc">Discord, Telegram, Slack. Chat with your AI in your favorite apps.</p>
519
+ </div>
520
+ <div class="cap-card pixel-border-violet">
521
+ <span class="cap-icon">🎯</span>
522
+ <h3 class="cap-name">SKILLS</h3>
523
+ <p class="cap-desc">Markdown-driven. No compile step. Drop a .md file, it's a skill.</p>
524
+ </div>
525
+ <div class="cap-card pixel-border-violet">
526
+ <span class="cap-icon">💰</span>
527
+ <h3 class="cap-name">YOUR SUB</h3>
528
+ <p class="cap-desc">Claude Code sub? Codex plan? Already works. $0 extra.</p>
529
+ </div>
530
+ </div>
531
+ </section>
532
+
533
+ <!-- INSTALL -->
534
+ <section id="install" class="install-box">
535
+ <div class="box-frame">
536
+ ╔══════════════════════════════════════════════════════════╗
537
+ ║ INSTALL VA-CLAW IN 30 SECONDS ║
538
+ ╠══════════════════════════════════════════════════════════╣
539
+ ║ ║
540
+ ║ OPTION 1 — DROP THE SKILL (let your agent do it) ║
541
+ ║ $ /install https://raw.githubusercontent.com/ ║
542
+ ║ Vadaski/va-claw/main/skills/install-va-claw.md ║
543
+ ║ ║
544
+ ║ OPTION 2 — MANUAL ║
545
+ ║ $ npm install -g va-claw ║
546
+ ║ $ va-claw install ║
547
+ ║ $ va-claw start ║
548
+ ║ ║
549
+ ║ RUNTIME: NODE >=22 ║
550
+ ╚══════════════════════════════════════════════════════════╝
551
+ </div>
552
+ </section>
553
+
554
+ <!-- CLI REFERENCE -->
555
+ <section class="cli-reference dither-bg">
556
+ <h2 class="neon-magenta" style="text-align:center; margin-bottom:40px;">CLI REFERENCE</h2>
557
+ <div class="cli-grid pixel-border-cyan">
558
+ <div class="cli-col">
559
+ <h3># CORE</h3>
560
+ <div class="cli-cmd">
561
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">install</span>
562
+ </div>
563
+ <div class="cli-cmd">
564
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">start</span>
565
+ </div>
566
+ <div class="cli-cmd">
567
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">stop</span>
568
+ </div>
569
+ <div class="cli-cmd">
570
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">status</span>
571
+ </div>
572
+
573
+ <h3 style="margin-top:40px;"># MEMORY</h3>
574
+ <div class="cli-cmd">
575
+ <span class="cmd-comment"># store named memory with tags</span>
576
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory memorize &lt;key&gt; &lt;essence&gt;</span>
577
+ </div>
578
+ <div class="cli-cmd">
579
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory get &lt;key&gt;</span>
580
+ </div>
581
+ <div class="cli-cmd">
582
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory update &lt;key&gt;</span>
583
+ </div>
584
+ <div class="cli-cmd">
585
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory forget &lt;key&gt;</span>
586
+ </div>
587
+ <div class="cli-cmd">
588
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory recall &lt;query&gt;</span>
589
+ </div>
590
+ <div class="cli-cmd">
591
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory list</span>
592
+ </div>
593
+ <div class="cli-cmd">
594
+ <span class="cmd-comment"># ebbinghaus consolidation</span>
595
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory consolidate</span>
596
+ </div>
597
+ <div class="cli-cmd">
598
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">memory reflect</span>
599
+ </div>
600
+ </div>
601
+ <div class="cli-col">
602
+ <h3># CHANNELS</h3>
603
+ <div class="cli-cmd">
604
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">channel discord setup</span>
605
+ </div>
606
+ <div class="cli-cmd">
607
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">channel telegram setup</span>
608
+ </div>
609
+ <div class="cli-cmd">
610
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">channel slack setup</span>
611
+ </div>
612
+
613
+ <h3 style="margin-top:40px;"># SKILLS</h3>
614
+ <div class="cli-cmd">
615
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">skill list</span>
616
+ </div>
617
+ <div class="cli-cmd">
618
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">skill add &lt;path&gt;</span>
619
+ </div>
620
+ <div class="cli-cmd">
621
+ <span class="cmd-main">va-claw</span> <span class="cmd-sub">skill show &lt;name&gt;</span>
622
+ </div>
623
+ </div>
624
+ </div>
625
+ </section>
626
+
627
+ <!-- CHANNELS SHOWCASE -->
628
+ <section class="channels">
629
+ <div class="channels-grid">
630
+ <div class="channel-card discord">
631
+ <h3 style="margin-bottom:15px">DISCORD</h3>
632
+ <p style="font-size:10px">va-claw channel discord setup</p>
633
+ </div>
634
+ <div class="channel-card telegram">
635
+ <h3 style="margin-bottom:15px">TELEGRAM</h3>
636
+ <p style="font-size:10px">va-claw channel telegram setup</p>
637
+ </div>
638
+ <div class="channel-card slack">
639
+ <h3 style="margin-bottom:15px">SLACK</h3>
640
+ <p style="font-size:10px">va-claw channel slack setup</p>
641
+ </div>
642
+ </div>
643
+ </section>
644
+
645
+ <!-- FOOTER -->
646
+ <footer>
647
+ <p class="neon-text">VA-CLAW // OPEN SOURCE // MIT LICENSE</p>
648
+ <p style="margin-top:10px; font-size:10px">MADE FOR THE CLAUDE CODE COMMUNITY</p>
649
+
650
+ <div class="footer-links">
651
+ <a href="https://github.com/Vadaski/va-claw">[ GITHUB ]</a>
652
+ <a href="https://www.npmjs.com/package/va-claw">[ npm ]</a>
653
+ <a href="https://github.com/Vadaski/va-claw/issues">[ ISSUES ]</a>
654
+ </div>
655
+
656
+ <p class="quote">"YOUR AI SHOULD REMEMBER YOU."</p>
657
+ </footer>
658
+
659
+ </div>
660
+
661
+ <script>
662
+ // TYPEWRITER EFFECT
663
+ const terminalContent = [
664
+ "$ npm install -g va-claw",
665
+ "█ installing va-claw@0.1.0...",
666
+ "✓ installed",
667
+ "",
668
+ "$ va-claw install --for claude-code",
669
+ "> who are you? "
670
+ ];
671
+
672
+ const terminalElement = document.getElementById('demo-terminal');
673
+ let lineIndex = 0;
674
+ let charIndex = 0;
675
+
676
+ function type() {
677
+ if (lineIndex < terminalContent.length) {
678
+ let currentLine = terminalContent[lineIndex];
679
+ if (charIndex < currentLine.length) {
680
+ terminalElement.innerHTML += currentLine[charIndex];
681
+ charIndex++;
682
+ setTimeout(type, 50);
683
+ } else {
684
+ terminalElement.innerHTML += "\n";
685
+ lineIndex++;
686
+ charIndex = 0;
687
+ setTimeout(type, 500);
688
+ }
689
+ } else {
690
+ setTimeout(() => {
691
+ terminalElement.innerHTML = "";
692
+ lineIndex = 0;
693
+ charIndex = 0;
694
+ type();
695
+ }, 5000);
696
+ }
697
+ }
698
+
699
+ // SCROLL REVEAL
700
+ const observerOptions = {
701
+ threshold: 0.1
702
+ };
703
+
704
+ const observer = new IntersectionObserver((entries) => {
705
+ entries.forEach(entry => {
706
+ if (entry.isIntersecting) {
707
+ entry.target.classList.add('visible');
708
+ }
709
+ });
710
+ }, observerOptions);
711
+
712
+ document.querySelectorAll('section').forEach(section => {
713
+ observer.observe(section);
714
+ });
715
+
716
+ // INIT
717
+ window.onload = () => {
718
+ type();
719
+
720
+ // Subtle flicker effect
721
+ setInterval(() => {
722
+ const hero = document.querySelector('.hero h1');
723
+ hero.style.opacity = Math.random() > 0.98 ? '0.7' : '1';
724
+ }, 100);
725
+ };
726
+ </script>
727
+ </body>
728
+ </html>