@codebolt/agent 1.1.0 → 2.2.2

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 +157 -66
  2. package/dist/builderpattern/agent.d.ts +86 -0
  3. package/dist/builderpattern/agent.js +324 -0
  4. package/dist/builderpattern/followupquestionbuilder.d.ts +75 -0
  5. package/dist/builderpattern/followupquestionbuilder.js +197 -0
  6. package/dist/builderpattern/index.d.ts +14 -0
  7. package/dist/builderpattern/index.js +23 -0
  8. package/dist/builderpattern/llmoutputhandler.d.ts +102 -0
  9. package/dist/builderpattern/llmoutputhandler.js +452 -0
  10. package/dist/builderpattern/promptbuilder.d.ts +382 -0
  11. package/dist/builderpattern/promptbuilder.js +805 -0
  12. package/dist/builderpattern/systemprompt.d.ts +20 -0
  13. package/dist/builderpattern/systemprompt.js +48 -0
  14. package/dist/builderpattern/taskInstruction.d.ts +37 -0
  15. package/dist/builderpattern/taskInstruction.js +57 -0
  16. package/dist/builderpattern/usermessage.d.ts +70 -0
  17. package/dist/builderpattern/usermessage.js +123 -0
  18. package/dist/composablepattern/agent.d.ts +169 -0
  19. package/dist/composablepattern/agent.js +598 -0
  20. package/dist/composablepattern/codebolt-storage.d.ts +67 -0
  21. package/dist/composablepattern/codebolt-storage.js +320 -0
  22. package/dist/composablepattern/document.d.ts +149 -0
  23. package/dist/composablepattern/document.js +405 -0
  24. package/dist/composablepattern/examples/codebolt-integration-example.d.ts +12 -0
  25. package/dist/composablepattern/examples/codebolt-integration-example.js +218 -0
  26. package/dist/composablepattern/examples/codebolt-storage-example.d.ts +40 -0
  27. package/dist/composablepattern/examples/codebolt-storage-example.js +223 -0
  28. package/dist/composablepattern/examples/custom-steps-example.d.ts +20 -0
  29. package/dist/composablepattern/examples/custom-steps-example.js +455 -0
  30. package/dist/composablepattern/examples/document-agent.d.ts +17 -0
  31. package/dist/composablepattern/examples/document-agent.js +107 -0
  32. package/dist/composablepattern/examples/simple-codebolt-integration.d.ts +8 -0
  33. package/dist/composablepattern/examples/simple-codebolt-integration.js +164 -0
  34. package/dist/composablepattern/examples/weather-agent.d.ts +18 -0
  35. package/dist/composablepattern/examples/weather-agent.js +86 -0
  36. package/dist/composablepattern/examples/workflow-example.d.ts +12 -0
  37. package/dist/composablepattern/examples/workflow-example.js +463 -0
  38. package/dist/composablepattern/index.d.ts +63 -0
  39. package/dist/composablepattern/index.js +115 -0
  40. package/dist/composablepattern/memory.d.ts +89 -0
  41. package/dist/composablepattern/memory.js +141 -0
  42. package/dist/composablepattern/tool.d.ts +84 -0
  43. package/dist/composablepattern/tool.js +260 -0
  44. package/dist/composablepattern/types.d.ts +194 -0
  45. package/dist/composablepattern/types.js +6 -0
  46. package/dist/composablepattern/user-context.d.ts +214 -0
  47. package/dist/composablepattern/user-context.js +275 -0
  48. package/dist/composablepattern/workflow.d.ts +388 -0
  49. package/dist/composablepattern/workflow.js +562 -0
  50. package/dist/processor/agent/agentStep.d.ts +49 -0
  51. package/dist/processor/agent/agentStep.js +241 -0
  52. package/dist/processor/agent/toolExecutor.d.ts +19 -0
  53. package/dist/processor/agent/toolExecutor.js +90 -0
  54. package/dist/processor/index.d.ts +7 -0
  55. package/dist/processor/index.js +36 -0
  56. package/dist/processor/messageModifiers/baseMessageModifier.d.ts +20 -0
  57. package/dist/processor/messageModifiers/baseMessageModifier.js +55 -0
  58. package/dist/processor/processors/baseProcessor.d.ts +14 -0
  59. package/dist/processor/processors/baseProcessor.js +29 -0
  60. package/dist/processor/tools/baseTool.d.ts +10 -0
  61. package/dist/processor/tools/baseTool.js +20 -0
  62. package/dist/processor/tools/toolList.d.ts +9 -0
  63. package/dist/processor/tools/toolList.js +22 -0
  64. package/dist/processor/types/interfaces.d.ts +94 -0
  65. package/dist/processor/types/interfaces.js +2 -0
  66. package/dist/processor-pieces/base/baseMessageModifier.d.ts +12 -0
  67. package/dist/processor-pieces/base/baseMessageModifier.js +15 -0
  68. package/dist/processor-pieces/base/basePostInferenceProcessor.d.ts +13 -0
  69. package/dist/processor-pieces/base/basePostInferenceProcessor.js +18 -0
  70. package/dist/processor-pieces/base/basePostToolCallProcessor.d.ts +15 -0
  71. package/dist/processor-pieces/base/basePostToolCallProcessor.js +25 -0
  72. package/dist/processor-pieces/base/basePreInferenceProcessor.d.ts +12 -0
  73. package/dist/processor-pieces/base/basePreInferenceProcessor.js +17 -0
  74. package/dist/processor-pieces/base/basePreToolCallProcessor.d.ts +18 -0
  75. package/dist/processor-pieces/base/basePreToolCallProcessor.js +66 -0
  76. package/dist/processor-pieces/base/index.d.ts +9 -0
  77. package/dist/processor-pieces/base/index.js +18 -0
  78. package/dist/processor-pieces/index.d.ts +1 -0
  79. package/dist/processor-pieces/index.js +59 -0
  80. package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.d.ts +22 -0
  81. package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +144 -0
  82. package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.d.ts +13 -0
  83. package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.js +68 -0
  84. package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.d.ts +25 -0
  85. package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.js +453 -0
  86. package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.d.ts +15 -0
  87. package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +75 -0
  88. package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +11 -0
  89. package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +46 -0
  90. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.d.ts +18 -0
  91. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.js +104 -0
  92. package/dist/processor-pieces/messageModifiers/chatRecordingModifier.d.ts +23 -0
  93. package/dist/processor-pieces/messageModifiers/chatRecordingModifier.js +173 -0
  94. package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.d.ts +14 -0
  95. package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.js +130 -0
  96. package/dist/processor-pieces/messageModifiers/directoryContextModifier.d.ts +36 -0
  97. package/dist/processor-pieces/messageModifiers/directoryContextModifier.js +418 -0
  98. package/dist/processor-pieces/messageModifiers/environmentContextModifier.d.ts +26 -0
  99. package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +260 -0
  100. package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +12 -0
  101. package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +60 -0
  102. package/dist/processor-pieces/messageModifiers/ideContextModifier.d.ts +34 -0
  103. package/dist/processor-pieces/messageModifiers/ideContextModifier.js +157 -0
  104. package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.d.ts +18 -0
  105. package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +222 -0
  106. package/dist/processor-pieces/messageModifiers/index.d.ts +11 -0
  107. package/dist/processor-pieces/messageModifiers/index.js +26 -0
  108. package/dist/processor-pieces/messageModifiers/memoryImportModifier.d.ts +15 -0
  109. package/dist/processor-pieces/messageModifiers/memoryImportModifier.js +129 -0
  110. package/dist/processor-pieces/messageModifiers/toolInjectionModifier.d.ts +20 -0
  111. package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +152 -0
  112. package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +22 -0
  113. package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +194 -0
  114. package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.d.ts +29 -0
  115. package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.js +174 -0
  116. package/dist/processor-pieces/postToolCallProcessors/index.d.ts +1 -0
  117. package/dist/processor-pieces/postToolCallProcessors/index.js +2 -0
  118. package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.d.ts +25 -0
  119. package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.js +225 -0
  120. package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.d.ts +35 -0
  121. package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +255 -0
  122. package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -0
  123. package/dist/processor-pieces/preInferenceProcessors/index.js +2 -0
  124. package/dist/processor-pieces/pretoolCallProcessors/index.d.ts +1 -0
  125. package/dist/processor-pieces/pretoolCallProcessors/index.js +2 -0
  126. package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.d.ts +41 -0
  127. package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.js +197 -0
  128. package/dist/processor-pieces/processors/chatCompressionProcessor.d.ts +26 -0
  129. package/dist/processor-pieces/processors/chatCompressionProcessor.js +90 -0
  130. package/dist/processor-pieces/processors/chatRecordingProcessor.d.ts +81 -0
  131. package/dist/processor-pieces/processors/chatRecordingProcessor.js +329 -0
  132. package/dist/processor-pieces/processors/contextManagementProcessor.d.ts +40 -0
  133. package/dist/processor-pieces/processors/contextManagementProcessor.js +305 -0
  134. package/dist/processor-pieces/processors/loopDetectionProcessor.d.ts +30 -0
  135. package/dist/processor-pieces/processors/loopDetectionProcessor.js +137 -0
  136. package/dist/processor-pieces/processors/responseValidationProcessor.d.ts +30 -0
  137. package/dist/processor-pieces/processors/responseValidationProcessor.js +228 -0
  138. package/dist/processor-pieces/processors/telemetryProcessor.d.ts +99 -0
  139. package/dist/processor-pieces/processors/telemetryProcessor.js +311 -0
  140. package/dist/processor-pieces/processors/tokenManagementProcessor.d.ts +37 -0
  141. package/dist/processor-pieces/processors/tokenManagementProcessor.js +178 -0
  142. package/dist/processor-pieces/processors/toolExecutionProcessor.d.ts +43 -0
  143. package/dist/processor-pieces/processors/toolExecutionProcessor.js +207 -0
  144. package/dist/processor-pieces/tools/fileTools.d.ts +26 -0
  145. package/dist/processor-pieces/tools/fileTools.js +162 -0
  146. package/dist/processor-pieces/utils/messageModifierHelper.d.ts +4 -0
  147. package/dist/processor-pieces/utils/messageModifierHelper.js +58 -0
  148. package/dist/types/commonTypes.d.ts +4 -0
  149. package/dist/types/processorTypes.d.ts +67 -0
  150. package/dist/types/processorTypes.js +58 -0
  151. package/dist/unified/agent/agent.d.ts +17 -0
  152. package/dist/unified/agent/agent.js +79 -0
  153. package/dist/unified/agent/team.d.ts +2 -0
  154. package/dist/unified/agent/team.js +6 -0
  155. package/dist/unified/agent/tools.d.ts +44 -0
  156. package/dist/unified/agent/tools.js +487 -0
  157. package/dist/unified/agent/workflow.d.ts +24 -0
  158. package/dist/unified/agent/workflow.js +275 -0
  159. package/dist/unified/agent/workflowControls.d.ts +11 -0
  160. package/dist/unified/agent/workflowControls.js +20 -0
  161. package/dist/unified/agent/workflowSteps.d.ts +63 -0
  162. package/dist/unified/agent/workflowSteps.js +284 -0
  163. package/dist/unified/base/agentStep.d.ts +32 -0
  164. package/dist/unified/base/agentStep.js +96 -0
  165. package/dist/unified/base/create/createInitialPromptGenerators.d.ts +5 -0
  166. package/dist/unified/base/create/createInitialPromptGenerators.js +17 -0
  167. package/dist/unified/base/index.d.ts +5 -0
  168. package/dist/unified/base/index.js +13 -0
  169. package/dist/unified/base/initialPromptGenerator.d.ts +48 -0
  170. package/dist/unified/base/initialPromptGenerator.js +118 -0
  171. package/dist/unified/base/responseExecutor.d.ts +36 -0
  172. package/dist/unified/base/responseExecutor.js +283 -0
  173. package/dist/unified/index.d.ts +18 -0
  174. package/dist/unified/index.js +42 -0
  175. package/dist/unified/team/team.d.ts +1 -0
  176. package/dist/unified/team/team.js +2 -0
  177. package/dist/unified/types/libTypes.d.ts +378 -0
  178. package/dist/unified/types/libTypes.js +6 -0
  179. package/dist/unified/types/types.d.ts +212 -0
  180. package/dist/unified/types/types.js +43 -0
  181. package/dist/unified/utils/utils.d.ts +40 -0
  182. package/dist/unified/utils/utils.js +219 -0
  183. package/package.json +29 -7
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview CodeBolt Backend Storage Provider for Composable Agent Pattern
4
+ * @description Uses CodeBolt's state and memory functions instead of SQLite for storage
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.CodeBoltProjectStore = exports.CodeBoltMemoryStore = exports.CodeBoltAgentStore = void 0;
11
+ exports.createCodeBoltStore = createCodeBoltStore;
12
+ const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
13
+ /**
14
+ * Storage provider that uses CodeBolt's agent state backend
15
+ * Data is persisted in the CodeBolt application's agent state
16
+ */
17
+ class CodeBoltAgentStore {
18
+ constructor(prefix = 'composable_agent') {
19
+ this.prefix = prefix;
20
+ }
21
+ getFullKey(key) {
22
+ return `${this.prefix}_${key}`;
23
+ }
24
+ async get(key) {
25
+ try {
26
+ const fullKey = this.getFullKey(key);
27
+ const response = await codeboltjs_1.default.cbstate.getAgentState();
28
+ if (response.success && response.data && response.data[fullKey]) {
29
+ const value = response.data[fullKey];
30
+ try {
31
+ return JSON.parse(value);
32
+ }
33
+ catch (error) {
34
+ return value;
35
+ }
36
+ }
37
+ return undefined;
38
+ }
39
+ catch (error) {
40
+ console.error('CodeBoltAgentStore.get error:', error);
41
+ return undefined;
42
+ }
43
+ }
44
+ async set(key, value) {
45
+ try {
46
+ const fullKey = this.getFullKey(key);
47
+ const serializedValue = typeof value === 'string'
48
+ ? value
49
+ : JSON.stringify(value);
50
+ await codeboltjs_1.default.cbstate.addToAgentState(fullKey, serializedValue);
51
+ }
52
+ catch (error) {
53
+ console.error('CodeBoltAgentStore.set error:', error);
54
+ throw error;
55
+ }
56
+ }
57
+ async delete(key) {
58
+ try {
59
+ const fullKey = this.getFullKey(key);
60
+ // CodeBolt agent state doesn't have direct delete, so we set to null
61
+ await codeboltjs_1.default.cbstate.addToAgentState(fullKey, 'null');
62
+ }
63
+ catch (error) {
64
+ console.error('CodeBoltAgentStore.delete error:', error);
65
+ throw error;
66
+ }
67
+ }
68
+ async keys() {
69
+ try {
70
+ const response = await codeboltjs_1.default.cbstate.getAgentState();
71
+ if (response.success && response.data) {
72
+ const allKeys = Object.keys(response.data);
73
+ const prefixedKeys = allKeys.filter(key => key.startsWith(`${this.prefix}_`));
74
+ // Remove prefix and filter out null values
75
+ const result = [];
76
+ for (const prefixedKey of prefixedKeys) {
77
+ const value = response.data[prefixedKey];
78
+ if (value !== 'null') {
79
+ result.push(prefixedKey.replace(`${this.prefix}_`, ''));
80
+ }
81
+ }
82
+ return result;
83
+ }
84
+ return [];
85
+ }
86
+ catch (error) {
87
+ console.error('CodeBoltAgentStore.keys error:', error);
88
+ return [];
89
+ }
90
+ }
91
+ async clear() {
92
+ try {
93
+ const keys = await this.keys();
94
+ // Delete all keys by setting them to null
95
+ for (const key of keys) {
96
+ await this.delete(key);
97
+ }
98
+ }
99
+ catch (error) {
100
+ console.error('CodeBoltAgentStore.clear error:', error);
101
+ throw error;
102
+ }
103
+ }
104
+ }
105
+ exports.CodeBoltAgentStore = CodeBoltAgentStore;
106
+ /**
107
+ * Storage provider that uses CodeBolt's in-memory database (dbmemory)
108
+ * Data is persisted in the CodeBolt application's memory database
109
+ */
110
+ class CodeBoltMemoryStore {
111
+ constructor(prefix = 'composable_agent') {
112
+ this.prefix = prefix;
113
+ }
114
+ getFullKey(key) {
115
+ return `${this.prefix}_${key}`;
116
+ }
117
+ async get(key) {
118
+ try {
119
+ const fullKey = this.getFullKey(key);
120
+ const response = await codeboltjs_1.default.dbmemory.getKnowledge(fullKey);
121
+ if (response.success && response.data !== undefined) {
122
+ return response.data;
123
+ }
124
+ return undefined;
125
+ }
126
+ catch (error) {
127
+ console.error('CodeBoltMemoryStore.get error:', error);
128
+ return undefined;
129
+ }
130
+ }
131
+ async set(key, value) {
132
+ try {
133
+ const fullKey = this.getFullKey(key);
134
+ await codeboltjs_1.default.dbmemory.addKnowledge(fullKey, value);
135
+ }
136
+ catch (error) {
137
+ console.error('CodeBoltMemoryStore.set error:', error);
138
+ throw error;
139
+ }
140
+ }
141
+ async delete(key) {
142
+ try {
143
+ const fullKey = this.getFullKey(key);
144
+ // CodeBolt dbmemory doesn't have direct delete, so we set to null
145
+ await codeboltjs_1.default.dbmemory.addKnowledge(fullKey, null);
146
+ }
147
+ catch (error) {
148
+ console.error('CodeBoltMemoryStore.delete error:', error);
149
+ throw error;
150
+ }
151
+ }
152
+ async keys() {
153
+ try {
154
+ // CodeBolt dbmemory doesn't have a keys() method
155
+ // We'll need to maintain a key index
156
+ const indexKey = `${this.prefix}_key_index`;
157
+ const response = await codeboltjs_1.default.dbmemory.getKnowledge(indexKey);
158
+ if (response.success && Array.isArray(response.data)) {
159
+ // Filter out deleted keys (those with null values)
160
+ const validKeys = [];
161
+ for (const key of response.data) {
162
+ const value = await this.get(key);
163
+ if (value !== null) {
164
+ validKeys.push(key);
165
+ }
166
+ }
167
+ return validKeys;
168
+ }
169
+ return [];
170
+ }
171
+ catch (error) {
172
+ console.error('CodeBoltMemoryStore.keys error:', error);
173
+ return [];
174
+ }
175
+ }
176
+ async clear() {
177
+ try {
178
+ const keys = await this.keys();
179
+ // Delete all keys
180
+ for (const key of keys) {
181
+ await this.delete(key);
182
+ }
183
+ // Clear the key index
184
+ const indexKey = `${this.prefix}_key_index`;
185
+ await codeboltjs_1.default.dbmemory.addKnowledge(indexKey, []);
186
+ }
187
+ catch (error) {
188
+ console.error('CodeBoltMemoryStore.clear error:', error);
189
+ throw error;
190
+ }
191
+ }
192
+ /**
193
+ * Override set to maintain key index
194
+ */
195
+ async setWithIndex(key, value) {
196
+ try {
197
+ // Update the key index
198
+ const indexKey = `${this.prefix}_key_index`;
199
+ const response = await codeboltjs_1.default.dbmemory.getKnowledge(indexKey);
200
+ let keyIndex = [];
201
+ if (response.success && Array.isArray(response.data)) {
202
+ keyIndex = response.data;
203
+ }
204
+ if (!keyIndex.includes(key)) {
205
+ keyIndex.push(key);
206
+ await codeboltjs_1.default.dbmemory.addKnowledge(indexKey, keyIndex);
207
+ }
208
+ // Set the actual value
209
+ await this.set(key, value);
210
+ }
211
+ catch (error) {
212
+ console.error('CodeBoltMemoryStore.setWithIndex error:', error);
213
+ throw error;
214
+ }
215
+ }
216
+ }
217
+ exports.CodeBoltMemoryStore = CodeBoltMemoryStore;
218
+ /**
219
+ * Storage provider that uses CodeBolt's project state backend
220
+ * Data is persisted in the CodeBolt application's project state
221
+ */
222
+ class CodeBoltProjectStore {
223
+ constructor(prefix = 'composable_agent') {
224
+ this.prefix = prefix;
225
+ }
226
+ getFullKey(key) {
227
+ return `${this.prefix}_${key}`;
228
+ }
229
+ async get(key) {
230
+ try {
231
+ const fullKey = this.getFullKey(key);
232
+ const response = await codeboltjs_1.default.cbstate.getProjectState();
233
+ if (response.success && response.data && response.data[fullKey] !== undefined) {
234
+ return response.data[fullKey];
235
+ }
236
+ return undefined;
237
+ }
238
+ catch (error) {
239
+ console.error('CodeBoltProjectStore.get error:', error);
240
+ return undefined;
241
+ }
242
+ }
243
+ async set(key, value) {
244
+ try {
245
+ const fullKey = this.getFullKey(key);
246
+ await codeboltjs_1.default.cbstate.updateProjectState(fullKey, value);
247
+ }
248
+ catch (error) {
249
+ console.error('CodeBoltProjectStore.set error:', error);
250
+ throw error;
251
+ }
252
+ }
253
+ async delete(key) {
254
+ try {
255
+ const fullKey = this.getFullKey(key);
256
+ // Set to null to indicate deletion
257
+ await codeboltjs_1.default.cbstate.updateProjectState(fullKey, null);
258
+ }
259
+ catch (error) {
260
+ console.error('CodeBoltProjectStore.delete error:', error);
261
+ throw error;
262
+ }
263
+ }
264
+ async keys() {
265
+ try {
266
+ const response = await codeboltjs_1.default.cbstate.getProjectState();
267
+ if (response.success && response.data) {
268
+ const allKeys = Object.keys(response.data);
269
+ const prefixedKeys = allKeys.filter(key => key.startsWith(`${this.prefix}_`));
270
+ // Remove prefix and filter out null values
271
+ const result = [];
272
+ for (const prefixedKey of prefixedKeys) {
273
+ const value = response.data[prefixedKey];
274
+ if (value !== null) {
275
+ result.push(prefixedKey.replace(`${this.prefix}_`, ''));
276
+ }
277
+ }
278
+ return result;
279
+ }
280
+ return [];
281
+ }
282
+ catch (error) {
283
+ console.error('CodeBoltProjectStore.keys error:', error);
284
+ return [];
285
+ }
286
+ }
287
+ async clear() {
288
+ try {
289
+ const keys = await this.keys();
290
+ // Delete all keys by setting them to null
291
+ for (const key of keys) {
292
+ await this.delete(key);
293
+ }
294
+ }
295
+ catch (error) {
296
+ console.error('CodeBoltProjectStore.clear error:', error);
297
+ throw error;
298
+ }
299
+ }
300
+ }
301
+ exports.CodeBoltProjectStore = CodeBoltProjectStore;
302
+ /**
303
+ * Factory function to create appropriate CodeBolt storage provider
304
+ *
305
+ * @param config - Storage configuration
306
+ * @returns StorageProvider instance
307
+ */
308
+ function createCodeBoltStore(config) {
309
+ const { type, prefix = 'composable_agent' } = config;
310
+ switch (type) {
311
+ case 'agent':
312
+ return new CodeBoltAgentStore(prefix);
313
+ case 'memory':
314
+ return new CodeBoltMemoryStore(prefix);
315
+ case 'project':
316
+ return new CodeBoltProjectStore(prefix);
317
+ default:
318
+ throw new Error(`Unknown CodeBolt storage type: ${type}`);
319
+ }
320
+ }
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @fileoverview Document handling for Composable Agent Pattern
3
+ * @description Provides document processing, chunking, and embedding capabilities
4
+ */
5
+ import type { DocumentConfig, ProcessedDocument } from './types';
6
+ /**
7
+ * Document processing and management class
8
+ */
9
+ export declare class MDocument {
10
+ private content;
11
+ private type;
12
+ private metadata;
13
+ private chunks?;
14
+ private embeddings?;
15
+ constructor(content: string, type?: string, metadata?: Record<string, any>);
16
+ /**
17
+ * Create MDocument from plain text
18
+ *
19
+ * @param text - Plain text content
20
+ * @param metadata - Optional metadata
21
+ * @returns MDocument instance
22
+ */
23
+ static fromText(text: string, metadata?: Record<string, any>): MDocument;
24
+ /**
25
+ * Create MDocument from markdown
26
+ *
27
+ * @param markdown - Markdown content
28
+ * @param metadata - Optional metadata
29
+ * @returns MDocument instance
30
+ */
31
+ static fromMarkdown(markdown: string, metadata?: Record<string, any>): MDocument;
32
+ /**
33
+ * Create MDocument from JSON
34
+ *
35
+ * @param json - JSON object or string
36
+ * @param metadata - Optional metadata
37
+ * @returns MDocument instance
38
+ */
39
+ static fromJSON(json: any, metadata?: Record<string, any>): MDocument;
40
+ /**
41
+ * Create MDocument from file path
42
+ *
43
+ * @param filePath - Path to the file
44
+ * @param metadata - Optional metadata
45
+ * @returns Promise<MDocument> instance
46
+ */
47
+ static fromFile(filePath: string, metadata?: Record<string, any>): Promise<MDocument>;
48
+ /**
49
+ * Get document content
50
+ */
51
+ getContent(): string;
52
+ /**
53
+ * Get document type
54
+ */
55
+ getType(): string;
56
+ /**
57
+ * Get document metadata
58
+ */
59
+ getMetadata(): Record<string, any>;
60
+ /**
61
+ * Update document metadata
62
+ *
63
+ * @param metadata - Metadata to merge
64
+ */
65
+ updateMetadata(metadata: Record<string, any>): void;
66
+ /**
67
+ * Chunk the document into smaller pieces
68
+ *
69
+ * @param options - Chunking options
70
+ * @returns Array of text chunks
71
+ */
72
+ chunk(options?: {
73
+ size?: number;
74
+ overlap?: number;
75
+ strategy?: 'sentence' | 'paragraph' | 'fixed' | 'semantic';
76
+ }): string[];
77
+ /**
78
+ * Get existing chunks or create them if they don't exist
79
+ */
80
+ getChunks(): string[];
81
+ /**
82
+ * Set embeddings for the document or its chunks
83
+ *
84
+ * @param embeddings - Array of embedding vectors
85
+ */
86
+ setEmbeddings(embeddings: number[][]): void;
87
+ /**
88
+ * Get embeddings
89
+ */
90
+ getEmbeddings(): number[][] | undefined;
91
+ /**
92
+ * Convert to processed document format
93
+ */
94
+ toProcessedDocument(): ProcessedDocument;
95
+ /**
96
+ * Convert to plain object
97
+ */
98
+ toJSON(): DocumentConfig & {
99
+ chunks?: string[];
100
+ embeddings?: number[][];
101
+ };
102
+ /**
103
+ * Create MDocument from processed document
104
+ *
105
+ * @param processed - Processed document data
106
+ * @returns MDocument instance
107
+ */
108
+ static fromProcessedDocument(processed: ProcessedDocument): MDocument;
109
+ /**
110
+ * Extract text content based on document type
111
+ */
112
+ extractText(): string;
113
+ /**
114
+ * Count words in content
115
+ */
116
+ private countWords;
117
+ /**
118
+ * Fixed-size chunking with overlap
119
+ */
120
+ private chunkFixed;
121
+ /**
122
+ * Sentence-based chunking
123
+ */
124
+ private chunkBySentence;
125
+ /**
126
+ * Paragraph-based chunking
127
+ */
128
+ private chunkByParagraph;
129
+ /**
130
+ * Semantic chunking (basic implementation)
131
+ */
132
+ private chunkSemantic;
133
+ /**
134
+ * Extract text from markdown
135
+ */
136
+ private extractMarkdownText;
137
+ /**
138
+ * Extract text from JSON
139
+ */
140
+ private extractJSONText;
141
+ /**
142
+ * Extract text from XML
143
+ */
144
+ private extractXMLText;
145
+ /**
146
+ * Recursively extract text from object
147
+ */
148
+ private extractTextFromObject;
149
+ }