codecane 1.0.268 → 1.0.270

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 (307) hide show
  1. package/dist/actions.d.ts +2590 -0
  2. package/dist/actions.d.ts.map +1 -0
  3. package/dist/actions.js +143 -0
  4. package/dist/actions.js.map +1 -0
  5. package/dist/analytics.d.ts +5 -0
  6. package/dist/analytics.d.ts.map +1 -0
  7. package/dist/analytics.js +40 -0
  8. package/dist/analytics.js.map +1 -0
  9. package/dist/api-keys/constants.d.ts +9 -0
  10. package/dist/api-keys/constants.d.ts.map +1 -0
  11. package/dist/api-keys/constants.js +26 -0
  12. package/dist/api-keys/constants.js.map +1 -0
  13. package/dist/api-keys/crypto.d.ts +25 -0
  14. package/dist/api-keys/crypto.d.ts.map +1 -0
  15. package/dist/api-keys/crypto.js +186 -0
  16. package/dist/api-keys/crypto.js.map +1 -0
  17. package/dist/background-process-manager.d.ts +1 -0
  18. package/dist/background-process-manager.d.ts.map +1 -0
  19. package/dist/browser-actions.d.ts +4416 -0
  20. package/dist/browser-actions.d.ts.map +1 -0
  21. package/dist/browser-actions.js +343 -0
  22. package/dist/browser-actions.js.map +1 -0
  23. package/dist/browser-runner.d.ts +1 -0
  24. package/dist/browser-runner.d.ts.map +1 -0
  25. package/dist/chat-storage.d.ts +1 -0
  26. package/dist/chat-storage.d.ts.map +1 -0
  27. package/dist/checkpoints/checkpoint-manager.d.ts +1 -0
  28. package/dist/checkpoints/checkpoint-manager.d.ts.map +1 -0
  29. package/dist/checkpoints/file-manager.d.ts +1 -0
  30. package/dist/checkpoints/file-manager.d.ts.map +1 -0
  31. package/dist/cli-handlers/api-key.d.ts +1 -0
  32. package/dist/cli-handlers/api-key.d.ts.map +1 -0
  33. package/dist/cli-handlers/checkpoint.d.ts +1 -0
  34. package/dist/cli-handlers/checkpoint.d.ts.map +1 -0
  35. package/dist/cli-handlers/diff.d.ts +1 -0
  36. package/dist/cli-handlers/diff.d.ts.map +1 -0
  37. package/dist/cli-handlers/easter-egg.d.ts +1 -0
  38. package/dist/cli-handlers/easter-egg.d.ts.map +1 -0
  39. package/dist/cli-handlers/inititalization-flow.d.ts +1 -0
  40. package/dist/cli-handlers/inititalization-flow.d.ts.map +1 -0
  41. package/dist/cli.d.ts +1 -0
  42. package/dist/cli.d.ts.map +1 -0
  43. package/dist/client.d.ts +1 -0
  44. package/dist/client.d.ts.map +1 -0
  45. package/dist/code-map/languages.d.ts +13 -0
  46. package/dist/code-map/languages.d.ts.map +1 -0
  47. package/dist/code-map/languages.js +129 -0
  48. package/dist/code-map/languages.js.map +1 -0
  49. package/dist/code-map/parse.d.ts +12 -0
  50. package/dist/code-map/parse.d.ts.map +1 -0
  51. package/dist/code-map/parse.js +127 -0
  52. package/dist/code-map/parse.js.map +1 -0
  53. package/dist/code-map/test-langs/test.d.ts +12 -0
  54. package/dist/code-map/test-langs/test.d.ts.map +1 -0
  55. package/dist/code-map/test-langs/test.js +23 -0
  56. package/dist/code-map/test-langs/test.js.map +1 -0
  57. package/dist/code-map/tree-sitter-queries/readme.md +23 -0
  58. package/dist/code-map/tree-sitter-queries/tree-sitter-c-tags.scm +11 -0
  59. package/dist/code-map/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +13 -0
  60. package/dist/code-map/tree-sitter-queries/tree-sitter-cpp-tags.scm +17 -0
  61. package/dist/code-map/tree-sitter-queries/tree-sitter-go-tags.scm +26 -0
  62. package/dist/code-map/tree-sitter-queries/tree-sitter-java-tags.scm +19 -0
  63. package/dist/code-map/tree-sitter-queries/tree-sitter-javascript-tags.scm +15 -0
  64. package/dist/code-map/tree-sitter-queries/tree-sitter-php-tags.scm +26 -0
  65. package/dist/code-map/tree-sitter-queries/tree-sitter-python-tags.scm +9 -0
  66. package/dist/code-map/tree-sitter-queries/tree-sitter-ruby-tags.scm +58 -0
  67. package/dist/code-map/tree-sitter-queries/tree-sitter-rust-tags.scm +26 -0
  68. package/dist/code-map/tree-sitter-queries/tree-sitter-typescript-tags.scm +15 -0
  69. package/dist/code-map/tsconfig.tsbuildinfo +1 -0
  70. package/dist/config.d.ts +1 -0
  71. package/dist/config.d.ts.map +1 -0
  72. package/dist/constants/analytics-events.d.ts +20 -0
  73. package/dist/constants/analytics-events.d.ts.map +1 -0
  74. package/dist/constants/analytics-events.js +27 -0
  75. package/dist/constants/analytics-events.js.map +1 -0
  76. package/dist/constants/grant-priorities.d.ts +3 -0
  77. package/dist/constants/grant-priorities.d.ts.map +1 -0
  78. package/dist/constants/grant-priorities.js +10 -0
  79. package/dist/constants/grant-priorities.js.map +1 -0
  80. package/dist/constants/tools.d.ts +17 -0
  81. package/dist/constants/tools.d.ts.map +1 -0
  82. package/dist/constants/tools.js +44 -0
  83. package/dist/constants/tools.js.map +1 -0
  84. package/dist/constants.d.ts +135 -0
  85. package/dist/constants.d.ts.map +1 -0
  86. package/dist/constants.js +180 -0
  87. package/dist/constants.js.map +1 -0
  88. package/dist/create-template-project.d.ts +1 -0
  89. package/dist/create-template-project.d.ts.map +1 -0
  90. package/dist/credentials.d.ts +1 -0
  91. package/dist/credentials.d.ts.map +1 -0
  92. package/dist/db/drizzle.config.d.ts +3 -0
  93. package/dist/db/drizzle.config.d.ts.map +1 -0
  94. package/dist/db/drizzle.config.js +17 -0
  95. package/dist/db/drizzle.config.js.map +1 -0
  96. package/dist/db/env.d.mts +2 -0
  97. package/dist/db/env.d.mts.map +1 -0
  98. package/dist/db/env.mjs +26 -0
  99. package/dist/db/env.mjs.map +1 -0
  100. package/dist/db/index.d.ts +7 -0
  101. package/dist/db/index.d.ts.map +1 -0
  102. package/dist/db/index.js +35 -0
  103. package/dist/db/index.js.map +1 -0
  104. package/dist/db/schema.d.ts +1420 -0
  105. package/dist/db/schema.d.ts.map +1 -0
  106. package/dist/db/schema.js +175 -0
  107. package/dist/db/schema.js.map +1 -0
  108. package/dist/db/transaction.d.ts +13 -0
  109. package/dist/db/transaction.d.ts.map +1 -0
  110. package/dist/db/transaction.js +36 -0
  111. package/dist/db/transaction.js.map +1 -0
  112. package/dist/dev-process-manager.d.ts +1 -0
  113. package/dist/dev-process-manager.d.ts.map +1 -0
  114. package/dist/display.d.ts +1 -0
  115. package/dist/display.d.ts.map +1 -0
  116. package/dist/env.d.mts +2 -0
  117. package/dist/env.d.mts.map +1 -0
  118. package/dist/env.mjs +40 -0
  119. package/dist/env.mjs.map +1 -0
  120. package/dist/fingerprint.d.ts +1 -0
  121. package/dist/fingerprint.d.ts.map +1 -0
  122. package/dist/index.d.ts +1 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/json-config/__tests__/stringify-schema.test.d.ts +2 -0
  125. package/dist/json-config/__tests__/stringify-schema.test.d.ts.map +1 -0
  126. package/dist/json-config/__tests__/stringify-schema.test.js +66 -0
  127. package/dist/json-config/__tests__/stringify-schema.test.js.map +1 -0
  128. package/dist/json-config/constants.d.ts +83 -0
  129. package/dist/json-config/constants.d.ts.map +1 -0
  130. package/dist/json-config/constants.js +48 -0
  131. package/dist/json-config/constants.js.map +1 -0
  132. package/dist/json-config/parser.d.ts +8 -0
  133. package/dist/json-config/parser.d.ts.map +1 -0
  134. package/dist/json-config/parser.js +51 -0
  135. package/dist/json-config/parser.js.map +1 -0
  136. package/dist/json-config/stringify-schema.d.ts +10 -0
  137. package/dist/json-config/stringify-schema.d.ts.map +1 -0
  138. package/dist/json-config/stringify-schema.js +131 -0
  139. package/dist/json-config/stringify-schema.js.map +1 -0
  140. package/dist/menu.d.ts +1 -0
  141. package/dist/menu.d.ts.map +1 -0
  142. package/dist/project-file-tree.d.ts +12 -0
  143. package/dist/project-file-tree.d.ts.map +1 -0
  144. package/dist/project-file-tree.js +200 -0
  145. package/dist/project-file-tree.js.map +1 -0
  146. package/dist/project-files.d.ts +1 -0
  147. package/dist/project-files.d.ts.map +1 -0
  148. package/dist/startup-process-handler.d.ts +1 -0
  149. package/dist/startup-process-handler.d.ts.map +1 -0
  150. package/dist/tool-handlers.d.ts +1 -0
  151. package/dist/tool-handlers.d.ts.map +1 -0
  152. package/dist/types/agent-state.d.ts +465 -0
  153. package/dist/types/agent-state.d.ts.map +1 -0
  154. package/dist/types/agent-state.js +32 -0
  155. package/dist/types/agent-state.js.map +1 -0
  156. package/dist/types/grant.d.ts +3 -0
  157. package/dist/types/grant.d.ts.map +1 -0
  158. package/dist/types/grant.js +10 -0
  159. package/dist/types/grant.js.map +1 -0
  160. package/dist/types/message.d.ts +312 -0
  161. package/dist/types/message.d.ts.map +1 -0
  162. package/dist/types/message.js +54 -0
  163. package/dist/types/message.js.map +1 -0
  164. package/dist/types/referral.d.ts +3 -0
  165. package/dist/types/referral.d.ts.map +1 -0
  166. package/dist/types/referral.js +5 -0
  167. package/dist/types/referral.js.map +1 -0
  168. package/dist/types/tools.d.ts +6 -0
  169. package/dist/types/tools.d.ts.map +1 -0
  170. package/dist/types/tools.js +3 -0
  171. package/dist/types/tools.js.map +1 -0
  172. package/dist/types/usage.d.ts +41 -0
  173. package/dist/types/usage.d.ts.map +1 -0
  174. package/dist/types/usage.js +15 -0
  175. package/dist/types/usage.js.map +1 -0
  176. package/dist/types.d.ts +1 -0
  177. package/dist/types.d.ts.map +1 -0
  178. package/dist/update-codebuff.d.ts +1 -0
  179. package/dist/update-codebuff.d.ts.map +1 -0
  180. package/dist/util/__tests__/messages.test.d.ts +2 -0
  181. package/dist/util/__tests__/messages.test.d.ts.map +1 -0
  182. package/dist/util/__tests__/messages.test.js +70 -0
  183. package/dist/util/__tests__/messages.test.js.map +1 -0
  184. package/dist/util/__tests__/saxy.test.d.ts +2 -0
  185. package/dist/util/__tests__/saxy.test.d.ts.map +1 -0
  186. package/dist/util/__tests__/saxy.test.js +262 -0
  187. package/dist/util/__tests__/saxy.test.js.map +1 -0
  188. package/dist/util/__tests__/string.test.d.ts +2 -0
  189. package/dist/util/__tests__/string.test.d.ts.map +1 -0
  190. package/dist/util/__tests__/string.test.js +82 -0
  191. package/dist/util/__tests__/string.test.js.map +1 -0
  192. package/dist/util/array.d.ts +7 -0
  193. package/dist/util/array.d.ts.map +1 -0
  194. package/dist/util/array.js +32 -0
  195. package/dist/util/array.js.map +1 -0
  196. package/dist/util/changes.d.ts +8 -0
  197. package/dist/util/changes.d.ts.map +1 -0
  198. package/dist/util/changes.js +78 -0
  199. package/dist/util/changes.js.map +1 -0
  200. package/dist/util/credentials.d.ts +26 -0
  201. package/dist/util/credentials.d.ts.map +1 -0
  202. package/dist/util/credentials.js +24 -0
  203. package/dist/util/credentials.js.map +1 -0
  204. package/dist/util/currency.d.ts +15 -0
  205. package/dist/util/currency.d.ts.map +1 -0
  206. package/dist/util/currency.js +23 -0
  207. package/dist/util/currency.js.map +1 -0
  208. package/dist/util/dates.d.ts +11 -0
  209. package/dist/util/dates.d.ts.map +1 -0
  210. package/dist/util/dates.js +22 -0
  211. package/dist/util/dates.js.map +1 -0
  212. package/dist/util/file.d.ts +160 -0
  213. package/dist/util/file.d.ts.map +1 -0
  214. package/dist/util/file.js +192 -0
  215. package/dist/util/file.js.map +1 -0
  216. package/dist/util/git.d.ts +7 -0
  217. package/dist/util/git.d.ts.map +1 -0
  218. package/dist/util/git.js +81 -0
  219. package/dist/util/git.js.map +1 -0
  220. package/dist/util/logger.d.ts +9 -0
  221. package/dist/util/logger.d.ts.map +1 -0
  222. package/dist/util/logger.js +52 -0
  223. package/dist/util/logger.js.map +1 -0
  224. package/dist/util/lru-cache.d.ts +31 -0
  225. package/dist/util/lru-cache.d.ts.map +1 -0
  226. package/dist/util/lru-cache.js +68 -0
  227. package/dist/util/lru-cache.js.map +1 -0
  228. package/dist/util/messages.d.ts +10 -0
  229. package/dist/util/messages.d.ts.map +1 -0
  230. package/dist/util/messages.js +69 -0
  231. package/dist/util/messages.js.map +1 -0
  232. package/dist/util/min-heap.d.ts +16 -0
  233. package/dist/util/min-heap.d.ts.map +1 -0
  234. package/dist/util/min-heap.js +73 -0
  235. package/dist/util/min-heap.js.map +1 -0
  236. package/dist/util/object.d.ts +19 -0
  237. package/dist/util/object.d.ts.map +1 -0
  238. package/dist/util/object.js +91 -0
  239. package/dist/util/object.js.map +1 -0
  240. package/dist/util/patch.d.ts +2 -0
  241. package/dist/util/patch.d.ts.map +1 -0
  242. package/dist/util/patch.js +215 -0
  243. package/dist/util/patch.js.map +1 -0
  244. package/dist/util/promise.d.ts +18 -0
  245. package/dist/util/promise.d.ts.map +1 -0
  246. package/dist/util/promise.js +80 -0
  247. package/dist/util/promise.js.map +1 -0
  248. package/dist/util/referral.d.ts +2 -0
  249. package/dist/util/referral.d.ts.map +1 -0
  250. package/dist/util/referral.js +6 -0
  251. package/dist/util/referral.js.map +1 -0
  252. package/dist/util/saxy.d.ts +167 -0
  253. package/dist/util/saxy.d.ts.map +1 -0
  254. package/dist/util/saxy.js +473 -0
  255. package/dist/util/saxy.js.map +1 -0
  256. package/dist/util/string.d.ts +62 -0
  257. package/dist/util/string.d.ts.map +1 -0
  258. package/dist/util/string.js +220 -0
  259. package/dist/util/string.js.map +1 -0
  260. package/dist/util/stripe.d.ts +4 -0
  261. package/dist/util/stripe.d.ts.map +1 -0
  262. package/dist/util/stripe.js +22 -0
  263. package/dist/util/stripe.js.map +1 -0
  264. package/dist/util/sync-failure.d.ts +2 -0
  265. package/dist/util/sync-failure.d.ts.map +1 -0
  266. package/dist/util/sync-failure.js +57 -0
  267. package/dist/util/sync-failure.js.map +1 -0
  268. package/dist/utils/__tests__/background-process-manager.test.d.ts +1 -0
  269. package/dist/utils/__tests__/background-process-manager.test.d.ts.map +1 -0
  270. package/dist/utils/__tests__/response-example-4-files.txt +621 -0
  271. package/dist/utils/__tests__/tool-renderers.test.d.ts +1 -0
  272. package/dist/utils/__tests__/tool-renderers.test.d.ts.map +1 -0
  273. package/dist/utils/__tests__/xml-stream-parser.test.d.ts +1 -0
  274. package/dist/utils/__tests__/xml-stream-parser.test.d.ts.map +1 -0
  275. package/dist/utils/analytics.d.ts +1 -0
  276. package/dist/utils/analytics.d.ts.map +1 -0
  277. package/dist/utils/detect-shell.d.ts +1 -0
  278. package/dist/utils/detect-shell.d.ts.map +1 -0
  279. package/dist/utils/git.d.ts +1 -0
  280. package/dist/utils/git.d.ts.map +1 -0
  281. package/dist/utils/logger.d.ts +1 -0
  282. package/dist/utils/logger.d.ts.map +1 -0
  283. package/dist/utils/spinner.d.ts +1 -0
  284. package/dist/utils/spinner.d.ts.map +1 -0
  285. package/dist/utils/system-info.d.ts +1 -0
  286. package/dist/utils/system-info.d.ts.map +1 -0
  287. package/dist/utils/terminal.d.ts +1 -0
  288. package/dist/utils/terminal.d.ts.map +1 -0
  289. package/dist/utils/tool-renderers.d.ts +1 -0
  290. package/dist/utils/tool-renderers.d.ts.map +1 -0
  291. package/dist/utils/xml-stream-parser.d.ts +1 -0
  292. package/dist/utils/xml-stream-parser.d.ts.map +1 -0
  293. package/dist/web-scraper.d.ts +1 -0
  294. package/dist/web-scraper.d.ts.map +1 -0
  295. package/dist/websockets/websocket-client.d.ts +43 -0
  296. package/dist/websockets/websocket-client.d.ts.map +1 -0
  297. package/dist/websockets/websocket-client.js +216 -0
  298. package/dist/websockets/websocket-client.js.map +1 -0
  299. package/dist/websockets/websocket-schema.d.ts +4867 -0
  300. package/dist/websockets/websocket-schema.d.ts.map +1 -0
  301. package/dist/websockets/websocket-schema.js +55 -0
  302. package/dist/websockets/websocket-schema.js.map +1 -0
  303. package/dist/workers/checkpoint-worker.d.ts +1 -0
  304. package/dist/workers/checkpoint-worker.d.ts.map +1 -0
  305. package/dist/workers/project-context.d.ts +1 -0
  306. package/dist/workers/project-context.d.ts.map +1 -0
  307. package/package.json +7 -2
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNextQuotaReset = void 0;
4
+ /**
5
+ * Calculates the next quota reset date.
6
+ * If the current reset date is in the past or null, it calculates the next
7
+ * reset date based on the current date. Otherwise, it ensures the next
8
+ * reset date is in the future relative to the provided date.
9
+ *
10
+ * @param referenceDate The user's current `next_quota_reset` date, or the date the cycle ended.
11
+ * @returns The Date object representing the next reset time.
12
+ */
13
+ const getNextQuotaReset = (referenceDate) => {
14
+ const now = new Date();
15
+ let nextMonth = new Date(referenceDate ?? now);
16
+ while (nextMonth <= now) {
17
+ nextMonth.setMonth(nextMonth.getMonth() + 1);
18
+ }
19
+ return nextMonth;
20
+ };
21
+ exports.getNextQuotaReset = getNextQuotaReset;
22
+ //# sourceMappingURL=dates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../src/util/dates.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACI,MAAM,iBAAiB,GAAG,CAAC,aAA0B,EAAQ,EAAE;IACpE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,CAAA;IAC9C,OAAO,SAAS,IAAI,GAAG,EAAE,CAAC;QACxB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAPY,QAAA,iBAAiB,qBAO7B"}
@@ -0,0 +1,160 @@
1
+ import { z } from 'zod';
2
+ export declare const FileTreeNodeSchema: z.ZodType<FileTreeNode>;
3
+ export interface FileTreeNode {
4
+ name: string;
5
+ type: 'file' | 'directory';
6
+ filePath: string;
7
+ lastReadTime?: number;
8
+ children?: FileTreeNode[];
9
+ }
10
+ export interface DirectoryNode extends FileTreeNode {
11
+ type: 'directory';
12
+ children: FileTreeNode[];
13
+ }
14
+ export interface FileNode extends FileTreeNode {
15
+ type: 'file';
16
+ lastReadTime: number;
17
+ }
18
+ export declare const FileVersionSchema: z.ZodObject<{
19
+ path: z.ZodString;
20
+ content: z.ZodString;
21
+ }, "strip", z.ZodTypeAny, {
22
+ path: string;
23
+ content: string;
24
+ }, {
25
+ path: string;
26
+ content: string;
27
+ }>;
28
+ export type FileVersion = z.infer<typeof FileVersionSchema>;
29
+ export declare const ProjectFileContextSchema: z.ZodObject<{
30
+ currentWorkingDirectory: z.ZodString;
31
+ fileTree: z.ZodArray<z.ZodType<FileTreeNode, z.ZodTypeDef, FileTreeNode>, "many">;
32
+ fileTokenScores: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>;
33
+ knowledgeFiles: z.ZodRecord<z.ZodString, z.ZodString>;
34
+ userKnowledgeFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
35
+ gitChanges: z.ZodObject<{
36
+ status: z.ZodString;
37
+ diff: z.ZodString;
38
+ diffCached: z.ZodString;
39
+ lastCommitMessages: z.ZodString;
40
+ }, "strip", z.ZodTypeAny, {
41
+ status: string;
42
+ diff: string;
43
+ diffCached: string;
44
+ lastCommitMessages: string;
45
+ }, {
46
+ status: string;
47
+ diff: string;
48
+ diffCached: string;
49
+ lastCommitMessages: string;
50
+ }>;
51
+ changesSinceLastChat: z.ZodRecord<z.ZodString, z.ZodString>;
52
+ shellConfigFiles: z.ZodRecord<z.ZodString, z.ZodString>;
53
+ systemInfo: z.ZodObject<{
54
+ platform: z.ZodString;
55
+ shell: z.ZodString;
56
+ nodeVersion: z.ZodString;
57
+ arch: z.ZodString;
58
+ homedir: z.ZodString;
59
+ cpus: z.ZodNumber;
60
+ }, "strip", z.ZodTypeAny, {
61
+ platform: string;
62
+ shell: string;
63
+ nodeVersion: string;
64
+ arch: string;
65
+ homedir: string;
66
+ cpus: number;
67
+ }, {
68
+ platform: string;
69
+ shell: string;
70
+ nodeVersion: string;
71
+ arch: string;
72
+ homedir: string;
73
+ cpus: number;
74
+ }>;
75
+ fileVersions: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodObject<{
76
+ path: z.ZodString;
77
+ content: z.ZodString;
78
+ }, "strip", z.ZodTypeAny, {
79
+ path: string;
80
+ content: string;
81
+ }, {
82
+ path: string;
83
+ content: string;
84
+ }>, "many">, "many">>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ currentWorkingDirectory: string;
87
+ fileTree: FileTreeNode[];
88
+ fileTokenScores: Record<string, Record<string, number>>;
89
+ knowledgeFiles: Record<string, string>;
90
+ gitChanges: {
91
+ status: string;
92
+ diff: string;
93
+ diffCached: string;
94
+ lastCommitMessages: string;
95
+ };
96
+ changesSinceLastChat: Record<string, string>;
97
+ shellConfigFiles: Record<string, string>;
98
+ systemInfo: {
99
+ platform: string;
100
+ shell: string;
101
+ nodeVersion: string;
102
+ arch: string;
103
+ homedir: string;
104
+ cpus: number;
105
+ };
106
+ userKnowledgeFiles?: Record<string, string> | undefined;
107
+ fileVersions?: {
108
+ path: string;
109
+ content: string;
110
+ }[][] | undefined;
111
+ }, {
112
+ currentWorkingDirectory: string;
113
+ fileTree: FileTreeNode[];
114
+ fileTokenScores: Record<string, Record<string, number>>;
115
+ knowledgeFiles: Record<string, string>;
116
+ gitChanges: {
117
+ status: string;
118
+ diff: string;
119
+ diffCached: string;
120
+ lastCommitMessages: string;
121
+ };
122
+ changesSinceLastChat: Record<string, string>;
123
+ shellConfigFiles: Record<string, string>;
124
+ systemInfo: {
125
+ platform: string;
126
+ shell: string;
127
+ nodeVersion: string;
128
+ arch: string;
129
+ homedir: string;
130
+ cpus: number;
131
+ };
132
+ userKnowledgeFiles?: Record<string, string> | undefined;
133
+ fileVersions?: {
134
+ path: string;
135
+ content: string;
136
+ }[][] | undefined;
137
+ }>;
138
+ export type ProjectFileContext = z.infer<typeof ProjectFileContextSchema>;
139
+ export declare const createWriteFileBlock: (filePath: string, content: string) => string;
140
+ export declare const fileRegex: RegExp;
141
+ export declare const fileWithNoPathRegex: RegExp;
142
+ export declare const parseFileBlocks: (fileBlocks: string) => Record<string, string>;
143
+ export declare const createMarkdownFileBlock: (filePath: string, content: string) => string;
144
+ export declare const parseMarkdownCodeBlock: (content: string) => string;
145
+ export declare const createSearchReplaceBlock: (search: string, replace: string) => string;
146
+ export declare function printFileTree(nodes: FileTreeNode[], depth?: number): string;
147
+ export declare function printFileTreeWithTokens(nodes: FileTreeNode[], fileTokenScores: Record<string, Record<string, number>>, path?: string[]): string;
148
+ /**
149
+ * Ensures the given file contents ends with a newline character.
150
+ * @param contents - The file contents
151
+ * @returns the file contents with a newline character.
152
+ */
153
+ export declare const ensureEndsWithNewline: (contents: string | null) => string | null;
154
+ export declare const ensureDirectoryExists: (baseDir: string) => void;
155
+ /**
156
+ * Removes markdown code block syntax if present, including any language tag
157
+ */
158
+ export declare const cleanMarkdownCodeBlock: (content: string) => string;
159
+ export declare function isValidFilePath(path: string): boolean;
160
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAKrD,CAAA;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBnC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,oBAAoB,aAAc,MAAM,WAAW,MAAM,WAWrE,CAAA;AAED,eAAO,MAAM,SAAS,QACqE,CAAA;AAC3F,eAAO,MAAM,mBAAmB,QAA0C,CAAA;AAE1E,eAAO,MAAM,eAAe,eAAgB,MAAM,2BAUjD,CAAA;AAED,eAAO,MAAM,uBAAuB,aAAc,MAAM,WAAW,MAAM,WAExE,CAAA;AAED,eAAO,MAAM,sBAAsB,YAAa,MAAM,WAMrD,CAAA;AAED,eAAO,MAAM,wBAAwB,WAAY,MAAM,WAAW,MAAM,WAEvE,CAAA;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EAAE,EACrB,KAAK,GAAE,MAAU,GAChB,MAAM,CAUR;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EAAE,EACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvD,IAAI,GAAE,MAAM,EAAO,GAClB,MAAM,CA+BR;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,aACtB,MAAM,GAAG,IAAI,KACtB,MAAM,GAAG,IASX,CAAA;AAED,eAAO,MAAM,qBAAqB,YAAa,MAAM,SAIpD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,YAAa,MAAM,KAAG,MAKxD,CAAA;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,WAW3C"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.cleanMarkdownCodeBlock = exports.ensureDirectoryExists = exports.ensureEndsWithNewline = exports.createSearchReplaceBlock = exports.parseMarkdownCodeBlock = exports.createMarkdownFileBlock = exports.parseFileBlocks = exports.fileWithNoPathRegex = exports.fileRegex = exports.createWriteFileBlock = exports.ProjectFileContextSchema = exports.FileVersionSchema = exports.FileTreeNodeSchema = void 0;
27
+ exports.printFileTree = printFileTree;
28
+ exports.printFileTreeWithTokens = printFileTreeWithTokens;
29
+ exports.isValidFilePath = isValidFilePath;
30
+ const fs = __importStar(require("fs"));
31
+ const zod_1 = require("zod");
32
+ exports.FileTreeNodeSchema = zod_1.z.object({
33
+ name: zod_1.z.string(),
34
+ type: zod_1.z.enum(['file', 'directory']),
35
+ children: zod_1.z.lazy(() => zod_1.z.array(exports.FileTreeNodeSchema).optional()),
36
+ filePath: zod_1.z.string(),
37
+ });
38
+ exports.FileVersionSchema = zod_1.z.object({
39
+ path: zod_1.z.string(),
40
+ content: zod_1.z.string(),
41
+ });
42
+ exports.ProjectFileContextSchema = zod_1.z.object({
43
+ currentWorkingDirectory: zod_1.z.string(),
44
+ fileTree: zod_1.z.array(zod_1.z.custom()),
45
+ fileTokenScores: zod_1.z.record(zod_1.z.string(), zod_1.z.record(zod_1.z.string(), zod_1.z.number())),
46
+ knowledgeFiles: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
47
+ userKnowledgeFiles: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
48
+ gitChanges: zod_1.z.object({
49
+ status: zod_1.z.string(),
50
+ diff: zod_1.z.string(),
51
+ diffCached: zod_1.z.string(),
52
+ lastCommitMessages: zod_1.z.string(),
53
+ }),
54
+ changesSinceLastChat: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
55
+ shellConfigFiles: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
56
+ systemInfo: zod_1.z.object({
57
+ platform: zod_1.z.string(),
58
+ shell: zod_1.z.string(),
59
+ nodeVersion: zod_1.z.string(),
60
+ arch: zod_1.z.string(),
61
+ homedir: zod_1.z.string(),
62
+ cpus: zod_1.z.number(),
63
+ }),
64
+ fileVersions: zod_1.z.array(zod_1.z.array(exports.FileVersionSchema)).optional(), // Keep temporarily for migration
65
+ });
66
+ const createWriteFileBlock = (filePath, content) => {
67
+ const tagName = 'write_file';
68
+ return ('<' +
69
+ `${tagName}>
70
+ <path>${filePath}</path>
71
+ <content>
72
+ ${content}
73
+ </content>
74
+ </${tagName}>`);
75
+ };
76
+ exports.createWriteFileBlock = createWriteFileBlock;
77
+ exports.fileRegex = /<write_file>\s*<path>([^<]+)<\/path>\s*<content>([\s\S]*?)<\/content>\s*<\/write_file>/g;
78
+ exports.fileWithNoPathRegex = /<write_file>([\s\S]*?)<\/write_file>/g;
79
+ const parseFileBlocks = (fileBlocks) => {
80
+ let fileMatch;
81
+ const files = {};
82
+ while ((fileMatch = exports.fileRegex.exec(fileBlocks)) !== null) {
83
+ const [, filePath, fileContent] = fileMatch;
84
+ files[filePath] = fileContent.startsWith('\n')
85
+ ? fileContent.slice(1)
86
+ : fileContent;
87
+ }
88
+ return files;
89
+ };
90
+ exports.parseFileBlocks = parseFileBlocks;
91
+ const createMarkdownFileBlock = (filePath, content) => {
92
+ return `\`\`\`${filePath}\n${content}\n\`\`\``;
93
+ };
94
+ exports.createMarkdownFileBlock = createMarkdownFileBlock;
95
+ const parseMarkdownCodeBlock = (content) => {
96
+ const match = content.match(/^```(?:[a-zA-Z]+)?\n([\s\S]*)\n```$/);
97
+ if (match) {
98
+ return match[1] + '\n';
99
+ }
100
+ return content;
101
+ };
102
+ exports.parseMarkdownCodeBlock = parseMarkdownCodeBlock;
103
+ const createSearchReplaceBlock = (search, replace) => {
104
+ return `<<<<<<< SEARCH\n${search}\n=======\n${replace}\n>>>>>>> REPLACE`;
105
+ };
106
+ exports.createSearchReplaceBlock = createSearchReplaceBlock;
107
+ function printFileTree(nodes, depth = 0) {
108
+ let result = '';
109
+ const indentation = ' '.repeat(depth);
110
+ for (const node of nodes) {
111
+ result += `${indentation}${node.name}${node.type === 'directory' ? '/' : ''}\n`;
112
+ if (node.type === 'directory' && node.children) {
113
+ result += printFileTree(node.children, depth + 1);
114
+ }
115
+ }
116
+ return result;
117
+ }
118
+ function printFileTreeWithTokens(nodes, fileTokenScores, path = []) {
119
+ let result = '';
120
+ const depth = path.length;
121
+ const indentToken = ' ';
122
+ const indentation = indentToken.repeat(depth);
123
+ const indentationWithFile = indentToken.repeat(depth + 1);
124
+ for (const node of nodes) {
125
+ if (node.type === 'directory' &&
126
+ (!node.children || node.children.length === 0)) {
127
+ // Skip empty directories
128
+ continue;
129
+ }
130
+ result += `${indentation}${node.name}${node.type === 'directory' ? '/' : ''}`;
131
+ path.push(node.name);
132
+ const filePath = path.join('/');
133
+ const tokenScores = fileTokenScores[filePath];
134
+ if (node.type === 'file' && tokenScores) {
135
+ const tokens = Object.keys(tokenScores);
136
+ if (tokens.length > 0) {
137
+ result += `\n${indentationWithFile}${tokens.join(' ')}`;
138
+ }
139
+ }
140
+ result += '\n';
141
+ if (node.type === 'directory' && node.children) {
142
+ result += printFileTreeWithTokens(node.children, fileTokenScores, path);
143
+ }
144
+ path.pop();
145
+ }
146
+ return result;
147
+ }
148
+ /**
149
+ * Ensures the given file contents ends with a newline character.
150
+ * @param contents - The file contents
151
+ * @returns the file contents with a newline character.
152
+ */
153
+ const ensureEndsWithNewline = (contents) => {
154
+ if (contents === null || contents === '') {
155
+ // Leave empty file as is
156
+ return contents;
157
+ }
158
+ if (contents.endsWith('\n')) {
159
+ return contents;
160
+ }
161
+ return contents + '\n';
162
+ };
163
+ exports.ensureEndsWithNewline = ensureEndsWithNewline;
164
+ const ensureDirectoryExists = (baseDir) => {
165
+ if (!fs.existsSync(baseDir)) {
166
+ fs.mkdirSync(baseDir, { recursive: true });
167
+ }
168
+ };
169
+ exports.ensureDirectoryExists = ensureDirectoryExists;
170
+ /**
171
+ * Removes markdown code block syntax if present, including any language tag
172
+ */
173
+ const cleanMarkdownCodeBlock = (content) => {
174
+ const cleanResponse = content.match(/^```(?:[a-zA-Z]+)?\n([\s\S]*)\n```$/)
175
+ ? content.replace(/^```(?:[a-zA-Z]+)?\n/, '').replace(/\n```$/, '')
176
+ : content;
177
+ return cleanResponse;
178
+ };
179
+ exports.cleanMarkdownCodeBlock = cleanMarkdownCodeBlock;
180
+ function isValidFilePath(path) {
181
+ if (!path)
182
+ return false;
183
+ // Check for whitespace
184
+ if (/\s/.test(path))
185
+ return false;
186
+ // Check for invalid characters
187
+ const invalidChars = /[<>:"|?*\x00-\x1F]/g;
188
+ if (invalidChars.test(path))
189
+ return false;
190
+ return true;
191
+ }
192
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { FileChanges } from '../actions';
2
+ export declare function hasStagedChanges(): boolean;
3
+ export declare function getStagedChanges(): string;
4
+ export declare function commitChanges(commitMessage: string): void;
5
+ export declare function stageAllChanges(): boolean;
6
+ export declare function stagePatches(dir: string, changes: FileChanges): boolean;
7
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,wBAAgB,gBAAgB,IAAI,OAAO,CAO1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,QAIlD;AAED,wBAAgB,eAAe,IAAI,OAAO,CAOzC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAiBvE"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.hasStagedChanges = hasStagedChanges;
27
+ exports.getStagedChanges = getStagedChanges;
28
+ exports.commitChanges = commitChanges;
29
+ exports.stageAllChanges = stageAllChanges;
30
+ exports.stagePatches = stagePatches;
31
+ const child_process_1 = require("child_process");
32
+ const fs = __importStar(require("fs"));
33
+ const path = __importStar(require("path"));
34
+ function hasStagedChanges() {
35
+ try {
36
+ (0, child_process_1.execSync)('git diff --staged --quiet', { stdio: 'ignore' });
37
+ return false;
38
+ }
39
+ catch {
40
+ return true;
41
+ }
42
+ }
43
+ function getStagedChanges() {
44
+ try {
45
+ return (0, child_process_1.execSync)('git diff --staged').toString();
46
+ }
47
+ catch (error) {
48
+ return '';
49
+ }
50
+ }
51
+ function commitChanges(commitMessage) {
52
+ try {
53
+ (0, child_process_1.execSync)(`git commit -m "${commitMessage}"`, { stdio: 'ignore' });
54
+ }
55
+ catch (error) { }
56
+ }
57
+ function stageAllChanges() {
58
+ try {
59
+ (0, child_process_1.execSync)('git add -A', { stdio: 'pipe' });
60
+ return hasStagedChanges();
61
+ }
62
+ catch (error) {
63
+ return false;
64
+ }
65
+ }
66
+ function stagePatches(dir, changes) {
67
+ try {
68
+ const fileNames = changes.map((change) => change.path);
69
+ const existingFileNames = fileNames.filter((filePath) => fs.existsSync(path.join(dir, filePath)));
70
+ if (existingFileNames.length === 0) {
71
+ return false;
72
+ }
73
+ (0, child_process_1.execSync)(`git add ${existingFileNames.join(' ')}`, { cwd: dir });
74
+ return hasStagedChanges();
75
+ }
76
+ catch (error) {
77
+ console.error('Error in stagePatches:', error);
78
+ return false;
79
+ }
80
+ }
81
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4CAOC;AAED,4CAMC;AAED,sCAIC;AAED,0CAOC;AAED,oCAiBC;AAtDD,iDAAwC;AACxC,uCAAwB;AACxB,2CAA4B;AAG5B,SAAgB,gBAAgB;IAC9B,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC1D,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB;IAC9B,IAAI,CAAC;QACH,OAAO,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,aAAqB;IACjD,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,kBAAkB,aAAa,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;AACpB,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACzC,OAAO,gBAAgB,EAAE,CAAA;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,OAAoB;IAC5D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CACxC,CAAA;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAA,wBAAQ,EAAC,WAAW,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QAChE,OAAO,gBAAgB,EAAE,CAAA;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;QAC9C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface LoggerContext {
2
+ userId?: string;
3
+ userEmail?: string;
4
+ clientSessionId?: string;
5
+ [key: string]: any;
6
+ }
7
+ export declare const withLoggerContext: <T>(additionalContext: Partial<LoggerContext>, fn: () => Promise<T>) => Promise<T>;
8
+ export declare const logger: import("pino").Logger<never, boolean>;
9
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,qBACd,OAAO,CAAC,aAAa,CAAC,MACrC,MAAM,OAAO,CAAC,CAAC,CAAC,eAQrB,CAAA;AAaD,eAAO,MAAM,MAAM,uCAalB,CAAA"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logger = exports.withLoggerContext = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const pino_1 = __importDefault(require("pino"));
9
+ const env_mjs_1 = require("../env.mjs");
10
+ let AsyncLocalStorageImpl;
11
+ try {
12
+ // Load AsyncLocalStorage via require
13
+ AsyncLocalStorageImpl = require('async_hooks').AsyncLocalStorage;
14
+ }
15
+ catch {
16
+ AsyncLocalStorageImpl = null;
17
+ }
18
+ // Create a no‑op shim when AsyncLocalStorage isn't present
19
+ const loggerAsyncStorage = AsyncLocalStorageImpl !== null
20
+ ? new AsyncLocalStorageImpl()
21
+ : {
22
+ // run() just executes fn without context tracking
23
+ run: (_, fn, ...args) => fn(...args),
24
+ getStore: () => undefined,
25
+ };
26
+ const withLoggerContext = (additionalContext, fn) => {
27
+ const store = (loggerAsyncStorage.getStore?.() ?? {});
28
+ // Cast to Node's AsyncLocalStorage to resolve overload mismatch
29
+ return loggerAsyncStorage.run({ ...store, ...additionalContext }, fn);
30
+ };
31
+ exports.withLoggerContext = withLoggerContext;
32
+ // Only use file transport when not running in Edge/browser‑like env
33
+ const runningInEdge = process.env.NEXT_RUNTIME === 'edge';
34
+ const fileTransport = !runningInEdge && env_mjs_1.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'production'
35
+ ? pino_1.default.transport({
36
+ target: 'pino/file',
37
+ options: { destination: path_1.default.join(__dirname, '..', 'debug.log') },
38
+ level: 'debug',
39
+ })
40
+ : undefined;
41
+ exports.logger = (0, pino_1.default)({
42
+ level: 'debug',
43
+ mixin() {
44
+ // If AsyncLocalStorage isn't available, return undefined
45
+ return { logTrace: loggerAsyncStorage.getStore?.() };
46
+ },
47
+ formatters: {
48
+ level: (label) => ({ level: label.toUpperCase() }),
49
+ },
50
+ timestamp: () => `,"timestamp":"${new Date().toISOString()}"`,
51
+ }, fileTransport);
52
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AAEvB,gDAAuB;AAEvB,wCAAgC;AAEhC,IAAI,qBAA4E,CAAA;AAChF,IAAI,CAAC;IACH,qCAAqC;IACrC,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAA;AAClE,CAAC;AAAC,MAAM,CAAC;IACP,qBAAqB,GAAG,IAAI,CAAA;AAC9B,CAAC;AAED,2DAA2D;AAC3D,MAAM,kBAAkB,GACtB,qBAAqB,KAAK,IAAI;IAC5B,CAAC,CAAC,IAAI,qBAAqB,EAAiB;IAC5C,CAAC,CAAC;QACE,kDAAkD;QAClD,GAAG,EAAE,CAAqB,CAAM,EAAE,EAAqB,EAAE,GAAG,IAAO,EAAE,EAAE,CACrE,EAAE,CAAC,GAAG,IAAI,CAAC;QACb,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS;KAC1B,CAAA;AASA,MAAM,iBAAiB,GAAG,CAC/B,iBAAyC,EACzC,EAAoB,EACpB,EAAE;IACF,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAkB,CAAA;IACtE,gEAAgE;IAChE,OAAQ,kBAA2D,CAAC,GAAG,CACrE,EAAE,GAAG,KAAK,EAAE,GAAG,iBAAiB,EAAE,EAClC,EAAE,CACH,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,iBAAiB,qBAU7B;AAED,oEAAoE;AACpE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAA;AACzD,MAAM,aAAa,GACjB,CAAC,aAAa,IAAI,aAAG,CAAC,0BAA0B,KAAK,YAAY;IAC/D,CAAC,CAAC,cAAI,CAAC,SAAS,CAAC;QACb,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,EAAE,WAAW,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE;QACjE,KAAK,EAAE,OAAO;KACf,CAAC;IACJ,CAAC,CAAC,SAAS,CAAA;AAEF,QAAA,MAAM,GAAG,IAAA,cAAI,EACxB;IACE,KAAK,EAAE,OAAO;IACd,KAAK;QACH,yDAAyD;QACzD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAA;IACtD,CAAC;IACD,UAAU,EAAE;QACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;KACnD;IACD,SAAS,EAAE,GAAG,EAAE,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG;CAC9D,EACD,aAAa,CACd,CAAA"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * A simple Least Recently Used (LRU) cache implementation using a Map.
3
+ * It leverages the fact that Map objects maintain insertion order.
4
+ */
5
+ export declare class LRUCache<K, V> {
6
+ private maxSize;
7
+ private cache;
8
+ constructor(maxSize: number);
9
+ /**
10
+ * Retrieves an item from the cache. If found, marks it as recently used.
11
+ * @param key The key of the item to retrieve.
12
+ * @returns The value associated with the key, or undefined if not found.
13
+ */
14
+ get(key: K): V | undefined;
15
+ /**
16
+ * Adds or updates an item in the cache. If the cache exceeds maxSize,
17
+ * the least recently used item is evicted.
18
+ * @param key The key of the item to set.
19
+ * @param value The value to associate with the key.
20
+ */
21
+ set(key: K, value: V): void;
22
+ /**
23
+ * Returns the current number of items in the cache.
24
+ */
25
+ get size(): number;
26
+ /**
27
+ * Clears all items from the cache.
28
+ */
29
+ clear(): void;
30
+ }
31
+ //# sourceMappingURL=lru-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../src/util/lru-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IAGZ,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,KAAK,CAAkB;gBAEX,OAAO,EAAE,MAAM;IAMnC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAW1B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAiB3B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}