claude-cognitive 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 (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +256 -0
  3. package/bin/claude-cognitive.js +9 -0
  4. package/dist/agents/context.d.ts +40 -0
  5. package/dist/agents/context.d.ts.map +1 -0
  6. package/dist/agents/context.js +144 -0
  7. package/dist/agents/context.js.map +1 -0
  8. package/dist/agents/index.d.ts +9 -0
  9. package/dist/agents/index.d.ts.map +1 -0
  10. package/dist/agents/index.js +11 -0
  11. package/dist/agents/index.js.map +1 -0
  12. package/dist/agents/loader.d.ts +48 -0
  13. package/dist/agents/loader.d.ts.map +1 -0
  14. package/dist/agents/loader.js +157 -0
  15. package/dist/agents/loader.js.map +1 -0
  16. package/dist/agents/templates.d.ts +51 -0
  17. package/dist/agents/templates.d.ts.map +1 -0
  18. package/dist/agents/templates.js +186 -0
  19. package/dist/agents/templates.js.map +1 -0
  20. package/dist/agents/types.d.ts +52 -0
  21. package/dist/agents/types.d.ts.map +1 -0
  22. package/dist/agents/types.js +6 -0
  23. package/dist/agents/types.js.map +1 -0
  24. package/dist/cli/commands/config.d.ts +10 -0
  25. package/dist/cli/commands/config.d.ts.map +1 -0
  26. package/dist/cli/commands/config.js +22 -0
  27. package/dist/cli/commands/config.js.map +1 -0
  28. package/dist/cli/commands/index.d.ts +17 -0
  29. package/dist/cli/commands/index.d.ts.map +1 -0
  30. package/dist/cli/commands/index.js +17 -0
  31. package/dist/cli/commands/index.js.map +1 -0
  32. package/dist/cli/commands/init.d.ts +10 -0
  33. package/dist/cli/commands/init.d.ts.map +1 -0
  34. package/dist/cli/commands/init.js +109 -0
  35. package/dist/cli/commands/init.js.map +1 -0
  36. package/dist/cli/commands/install.d.ts +10 -0
  37. package/dist/cli/commands/install.d.ts.map +1 -0
  38. package/dist/cli/commands/install.js +440 -0
  39. package/dist/cli/commands/install.js.map +1 -0
  40. package/dist/cli/commands/learn.d.ts +10 -0
  41. package/dist/cli/commands/learn.d.ts.map +1 -0
  42. package/dist/cli/commands/learn.js +33 -0
  43. package/dist/cli/commands/learn.js.map +1 -0
  44. package/dist/cli/commands/recall.d.ts +10 -0
  45. package/dist/cli/commands/recall.d.ts.map +1 -0
  46. package/dist/cli/commands/recall.js +52 -0
  47. package/dist/cli/commands/recall.js.map +1 -0
  48. package/dist/cli/commands/reflect.d.ts +10 -0
  49. package/dist/cli/commands/reflect.d.ts.map +1 -0
  50. package/dist/cli/commands/reflect.js +48 -0
  51. package/dist/cli/commands/reflect.js.map +1 -0
  52. package/dist/cli/commands/semantic.d.ts +10 -0
  53. package/dist/cli/commands/semantic.d.ts.map +1 -0
  54. package/dist/cli/commands/semantic.js +67 -0
  55. package/dist/cli/commands/semantic.js.map +1 -0
  56. package/dist/cli/commands/serve.d.ts +10 -0
  57. package/dist/cli/commands/serve.d.ts.map +1 -0
  58. package/dist/cli/commands/serve.js +61 -0
  59. package/dist/cli/commands/serve.js.map +1 -0
  60. package/dist/cli/commands/status.d.ts +10 -0
  61. package/dist/cli/commands/status.d.ts.map +1 -0
  62. package/dist/cli/commands/status.js +44 -0
  63. package/dist/cli/commands/status.js.map +1 -0
  64. package/dist/cli/commands/sync.d.ts +10 -0
  65. package/dist/cli/commands/sync.d.ts.map +1 -0
  66. package/dist/cli/commands/sync.js +260 -0
  67. package/dist/cli/commands/sync.js.map +1 -0
  68. package/dist/cli/commands/uninstall.d.ts +10 -0
  69. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  70. package/dist/cli/commands/uninstall.js +205 -0
  71. package/dist/cli/commands/uninstall.js.map +1 -0
  72. package/dist/cli/commands/update-bank.d.ts +10 -0
  73. package/dist/cli/commands/update-bank.d.ts.map +1 -0
  74. package/dist/cli/commands/update-bank.js +129 -0
  75. package/dist/cli/commands/update-bank.js.map +1 -0
  76. package/dist/cli/index.d.ts +6 -0
  77. package/dist/cli/index.d.ts.map +1 -0
  78. package/dist/cli/index.js +56 -0
  79. package/dist/cli/index.js.map +1 -0
  80. package/dist/cli/utils/errors.d.ts +42 -0
  81. package/dist/cli/utils/errors.d.ts.map +1 -0
  82. package/dist/cli/utils/errors.js +78 -0
  83. package/dist/cli/utils/errors.js.map +1 -0
  84. package/dist/cli/utils/index.d.ts +9 -0
  85. package/dist/cli/utils/index.d.ts.map +1 -0
  86. package/dist/cli/utils/index.js +7 -0
  87. package/dist/cli/utils/index.js.map +1 -0
  88. package/dist/cli/utils/output.d.ts +90 -0
  89. package/dist/cli/utils/output.d.ts.map +1 -0
  90. package/dist/cli/utils/output.js +164 -0
  91. package/dist/cli/utils/output.js.map +1 -0
  92. package/dist/client.d.ts +200 -0
  93. package/dist/client.d.ts.map +1 -0
  94. package/dist/client.js +447 -0
  95. package/dist/client.js.map +1 -0
  96. package/dist/config.d.ts +44 -0
  97. package/dist/config.d.ts.map +1 -0
  98. package/dist/config.js +264 -0
  99. package/dist/config.js.map +1 -0
  100. package/dist/errors.d.ts +72 -0
  101. package/dist/errors.d.ts.map +1 -0
  102. package/dist/errors.js +188 -0
  103. package/dist/errors.js.map +1 -0
  104. package/dist/events.d.ts +148 -0
  105. package/dist/events.d.ts.map +1 -0
  106. package/dist/events.js +115 -0
  107. package/dist/events.js.map +1 -0
  108. package/dist/hooks/index.d.ts +7 -0
  109. package/dist/hooks/index.d.ts.map +1 -0
  110. package/dist/hooks/index.js +7 -0
  111. package/dist/hooks/index.js.map +1 -0
  112. package/dist/hooks/inject-context.d.ts +18 -0
  113. package/dist/hooks/inject-context.d.ts.map +1 -0
  114. package/dist/hooks/inject-context.js +57 -0
  115. package/dist/hooks/inject-context.js.map +1 -0
  116. package/dist/hooks/process-session.d.ts +18 -0
  117. package/dist/hooks/process-session.d.ts.map +1 -0
  118. package/dist/hooks/process-session.js +119 -0
  119. package/dist/hooks/process-session.js.map +1 -0
  120. package/dist/index.d.ts +63 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +59 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/learn/analyzers/git.d.ts +62 -0
  125. package/dist/learn/analyzers/git.d.ts.map +1 -0
  126. package/dist/learn/analyzers/git.js +183 -0
  127. package/dist/learn/analyzers/git.js.map +1 -0
  128. package/dist/learn/analyzers/index.d.ts +15 -0
  129. package/dist/learn/analyzers/index.d.ts.map +1 -0
  130. package/dist/learn/analyzers/index.js +10 -0
  131. package/dist/learn/analyzers/index.js.map +1 -0
  132. package/dist/learn/analyzers/package.d.ts +57 -0
  133. package/dist/learn/analyzers/package.d.ts.map +1 -0
  134. package/dist/learn/analyzers/package.js +245 -0
  135. package/dist/learn/analyzers/package.js.map +1 -0
  136. package/dist/learn/analyzers/readme.d.ts +27 -0
  137. package/dist/learn/analyzers/readme.d.ts.map +1 -0
  138. package/dist/learn/analyzers/readme.js +163 -0
  139. package/dist/learn/analyzers/readme.js.map +1 -0
  140. package/dist/learn/analyzers/source.d.ts +70 -0
  141. package/dist/learn/analyzers/source.d.ts.map +1 -0
  142. package/dist/learn/analyzers/source.js +231 -0
  143. package/dist/learn/analyzers/source.js.map +1 -0
  144. package/dist/learn/analyzers/structure.d.ts +39 -0
  145. package/dist/learn/analyzers/structure.d.ts.map +1 -0
  146. package/dist/learn/analyzers/structure.js +172 -0
  147. package/dist/learn/analyzers/structure.js.map +1 -0
  148. package/dist/learn/extractor.d.ts +76 -0
  149. package/dist/learn/extractor.d.ts.map +1 -0
  150. package/dist/learn/extractor.js +302 -0
  151. package/dist/learn/extractor.js.map +1 -0
  152. package/dist/learn/index.d.ts +31 -0
  153. package/dist/learn/index.d.ts.map +1 -0
  154. package/dist/learn/index.js +165 -0
  155. package/dist/learn/index.js.map +1 -0
  156. package/dist/mcp/handlers.d.ts +23 -0
  157. package/dist/mcp/handlers.d.ts.map +1 -0
  158. package/dist/mcp/handlers.js +124 -0
  159. package/dist/mcp/handlers.js.map +1 -0
  160. package/dist/mcp/index.d.ts +32 -0
  161. package/dist/mcp/index.d.ts.map +1 -0
  162. package/dist/mcp/index.js +40 -0
  163. package/dist/mcp/index.js.map +1 -0
  164. package/dist/mcp/server.d.ts +79 -0
  165. package/dist/mcp/server.d.ts.map +1 -0
  166. package/dist/mcp/server.js +277 -0
  167. package/dist/mcp/server.js.map +1 -0
  168. package/dist/mcp/tools.d.ts +59 -0
  169. package/dist/mcp/tools.d.ts.map +1 -0
  170. package/dist/mcp/tools.js +43 -0
  171. package/dist/mcp/tools.js.map +1 -0
  172. package/dist/mcp/types.d.ts +65 -0
  173. package/dist/mcp/types.d.ts.map +1 -0
  174. package/dist/mcp/types.js +6 -0
  175. package/dist/mcp/types.js.map +1 -0
  176. package/dist/mind.d.ts +250 -0
  177. package/dist/mind.d.ts.map +1 -0
  178. package/dist/mind.js +637 -0
  179. package/dist/mind.js.map +1 -0
  180. package/dist/promotion.d.ts +112 -0
  181. package/dist/promotion.d.ts.map +1 -0
  182. package/dist/promotion.js +196 -0
  183. package/dist/promotion.js.map +1 -0
  184. package/dist/retry.d.ts +70 -0
  185. package/dist/retry.d.ts.map +1 -0
  186. package/dist/retry.js +122 -0
  187. package/dist/retry.js.map +1 -0
  188. package/dist/semantic.d.ts +202 -0
  189. package/dist/semantic.d.ts.map +1 -0
  190. package/dist/semantic.js +424 -0
  191. package/dist/semantic.js.map +1 -0
  192. package/dist/types.d.ts +363 -0
  193. package/dist/types.d.ts.map +1 -0
  194. package/dist/types.js +30 -0
  195. package/dist/types.js.map +1 -0
  196. package/package.json +70 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * CLI output utilities.
3
+ * @module cli/utils/output
4
+ */
5
+ import type { Memory, Opinion } from "../../types.js";
6
+ /**
7
+ * Output formatting options.
8
+ */
9
+ export interface OutputOptions {
10
+ /** Output as JSON */
11
+ json?: boolean;
12
+ /** Suppress output */
13
+ quiet?: boolean;
14
+ }
15
+ /**
16
+ * Output data in the appropriate format.
17
+ *
18
+ * @param data - Data to output
19
+ * @param formatter - Function to format data for human-readable output
20
+ * @param options - Output options
21
+ */
22
+ export declare function output<T>(data: T, formatter: (data: T) => string, options?: OutputOptions): void;
23
+ /**
24
+ * Output to stderr (for messages that shouldn't interfere with piping).
25
+ *
26
+ * @param message - Message to output
27
+ * @param options - Output options
28
+ */
29
+ export declare function info(message: string, options?: OutputOptions): void;
30
+ /**
31
+ * Output a warning to stderr.
32
+ *
33
+ * @param message - Warning message
34
+ * @param options - Output options
35
+ */
36
+ export declare function warn(message: string, options?: OutputOptions): void;
37
+ /**
38
+ * Format memories for human-readable output.
39
+ */
40
+ export declare function formatMemories(memories: Memory[]): string;
41
+ /**
42
+ * Format opinions for human-readable output.
43
+ */
44
+ export declare function formatOpinions(opinions: Opinion[]): string;
45
+ /**
46
+ * Format a status object for human-readable output.
47
+ */
48
+ export declare function formatStatus(status: {
49
+ hindsight: {
50
+ healthy: boolean;
51
+ version?: string;
52
+ error?: string;
53
+ };
54
+ bankId: string;
55
+ memoryCount?: number;
56
+ semanticPath: string;
57
+ semanticLoaded: boolean;
58
+ degraded: boolean;
59
+ }): string;
60
+ /**
61
+ * Format learn result for human-readable output.
62
+ */
63
+ export declare function formatLearnResult(result: {
64
+ summary: string;
65
+ worldFacts: number;
66
+ opinions: Opinion[];
67
+ filesAnalyzed: number;
68
+ duration: number;
69
+ }): string;
70
+ /**
71
+ * Format configuration for human-readable output.
72
+ */
73
+ export declare function formatConfig(config: {
74
+ hindsight: {
75
+ host: string;
76
+ port: number;
77
+ apiKey?: string;
78
+ };
79
+ bankId?: string;
80
+ disposition?: {
81
+ skepticism: number;
82
+ literalism: number;
83
+ empathy: number;
84
+ };
85
+ background?: string;
86
+ semantic?: {
87
+ path: string;
88
+ };
89
+ }): string;
90
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAMtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,EACtB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC9B,OAAO,GAAE,aAAkB,GAC1B,IAAI,CAQN;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI,CAIvE;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI,CAIvE;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAuBzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAW1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,SAAS,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,MAAM,CA+BT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAqBT;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,GAAG,MAAM,CA4BT"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * CLI output utilities.
3
+ * @module cli/utils/output
4
+ */
5
+ // ============================================
6
+ // Output Function
7
+ // ============================================
8
+ /**
9
+ * Output data in the appropriate format.
10
+ *
11
+ * @param data - Data to output
12
+ * @param formatter - Function to format data for human-readable output
13
+ * @param options - Output options
14
+ */
15
+ export function output(data, formatter, options = {}) {
16
+ if (options.quiet)
17
+ return;
18
+ if (options.json) {
19
+ console.log(JSON.stringify(data, null, 2));
20
+ }
21
+ else {
22
+ console.log(formatter(data));
23
+ }
24
+ }
25
+ /**
26
+ * Output to stderr (for messages that shouldn't interfere with piping).
27
+ *
28
+ * @param message - Message to output
29
+ * @param options - Output options
30
+ */
31
+ export function info(message, options = {}) {
32
+ if (options.quiet)
33
+ return;
34
+ if (options.json)
35
+ return; // Suppress info messages in JSON mode
36
+ console.error(message);
37
+ }
38
+ /**
39
+ * Output a warning to stderr.
40
+ *
41
+ * @param message - Warning message
42
+ * @param options - Output options
43
+ */
44
+ export function warn(message, options = {}) {
45
+ if (options.quiet)
46
+ return;
47
+ if (options.json)
48
+ return;
49
+ console.error(`Warning: ${message}`);
50
+ }
51
+ // ============================================
52
+ // Formatters
53
+ // ============================================
54
+ /**
55
+ * Format memories for human-readable output.
56
+ */
57
+ export function formatMemories(memories) {
58
+ if (memories.length === 0) {
59
+ return "No memories found.";
60
+ }
61
+ const lines = [];
62
+ for (const memory of memories) {
63
+ const date = new Date(memory.createdAt).toLocaleDateString();
64
+ const type = memory.factType.toUpperCase();
65
+ const confidence = memory.confidence !== undefined
66
+ ? ` (${(memory.confidence * 100).toFixed(0)}%)`
67
+ : "";
68
+ lines.push(`[${type}] ${date}${confidence}`);
69
+ lines.push(` ${memory.text}`);
70
+ if (memory.context) {
71
+ lines.push(` Context: ${memory.context}`);
72
+ }
73
+ lines.push("");
74
+ }
75
+ return lines.join("\n").trim();
76
+ }
77
+ /**
78
+ * Format opinions for human-readable output.
79
+ */
80
+ export function formatOpinions(opinions) {
81
+ if (opinions.length === 0) {
82
+ return "No opinions formed.";
83
+ }
84
+ return opinions
85
+ .map((op) => {
86
+ const confidence = (op.confidence * 100).toFixed(0);
87
+ return `- ${op.opinion} (${confidence}% confidence)`;
88
+ })
89
+ .join("\n");
90
+ }
91
+ /**
92
+ * Format a status object for human-readable output.
93
+ */
94
+ export function formatStatus(status) {
95
+ const lines = [];
96
+ // Hindsight status
97
+ if (status.hindsight.healthy) {
98
+ lines.push(`Hindsight: Connected${status.hindsight.version ? ` (v${status.hindsight.version})` : ""}`);
99
+ }
100
+ else {
101
+ lines.push(`Hindsight: Disconnected${status.hindsight.error ? ` - ${status.hindsight.error}` : ""}`);
102
+ }
103
+ // Bank info
104
+ lines.push(`Bank: ${status.bankId}`);
105
+ if (status.memoryCount !== undefined) {
106
+ lines.push(`Memories: ${status.memoryCount}`);
107
+ }
108
+ // Semantic memory
109
+ lines.push(`Semantic: ${status.semanticPath} (${status.semanticLoaded ? "loaded" : "not loaded"})`);
110
+ // Degraded mode
111
+ if (status.degraded) {
112
+ lines.push("\n*** Running in DEGRADED mode (Hindsight unavailable) ***");
113
+ }
114
+ return lines.join("\n");
115
+ }
116
+ /**
117
+ * Format learn result for human-readable output.
118
+ */
119
+ export function formatLearnResult(result) {
120
+ const lines = [];
121
+ lines.push(result.summary);
122
+ lines.push("");
123
+ lines.push(`Stats:`);
124
+ lines.push(` Files analyzed: ${result.filesAnalyzed}`);
125
+ lines.push(` World facts stored: ${result.worldFacts}`);
126
+ lines.push(` Opinions formed: ${result.opinions.length}`);
127
+ lines.push(` Duration: ${(result.duration / 1000).toFixed(1)}s`);
128
+ if (result.opinions.length > 0) {
129
+ lines.push("");
130
+ lines.push("Opinions:");
131
+ for (const op of result.opinions) {
132
+ const confidence = (op.confidence * 100).toFixed(0);
133
+ lines.push(` - ${op.opinion} (${confidence}%)`);
134
+ }
135
+ }
136
+ return lines.join("\n");
137
+ }
138
+ /**
139
+ * Format configuration for human-readable output.
140
+ */
141
+ export function formatConfig(config) {
142
+ const lines = [];
143
+ lines.push("Hindsight:");
144
+ lines.push(` Host: ${config.hindsight.host}`);
145
+ lines.push(` Port: ${config.hindsight.port}`);
146
+ lines.push(` API Key: ${config.hindsight.apiKey ? "***" : "(not set)"}`);
147
+ if (config.bankId) {
148
+ lines.push(`\nBank ID: ${config.bankId}`);
149
+ }
150
+ if (config.disposition) {
151
+ lines.push("\nDisposition:");
152
+ lines.push(` Skepticism: ${config.disposition.skepticism}/5`);
153
+ lines.push(` Literalism: ${config.disposition.literalism}/5`);
154
+ lines.push(` Empathy: ${config.disposition.empathy}/5`);
155
+ }
156
+ if (config.background) {
157
+ lines.push(`\nBackground: ${config.background}`);
158
+ }
159
+ if (config.semantic) {
160
+ lines.push(`\nSemantic Memory: ${config.semantic.path}`);
161
+ }
162
+ return lines.join("\n");
163
+ }
164
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/cli/utils/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * HindsightClient - TypeScript client for the Hindsight memory API.
3
+ * @module client
4
+ */
5
+ import type { Bank, BankOptions, Disposition, HealthStatus, HindsightClientOptions, Memory, RecallOptions, TraitValue, ReflectResult } from "./types.js";
6
+ /**
7
+ * HindsightClient provides a TypeScript interface to the Hindsight memory API.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const client = new HindsightClient({
12
+ * host: 'localhost',
13
+ * port: 8888,
14
+ * });
15
+ *
16
+ * // Check health
17
+ * const health = await client.health();
18
+ * if (!health.healthy) {
19
+ * console.error('Hindsight unavailable');
20
+ * }
21
+ *
22
+ * // Create a bank
23
+ * await client.createBank({
24
+ * bankId: 'my-project',
25
+ * disposition: { skepticism: 4, literalism: 4, empathy: 2 },
26
+ * background: 'Developer assistant for a React app',
27
+ * });
28
+ *
29
+ * // Store a memory
30
+ * await client.retain(
31
+ * 'my-project',
32
+ * 'Fixed auth redirect by moving AuthProvider to root',
33
+ * 'User was experiencing infinite redirects'
34
+ * );
35
+ *
36
+ * // Recall memories
37
+ * const memories = await client.recall('my-project', 'authentication issues');
38
+ *
39
+ * // Reflect and form opinions
40
+ * const reflection = await client.reflect('my-project', 'What patterns have I noticed?');
41
+ * ```
42
+ */
43
+ export declare class HindsightClient {
44
+ private readonly baseUrl;
45
+ private readonly apiKey?;
46
+ private readonly timeouts;
47
+ /**
48
+ * Create a new HindsightClient.
49
+ *
50
+ * @param options - Client configuration options
51
+ */
52
+ constructor(options?: HindsightClientOptions);
53
+ /**
54
+ * Create a new memory bank with disposition.
55
+ *
56
+ * @param options - Bank creation options
57
+ * @throws {HindsightError} If bank already exists or disposition is invalid
58
+ */
59
+ createBank(options: BankOptions): Promise<void>;
60
+ /**
61
+ * Get bank information.
62
+ *
63
+ * @param bankId - Bank identifier
64
+ * @returns Bank information
65
+ * @throws {HindsightError} If bank doesn't exist
66
+ */
67
+ getBank(bankId: string): Promise<Bank>;
68
+ /**
69
+ * Update bank disposition traits.
70
+ *
71
+ * @param bankId - Bank identifier
72
+ * @param disposition - New disposition values
73
+ * @throws {HindsightError} If bank doesn't exist or disposition is invalid
74
+ */
75
+ updateDisposition(bankId: string, disposition: Disposition): Promise<void>;
76
+ /**
77
+ * Update bank settings (background and/or disposition).
78
+ *
79
+ * @param bankId - Bank identifier
80
+ * @param updates - Fields to update
81
+ * @throws {HindsightError} If bank doesn't exist
82
+ */
83
+ updateBank(bankId: string, updates: {
84
+ background?: string;
85
+ disposition?: {
86
+ skepticism?: TraitValue;
87
+ literalism?: TraitValue;
88
+ empathy?: TraitValue;
89
+ };
90
+ }): Promise<void>;
91
+ /**
92
+ * Delete a memory bank and all its memories.
93
+ *
94
+ * @param bankId - Bank identifier
95
+ * @throws {HindsightError} If bank doesn't exist
96
+ */
97
+ deleteBank(bankId: string): Promise<void>;
98
+ /**
99
+ * Store content with automatic extraction.
100
+ *
101
+ * Hindsight automatically extracts entities, relationships, and metadata.
102
+ *
103
+ * @param bankId - Bank identifier
104
+ * @param content - Content to store
105
+ * @param context - Optional additional context
106
+ * @returns Number of items processed
107
+ * @throws {HindsightError} If bank doesn't exist
108
+ */
109
+ retain(bankId: string, content: string, context?: string): Promise<number>;
110
+ /**
111
+ * Search memories using 4-way parallel retrieval.
112
+ *
113
+ * Uses four search strategies in parallel:
114
+ * - Semantic: Vector similarity for conceptual matches
115
+ * - BM25: Full-text keyword search for exact terms
116
+ * - Graph: Entity traversal for indirect relationships
117
+ * - Temporal: Time-range + semantic for historical queries
118
+ *
119
+ * Results are fused using Reciprocal Rank Fusion (RRF),
120
+ * then reranked with a neural cross-encoder.
121
+ *
122
+ * @param bankId - Bank identifier
123
+ * @param query - Search query
124
+ * @param options - Search options
125
+ * @returns Ranked list of matching memories
126
+ * @throws {HindsightError} If bank doesn't exist
127
+ */
128
+ recall(bankId: string, query: string, options?: RecallOptions): Promise<Memory[]>;
129
+ /**
130
+ * Reason about accumulated knowledge through disposition lens.
131
+ *
132
+ * Process:
133
+ * 1. Recalls relevant memories (world, experience, opinion)
134
+ * 2. Loads bank disposition (skepticism, literalism, empathy)
135
+ * 3. LLM reasons through disposition lens
136
+ * 4. Extracts new opinions with confidence scores
137
+ * 5. Stores opinions asynchronously (influences future reflects)
138
+ * 6. Returns reasoned response with citations
139
+ *
140
+ * @param bankId - Bank identifier
141
+ * @param query - What to think about or reason through
142
+ * @param context - Optional additional context
143
+ * @returns Reflection result with text, opinions, and citations
144
+ * @throws {HindsightError} If bank doesn't exist
145
+ */
146
+ reflect(bankId: string, query: string, context?: string): Promise<ReflectResult>;
147
+ /**
148
+ * Check Hindsight connection health.
149
+ *
150
+ * Unlike other methods, this returns a status object instead of
151
+ * throwing on failure. This makes it safe to use for health checks.
152
+ *
153
+ * @returns Health status
154
+ */
155
+ health(): Promise<HealthStatus>;
156
+ /**
157
+ * Get recent memories from a bank.
158
+ *
159
+ * @param bankId - Bank identifier
160
+ * @param limit - Maximum number of memories to return (default: 50)
161
+ * @returns Recent memories sorted by creation time (newest first)
162
+ * @throws {HindsightError} If bank doesn't exist
163
+ */
164
+ recent(bankId: string, limit?: number): Promise<Memory[]>;
165
+ /**
166
+ * Clear all memories from a bank.
167
+ *
168
+ * Note: The Hindsight API only supports clearing all memories at once,
169
+ * not removing individual memories.
170
+ *
171
+ * @param bankId - Bank identifier
172
+ * @throws {HindsightError} If bank doesn't exist
173
+ */
174
+ forgetAll(bankId: string): Promise<void>;
175
+ /**
176
+ * @deprecated Use forgetAll() instead - individual memory deletion not supported
177
+ */
178
+ forget(bankId: string, _memoryId?: string): Promise<void>;
179
+ /**
180
+ * Make an HTTP request to the Hindsight API.
181
+ * @internal
182
+ */
183
+ private request;
184
+ /**
185
+ * Safely parse JSON from response, returning undefined on failure.
186
+ * @internal
187
+ */
188
+ private safeParseJson;
189
+ /**
190
+ * Validate disposition values are in the valid range (1-5).
191
+ * @internal
192
+ */
193
+ private validateDisposition;
194
+ /**
195
+ * Map bank response DTO to public Bank interface.
196
+ * @internal
197
+ */
198
+ private mapBankResponse;
199
+ }
200
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EAEX,WAAW,EAEX,YAAY,EACZ,sBAAsB,EACtB,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EAEd,MAAM,YAAY,CAAC;AAsBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAEzC;;;;OAIG;gBACS,OAAO,GAAE,sBAA2B;IAehD;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrD;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5C;;;;;;OAMG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;;;OAMG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE;YACZ,UAAU,CAAC,EAAE,UAAU,CAAC;YACxB,UAAU,CAAC,EAAE,UAAU,CAAC;YACxB,OAAO,CAAC,EAAE,UAAU,CAAC;SACtB,CAAC;KACH,GACA,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;;;;;;;;;OAUG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAqBlB;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAyCpB;;;;;;;;;;;;;;;;OAgBG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC;IA+DzB;;;;;;;OAOG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAuBrC;;;;;;;OAOG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgCnE;;;;;;;;OAQG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D;;;OAGG;YACW,OAAO;IA2DrB;;;OAGG;YACW,aAAa;IAQ3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;;OAGG;IACH,OAAO,CAAC,eAAe;CAaxB"}