@unclick/mcp-server 0.2.4 → 0.3.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 (183) hide show
  1. package/README.md +139 -139
  2. package/dist/algolia-tool.d.ts +5 -0
  3. package/dist/algolia-tool.d.ts.map +1 -0
  4. package/dist/algolia-tool.js +121 -0
  5. package/dist/algolia-tool.js.map +1 -0
  6. package/dist/assemblyai-tool.d.ts +7 -0
  7. package/dist/assemblyai-tool.d.ts.map +1 -0
  8. package/dist/assemblyai-tool.js +127 -0
  9. package/dist/assemblyai-tool.js.map +1 -0
  10. package/dist/catalog.d.ts.map +1 -1
  11. package/dist/catalog.js +261 -0
  12. package/dist/catalog.js.map +1 -1
  13. package/dist/circleci-tool.d.ts +7 -0
  14. package/dist/circleci-tool.d.ts.map +1 -0
  15. package/dist/circleci-tool.js +133 -0
  16. package/dist/circleci-tool.js.map +1 -0
  17. package/dist/cohere-tool.d.ts +7 -0
  18. package/dist/cohere-tool.d.ts.map +1 -0
  19. package/dist/cohere-tool.js +225 -0
  20. package/dist/cohere-tool.js.map +1 -0
  21. package/dist/convertkit-tool.d.ts +7 -0
  22. package/dist/convertkit-tool.d.ts.map +1 -0
  23. package/dist/convertkit-tool.js +213 -0
  24. package/dist/convertkit-tool.js.map +1 -0
  25. package/dist/datadog-tool.d.ts +7 -0
  26. package/dist/datadog-tool.d.ts.map +1 -0
  27. package/dist/datadog-tool.js +121 -0
  28. package/dist/datadog-tool.js.map +1 -0
  29. package/dist/deepl-tool.d.ts +5 -0
  30. package/dist/deepl-tool.d.ts.map +1 -0
  31. package/dist/deepl-tool.js +137 -0
  32. package/dist/deepl-tool.js.map +1 -0
  33. package/dist/flyio-tool.d.ts +6 -0
  34. package/dist/flyio-tool.d.ts.map +1 -0
  35. package/dist/flyio-tool.js +158 -0
  36. package/dist/flyio-tool.js.map +1 -0
  37. package/dist/groq-tool.d.ts +3 -0
  38. package/dist/groq-tool.d.ts.map +1 -0
  39. package/dist/groq-tool.js +109 -0
  40. package/dist/groq-tool.js.map +1 -0
  41. package/dist/gumroad-tool.d.ts +6 -0
  42. package/dist/gumroad-tool.d.ts.map +1 -0
  43. package/dist/gumroad-tool.js +90 -0
  44. package/dist/gumroad-tool.js.map +1 -0
  45. package/dist/heygen-tool.d.ts +5 -0
  46. package/dist/heygen-tool.d.ts.map +1 -0
  47. package/dist/heygen-tool.js +134 -0
  48. package/dist/heygen-tool.js.map +1 -0
  49. package/dist/higgsfield-tool.d.ts +5 -0
  50. package/dist/higgsfield-tool.d.ts.map +1 -0
  51. package/dist/higgsfield-tool.js +120 -0
  52. package/dist/higgsfield-tool.js.map +1 -0
  53. package/dist/keychain-crypto.d.ts +24 -0
  54. package/dist/keychain-crypto.d.ts.map +1 -0
  55. package/dist/keychain-crypto.js +60 -0
  56. package/dist/keychain-crypto.js.map +1 -0
  57. package/dist/keychain-secure-input.d.ts +17 -0
  58. package/dist/keychain-secure-input.d.ts.map +1 -0
  59. package/dist/keychain-secure-input.js +229 -0
  60. package/dist/keychain-secure-input.js.map +1 -0
  61. package/dist/keychain-tool.d.ts +3 -0
  62. package/dist/keychain-tool.d.ts.map +1 -0
  63. package/dist/keychain-tool.js +516 -0
  64. package/dist/keychain-tool.js.map +1 -0
  65. package/dist/kling-tool.d.ts +3 -0
  66. package/dist/kling-tool.d.ts.map +1 -0
  67. package/dist/kling-tool.js +102 -0
  68. package/dist/kling-tool.js.map +1 -0
  69. package/dist/lemonsqueezy-tool.d.ts +7 -0
  70. package/dist/lemonsqueezy-tool.d.ts.map +1 -0
  71. package/dist/lemonsqueezy-tool.js +220 -0
  72. package/dist/lemonsqueezy-tool.js.map +1 -0
  73. package/dist/linear-tool.js +73 -73
  74. package/dist/local-catalog-handlers.d.ts +3 -0
  75. package/dist/local-catalog-handlers.d.ts.map +1 -0
  76. package/dist/local-catalog-handlers.js +1254 -0
  77. package/dist/local-catalog-handlers.js.map +1 -0
  78. package/dist/mailchimp-tool.d.ts +8 -0
  79. package/dist/mailchimp-tool.d.ts.map +1 -0
  80. package/dist/mailchimp-tool.js +138 -0
  81. package/dist/mailchimp-tool.js.map +1 -0
  82. package/dist/mapbox-tool.d.ts +6 -0
  83. package/dist/mapbox-tool.d.ts.map +1 -0
  84. package/dist/mapbox-tool.js +106 -0
  85. package/dist/mapbox-tool.js.map +1 -0
  86. package/dist/memory/db.d.ts +10 -0
  87. package/dist/memory/db.d.ts.map +1 -0
  88. package/dist/memory/db.js +22 -0
  89. package/dist/memory/db.js.map +1 -0
  90. package/dist/memory/handlers.d.ts +11 -0
  91. package/dist/memory/handlers.d.ts.map +1 -0
  92. package/dist/memory/handlers.js +125 -0
  93. package/dist/memory/handlers.js.map +1 -0
  94. package/dist/memory/local.d.ts +37 -0
  95. package/dist/memory/local.d.ts.map +1 -0
  96. package/dist/memory/local.js +386 -0
  97. package/dist/memory/local.js.map +1 -0
  98. package/dist/memory/supabase.d.ts +34 -0
  99. package/dist/memory/supabase.d.ts.map +1 -0
  100. package/dist/memory/supabase.js +209 -0
  101. package/dist/memory/supabase.js.map +1 -0
  102. package/dist/memory/types.d.ts +81 -0
  103. package/dist/memory/types.d.ts.map +1 -0
  104. package/dist/memory/types.js +5 -0
  105. package/dist/memory/types.js.map +1 -0
  106. package/dist/mistral-tool.d.ts +4 -0
  107. package/dist/mistral-tool.d.ts.map +1 -0
  108. package/dist/mistral-tool.js +145 -0
  109. package/dist/mistral-tool.js.map +1 -0
  110. package/dist/mixpanel-tool.d.ts +6 -0
  111. package/dist/mixpanel-tool.d.ts.map +1 -0
  112. package/dist/mixpanel-tool.js +162 -0
  113. package/dist/mixpanel-tool.js.map +1 -0
  114. package/dist/monday-tool.js +46 -46
  115. package/dist/musicbrainz-tool.js +1 -1
  116. package/dist/musicbrainz-tool.js.map +1 -1
  117. package/dist/neon-tool.d.ts +7 -0
  118. package/dist/neon-tool.d.ts.map +1 -0
  119. package/dist/neon-tool.js +156 -0
  120. package/dist/neon-tool.js.map +1 -0
  121. package/dist/pagerduty-tool.d.ts +8 -0
  122. package/dist/pagerduty-tool.d.ts.map +1 -0
  123. package/dist/pagerduty-tool.js +185 -0
  124. package/dist/pagerduty-tool.js.map +1 -0
  125. package/dist/perplexity-tool.d.ts +2 -0
  126. package/dist/perplexity-tool.d.ts.map +1 -0
  127. package/dist/perplexity-tool.js +93 -0
  128. package/dist/perplexity-tool.js.map +1 -0
  129. package/dist/pika-tool.d.ts +4 -0
  130. package/dist/pika-tool.d.ts.map +1 -0
  131. package/dist/pika-tool.js +102 -0
  132. package/dist/pika-tool.js.map +1 -0
  133. package/dist/pinecone-tool.d.ts +6 -0
  134. package/dist/pinecone-tool.d.ts.map +1 -0
  135. package/dist/pinecone-tool.js +148 -0
  136. package/dist/pinecone-tool.js.map +1 -0
  137. package/dist/postmark-tool.d.ts +7 -0
  138. package/dist/postmark-tool.d.ts.map +1 -0
  139. package/dist/postmark-tool.js +148 -0
  140. package/dist/postmark-tool.js.map +1 -0
  141. package/dist/qc-tool.d.ts +4 -0
  142. package/dist/qc-tool.d.ts.map +1 -0
  143. package/dist/qc-tool.js +415 -0
  144. package/dist/qc-tool.js.map +1 -0
  145. package/dist/render-tool.d.ts +7 -0
  146. package/dist/render-tool.d.ts.map +1 -0
  147. package/dist/render-tool.js +158 -0
  148. package/dist/render-tool.js.map +1 -0
  149. package/dist/runway-tool.d.ts +4 -0
  150. package/dist/runway-tool.d.ts.map +1 -0
  151. package/dist/runway-tool.js +110 -0
  152. package/dist/runway-tool.js.map +1 -0
  153. package/dist/segment-tool.d.ts +6 -0
  154. package/dist/segment-tool.d.ts.map +1 -0
  155. package/dist/segment-tool.js +129 -0
  156. package/dist/segment-tool.js.map +1 -0
  157. package/dist/sendgrid-tool.d.ts +7 -0
  158. package/dist/sendgrid-tool.d.ts.map +1 -0
  159. package/dist/sendgrid-tool.js +124 -0
  160. package/dist/sendgrid-tool.js.map +1 -0
  161. package/dist/server.d.ts.map +1 -1
  162. package/dist/server.js +129 -0
  163. package/dist/server.js.map +1 -1
  164. package/dist/togetherai-tool.d.ts +5 -0
  165. package/dist/togetherai-tool.d.ts.map +1 -0
  166. package/dist/togetherai-tool.js +129 -0
  167. package/dist/togetherai-tool.js.map +1 -0
  168. package/dist/toilets-tool.js +2 -2
  169. package/dist/tool-wiring.d.ts +4608 -692
  170. package/dist/tool-wiring.d.ts.map +1 -1
  171. package/dist/tool-wiring.js +2946 -463
  172. package/dist/tool-wiring.js.map +1 -1
  173. package/dist/turso-tool.d.ts +6 -0
  174. package/dist/turso-tool.d.ts.map +1 -0
  175. package/dist/turso-tool.js +158 -0
  176. package/dist/turso-tool.js.map +1 -0
  177. package/dist/upstash-tool.d.ts +8 -0
  178. package/dist/upstash-tool.d.ts.map +1 -0
  179. package/dist/upstash-tool.js +191 -0
  180. package/dist/upstash-tool.js.map +1 -0
  181. package/package.json +66 -65
  182. package/public/icon.svg +15 -15
  183. package/server.json +37 -37
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Memory operation handlers for @unclick/mcp-server.
3
+ *
4
+ * Wraps the 17 memory operations (get_startup_context, search_memory, add_fact,
5
+ * write_session_summary, etc.) as plain async functions that take a single
6
+ * params object. Used by both direct MCP tools and the unclick_call meta-tool.
7
+ */
8
+ import { getBackend } from "./db.js";
9
+ function str(v, fallback = "") {
10
+ return typeof v === "string" ? v : fallback;
11
+ }
12
+ function num(v, fallback) {
13
+ return typeof v === "number" && Number.isFinite(v) ? v : fallback;
14
+ }
15
+ function arr(v) {
16
+ return Array.isArray(v) ? v.map(String) : [];
17
+ }
18
+ function bool(v, fallback = false) {
19
+ return typeof v === "boolean" ? v : fallback;
20
+ }
21
+ export const MEMORY_HANDLERS = {
22
+ async get_startup_context(args) {
23
+ const db = await getBackend();
24
+ return db.getStartupContext(num(args.num_sessions, 5));
25
+ },
26
+ async search_memory(args) {
27
+ const db = await getBackend();
28
+ return db.searchMemory(str(args.query), num(args.max_results, 10));
29
+ },
30
+ async search_facts(args) {
31
+ const db = await getBackend();
32
+ return db.searchFacts(str(args.query));
33
+ },
34
+ async search_library(args) {
35
+ const db = await getBackend();
36
+ return db.searchLibrary(str(args.query));
37
+ },
38
+ async get_library_doc(args) {
39
+ const db = await getBackend();
40
+ return db.getLibraryDoc(str(args.slug));
41
+ },
42
+ async list_library() {
43
+ const db = await getBackend();
44
+ return db.listLibrary();
45
+ },
46
+ async write_session_summary(args) {
47
+ const db = await getBackend();
48
+ return db.writeSessionSummary({
49
+ session_id: str(args.session_id),
50
+ summary: str(args.summary),
51
+ topics: arr(args.topics),
52
+ open_loops: arr(args.open_loops),
53
+ decisions: arr(args.decisions),
54
+ platform: str(args.platform, "claude-code"),
55
+ duration_minutes: typeof args.duration_minutes === "number" ? args.duration_minutes : undefined,
56
+ });
57
+ },
58
+ async add_fact(args) {
59
+ const db = await getBackend();
60
+ return db.addFact({
61
+ fact: str(args.fact),
62
+ category: str(args.category, "general"),
63
+ confidence: num(args.confidence, 0.9),
64
+ source_session_id: typeof args.source_session_id === "string" ? args.source_session_id : undefined,
65
+ });
66
+ },
67
+ async supersede_fact(args) {
68
+ const db = await getBackend();
69
+ const newId = await db.supersedeFact(str(args.old_fact_id), str(args.new_fact_text), typeof args.new_category === "string" ? args.new_category : undefined, typeof args.new_confidence === "number" ? args.new_confidence : undefined);
70
+ return { new_fact_id: newId };
71
+ },
72
+ async log_conversation(args) {
73
+ const db = await getBackend();
74
+ await db.logConversation({
75
+ session_id: str(args.session_id),
76
+ role: str(args.role),
77
+ content: str(args.content),
78
+ has_code: bool(args.has_code),
79
+ });
80
+ return { logged: true };
81
+ },
82
+ async get_conversation_detail(args) {
83
+ const db = await getBackend();
84
+ return db.getConversationDetail(str(args.session_id));
85
+ },
86
+ async store_code(args) {
87
+ const db = await getBackend();
88
+ return db.storeCode({
89
+ session_id: str(args.session_id),
90
+ language: str(args.language, "typescript"),
91
+ filename: typeof args.filename === "string" ? args.filename : undefined,
92
+ content: str(args.code || args.content),
93
+ description: typeof args.description === "string" ? args.description : undefined,
94
+ });
95
+ },
96
+ async get_business_context() {
97
+ const db = await getBackend();
98
+ return db.getBusinessContext();
99
+ },
100
+ async set_business_context(args) {
101
+ const db = await getBackend();
102
+ await db.setBusinessContext(str(args.category), str(args.key), args.value, typeof args.priority === "number" ? args.priority : undefined);
103
+ return { set: true, category: str(args.category), key: str(args.key) };
104
+ },
105
+ async upsert_library_doc(args) {
106
+ const db = await getBackend();
107
+ const msg = await db.upsertLibraryDoc({
108
+ slug: str(args.slug),
109
+ title: str(args.title),
110
+ category: str(args.category, "reference"),
111
+ content: str(args.content),
112
+ tags: arr(args.tags),
113
+ });
114
+ return { message: msg };
115
+ },
116
+ async manage_decay() {
117
+ const db = await getBackend();
118
+ return db.manageDecay();
119
+ },
120
+ async memory_status() {
121
+ const db = await getBackend();
122
+ return db.getMemoryStatus();
123
+ },
124
+ };
125
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/memory/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Local JSON file storage backend for UnClick Memory.
3
+ *
4
+ * Zero-config mode: no accounts, no keys, no database setup.
5
+ * Memory is stored as JSON files in ~/.unclick/memory/
6
+ *
7
+ * This is the default when no SUPABASE_URL is set.
8
+ * Upgrade to Supabase for cloud sync across machines.
9
+ */
10
+ import type { MemoryBackend, SessionSummaryInput, FactInput, ConversationInput, CodeInput, LibraryDocInput } from "./types.js";
11
+ export declare class LocalBackend implements MemoryBackend {
12
+ constructor();
13
+ getStartupContext(numSessions: number): Promise<unknown>;
14
+ searchMemory(query: string, maxResults: number): Promise<unknown>;
15
+ searchFacts(query: string): Promise<unknown>;
16
+ searchLibrary(query: string): Promise<unknown>;
17
+ getLibraryDoc(slug: string): Promise<unknown>;
18
+ listLibrary(): Promise<unknown>;
19
+ writeSessionSummary(data: SessionSummaryInput): Promise<{
20
+ id: string;
21
+ }>;
22
+ addFact(data: FactInput): Promise<{
23
+ id: string;
24
+ }>;
25
+ supersedeFact(oldId: string, newText: string, category?: string, confidence?: number): Promise<string>;
26
+ logConversation(data: ConversationInput): Promise<void>;
27
+ getConversationDetail(sessionId: string): Promise<unknown>;
28
+ storeCode(data: CodeInput): Promise<{
29
+ id: string;
30
+ }>;
31
+ getBusinessContext(): Promise<unknown[]>;
32
+ setBusinessContext(category: string, key: string, value: unknown, priority?: number): Promise<void>;
33
+ upsertLibraryDoc(data: LibraryDocInput): Promise<string>;
34
+ manageDecay(): Promise<unknown>;
35
+ getMemoryStatus(): Promise<unknown>;
36
+ }
37
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,eAAe,EAChB,MAAM,YAAY,CAAC;AAkIpB,qBAAa,YAAa,YAAW,aAAa;;IAM1C,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyCxD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB7C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAM/B,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBvE,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAsBjD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6BtG,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAavD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO1D,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBnD,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKxC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnG,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDxD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAgD/B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;CAoB1C"}
@@ -0,0 +1,386 @@
1
+ /**
2
+ * Local JSON file storage backend for UnClick Memory.
3
+ *
4
+ * Zero-config mode: no accounts, no keys, no database setup.
5
+ * Memory is stored as JSON files in ~/.unclick/memory/
6
+ *
7
+ * This is the default when no SUPABASE_URL is set.
8
+ * Upgrade to Supabase for cloud sync across machines.
9
+ */
10
+ import * as fs from "fs";
11
+ import * as path from "path";
12
+ import * as os from "os";
13
+ import * as crypto from "crypto";
14
+ const DATA_DIR = path.join(os.homedir(), ".unclick", "memory");
15
+ function ensureDir() {
16
+ fs.mkdirSync(DATA_DIR, { recursive: true });
17
+ }
18
+ function tablePath(name) {
19
+ return path.join(DATA_DIR, `${name}.json`);
20
+ }
21
+ function readTable(name) {
22
+ const file = tablePath(name);
23
+ if (!fs.existsSync(file))
24
+ return [];
25
+ try {
26
+ return JSON.parse(fs.readFileSync(file, "utf8"));
27
+ }
28
+ catch {
29
+ return [];
30
+ }
31
+ }
32
+ function writeTable(name, data) {
33
+ ensureDir();
34
+ const file = tablePath(name);
35
+ const tmp = file + ".tmp";
36
+ fs.writeFileSync(tmp, JSON.stringify(data, null, 2));
37
+ fs.renameSync(tmp, file);
38
+ }
39
+ function uuid() {
40
+ return crypto.randomUUID();
41
+ }
42
+ function now() {
43
+ return new Date().toISOString();
44
+ }
45
+ function matches(text, query) {
46
+ return text.toLowerCase().includes(query.toLowerCase());
47
+ }
48
+ // --- Backend Implementation ---
49
+ export class LocalBackend {
50
+ constructor() {
51
+ ensureDir();
52
+ console.error(`UnClick Memory: local mode (data at ${DATA_DIR})`);
53
+ }
54
+ async getStartupContext(numSessions) {
55
+ const bc = readTable("business_context")
56
+ .filter((r) => r.decay_tier === "hot" || r.decay_tier === "warm")
57
+ .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
58
+ const sessions = readTable("session_summaries")
59
+ .sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime())
60
+ .slice(0, numSessions);
61
+ const facts = readTable("extracted_facts")
62
+ .filter((f) => f.status === "active" && f.decay_tier === "hot")
63
+ .sort((a, b) => b.confidence - a.confidence || new Date(b.created_at).getTime() - new Date(a.created_at).getTime())
64
+ .slice(0, 50);
65
+ const library = readTable("knowledge_library")
66
+ .filter((r) => r.decay_tier === "hot" || r.decay_tier === "warm")
67
+ .map((r) => ({ slug: r.slug, title: r.title, category: r.category, tags: r.tags, version: r.version, updated_at: r.updated_at }))
68
+ .sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime());
69
+ // Touch access counts
70
+ const allBc = readTable("business_context");
71
+ for (const row of allBc) {
72
+ if (row.decay_tier === "hot" || row.decay_tier === "warm") {
73
+ row.access_count = (row.access_count ?? 0) + 1;
74
+ row.last_accessed = now();
75
+ }
76
+ }
77
+ writeTable("business_context", allBc);
78
+ return {
79
+ business_context: bc.map((r) => ({ category: r.category, key: r.key, value: r.value, priority: r.priority })),
80
+ knowledge_library_index: library,
81
+ recent_sessions: sessions.map((s) => ({
82
+ session_id: s.session_id, platform: s.platform, summary: s.summary,
83
+ decisions: s.decisions, open_loops: s.open_loops, topics: s.topics, created_at: s.created_at,
84
+ })),
85
+ active_facts: facts.map((f) => ({ fact: f.fact, category: f.category, confidence: f.confidence, created_at: f.created_at })),
86
+ loaded_at: now(),
87
+ };
88
+ }
89
+ async searchMemory(query, maxResults) {
90
+ return readTable("conversation_log")
91
+ .filter((r) => matches(r.content, query))
92
+ .sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime())
93
+ .slice(0, maxResults)
94
+ .map((r) => ({ id: r.id, session_id: r.session_id, role: r.role, content: r.content, created_at: r.created_at }));
95
+ }
96
+ async searchFacts(query) {
97
+ return readTable("extracted_facts")
98
+ .filter((f) => f.status === "active" && matches(f.fact, query))
99
+ .sort((a, b) => b.confidence - a.confidence)
100
+ .slice(0, 20)
101
+ .map((f) => ({ id: f.id, fact: f.fact, category: f.category, confidence: f.confidence, status: f.status, created_at: f.created_at }));
102
+ }
103
+ async searchLibrary(query) {
104
+ return readTable("knowledge_library")
105
+ .filter((r) => matches(r.title, query) || matches(r.content, query) || (r.tags ?? []).some((t) => matches(t, query)))
106
+ .sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime())
107
+ .slice(0, 10)
108
+ .map((r) => ({ id: r.id, title: r.title, slug: r.slug, category: r.category, tags: r.tags, content: r.content, version: r.version, updated_at: r.updated_at }));
109
+ }
110
+ async getLibraryDoc(slug) {
111
+ const docs = readTable("knowledge_library");
112
+ const doc = docs.find((d) => d.slug === slug);
113
+ if (!doc)
114
+ return null;
115
+ // Touch access
116
+ doc.access_count = (doc.access_count ?? 0) + 1;
117
+ doc.last_accessed = now();
118
+ writeTable("knowledge_library", docs);
119
+ const history = readTable("knowledge_library_history")
120
+ .filter((h) => h.library_id === doc.id)
121
+ .map((h) => ({ version: h.version, changed_at: h.changed_at }))
122
+ .sort((a, b) => b.version - a.version);
123
+ return { ...doc, history };
124
+ }
125
+ async listLibrary() {
126
+ return readTable("knowledge_library")
127
+ .sort((a, b) => a.category.localeCompare(b.category) || a.title.localeCompare(b.title))
128
+ .map((r) => ({ slug: r.slug, title: r.title, category: r.category, tags: r.tags, version: r.version, updated_at: r.updated_at }));
129
+ }
130
+ async writeSessionSummary(data) {
131
+ const id = uuid();
132
+ const rows = readTable("session_summaries");
133
+ rows.push({
134
+ id,
135
+ session_id: data.session_id,
136
+ platform: data.platform,
137
+ summary: data.summary,
138
+ decisions: data.decisions,
139
+ open_loops: data.open_loops,
140
+ topics: data.topics,
141
+ duration_minutes: data.duration_minutes,
142
+ created_at: now(),
143
+ });
144
+ writeTable("session_summaries", rows);
145
+ return { id };
146
+ }
147
+ async addFact(data) {
148
+ const id = uuid();
149
+ const rows = readTable("extracted_facts");
150
+ rows.push({
151
+ id,
152
+ fact: data.fact,
153
+ category: data.category,
154
+ confidence: data.confidence,
155
+ source_session_id: data.source_session_id,
156
+ source_type: "manual",
157
+ status: "active",
158
+ superseded_by: undefined,
159
+ access_count: 0,
160
+ last_accessed: now(),
161
+ decay_tier: "hot",
162
+ created_at: now(),
163
+ updated_at: now(),
164
+ });
165
+ writeTable("extracted_facts", rows);
166
+ return { id };
167
+ }
168
+ async supersedeFact(oldId, newText, category, confidence) {
169
+ const rows = readTable("extracted_facts");
170
+ const old = rows.find((f) => f.id === oldId);
171
+ if (!old)
172
+ throw new Error(`Fact ${oldId} not found`);
173
+ const newId = uuid();
174
+ old.status = "superseded";
175
+ old.superseded_by = newId;
176
+ old.updated_at = now();
177
+ rows.push({
178
+ id: newId,
179
+ fact: newText,
180
+ category: category ?? old.category,
181
+ confidence: confidence ?? 1.0,
182
+ source_session_id: undefined,
183
+ source_type: "manual",
184
+ status: "active",
185
+ superseded_by: undefined,
186
+ access_count: 0,
187
+ last_accessed: now(),
188
+ decay_tier: "hot",
189
+ created_at: now(),
190
+ updated_at: now(),
191
+ });
192
+ writeTable("extracted_facts", rows);
193
+ return newId;
194
+ }
195
+ async logConversation(data) {
196
+ const rows = readTable("conversation_log");
197
+ rows.push({
198
+ id: uuid(),
199
+ session_id: data.session_id,
200
+ role: data.role,
201
+ content: data.content,
202
+ has_code: data.has_code,
203
+ created_at: now(),
204
+ });
205
+ writeTable("conversation_log", rows);
206
+ }
207
+ async getConversationDetail(sessionId) {
208
+ return readTable("conversation_log")
209
+ .filter((r) => r.session_id === sessionId)
210
+ .sort((a, b) => new Date(a.created_at).getTime() - new Date(b.created_at).getTime())
211
+ .map((r) => ({ id: r.id, role: r.role, content: r.content, has_code: r.has_code, created_at: r.created_at }));
212
+ }
213
+ async storeCode(data) {
214
+ const id = uuid();
215
+ const rows = readTable("code_dumps");
216
+ rows.push({
217
+ id,
218
+ session_id: data.session_id,
219
+ language: data.language,
220
+ filename: data.filename,
221
+ content: data.content,
222
+ description: data.description,
223
+ created_at: now(),
224
+ });
225
+ writeTable("code_dumps", rows);
226
+ return { id };
227
+ }
228
+ async getBusinessContext() {
229
+ return readTable("business_context")
230
+ .sort((a, b) => a.category.localeCompare(b.category) || a.key.localeCompare(b.key));
231
+ }
232
+ async setBusinessContext(category, key, value, priority) {
233
+ const rows = readTable("business_context");
234
+ const existing = rows.find((r) => r.category === category && r.key === key);
235
+ if (existing) {
236
+ existing.value = value;
237
+ existing.last_accessed = now();
238
+ existing.decay_tier = "hot";
239
+ existing.updated_at = now();
240
+ if (priority !== undefined)
241
+ existing.priority = priority;
242
+ }
243
+ else {
244
+ rows.push({
245
+ id: uuid(),
246
+ category,
247
+ key,
248
+ value,
249
+ priority: priority ?? 0,
250
+ access_count: 0,
251
+ last_accessed: now(),
252
+ decay_tier: "hot",
253
+ created_at: now(),
254
+ updated_at: now(),
255
+ });
256
+ }
257
+ writeTable("business_context", rows);
258
+ }
259
+ async upsertLibraryDoc(data) {
260
+ const docs = readTable("knowledge_library");
261
+ const existing = docs.find((d) => d.slug === data.slug);
262
+ if (existing) {
263
+ // Archive old version
264
+ const history = readTable("knowledge_library_history");
265
+ history.push({
266
+ id: uuid(),
267
+ library_id: existing.id,
268
+ title: existing.title,
269
+ content: existing.content,
270
+ version: existing.version,
271
+ changed_at: now(),
272
+ });
273
+ writeTable("knowledge_library_history", history);
274
+ // Update
275
+ existing.title = data.title;
276
+ existing.category = data.category;
277
+ existing.content = data.content;
278
+ existing.tags = data.tags;
279
+ existing.version += 1;
280
+ existing.last_accessed = now();
281
+ existing.decay_tier = "hot";
282
+ existing.updated_at = now();
283
+ writeTable("knowledge_library", docs);
284
+ return `Library doc updated: "${data.title}" (v${existing.version})`;
285
+ }
286
+ else {
287
+ docs.push({
288
+ id: uuid(),
289
+ title: data.title,
290
+ slug: data.slug,
291
+ category: data.category,
292
+ content: data.content,
293
+ tags: data.tags,
294
+ version: 1,
295
+ access_count: 0,
296
+ last_accessed: now(),
297
+ decay_tier: "hot",
298
+ created_at: now(),
299
+ updated_at: now(),
300
+ });
301
+ writeTable("knowledge_library", docs);
302
+ return `Library doc created: "${data.title}" (v1)`;
303
+ }
304
+ }
305
+ async manageDecay() {
306
+ const threshold = {
307
+ hot_to_warm: 21 * 24 * 60 * 60 * 1000, // 21 days
308
+ warm_to_cold: 60 * 24 * 60 * 60 * 1000, // 60 days
309
+ bc_hot_to_warm: 30 * 24 * 60 * 60 * 1000, // 30 days
310
+ bc_warm_to_cold: 90 * 24 * 60 * 60 * 1000, // 90 days
311
+ };
312
+ const nowMs = Date.now();
313
+ let bcDecayed = 0;
314
+ let klDecayed = 0;
315
+ let efDecayed = 0;
316
+ // Business context
317
+ const bc = readTable("business_context");
318
+ for (const row of bc) {
319
+ const age = nowMs - new Date(row.last_accessed).getTime();
320
+ if (row.decay_tier === "hot" && age > threshold.bc_hot_to_warm) {
321
+ row.decay_tier = "warm";
322
+ bcDecayed++;
323
+ }
324
+ if (row.decay_tier !== "cold" && age > threshold.bc_warm_to_cold) {
325
+ row.decay_tier = "cold";
326
+ bcDecayed++;
327
+ }
328
+ }
329
+ writeTable("business_context", bc);
330
+ // Knowledge library
331
+ const kl = readTable("knowledge_library");
332
+ for (const row of kl) {
333
+ const age = nowMs - new Date(row.last_accessed).getTime();
334
+ if (row.decay_tier === "hot" && age > threshold.bc_hot_to_warm) {
335
+ row.decay_tier = "warm";
336
+ klDecayed++;
337
+ }
338
+ if (row.decay_tier !== "cold" && age > threshold.bc_warm_to_cold) {
339
+ row.decay_tier = "cold";
340
+ klDecayed++;
341
+ }
342
+ }
343
+ writeTable("knowledge_library", kl);
344
+ // Facts
345
+ const ef = readTable("extracted_facts");
346
+ for (const row of ef) {
347
+ if (row.status !== "active")
348
+ continue;
349
+ const age = nowMs - new Date(row.last_accessed).getTime();
350
+ if (row.decay_tier === "hot" && age > threshold.hot_to_warm) {
351
+ row.decay_tier = "warm";
352
+ efDecayed++;
353
+ }
354
+ if (row.decay_tier !== "cold" && age > threshold.warm_to_cold) {
355
+ row.decay_tier = "cold";
356
+ efDecayed++;
357
+ }
358
+ }
359
+ writeTable("extracted_facts", ef);
360
+ return {
361
+ ran_at: now(),
362
+ business_context_decayed: bcDecayed,
363
+ knowledge_library_decayed: klDecayed,
364
+ extracted_facts_decayed: efDecayed,
365
+ };
366
+ }
367
+ async getMemoryStatus() {
368
+ const tables = ["business_context", "knowledge_library", "session_summaries", "extracted_facts", "conversation_log", "code_dumps"];
369
+ const counts = {};
370
+ for (const t of tables) {
371
+ counts[t] = readTable(t).length;
372
+ }
373
+ const facts = readTable("extracted_facts").filter((f) => f.status === "active");
374
+ const tiers = { hot: 0, warm: 0, cold: 0 };
375
+ for (const f of facts) {
376
+ tiers[f.decay_tier]++;
377
+ }
378
+ return {
379
+ mode: "local",
380
+ data_dir: DATA_DIR,
381
+ table_counts: counts,
382
+ fact_decay_tiers: tiers,
383
+ };
384
+ }
385
+ }
386
+ //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Supabase backend for UnClick Memory.
3
+ *
4
+ * Cloud mode: data lives in the user's own Supabase project (BYOD).
5
+ * Requires SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY env vars.
6
+ */
7
+ import type { MemoryBackend, SessionSummaryInput, FactInput, ConversationInput, CodeInput, LibraryDocInput } from "./types.js";
8
+ export declare class SupabaseBackend implements MemoryBackend {
9
+ constructor();
10
+ getStartupContext(numSessions: number): Promise<unknown>;
11
+ searchMemory(query: string, maxResults: number): Promise<unknown>;
12
+ searchFacts(query: string): Promise<unknown>;
13
+ searchLibrary(query: string): Promise<unknown>;
14
+ getLibraryDoc(slug: string): Promise<unknown>;
15
+ listLibrary(): Promise<unknown>;
16
+ writeSessionSummary(data: SessionSummaryInput): Promise<{
17
+ id: string;
18
+ }>;
19
+ addFact(data: FactInput): Promise<{
20
+ id: string;
21
+ }>;
22
+ supersedeFact(oldId: string, newText: string, category?: string, confidence?: number): Promise<string>;
23
+ logConversation(data: ConversationInput): Promise<void>;
24
+ getConversationDetail(sessionId: string): Promise<unknown>;
25
+ storeCode(data: CodeInput): Promise<{
26
+ id: string;
27
+ }>;
28
+ getBusinessContext(): Promise<unknown[]>;
29
+ setBusinessContext(category: string, key: string, value: unknown, priority?: number): Promise<void>;
30
+ upsertLibraryDoc(data: LibraryDocInput): Promise<string>;
31
+ manageDecay(): Promise<unknown>;
32
+ getMemoryStatus(): Promise<unknown>;
33
+ }
34
+ //# sourceMappingURL=supabase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/memory/supabase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,eAAe,EAChB,MAAM,YAAY,CAAC;AAuCpB,qBAAa,eAAgB,YAAW,aAAa;;IAO7C,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAevE,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBjD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtG,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAanD,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOxC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnG,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCxD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;CAe1C"}