@triedotdev/mcp 1.0.151 → 1.0.154

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 (113) hide show
  1. package/README.md +34 -6
  2. package/dist/{autonomy-config-3APNC6QF.js → autonomy-config-RKLZW4XL.js} +4 -4
  3. package/dist/{chat-store-HMTDL7I2.js → chat-store-O3IJ5PMN.js} +4 -4
  4. package/dist/{chunk-IXO4G4D3.js → chunk-2LAJKFWU.js} +2 -2
  5. package/dist/{chunk-F7BMFOZ6.js → chunk-3CYMLM35.js} +2 -2
  6. package/dist/{chunk-ED7PLRQA.js → chunk-4ZAFQEP6.js} +4 -4
  7. package/dist/{chunk-4TQQP7JD.js → chunk-7F2R2ITA.js} +2 -2
  8. package/dist/{chunk-LNUMECBJ.js → chunk-ALSCZ7WR.js} +2 -2
  9. package/dist/{chunk-V3O7C2LY.js → chunk-CBAMZERA.js} +2 -2
  10. package/dist/{chunk-G7Q23IGF.js → chunk-EMJ7RVWB.js} +9 -9
  11. package/dist/{chunk-TU7D5DEW.js → chunk-FTOF3FHT.js} +3 -3
  12. package/dist/{chunk-3KZBC3RJ.js → chunk-FXZAABXO.js} +2 -2
  13. package/dist/{chunk-TWPX6PHF.js → chunk-HD5H7YSW.js} +2 -2
  14. package/dist/{chunk-APMV77PU.js → chunk-JKEEQAG2.js} +1 -1
  15. package/dist/chunk-JKEEQAG2.js.map +1 -0
  16. package/dist/{chunk-TWQPOVRA.js → chunk-JYWGYUKX.js} +2 -2
  17. package/dist/{chunk-TIMIKBY2.js → chunk-KLMJKM63.js} +2 -2
  18. package/dist/{chunk-TCNCNWGV.js → chunk-KYKADM7P.js} +2 -2
  19. package/dist/{chunk-GLY76TSI.js → chunk-L4FODDDB.js} +2 -2
  20. package/dist/{chunk-JIS2OCZR.js → chunk-LFNH3CSN.js} +4 -4
  21. package/dist/{chunk-4UDBGYI3.js → chunk-LJISDV3A.js} +13 -13
  22. package/dist/{chunk-74R4XSFB.js → chunk-NVZZUUEU.js} +5 -5
  23. package/dist/{chunk-REHKDCI6.js → chunk-OVSYTWUU.js} +2 -2
  24. package/dist/{chunk-IFBEAOHH.js → chunk-OWSGJUUR.js} +6 -6
  25. package/dist/{chunk-SU3WCAC4.js → chunk-QAM5X5HM.js} +1466 -49
  26. package/dist/chunk-QAM5X5HM.js.map +1 -0
  27. package/dist/{chunk-ABY2R7OK.js → chunk-T7UAH7GE.js} +2 -2
  28. package/dist/{chunk-OJXFQRUE.js → chunk-UL337UDQ.js} +2 -2
  29. package/dist/{chunk-F4NJ4CBP.js → chunk-WO7CC5FH.js} +2 -2
  30. package/dist/{chunk-QQG42HCI.js → chunk-XD2HKZVB.js} +2 -2
  31. package/dist/{chunk-WOTLY5NA.js → chunk-YEQXKKZQ.js} +2 -2
  32. package/dist/{chunk-7HYOJ4Q7.js → chunk-Z2E7X4WI.js} +7 -7
  33. package/dist/cli/create-agent.js +2 -2
  34. package/dist/cli/main.js +19 -19
  35. package/dist/cli/main.js.map +1 -1
  36. package/dist/cli/yolo-daemon.js +64 -27
  37. package/dist/cli/yolo-daemon.js.map +1 -1
  38. package/dist/{client-5L64D5SQ.js → client-ZHOLZTRW.js} +4 -4
  39. package/dist/{codebase-index-OOE7OAHP.js → codebase-index-N37NDF2A.js} +4 -4
  40. package/dist/{fast-analyzer-FMU3X4AZ.js → fast-analyzer-U6URGNQT.js} +6 -6
  41. package/dist/github-ingester-AR5A4RAC.js +11 -0
  42. package/dist/{goal-manager-VTBFFYN4.js → goal-manager-5QDITJKE.js} +8 -8
  43. package/dist/{goal-validator-EM5XVWVC.js → goal-validator-FU5QWDQT.js} +7 -7
  44. package/dist/graph-JO7GG65P.js +10 -0
  45. package/dist/{hypothesis-4UPE7KXU.js → hypothesis-JURDWVDC.js} +8 -8
  46. package/dist/incident-index-7CAXUNTL.js +11 -0
  47. package/dist/index.js +57 -1466
  48. package/dist/index.js.map +1 -1
  49. package/dist/{insight-store-QEEUQR5L.js → insight-store-AMEP5PPF.js} +4 -4
  50. package/dist/{issue-store-C6XYENE5.js → issue-store-RM3XLLKG.js} +5 -5
  51. package/dist/{ledger-VNA4DX3Z.js → ledger-PLE3C3X4.js} +4 -4
  52. package/dist/linear-ingester-NHFMKJBZ.js +11 -0
  53. package/dist/{output-manager-DZO5LGSG.js → output-manager-FX4V7ERT.js} +3 -3
  54. package/dist/{progress-PQVEM7BR.js → progress-PAYTY7BF.js} +2 -2
  55. package/dist/tiered-storage-3TUUR3L2.js +12 -0
  56. package/dist/trie-agent-QHPS4C5Z.js +27 -0
  57. package/dist/{vibe-code-signatures-ELEWJFGZ.js → vibe-code-signatures-J4GD4JOV.js} +3 -3
  58. package/dist/{vulnerability-signatures-EIJQX2TS.js → vulnerability-signatures-EIKOHFPK.js} +3 -3
  59. package/package.json +1 -1
  60. package/dist/chunk-APMV77PU.js.map +0 -1
  61. package/dist/chunk-SU3WCAC4.js.map +0 -1
  62. package/dist/github-ingester-C66ZRUYC.js +0 -11
  63. package/dist/graph-26JPZ3DF.js +0 -10
  64. package/dist/incident-index-H6APJ4S3.js +0 -11
  65. package/dist/linear-ingester-WIUBWF55.js +0 -11
  66. package/dist/tiered-storage-P6Z3NV2Q.js +0 -12
  67. package/dist/trie-agent-GJJJCL6P.js +0 -27
  68. /package/dist/{autonomy-config-3APNC6QF.js.map → autonomy-config-RKLZW4XL.js.map} +0 -0
  69. /package/dist/{chat-store-HMTDL7I2.js.map → chat-store-O3IJ5PMN.js.map} +0 -0
  70. /package/dist/{chunk-IXO4G4D3.js.map → chunk-2LAJKFWU.js.map} +0 -0
  71. /package/dist/{chunk-F7BMFOZ6.js.map → chunk-3CYMLM35.js.map} +0 -0
  72. /package/dist/{chunk-ED7PLRQA.js.map → chunk-4ZAFQEP6.js.map} +0 -0
  73. /package/dist/{chunk-4TQQP7JD.js.map → chunk-7F2R2ITA.js.map} +0 -0
  74. /package/dist/{chunk-LNUMECBJ.js.map → chunk-ALSCZ7WR.js.map} +0 -0
  75. /package/dist/{chunk-V3O7C2LY.js.map → chunk-CBAMZERA.js.map} +0 -0
  76. /package/dist/{chunk-G7Q23IGF.js.map → chunk-EMJ7RVWB.js.map} +0 -0
  77. /package/dist/{chunk-TU7D5DEW.js.map → chunk-FTOF3FHT.js.map} +0 -0
  78. /package/dist/{chunk-3KZBC3RJ.js.map → chunk-FXZAABXO.js.map} +0 -0
  79. /package/dist/{chunk-TWPX6PHF.js.map → chunk-HD5H7YSW.js.map} +0 -0
  80. /package/dist/{chunk-TWQPOVRA.js.map → chunk-JYWGYUKX.js.map} +0 -0
  81. /package/dist/{chunk-TIMIKBY2.js.map → chunk-KLMJKM63.js.map} +0 -0
  82. /package/dist/{chunk-TCNCNWGV.js.map → chunk-KYKADM7P.js.map} +0 -0
  83. /package/dist/{chunk-GLY76TSI.js.map → chunk-L4FODDDB.js.map} +0 -0
  84. /package/dist/{chunk-JIS2OCZR.js.map → chunk-LFNH3CSN.js.map} +0 -0
  85. /package/dist/{chunk-4UDBGYI3.js.map → chunk-LJISDV3A.js.map} +0 -0
  86. /package/dist/{chunk-74R4XSFB.js.map → chunk-NVZZUUEU.js.map} +0 -0
  87. /package/dist/{chunk-REHKDCI6.js.map → chunk-OVSYTWUU.js.map} +0 -0
  88. /package/dist/{chunk-IFBEAOHH.js.map → chunk-OWSGJUUR.js.map} +0 -0
  89. /package/dist/{chunk-ABY2R7OK.js.map → chunk-T7UAH7GE.js.map} +0 -0
  90. /package/dist/{chunk-OJXFQRUE.js.map → chunk-UL337UDQ.js.map} +0 -0
  91. /package/dist/{chunk-F4NJ4CBP.js.map → chunk-WO7CC5FH.js.map} +0 -0
  92. /package/dist/{chunk-QQG42HCI.js.map → chunk-XD2HKZVB.js.map} +0 -0
  93. /package/dist/{chunk-WOTLY5NA.js.map → chunk-YEQXKKZQ.js.map} +0 -0
  94. /package/dist/{chunk-7HYOJ4Q7.js.map → chunk-Z2E7X4WI.js.map} +0 -0
  95. /package/dist/{client-5L64D5SQ.js.map → client-ZHOLZTRW.js.map} +0 -0
  96. /package/dist/{codebase-index-OOE7OAHP.js.map → codebase-index-N37NDF2A.js.map} +0 -0
  97. /package/dist/{fast-analyzer-FMU3X4AZ.js.map → fast-analyzer-U6URGNQT.js.map} +0 -0
  98. /package/dist/{github-ingester-C66ZRUYC.js.map → github-ingester-AR5A4RAC.js.map} +0 -0
  99. /package/dist/{goal-manager-VTBFFYN4.js.map → goal-manager-5QDITJKE.js.map} +0 -0
  100. /package/dist/{goal-validator-EM5XVWVC.js.map → goal-validator-FU5QWDQT.js.map} +0 -0
  101. /package/dist/{graph-26JPZ3DF.js.map → graph-JO7GG65P.js.map} +0 -0
  102. /package/dist/{hypothesis-4UPE7KXU.js.map → hypothesis-JURDWVDC.js.map} +0 -0
  103. /package/dist/{incident-index-H6APJ4S3.js.map → incident-index-7CAXUNTL.js.map} +0 -0
  104. /package/dist/{insight-store-QEEUQR5L.js.map → insight-store-AMEP5PPF.js.map} +0 -0
  105. /package/dist/{issue-store-C6XYENE5.js.map → issue-store-RM3XLLKG.js.map} +0 -0
  106. /package/dist/{ledger-VNA4DX3Z.js.map → ledger-PLE3C3X4.js.map} +0 -0
  107. /package/dist/{linear-ingester-WIUBWF55.js.map → linear-ingester-NHFMKJBZ.js.map} +0 -0
  108. /package/dist/{output-manager-DZO5LGSG.js.map → output-manager-FX4V7ERT.js.map} +0 -0
  109. /package/dist/{progress-PQVEM7BR.js.map → progress-PAYTY7BF.js.map} +0 -0
  110. /package/dist/{tiered-storage-P6Z3NV2Q.js.map → tiered-storage-3TUUR3L2.js.map} +0 -0
  111. /package/dist/{trie-agent-GJJJCL6P.js.map → trie-agent-QHPS4C5Z.js.map} +0 -0
  112. /package/dist/{vibe-code-signatures-ELEWJFGZ.js.map → vibe-code-signatures-J4GD4JOV.js.map} +0 -0
  113. /package/dist/{vulnerability-signatures-EIJQX2TS.js.map → vulnerability-signatures-EIKOHFPK.js.map} +0 -0
package/README.md CHANGED
@@ -315,27 +315,55 @@ Edge cases, tradeoffs, and system coherence—Trie handles governance by remembe
315
315
 
316
316
  ### Goals & Hypotheses
317
317
 
318
- Set improvement goals and test theories:
318
+ Set improvement goals and test theories. **Goals are actively enforced in real-time** as you code:
319
319
 
320
320
  ```bash
321
- # Set a goal
322
- trie goal add "Reduce checkout bugs by 50%"
321
+ # Set a goal - any custom rule you want enforced
322
+ trie goal add "No console.log statements in production"
323
+ trie goal add "All API endpoints must have rate limiting"
324
+ trie goal add "We never truncate text in UI components"
323
325
 
324
326
  # Add a hypothesis
325
327
  trie hypothesis add "Code reviews reduce bug rate"
326
328
 
327
- # Trie tracks progress and validates hypotheses over time
329
+ # View progress
330
+ trie goal list
328
331
  ```
329
332
 
333
+ **How Goal Checking Works:**
334
+
335
+ When you run `trie watch`, the system actively monitors your code for goal violations using AI-powered analysis:
336
+
337
+ 1. **Custom & Flexible** - Goals can be any quality rule you define (no emojis, no TODOs, security patterns, UI standards, etc.)
338
+ 2. **RAG-Based** - Uses semantic understanding, not just keyword matching
339
+ 3. **Real-Time** - Checks every file change against ALL active goals
340
+ 4. **Smart Caching** - Avoids re-scanning unchanged files
341
+ 5. **Cost-Aware** - Token budgets and cooldowns prevent runaway AI costs
342
+ 6. **High Confidence** - Only reports violations with strong confidence scores
343
+
344
+ **Example Goal Violations Detected:**
345
+ - "No emojis in code" → Finds any Unicode emoji anywhere in files
346
+ - "All functions must have JSDoc" → Checks for missing documentation
347
+ - "No inline styles in React" → Detects style attributes in JSX
348
+ - "Every TODO must have a ticket reference" → Validates TODO format
349
+
350
+ Goals are tracked over time with metrics (violations caught, fixed, progress percentage).
351
+
330
352
  ### Watch Mode
331
353
 
332
- Real-time monitoring with visual dashboard:
354
+ Real-time monitoring with **proactive goal violation detection**:
333
355
 
334
356
  ```bash
335
357
  trie watch
336
358
  ```
337
359
 
338
- Interactive panels for goals, memory, analysis activity, and more.
360
+ **Features:**
361
+ - **Interactive dashboard** with goals, memory, analysis activity panels
362
+ - **AI-powered goal checking** - automatically detects violations of your custom rules
363
+ - **Token-aware** - manages AI costs with budgets and cooldowns
364
+ - **Smart prioritization** - focuses on high-risk files first
365
+ - **Caching** - avoids duplicate scans of unchanged files
366
+ - **Real-time nudges** - immediate feedback when violations are detected
339
367
 
340
368
  Running in Background: To keep trie watch running in the background, use screen or tmux:
341
369
 
@@ -10,9 +10,9 @@ import {
10
10
  shouldAutoFix,
11
11
  shouldBlockPush,
12
12
  trackIssueOccurrence
13
- } from "./chunk-QQG42HCI.js";
14
- import "./chunk-4TQQP7JD.js";
15
- import "./chunk-APMV77PU.js";
13
+ } from "./chunk-XD2HKZVB.js";
14
+ import "./chunk-7F2R2ITA.js";
15
+ import "./chunk-JKEEQAG2.js";
16
16
  import "./chunk-DGUM43GV.js";
17
17
  export {
18
18
  clearConfigCache,
@@ -27,4 +27,4 @@ export {
27
27
  shouldBlockPush,
28
28
  trackIssueOccurrence
29
29
  };
30
- //# sourceMappingURL=autonomy-config-3APNC6QF.js.map
30
+ //# sourceMappingURL=autonomy-config-RKLZW4XL.js.map
@@ -2,14 +2,14 @@ import {
2
2
  ChatStore,
3
3
  clearChatStores,
4
4
  getChatStore
5
- } from "./chunk-F7BMFOZ6.js";
5
+ } from "./chunk-3CYMLM35.js";
6
6
  import "./chunk-43X6JBEM.js";
7
- import "./chunk-4TQQP7JD.js";
8
- import "./chunk-APMV77PU.js";
7
+ import "./chunk-7F2R2ITA.js";
8
+ import "./chunk-JKEEQAG2.js";
9
9
  import "./chunk-DGUM43GV.js";
10
10
  export {
11
11
  ChatStore,
12
12
  clearChatStores,
13
13
  getChatStore
14
14
  };
15
- //# sourceMappingURL=chat-store-HMTDL7I2.js.map
15
+ //# sourceMappingURL=chat-store-O3IJ5PMN.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-6NLHFIYA.js";
4
4
  import {
5
5
  isInteractiveMode
6
- } from "./chunk-APMV77PU.js";
6
+ } from "./chunk-JKEEQAG2.js";
7
7
 
8
8
  // src/trie/vibe-code-signatures.ts
9
9
  var VIBE_CODE_PATTERNS = [
@@ -984,4 +984,4 @@ export {
984
984
  scanForVibeCodeIssues,
985
985
  getVibeCodeStats
986
986
  };
987
- //# sourceMappingURL=chunk-IXO4G4D3.js.map
987
+ //# sourceMappingURL=chunk-2LAJKFWU.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-43X6JBEM.js";
4
4
  import {
5
5
  getTrieDirectory
6
- } from "./chunk-4TQQP7JD.js";
6
+ } from "./chunk-7F2R2ITA.js";
7
7
 
8
8
  // src/cli/dashboard/chat-store.ts
9
9
  import { mkdir, readFile, unlink } from "fs/promises";
@@ -345,4 +345,4 @@ export {
345
345
  getChatStore,
346
346
  clearChatStores
347
347
  };
348
- //# sourceMappingURL=chunk-F7BMFOZ6.js.map
348
+ //# sourceMappingURL=chunk-3CYMLM35.js.map
@@ -6,14 +6,14 @@ import {
6
6
  } from "./chunk-EFWVF6TI.js";
7
7
  import {
8
8
  appendIssuesToLedger
9
- } from "./chunk-TWPX6PHF.js";
9
+ } from "./chunk-HD5H7YSW.js";
10
10
  import {
11
11
  atomicWriteJSON
12
12
  } from "./chunk-43X6JBEM.js";
13
13
  import {
14
14
  getTrieDirectory,
15
15
  getWorkingDirectory
16
- } from "./chunk-4TQQP7JD.js";
16
+ } from "./chunk-7F2R2ITA.js";
17
17
 
18
18
  // src/memory/issue-store.ts
19
19
  import { mkdir as mkdir2, readFile as readFile2, readdir } from "fs/promises";
@@ -674,7 +674,7 @@ async function getDailyLogs(workDir) {
674
674
  async function getIssueLedgerEntry(issue, workDir) {
675
675
  if (!issue.ledgerBlockHash) return null;
676
676
  const projectDir = workDir || getWorkingDirectory(void 0, true);
677
- const { getLedgerBlocks } = await import("./ledger-VNA4DX3Z.js");
677
+ const { getLedgerBlocks } = await import("./ledger-PLE3C3X4.js");
678
678
  const blocks = await getLedgerBlocks(projectDir);
679
679
  const block = blocks.find((b) => b.blockHash === issue.ledgerBlockHash);
680
680
  if (!block) return null;
@@ -779,4 +779,4 @@ export {
779
779
  getDailyLogs,
780
780
  getIssueLedgerEntry
781
781
  };
782
- //# sourceMappingURL=chunk-ED7PLRQA.js.map
782
+ //# sourceMappingURL=chunk-4ZAFQEP6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isInteractiveMode
3
- } from "./chunk-APMV77PU.js";
3
+ } from "./chunk-JKEEQAG2.js";
4
4
 
5
5
  // src/utils/workspace.ts
6
6
  import { execSync } from "child_process";
@@ -186,4 +186,4 @@ export {
186
186
  getTrieDirectory,
187
187
  getWorkingDirectory
188
188
  };
189
- //# sourceMappingURL=chunk-4TQQP7JD.js.map
189
+ //# sourceMappingURL=chunk-7F2R2ITA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getTrieDirectory
3
- } from "./chunk-4TQQP7JD.js";
3
+ } from "./chunk-7F2R2ITA.js";
4
4
 
5
5
  // src/storage/tiered-storage.ts
6
6
  import { writeFile, mkdir } from "fs/promises";
@@ -588,4 +588,4 @@ export {
588
588
  TieredStorage,
589
589
  getStorage
590
590
  };
591
- //# sourceMappingURL=chunk-LNUMECBJ.js.map
591
+ //# sourceMappingURL=chunk-ALSCZ7WR.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-TU7D5DEW.js";
3
+ } from "./chunk-FTOF3FHT.js";
4
4
 
5
5
  // src/ingest/github-ingester.ts
6
6
  import path from "path";
@@ -213,4 +213,4 @@ var GitHubIngester = class {
213
213
  export {
214
214
  GitHubIngester
215
215
  };
216
- //# sourceMappingURL=chunk-V3O7C2LY.js.map
216
+ //# sourceMappingURL=chunk-CBAMZERA.js.map
@@ -1,35 +1,35 @@
1
1
  import {
2
2
  IncidentIndex
3
- } from "./chunk-TCNCNWGV.js";
3
+ } from "./chunk-KYKADM7P.js";
4
4
  import {
5
5
  TriePatternDiscovery
6
6
  } from "./chunk-ZV2K6M7T.js";
7
7
  import {
8
8
  ContextGraph
9
- } from "./chunk-TWQPOVRA.js";
9
+ } from "./chunk-JYWGYUKX.js";
10
10
  import {
11
11
  scanForVulnerabilities
12
- } from "./chunk-F4NJ4CBP.js";
12
+ } from "./chunk-WO7CC5FH.js";
13
13
  import {
14
14
  scanForVibeCodeIssues
15
- } from "./chunk-IXO4G4D3.js";
15
+ } from "./chunk-2LAJKFWU.js";
16
16
  import {
17
17
  storeIssues
18
- } from "./chunk-ED7PLRQA.js";
18
+ } from "./chunk-4ZAFQEP6.js";
19
19
  import {
20
20
  getDiff,
21
21
  getRecentCommits,
22
22
  getStagedChanges,
23
23
  getUncommittedChanges,
24
24
  getWorkingTreeDiff
25
- } from "./chunk-TWPX6PHF.js";
25
+ } from "./chunk-HD5H7YSW.js";
26
26
  import {
27
27
  getTrieDirectory,
28
28
  getWorkingDirectory
29
- } from "./chunk-4TQQP7JD.js";
29
+ } from "./chunk-7F2R2ITA.js";
30
30
  import {
31
31
  isInteractiveMode
32
- } from "./chunk-APMV77PU.js";
32
+ } from "./chunk-JKEEQAG2.js";
33
33
 
34
34
  // src/cli/checkpoint.ts
35
35
  import { existsSync } from "fs";
@@ -1481,4 +1481,4 @@ export {
1481
1481
  handleCheckpointCommand,
1482
1482
  isTrieInitialized
1483
1483
  };
1484
- //# sourceMappingURL=chunk-G7Q23IGF.js.map
1484
+ //# sourceMappingURL=chunk-EMJ7RVWB.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getTrieDirectory,
3
3
  getWorkingDirectory
4
- } from "./chunk-4TQQP7JD.js";
4
+ } from "./chunk-7F2R2ITA.js";
5
5
  import {
6
6
  isInteractiveMode
7
- } from "./chunk-APMV77PU.js";
7
+ } from "./chunk-JKEEQAG2.js";
8
8
 
9
9
  // src/config/loader.ts
10
10
  import { readFile, writeFile, mkdir } from "fs/promises";
@@ -464,4 +464,4 @@ export {
464
464
  loadConfig,
465
465
  saveConfig
466
466
  };
467
- //# sourceMappingURL=chunk-TU7D5DEW.js.map
467
+ //# sourceMappingURL=chunk-FTOF3FHT.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-TU7D5DEW.js";
3
+ } from "./chunk-FTOF3FHT.js";
4
4
 
5
5
  // src/ingest/linear-ingester.ts
6
6
  import path from "path";
@@ -129,4 +129,4 @@ var LinearIngester = class {
129
129
  export {
130
130
  LinearIngester
131
131
  };
132
- //# sourceMappingURL=chunk-3KZBC3RJ.js.map
132
+ //# sourceMappingURL=chunk-FXZAABXO.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getTrieDirectory,
6
6
  getWorkingDirectory
7
- } from "./chunk-4TQQP7JD.js";
7
+ } from "./chunk-7F2R2ITA.js";
8
8
 
9
9
  // src/memory/ledger.ts
10
10
  import { createHash } from "crypto";
@@ -1389,4 +1389,4 @@ export {
1389
1389
  getEntryCorrectionHistory,
1390
1390
  getCorrectionStats
1391
1391
  };
1392
- //# sourceMappingURL=chunk-TWPX6PHF.js.map
1392
+ //# sourceMappingURL=chunk-HD5H7YSW.js.map
@@ -310,4 +310,4 @@ export {
310
310
  getProgressReporter,
311
311
  resetProgressReporter
312
312
  };
313
- //# sourceMappingURL=chunk-APMV77PU.js.map
313
+ //# sourceMappingURL=chunk-JKEEQAG2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/progress.ts"],"sourcesContent":["/**\n * Progress Reporter for Trie Agent\n * \n * Provides real-time feedback to users as the agent works.\n * Uses console.error because MCP clients display stderr to users.\n */\n\n/**\n * Global interactive mode flag\n * When enabled, suppresses all console output (handled by InteractiveDashboard instead)\n */\nlet _interactiveMode = false;\n\n/**\n * Enable or disable interactive mode\n * When enabled, all console output from ProgressReporter and AgentProgressReporter is suppressed\n * \n * NOTE: This only sets the flag. The caller should verify that process.stdin.isTTY\n * and process.stdin.setRawMode are available before enabling interactive mode.\n */\nexport function setInteractiveMode(enabled: boolean): void {\n _interactiveMode = enabled;\n}\n\n/**\n * Check if interactive mode is enabled\n */\nexport function isInteractiveMode(): boolean {\n return _interactiveMode;\n}\n\nexport type ProgressPhase = \n | 'init'\n | 'discovery'\n | 'reading'\n | 'analyzing'\n | 'ai-review'\n | 'prioritizing'\n | 'complete';\n\nexport interface ProgressCallback {\n (phase: ProgressPhase, message: string, detail?: string): void;\n}\n\n/**\n * Progress Reporter - streams status updates to the user\n */\nexport class ProgressReporter {\n private currentPhase: ProgressPhase = 'init';\n private startTime: number = Date.now();\n private phaseStartTime: number = Date.now();\n private verbose: boolean;\n\n constructor(options: { verbose?: boolean } = {}) {\n this.verbose = options.verbose ?? true;\n }\n\n /**\n * Report a status update\n */\n report(message: string, detail?: string): void {\n if (!this.verbose || _interactiveMode) return;\n \n const prefix = this.getPhaseIcon(this.currentPhase);\n const fullMessage = detail ? `${message}: ${detail}` : message;\n console.error(`${prefix} ${fullMessage}`);\n }\n\n /**\n * Start a new phase\n */\n startPhase(phase: ProgressPhase, message: string): void {\n this.currentPhase = phase;\n this.phaseStartTime = Date.now();\n this.report(message);\n }\n\n /**\n * Update within current phase\n */\n update(message: string, detail?: string): void {\n this.report(message, detail);\n }\n\n /**\n * Report progress on a file\n */\n file(action: string, filePath: string): void {\n // Show just the filename for cleaner output\n const fileName = filePath.split('/').pop() || filePath;\n this.report(action, fileName);\n }\n\n /**\n * Report an AI analysis step\n */\n ai(action: string, context?: string): void {\n if (_interactiveMode) return;\n const prefix = '[AI]';\n const message = context ? `${action}: ${context}` : action;\n console.error(`${prefix} ${message}`);\n }\n\n /**\n * Report a finding\n */\n finding(severity: 'critical' | 'serious' | 'moderate' | 'low', message: string): void {\n if (_interactiveMode) return;\n const labels = {\n critical: '[CRITICAL]',\n serious: '[SERIOUS]',\n moderate: '[MODERATE]',\n low: '[LOW]'\n };\n console.error(` ${labels[severity]} ${message}`);\n }\n\n /**\n * Complete current phase\n */\n completePhase(summary: string): void {\n const elapsed = Date.now() - this.phaseStartTime;\n this.report(`Done: ${summary}`, `(${elapsed}ms)`);\n }\n\n /**\n * Complete the entire operation\n */\n complete(summary: string): void {\n if (_interactiveMode) return;\n const totalElapsed = Date.now() - this.startTime;\n console.error('');\n console.error(`----------------------------------------`);\n console.error(`[COMPLETE] ${summary}`);\n console.error(` Total time: ${(totalElapsed / 1000).toFixed(2)}s`);\n console.error(`----------------------------------------`);\n console.error('');\n }\n\n /**\n * Report an error\n */\n error(message: string, detail?: string): void {\n if (_interactiveMode) return;\n const fullMessage = detail ? `${message}: ${detail}` : message;\n console.error(`[ERROR] ${fullMessage}`);\n }\n\n /**\n * Report a warning\n */\n warn(message: string, detail?: string): void {\n if (_interactiveMode) return;\n const fullMessage = detail ? `${message}: ${detail}` : message;\n console.error(`[WARN] ${fullMessage}`);\n }\n\n /**\n * Get icon for current phase\n */\n private getPhaseIcon(phase: ProgressPhase): string {\n const icons: Record<ProgressPhase, string> = {\n 'init': '>>',\n 'discovery': '>>',\n 'reading': '>>',\n 'analyzing': '>>',\n 'ai-review': '[AI]',\n 'prioritizing': '>>',\n 'complete': '[OK]'\n };\n return icons[phase] || '>>';\n }\n\n /**\n * Create a sub-reporter for a specific agent\n */\n forAgent(agentName: string): AgentProgressReporter {\n return new AgentProgressReporter(agentName, this.verbose);\n }\n}\n\n/**\n * Progress reporter scoped to a specific agent\n */\nexport class AgentProgressReporter {\n private agentName: string;\n private verbose: boolean;\n private issueCount: number = 0;\n private issuesBySeverity: Map<string, number> = new Map();\n private batchedIssues: Map<string, Array<{ severity: string; issue: string; file?: string; line?: number }>> = new Map();\n private criticalIssues: Array<{ severity: string; issue: string; file?: string; line?: number }> = [];\n private seriousIssues: Array<{ severity: string; issue: string; file?: string; line?: number }> = [];\n private flushTimer: NodeJS.Timeout | null = null;\n private readonly BATCH_DELAY_MS = 100; // Batch issues for 100ms before flushing\n\n constructor(agentName: string, verbose: boolean = true) {\n this.agentName = agentName;\n this.verbose = verbose;\n }\n\n start(): void {\n if (!this.verbose || _interactiveMode) return;\n console.error(`\\n[SCOUT] ${this.agentName.toUpperCase()} starting...`);\n }\n\n analyzing(_file: string): void {\n if (!this.verbose || _interactiveMode) return;\n // Suppress individual file analysis messages - they're too verbose\n // The progress updates from streaming manager will show file progress\n }\n\n aiReview(context: string): void {\n if (!this.verbose || _interactiveMode) return;\n // Suppress AI review messages - they're too verbose during watch mode\n // Only show if there are very few issues (indicating a focused scan)\n if (this.issueCount < 5) {\n console.error(` [AI] reviewing: ${context}`);\n }\n }\n\n found(severity: string, issue: string, file?: string, line?: number): void {\n this.issueCount++;\n \n // Track by severity\n const current = this.issuesBySeverity.get(severity) || 0;\n this.issuesBySeverity.set(severity, current + 1);\n\n // Store critical and serious issues for detailed output\n if (severity === 'critical') {\n this.criticalIssues.push({\n severity,\n issue,\n ...(file !== undefined ? { file } : {}),\n ...(line !== undefined ? { line } : {}),\n });\n // Flush critical issues immediately\n if (this.verbose && !_interactiveMode) {\n this.flushCriticalAndSerious();\n }\n } else if (severity === 'serious') {\n this.seriousIssues.push({\n severity,\n issue,\n ...(file !== undefined ? { file } : {}),\n ...(line !== undefined ? { line } : {}),\n });\n }\n\n // Batch similar issues together for cleaner output\n if (!this.verbose || _interactiveMode) return;\n\n // Normalize issue description for grouping (remove line numbers, file paths)\n const normalizedIssue = issue.replace(/at line \\d+/gi, '').replace(/in .+$/gi, '').trim();\n const key = `${severity}:${normalizedIssue}`;\n \n if (!this.batchedIssues.has(key)) {\n this.batchedIssues.set(key, []);\n }\n this.batchedIssues.get(key)!.push({\n severity,\n issue,\n ...(file !== undefined ? { file } : {}),\n ...(line !== undefined ? { line } : {}),\n });\n\n // Schedule flush (debounced) - but flush immediately for critical\n if (severity === 'critical') {\n this.flushBatchedIssues();\n } else {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n }\n this.flushTimer = setTimeout(() => this.flushBatchedIssues(), this.BATCH_DELAY_MS);\n }\n }\n\n private flushCriticalAndSerious(): void {\n // Always show critical issues immediately\n for (const issue of this.criticalIssues) {\n console.error(` [CRITICAL] Found: ${issue.issue}`);\n }\n this.criticalIssues = [];\n }\n\n private flushBatchedIssues(): void {\n if (!this.verbose || _interactiveMode) return;\n\n // Always show critical issues immediately (should already be flushed, but double-check)\n if (this.criticalIssues.length > 0) {\n this.flushCriticalAndSerious();\n }\n\n // Show serious issues (limit to first 10 to avoid spam)\n if (this.seriousIssues.length > 0) {\n for (const issue of this.seriousIssues.slice(0, 10)) {\n console.error(` [SERIOUS] Found: ${issue.issue}`);\n }\n if (this.seriousIssues.length > 10) {\n console.error(` ... and ${this.seriousIssues.length - 10} more serious issues`);\n }\n this.seriousIssues = [];\n }\n\n if (this.batchedIssues.size === 0) return;\n\n // For moderate and low issues, group similar ones together\n const moderateGroups: Array<{ pattern: string; count: number; examples: string[] }> = [];\n const lowGroups: Array<{ pattern: string; count: number; examples: string[] }> = [];\n\n for (const [key, issues] of this.batchedIssues.entries()) {\n const [severity, pattern = ''] = key.split(':', 2);\n const count = issues.length;\n const examples = issues.slice(0, 2).map(i => i.issue);\n\n if (severity === 'moderate') {\n moderateGroups.push({ pattern, count, examples });\n } else if (severity === 'low') {\n lowGroups.push({ pattern, count, examples });\n }\n }\n\n // Show moderate issues (grouped, max 5 groups)\n if (moderateGroups.length > 0) {\n for (const group of moderateGroups.slice(0, 5)) {\n if (group.count === 1) {\n console.error(` [MODERATE] Found: ${group.examples[0]}`);\n } else {\n console.error(` [MODERATE] Found: ${group.pattern} (${group.count} instances)`);\n }\n }\n if (moderateGroups.length > 5) {\n const remaining = moderateGroups.slice(5).reduce((sum, g) => sum + g.count, 0);\n console.error(` ... and ${remaining} more moderate issues`);\n }\n }\n\n // Show low issues (grouped, max 3 groups, only if not too many)\n // Suppress low issues if there are too many total issues\n if (lowGroups.length > 0 && this.issueCount < 200) {\n for (const group of lowGroups.slice(0, 3)) {\n if (group.count === 1) {\n console.error(` [LOW] Found: ${group.examples[0]}`);\n } else {\n console.error(` [LOW] Found: ${group.pattern} (${group.count} instances)`);\n }\n }\n if (lowGroups.length > 3) {\n const remaining = lowGroups.slice(3).reduce((sum, g) => sum + g.count, 0);\n console.error(` ... and ${remaining} more low-severity issues`);\n }\n } else if (lowGroups.length > 0) {\n // Too many issues - just show summary\n const totalLow = lowGroups.reduce((sum, g) => sum + g.count, 0);\n console.error(` [LOW] Found ${totalLow} low-severity issues (suppressed for brevity)`);\n }\n\n this.batchedIssues.clear();\n }\n\n complete(summary?: string): void {\n // Flush any remaining batched issues\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = null;\n }\n this.flushBatchedIssues();\n\n if (!this.verbose || _interactiveMode) return;\n\n // Build a better summary\n const severityCounts: string[] = [];\n if (this.issuesBySeverity.get('critical')) {\n severityCounts.push(`${this.issuesBySeverity.get('critical')} critical`);\n }\n if (this.issuesBySeverity.get('serious')) {\n severityCounts.push(`${this.issuesBySeverity.get('serious')} serious`);\n }\n if (this.issuesBySeverity.get('moderate')) {\n severityCounts.push(`${this.issuesBySeverity.get('moderate')} moderate`);\n }\n if (this.issuesBySeverity.get('low')) {\n severityCounts.push(`${this.issuesBySeverity.get('low')} low`);\n }\n\n const severitySummary = severityCounts.length > 0 \n ? ` (${severityCounts.join(', ')})`\n : '';\n \n const msg = summary || `${this.issueCount} issues found${severitySummary}`;\n console.error(` Done: ${this.agentName}: ${msg}`);\n }\n\n getIssueCount(): number {\n return this.issueCount;\n }\n\n getIssuesBySeverity(): Map<string, number> {\n return new Map(this.issuesBySeverity);\n }\n}\n\n/**\n * Global singleton for easy access\n */\nlet globalReporter: ProgressReporter | null = null;\n\nexport function getProgressReporter(options?: { verbose?: boolean }): ProgressReporter {\n if (!globalReporter) {\n globalReporter = new ProgressReporter(options);\n }\n return globalReporter;\n}\n\nexport function resetProgressReporter(): void {\n globalReporter = null;\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getTrieDirectory
3
- } from "./chunk-4TQQP7JD.js";
3
+ } from "./chunk-7F2R2ITA.js";
4
4
 
5
5
  // src/context/graph.ts
6
6
  import crypto from "crypto";
@@ -399,4 +399,4 @@ var ContextGraph = class {
399
399
  export {
400
400
  ContextGraph
401
401
  };
402
- //# sourceMappingURL=chunk-TWQPOVRA.js.map
402
+ //# sourceMappingURL=chunk-JYWGYUKX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isInteractiveMode
3
- } from "./chunk-APMV77PU.js";
3
+ } from "./chunk-JKEEQAG2.js";
4
4
 
5
5
  // src/utils/output-manager.ts
6
6
  import pc from "picocolors";
@@ -563,4 +563,4 @@ export {
563
563
  output,
564
564
  resetOutputManager
565
565
  };
566
- //# sourceMappingURL=chunk-TIMIKBY2.js.map
566
+ //# sourceMappingURL=chunk-KLMJKM63.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-6NLHFIYA.js";
4
4
  import {
5
5
  getTrieDirectory
6
- } from "./chunk-4TQQP7JD.js";
6
+ } from "./chunk-7F2R2ITA.js";
7
7
 
8
8
  // src/context/incident-index.ts
9
9
  import path2 from "path";
@@ -170,4 +170,4 @@ var IncidentIndex = class _IncidentIndex {
170
170
  export {
171
171
  IncidentIndex
172
172
  };
173
- //# sourceMappingURL=chunk-TCNCNWGV.js.map
173
+ //# sourceMappingURL=chunk-KYKADM7P.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-43X6JBEM.js";
8
8
  import {
9
9
  getTrieDirectory
10
- } from "./chunk-4TQQP7JD.js";
10
+ } from "./chunk-7F2R2ITA.js";
11
11
 
12
12
  // src/agent/project-state.ts
13
13
  import { mkdir, readFile } from "fs/promises";
@@ -686,4 +686,4 @@ function getProjectState(projectPath) {
686
686
  export {
687
687
  getProjectState
688
688
  };
689
- //# sourceMappingURL=chunk-GLY76TSI.js.map
689
+ //# sourceMappingURL=chunk-L4FODDDB.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  getInsightStore
3
- } from "./chunk-ABY2R7OK.js";
3
+ } from "./chunk-T7UAH7GE.js";
4
4
  import {
5
5
  getProjectState
6
- } from "./chunk-GLY76TSI.js";
6
+ } from "./chunk-L4FODDDB.js";
7
7
  import {
8
8
  getMemoryStats,
9
9
  searchIssues
10
- } from "./chunk-ED7PLRQA.js";
10
+ } from "./chunk-4ZAFQEP6.js";
11
11
 
12
12
  // src/agent/goal-manager.ts
13
13
  import { basename } from "path";
@@ -648,4 +648,4 @@ export {
648
648
  getGoalManager,
649
649
  clearGoalManagers
650
650
  };
651
- //# sourceMappingURL=chunk-JIS2OCZR.js.map
651
+ //# sourceMappingURL=chunk-LFNH3CSN.js.map
@@ -1,38 +1,38 @@
1
1
  import {
2
2
  getGoalManager
3
- } from "./chunk-JIS2OCZR.js";
3
+ } from "./chunk-LFNH3CSN.js";
4
4
  import {
5
5
  getHypothesisEngine
6
- } from "./chunk-74R4XSFB.js";
6
+ } from "./chunk-NVZZUUEU.js";
7
7
  import {
8
8
  getInsightStore
9
- } from "./chunk-ABY2R7OK.js";
9
+ } from "./chunk-T7UAH7GE.js";
10
10
  import {
11
11
  GotchaPredictor,
12
12
  SlackIntegration,
13
13
  findCrossProjectPatterns,
14
14
  recordToGlobalMemory
15
- } from "./chunk-IFBEAOHH.js";
15
+ } from "./chunk-OWSGJUUR.js";
16
16
  import {
17
17
  ContextGraph
18
- } from "./chunk-TWQPOVRA.js";
18
+ } from "./chunk-JYWGYUKX.js";
19
19
  import {
20
20
  isAIAvailable,
21
21
  runAIAnalysis
22
- } from "./chunk-OJXFQRUE.js";
22
+ } from "./chunk-UL337UDQ.js";
23
23
  import {
24
24
  getProjectState
25
- } from "./chunk-GLY76TSI.js";
25
+ } from "./chunk-L4FODDDB.js";
26
26
  import {
27
27
  getStorage
28
- } from "./chunk-LNUMECBJ.js";
28
+ } from "./chunk-ALSCZ7WR.js";
29
29
  import {
30
30
  autoResolveIssues,
31
31
  getHistoricalInsights,
32
32
  getIssueHash,
33
33
  searchIssues,
34
34
  storeIssues
35
- } from "./chunk-ED7PLRQA.js";
35
+ } from "./chunk-4ZAFQEP6.js";
36
36
 
37
37
  // src/agent/trie-agent.ts
38
38
  import { basename as basename2 } from "path";
@@ -1322,9 +1322,9 @@ var TrieAgent = class {
1322
1322
  }
1323
1323
  if (issues.length >= 5 && this.canCreateInsight("pattern-discovery")) {
1324
1324
  try {
1325
- const { IncidentIndex } = await import("./incident-index-H6APJ4S3.js");
1325
+ const { IncidentIndex } = await import("./incident-index-7CAXUNTL.js");
1326
1326
  const { TriePatternDiscovery } = await import("./pattern-discovery-F7LU5K6E.js");
1327
- const { ContextGraph: ContextGraph2 } = await import("./graph-26JPZ3DF.js");
1327
+ const { ContextGraph: ContextGraph2 } = await import("./graph-JO7GG65P.js");
1328
1328
  const graph = new ContextGraph2(this.projectPath);
1329
1329
  const incidentIndex = await IncidentIndex.build(graph, this.projectPath);
1330
1330
  const discovery = new TriePatternDiscovery(graph, incidentIndex);
@@ -1581,7 +1581,7 @@ var TrieAgent = class {
1581
1581
  await this.projectState.recordScan();
1582
1582
  try {
1583
1583
  const riskLevel = issues.filter((i) => i.severity === "critical").length > 0 ? "critical" : issues.filter((i) => i.severity === "serious").length >= 3 ? "high" : issues.length > 10 ? "medium" : "low";
1584
- const { calculateAdaptiveScanFrequency } = await import("./goal-manager-VTBFFYN4.js");
1584
+ const { calculateAdaptiveScanFrequency } = await import("./goal-manager-5QDITJKE.js");
1585
1585
  const result = await calculateAdaptiveScanFrequency(riskLevel);
1586
1586
  await this.projectState.setScanFrequency(result.frequencyMs);
1587
1587
  } catch {
@@ -1810,4 +1810,4 @@ export {
1810
1810
  TrieAgent,
1811
1811
  getTrieAgent
1812
1812
  };
1813
- //# sourceMappingURL=chunk-4UDBGYI3.js.map
1813
+ //# sourceMappingURL=chunk-LJISDV3A.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getInsightStore
3
- } from "./chunk-ABY2R7OK.js";
3
+ } from "./chunk-T7UAH7GE.js";
4
4
  import {
5
5
  getProjectState
6
- } from "./chunk-GLY76TSI.js";
6
+ } from "./chunk-L4FODDDB.js";
7
7
  import {
8
8
  searchIssues
9
- } from "./chunk-ED7PLRQA.js";
9
+ } from "./chunk-4ZAFQEP6.js";
10
10
 
11
11
  // src/agent/hypothesis.ts
12
12
  import { dirname } from "path";
@@ -134,7 +134,7 @@ var HypothesisEngine = class {
134
134
  * This enables fully agentic hypothesis creation based on actual codebase observations
135
135
  */
136
136
  async generateHypothesesWithAI(context) {
137
- const { isAIAvailable, runAIAnalysis } = await import("./client-5L64D5SQ.js");
137
+ const { isAIAvailable, runAIAnalysis } = await import("./client-ZHOLZTRW.js");
138
138
  if (!isAIAvailable()) {
139
139
  return [];
140
140
  }
@@ -724,4 +724,4 @@ export {
724
724
  clearHypothesisEngines,
725
725
  gatherEvidenceForHypothesis
726
726
  };
727
- //# sourceMappingURL=chunk-74R4XSFB.js.map
727
+ //# sourceMappingURL=chunk-NVZZUUEU.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getTrieDirectory,
3
3
  getWorkingDirectory
4
- } from "./chunk-4TQQP7JD.js";
4
+ } from "./chunk-7F2R2ITA.js";
5
5
 
6
6
  // src/utils/project-info.ts
7
7
  import { readFile, writeFile, mkdir } from "fs/promises";
@@ -847,4 +847,4 @@ export {
847
847
  loadContextState,
848
848
  getContextForAI
849
849
  };
850
- //# sourceMappingURL=chunk-REHKDCI6.js.map
850
+ //# sourceMappingURL=chunk-OVSYTWUU.js.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  tryGetClient
3
- } from "./chunk-OJXFQRUE.js";
3
+ } from "./chunk-UL337UDQ.js";
4
4
  import {
5
5
  scanForVulnerabilities
6
- } from "./chunk-F4NJ4CBP.js";
6
+ } from "./chunk-WO7CC5FH.js";
7
7
  import {
8
8
  scanForVibeCodeIssues
9
- } from "./chunk-IXO4G4D3.js";
9
+ } from "./chunk-2LAJKFWU.js";
10
10
  import {
11
11
  getStorage
12
- } from "./chunk-LNUMECBJ.js";
12
+ } from "./chunk-ALSCZ7WR.js";
13
13
  import {
14
14
  searchIssues
15
- } from "./chunk-ED7PLRQA.js";
15
+ } from "./chunk-4ZAFQEP6.js";
16
16
  import {
17
17
  BackupManager,
18
18
  GlobalPatternsIndexSchema,
@@ -821,4 +821,4 @@ export {
821
821
  SlackIntegration,
822
822
  GotchaPredictor
823
823
  };
824
- //# sourceMappingURL=chunk-IFBEAOHH.js.map
824
+ //# sourceMappingURL=chunk-OWSGJUUR.js.map