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,148 @@
1
+ /**
2
+ * Event system for claude-cognitive Mind class.
3
+ * @module events
4
+ */
5
+ import { EventEmitter } from "node:events";
6
+ import type { Memory, Opinion } from "./types.js";
7
+ /**
8
+ * Observation that may be promoted to semantic memory.
9
+ */
10
+ export interface Observation {
11
+ /** The observation text */
12
+ text: string;
13
+ /** Confidence score from 0.0 to 1.0 */
14
+ confidence: number;
15
+ /** Source identifier (e.g., session ID, reflect query) */
16
+ source: string;
17
+ }
18
+ /**
19
+ * Event map defining all Mind events and their payload types.
20
+ *
21
+ * Each event is defined as a tuple of arguments that will be passed
22
+ * to listeners when the event is emitted.
23
+ */
24
+ export interface MindEventMap {
25
+ /** Emitted when Mind is initialized and ready */
26
+ ready: [];
27
+ /** Emitted when memories are recalled */
28
+ "memory:recalled": [memories: Memory[]];
29
+ /** Emitted when content is retained */
30
+ "memory:retained": [content: string];
31
+ /** Emitted when an opinion is formed via reflect() */
32
+ "opinion:formed": [opinion: Opinion];
33
+ /** Emitted when an observation is promoted to semantic memory */
34
+ "observation:promoted": [observation: Observation];
35
+ /** Emitted when degraded mode is entered or exited */
36
+ "degraded:change": [degraded: boolean];
37
+ /** Emitted when learn() operation starts */
38
+ "learn:start": [options: {
39
+ depth: string;
40
+ }];
41
+ /** Emitted when learn() operation completes */
42
+ "learn:complete": [result: {
43
+ summary: string;
44
+ worldFacts: number;
45
+ }];
46
+ /** Emitted when agent context is prepared for delegation */
47
+ "agent:context-prepared": [info: {
48
+ agent: string;
49
+ task: string;
50
+ }];
51
+ /** Emitted on errors (non-fatal, allows continued operation) */
52
+ error: [error: Error];
53
+ }
54
+ /**
55
+ * Event names as a union type.
56
+ */
57
+ export type MindEventName = keyof MindEventMap;
58
+ /**
59
+ * Type-safe EventEmitter for Mind class.
60
+ *
61
+ * Provides compile-time checking for event names and listener signatures.
62
+ * Extends the native Node.js EventEmitter with typed methods.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const emitter = new TypedEventEmitter();
67
+ *
68
+ * // Type-safe listener - compiler knows memories is Memory[]
69
+ * emitter.on('memory:recalled', (memories) => {
70
+ * console.log(`Recalled ${memories.length} memories`);
71
+ * });
72
+ *
73
+ * // Type-safe emit - compiler checks argument types
74
+ * emitter.emit('memory:recalled', [{ id: '1', text: 'test', factType: 'world' }]);
75
+ *
76
+ * // Compile error: wrong event name
77
+ * emitter.on('invalid-event', () => {}); // Error!
78
+ *
79
+ * // Compile error: wrong argument type
80
+ * emitter.emit('memory:recalled', 'not an array'); // Error!
81
+ * ```
82
+ */
83
+ export declare class TypedEventEmitter extends EventEmitter {
84
+ /**
85
+ * Add a listener for the specified event.
86
+ *
87
+ * @param event - Event name
88
+ * @param listener - Event handler function
89
+ * @returns This emitter for chaining
90
+ */
91
+ on<K extends MindEventName>(event: K, listener: (...args: MindEventMap[K]) => void): this;
92
+ /**
93
+ * Add a one-time listener for the specified event.
94
+ * The listener is removed after the first invocation.
95
+ *
96
+ * @param event - Event name
97
+ * @param listener - Event handler function
98
+ * @returns This emitter for chaining
99
+ */
100
+ once<K extends MindEventName>(event: K, listener: (...args: MindEventMap[K]) => void): this;
101
+ /**
102
+ * Remove a listener for the specified event.
103
+ *
104
+ * @param event - Event name
105
+ * @param listener - Event handler function to remove
106
+ * @returns This emitter for chaining
107
+ */
108
+ off<K extends MindEventName>(event: K, listener: (...args: MindEventMap[K]) => void): this;
109
+ /**
110
+ * Emit an event with type-safe arguments.
111
+ *
112
+ * @param event - Event name
113
+ * @param args - Event arguments (type-checked against MindEventMap)
114
+ * @returns True if the event had listeners, false otherwise
115
+ */
116
+ emit<K extends MindEventName>(event: K, ...args: MindEventMap[K]): boolean;
117
+ /**
118
+ * Add a listener to the beginning of the listeners array.
119
+ *
120
+ * @param event - Event name
121
+ * @param listener - Event handler function
122
+ * @returns This emitter for chaining
123
+ */
124
+ prependListener<K extends MindEventName>(event: K, listener: (...args: MindEventMap[K]) => void): this;
125
+ /**
126
+ * Add a one-time listener to the beginning of the listeners array.
127
+ *
128
+ * @param event - Event name
129
+ * @param listener - Event handler function
130
+ * @returns This emitter for chaining
131
+ */
132
+ prependOnceListener<K extends MindEventName>(event: K, listener: (...args: MindEventMap[K]) => void): this;
133
+ /**
134
+ * Remove all listeners for the specified event, or all events if none specified.
135
+ *
136
+ * @param event - Optional event name
137
+ * @returns This emitter for chaining
138
+ */
139
+ removeAllListeners(event?: MindEventName): this;
140
+ /**
141
+ * Get the number of listeners for the specified event.
142
+ *
143
+ * @param event - Event name
144
+ * @returns Number of listeners
145
+ */
146
+ listenerCount(event: MindEventName): number;
147
+ }
148
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js ADDED
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Event system for claude-cognitive Mind class.
3
+ * @module events
4
+ */
5
+ import { EventEmitter } from "node:events";
6
+ // ============================================
7
+ // Typed EventEmitter
8
+ // ============================================
9
+ /**
10
+ * Type-safe EventEmitter for Mind class.
11
+ *
12
+ * Provides compile-time checking for event names and listener signatures.
13
+ * Extends the native Node.js EventEmitter with typed methods.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const emitter = new TypedEventEmitter();
18
+ *
19
+ * // Type-safe listener - compiler knows memories is Memory[]
20
+ * emitter.on('memory:recalled', (memories) => {
21
+ * console.log(`Recalled ${memories.length} memories`);
22
+ * });
23
+ *
24
+ * // Type-safe emit - compiler checks argument types
25
+ * emitter.emit('memory:recalled', [{ id: '1', text: 'test', factType: 'world' }]);
26
+ *
27
+ * // Compile error: wrong event name
28
+ * emitter.on('invalid-event', () => {}); // Error!
29
+ *
30
+ * // Compile error: wrong argument type
31
+ * emitter.emit('memory:recalled', 'not an array'); // Error!
32
+ * ```
33
+ */
34
+ export class TypedEventEmitter extends EventEmitter {
35
+ /**
36
+ * Add a listener for the specified event.
37
+ *
38
+ * @param event - Event name
39
+ * @param listener - Event handler function
40
+ * @returns This emitter for chaining
41
+ */
42
+ on(event, listener) {
43
+ return super.on(event, listener);
44
+ }
45
+ /**
46
+ * Add a one-time listener for the specified event.
47
+ * The listener is removed after the first invocation.
48
+ *
49
+ * @param event - Event name
50
+ * @param listener - Event handler function
51
+ * @returns This emitter for chaining
52
+ */
53
+ once(event, listener) {
54
+ return super.once(event, listener);
55
+ }
56
+ /**
57
+ * Remove a listener for the specified event.
58
+ *
59
+ * @param event - Event name
60
+ * @param listener - Event handler function to remove
61
+ * @returns This emitter for chaining
62
+ */
63
+ off(event, listener) {
64
+ return super.off(event, listener);
65
+ }
66
+ /**
67
+ * Emit an event with type-safe arguments.
68
+ *
69
+ * @param event - Event name
70
+ * @param args - Event arguments (type-checked against MindEventMap)
71
+ * @returns True if the event had listeners, false otherwise
72
+ */
73
+ emit(event, ...args) {
74
+ return super.emit(event, ...args);
75
+ }
76
+ /**
77
+ * Add a listener to the beginning of the listeners array.
78
+ *
79
+ * @param event - Event name
80
+ * @param listener - Event handler function
81
+ * @returns This emitter for chaining
82
+ */
83
+ prependListener(event, listener) {
84
+ return super.prependListener(event, listener);
85
+ }
86
+ /**
87
+ * Add a one-time listener to the beginning of the listeners array.
88
+ *
89
+ * @param event - Event name
90
+ * @param listener - Event handler function
91
+ * @returns This emitter for chaining
92
+ */
93
+ prependOnceListener(event, listener) {
94
+ return super.prependOnceListener(event, listener);
95
+ }
96
+ /**
97
+ * Remove all listeners for the specified event, or all events if none specified.
98
+ *
99
+ * @param event - Optional event name
100
+ * @returns This emitter for chaining
101
+ */
102
+ removeAllListeners(event) {
103
+ return super.removeAllListeners(event);
104
+ }
105
+ /**
106
+ * Get the number of listeners for the specified event.
107
+ *
108
+ * @param event - Event name
109
+ * @returns Number of listeners
110
+ */
111
+ listenerCount(event) {
112
+ return super.listenerCount(event);
113
+ }
114
+ }
115
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8D3C,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD;;;;;;OAMG;IACH,EAAE,CACA,KAAQ,EACR,QAA4C;QAE5C,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAwC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CACF,KAAQ,EACR,QAA4C;QAE5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAwC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CACD,KAAQ,EACR,QAA4C;QAE5C,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAwC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAA0B,KAAQ,EAAE,GAAG,IAAqB;QAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CACb,KAAQ,EACR,QAA4C;QAE5C,OAAO,KAAK,CAAC,eAAe,CAC1B,KAAK,EACL,QAAwC,CACzC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CACjB,KAAQ,EACR,QAA4C;QAE5C,OAAO,KAAK,CAAC,mBAAmB,CAC9B,KAAK,EACL,QAAwC,CACzC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,KAAqB;QACtC,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAoB;QAChC,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Claude Code hook exports.
3
+ * @module hooks
4
+ */
5
+ export { registerInjectContextCommand } from "./inject-context.js";
6
+ export { registerProcessSessionCommand } from "./process-session.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Claude Code hook exports.
3
+ * @module hooks
4
+ */
5
+ export { registerInjectContextCommand } from "./inject-context.js";
6
+ export { registerProcessSessionCommand } from "./process-session.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Session start hook - inject context into Claude Code session.
3
+ * @module hooks/inject-context
4
+ */
5
+ import type { CAC } from "cac";
6
+ /**
7
+ * Register the inject-context hook command.
8
+ *
9
+ * This command is called by Claude Code at session start.
10
+ * It outputs context to stdout for injection into the session.
11
+ *
12
+ * IMPORTANT: This command must:
13
+ * - Execute quickly (<500ms budget)
14
+ * - Output context to stdout
15
+ * - NEVER fail (always exit 0)
16
+ */
17
+ export declare function registerInjectContextCommand(cli: CAC): void;
18
+ //# sourceMappingURL=inject-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-context.d.ts","sourceRoot":"","sources":["../../src/hooks/inject-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA+B/B;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAkC3D"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Session start hook - inject context into Claude Code session.
3
+ * @module hooks/inject-context
4
+ */
5
+ import { Mind } from "../mind.js";
6
+ /** Default initialization timeout in milliseconds */
7
+ const DEFAULT_TIMEOUT = 3000;
8
+ /**
9
+ * Initialize Mind with a timeout to ensure fast execution.
10
+ */
11
+ async function initWithTimeout(projectPath, timeout) {
12
+ const mind = new Mind({ projectPath });
13
+ const timeoutPromise = new Promise((_, reject) => {
14
+ setTimeout(() => reject(new Error("Mind initialization timed out")), timeout);
15
+ });
16
+ await Promise.race([mind.init(), timeoutPromise]);
17
+ return mind;
18
+ }
19
+ /**
20
+ * Register the inject-context hook command.
21
+ *
22
+ * This command is called by Claude Code at session start.
23
+ * It outputs context to stdout for injection into the session.
24
+ *
25
+ * IMPORTANT: This command must:
26
+ * - Execute quickly (<500ms budget)
27
+ * - Output context to stdout
28
+ * - NEVER fail (always exit 0)
29
+ */
30
+ export function registerInjectContextCommand(cli) {
31
+ cli
32
+ .command("inject-context", "Inject context at session start (hook)")
33
+ .option("--project <path>", "Project directory (default: current directory)")
34
+ .option("--timeout <ms>", "Initialization timeout in ms (default: 3000)")
35
+ .action(async (options) => {
36
+ const projectPath = options.project ?? process.cwd();
37
+ const timeout = options.timeout ?? DEFAULT_TIMEOUT;
38
+ try {
39
+ // Initialize Mind with timeout
40
+ const mind = await initWithTimeout(projectPath, timeout);
41
+ // Get session context
42
+ const context = await mind.onSessionStart();
43
+ // Output context to stdout
44
+ if (context.trim().length > 0) {
45
+ console.log(context);
46
+ }
47
+ process.exit(0);
48
+ }
49
+ catch (error) {
50
+ // Log error to stderr but exit successfully
51
+ console.error(`inject-context warning: ${error instanceof Error ? error.message : error}`);
52
+ // Output empty string (session continues without context)
53
+ process.exit(0);
54
+ }
55
+ });
56
+ }
57
+ //# sourceMappingURL=inject-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-context.js","sourceRoot":"","sources":["../../src/hooks/inject-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOlC,qDAAqD;AACrD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,WAAmB,EACnB,OAAe;IAEf,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACtD,UAAU,CACR,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,EACxD,OAAO,CACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,GAAQ;IACnD,GAAG;SACA,OAAO,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SACnE,MAAM,CACL,kBAAkB,EAClB,gDAAgD,CACjD;SACA,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;QAEnD,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAEzD,sBAAsB;YACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5C,2BAA2B;YAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC5C,OAAO,CAAC,KAAK,CACX,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAC5E,CAAC;YACF,0DAA0D;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Session end hook - process transcript and extract memories.
3
+ * @module hooks/process-session
4
+ */
5
+ import type { CAC } from "cac";
6
+ /**
7
+ * Register the process-session hook command.
8
+ *
9
+ * This command is called by Claude Code at session end.
10
+ * It processes the session transcript and extracts memories.
11
+ *
12
+ * IMPORTANT: This command must:
13
+ * - Accept transcript from file or stdin
14
+ * - Log to stderr only
15
+ * - NEVER fail (always exit 0)
16
+ */
17
+ export declare function registerProcessSessionCommand(cli: CAC): void;
18
+ //# sourceMappingURL=process-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-session.d.ts","sourceRoot":"","sources":["../../src/hooks/process-session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA8D/B;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAyD5D"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Session end hook - process transcript and extract memories.
3
+ * @module hooks/process-session
4
+ */
5
+ import { readFile } from "node:fs/promises";
6
+ import { createInterface } from "node:readline";
7
+ import { Mind } from "../mind.js";
8
+ /**
9
+ * Read transcript from file or stdin.
10
+ */
11
+ async function readTranscript(filePath) {
12
+ // If file path provided, read from file
13
+ if (filePath) {
14
+ try {
15
+ return await readFile(filePath, "utf-8");
16
+ }
17
+ catch (error) {
18
+ console.error(`Warning: Could not read transcript file: ${error instanceof Error ? error.message : error}`);
19
+ return null;
20
+ }
21
+ }
22
+ // Otherwise, try to read from stdin if it's not a TTY
23
+ if (process.stdin.isTTY) {
24
+ return null;
25
+ }
26
+ return new Promise((resolve) => {
27
+ const chunks = [];
28
+ const rl = createInterface({
29
+ input: process.stdin,
30
+ terminal: false,
31
+ });
32
+ rl.on("line", (line) => {
33
+ chunks.push(line);
34
+ });
35
+ rl.on("close", () => {
36
+ resolve(chunks.join("\n"));
37
+ });
38
+ // Timeout after 5 seconds if no input
39
+ setTimeout(() => {
40
+ rl.close();
41
+ resolve(chunks.join("\n"));
42
+ }, 5000);
43
+ });
44
+ }
45
+ /**
46
+ * Register the process-session hook command.
47
+ *
48
+ * This command is called by Claude Code at session end.
49
+ * It processes the session transcript and extracts memories.
50
+ *
51
+ * IMPORTANT: This command must:
52
+ * - Accept transcript from file or stdin
53
+ * - Log to stderr only
54
+ * - NEVER fail (always exit 0)
55
+ */
56
+ export function registerProcessSessionCommand(cli) {
57
+ cli
58
+ .command("process-session", "Process session transcript (hook)")
59
+ .option("--project <path>", "Project directory (default: current directory)")
60
+ .option("--transcript <path>", "Path to transcript file")
61
+ .option("--json", "Output result as JSON")
62
+ .action(async (options) => {
63
+ const projectPath = options.project ?? process.cwd();
64
+ const result = {
65
+ processed: false,
66
+ transcriptLength: 0,
67
+ opinionsFormed: 0,
68
+ };
69
+ try {
70
+ // Read transcript
71
+ const transcript = await readTranscript(options.transcript);
72
+ if (!transcript || transcript.trim().length === 0) {
73
+ result.error = "No transcript provided";
74
+ outputResult(result, options.json);
75
+ process.exit(0);
76
+ return;
77
+ }
78
+ result.transcriptLength = transcript.length;
79
+ // Initialize Mind
80
+ const mind = new Mind({ projectPath });
81
+ await mind.init();
82
+ if (mind.isDegraded) {
83
+ result.error = "Hindsight unavailable (degraded mode)";
84
+ outputResult(result, options.json);
85
+ process.exit(0);
86
+ return;
87
+ }
88
+ // Process session end
89
+ const reflectResult = await mind.onSessionEnd(transcript);
90
+ result.processed = true;
91
+ result.opinionsFormed = reflectResult?.opinions.length ?? 0;
92
+ outputResult(result, options.json);
93
+ process.exit(0);
94
+ }
95
+ catch (error) {
96
+ result.error = error instanceof Error ? error.message : String(error);
97
+ outputResult(result, options.json);
98
+ // Always exit 0 to not break Claude Code
99
+ process.exit(0);
100
+ }
101
+ });
102
+ }
103
+ /**
104
+ * Output result to stderr (or stdout for JSON mode).
105
+ */
106
+ function outputResult(result, json) {
107
+ if (json) {
108
+ console.log(JSON.stringify(result, null, 2));
109
+ }
110
+ else {
111
+ if (result.error) {
112
+ console.error(`process-session: ${result.error}`);
113
+ }
114
+ else if (result.processed) {
115
+ console.error(`process-session: Processed ${result.transcriptLength} chars, formed ${result.opinionsFormed} opinions`);
116
+ }
117
+ }
118
+ }
119
+ //# sourceMappingURL=process-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-session.js","sourceRoot":"","sources":["../../src/hooks/process-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * claude-cognitive - Memory integration layer for Claude Code with Hindsight.
3
+ *
4
+ * LLM thinks. Hindsight remembers. Together = mind.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { HindsightClient, loadConfig } from 'claude-cognitive';
9
+ *
10
+ * // Load configuration from .claudemindrc or defaults
11
+ * const config = await loadConfig();
12
+ *
13
+ * // Create client
14
+ * const client = new HindsightClient({
15
+ * host: config.hindsight.host,
16
+ * port: config.hindsight.port,
17
+ * });
18
+ *
19
+ * // Check health
20
+ * const health = await client.health();
21
+ * if (health.healthy) {
22
+ * // Store a memory
23
+ * await client.retain('my-project', 'Fixed the auth bug');
24
+ *
25
+ * // Search memories
26
+ * const memories = await client.recall('my-project', 'authentication');
27
+ * }
28
+ * ```
29
+ *
30
+ * @packageDocumentation
31
+ */
32
+ export { HindsightClient } from "./client.js";
33
+ export { Mind } from "./mind.js";
34
+ export { TypedEventEmitter } from "./events.js";
35
+ export type { MindEventMap, MindEventName, Observation } from "./events.js";
36
+ export { SemanticMemory, DEFAULT_TEMPLATE } from "./semantic.js";
37
+ export type { SemanticMemoryOptions, ParseResult } from "./semantic.js";
38
+ export { PromotionManager, DEFAULT_PROMOTION_THRESHOLD, opinionToObservation, shouldPromote, } from "./promotion.js";
39
+ export type { PromotionOptions, PromotionResult } from "./promotion.js";
40
+ export { learn } from "./learn/index.js";
41
+ export { BUILT_IN_TEMPLATES, getBuiltInTemplate, getAllBuiltInTemplates, isBuiltInAgent, } from "./agents/index.js";
42
+ export { loadCustomAgents, parseAgentMarkdown } from "./agents/index.js";
43
+ export { getAgentContext, formatAgentPrompt } from "./agents/index.js";
44
+ export { loadConfig, getDefaultConfig } from "./config.js";
45
+ export { HindsightError } from "./errors.js";
46
+ export { withRetry, createRetryable } from "./retry.js";
47
+ export type { RetryOptions } from "./retry.js";
48
+ export type { HindsightClientOptions, TimeoutConfig, ClaudeMindConfig, } from "./types.js";
49
+ export type { Disposition, TraitValue } from "./types.js";
50
+ export type { BankOptions, Bank } from "./types.js";
51
+ export type { Memory, FactType, Entity, EntityType, CoOccurrence, } from "./types.js";
52
+ export type { RecallOptions, RecallBudget } from "./types.js";
53
+ export type { ReflectResult, Opinion } from "./types.js";
54
+ export type { HealthStatus } from "./types.js";
55
+ export { HindsightErrorCode } from "./types.js";
56
+ export type { HindsightErrorCode as HindsightErrorCodeType } from "./types.js";
57
+ export type { MindOptions } from "./types.js";
58
+ export type { LearnOptions, LearnResult, LearnDepth, ExtractedFact } from "./types.js";
59
+ export type { AgentTemplate, AgentContext, BuiltInAgentType, GetAgentContextOptions, } from "./agents/index.js";
60
+ export { ClaudeMindMcpServer, createMcpServer } from "./mcp/index.js";
61
+ export { TOOL_DEFINITIONS } from "./mcp/index.js";
62
+ export type { McpServerOptions, McpTransportType, HttpTransportConfig, ToolResult, } from "./mcp/index.js";
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGxE,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1D,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGpD,YAAY,EACV,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG9D,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGzD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAG/E,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGvF,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,59 @@
1
+ /**
2
+ * claude-cognitive - Memory integration layer for Claude Code with Hindsight.
3
+ *
4
+ * LLM thinks. Hindsight remembers. Together = mind.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { HindsightClient, loadConfig } from 'claude-cognitive';
9
+ *
10
+ * // Load configuration from .claudemindrc or defaults
11
+ * const config = await loadConfig();
12
+ *
13
+ * // Create client
14
+ * const client = new HindsightClient({
15
+ * host: config.hindsight.host,
16
+ * port: config.hindsight.port,
17
+ * });
18
+ *
19
+ * // Check health
20
+ * const health = await client.health();
21
+ * if (health.healthy) {
22
+ * // Store a memory
23
+ * await client.retain('my-project', 'Fixed the auth bug');
24
+ *
25
+ * // Search memories
26
+ * const memories = await client.recall('my-project', 'authentication');
27
+ * }
28
+ * ```
29
+ *
30
+ * @packageDocumentation
31
+ */
32
+ // Main client
33
+ export { HindsightClient } from "./client.js";
34
+ // Mind orchestrator
35
+ export { Mind } from "./mind.js";
36
+ // Event system
37
+ export { TypedEventEmitter } from "./events.js";
38
+ // Semantic memory
39
+ export { SemanticMemory, DEFAULT_TEMPLATE } from "./semantic.js";
40
+ // Promotion
41
+ export { PromotionManager, DEFAULT_PROMOTION_THRESHOLD, opinionToObservation, shouldPromote, } from "./promotion.js";
42
+ // Learn operation
43
+ export { learn } from "./learn/index.js";
44
+ // Agent templates
45
+ export { BUILT_IN_TEMPLATES, getBuiltInTemplate, getAllBuiltInTemplates, isBuiltInAgent, } from "./agents/index.js";
46
+ export { loadCustomAgents, parseAgentMarkdown } from "./agents/index.js";
47
+ export { getAgentContext, formatAgentPrompt } from "./agents/index.js";
48
+ // Configuration
49
+ export { loadConfig, getDefaultConfig } from "./config.js";
50
+ // Error handling
51
+ export { HindsightError } from "./errors.js";
52
+ // Retry utilities
53
+ export { withRetry, createRetryable } from "./retry.js";
54
+ // Types - Error codes
55
+ export { HindsightErrorCode } from "./types.js";
56
+ // MCP Server
57
+ export { ClaudeMindMcpServer, createMcpServer } from "./mcp/index.js";
58
+ export { TOOL_DEFINITIONS } from "./mcp/index.js";
59
+ //# sourceMappingURL=index.js.map