@llmtune/cli 0.1.8 → 0.2.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 (194) hide show
  1. package/README.md +206 -181
  2. package/dist/agent/conversation.d.ts.map +1 -0
  3. package/dist/agent/conversation.js.map +1 -0
  4. package/dist/agent/loop.d.ts.map +1 -0
  5. package/dist/agent/loop.js +45 -11
  6. package/dist/agent/loop.js.map +1 -0
  7. package/dist/agent/planner.d.ts.map +1 -0
  8. package/dist/agent/planner.js.map +1 -0
  9. package/dist/auth/client.d.ts.map +1 -0
  10. package/dist/auth/client.js.map +1 -0
  11. package/dist/auth/config.d.ts.map +1 -0
  12. package/dist/auth/config.js.map +1 -0
  13. package/dist/commands/balance.d.ts +2 -0
  14. package/dist/commands/balance.d.ts.map +1 -0
  15. package/dist/commands/balance.js +65 -0
  16. package/dist/commands/balance.js.map +1 -0
  17. package/dist/commands/chat.d.ts.map +1 -0
  18. package/dist/commands/chat.js +15 -11
  19. package/dist/commands/chat.js.map +1 -0
  20. package/dist/commands/config.d.ts.map +1 -0
  21. package/dist/commands/config.js.map +1 -0
  22. package/dist/commands/doctor.d.ts +2 -0
  23. package/dist/commands/doctor.d.ts.map +1 -0
  24. package/dist/commands/doctor.js +212 -0
  25. package/dist/commands/doctor.js.map +1 -0
  26. package/dist/commands/login.d.ts.map +1 -0
  27. package/dist/commands/login.js +3 -1
  28. package/dist/commands/login.js.map +1 -0
  29. package/dist/commands/marketplace.d.ts.map +1 -0
  30. package/dist/commands/marketplace.js.map +1 -0
  31. package/dist/commands/models.d.ts.map +1 -0
  32. package/dist/commands/models.js +9 -15
  33. package/dist/commands/models.js.map +1 -0
  34. package/dist/commands/update.d.ts +6 -0
  35. package/dist/commands/update.d.ts.map +1 -0
  36. package/dist/commands/update.js +115 -0
  37. package/dist/commands/update.js.map +1 -0
  38. package/dist/compact/auto-compact.d.ts.map +1 -0
  39. package/dist/compact/auto-compact.js.map +1 -0
  40. package/dist/compact/budget.d.ts.map +1 -0
  41. package/dist/compact/budget.js +18 -0
  42. package/dist/compact/budget.js.map +1 -0
  43. package/dist/compact/history-store.d.ts.map +1 -0
  44. package/dist/compact/history-store.js.map +1 -0
  45. package/dist/compact/microcompact.d.ts.map +1 -0
  46. package/dist/compact/microcompact.js.map +1 -0
  47. package/dist/compact/service.d.ts.map +1 -0
  48. package/dist/compact/service.js.map +1 -0
  49. package/dist/context/agent-identity.d.ts.map +1 -0
  50. package/dist/context/agent-identity.js +19 -0
  51. package/dist/context/agent-identity.js.map +1 -0
  52. package/dist/context/analyzer.d.ts.map +1 -0
  53. package/dist/context/analyzer.js.map +1 -0
  54. package/dist/context/builder.d.ts.map +1 -0
  55. package/dist/context/builder.js +7 -0
  56. package/dist/context/builder.js.map +1 -0
  57. package/dist/context/cache.d.ts.map +1 -0
  58. package/dist/context/cache.js +110 -0
  59. package/dist/context/cache.js.map +1 -0
  60. package/dist/context/git-context.d.ts.map +1 -0
  61. package/dist/context/git-context.js.map +1 -0
  62. package/dist/context/llmtune-md.d.ts.map +1 -0
  63. package/dist/context/llmtune-md.js.map +1 -0
  64. package/dist/context/project-detect.d.ts +26 -0
  65. package/dist/context/project-detect.d.ts.map +1 -0
  66. package/dist/context/project-detect.js +213 -0
  67. package/dist/context/project-detect.js.map +1 -0
  68. package/dist/context/workspace.d.ts.map +1 -0
  69. package/dist/context/workspace.js +2 -1
  70. package/dist/context/workspace.js.map +1 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +57 -5
  73. package/dist/index.js.map +1 -0
  74. package/dist/marketplace/client.d.ts.map +1 -0
  75. package/dist/marketplace/client.js.map +1 -0
  76. package/dist/memory/files.d.ts.map +1 -0
  77. package/dist/memory/files.js.map +1 -0
  78. package/dist/memory/service.d.ts +2 -1
  79. package/dist/memory/service.d.ts.map +1 -0
  80. package/dist/memory/service.js +1 -0
  81. package/dist/memory/service.js.map +1 -0
  82. package/dist/repl/auto-save.d.ts +14 -0
  83. package/dist/repl/auto-save.d.ts.map +1 -0
  84. package/dist/repl/auto-save.js +101 -0
  85. package/dist/repl/auto-save.js.map +1 -0
  86. package/dist/repl/repl.d.ts +1 -0
  87. package/dist/repl/repl.d.ts.map +1 -0
  88. package/dist/repl/repl.js +296 -34
  89. package/dist/repl/repl.js.map +1 -0
  90. package/dist/skills/args.d.ts.map +1 -0
  91. package/dist/skills/args.js.map +1 -0
  92. package/dist/skills/frontmatter.d.ts.map +1 -0
  93. package/dist/skills/frontmatter.js.map +1 -0
  94. package/dist/skills/loader.d.ts.map +1 -0
  95. package/dist/skills/loader.js.map +1 -0
  96. package/dist/skills/registry.d.ts.map +1 -0
  97. package/dist/skills/registry.js.map +1 -0
  98. package/dist/skills/signing/signer.d.ts.map +1 -0
  99. package/dist/skills/signing/signer.js.map +1 -0
  100. package/dist/skills/trust.d.ts.map +1 -0
  101. package/dist/skills/trust.js.map +1 -0
  102. package/dist/telemetry/logger.d.ts.map +1 -0
  103. package/dist/telemetry/logger.js.map +1 -0
  104. package/dist/tools/permissions.d.ts +2 -0
  105. package/dist/tools/permissions.d.ts.map +1 -0
  106. package/dist/tools/permissions.js +9 -0
  107. package/dist/tools/permissions.js.map +1 -0
  108. package/dist/tools/protocol.d.ts.map +1 -0
  109. package/dist/tools/protocol.js.map +1 -0
  110. package/dist/tools/registry.d.ts.map +1 -0
  111. package/dist/tools/registry.js.map +1 -0
  112. package/dist/tools/sandbox/docker.d.ts.map +1 -0
  113. package/dist/tools/sandbox/docker.js.map +1 -0
  114. package/dist/tools/sandbox/index.d.ts.map +1 -0
  115. package/dist/tools/sandbox/index.js.map +1 -0
  116. package/dist/tools/sanitize.d.ts +10 -0
  117. package/dist/tools/sanitize.d.ts.map +1 -0
  118. package/dist/tools/sanitize.js +87 -0
  119. package/dist/tools/sanitize.js.map +1 -0
  120. package/dist/tools/tools/ask-user.d.ts.map +1 -0
  121. package/dist/tools/tools/ask-user.js.map +1 -0
  122. package/dist/tools/tools/bash.d.ts.map +1 -0
  123. package/dist/tools/tools/bash.js +52 -1
  124. package/dist/tools/tools/bash.js.map +1 -0
  125. package/dist/tools/tools/edit.d.ts.map +1 -0
  126. package/dist/tools/tools/edit.js +9 -2
  127. package/dist/tools/tools/edit.js.map +1 -0
  128. package/dist/tools/tools/glob.d.ts.map +1 -0
  129. package/dist/tools/tools/glob.js.map +1 -0
  130. package/dist/tools/tools/grep.d.ts.map +1 -0
  131. package/dist/tools/tools/grep.js +6 -8
  132. package/dist/tools/tools/grep.js.map +1 -0
  133. package/dist/tools/tools/read.d.ts.map +1 -0
  134. package/dist/tools/tools/read.js +7 -4
  135. package/dist/tools/tools/read.js.map +1 -0
  136. package/dist/tools/tools/web-fetch.d.ts.map +1 -0
  137. package/dist/tools/tools/web-fetch.js +74 -99
  138. package/dist/tools/tools/web-fetch.js.map +1 -0
  139. package/dist/tools/tools/write.d.ts.map +1 -0
  140. package/dist/tools/tools/write.js +13 -7
  141. package/dist/tools/tools/write.js.map +1 -0
  142. package/dist/tools/validation.d.ts.map +1 -0
  143. package/dist/tools/validation.js.map +1 -0
  144. package/dist/ui/banner.d.ts +2 -0
  145. package/dist/ui/banner.d.ts.map +1 -0
  146. package/dist/ui/banner.js +29 -0
  147. package/dist/ui/banner.js.map +1 -0
  148. package/dist/utils/diff.d.ts +38 -0
  149. package/dist/utils/diff.d.ts.map +1 -0
  150. package/dist/utils/diff.js +184 -0
  151. package/dist/utils/diff.js.map +1 -0
  152. package/dist/utils/errors.d.ts +32 -0
  153. package/dist/utils/errors.d.ts.map +1 -0
  154. package/dist/utils/errors.js +72 -0
  155. package/dist/utils/errors.js.map +1 -0
  156. package/dist/utils/ignore.d.ts +22 -0
  157. package/dist/utils/ignore.d.ts.map +1 -0
  158. package/dist/utils/ignore.js +205 -0
  159. package/dist/utils/ignore.js.map +1 -0
  160. package/dist/utils/input-history.d.ts +37 -0
  161. package/dist/utils/input-history.d.ts.map +1 -0
  162. package/dist/utils/input-history.js +142 -0
  163. package/dist/utils/input-history.js.map +1 -0
  164. package/dist/utils/markdown.d.ts.map +1 -0
  165. package/dist/utils/markdown.js.map +1 -0
  166. package/dist/utils/rate-limit.d.ts +36 -0
  167. package/dist/utils/rate-limit.d.ts.map +1 -0
  168. package/dist/utils/rate-limit.js +71 -0
  169. package/dist/utils/rate-limit.js.map +1 -0
  170. package/dist/utils/retry.d.ts +26 -0
  171. package/dist/utils/retry.d.ts.map +1 -0
  172. package/dist/utils/retry.js +96 -0
  173. package/dist/utils/retry.js.map +1 -0
  174. package/dist/utils/spinner.d.ts +12 -0
  175. package/dist/utils/spinner.d.ts.map +1 -0
  176. package/dist/utils/spinner.js +51 -0
  177. package/dist/utils/spinner.js.map +1 -0
  178. package/dist/utils/stats.d.ts +29 -0
  179. package/dist/utils/stats.d.ts.map +1 -0
  180. package/dist/utils/stats.js +95 -0
  181. package/dist/utils/stats.js.map +1 -0
  182. package/dist/utils/streaming.d.ts +6 -3
  183. package/dist/utils/streaming.d.ts.map +1 -0
  184. package/dist/utils/streaming.js +14 -19
  185. package/dist/utils/streaming.js.map +1 -0
  186. package/dist/utils/tokens.d.ts.map +1 -0
  187. package/dist/utils/tokens.js.map +1 -0
  188. package/dist/utils/undo-tracker.d.ts +37 -0
  189. package/dist/utils/undo-tracker.d.ts.map +1 -0
  190. package/dist/utils/undo-tracker.js +118 -0
  191. package/dist/utils/undo-tracker.js.map +1 -0
  192. package/dist/version.d.ts.map +1 -0
  193. package/dist/version.js.map +1 -0
  194. package/package.json +61 -45
@@ -9,9 +9,21 @@ exports.getCompactThreshold = getCompactThreshold;
9
9
  const MODEL_CONTEXT_WINDOWS = {
10
10
  "z-ai/GLM-5.1": 128_000,
11
11
  "z-ai/glm-5.1": 128_000,
12
+ "z-ai/GLM-5": 128_000,
12
13
  "gpt-4o": 128_000,
13
14
  "gpt-4o-mini": 128_000,
15
+ "gpt-4-turbo": 128_000,
16
+ "gpt-4": 8_000,
17
+ "gpt-3.5-turbo": 16_000,
14
18
  "claude-sonnet-4": 200_000,
19
+ "claude-sonnet-4-20250514": 200_000,
20
+ "claude-3.5-sonnet": 200_000,
21
+ "claude-3-haiku": 200_000,
22
+ "deepseek/deepseek-r1": 128_000,
23
+ "deepseek/deepseek-v3": 128_000,
24
+ "meta-llama/llama-3.1-405b": 128_000,
25
+ "google/gemini-2.0-flash": 1_000_000,
26
+ "google/gemini-1.5-pro": 2_000_000,
15
27
  };
16
28
  const DEFAULT_CONTEXT_WINDOW = 64_000;
17
29
  exports.COMPACT_THRESHOLD_RATIO = 0.75;
@@ -22,6 +34,12 @@ function getModelContextWindow(model) {
22
34
  return MODEL_CONTEXT_WINDOWS[model];
23
35
  if (MODEL_CONTEXT_WINDOWS[normalized])
24
36
  return MODEL_CONTEXT_WINDOWS[normalized];
37
+ // Try partial match on model name
38
+ for (const [key, value] of Object.entries(MODEL_CONTEXT_WINDOWS)) {
39
+ if (normalized.includes(key.toLowerCase()) || key.toLowerCase().includes(normalized)) {
40
+ return value;
41
+ }
42
+ }
25
43
  const env = process.env.LLMTUNE_CONTEXT_WINDOW;
26
44
  if (env) {
27
45
  const parsed = Number.parseInt(env, 10);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/compact/budget.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA0BH,sDAmBC;AAED,kDAEC;AA/CD,MAAM,qBAAqB,GAA2B;IACpD,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,OAAO;IACvB,YAAY,EAAE,OAAO;IACrB,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,OAAO;IACtB,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,OAAO;IAC1B,0BAA0B,EAAE,OAAO;IACnC,mBAAmB,EAAE,OAAO;IAC5B,gBAAgB,EAAE,OAAO;IACzB,sBAAsB,EAAE,OAAO;IAC/B,sBAAsB,EAAE,OAAO;IAC/B,2BAA2B,EAAE,OAAO;IACpC,yBAAyB,EAAE,SAAS;IACpC,uBAAuB,EAAE,SAAS;CACnC,CAAA;AAED,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACxB,QAAA,uBAAuB,GAAG,IAAI,CAAA;AAC9B,QAAA,kBAAkB,GAAG,CAAC,CAAA;AAEnC,SAAgB,qBAAqB,CAAC,KAAa;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,qBAAqB,CAAC,KAAK,CAAC;QAAE,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAA;IACrE,IAAI,qBAAqB,CAAC,UAAU,CAAC;QAAE,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAE/E,kCAAkC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACjE,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrF,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAA;IAC9C,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAA;IAC1D,CAAC;IAED,OAAO,sBAAsB,CAAA;AAC/B,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,+BAAuB,CAAC,CAAA;AAC3E,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-store.d.ts","sourceRoot":"","sources":["../../src/compact/history-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAQD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,GAAE,QAAQ,GAAG,MAAiB,GACnC,MAAM,CAoBR;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAQxE;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,GACA,IAAI,CAWN;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAC,CAQD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-store.js","sourceRoot":"","sources":["../../src/compact/history-store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,sCAIC;AAED,wCAwBC;AAED,wCAQC;AAED,gDAqBC;AAED,sDAeC;AApGD,uCAAwB;AACxB,2CAA4B;AAC5B,uCAAwB;AAYxB,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,SAAgB,aAAa,CAAC,SAAiB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAA;IAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,cAAc,CAC5B,SAAiB,EACjB,QAAmB,EACnB,SAA4B,QAAQ;IAEpC,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAE/C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC3F,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,CAAC,CAAA;IAEL,MAAM,QAAQ,GAAoB;QAChC,SAAS;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM;QACN,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,aAAa;QACb,QAAQ;KACT,CAAA;IAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IACtE,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAgB,cAAc,CAAC,SAAiB;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAA;IACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAoB,CAAA;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAChC,SAAiB,EACjB,IAOC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAA;IAC5E,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;YAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClB,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AACvE,CAAC;AAED,SAAgB,qBAAqB,CAAC,SAAiB;IAQrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAA;IAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAA;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microcompact.d.ts","sourceRoot":"","sources":["../../src/compact/microcompact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD;;;GAGG;AAEH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG;IACzD,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB,CA6BA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microcompact.js","sourceRoot":"","sources":["../../src/compact/microcompact.ts"],"names":[],"mappings":";;AAOA,oDAgCC;AArCD;;;GAGG;AAEH,SAAgB,oBAAoB,CAAC,QAAmB;IAItD,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,MAAM,SAAS,GAAc,EAAE,CAAA;IAE/B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACxF,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC3C,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC/D,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;gBAC/C,SAAQ;YACV,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACxF,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,kCAAkC,CAAA;gBAC1E,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;gBAC9C,SAAQ;YACV,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAA;AACnC,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,gEAAgE;IAChE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IACrC,OAAO,GAAG,IAAI,YAAY,KAAK,sBAAsB,IAAI,CAAC,MAAM,wBAAwB,IAAI,EAAE,CAAA;AAChG,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/compact/service.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAQlE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAoBD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAiB7D;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA8FxB;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAgB/F"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/compact/service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,8CAiBC;AAED,kDAoGC;AAED,sDAgBC;AAnLD,4CAAgD;AAChD,qCAA6C;AAC7C,+CAAkD;AAClD,uCAAwB;AACxB,2CAA4B;AAC5B,uCAAwB;AAmBxB,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;0DAgB4B,CAAA;AAE1D,SAAgB,iBAAiB,CAAC,QAAmB;IACnD,MAAM,QAAQ,GAAG,QAAQ;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACnE,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEpC,0EAA0E;IAC1E,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACpD,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,KAAa,EACb,YAA0B,EAC1B,WAAoB,EACpB,OAAwB;IAExB,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAA;IAC5C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,2BAAkB,CAAA;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAA;IACtC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAErE,IAAI,UAAU,EAAE,CAAC;QACf,IAAA,wBAAc,EAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,uBAAc,EACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACvG,CAAA;IACD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAA;IAEvC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAEzC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAC7D,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;IAEvD,MAAM,aAAa,GACjB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IAE1G,MAAM,sBAAsB,GAAG,aAAa;SACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;SAC1D,KAAK,CAAC,CAAC,EAAE,CAAC;SACV,GAAG,CACF,CAAC,CAAC,EAAqC,EAAE,CAAC,CAAC;QACzC,IAAI,EAAE,CAAC,CAAC,IAA4B;QACpC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;KAC/B,CAAC,CACH,CAAA;IAEH,MAAM,SAAS,GAAG,UAAU;QAC1B,CAAC,CAAC,+DAA+D,UAAU,GAAG;QAC9E,CAAC,CAAC,EAAE,CAAA;IAEN,sBAAsB,CAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,qBAAqB,GAAG,SAAS,EAAE;KAChD,CAAC,CAAA;IAEF,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpD,KAAK;YACL,QAAQ,EAAE,sBAAsB;YAChC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,CAAC;SACf,CAAC,CAAA;QACF,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,mBAAmB,UAAU,OAAO,OAAO,EAAE,CAAA;IACzD,CAAC;IAED,MAAM,WAAW,GAAY;QAC3B,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,sBAAsB,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI;YAC5G,GAAG,eAAe,yBAAyB,YAAY,CAAC,MAAM,gDAAgD;KACjH,CAAA;IACD,MAAM,UAAU,GAAY;QAC1B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,8BAA8B,OAAO,EAAE;KACjD,CAAA;IAED,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAChC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,CAAA;IAEvF,MAAM,iBAAiB,GAAG,IAAA,uBAAc,EACtC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACpH,CAAA;IACD,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAA;IAErD,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;QAC9D,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB,EAAE,eAAe;QACnC,mBAAmB,EAAE,gBAAgB;QACrC,OAAO;QACP,UAAU,EAAE,UAAU,IAAI,SAAS;QACnC,OAAO;KACR,CAAA;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,YAA0B,EAAE,WAAoB;IACpF,MAAM,GAAG,GAAG,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,EAAE,WAAW,CAAC,CAAA;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAA4B,CAAA;QACpF,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAChC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY;IACtC,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtF,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,GAAG,WAAW,KAAK,KAAK,IAAI,EAAE,CAAA;IACpC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAA;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,YAA0B,EAAE,WAAoB;IACtE,MAAM,GAAG,GAAG,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IAC1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,EAAE,WAAW,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAClG,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAmB,EAAE,UAAmB;IACpE,MAAM,QAAQ,GAAG,QAAQ;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC1E,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,SAAS,GAAG,QAAQ;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC;SACpD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAEnE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;IAC7C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAA;IAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;QACtC,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5F,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5D,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACpG,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC1D,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-identity.d.ts","sourceRoot":"","sources":["../../src/context/agent-identity.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CA4ChE"}
@@ -29,6 +29,25 @@ function buildAgentIdentitySection(model) {
29
29
  "- Use tools to investigate and make changes — do not only describe what you would do.",
30
30
  "- Stay on the user's task; continue from the conversation summary and active task in memory if present.",
31
31
  "- If you see a [COMPACT BOUNDARY] message, treat the summary above it as prior context — do not ask the user to repeat their task unless the summary is empty.",
32
+ "",
33
+ "## Code Quality",
34
+ "- Write clean, well-structured code with appropriate error handling.",
35
+ "- Follow existing code patterns and conventions in the project.",
36
+ "- Add brief comments for complex logic but avoid over-commenting.",
37
+ "- Prefer readability over cleverness.",
38
+ "",
39
+ "## Safety",
40
+ "- Never execute destructive commands (rm -rf, DROP TABLE, etc.) without confirming with the user.",
41
+ "- Never expose API keys, passwords, or secrets in output.",
42
+ "- Validate file paths to prevent directory traversal.",
43
+ "- When uncertain about a destructive action, use the ask-user tool to confirm.",
44
+ "",
45
+ "## Tool Usage",
46
+ "- Read files before editing to understand the current state.",
47
+ "- Use glob/grep to find files before reading them.",
48
+ "- Prefer edit over write for existing files (preserves unchanged lines).",
49
+ "- Use bash for running tests, builds, and git operations.",
50
+ "- When a task is complex, break it into smaller steps and execute them sequentially.",
32
51
  ].join("\n");
33
52
  }
34
53
  //# sourceMappingURL=agent-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-identity.js","sourceRoot":"","sources":["../../src/context/agent-identity.ts"],"names":[],"mappings":";;AAMA,8DA4CC;AAlDD,wCAAwC;AAExC;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,KAAc;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,mBAAmB,CAAC,CAAC,CAAC,mDAAmD,CAAA;IAEpH,OAAO;QACL,iBAAiB;QACjB,EAAE;QACF,+FAA+F;QAC/F,EAAE;QACF,6BAA6B;QAC7B,6DAA6D,qBAAW,IAAI;QAC5E,0GAA0G;QAC1G,sHAAsH;QACtH,SAAS;QACT,EAAE;QACF,iBAAiB;QACjB,iEAAiE;QACjE,2FAA2F;QAC3F,wEAAwE;QACxE,EAAE;QACF,aAAa;QACb,oCAAoC;QACpC,uFAAuF;QACvF,yGAAyG;QACzG,gKAAgK;QAChK,EAAE;QACF,iBAAiB;QACjB,sEAAsE;QACtE,iEAAiE;QACjE,mEAAmE;QACnE,uCAAuC;QACvC,EAAE;QACF,WAAW;QACX,mGAAmG;QACnG,2DAA2D;QAC3D,uDAAuD;QACvD,gFAAgF;QAChF,EAAE;QACF,eAAe;QACf,8DAA8D;QAC9D,oDAAoD;QACpD,0EAA0E;QAC1E,2DAA2D;QAC3D,sFAAsF;KACvF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/context/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGjD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAiBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS9D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACnD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,eAAe,CAgDlB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CA2BvE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/context/analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/context/builder.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAWD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO1E;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAYhE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CASxE;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,aAAa,CAAC,CAsDxB"}
@@ -44,6 +44,7 @@ const git_context_1 = require("./git-context");
44
44
  const workspace_1 = require("./workspace");
45
45
  const llmtune_md_1 = require("./llmtune-md");
46
46
  const agent_identity_1 = require("./agent-identity");
47
+ const project_detect_1 = require("./project-detect");
47
48
  const CACHE_DIR = () => {
48
49
  const base = process.env.LLMTUNE_CACHE_DIR || path.join(process.env.HOME || process.env.USERPROFILE || "~", ".llmtune", "cache");
49
50
  return base;
@@ -106,6 +107,12 @@ async function buildContextPrompt(workspaceRoot, cwd, options) {
106
107
  const workspaceSection = (0, workspace_1.renderWorkspaceSection)(workspace);
107
108
  if (workspaceSection)
108
109
  workspaceSections.push(workspaceSection);
110
+ // Project type detection
111
+ const projectInfo = (0, project_detect_1.detectProjectType)(workspaceRoot);
112
+ const projectSummary = (0, project_detect_1.formatProjectInfo)(projectInfo);
113
+ if (projectSummary) {
114
+ workspaceSections.push(`## Detected Project\n${projectSummary}`);
115
+ }
109
116
  // Git section
110
117
  const git = (0, git_context_1.collectGitContext)(workspaceRoot);
111
118
  const gitSection = renderGitSection(git);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/context/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/context/cache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAA;AAElE,YAAY,EAAE,aAAa,EAAE,CAAA;AAgC7B,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,OAAO,CAAC,aAAa,CAAC,CAiCxB"}
@@ -1,8 +1,118 @@
1
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.getContext = getContext;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const os = __importStar(require("os"));
40
+ const crypto = __importStar(require("crypto"));
4
41
  const builder_1 = require("./builder");
42
+ const CACHE_DIR = path.join(os.homedir(), ".llmtune", "cache", "context");
43
+ const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
44
+ function getCachePath(hash) {
45
+ return path.join(CACHE_DIR, `${hash}.json`);
46
+ }
47
+ function computeCacheKey(workspaceRoot, cwd) {
48
+ // Hash based on workspace root, cwd, and relevant file mtimes
49
+ const hasher = crypto.createHash("sha256");
50
+ hasher.update(`root:${workspaceRoot}`);
51
+ hasher.update(`cwd:${cwd}`);
52
+ // Include mtimes of instruction files
53
+ const instructionFiles = ["LLMTUNE.md", "CLAUDE.md", ".llmtune", ".claude"];
54
+ for (const name of instructionFiles) {
55
+ for (const dir of [cwd, workspaceRoot]) {
56
+ const fp = path.join(dir, name);
57
+ try {
58
+ const stat = fs.statSync(fp);
59
+ if (stat.isFile()) {
60
+ hasher.update(`${fp}:${stat.mtimeMs}`);
61
+ }
62
+ }
63
+ catch { /* skip */ }
64
+ }
65
+ }
66
+ return hasher.digest("hex").slice(0, 24);
67
+ }
5
68
  async function getContext(workspaceRoot, cwd, options) {
69
+ const useCache = options?.useCache !== false; // default true
70
+ if (useCache) {
71
+ const key = computeCacheKey(workspaceRoot, cwd);
72
+ const cachePath = getCachePath(key);
73
+ try {
74
+ const stat = fs.statSync(cachePath);
75
+ const age = Date.now() - stat.mtimeMs;
76
+ if (age < CACHE_TTL_MS) {
77
+ const cached = JSON.parse(fs.readFileSync(cachePath, "utf-8"));
78
+ return cached;
79
+ }
80
+ }
81
+ catch { /* cache miss */ }
82
+ // Build fresh context and cache it
83
+ const result = await (0, builder_1.buildContextPrompt)(workspaceRoot, cwd, options);
84
+ try {
85
+ if (!fs.existsSync(CACHE_DIR)) {
86
+ fs.mkdirSync(CACHE_DIR, { recursive: true });
87
+ }
88
+ fs.writeFileSync(cachePath, JSON.stringify(result), "utf-8");
89
+ // Prune old cache entries (keep last 20)
90
+ pruneCache();
91
+ }
92
+ catch { /* cache write failure is non-critical */ }
93
+ return result;
94
+ }
6
95
  return (0, builder_1.buildContextPrompt)(workspaceRoot, cwd, options);
7
96
  }
97
+ function pruneCache(maxEntries = 20) {
98
+ try {
99
+ const entries = fs.readdirSync(CACHE_DIR)
100
+ .filter(f => f.endsWith(".json"))
101
+ .map(f => ({
102
+ name: f,
103
+ path: path.join(CACHE_DIR, f),
104
+ mtime: fs.statSync(path.join(CACHE_DIR, f)).mtimeMs,
105
+ }))
106
+ .sort((a, b) => b.mtime - a.mtime);
107
+ if (entries.length > maxEntries) {
108
+ for (const entry of entries.slice(maxEntries)) {
109
+ try {
110
+ fs.unlinkSync(entry.path);
111
+ }
112
+ catch { /* skip */ }
113
+ }
114
+ }
115
+ }
116
+ catch { /* skip */ }
117
+ }
8
118
  //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/context/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-context.d.ts","sourceRoot":"","sources":["../../src/context/git-context.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAiBD,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAqBnE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-context.js","sourceRoot":"","sources":["../../src/context/git-context.ts"],"names":[],"mappings":";;AAyBA,8CAqBC;AA9CD,iDAAwC;AAUxC,SAAS,MAAM,CAAC,IAAY,EAAE,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,OAAO,IAAI,EAAE,EAAE;YAClC,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAC1B,OAAO,OAAO,IAAI,IAAI,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,aAAqB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,2BAA2B,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC7F,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;IAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;IAEvD,IAAI,MAAM,GAAkB,IAAI,CAAA;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAC5C,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC1C,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;QACpC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,SAAS,KAAK,GAAG,EAAE,aAAa,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;AAC5E,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llmtune-md.d.ts","sourceRoot":"","sources":["../../src/context/llmtune-md.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,GACV,YAAY,EAAE,CAkChB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llmtune-md.js","sourceRoot":"","sources":["../../src/context/llmtune-md.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,0DAqCC;AA/CD,uCAAyB;AACzB,2CAA6B;AAO7B,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAErE,SAAgB,uBAAuB,CACrC,aAAqB,EACrB,GAAW;IAEX,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,OAAO,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEhC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAEjC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAClB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnD,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;wBACnB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Project type auto-detection — inspects the workspace to determine
3
+ * what kind of project this is, so the agent can provide better assistance.
4
+ */
5
+ export interface ProjectInfo {
6
+ /** Project type (e.g. "nextjs", "express", "react", "python", "rust") */
7
+ type: string;
8
+ /** Human-readable name */
9
+ name: string;
10
+ /** Package manager (npm, yarn, pnpm, bun) */
11
+ packageManager: string;
12
+ /** Language (typescript, javascript, python, rust, go) */
13
+ language: string;
14
+ /** Framework if detected */
15
+ framework: string;
16
+ /** Test framework if detected */
17
+ testFramework: string;
18
+ /** Key config files found */
19
+ configFiles: string[];
20
+ }
21
+ export declare function detectProjectType(workspaceRoot: string): ProjectInfo;
22
+ /**
23
+ * Format project info as a compact summary for the system prompt.
24
+ */
25
+ export declare function formatProjectInfo(info: ProjectInfo): string;
26
+ //# sourceMappingURL=project-detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-detect.d.ts","sourceRoot":"","sources":["../../src/context/project-detect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAA;IACrB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAqJpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAa3D"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ /**
3
+ * Project type auto-detection — inspects the workspace to determine
4
+ * what kind of project this is, so the agent can provide better assistance.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.detectProjectType = detectProjectType;
41
+ exports.formatProjectInfo = formatProjectInfo;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ function detectProjectType(workspaceRoot) {
45
+ const info = {
46
+ type: "unknown",
47
+ name: path.basename(workspaceRoot),
48
+ packageManager: "npm",
49
+ language: "unknown",
50
+ framework: "none",
51
+ testFramework: "none",
52
+ configFiles: [],
53
+ };
54
+ // Check for package.json (Node.js project)
55
+ const packageJsonPath = path.join(workspaceRoot, "package.json");
56
+ if (fs.existsSync(packageJsonPath)) {
57
+ info.language = "javascript";
58
+ info.configFiles.push("package.json");
59
+ try {
60
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
61
+ info.name = pkg.name || info.name;
62
+ // Detect TypeScript
63
+ const tsconfigPath = path.join(workspaceRoot, "tsconfig.json");
64
+ if (fs.existsSync(tsconfigPath)) {
65
+ info.language = "typescript";
66
+ info.configFiles.push("tsconfig.json");
67
+ }
68
+ // Detect framework from dependencies
69
+ const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
70
+ if (allDeps["next"]) {
71
+ info.type = "nextjs";
72
+ info.framework = "Next.js";
73
+ }
74
+ else if (allDeps["express"]) {
75
+ info.type = "express";
76
+ info.framework = "Express";
77
+ }
78
+ else if (allDeps["fastify"]) {
79
+ info.type = "fastify";
80
+ info.framework = "Fastify";
81
+ }
82
+ else if (allDeps["koa"]) {
83
+ info.type = "koa";
84
+ info.framework = "Koa";
85
+ }
86
+ else if (allDeps["hono"]) {
87
+ info.type = "hono";
88
+ info.framework = "Hono";
89
+ }
90
+ else if (allDeps["react"] && allDeps["react-dom"]) {
91
+ info.type = "react";
92
+ info.framework = "React";
93
+ }
94
+ else if (allDeps["vue"]) {
95
+ info.type = "vue";
96
+ info.framework = "Vue";
97
+ }
98
+ else if (allDeps["svelte"]) {
99
+ info.type = "svelte";
100
+ info.framework = "Svelte";
101
+ }
102
+ else if (allDeps["@angular/core"]) {
103
+ info.type = "angular";
104
+ info.framework = "Angular";
105
+ }
106
+ else if (pkg.bin || (pkg.main && pkg.main.includes("dist"))) {
107
+ info.type = "cli";
108
+ info.framework = "Node.js CLI";
109
+ }
110
+ else {
111
+ info.type = "node";
112
+ info.framework = "Node.js";
113
+ }
114
+ // Detect test framework
115
+ if (allDeps["jest"])
116
+ info.testFramework = "Jest";
117
+ else if (allDeps["vitest"])
118
+ info.testFramework = "Vitest";
119
+ else if (allDeps["mocha"])
120
+ info.testFramework = "Mocha";
121
+ else if (allDeps["@playwright/test"])
122
+ info.testFramework = "Playwright";
123
+ else if (allDeps["cypress"])
124
+ info.testFramework = "Cypress";
125
+ // Detect package manager from lock files
126
+ if (fs.existsSync(path.join(workspaceRoot, "yarn.lock"))) {
127
+ info.packageManager = "yarn";
128
+ }
129
+ else if (fs.existsSync(path.join(workspaceRoot, "pnpm-lock.yaml"))) {
130
+ info.packageManager = "pnpm";
131
+ }
132
+ else if (fs.existsSync(path.join(workspaceRoot, "bun.lockb"))) {
133
+ info.packageManager = "bun";
134
+ }
135
+ }
136
+ catch {
137
+ // Malformed package.json
138
+ }
139
+ }
140
+ // Check for Python
141
+ const pythonFiles = [
142
+ "requirements.txt",
143
+ "setup.py",
144
+ "pyproject.toml",
145
+ "Pipfile",
146
+ "poetry.lock",
147
+ ];
148
+ for (const f of pythonFiles) {
149
+ if (fs.existsSync(path.join(workspaceRoot, f))) {
150
+ if (info.language === "unknown") {
151
+ info.language = "python";
152
+ info.type = "python";
153
+ info.framework = "Python";
154
+ }
155
+ info.configFiles.push(f);
156
+ }
157
+ }
158
+ // Check for Rust
159
+ if (fs.existsSync(path.join(workspaceRoot, "Cargo.toml"))) {
160
+ info.language = "rust";
161
+ info.type = "rust";
162
+ info.framework = "Rust";
163
+ info.packageManager = "cargo";
164
+ info.configFiles.push("Cargo.toml");
165
+ }
166
+ // Check for Go
167
+ if (fs.existsSync(path.join(workspaceRoot, "go.mod"))) {
168
+ info.language = "go";
169
+ info.type = "go";
170
+ info.framework = "Go";
171
+ info.packageManager = "go modules";
172
+ info.configFiles.push("go.mod");
173
+ }
174
+ // Check for Java
175
+ if (fs.existsSync(path.join(workspaceRoot, "pom.xml")) ||
176
+ fs.existsSync(path.join(workspaceRoot, "build.gradle"))) {
177
+ info.language = "java";
178
+ info.type = "java";
179
+ info.framework = fs.existsSync(path.join(workspaceRoot, "pom.xml"))
180
+ ? "Maven"
181
+ : "Gradle";
182
+ info.configFiles.push(fs.existsSync(path.join(workspaceRoot, "pom.xml"))
183
+ ? "pom.xml"
184
+ : "build.gradle");
185
+ }
186
+ // Check for Docker
187
+ if (fs.existsSync(path.join(workspaceRoot, "Dockerfile"))) {
188
+ info.configFiles.push("Dockerfile");
189
+ }
190
+ if (fs.existsSync(path.join(workspaceRoot, "docker-compose.yml"))) {
191
+ info.configFiles.push("docker-compose.yml");
192
+ }
193
+ return info;
194
+ }
195
+ /**
196
+ * Format project info as a compact summary for the system prompt.
197
+ */
198
+ function formatProjectInfo(info) {
199
+ if (info.type === "unknown")
200
+ return "";
201
+ const parts = [];
202
+ parts.push(`Detected project: ${info.name}`);
203
+ if (info.framework !== "none")
204
+ parts.push(`Framework: ${info.framework}`);
205
+ parts.push(`Language: ${info.language}`);
206
+ if (info.testFramework !== "none")
207
+ parts.push(`Testing: ${info.testFramework}`);
208
+ if (info.packageManager !== "npm" || info.type !== "node") {
209
+ parts.push(`Package manager: ${info.packageManager}`);
210
+ }
211
+ return parts.join(" · ");
212
+ }
213
+ //# sourceMappingURL=project-detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-detect.js","sourceRoot":"","sources":["../../src/context/project-detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/context/workspace.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAqCD,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CA6B5B;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CA6B1E"}
@@ -97,7 +97,8 @@ async function walkDir(root, relDir, visitor, depth = 0) {
97
97
  continue;
98
98
  const relPath = relDir ? `${relDir}/${entry.name}` : entry.name;
99
99
  const isDir = entry.isDirectory();
100
- await visitor(entry.name, relDir, isDir);
100
+ // FIX: was passing relDir instead of relPath — key file detection was broken
101
+ await visitor(entry.name, relPath, isDir);
101
102
  if (isDir && depth < 3) {
102
103
  await walkDir(root, relPath, visitor, depth + 1);
103
104
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/context/workspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}