@gitsense/gscb-git-tools 0.2.0 → 0.4.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 (75) hide show
  1. package/dist/cjs/common/logger.js +97 -0
  2. package/dist/cjs/common/logger.js.map +1 -0
  3. package/dist/cjs/common/metadata-manager.js +196 -0
  4. package/dist/cjs/common/metadata-manager.js.map +1 -0
  5. package/dist/cjs/importer/chat-manager/chat-creator.js +90 -0
  6. package/dist/cjs/importer/chat-manager/chat-creator.js.map +1 -0
  7. package/dist/cjs/importer/chat-manager/chat-manager.js +179 -0
  8. package/dist/cjs/importer/chat-manager/chat-manager.js.map +1 -0
  9. package/dist/cjs/importer/chat-manager/constants.js +66 -0
  10. package/dist/cjs/importer/chat-manager/constants.js.map +1 -0
  11. package/dist/cjs/importer/chat-manager/group-manager.js +56 -0
  12. package/dist/cjs/importer/chat-manager/group-manager.js.map +1 -0
  13. package/dist/cjs/importer/chat-manager/hierarchy-manager.js +115 -0
  14. package/dist/cjs/importer/chat-manager/hierarchy-manager.js.map +1 -0
  15. package/dist/cjs/importer/chat-manager/message-manager.js +126 -0
  16. package/dist/cjs/importer/chat-manager/message-manager.js.map +1 -0
  17. package/dist/cjs/importer/constants.js +30 -0
  18. package/dist/cjs/importer/constants.js.map +1 -0
  19. package/dist/cjs/importer/core/directory-processor.js +343 -0
  20. package/dist/cjs/importer/core/directory-processor.js.map +1 -0
  21. package/dist/cjs/importer/core/error-handler.js +64 -0
  22. package/dist/cjs/importer/core/error-handler.js.map +1 -0
  23. package/dist/cjs/importer/core/import-processor.js +167 -0
  24. package/dist/cjs/importer/core/import-processor.js.map +1 -0
  25. package/dist/cjs/importer/core/importer.js +135 -0
  26. package/dist/cjs/importer/core/importer.js.map +1 -0
  27. package/dist/cjs/importer/core/utils.js +66 -0
  28. package/dist/cjs/importer/core/utils.js.map +1 -0
  29. package/dist/cjs/importer/file-processor.js +199 -0
  30. package/dist/cjs/importer/file-processor.js.map +1 -0
  31. package/dist/cjs/importer/language-utils.js +286 -0
  32. package/dist/cjs/importer/language-utils.js.map +1 -0
  33. package/dist/cjs/importer/tree-processor.js +119 -0
  34. package/dist/cjs/importer/tree-processor.js.map +1 -0
  35. package/dist/cjs/index.js +12 -0
  36. package/dist/cjs/index.js.map +1 -0
  37. package/dist/cjs/package.json +3 -0
  38. package/dist/esm/common/logger.js +95 -0
  39. package/dist/esm/common/logger.js.map +1 -0
  40. package/dist/esm/common/metadata-manager.js +194 -0
  41. package/dist/esm/common/metadata-manager.js.map +1 -0
  42. package/dist/esm/importer/chat-manager/chat-creator.js +88 -0
  43. package/dist/esm/importer/chat-manager/chat-creator.js.map +1 -0
  44. package/dist/esm/importer/chat-manager/chat-manager.js +177 -0
  45. package/dist/esm/importer/chat-manager/chat-manager.js.map +1 -0
  46. package/dist/esm/importer/chat-manager/constants.js +48 -0
  47. package/dist/esm/importer/chat-manager/constants.js.map +1 -0
  48. package/dist/esm/importer/chat-manager/group-manager.js +54 -0
  49. package/dist/esm/importer/chat-manager/group-manager.js.map +1 -0
  50. package/dist/esm/importer/chat-manager/hierarchy-manager.js +113 -0
  51. package/dist/esm/importer/chat-manager/hierarchy-manager.js.map +1 -0
  52. package/dist/esm/importer/chat-manager/message-manager.js +124 -0
  53. package/dist/esm/importer/chat-manager/message-manager.js.map +1 -0
  54. package/dist/esm/importer/constants.js +28 -0
  55. package/dist/esm/importer/constants.js.map +1 -0
  56. package/dist/esm/importer/core/directory-processor.js +337 -0
  57. package/dist/esm/importer/core/directory-processor.js.map +1 -0
  58. package/dist/esm/importer/core/error-handler.js +62 -0
  59. package/dist/esm/importer/core/error-handler.js.map +1 -0
  60. package/dist/esm/importer/core/import-processor.js +165 -0
  61. package/dist/esm/importer/core/import-processor.js.map +1 -0
  62. package/dist/esm/importer/core/importer.js +133 -0
  63. package/dist/esm/importer/core/importer.js.map +1 -0
  64. package/dist/esm/importer/core/utils.js +64 -0
  65. package/dist/esm/importer/core/utils.js.map +1 -0
  66. package/dist/esm/importer/file-processor.js +193 -0
  67. package/dist/esm/importer/file-processor.js.map +1 -0
  68. package/dist/esm/importer/language-utils.js +279 -0
  69. package/dist/esm/importer/language-utils.js.map +1 -0
  70. package/dist/esm/importer/tree-processor.js +113 -0
  71. package/dist/esm/importer/tree-processor.js.map +1 -0
  72. package/dist/esm/index.js +4 -0
  73. package/dist/esm/index.js.map +1 -0
  74. package/dist/index.d.ts +215 -0
  75. package/package.json +2 -2
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Component: Logger
5
+ * Block-UUID: 8e2a3b1c-9d4f-4a5e-8b6a-7c8d9e0f1a2b
6
+ * Parent-UUID: N/A
7
+ * Version: 1.0.0
8
+ * Purpose: Centralized logging utility for the application.
9
+ * Language: TypeScript
10
+ * Created-at: 2025-03-12T18:06:11.373Z
11
+ * Authors: OpenRouter - Gemini Flash 2.0 (v1.0.0)
12
+ */
13
+ class Logger {
14
+ verbose;
15
+ constructor(verbose = false) {
16
+ this.verbose = verbose;
17
+ }
18
+ /**
19
+ * Logs messages to the console if verbose mode is enabled.
20
+ */
21
+ log(message, details, isError = false) {
22
+ if (this.verbose || isError) {
23
+ const timestamp = new Date().toISOString();
24
+ const logLevel = isError ? 'ERROR' : 'INFO';
25
+ let fullMessage = `${timestamp} [${logLevel}] ${message}`;
26
+ if (details) {
27
+ const detailMessage = details instanceof Error ? details.message : String(details);
28
+ fullMessage += ` ${detailMessage}`;
29
+ if (details instanceof Error && details.stack) {
30
+ fullMessage += `\n${details.stack}`;
31
+ }
32
+ }
33
+ if (isError) {
34
+ console.error(fullMessage);
35
+ }
36
+ else {
37
+ console.log(fullMessage);
38
+ }
39
+ }
40
+ }
41
+ /**
42
+ * Logs a debug message.
43
+ * @param message - The message to log.
44
+ * @param details - Optional details to include in the log.
45
+ */
46
+ debug(message, details) {
47
+ if (this.verbose) {
48
+ const timestamp = new Date().toISOString();
49
+ const fullMessage = `${timestamp} [DEBUG] ${message} ${details instanceof Error ? details.message : String(details)}`;
50
+ console.log(fullMessage);
51
+ }
52
+ }
53
+ /**
54
+ * Logs an info message.
55
+ * @param message - The message to log.
56
+ * @param details - Optional details to include in the log.
57
+ */
58
+ info(message, details) {
59
+ const timestamp = new Date().toISOString();
60
+ const fullMessage = `${timestamp} [INFO] ${message} ${details instanceof Error ? details.message : String(details)}`;
61
+ console.log(fullMessage);
62
+ }
63
+ /**
64
+ * Logs a warning message.
65
+ * @param message - The message to log.
66
+ * @param details - Optional details to include in the log.
67
+ */
68
+ warn(message, details) {
69
+ const timestamp = new Date().toISOString();
70
+ const fullMessage = `${timestamp} [WARN] ${message} ${details instanceof Error ? details.message : String(details)}`;
71
+ console.warn(fullMessage);
72
+ }
73
+ /**
74
+ * Logs an error message.
75
+ * @param message - The message to log.
76
+ * @param error - Optional error object to include in the log.
77
+ */
78
+ error(message, error) {
79
+ const timestamp = new Date().toISOString();
80
+ let fullMessage = `${timestamp} [ERROR] ${message}`;
81
+ if (error) {
82
+ if (error instanceof Error) {
83
+ fullMessage += ` ${error.message}`;
84
+ if (error.stack) {
85
+ fullMessage += `\n${error.stack}`;
86
+ }
87
+ }
88
+ else {
89
+ fullMessage += ` ${String(error)}`;
90
+ }
91
+ }
92
+ console.error(fullMessage);
93
+ }
94
+ }
95
+
96
+ exports.Logger = Logger;
97
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sources":["../../../src/common/logger.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Component: Atomic Metadata Update
5
+ * Block-UUID: 2fb51bba-6caf-4ae7-b937-3b2b468435fa
6
+ * Parent-UUID: 1e2f3a4b-5c6d-7e8f-9a0b-1c2d3e4f5a6b
7
+ * Version: 2.1.0
8
+ * Purpose: Updates chat metadata atomically with transaction awareness
9
+ * Language: TypeScript
10
+ * Created-at: 2025-03-17T02:36:22.165Z
11
+ * Authors: together.ai - DeepSeek v3 (v1.0.0), together.ai - DeepSeek v3 (v1.1.0), together.ai - DeepSeek v3 (v2.0.0), Claude 3.7 Sonnet (v2.1.0)
12
+ */
13
+ class MetadataManager {
14
+ dbClient;
15
+ logger;
16
+ gitRepo;
17
+ chatManager;
18
+ constructor(dbClient, logger, gitRepo, chatManager) {
19
+ this.dbClient = dbClient;
20
+ this.logger = logger;
21
+ this.gitRepo = gitRepo;
22
+ this.chatManager = chatManager;
23
+ }
24
+ // ====================
25
+ // Core Metadata Methods
26
+ // ====================
27
+ /**
28
+ * Validates metadata before updates.
29
+ */
30
+ validateMetadata(meta) {
31
+ if (!meta.type)
32
+ throw new Error('Metadata type is required');
33
+ if (!meta.status)
34
+ throw new Error('Metadata status is required');
35
+ if (!meta.importStartedAt)
36
+ throw new Error('Import start time is required');
37
+ }
38
+ /**
39
+ * Updates chat metadata atomically.
40
+ */
41
+ async updateChatMetadata(chatId, updates) {
42
+ if (!this.chatManager)
43
+ throw new Error('Chat manager not defined. Unable to update metadata atomically.');
44
+ try {
45
+ // Get the current metadata
46
+ const chat = await this.dbClient.getChatById(chatId);
47
+ if (!chat)
48
+ throw new Error(`Chat with ID ${chatId} not found`);
49
+ // Merge updates with existing metadata
50
+ const updatedMeta = { ...chat.meta, ...updates };
51
+ this.validateMetadata(updatedMeta);
52
+ // Update chat metadata
53
+ await this.dbClient.updateChatMeta(chatId, updatedMeta);
54
+ }
55
+ catch (error) {
56
+ throw new Error(`Failed to update metadata atomically: ${error instanceof Error ? error.message : String(error)}`);
57
+ }
58
+ }
59
+ /**
60
+ * Rolls back metadata updates if an error occurs.
61
+ */
62
+ async rollbackMetadata(chatId, originalMeta) {
63
+ if (!this.chatManager)
64
+ throw new Error('Chat manager not defined. Unable to rollback metadata.');
65
+ try {
66
+ await this.dbClient.updateChatMeta(chatId, originalMeta);
67
+ const metaMessage = await this.chatManager.getMessageByChatIdAndType(chatId, 'chat-meta');
68
+ await this.dbClient.updateMessage(metaMessage.id, {
69
+ message: JSON.stringify(originalMeta, null, 2)
70
+ });
71
+ }
72
+ catch (error) {
73
+ this.logger.error(`Failed to rollback metadata for chat ${chatId}: ${error instanceof Error ? error.message : String(error)}`);
74
+ }
75
+ }
76
+ // ====================
77
+ // Import Lifecycle Methods
78
+ // ====================
79
+ /**
80
+ * Marks a chat as starting an import.
81
+ */
82
+ async markImportStarted(chatId, ref) {
83
+ const now = new Date().toISOString();
84
+ const updates = {
85
+ status: 'importing',
86
+ importStartedAt: now,
87
+ };
88
+ if (ref) {
89
+ if (!this.gitRepo)
90
+ throw new Error("No Git repo defined. Unable to resolve ref.");
91
+ const hash = await this.gitRepo.resolveRef(ref);
92
+ const commit = await this.gitRepo.getCommitInfo(hash);
93
+ updates.commit = commit;
94
+ }
95
+ await this.updateChatMetadata(chatId, updates);
96
+ }
97
+ /**
98
+ * Marks a chat as finished importing. For now, commitInfo is not used and will
99
+ * mostly be removed in future versions
100
+ */
101
+ async markImportFinished(chatId, commitInfo) {
102
+ const now = new Date().toISOString();
103
+ const updates = {
104
+ status: 'imported',
105
+ importFinishedAt: now,
106
+ };
107
+ await this.updateChatMetadata(chatId, updates);
108
+ }
109
+ /**
110
+ * Marks a chat as failed to import.
111
+ */
112
+ async markImportFailed(chatId, error) {
113
+ const now = new Date().toISOString();
114
+ const updates = {
115
+ status: 'import-failed',
116
+ importFinishedAt: now,
117
+ error: error.message
118
+ };
119
+ await this.updateChatMetadata(chatId, updates);
120
+ }
121
+ // ====================
122
+ // File and Directory Methods
123
+ // ====================
124
+ /**
125
+ * Updates metadata for a file chat.
126
+ */
127
+ async updateFileMetadata(chatId, filePath, commitInfo) {
128
+ const now = new Date().toISOString();
129
+ const updates = {
130
+ path: filePath,
131
+ commit: commitInfo,
132
+ status: 'imported',
133
+ importFinishedAt: now
134
+ };
135
+ await this.updateChatMetadata(chatId, updates);
136
+ }
137
+ /**
138
+ * Updates metadata for a directory chat.
139
+ */
140
+ async updateDirectoryMetadata(chatId, path, commitInfo) {
141
+ const now = new Date().toISOString();
142
+ const updates = {
143
+ status: 'imported',
144
+ importFinishedAt: now
145
+ };
146
+ if (commitInfo && path !== '.' && path !== '')
147
+ updates.commit = commitInfo;
148
+ await this.updateChatMetadata(chatId, updates);
149
+ }
150
+ /**
151
+ * Marks a file as deleted.
152
+ */
153
+ async markFileAsDeleted(chatId, filePath) {
154
+ const now = new Date().toISOString();
155
+ const updates = {
156
+ status: 'deleted',
157
+ deletedAt: now
158
+ };
159
+ await this.updateChatMetadata(chatId, updates);
160
+ }
161
+ /**
162
+ * Marks a directory as deleted.
163
+ */
164
+ async markDirectoryAsDeleted(chatId, dirPath) {
165
+ const now = new Date().toISOString();
166
+ const updates = {
167
+ status: 'deleted',
168
+ deletedAt: now
169
+ };
170
+ await this.updateChatMetadata(chatId, updates);
171
+ }
172
+ // ====================
173
+ // History Methods
174
+ // ====================
175
+ /**
176
+ * Adds an entry to the chat history.
177
+ */
178
+ async addHistoryEntry(chatId, entry) {
179
+ if (!this.chatManager)
180
+ throw new Error('Chat manager not defined. Unable to add history entry.');
181
+ try {
182
+ const historyMessage = await this.chatManager.getMessageByChatIdAndType(chatId, 'chat-history');
183
+ const history = JSON.parse(historyMessage.message || '[]');
184
+ history.push(entry);
185
+ await this.dbClient.updateMessage(historyMessage.id, {
186
+ message: JSON.stringify(history, null, 2)
187
+ });
188
+ }
189
+ catch (error) {
190
+ this.logger.error(`Failed to add history entry for chat ${chatId}: ${error instanceof Error ? error.message : String(error)}`);
191
+ }
192
+ }
193
+ }
194
+
195
+ exports.MetadataManager = MetadataManager;
196
+ //# sourceMappingURL=metadata-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-manager.js","sources":["../../../src/common/metadata-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ var constants = require('./constants.js');
4
+
5
+ /**
6
+ * Component: Chat Creator
7
+ * Block-UUID: 3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f
8
+ * Parent-UUID: N/A
9
+ * Version: 1.0.0
10
+ * Purpose: Handles chat creation and updates
11
+ * Language: TypeScript
12
+ * Created-at: 2025-03-15T02:11:40.075Z
13
+ * Authors: together.ai - DeepSeek v3 (v1.0.0)
14
+ */
15
+ class ChatCreator {
16
+ dbClient;
17
+ messageManager;
18
+ logger;
19
+ askGitReposPromptId = null;
20
+ constructor(dbClient, messageManager, logger) {
21
+ this.dbClient = dbClient;
22
+ this.messageManager = messageManager;
23
+ this.logger = logger;
24
+ }
25
+ /**
26
+ * Creates a new chat with the specified parameters and adds the required messages.
27
+ */
28
+ async createChat(type, name, parentId, groupId, meta, mainMessage = '', orderWeight) {
29
+ try {
30
+ // Ensure the default prompt exists
31
+ if (this.askGitReposPromptId === null)
32
+ this.askGitReposPromptId = await this.ensureAskGitReposPrompt();
33
+ const chatData = {
34
+ type,
35
+ visibility: constants.CHAT_VISIBILITY_PUBLIC,
36
+ owner: constants.CHAT_OWNER_SYSTEM,
37
+ name,
38
+ parentId,
39
+ groupId,
40
+ promptId: this.askGitReposPromptId,
41
+ mainModel: constants.DEFAULT_MODEL,
42
+ pinned: null,
43
+ protected: 0,
44
+ orderWeight,
45
+ forkedFromMsgId: null,
46
+ meta,
47
+ isDefaultName: constants.DEFAULT_IS_DEFAULT_NAME
48
+ };
49
+ const chatId = await this.dbClient.createChat(chatData);
50
+ // Create the three required messages
51
+ const systemId = await this.messageManager.createSystemMessage(chatId);
52
+ //const tinyOverviewId = await this.messageManager.createTinyOverviewMessage(chatId, systemId);
53
+ //const shortOverviewId = await this.messageManager.createShortOverviewMessage(chatId, tinyOverviewId);
54
+ //const longOverviewId = await this.messageManager.createLongOverviewMessage(chatId, shortOverviewId);
55
+ const mainId = await this.messageManager.createMainMessage(chatId, systemId, type, mainMessage);
56
+ const metaId = await this.messageManager.createChatMetaMessage(chatId, mainId);
57
+ return chatId;
58
+ }
59
+ catch (error) {
60
+ throw new Error(`Failed to create chat '${name}': ${error instanceof Error ? error.message : String(error)}`);
61
+ }
62
+ }
63
+ /**
64
+ * Ensures the default prompt exists and returns its ID.
65
+ */
66
+ async ensureAskGitReposPrompt() {
67
+ this.logger.log("Ensuring Ask Git Repos prompt exists");
68
+ try {
69
+ const value = 'Ask Git Repos';
70
+ const hash = this.dbClient.generatePromptHash(value);
71
+ const prompt = await this.dbClient.getPromptByHash(hash);
72
+ if (prompt) {
73
+ return prompt.id;
74
+ }
75
+ // Create the askGitRepos prompt
76
+ return await this.dbClient.createPrompt({
77
+ type: 'system',
78
+ name: value,
79
+ prompt: value,
80
+ meta: null
81
+ });
82
+ }
83
+ catch (error) {
84
+ throw new Error(`Failed to ensure ask Git prompt: ${error instanceof Error ? error.message : String(error)}`);
85
+ }
86
+ }
87
+ }
88
+
89
+ exports.ChatCreator = ChatCreator;
90
+ //# sourceMappingURL=chat-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-creator.js","sources":["../../../../src/importer/chat-manager/chat-creator.ts"],"sourcesContent":[null],"names":["CHAT_VISIBILITY_PUBLIC","CHAT_OWNER_SYSTEM","DEFAULT_MODEL","DEFAULT_IS_DEFAULT_NAME"],"mappings":";;;;AAAA;;;;;;;;;AASG;MAiBU,WAAW,CAAA;AAIC,IAAA,QAAA;AACA,IAAA,cAAA;AACA,IAAA,MAAA;IALb,mBAAmB,GAAkB,IAAI;AAEjD,IAAA,WAAA,CACqB,QAAwB,EACxB,cAA8B,EAC9B,MAAc,EAAA;QAFd,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAc,CAAA,cAAA,GAAd,cAAc;QACd,IAAM,CAAA,MAAA,GAAN,MAAM;;AAG3B;;AAEG;AACH,IAAA,MAAM,UAAU,CACZ,IAAc,EACd,IAAY,EACZ,QAAgB,EAChB,OAAe,EACf,IAAS,EACT,WAAsB,GAAA,EAAE,EACpB,WAAoB,EAAA;AAExB,QAAA,IAAI;;AAEA,YAAA,IAAK,IAAI,CAAC,mBAAmB,KAAK,IAAI;gBAClC,IAAI,CAAC,mBAAmB,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE;AAEnE,YAAA,MAAM,QAAQ,GAAyE;gBACnF,IAAI;AACJ,gBAAA,UAAU,EAAEA,gCAAsB;AAClC,gBAAA,KAAK,EAAEC,2BAAiB;gBACxB,IAAI;gBACJ,QAAQ;gBACR,OAAO;gBACP,QAAQ,EAAE,IAAI,CAAC,mBAAmB;AAClC,gBAAA,SAAS,EAAEC,uBAAa;AACxB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,SAAS,EAAE,CAAC;gBACZ,WAAW;AACX,gBAAA,eAAe,EAAE,IAAI;gBACrB,IAAI;AACJ,gBAAA,aAAa,EAAEC;aAClB;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;;YAGvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC;;;;AAItE,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAmB,EAAE,WAAW,CAAC;AAC9G,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;AAC9E,YAAA,OAAO,MAAM;;QACf,OAAO,KAAK,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,CAA0B,uBAAA,EAAA,IAAI,MAAM,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAE,CAAA,CAAC;;;AAIrH;;AAEG;AACH,IAAA,MAAM,uBAAuB,GAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC;AAEvD,QAAA,IAAI;YACA,MAAM,KAAK,GAAG,eAAe;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;YAExD,IAAI,MAAM,EAAE;gBACR,OAAO,MAAM,CAAC,EAAG;;;AAIrB,YAAA,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AACpC,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,IAAI,EAAE;AACT,aAAA,CAAC;;QACJ,OAAO,KAAK,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,CAAA,iCAAA,EAAoC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAE,CAAA,CAAC;;;AAGxH;;;;"}
@@ -0,0 +1,179 @@
1
+ 'use strict';
2
+
3
+ var chatCreator = require('./chat-creator.js');
4
+ var groupManager = require('./group-manager.js');
5
+ var messageManager = require('./message-manager.js');
6
+ var metadataManager = require('../../common/metadata-manager.js');
7
+ var hierarchyManager = require('./hierarchy-manager.js');
8
+
9
+ /**
10
+ * Component: Chat Manager
11
+ * Block-UUID: 7f9a0b1c-2d3e-4f5a-8b9c-0d1e2f3a4b5c
12
+ * Parent-UUID: 5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b
13
+ * Version: 2.0.0
14
+ * Purpose: Core class for managing chats, groups, and messages, with proxy methods for other managers
15
+ * Language: TypeScript
16
+ * Created-at: 2025-03-15T02:19:00.075Z
17
+ * Updated-at: 2025-03-16T06:45:00.075Z
18
+ * Authors: together.ai - DeepSeek v3 (v1.0.0), OpenRouter - Gemini Flash 2.0 (v1.1.0), together.ai - DeepSeek v3 (v2.0.0)
19
+ */
20
+ class ChatManager {
21
+ dbClient;
22
+ gitRepo;
23
+ repoOwner;
24
+ repoName;
25
+ ref;
26
+ refType;
27
+ options;
28
+ logger;
29
+ chatCreator;
30
+ groupManager;
31
+ messageManager;
32
+ metadataManager;
33
+ hierarchyManager;
34
+ constructor(dbClient, gitRepo, repoOwner, repoName, ref, refType, options = {}, logger) {
35
+ this.dbClient = dbClient;
36
+ this.gitRepo = gitRepo;
37
+ this.repoOwner = repoOwner;
38
+ this.repoName = repoName;
39
+ this.ref = ref;
40
+ this.refType = refType;
41
+ this.options = options;
42
+ this.logger = logger;
43
+ this.messageManager = new messageManager.MessageManager(dbClient, logger);
44
+ this.groupManager = new groupManager.GroupManager(dbClient, gitRepo, logger);
45
+ this.metadataManager = new metadataManager.MetadataManager(dbClient, logger, gitRepo, this);
46
+ this.chatCreator = new chatCreator.ChatCreator(dbClient, this.messageManager, logger);
47
+ this.hierarchyManager = new hierarchyManager.HierarchyManager(dbClient, gitRepo, this.chatCreator, this.groupManager, logger);
48
+ }
49
+ /**
50
+ * Sets up the chat hierarchy for the repository.
51
+ * Creates or updates groups and chats for `git-repos`, `git-repo-owner`, `git-repo`, and `git-ref`.
52
+ * Returns the ID of the `git-ref` chat.
53
+ */
54
+ async setupChatHierarchy() {
55
+ return this.hierarchyManager.setupChatHierarchy(this.repoOwner, this.repoName, this.ref, this.refType);
56
+ }
57
+ /**
58
+ * Ensures the existence of a "git-repos" chat.
59
+ * This method can be used independently of the GitImporter to create the chat if it doesn't exist.
60
+ * @returns The ID of the "git-repos" chat
61
+ */
62
+ async ensureGitReposChat() {
63
+ try {
64
+ // Ensure the default prompt exists
65
+ const askGitReposPromptId = await this.chatCreator.ensureAskGitReposPrompt();
66
+ // Create or update the "git-repos" group
67
+ const reposGroupId = await this.groupManager.createOrUpdateGroup('git-repos', 'git-repos');
68
+ // Create or update the "git-repos" chat
69
+ const reposChatId = await this.hierarchyManager.createOrUpdateReposChat(reposGroupId);
70
+ return reposChatId;
71
+ }
72
+ catch (error) {
73
+ throw new Error(`Failed to ensure "git-repos" chat exists: ${error instanceof Error ? error.message : String(error)}`);
74
+ }
75
+ }
76
+ // ====================
77
+ // Proxy Methods for MetadataManager
78
+ // ====================
79
+ /**
80
+ * Marks a chat as starting an import.
81
+ */
82
+ async markImportStarted(chatId) {
83
+ return this.metadataManager.markImportStarted(chatId);
84
+ }
85
+ /**
86
+ * Marks a chat as finished importing.
87
+ */
88
+ async markImportFinished(chatId, commitInfo) {
89
+ return this.metadataManager.markImportFinished(chatId, commitInfo);
90
+ }
91
+ /**
92
+ * Marks a chat as failed to import.
93
+ */
94
+ async markImportFailed(chatId, error) {
95
+ return this.metadataManager.markImportFailed(chatId, error);
96
+ }
97
+ /**
98
+ * Updates metadata for a file chat.
99
+ */
100
+ async updateFileMetadata(chatId, filePath, commitInfo) {
101
+ return this.metadataManager.updateFileMetadata(chatId, filePath, commitInfo);
102
+ }
103
+ /**
104
+ * Updates metadata for a directory chat.
105
+ */
106
+ async updateDirectoryMetadata(chatId, path, commitInfo) {
107
+ return this.metadataManager.updateDirectoryMetadata(chatId, path, commitInfo);
108
+ }
109
+ /**
110
+ * Marks a file as deleted.
111
+ */
112
+ async markFileAsDeleted(chatId, filePath) {
113
+ return this.metadataManager.markFileAsDeleted(chatId, filePath);
114
+ }
115
+ /**
116
+ * Marks a directory as deleted.
117
+ */
118
+ async markDirectoryAsDeleted(chatId, dirPath) {
119
+ return this.metadataManager.markDirectoryAsDeleted(chatId, dirPath);
120
+ }
121
+ // ====================
122
+ // Proxy Methods for MessageManager
123
+ // ====================
124
+ async createSystemMessage(chatId) {
125
+ return this.messageManager.createSystemMessage(chatId);
126
+ }
127
+ //async createShortOverviewMessage(chatId: number, parentId: number): Promise<number> {
128
+ // return this.messageManager.createShortOverviewMessage(chatId, parentId);
129
+ //}
130
+ //async createLongOverviewMessage(chatId: number, parentId: number): Promise<number> {
131
+ // return this.messageManager.createLongOverviewMessage(chatId, parentId);
132
+ //}
133
+ async createMainMessage(chatId, parentId, chatType, message) {
134
+ return this.messageManager.createMainMessage(chatId, parentId, chatType, message);
135
+ }
136
+ async createChatMetaMessage(chatId, parentId) {
137
+ return this.messageManager.createChatMetaMessage(chatId, parentId);
138
+ }
139
+ // Commenting out for now
140
+ //async createChatHistoryMessage(chatId: number, parentId: number, history: any): Promise<number> {
141
+ // return this.messageManager.createChatHistoryMessage(chatId, parentId, history);
142
+ //}
143
+ async getMessageById(messageId) {
144
+ return this.messageManager.getMessageById(messageId);
145
+ }
146
+ async getMessageByChatIdAndType(chatId, type) {
147
+ return this.messageManager.getMessageByChatIdAndType(chatId, type);
148
+ }
149
+ async updateMessage(messageId, updates) {
150
+ return this.messageManager.updateMessage(messageId, updates);
151
+ }
152
+ // ====================
153
+ // Proxy Methods for ChatCreator
154
+ // ====================
155
+ async createChat(type, name, parentId, groupId, meta, mainMessage = '', orderWeight) {
156
+ return this.chatCreator.createChat(type, name, parentId, groupId, meta, mainMessage, orderWeight);
157
+ }
158
+ // ====================
159
+ // Proxy Methods for GroupManager
160
+ // ====================
161
+ async createOrUpdateGroup(type, name) {
162
+ return this.groupManager.createOrUpdateGroup(type, name);
163
+ }
164
+ async getChatById(chatId) {
165
+ try {
166
+ const chat = await this.dbClient.getChatById(chatId);
167
+ if (!chat) {
168
+ throw new Error(`Chat with ID ${chatId} not found`);
169
+ }
170
+ return chat;
171
+ }
172
+ catch (error) {
173
+ throw new Error(`Failed to retrieve chat ${chatId}: ${error instanceof Error ? error.message : String(error)}`);
174
+ }
175
+ }
176
+ }
177
+
178
+ exports.ChatManager = ChatManager;
179
+ //# sourceMappingURL=chat-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-manager.js","sources":["../../../../src/importer/chat-manager/chat-manager.ts"],"sourcesContent":[null],"names":["MessageManager","GroupManager","MetadataManager","ChatCreator","HierarchyManager"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Component: Chat Manager Constants
5
+ * Block-UUID: 8a3b9c2d-4e5f-6a7b-8c9d-0e1f2a3b4c5d
6
+ * Parent-UUID: N/A
7
+ * Version: 1.0.0
8
+ * Purpose: Shared constants for the Chat Manager module
9
+ * Language: TypeScript
10
+ * Created-at: 2025-03-15T02:06:30.618Z
11
+ * Authors: together.ai - DeepSeek v3 (v1.0.0)
12
+ */
13
+ /**
14
+ * Chat types
15
+ */
16
+ const CHAT_TYPE_GIT_REPOS = 'git-repos';
17
+ const CHAT_TYPE_GIT_REPO_OWNER = 'git-repo-owner';
18
+ const CHAT_TYPE_GIT_REPO = 'git-repo';
19
+ const CHAT_TYPE_GIT_REF = 'git-ref';
20
+ /**
21
+ * Chat names
22
+ */
23
+ const CHAT_NAME_GIT_REPOS = 'Repositories';
24
+ const CHAT_NAME_GIT_REPO_OWNER = (owner) => `${owner}`;
25
+ const CHAT_NAME_GIT_REF = (ref, refType) => `${ref}`;
26
+ /**
27
+ * Message types
28
+ */
29
+ const MESSAGE_TYPE_REGULAR = 'regular';
30
+ const MESSAGE_TYPE_CHAT_META = 'chat-meta';
31
+ /**
32
+ * Group types
33
+ */
34
+ const GROUP_TYPE_GIT_REPOS = 'git-repos';
35
+ const GROUP_TYPE_GIT_REPO_OWNER = 'git-repo-owner';
36
+ const GROUP_TYPE_GIT_REPO = 'git-repo';
37
+ /**
38
+ * Default values
39
+ */
40
+ const DEFAULT_MODEL = 'GitSense Notes';
41
+ const DEFAULT_TEMPERATURE = 0;
42
+ const DEFAULT_IS_DEFAULT_NAME = 1;
43
+ /**
44
+ * Visibility and ownership
45
+ */
46
+ const CHAT_VISIBILITY_PUBLIC = 'public';
47
+ const CHAT_OWNER_SYSTEM = 'system';
48
+
49
+ exports.CHAT_NAME_GIT_REF = CHAT_NAME_GIT_REF;
50
+ exports.CHAT_NAME_GIT_REPOS = CHAT_NAME_GIT_REPOS;
51
+ exports.CHAT_NAME_GIT_REPO_OWNER = CHAT_NAME_GIT_REPO_OWNER;
52
+ exports.CHAT_OWNER_SYSTEM = CHAT_OWNER_SYSTEM;
53
+ exports.CHAT_TYPE_GIT_REF = CHAT_TYPE_GIT_REF;
54
+ exports.CHAT_TYPE_GIT_REPO = CHAT_TYPE_GIT_REPO;
55
+ exports.CHAT_TYPE_GIT_REPOS = CHAT_TYPE_GIT_REPOS;
56
+ exports.CHAT_TYPE_GIT_REPO_OWNER = CHAT_TYPE_GIT_REPO_OWNER;
57
+ exports.CHAT_VISIBILITY_PUBLIC = CHAT_VISIBILITY_PUBLIC;
58
+ exports.DEFAULT_IS_DEFAULT_NAME = DEFAULT_IS_DEFAULT_NAME;
59
+ exports.DEFAULT_MODEL = DEFAULT_MODEL;
60
+ exports.DEFAULT_TEMPERATURE = DEFAULT_TEMPERATURE;
61
+ exports.GROUP_TYPE_GIT_REPO = GROUP_TYPE_GIT_REPO;
62
+ exports.GROUP_TYPE_GIT_REPOS = GROUP_TYPE_GIT_REPOS;
63
+ exports.GROUP_TYPE_GIT_REPO_OWNER = GROUP_TYPE_GIT_REPO_OWNER;
64
+ exports.MESSAGE_TYPE_CHAT_META = MESSAGE_TYPE_CHAT_META;
65
+ exports.MESSAGE_TYPE_REGULAR = MESSAGE_TYPE_REGULAR;
66
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/importer/chat-manager/constants.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;;;;AASG;AAGH;;AAEG;AACI,MAAM,mBAAmB,GAAG;AAC5B,MAAM,wBAAwB,GAAG;AACjC,MAAM,kBAAkB,GAAG;AAC3B,MAAM,iBAAiB,GAAG;AAOjC;;AAEG;AACI,MAAM,mBAAmB,GAAG;AAC5B,MAAM,wBAAwB,GAAG,CAAC,KAAa,KAAK,CAAA,EAAG,KAAK,CAAA;AAE5D,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,OAAe,KAAK,CAAG,EAAA,GAAG;AAEzE;;AAEG;AACI,MAAM,oBAAoB,GAAG;AAC7B,MAAM,sBAAsB,GAAG;AAEtC;;AAEG;AACI,MAAM,oBAAoB,GAAG;AAC7B,MAAM,yBAAyB,GAAG;AAClC,MAAM,mBAAmB,GAAG;AAEnC;;AAEG;AACI,MAAM,aAAa,GAAG;AACtB,MAAM,mBAAmB,GAAG;AAC5B,MAAM,uBAAuB,GAAG;AAEvC;;AAEG;AACI,MAAM,sBAAsB,GAAG;AAC/B,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;"}