ft-scout 1.0.8 → 1.1.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 (243) hide show
  1. package/.firebase/hosting.d2Vi.cache +9 -0
  2. package/.firebaserc +14 -0
  3. package/AUTONOMOUS_FEATURES.md +192 -0
  4. package/README.md +482 -32
  5. package/bin/ft.js +2 -0
  6. package/bin/src/commands/agent.d.ts.map +1 -0
  7. package/bin/src/commands/agent.js +1230 -0
  8. package/bin/src/commands/agent.js.map +1 -0
  9. package/bin/src/commands/audit.d.ts.map +1 -0
  10. package/bin/src/commands/audit.js +104 -0
  11. package/bin/src/commands/audit.js.map +1 -0
  12. package/bin/src/commands/authCommand.d.ts.map +1 -0
  13. package/bin/src/commands/authCommand.js +38 -0
  14. package/bin/src/commands/authCommand.js.map +1 -0
  15. package/bin/src/commands/benchmark.d.ts.map +1 -0
  16. package/bin/src/commands/benchmark.js +135 -0
  17. package/bin/src/commands/benchmark.js.map +1 -0
  18. package/bin/src/commands/brief.d.ts.map +1 -1
  19. package/bin/src/commands/brief.js +28 -19
  20. package/bin/src/commands/brief.js.map +1 -1
  21. package/bin/src/commands/configCommand.d.ts.map +1 -0
  22. package/bin/src/commands/configCommand.js +53 -0
  23. package/bin/src/commands/configCommand.js.map +1 -0
  24. package/bin/src/commands/dashboard.d.ts.map +1 -0
  25. package/bin/src/commands/dashboard.js +41 -0
  26. package/bin/src/commands/dashboard.js.map +1 -0
  27. package/bin/src/commands/history.d.ts.map +1 -0
  28. package/bin/src/commands/history.js +20 -0
  29. package/bin/src/commands/history.js.map +1 -0
  30. package/bin/src/commands/init.d.ts.map +1 -1
  31. package/bin/src/commands/init.js +411 -78
  32. package/bin/src/commands/init.js.map +1 -1
  33. package/bin/src/commands/login.d.ts.map +1 -0
  34. package/bin/src/commands/login.js +190 -0
  35. package/bin/src/commands/login.js.map +1 -0
  36. package/bin/src/commands/logout.d.ts.map +1 -0
  37. package/bin/src/commands/logout.js +15 -0
  38. package/bin/src/commands/logout.js.map +1 -0
  39. package/bin/src/commands/mcp.d.ts.map +1 -0
  40. package/bin/src/commands/mcp.js +393 -0
  41. package/bin/src/commands/mcp.js.map +1 -0
  42. package/bin/src/commands/owners.js +6 -6
  43. package/bin/src/commands/owners.js.map +1 -1
  44. package/bin/src/commands/plan.d.ts.map +1 -0
  45. package/bin/src/commands/plan.js +152 -0
  46. package/bin/src/commands/plan.js.map +1 -0
  47. package/bin/src/commands/quota.d.ts.map +1 -0
  48. package/bin/src/commands/quota.js +32 -0
  49. package/bin/src/commands/quota.js.map +1 -0
  50. package/bin/src/commands/recommend.d.ts.map +1 -0
  51. package/bin/src/commands/recommend.js +46 -0
  52. package/bin/src/commands/recommend.js.map +1 -0
  53. package/bin/src/commands/risky.d.ts.map +1 -1
  54. package/bin/src/commands/risky.js +235 -39
  55. package/bin/src/commands/risky.js.map +1 -1
  56. package/bin/src/commands/setup.d.ts.map +1 -1
  57. package/bin/src/commands/setup.js +411 -16
  58. package/bin/src/commands/setup.js.map +1 -1
  59. package/bin/src/commands/signup.d.ts.map +1 -0
  60. package/bin/src/commands/signup.js +118 -0
  61. package/bin/src/commands/signup.js.map +1 -0
  62. package/bin/src/commands/undo.d.ts.map +1 -0
  63. package/bin/src/commands/undo.js +59 -0
  64. package/bin/src/commands/undo.js.map +1 -0
  65. package/bin/src/commands/web.d.ts.map +1 -0
  66. package/bin/src/commands/web.js +90 -0
  67. package/bin/src/commands/web.js.map +1 -0
  68. package/bin/src/discovery/config.d.ts.map +1 -0
  69. package/bin/src/discovery/config.js +41 -0
  70. package/bin/src/discovery/config.js.map +1 -0
  71. package/bin/src/discovery/display.d.ts.map +1 -0
  72. package/bin/src/discovery/display.js +57 -0
  73. package/bin/src/discovery/display.js.map +1 -0
  74. package/bin/src/discovery/messages.d.ts.map +1 -0
  75. package/bin/src/discovery/messages.js +7 -0
  76. package/bin/src/discovery/messages.js.map +1 -0
  77. package/bin/src/discovery/signals.d.ts.map +1 -0
  78. package/bin/src/discovery/signals.js +33 -0
  79. package/bin/src/discovery/signals.js.map +1 -0
  80. package/bin/src/engine/actionVerifier.d.ts.map +1 -0
  81. package/bin/src/engine/actionVerifier.js +283 -0
  82. package/bin/src/engine/actionVerifier.js.map +1 -0
  83. package/bin/src/engine/agentEngine.d.ts.map +1 -0
  84. package/bin/src/engine/agentEngine.js +2188 -0
  85. package/bin/src/engine/agentEngine.js.map +1 -0
  86. package/bin/src/engine/agentState.d.ts.map +1 -0
  87. package/bin/src/engine/agentState.js +381 -0
  88. package/bin/src/engine/agentState.js.map +1 -0
  89. package/bin/src/engine/browser/browserController.d.ts.map +1 -0
  90. package/bin/src/engine/browser/browserController.js +737 -0
  91. package/bin/src/engine/browser/browserController.js.map +1 -0
  92. package/bin/src/engine/browser/index.d.ts.map +1 -0
  93. package/bin/src/engine/browser/index.js +2 -0
  94. package/bin/src/engine/browser/index.js.map +1 -0
  95. package/bin/src/engine/computer/computerController.d.ts.map +1 -0
  96. package/bin/src/engine/computer/computerController.js +773 -0
  97. package/bin/src/engine/computer/computerController.js.map +1 -0
  98. package/bin/src/engine/computer/computerDiagnostic.d.ts.map +1 -0
  99. package/bin/src/engine/computer/computerDiagnostic.js +71 -0
  100. package/bin/src/engine/computer/computerDiagnostic.js.map +1 -0
  101. package/bin/src/engine/computer/index.d.ts.map +1 -0
  102. package/bin/src/engine/computer/index.js +4 -0
  103. package/bin/src/engine/computer/index.js.map +1 -0
  104. package/bin/src/engine/computer/mockComputer.d.ts.map +1 -0
  105. package/bin/src/engine/computer/mockComputer.js +260 -0
  106. package/bin/src/engine/computer/mockComputer.js.map +1 -0
  107. package/bin/src/engine/computer/scoutDriver.cs +1161 -0
  108. package/bin/src/engine/computer/scout_driver.exe +0 -0
  109. package/bin/src/engine/git.d.ts.map +1 -1
  110. package/bin/src/engine/git.js +71 -0
  111. package/bin/src/engine/git.js.map +1 -1
  112. package/bin/src/engine/llm.d.ts.map +1 -1
  113. package/bin/src/engine/llm.js +1272 -23
  114. package/bin/src/engine/llm.js.map +1 -1
  115. package/bin/src/engine/planner.d.ts.map +1 -0
  116. package/bin/src/engine/planner.js +321 -0
  117. package/bin/src/engine/planner.js.map +1 -0
  118. package/bin/src/engine/runtime/agentRuntime.d.ts.map +1 -0
  119. package/bin/src/engine/runtime/agentRuntime.js +1258 -0
  120. package/bin/src/engine/runtime/agentRuntime.js.map +1 -0
  121. package/bin/src/engine/runtime/index.d.ts.map +1 -0
  122. package/bin/src/engine/runtime/index.js +2 -0
  123. package/bin/src/engine/runtime/index.js.map +1 -0
  124. package/bin/src/engine/safety.d.ts.map +1 -0
  125. package/bin/src/engine/safety.js +316 -0
  126. package/bin/src/engine/safety.js.map +1 -0
  127. package/bin/src/engine/scoutAudioRecorder.cs +215 -0
  128. package/bin/src/engine/scout_audio_recorder.exe +0 -0
  129. package/bin/src/engine/toolRegistry.d.ts.map +1 -0
  130. package/bin/src/engine/toolRegistry.js +521 -0
  131. package/bin/src/engine/toolRegistry.js.map +1 -0
  132. package/bin/src/engine/verifier.d.ts.map +1 -0
  133. package/bin/src/engine/verifier.js +414 -0
  134. package/bin/src/engine/verifier.js.map +1 -0
  135. package/bin/src/engine/voiceEngine.d.ts.map +1 -0
  136. package/bin/src/engine/voiceEngine.js +474 -0
  137. package/bin/src/engine/voiceEngine.js.map +1 -0
  138. package/bin/src/engine/web.d.ts.map +1 -0
  139. package/bin/src/engine/web.js +161 -0
  140. package/bin/src/engine/web.js.map +1 -0
  141. package/bin/src/engine/workspace/agentWorkspace.d.ts.map +1 -0
  142. package/bin/src/engine/workspace/agentWorkspace.js +505 -0
  143. package/bin/src/engine/workspace/agentWorkspace.js.map +1 -0
  144. package/bin/src/engine/workspace/index.d.ts.map +1 -0
  145. package/bin/src/engine/workspace/index.js +2 -0
  146. package/bin/src/engine/workspace/index.js.map +1 -0
  147. package/bin/src/index.js +365 -23
  148. package/bin/src/index.js.map +1 -1
  149. package/bin/src/mcp/client.d.ts.map +1 -0
  150. package/bin/src/mcp/client.js +127 -0
  151. package/bin/src/mcp/client.js.map +1 -0
  152. package/bin/src/mcp/discovery.d.ts.map +1 -0
  153. package/bin/src/mcp/discovery.js +91 -0
  154. package/bin/src/mcp/discovery.js.map +1 -0
  155. package/bin/src/mcp/health.d.ts.map +1 -0
  156. package/bin/src/mcp/health.js +44 -0
  157. package/bin/src/mcp/health.js.map +1 -0
  158. package/bin/src/mcp/index.d.ts.map +1 -0
  159. package/bin/src/mcp/index.js +15 -0
  160. package/bin/src/mcp/index.js.map +1 -0
  161. package/bin/src/mcp/manager.d.ts.map +1 -0
  162. package/bin/src/mcp/manager.js +648 -0
  163. package/bin/src/mcp/manager.js.map +1 -0
  164. package/bin/src/mcp/permissions.d.ts.map +1 -0
  165. package/bin/src/mcp/permissions.js +50 -0
  166. package/bin/src/mcp/permissions.js.map +1 -0
  167. package/bin/src/mcp/persistence.d.ts.map +1 -0
  168. package/bin/src/mcp/persistence.js +171 -0
  169. package/bin/src/mcp/persistence.js.map +1 -0
  170. package/bin/src/mcp/recovery.d.ts.map +1 -0
  171. package/bin/src/mcp/recovery.js +75 -0
  172. package/bin/src/mcp/recovery.js.map +1 -0
  173. package/bin/src/mcp/telemetry.d.ts.map +1 -0
  174. package/bin/src/mcp/telemetry.js +82 -0
  175. package/bin/src/mcp/telemetry.js.map +1 -0
  176. package/bin/src/mcp/toolRouter.d.ts.map +1 -0
  177. package/bin/src/mcp/toolRouter.js +127 -0
  178. package/bin/src/mcp/toolRouter.js.map +1 -0
  179. package/bin/src/mcp/transport.d.ts.map +1 -0
  180. package/bin/src/mcp/transport.js +328 -0
  181. package/bin/src/mcp/transport.js.map +1 -0
  182. package/bin/src/mcp/types.d.ts.map +1 -0
  183. package/bin/src/mcp/types.js +6 -0
  184. package/bin/src/mcp/types.js.map +1 -0
  185. package/bin/src/server/server.d.ts.map +1 -0
  186. package/bin/src/server/server.js +989 -0
  187. package/bin/src/server/server.js.map +1 -0
  188. package/bin/src/utils/admin.d.ts.map +1 -0
  189. package/bin/src/utils/admin.js +231 -0
  190. package/bin/src/utils/admin.js.map +1 -0
  191. package/bin/src/utils/auditLogger.d.ts.map +1 -0
  192. package/bin/src/utils/auditLogger.js +70 -0
  193. package/bin/src/utils/auditLogger.js.map +1 -0
  194. package/bin/src/utils/auth.d.ts.map +1 -0
  195. package/bin/src/utils/auth.js +679 -0
  196. package/bin/src/utils/auth.js.map +1 -0
  197. package/bin/src/utils/branding.d.ts.map +1 -0
  198. package/bin/src/utils/branding.js +14 -0
  199. package/bin/src/utils/branding.js.map +1 -0
  200. package/bin/src/utils/config.d.ts.map +1 -1
  201. package/bin/src/utils/config.js +124 -3
  202. package/bin/src/utils/config.js.map +1 -1
  203. package/bin/src/utils/email.d.ts.map +1 -0
  204. package/bin/src/utils/email.js +267 -0
  205. package/bin/src/utils/email.js.map +1 -0
  206. package/bin/src/utils/firebaseAuth.d.ts.map +1 -0
  207. package/bin/src/utils/firebaseAuth.js +174 -0
  208. package/bin/src/utils/firebaseAuth.js.map +1 -0
  209. package/bin/src/utils/holoseneAuth.d.ts.map +1 -0
  210. package/bin/src/utils/holoseneAuth.js +307 -0
  211. package/bin/src/utils/holoseneAuth.js.map +1 -0
  212. package/bin/src/utils/language.d.ts.map +1 -0
  213. package/bin/src/utils/language.js +181 -0
  214. package/bin/src/utils/language.js.map +1 -0
  215. package/bin/src/utils/markdown.d.ts.map +1 -0
  216. package/bin/src/utils/markdown.js +215 -0
  217. package/bin/src/utils/markdown.js.map +1 -0
  218. package/bin/src/utils/payment.d.ts.map +1 -0
  219. package/bin/src/utils/payment.js +290 -0
  220. package/bin/src/utils/payment.js.map +1 -0
  221. package/bin/src/utils/pricing.d.ts.map +1 -0
  222. package/bin/src/utils/pricing.js +165 -0
  223. package/bin/src/utils/pricing.js.map +1 -0
  224. package/bin/src/utils/razorpay.d.ts.map +1 -0
  225. package/bin/src/utils/razorpay.js +144 -0
  226. package/bin/src/utils/razorpay.js.map +1 -0
  227. package/bin/src/utils/session.d.ts.map +1 -0
  228. package/bin/src/utils/session.js +82 -0
  229. package/bin/src/utils/session.js.map +1 -0
  230. package/bin/src/utils/updateCheck.d.ts.map +1 -0
  231. package/bin/src/utils/updateCheck.js +108 -0
  232. package/bin/src/utils/updateCheck.js.map +1 -0
  233. package/downloads/invoice-2026-03.pdf +1 -0
  234. package/firebase.json +74 -0
  235. package/package.json +49 -46
  236. package/web/ScoutFavicon.png +0 -0
  237. package/web/app.js +3944 -0
  238. package/web/styles.css +3081 -0
  239. package/.ft/context.json +0 -18
  240. package/email-template.html +0 -223
  241. package/email-template.txt +0 -45
  242. package/scripts/send-brevo-campaign.cjs +0 -167
  243. package/scripts/send-email.js +0 -77
@@ -0,0 +1,181 @@
1
+ export const LANGUAGE_SPECS = {
2
+ en: {
3
+ name: 'English',
4
+ romanName: 'English',
5
+ romanInstruction: 'Write in clear, professional technical English.',
6
+ nativeInstruction: 'Write in clear, professional technical English.',
7
+ },
8
+ es: {
9
+ name: 'Spanish',
10
+ romanName: 'Spanish',
11
+ romanInstruction: 'Write in clear Spanish using standard technical terms.',
12
+ nativeInstruction: 'Write in clear Spanish using standard technical terms.',
13
+ },
14
+ fr: {
15
+ name: 'French',
16
+ romanName: 'French',
17
+ romanInstruction: 'Write in clear French using standard technical terms.',
18
+ nativeInstruction: 'Write in clear French using standard technical terms.',
19
+ },
20
+ de: {
21
+ name: 'German',
22
+ romanName: 'German',
23
+ romanInstruction: 'Write in clear German using standard technical terms.',
24
+ nativeInstruction: 'Write in clear German using standard technical terms.',
25
+ },
26
+ hi: {
27
+ name: 'Hindi',
28
+ romanName: 'Hinglish (Romanized Hindi)',
29
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Hindi (Hinglish) using Latin script and English tech terms (e.g. "Yeh project ek onboarding co-pilot hai jo new codebase ko comprehend karne mein help karta hai..."). DO NOT use Devanagari script so CLI terminal fonts render 100% cleanly without broken characters or box borders.',
30
+ nativeInstruction: 'Write in full, natural, professional Hindi sentences using native Devanagari script with English tech terms. Do NOT output comma-separated keyword lists.',
31
+ },
32
+ ta: {
33
+ name: 'Tamil',
34
+ romanName: 'Tanglish (Romanized Tamil)',
35
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Tamil (Tanglish) using Latin script and English tech terms (e.g. "Indha project pudhiya codebase-ai purindhu kolla udhavum oru onboarding co-pilot aagum..."). DO NOT use Tamil script so CLI terminal fonts render 100% cleanly without broken characters or box borders.',
36
+ nativeInstruction: 'Write in full, natural, professional Tamil sentences using native Tamil script with English tech terms. Do NOT output comma-separated keyword lists.',
37
+ },
38
+ ko: {
39
+ name: 'Korean',
40
+ romanName: 'Romanized Korean',
41
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Korean using Latin script and English tech terms (e.g. "I project neun codebase onboarding eul wihan co-pilot system ipnida..."). DO NOT use raw Hangul script so CLI terminal fonts render 100% cleanly without broken characters or missing glyphs.',
42
+ nativeInstruction: 'Write in full, natural, professional Korean sentences using native Hangul script with English tech terms. Do NOT output comma-separated keyword lists or isolated commas.',
43
+ },
44
+ ja: {
45
+ name: 'Japanese',
46
+ romanName: 'Romaji (Romanized Japanese)',
47
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romaji (Latin script Japanese) with English tech terms (e.g. "Kono project wa codebase no onboarding wo shien suru co-pilot desu..."). DO NOT use Kanji or Kana script so CLI terminal fonts render 100% cleanly.',
48
+ nativeInstruction: 'Write in full, natural, professional Japanese sentences using native Kanji/Kana script with English tech terms. Do NOT output comma-separated keyword lists.',
49
+ },
50
+ zh: {
51
+ name: 'Chinese',
52
+ romanName: 'Pinyin (Romanized Chinese)',
53
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Pinyin (Romanized Chinese) with English tech terms. DO NOT use Hanzi characters so CLI terminal fonts render 100% cleanly.',
54
+ nativeInstruction: 'Write in full, natural, professional Chinese sentences using native Hanzi script with English tech terms. Do NOT output comma-separated keyword lists.',
55
+ },
56
+ te: {
57
+ name: 'Telugu',
58
+ romanName: 'Romanized Telugu',
59
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Telugu using Latin script and English tech terms. DO NOT use Telugu script so CLI terminal fonts render 100% cleanly.',
60
+ nativeInstruction: 'Write in Telugu using native Telugu script with English tech terms.',
61
+ },
62
+ bn: {
63
+ name: 'Bengali',
64
+ romanName: 'Romanized Bengali',
65
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Bengali using Latin script and English tech terms. DO NOT use Bengali script so CLI terminal fonts render 100% cleanly.',
66
+ nativeInstruction: 'Write in Bengali using native Bengali script with English tech terms.',
67
+ },
68
+ mr: {
69
+ name: 'Marathi',
70
+ romanName: 'Romanized Marathi',
71
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Marathi using Latin script and English tech terms. DO NOT use Devanagari script so CLI terminal fonts render 100% cleanly.',
72
+ nativeInstruction: 'Write in Marathi using native Devanagari script with English tech terms.',
73
+ },
74
+ gu: {
75
+ name: 'Gujarati',
76
+ romanName: 'Romanized Gujarati',
77
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Gujarati using Latin script and English tech terms. DO NOT use Gujarati script so CLI terminal fonts render 100% cleanly.',
78
+ nativeInstruction: 'Write in Gujarati using native Gujarati script.',
79
+ },
80
+ kn: {
81
+ name: 'Kannada',
82
+ romanName: 'Romanized Kannada',
83
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Kannada using Latin script and English tech terms. DO NOT use Kannada script so CLI terminal fonts render 100% cleanly.',
84
+ nativeInstruction: 'Write in Kannada using native Kannada script.',
85
+ },
86
+ ml: {
87
+ name: 'Malayalam',
88
+ romanName: 'Romanized Malayalam',
89
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Malayalam using Latin script and English tech terms. DO NOT use Malayalam script so CLI terminal fonts render 100% cleanly.',
90
+ nativeInstruction: 'Write in Malayalam using native Malayalam script.',
91
+ },
92
+ pa: {
93
+ name: 'Punjabi',
94
+ romanName: 'Romanized Punjabi',
95
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Punjabi using Latin script and English tech terms. DO NOT use Gurmukhi script so CLI terminal fonts render 100% cleanly.',
96
+ nativeInstruction: 'Write in Punjabi using native Gurmukhi script.',
97
+ },
98
+ ru: {
99
+ name: 'Russian',
100
+ romanName: 'Russian',
101
+ romanInstruction: 'Write in clear Russian with English tech terms.',
102
+ nativeInstruction: 'Write in Russian using Cyrillic script.',
103
+ },
104
+ pt: {
105
+ name: 'Portuguese',
106
+ romanName: 'Portuguese',
107
+ romanInstruction: 'Write in clear Portuguese with English tech terms.',
108
+ nativeInstruction: 'Write in clear Portuguese with English tech terms.',
109
+ },
110
+ it: {
111
+ name: 'Italian',
112
+ romanName: 'Italian',
113
+ romanInstruction: 'Write in clear Italian with English tech terms.',
114
+ nativeInstruction: 'Write in clear Italian with English tech terms.',
115
+ },
116
+ ar: {
117
+ name: 'Arabic',
118
+ romanName: 'Arabizi (Romanized Arabic)',
119
+ romanInstruction: 'CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write completely in Romanized Arabic (Arabizi / Latin script) with English tech terms. DO NOT use Arabic script so CLI terminal fonts render 100% cleanly.',
120
+ nativeInstruction: 'Write in Arabic using native Arabic script.',
121
+ },
122
+ };
123
+ export function normalizeLanguage(langInput) {
124
+ if (!langInput || !langInput.trim())
125
+ return undefined;
126
+ const cleaned = langInput.trim().toLowerCase();
127
+ if (cleaned === 'hinglish')
128
+ return 'Hinglish';
129
+ if (cleaned === 'tanglish')
130
+ return 'Tanglish';
131
+ const spec = LANGUAGE_SPECS[cleaned];
132
+ if (spec)
133
+ return spec.name;
134
+ return cleaned.charAt(0).toUpperCase() + cleaned.slice(1);
135
+ }
136
+ export function getLanguageInstruction(langInput, native = false) {
137
+ if (!langInput || !langInput.trim()) {
138
+ return {
139
+ displayName: 'English',
140
+ instruction: 'Write in clear, professional technical English.',
141
+ };
142
+ }
143
+ const cleaned = langInput.trim().toLowerCase();
144
+ if (cleaned === 'hinglish') {
145
+ return {
146
+ displayName: 'Hinglish (Romanized Hindi)',
147
+ instruction: LANGUAGE_SPECS.hi.romanInstruction,
148
+ };
149
+ }
150
+ if (cleaned === 'tanglish') {
151
+ return {
152
+ displayName: 'Tanglish (Romanized Tamil)',
153
+ instruction: LANGUAGE_SPECS.ta.romanInstruction,
154
+ };
155
+ }
156
+ const spec = LANGUAGE_SPECS[cleaned];
157
+ if (spec) {
158
+ if (native) {
159
+ return {
160
+ displayName: `${spec.name} (Native Script)`,
161
+ instruction: spec.nativeInstruction,
162
+ };
163
+ }
164
+ return {
165
+ displayName: spec.romanName,
166
+ instruction: spec.romanInstruction,
167
+ };
168
+ }
169
+ const capName = cleaned.charAt(0).toUpperCase() + cleaned.slice(1);
170
+ if (native) {
171
+ return {
172
+ displayName: `${capName} (Native Script)`,
173
+ instruction: `Write in ${capName} using native script with English technical terms.`,
174
+ };
175
+ }
176
+ return {
177
+ displayName: `${capName} (Romanized)`,
178
+ instruction: `CRITICAL ACCESSIBILITY & TERMINAL FONT RULE: Write in ${capName} using Romanized / Latin script and standard English technical terms so CLI terminal fonts render 100% cleanly without broken characters or box borders.`,
179
+ };
180
+ }
181
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["language.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["markdown.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAwBpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA+BzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+IvD;AAID;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,QAqBvD"}
@@ -0,0 +1,215 @@
1
+ import chalk from 'chalk';
2
+ /**
3
+ * Wraps long plain text lines at a specified max width to prevent giant full-width text walls in CLI terminals.
4
+ */
5
+ export function wrapText(text, maxWidth = 85) {
6
+ if (!text || text.length <= maxWidth)
7
+ return text;
8
+ // Do not wrap lines containing markdown headers, code fences, or horizontal rules
9
+ if (text.startsWith('#') || text.startsWith('```') || text.startsWith('---') || text.startsWith('>')) {
10
+ return text;
11
+ }
12
+ const words = text.split(' ');
13
+ const lines = [];
14
+ let currentLine = '';
15
+ for (const word of words) {
16
+ if ((currentLine + (currentLine ? ' ' : '') + word).length > maxWidth) {
17
+ lines.push(currentLine);
18
+ currentLine = word;
19
+ }
20
+ else {
21
+ currentLine += (currentLine ? ' ' : '') + word;
22
+ }
23
+ }
24
+ if (currentLine) {
25
+ lines.push(currentLine);
26
+ }
27
+ return lines.join('\n');
28
+ }
29
+ /**
30
+ * Formats inline markdown elements (bold, italic, inline code, links) with ANSI chalk styles.
31
+ */
32
+ export function formatInlineMarkdown(text) {
33
+ if (!text)
34
+ return '';
35
+ let output = text;
36
+ // Inline code: `code` -> styled with cyan bright text on dark background pill
37
+ output = output.replace(/`([^`]+)`/g, (_, code) => chalk.bgRgb(30, 35, 45).cyanBright.bold(` ${code} `));
38
+ // Bold + Italic: ***text*** or ___text___
39
+ output = output.replace(/(\*\*\*|___)(.*?)\1/g, (_, __, content) => chalk.bold.italic.yellowBright(content));
40
+ // Bold: **text** or __text__ -> bright yellow/white bold contrast
41
+ output = output.replace(/(\*\*|__)(.*?)\1/g, (_, __, content) => chalk.bold.yellowBright(content));
42
+ // Italic: *text* or _text_
43
+ output = output.replace(/(^|\s)(\*|_)([^*_]+)\2(?=\s|$|[.,!?])/g, (_, space, __, content) => `${space}${chalk.italic.cyan(content)}`);
44
+ // Links: [text](url)
45
+ output = output.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_, label, url) => `${chalk.cyan.underline(label)} ${chalk.dim(`(${url})`)}`);
46
+ return output;
47
+ }
48
+ /**
49
+ * Renders full markdown text into rich ANSI formatted terminal output with medium line width.
50
+ */
51
+ export function renderMarkdown(markdown) {
52
+ if (!markdown)
53
+ return '';
54
+ // Ensure bullet points concatenated by LLM are split onto clean newlines
55
+ const normalizedMarkdown = markdown.replace(/([^\n])\s*-\s+\*\*/g, '$1\n- **');
56
+ const rawLines = normalizedMarkdown.split('\n');
57
+ const processedLines = [];
58
+ // Step 1: Word-wrap long paragraph lines to max 72 columns for medium-sized CLI card alignment
59
+ for (const line of rawLines) {
60
+ if (line.trim().length === 0) {
61
+ processedLines.push('');
62
+ }
63
+ else if (line.startsWith('```') || line.startsWith('#') || line.startsWith('---')) {
64
+ processedLines.push(line);
65
+ }
66
+ else if (line.trim().startsWith('-') || line.trim().startsWith('*') || line.trim().startsWith('+') || /^\d+\./.test(line.trim())) {
67
+ // For lists, wrap with clean indentation matching prefix width
68
+ const listMatch = line.match(/^(\s*)([-*+]|\d+\.)\s+(.*)/);
69
+ if (listMatch) {
70
+ const indent = listMatch[1] || '';
71
+ const prefix = listMatch[2] || '•';
72
+ const content = listMatch[3] || '';
73
+ const padLen = indent.length + prefix.length + 1;
74
+ const padStr = ' '.repeat(padLen);
75
+ const wrappedContent = wrapText(content, 72 - padLen);
76
+ const wrappedLines = wrappedContent.split('\n');
77
+ processedLines.push(`${indent}${prefix} ${wrappedLines[0]}`);
78
+ for (let j = 1; j < wrappedLines.length; j++) {
79
+ processedLines.push(`${padStr}${wrappedLines[j]}`);
80
+ }
81
+ }
82
+ else {
83
+ processedLines.push(line);
84
+ }
85
+ }
86
+ else {
87
+ processedLines.push(wrapText(line, 72));
88
+ }
89
+ }
90
+ const result = [];
91
+ let inCodeBlock = false;
92
+ let codeBlockLang = '';
93
+ let codeBlockLines = [];
94
+ for (let i = 0; i < processedLines.length; i++) {
95
+ const line = processedLines[i];
96
+ // Code block fence matching (``` or ```lang)
97
+ const codeBlockMatch = line.match(/^```(\w*)/);
98
+ if (codeBlockMatch) {
99
+ if (inCodeBlock) {
100
+ // End of code block
101
+ const langStr = codeBlockLang ? ` ${codeBlockLang.toUpperCase()} ` : ' CODE ';
102
+ const topBorder = chalk.cyan.bold('┌──[') + chalk.bgCyan.black.bold(langStr) + chalk.cyan.bold(']' + '─'.repeat(Math.max(2, 50 - langStr.length)));
103
+ const bottomBorder = chalk.cyan.bold('└' + '─'.repeat(54));
104
+ result.push(topBorder);
105
+ for (const codeLine of codeBlockLines) {
106
+ result.push(chalk.cyan.bold('│ ') + chalk.greenBright(codeLine));
107
+ }
108
+ result.push(bottomBorder);
109
+ inCodeBlock = false;
110
+ codeBlockLang = '';
111
+ codeBlockLines = [];
112
+ }
113
+ else {
114
+ // Start of code block
115
+ inCodeBlock = true;
116
+ codeBlockLang = codeBlockMatch[1] || '';
117
+ codeBlockLines = [];
118
+ }
119
+ continue;
120
+ }
121
+ if (inCodeBlock) {
122
+ codeBlockLines.push(line);
123
+ continue;
124
+ }
125
+ // Horizontal Rule
126
+ if (/^(---|^\*\*\*|^___)$/.test(line.trim())) {
127
+ result.push(chalk.dim('───────────────────────────────────────────────────────'));
128
+ continue;
129
+ }
130
+ // Headers with styled ANSI badges
131
+ if (line.startsWith('# ')) {
132
+ result.push('\n' + chalk.bgMagenta.black.bold(' ' + line.slice(2).trim() + ' ') + '\n');
133
+ continue;
134
+ }
135
+ if (line.startsWith('## ')) {
136
+ result.push('\n' + chalk.bgCyan.black.bold(' ' + line.slice(3).trim() + ' ') + '\n');
137
+ continue;
138
+ }
139
+ if (line.startsWith('### ')) {
140
+ result.push('\n' + chalk.bold.cyan.underline(formatInlineMarkdown(line.slice(4).trim())));
141
+ continue;
142
+ }
143
+ if (line.startsWith('#### ')) {
144
+ result.push(chalk.bold.yellowBright(formatInlineMarkdown(line.slice(5).trim())));
145
+ continue;
146
+ }
147
+ // Unordered List (- item, * item, + item)
148
+ const unorderedMatch = line.match(/^(\s*)([-*+])\s+(.*)/);
149
+ if (unorderedMatch) {
150
+ const indent = unorderedMatch[1] || '';
151
+ const content = unorderedMatch[3] || '';
152
+ result.push(`${indent}${chalk.cyan.bold('•')} ${formatInlineMarkdown(content)}`);
153
+ continue;
154
+ }
155
+ // Ordered List (1. item)
156
+ const orderedMatch = line.match(/^(\s*)(\d+\.)\s+(.*)/);
157
+ if (orderedMatch) {
158
+ const indent = orderedMatch[1] || '';
159
+ const num = orderedMatch[2] || '';
160
+ const content = orderedMatch[3] || '';
161
+ result.push(`${indent}${chalk.cyan.bold(num)} ${formatInlineMarkdown(content)}`);
162
+ continue;
163
+ }
164
+ // Blockquote (> quote)
165
+ if (line.startsWith('> ')) {
166
+ result.push(`${chalk.yellow.bold('│')} ${chalk.italic.dim(formatInlineMarkdown(line.slice(2)))}`);
167
+ continue;
168
+ }
169
+ // Normal line
170
+ result.push(formatInlineMarkdown(line));
171
+ }
172
+ // Handle unclosed code block if any
173
+ if (inCodeBlock && codeBlockLines.length > 0) {
174
+ const topBorder = chalk.cyan.bold('┌──[ ') + chalk.bgCyan.black.bold(' CODE ') + chalk.cyan.bold(' ]' + '─'.repeat(44));
175
+ const bottomBorder = chalk.cyan.bold('└' + '─'.repeat(54));
176
+ result.push(topBorder);
177
+ for (const codeLine of codeBlockLines) {
178
+ result.push(chalk.cyan.bold('│ ') + chalk.greenBright(codeLine));
179
+ }
180
+ result.push(bottomBorder);
181
+ }
182
+ return result.join('\n');
183
+ }
184
+ import { note } from '@clack/prompts';
185
+ /**
186
+ * Safely renders CLI note cards. For multi-byte/native script characters (Devanagari, Hangul, Tamil, CJK, etc.)
187
+ * that break fixed-width right box borders and ANSI cursor positioning in @clack/prompts, safeNote renders an
188
+ * uncorrupted open-right CLI card frame.
189
+ */
190
+ export function safeNote(content, title) {
191
+ if (!content)
192
+ return;
193
+ const containsWideChars = /[^\u0000-\u00FF]/.test(content + (title || ''));
194
+ if (containsWideChars) {
195
+ const lines = content.split('\n');
196
+ console.log();
197
+ if (title) {
198
+ console.log(chalk.cyan.bold('┌ ') + chalk.bgCyan.black.bold(` ${title} `) + chalk.cyan.bold(' ─────────────────────────────'));
199
+ }
200
+ else {
201
+ console.log(chalk.cyan.bold('┌─────────────────────────────────────────────────────────────'));
202
+ }
203
+ console.log(chalk.cyan.bold('│'));
204
+ for (const line of lines) {
205
+ console.log(chalk.cyan.bold('│ ') + line);
206
+ }
207
+ console.log(chalk.cyan.bold('│'));
208
+ console.log(chalk.cyan.bold('└─────────────────────────────────────────────────────────────'));
209
+ console.log();
210
+ }
211
+ else {
212
+ note(content, title);
213
+ }
214
+ }
215
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAQ,GAAW,EAAE;IACxD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAElD,kFAAkF;IAClF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACnD,CAAC;IACL,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,8EAA8E;IAC9E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAC9C,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CACvD,CAAC;IAEF,0CAA0C;IAC1C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAC/D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAC1C,CAAC;IAEF,kEAAkE;IAClE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAC5D,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CACnC,CAAC;IAEF,2BAA2B;IAC3B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CACxF,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAC1C,CAAC;IAEF,qBAAqB;IACrB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAClE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAC5D,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,yEAAyE;IACzE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,+FAA+F;IAC/F,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACjI,+DAA+D;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBACnC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;gBACtD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvD,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,cAAc,GAAa,EAAE,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAE,CAAC;QAEhC,6CAA6C;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,WAAW,EAAE,CAAC;gBACd,oBAAoB;gBACpB,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnJ,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE3D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE1B,WAAW,GAAG,KAAK,CAAC;gBACpB,aAAa,GAAG,EAAE,CAAC;gBACnB,cAAc,GAAG,EAAE,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACJ,sBAAsB;gBACtB,WAAW,GAAG,IAAI,CAAC;gBACnB,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxC,cAAc,GAAG,EAAE,CAAC;YACxB,CAAC;YACD,SAAS;QACb,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,SAAS;QACb,CAAC;QAED,kBAAkB;QAClB,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;YAClF,SAAS;QACb,CAAC;QAED,kCAAkC;QAClC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACxF,SAAS;QACb,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACrF,SAAS;QACb,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1F,SAAS;QACb,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,SAAS;QACb,CAAC;QAED,0CAA0C;QAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1D,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjF,SAAS;QACb,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACxD,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjF,SAAS;QACb,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClG,SAAS;QACb,CAAC;QAED,cAAc;QACd,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,oCAAoC;IACpC,IAAI,WAAW,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAc;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,IAAI,iBAAiB,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACnI,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["payment.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6C,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AASvF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEvC,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAwBpE;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAcrD,CAAC;AAEH,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;CACxC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CA0B5D;AAYD,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,wBAAgB,sBAAsB,IAAI,qBAAqB,CAW9D;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAsFxG;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyHrG"}