spora 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 (62) hide show
  1. package/README.md +87 -0
  2. package/bin/spora.js +2 -0
  3. package/dist/account-creator-PZW5JLHS.js +498 -0
  4. package/dist/account-creator-PZW5JLHS.js.map +1 -0
  5. package/dist/chunk-3JEDGXEM.js +32 -0
  6. package/dist/chunk-3JEDGXEM.js.map +1 -0
  7. package/dist/chunk-53YLFYJF.js +59 -0
  8. package/dist/chunk-53YLFYJF.js.map +1 -0
  9. package/dist/chunk-7CR4ID6P.js +614 -0
  10. package/dist/chunk-7CR4ID6P.js.map +1 -0
  11. package/dist/chunk-AHXZIGQE.js +156 -0
  12. package/dist/chunk-AHXZIGQE.js.map +1 -0
  13. package/dist/chunk-DJJWHOL3.js +162 -0
  14. package/dist/chunk-DJJWHOL3.js.map +1 -0
  15. package/dist/chunk-EBO4F5NU.js +105 -0
  16. package/dist/chunk-EBO4F5NU.js.map +1 -0
  17. package/dist/chunk-ERTBXYOP.js +81 -0
  18. package/dist/chunk-ERTBXYOP.js.map +1 -0
  19. package/dist/chunk-KELPENM3.js +47 -0
  20. package/dist/chunk-KELPENM3.js.map +1 -0
  21. package/dist/chunk-NFDZ47AG.js +57 -0
  22. package/dist/chunk-NFDZ47AG.js.map +1 -0
  23. package/dist/chunk-O23NWMYU.js +124 -0
  24. package/dist/chunk-O23NWMYU.js.map +1 -0
  25. package/dist/chunk-YEKHNTQO.js +80 -0
  26. package/dist/chunk-YEKHNTQO.js.map +1 -0
  27. package/dist/chunk-ZJZKH7N7.js +56 -0
  28. package/dist/chunk-ZJZKH7N7.js.map +1 -0
  29. package/dist/cli.js +675 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/client-3AQCA4YE.js +401 -0
  32. package/dist/client-3AQCA4YE.js.map +1 -0
  33. package/dist/client-RBGZWS3Q.js +373 -0
  34. package/dist/client-RBGZWS3Q.js.map +1 -0
  35. package/dist/colony-J5KQIV6M.js +229 -0
  36. package/dist/colony-J5KQIV6M.js.map +1 -0
  37. package/dist/config-NZAFARS6.js +14 -0
  38. package/dist/config-NZAFARS6.js.map +1 -0
  39. package/dist/crypto-FHSQ72NU.js +14 -0
  40. package/dist/crypto-FHSQ72NU.js.map +1 -0
  41. package/dist/heartbeat-J4JLYH2B.js +358 -0
  42. package/dist/heartbeat-J4JLYH2B.js.map +1 -0
  43. package/dist/init-BG4Z4XQU.js +205 -0
  44. package/dist/init-BG4Z4XQU.js.map +1 -0
  45. package/dist/llm-RDNC5Y3G.js +16 -0
  46. package/dist/llm-RDNC5Y3G.js.map +1 -0
  47. package/dist/mcp-server.js +773 -0
  48. package/dist/mcp-server.js.map +1 -0
  49. package/dist/memory-7FBE26K3.js +26 -0
  50. package/dist/memory-7FBE26K3.js.map +1 -0
  51. package/dist/memory-O3AJIKBX.js +24 -0
  52. package/dist/memory-O3AJIKBX.js.map +1 -0
  53. package/dist/paths-5GFUUHCZ.js +13 -0
  54. package/dist/paths-5GFUUHCZ.js.map +1 -0
  55. package/dist/prompt-builder-WNMZ2QCN.js +17 -0
  56. package/dist/prompt-builder-WNMZ2QCN.js.map +1 -0
  57. package/dist/queue-ELK5ZX7J.js +14 -0
  58. package/dist/queue-ELK5ZX7J.js.map +1 -0
  59. package/dist/x-client-J4GE5A7P.js +12 -0
  60. package/dist/x-client-J4GE5A7P.js.map +1 -0
  61. package/package.json +57 -0
  62. package/templates/SKILL.md +335 -0
@@ -0,0 +1,32 @@
1
+ import {
2
+ logger
3
+ } from "./chunk-KELPENM3.js";
4
+ import {
5
+ loadConfig
6
+ } from "./chunk-YEKHNTQO.js";
7
+
8
+ // src/x-client/index.ts
9
+ var clientInstance = null;
10
+ async function getXClient() {
11
+ if (clientInstance) return clientInstance;
12
+ const config = loadConfig();
13
+ if (config.xMethod === "api") {
14
+ const { XApiClient } = await import("./client-RBGZWS3Q.js");
15
+ clientInstance = new XApiClient();
16
+ logger.info("X client initialized: API mode");
17
+ } else {
18
+ const { XBrowserClient } = await import("./client-3AQCA4YE.js");
19
+ clientInstance = new XBrowserClient();
20
+ logger.info("X client initialized: Browser mode");
21
+ }
22
+ return clientInstance;
23
+ }
24
+ function resetXClient() {
25
+ clientInstance = null;
26
+ }
27
+
28
+ export {
29
+ getXClient,
30
+ resetXClient
31
+ };
32
+ //# sourceMappingURL=chunk-3JEDGXEM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/x-client/index.ts"],"sourcesContent":["import { loadConfig } from \"../utils/config.js\";\nimport { logger } from \"../utils/logger.js\";\nimport type { XClientInterface } from \"./types.js\";\n\nlet clientInstance: XClientInterface | null = null;\n\nexport async function getXClient(): Promise<XClientInterface> {\n if (clientInstance) return clientInstance;\n\n const config = loadConfig();\n\n if (config.xMethod === \"api\") {\n const { XApiClient } = await import(\"./api/client.js\");\n clientInstance = new XApiClient();\n logger.info(\"X client initialized: API mode\");\n } else {\n const { XBrowserClient } = await import(\"./browser/client.js\");\n clientInstance = new XBrowserClient();\n logger.info(\"X client initialized: Browser mode\");\n }\n\n return clientInstance;\n}\n\nexport function resetXClient(): void {\n clientInstance = null;\n}\n\nexport type { XClientInterface } from \"./types.js\";\nexport type { Tweet, UserProfile, PostResult, TimelineOptions, SearchOptions } from \"./types.js\";\n"],"mappings":";;;;;;;;AAIA,IAAI,iBAA0C;AAE9C,eAAsB,aAAwC;AAC5D,MAAI,eAAgB,QAAO;AAE3B,QAAM,SAAS,WAAW;AAE1B,MAAI,OAAO,YAAY,OAAO;AAC5B,UAAM,EAAE,WAAW,IAAI,MAAM,OAAO,sBAAiB;AACrD,qBAAiB,IAAI,WAAW;AAChC,WAAO,KAAK,gCAAgC;AAAA,EAC9C,OAAO;AACL,UAAM,EAAE,eAAe,IAAI,MAAM,OAAO,sBAAqB;AAC7D,qBAAiB,IAAI,eAAe;AACpC,WAAO,KAAK,oCAAoC;AAAA,EAClD;AAEA,SAAO;AACT;AAEO,SAAS,eAAqB;AACnC,mBAAiB;AACnB;","names":[]}
@@ -0,0 +1,59 @@
1
+ // src/utils/paths.ts
2
+ import { homedir } from "os";
3
+ import { join } from "path";
4
+ import { mkdirSync, existsSync } from "fs";
5
+ var SPORA_DIR = join(homedir(), ".spora");
6
+ var paths = {
7
+ root: SPORA_DIR,
8
+ config: join(SPORA_DIR, "config.json"),
9
+ credentials: join(SPORA_DIR, "credentials.json"),
10
+ spore: join(SPORA_DIR, "spore.json"),
11
+ identity: join(SPORA_DIR, "identity.json"),
12
+ colonyToken: join(SPORA_DIR, "colony-token.json"),
13
+ browser: join(SPORA_DIR, "browser"),
14
+ browserAuth: join(SPORA_DIR, "browser", "auth-state.json"),
15
+ memory: join(SPORA_DIR, "memory"),
16
+ interactions: join(SPORA_DIR, "memory", "interactions"),
17
+ learnings: join(SPORA_DIR, "memory", "learnings.json"),
18
+ relationships: join(SPORA_DIR, "memory", "relationships.json"),
19
+ compacted: join(SPORA_DIR, "memory", "compacted"),
20
+ queue: join(SPORA_DIR, "queue"),
21
+ pendingPosts: join(SPORA_DIR, "queue", "pending-posts.json"),
22
+ logs: join(SPORA_DIR, "logs"),
23
+ logFile: join(SPORA_DIR, "logs", "spora.log"),
24
+ dataDir: SPORA_DIR,
25
+ llmKey: join(SPORA_DIR, "llm-key"),
26
+ runtimePid: join(SPORA_DIR, "runtime.pid"),
27
+ stopSignal: join(SPORA_DIR, "stop"),
28
+ connectionToken: join(SPORA_DIR, "connection-token")
29
+ };
30
+ function ensureDirectories() {
31
+ const dirs = [
32
+ paths.root,
33
+ paths.browser,
34
+ paths.memory,
35
+ paths.interactions,
36
+ paths.compacted,
37
+ paths.queue,
38
+ paths.logs
39
+ ];
40
+ for (const dir of dirs) {
41
+ if (!existsSync(dir)) {
42
+ mkdirSync(dir, { recursive: true });
43
+ }
44
+ }
45
+ }
46
+ function sporaExists() {
47
+ return existsSync(paths.config) && existsSync(paths.identity);
48
+ }
49
+ function hasXCredentials() {
50
+ return existsSync(paths.credentials);
51
+ }
52
+
53
+ export {
54
+ paths,
55
+ ensureDirectories,
56
+ sporaExists,
57
+ hasXCredentials
58
+ };
59
+ //# sourceMappingURL=chunk-53YLFYJF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/paths.ts"],"sourcesContent":["import { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { mkdirSync, existsSync } from \"node:fs\";\n\nconst SPORA_DIR = join(homedir(), \".spora\");\n\nexport const paths = {\n root: SPORA_DIR,\n config: join(SPORA_DIR, \"config.json\"),\n credentials: join(SPORA_DIR, \"credentials.json\"),\n spore: join(SPORA_DIR, \"spore.json\"),\n identity: join(SPORA_DIR, \"identity.json\"),\n colonyToken: join(SPORA_DIR, \"colony-token.json\"),\n browser: join(SPORA_DIR, \"browser\"),\n browserAuth: join(SPORA_DIR, \"browser\", \"auth-state.json\"),\n memory: join(SPORA_DIR, \"memory\"),\n interactions: join(SPORA_DIR, \"memory\", \"interactions\"),\n learnings: join(SPORA_DIR, \"memory\", \"learnings.json\"),\n relationships: join(SPORA_DIR, \"memory\", \"relationships.json\"),\n compacted: join(SPORA_DIR, \"memory\", \"compacted\"),\n queue: join(SPORA_DIR, \"queue\"),\n pendingPosts: join(SPORA_DIR, \"queue\", \"pending-posts.json\"),\n logs: join(SPORA_DIR, \"logs\"),\n logFile: join(SPORA_DIR, \"logs\", \"spora.log\"),\n dataDir: SPORA_DIR,\n llmKey: join(SPORA_DIR, \"llm-key\"),\n runtimePid: join(SPORA_DIR, \"runtime.pid\"),\n stopSignal: join(SPORA_DIR, \"stop\"),\n connectionToken: join(SPORA_DIR, \"connection-token\"),\n} as const;\n\nexport function ensureDirectories(): void {\n const dirs = [\n paths.root,\n paths.browser,\n paths.memory,\n paths.interactions,\n paths.compacted,\n paths.queue,\n paths.logs,\n ];\n\n for (const dir of dirs) {\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n }\n}\n\nexport function sporaExists(): boolean {\n return existsSync(paths.config) && existsSync(paths.identity);\n}\n\nexport function hasXCredentials(): boolean {\n return existsSync(paths.credentials);\n}\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,SAAS,WAAW,kBAAkB;AAEtC,IAAM,YAAY,KAAK,QAAQ,GAAG,QAAQ;AAEnC,IAAM,QAAQ;AAAA,EACnB,MAAM;AAAA,EACN,QAAQ,KAAK,WAAW,aAAa;AAAA,EACrC,aAAa,KAAK,WAAW,kBAAkB;AAAA,EAC/C,OAAO,KAAK,WAAW,YAAY;AAAA,EACnC,UAAU,KAAK,WAAW,eAAe;AAAA,EACzC,aAAa,KAAK,WAAW,mBAAmB;AAAA,EAChD,SAAS,KAAK,WAAW,SAAS;AAAA,EAClC,aAAa,KAAK,WAAW,WAAW,iBAAiB;AAAA,EACzD,QAAQ,KAAK,WAAW,QAAQ;AAAA,EAChC,cAAc,KAAK,WAAW,UAAU,cAAc;AAAA,EACtD,WAAW,KAAK,WAAW,UAAU,gBAAgB;AAAA,EACrD,eAAe,KAAK,WAAW,UAAU,oBAAoB;AAAA,EAC7D,WAAW,KAAK,WAAW,UAAU,WAAW;AAAA,EAChD,OAAO,KAAK,WAAW,OAAO;AAAA,EAC9B,cAAc,KAAK,WAAW,SAAS,oBAAoB;AAAA,EAC3D,MAAM,KAAK,WAAW,MAAM;AAAA,EAC5B,SAAS,KAAK,WAAW,QAAQ,WAAW;AAAA,EAC5C,SAAS;AAAA,EACT,QAAQ,KAAK,WAAW,SAAS;AAAA,EACjC,YAAY,KAAK,WAAW,aAAa;AAAA,EACzC,YAAY,KAAK,WAAW,MAAM;AAAA,EAClC,iBAAiB,KAAK,WAAW,kBAAkB;AACrD;AAEO,SAAS,oBAA0B;AACxC,QAAM,OAAO;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAEA,aAAW,OAAO,MAAM;AACtB,QAAI,CAAC,WAAW,GAAG,GAAG;AACpB,gBAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,IACpC;AAAA,EACF;AACF;AAEO,SAAS,cAAuB;AACrC,SAAO,WAAW,MAAM,MAAM,KAAK,WAAW,MAAM,QAAQ;AAC9D;AAEO,SAAS,kBAA2B;AACzC,SAAO,WAAW,MAAM,WAAW;AACrC;","names":[]}