faf-cli 2.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 (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/dist/cli.d.ts +8 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +1249 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/ai-analyze.d.ts +18 -0
  8. package/dist/commands/ai-analyze.d.ts.map +1 -0
  9. package/dist/commands/ai-analyze.js +226 -0
  10. package/dist/commands/ai-analyze.js.map +1 -0
  11. package/dist/commands/ai-enhance.d.ts +17 -0
  12. package/dist/commands/ai-enhance.d.ts.map +1 -0
  13. package/dist/commands/ai-enhance.js +278 -0
  14. package/dist/commands/ai-enhance.js.map +1 -0
  15. package/dist/commands/audit.d.ts +11 -0
  16. package/dist/commands/audit.d.ts.map +1 -0
  17. package/dist/commands/audit.js +180 -0
  18. package/dist/commands/audit.js.map +1 -0
  19. package/dist/commands/auto.d.ts +27 -0
  20. package/dist/commands/auto.d.ts.map +1 -0
  21. package/dist/commands/auto.js +106 -0
  22. package/dist/commands/auto.js.map +1 -0
  23. package/dist/commands/bi-sync.d.ts +43 -0
  24. package/dist/commands/bi-sync.d.ts.map +1 -0
  25. package/dist/commands/bi-sync.js +224 -0
  26. package/dist/commands/bi-sync.js.map +1 -0
  27. package/dist/commands/chat.d.ts +6 -0
  28. package/dist/commands/chat.d.ts.map +1 -0
  29. package/dist/commands/chat.js +227 -0
  30. package/dist/commands/chat.js.map +1 -0
  31. package/dist/commands/check.d.ts +15 -0
  32. package/dist/commands/check.d.ts.map +1 -0
  33. package/dist/commands/check.js +58 -0
  34. package/dist/commands/check.js.map +1 -0
  35. package/dist/commands/clear.d.ts +15 -0
  36. package/dist/commands/clear.d.ts.map +1 -0
  37. package/dist/commands/clear.js +167 -0
  38. package/dist/commands/clear.js.map +1 -0
  39. package/dist/commands/commit.d.ts +8 -0
  40. package/dist/commands/commit.d.ts.map +1 -0
  41. package/dist/commands/commit.js +164 -0
  42. package/dist/commands/commit.js.map +1 -0
  43. package/dist/commands/convert.d.ts +19 -0
  44. package/dist/commands/convert.d.ts.map +1 -0
  45. package/dist/commands/convert.js +102 -0
  46. package/dist/commands/convert.js.map +1 -0
  47. package/dist/commands/credit.d.ts +13 -0
  48. package/dist/commands/credit.d.ts.map +1 -0
  49. package/dist/commands/credit.js +149 -0
  50. package/dist/commands/credit.js.map +1 -0
  51. package/dist/commands/edit-helper.d.ts +6 -0
  52. package/dist/commands/edit-helper.d.ts.map +1 -0
  53. package/dist/commands/edit-helper.js +55 -0
  54. package/dist/commands/edit-helper.js.map +1 -0
  55. package/dist/commands/edit.d.ts +14 -0
  56. package/dist/commands/edit.d.ts.map +1 -0
  57. package/dist/commands/edit.js +196 -0
  58. package/dist/commands/edit.js.map +1 -0
  59. package/dist/commands/faf-auth.d.ts +10 -0
  60. package/dist/commands/faf-auth.d.ts.map +1 -0
  61. package/dist/commands/faf-auth.js +162 -0
  62. package/dist/commands/faf-auth.js.map +1 -0
  63. package/dist/commands/faf-dna.d.ts +9 -0
  64. package/dist/commands/faf-dna.d.ts.map +1 -0
  65. package/dist/commands/faf-dna.js +141 -0
  66. package/dist/commands/faf-dna.js.map +1 -0
  67. package/dist/commands/faf-log.d.ts +9 -0
  68. package/dist/commands/faf-log.d.ts.map +1 -0
  69. package/dist/commands/faf-log.js +135 -0
  70. package/dist/commands/faf-log.js.map +1 -0
  71. package/dist/commands/faf-recover.d.ts +3 -0
  72. package/dist/commands/faf-recover.d.ts.map +1 -0
  73. package/dist/commands/faf-recover.js +299 -0
  74. package/dist/commands/faf-recover.js.map +1 -0
  75. package/dist/commands/faf-update.d.ts +9 -0
  76. package/dist/commands/faf-update.d.ts.map +1 -0
  77. package/dist/commands/faf-update.js +68 -0
  78. package/dist/commands/faf-update.js.map +1 -0
  79. package/dist/commands/faq.d.ts +12 -0
  80. package/dist/commands/faq.d.ts.map +1 -0
  81. package/dist/commands/faq.js +84 -0
  82. package/dist/commands/faq.js.map +1 -0
  83. package/dist/commands/flow.d.ts +11 -0
  84. package/dist/commands/flow.d.ts.map +1 -0
  85. package/dist/commands/flow.js +117 -0
  86. package/dist/commands/flow.js.map +1 -0
  87. package/dist/commands/formats.d.ts +12 -0
  88. package/dist/commands/formats.d.ts.map +1 -0
  89. package/dist/commands/formats.js +109 -0
  90. package/dist/commands/formats.js.map +1 -0
  91. package/dist/commands/index.d.ts +14 -0
  92. package/dist/commands/index.d.ts.map +1 -0
  93. package/dist/commands/index.js +443 -0
  94. package/dist/commands/index.js.map +1 -0
  95. package/dist/commands/init.d.ts +14 -0
  96. package/dist/commands/init.d.ts.map +1 -0
  97. package/dist/commands/init.js +202 -0
  98. package/dist/commands/init.js.map +1 -0
  99. package/dist/commands/lint.d.ts +11 -0
  100. package/dist/commands/lint.d.ts.map +1 -0
  101. package/dist/commands/lint.js +269 -0
  102. package/dist/commands/lint.js.map +1 -0
  103. package/dist/commands/mirror.d.ts +7 -0
  104. package/dist/commands/mirror.d.ts.map +1 -0
  105. package/dist/commands/mirror.js +130 -0
  106. package/dist/commands/mirror.js.map +1 -0
  107. package/dist/commands/score.d.ts +11 -0
  108. package/dist/commands/score.d.ts.map +1 -0
  109. package/dist/commands/score.js +192 -0
  110. package/dist/commands/score.js.map +1 -0
  111. package/dist/commands/search.d.ts +16 -0
  112. package/dist/commands/search.d.ts.map +1 -0
  113. package/dist/commands/search.js +174 -0
  114. package/dist/commands/search.js.map +1 -0
  115. package/dist/commands/share.d.ts +17 -0
  116. package/dist/commands/share.d.ts.map +1 -0
  117. package/dist/commands/share.js +260 -0
  118. package/dist/commands/share.js.map +1 -0
  119. package/dist/commands/show.d.ts +10 -0
  120. package/dist/commands/show.d.ts.map +1 -0
  121. package/dist/commands/show.js +167 -0
  122. package/dist/commands/show.js.map +1 -0
  123. package/dist/commands/stacks.d.ts +51 -0
  124. package/dist/commands/stacks.d.ts.map +1 -0
  125. package/dist/commands/stacks.js +180 -0
  126. package/dist/commands/stacks.js.map +1 -0
  127. package/dist/commands/status.d.ts +13 -0
  128. package/dist/commands/status.d.ts.map +1 -0
  129. package/dist/commands/status.js +158 -0
  130. package/dist/commands/status.js.map +1 -0
  131. package/dist/commands/sync.d.ts +11 -0
  132. package/dist/commands/sync.d.ts.map +1 -0
  133. package/dist/commands/sync.js +300 -0
  134. package/dist/commands/sync.js.map +1 -0
  135. package/dist/commands/todo.d.ts +14 -0
  136. package/dist/commands/todo.d.ts.map +1 -0
  137. package/dist/commands/todo.js +279 -0
  138. package/dist/commands/todo.js.map +1 -0
  139. package/dist/commands/trust.d.ts +33 -0
  140. package/dist/commands/trust.d.ts.map +1 -0
  141. package/dist/commands/trust.js +316 -0
  142. package/dist/commands/trust.js.map +1 -0
  143. package/dist/commands/validate.d.ts +11 -0
  144. package/dist/commands/validate.d.ts.map +1 -0
  145. package/dist/commands/validate.js +100 -0
  146. package/dist/commands/validate.js.map +1 -0
  147. package/dist/commands/verify.d.ts +36 -0
  148. package/dist/commands/verify.d.ts.map +1 -0
  149. package/dist/commands/verify.js +194 -0
  150. package/dist/commands/verify.js.map +1 -0
  151. package/dist/commands/version.d.ts +5 -0
  152. package/dist/commands/version.d.ts.map +1 -0
  153. package/dist/commands/version.js +33 -0
  154. package/dist/commands/version.js.map +1 -0
  155. package/dist/commands/vibe.d.ts +7 -0
  156. package/dist/commands/vibe.d.ts.map +1 -0
  157. package/dist/commands/vibe.js +78 -0
  158. package/dist/commands/vibe.js.map +1 -0
  159. package/dist/converters/faf-converters.d.ts +43 -0
  160. package/dist/converters/faf-converters.d.ts.map +1 -0
  161. package/dist/converters/faf-converters.js +186 -0
  162. package/dist/converters/faf-converters.js.map +1 -0
  163. package/dist/engine-bridge.d.ts +35 -0
  164. package/dist/engine-bridge.d.ts.map +1 -0
  165. package/dist/engine-bridge.js +76 -0
  166. package/dist/engine-bridge.js.map +1 -0
  167. package/dist/engines/claude-todo-engine.d.ts +115 -0
  168. package/dist/engines/claude-todo-engine.d.ts.map +1 -0
  169. package/dist/engines/claude-todo-engine.js +346 -0
  170. package/dist/engines/claude-todo-engine.js.map +1 -0
  171. package/dist/engines/drop-coach.d.ts +64 -0
  172. package/dist/engines/drop-coach.d.ts.map +1 -0
  173. package/dist/engines/drop-coach.js +222 -0
  174. package/dist/engines/drop-coach.js.map +1 -0
  175. package/dist/engines/fab-formats-processor.d.ts +167 -0
  176. package/dist/engines/fab-formats-processor.d.ts.map +1 -0
  177. package/dist/engines/fab-formats-processor.js +1274 -0
  178. package/dist/engines/fab-formats-processor.js.map +1 -0
  179. package/dist/engines/faf-dna.d.ts +160 -0
  180. package/dist/engines/faf-dna.d.ts.map +1 -0
  181. package/dist/engines/faf-dna.js +522 -0
  182. package/dist/engines/faf-dna.js.map +1 -0
  183. package/dist/engines/relentless-context-extractor.d.ts +101 -0
  184. package/dist/engines/relentless-context-extractor.d.ts.map +1 -0
  185. package/dist/engines/relentless-context-extractor.js +625 -0
  186. package/dist/engines/relentless-context-extractor.js.map +1 -0
  187. package/dist/fix-once/colors.d.ts +83 -0
  188. package/dist/fix-once/colors.d.ts.map +1 -0
  189. package/dist/fix-once/colors.js +145 -0
  190. package/dist/fix-once/colors.js.map +1 -0
  191. package/dist/fix-once/types.d.ts +258 -0
  192. package/dist/fix-once/types.d.ts.map +1 -0
  193. package/dist/fix-once/types.js +26 -0
  194. package/dist/fix-once/types.js.map +1 -0
  195. package/dist/framework-detector.d.ts +286 -0
  196. package/dist/framework-detector.d.ts.map +1 -0
  197. package/dist/framework-detector.js +782 -0
  198. package/dist/framework-detector.js.map +1 -0
  199. package/dist/generators/faf-generator-championship.d.ts +11 -0
  200. package/dist/generators/faf-generator-championship.d.ts.map +1 -0
  201. package/dist/generators/faf-generator-championship.js +371 -0
  202. package/dist/generators/faf-generator-championship.js.map +1 -0
  203. package/dist/index.d.ts +18 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +34 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/output/experience-manager.d.ts +58 -0
  208. package/dist/output/experience-manager.d.ts.map +1 -0
  209. package/dist/output/experience-manager.js +212 -0
  210. package/dist/output/experience-manager.js.map +1 -0
  211. package/dist/schema/faf-schema.d.ts +92 -0
  212. package/dist/schema/faf-schema.d.ts.map +1 -0
  213. package/dist/schema/faf-schema.js +173 -0
  214. package/dist/schema/faf-schema.js.map +1 -0
  215. package/dist/scoring/championship-scorer.d.ts +114 -0
  216. package/dist/scoring/championship-scorer.d.ts.map +1 -0
  217. package/dist/scoring/championship-scorer.js +380 -0
  218. package/dist/scoring/championship-scorer.js.map +1 -0
  219. package/dist/scoring/score-calculator.d.ts +29 -0
  220. package/dist/scoring/score-calculator.d.ts.map +1 -0
  221. package/dist/scoring/score-calculator.js +520 -0
  222. package/dist/scoring/score-calculator.js.map +1 -0
  223. package/dist/telemetry/analytics.d.ts +74 -0
  224. package/dist/telemetry/analytics.d.ts.map +1 -0
  225. package/dist/telemetry/analytics.js +370 -0
  226. package/dist/telemetry/analytics.js.map +1 -0
  227. package/dist/utils/balance-visualizer.d.ts +38 -0
  228. package/dist/utils/balance-visualizer.d.ts.map +1 -0
  229. package/dist/utils/balance-visualizer.js +196 -0
  230. package/dist/utils/balance-visualizer.js.map +1 -0
  231. package/dist/utils/championship-style.d.ts +110 -0
  232. package/dist/utils/championship-style.d.ts.map +1 -0
  233. package/dist/utils/championship-style.js +213 -0
  234. package/dist/utils/championship-style.js.map +1 -0
  235. package/dist/utils/color-utils.d.ts +17 -0
  236. package/dist/utils/color-utils.d.ts.map +1 -0
  237. package/dist/utils/color-utils.js +96 -0
  238. package/dist/utils/color-utils.js.map +1 -0
  239. package/dist/utils/fab-formats-engine.d.ts +76 -0
  240. package/dist/utils/fab-formats-engine.d.ts.map +1 -0
  241. package/dist/utils/fab-formats-engine.js +424 -0
  242. package/dist/utils/fab-formats-engine.js.map +1 -0
  243. package/dist/utils/fafignore-parser.d.ts +21 -0
  244. package/dist/utils/fafignore-parser.d.ts.map +1 -0
  245. package/dist/utils/fafignore-parser.js +178 -0
  246. package/dist/utils/fafignore-parser.js.map +1 -0
  247. package/dist/utils/file-utils.d.ts +65 -0
  248. package/dist/utils/file-utils.d.ts.map +1 -0
  249. package/dist/utils/file-utils.js +598 -0
  250. package/dist/utils/file-utils.js.map +1 -0
  251. package/dist/utils/platform-detector.d.ts +31 -0
  252. package/dist/utils/platform-detector.d.ts.map +1 -0
  253. package/dist/utils/platform-detector.js +218 -0
  254. package/dist/utils/platform-detector.js.map +1 -0
  255. package/dist/utils/technical-credit.d.ts +36 -0
  256. package/dist/utils/technical-credit.d.ts.map +1 -0
  257. package/dist/utils/technical-credit.js +286 -0
  258. package/dist/utils/technical-credit.js.map +1 -0
  259. package/dist/utils/trust-cache.d.ts +29 -0
  260. package/dist/utils/trust-cache.d.ts.map +1 -0
  261. package/dist/utils/trust-cache.js +123 -0
  262. package/dist/utils/trust-cache.js.map +1 -0
  263. package/dist/utils/turbo-cat-knowledge.d.ts +82 -0
  264. package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -0
  265. package/dist/utils/turbo-cat-knowledge.js +1346 -0
  266. package/dist/utils/turbo-cat-knowledge.js.map +1 -0
  267. package/dist/utils/turbo-cat-pyramid.d.ts +38 -0
  268. package/dist/utils/turbo-cat-pyramid.d.ts.map +1 -0
  269. package/dist/utils/turbo-cat-pyramid.js +287 -0
  270. package/dist/utils/turbo-cat-pyramid.js.map +1 -0
  271. package/dist/utils/turbo-cat.d.ts +92 -0
  272. package/dist/utils/turbo-cat.d.ts.map +1 -0
  273. package/dist/utils/turbo-cat.js +412 -0
  274. package/dist/utils/turbo-cat.js.map +1 -0
  275. package/dist/utils/vibe-sync.d.ts +25 -0
  276. package/dist/utils/vibe-sync.d.ts.map +1 -0
  277. package/dist/utils/vibe-sync.js +169 -0
  278. package/dist/utils/vibe-sync.js.map +1 -0
  279. package/dist/utils/yaml-generator.d.ts +39 -0
  280. package/dist/utils/yaml-generator.d.ts.map +1 -0
  281. package/dist/utils/yaml-generator.js +345 -0
  282. package/dist/utils/yaml-generator.js.map +1 -0
  283. package/package.json +96 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/commands/trust.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;CAC1D;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA6C9E;AAgED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF7H;AAkED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDrF"}
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ /**
3
+ * 🧡 Trust Dashboard Command - The Emotional Core
4
+ * Transforms developer psychology from hope-driven to trust-driven AI development
5
+ *
6
+ * Mission: "I don't worry about ANY of that AI shit anymore"
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.calculateTrustScore = calculateTrustScore;
13
+ exports.displayTrustDashboard = displayTrustDashboard;
14
+ exports.trustCommand = trustCommand;
15
+ const fs_1 = require("fs");
16
+ const path_1 = __importDefault(require("path"));
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ const file_utils_1 = require("../utils/file-utils");
19
+ const score_calculator_1 = require("../scoring/score-calculator");
20
+ const trust_cache_1 = require("../utils/trust-cache");
21
+ const yaml_1 = __importDefault(require("yaml"));
22
+ /**
23
+ * Calculate comprehensive trust score based on .faf quality
24
+ */
25
+ async function calculateTrustScore(fafPath) {
26
+ try {
27
+ const fafContent = await fs_1.promises.readFile(fafPath, 'utf-8');
28
+ const fafData = yaml_1.default.parse(fafContent);
29
+ // Basic validation - check if essential sections exist
30
+ const isValid = fafData &&
31
+ typeof fafData === 'object' &&
32
+ fafData.project &&
33
+ fafData.metadata;
34
+ // Calculate context completeness using existing scoring
35
+ const scoreResult = await (0, score_calculator_1.calculateFafScore)(fafData, fafPath);
36
+ const contextCompleteness = scoreResult.totalScore;
37
+ // Calculate freshness (based on timestamp if available)
38
+ const freshnessScore = calculateFreshness(fafData);
39
+ // AI compatibility enhanced with verification
40
+ const aiCompatibility = await calculateAICompatibility(fafPath, fafData, isValid);
41
+ // Overall trust calculation (weighted average)
42
+ const overall = Math.round((contextCompleteness * 0.4) +
43
+ (aiCompatibility * 0.3) +
44
+ (freshnessScore * 0.2) +
45
+ (isValid ? 10 : 0));
46
+ return {
47
+ overall: Math.min(overall, 100),
48
+ contextCompleteness,
49
+ aiCompatibility,
50
+ freshnessScore,
51
+ verificationStatus: isValid ? 'unverified' : 'failed'
52
+ };
53
+ }
54
+ catch {
55
+ return {
56
+ overall: 0,
57
+ contextCompleteness: 0,
58
+ aiCompatibility: 0,
59
+ freshnessScore: 0,
60
+ verificationStatus: 'failed'
61
+ };
62
+ }
63
+ }
64
+ /**
65
+ * Calculate AI compatibility based on content quality and cached verification results
66
+ */
67
+ async function calculateAICompatibility(fafPath, fafData, isValid) {
68
+ // Check for cached verification results first
69
+ const cachedResults = await (0, trust_cache_1.getTrustCache)(fafPath);
70
+ if (cachedResults) {
71
+ // Use verified AI compatibility score
72
+ return cachedResults.aiCompatibilityScore;
73
+ }
74
+ // Fallback to content-based scoring
75
+ if (!isValid) {
76
+ return 30;
77
+ }
78
+ let score = 50; // Base score for valid files
79
+ // Check for championship content (no placeholders)
80
+ const hasGoodGoal = fafData?.project?.goal &&
81
+ !fafData.project.goal.includes('!CI') &&
82
+ fafData.project.goal !== 'Project development and deployment';
83
+ const hasGoodDescription = fafData?.instant_context?.what_building &&
84
+ !fafData.instant_context.what_building.includes('!CI') &&
85
+ fafData.instant_context.what_building !== 'Software application';
86
+ const hasRevolutionaryContent = fafData?.project?.mission?.includes('Make Your AI Happy');
87
+ const hasTechStack = fafData?.instant_context?.tech_stack &&
88
+ fafData.instant_context.tech_stack !== 'Unknown';
89
+ // Championship scoring
90
+ if (hasGoodGoal) {
91
+ score += 15;
92
+ }
93
+ if (hasGoodDescription) {
94
+ score += 15;
95
+ }
96
+ if (hasRevolutionaryContent) {
97
+ score += 10;
98
+ } // Brand ambassador bonus
99
+ if (hasTechStack) {
100
+ score += 10;
101
+ }
102
+ return Math.min(score, 100);
103
+ }
104
+ /**
105
+ * Calculate freshness score based on timestamp
106
+ */
107
+ function calculateFreshness(fafData) {
108
+ try {
109
+ const timestamp = fafData?.metadata?.updated_date || fafData?.metadata?.created_date;
110
+ if (!timestamp) {
111
+ return 50;
112
+ } // No timestamp = middle score
113
+ const lastUpdate = new Date(timestamp);
114
+ const now = new Date();
115
+ const daysDiff = (now.getTime() - lastUpdate.getTime()) / (1000 * 60 * 60 * 24);
116
+ // Freshness scoring: 100% for <7 days, declining to 0% at 90+ days
117
+ if (daysDiff < 7) {
118
+ return 100;
119
+ }
120
+ if (daysDiff < 30) {
121
+ return Math.max(80 - ((daysDiff - 7) * 2), 50);
122
+ }
123
+ if (daysDiff < 90) {
124
+ return Math.max(50 - ((daysDiff - 30) * 0.8), 10);
125
+ }
126
+ return 10; // Very stale
127
+ }
128
+ catch {
129
+ return 50; // Default middle score
130
+ }
131
+ }
132
+ /**
133
+ * Display the Trust Dashboard - the emotional core UI
134
+ */
135
+ async function displayTrustDashboard(fafPath, trustScore, detailed = false) {
136
+ const { overall, contextCompleteness, aiCompatibility, freshnessScore } = trustScore;
137
+ // Choose emoji and color based on trust level
138
+ let trustEmoji = '🧡';
139
+ let trustColor = chalk_1.default.green;
140
+ let trustMessage = 'LOCKED & LOADED';
141
+ if (overall >= 90) {
142
+ trustEmoji = '🧡';
143
+ trustColor = chalk_1.default.green.bold;
144
+ trustMessage = 'LOCKED & LOADED';
145
+ }
146
+ else if (overall >= 75) {
147
+ trustEmoji = '🟡';
148
+ trustColor = chalk_1.default.yellow;
149
+ trustMessage = 'GOOD TO GO';
150
+ }
151
+ else if (overall >= 50) {
152
+ trustEmoji = '🟠';
153
+ trustColor = chalk_1.default.yellow;
154
+ trustMessage = 'NEEDS WORK';
155
+ }
156
+ else {
157
+ trustEmoji = '🔴';
158
+ trustColor = chalk_1.default.red;
159
+ trustMessage = 'NEEDS ATTENTION';
160
+ }
161
+ // Main Trust Dashboard
162
+ console.log();
163
+ console.log(chalk_1.default.cyan('┌─ AI TRUST DASHBOARD ───────────────────┐'));
164
+ console.log(chalk_1.default.cyan('│') + trustColor(` ${trustEmoji} TRUST LEVEL: ${overall}% (${trustMessage})`) + ' '.repeat(Math.max(0, 40 - ` ${trustEmoji} TRUST LEVEL: ${overall}% (${trustMessage})`.length)) + chalk_1.default.cyan('│'));
165
+ console.log(chalk_1.default.cyan('│ │'));
166
+ console.log(`${chalk_1.default.cyan('│')} AI UNDERSTANDING STATUS: ${chalk_1.default.cyan('│')}`);
167
+ // Get verification status from cache
168
+ const cachedResults = await (0, trust_cache_1.getTrustCache)(fafPath);
169
+ let claudeStatus, chatgptStatus, geminiStatus;
170
+ if (cachedResults && cachedResults.allPassed) {
171
+ // Show verified results
172
+ claudeStatus = `☑️ Claude - Perfect context (${cachedResults.verificationResults.claude}%)`;
173
+ chatgptStatus = `☑️ ChatGPT - Perfect context (${cachedResults.verificationResults.chatgpt}%)`;
174
+ geminiStatus = `☑️ Gemini - Perfect context (${cachedResults.verificationResults.gemini}%)`;
175
+ }
176
+ else {
177
+ // Show content-based assessment
178
+ claudeStatus = aiCompatibility >= 80 ? '☑️ Claude - Perfect context ' : aiCompatibility >= 60 ? '🟡 Claude - Good context ' : '🔴 Claude - Needs improvement ';
179
+ chatgptStatus = aiCompatibility >= 80 ? '☑️ ChatGPT - Perfect context ' : aiCompatibility >= 60 ? '🟡 ChatGPT - Good context ' : '🔴 ChatGPT - Needs improvement ';
180
+ geminiStatus = aiCompatibility >= 80 ? '☑️ Gemini - Perfect context ' : aiCompatibility >= 60 ? '🟡 Gemini - Good context ' : '🔴 Gemini - Needs improvement ';
181
+ }
182
+ console.log(`${chalk_1.default.cyan('│')} ${claudeStatus} ${chalk_1.default.cyan('│')}`);
183
+ console.log(`${chalk_1.default.cyan('│')} ${chatgptStatus} ${chalk_1.default.cyan('│')}`);
184
+ console.log(`${chalk_1.default.cyan('│')} ${geminiStatus} ${chalk_1.default.cyan('│')}`);
185
+ console.log(chalk_1.default.cyan('│ │'));
186
+ // Action message
187
+ const actionMessage = overall >= 85 ? '💚 GO BUILD: Context locked & loaded ' : '🔧 ACTION: Improve context quality ';
188
+ console.log(`${chalk_1.default.cyan('│')} ${actionMessage} ${chalk_1.default.cyan('│')}`);
189
+ console.log(chalk_1.default.cyan('└────────────────────────────────────────┘'));
190
+ if (detailed) {
191
+ console.log();
192
+ console.log(chalk_1.default.cyan('📊 Detailed Trust Metrics:'));
193
+ console.log(` Context Completeness: ${contextCompleteness}%`);
194
+ console.log(` AI Compatibility: ${aiCompatibility}%`);
195
+ console.log(` Freshness Score: ${freshnessScore}%`);
196
+ console.log(` Overall Trust: ${overall}%`);
197
+ }
198
+ // Actionable suggestions
199
+ if (overall < 85) {
200
+ console.log();
201
+ console.log(chalk_1.default.yellow('💡 Trust Boosters:'));
202
+ if (contextCompleteness < 75) {
203
+ console.log(chalk_1.default.dim(' • Run `faf init` to improve context completeness'));
204
+ }
205
+ if (freshnessScore < 50) {
206
+ console.log(chalk_1.default.dim(' • Run `faf sync` to refresh stale information'));
207
+ }
208
+ if (!cachedResults) {
209
+ console.log(chalk_1.default.dim(' • Run `faf verify` to test AI understanding and update scores'));
210
+ }
211
+ }
212
+ else if (cachedResults) {
213
+ console.log();
214
+ console.log(chalk_1.default.green('☑️ Verified by AI models - context is championship grade!'));
215
+ }
216
+ console.log();
217
+ }
218
+ // =====================================
219
+ // TRUST MODE FUNCTIONS
220
+ // =====================================
221
+ async function showConfidenceMode(fafPath) {
222
+ const trustScore = await calculateTrustScore(fafPath);
223
+ console.log(chalk_1.default.cyan('🤖 AI Confidence Analysis'));
224
+ console.log(`├─ Claude Confidence: ${trustScore.aiCompatibility}%`);
225
+ console.log(`├─ Context Completeness: ${trustScore.contextCompleteness}%`);
226
+ console.log(`└─ Overall AI Trust: ${trustScore.overall}%`);
227
+ if (trustScore.overall < 70) {
228
+ console.log('\n💡 Boost confidence with:');
229
+ console.log(' • faf todo - Complete improvement tasks');
230
+ console.log(' • faf verify - Test with AI models');
231
+ }
232
+ }
233
+ async function showGarageMode(fafPath) {
234
+ console.log(chalk_1.default.green('🔧 Safe Experimentation Garage'));
235
+ console.log('├─ Backup created: .faf.garage-backup');
236
+ console.log('├─ Safe to experiment with context changes');
237
+ console.log('└─ Restore anytime with: faf trust --panic');
238
+ // Create backup for safe experimentation
239
+ const backupPath = `${fafPath}.garage-backup`;
240
+ const fafContent = await fs_1.promises.readFile(fafPath, 'utf-8');
241
+ await fs_1.promises.writeFile(backupPath, fafContent);
242
+ }
243
+ async function showPanicMode(fafPath) {
244
+ console.log(chalk_1.default.red('🚨 Emergency Context Repair'));
245
+ // Look for backup files
246
+ const backupPath = `${fafPath}.garage-backup`;
247
+ const backupExists = await fs_1.promises.access(backupPath).then(() => true).catch(() => false);
248
+ if (backupExists) {
249
+ console.log('├─ Garage backup found - restoring...');
250
+ const backupContent = await fs_1.promises.readFile(backupPath, 'utf-8');
251
+ await fs_1.promises.writeFile(fafPath, backupContent);
252
+ console.log('└─ ☑️ Context restored from garage backup!');
253
+ }
254
+ else {
255
+ console.log('├─ No garage backup found');
256
+ console.log('├─ Running emergency diagnostics...');
257
+ console.log('└─ Run: faf check --fix for auto-repair');
258
+ }
259
+ }
260
+ async function showGuaranteeMode(fafPath) {
261
+ console.log(chalk_1.default.blue('🛡️ Quality Assurance Mode'));
262
+ console.log('├─ Running comprehensive quality checks...');
263
+ const trustScore = await calculateTrustScore(fafPath);
264
+ const passed = trustScore.overall >= 85;
265
+ if (passed) {
266
+ console.log('└─ ☑️ QUALITY GUARANTEED - Context meets championship standards!');
267
+ }
268
+ else {
269
+ console.log('├─ ⚠️ Quality below guarantee threshold (85%)');
270
+ console.log('└─ Run: faf todo for improvement plan');
271
+ }
272
+ }
273
+ /**
274
+ * Main trust command handler
275
+ */
276
+ async function trustCommand(options = {}) {
277
+ try {
278
+ const fafPath = await (0, file_utils_1.findFafFile)();
279
+ if (!fafPath) {
280
+ console.log(chalk_1.default.red('❌ No .faf file found in current directory or parent directories'));
281
+ console.log(chalk_1.default.dim('💡 Run `faf init` to generate your first .faf file'));
282
+ return; // Let analytics wrapper handle footer display
283
+ }
284
+ // Handle specific trust modes
285
+ if (options.confidence) {
286
+ await showConfidenceMode(fafPath);
287
+ return;
288
+ }
289
+ if (options.garage) {
290
+ await showGarageMode(fafPath);
291
+ return;
292
+ }
293
+ if (options.panic) {
294
+ await showPanicMode(fafPath);
295
+ return;
296
+ }
297
+ if (options.guarantee) {
298
+ await showGuaranteeMode(fafPath);
299
+ return;
300
+ }
301
+ console.log(chalk_1.default.dim(`🧡 Calculating trust for: ${path_1.default.relative(process.cwd(), fafPath)}`));
302
+ const startTime = Date.now();
303
+ const trustScore = await calculateTrustScore(fafPath);
304
+ const duration = Date.now() - startTime;
305
+ await displayTrustDashboard(fafPath, trustScore, options.detailed);
306
+ // Performance indicator (should be <300ms)
307
+ if (options.detailed) {
308
+ console.log(chalk_1.default.dim(`⚡ Performance: ${duration}ms`));
309
+ }
310
+ }
311
+ catch (error) {
312
+ console.error(chalk_1.default.red('❌ Error calculating trust score:'), error);
313
+ process.exit(1);
314
+ }
315
+ }
316
+ //# sourceMappingURL=trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/commands/trust.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 🔍 faf validate - Validation Command
3
+ * Validates .faf files against schema with detailed feedback
4
+ */
5
+ interface ValidateOptions {
6
+ schema?: string;
7
+ verbose?: boolean;
8
+ }
9
+ export declare function validateFafFile(file?: string, options?: ValidateOptions): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,eAAe,CACnC,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,eAAoB,iBAsE9B"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * 🔍 faf validate - Validation Command
4
+ * Validates .faf files against schema with detailed feedback
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.validateFafFile = validateFafFile;
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const fs_1 = require("fs");
46
+ const YAML = __importStar(require("yaml"));
47
+ const faf_schema_1 = require("../schema/faf-schema");
48
+ const file_utils_1 = require("../utils/file-utils");
49
+ const technical_credit_1 = require("../utils/technical-credit");
50
+ async function validateFafFile(file, options = {}) {
51
+ try {
52
+ const fafPath = file || (await (0, file_utils_1.findFafFile)());
53
+ if (!fafPath) {
54
+ console.log(chalk_1.default.red("❌ No .faf file found"));
55
+ console.log(chalk_1.default.yellow('💡 Run "faf init" to create one'));
56
+ process.exit(1);
57
+ }
58
+ console.log(chalk_1.default.blue(`🔍 Validating: ${fafPath}`));
59
+ // Read and parse .faf file
60
+ const content = await fs_1.promises.readFile(fafPath, "utf-8");
61
+ const fafData = YAML.parse(content);
62
+ // Validate against schema
63
+ const validation = (0, faf_schema_1.validateSchema)(fafData, options.schema || "latest");
64
+ if (validation.valid) {
65
+ console.log(chalk_1.default.green("☑️ Valid .faf file"));
66
+ // Award technical credit for successful validation
67
+ await (0, technical_credit_1.autoAwardCredit)('validation_passed', fafPath);
68
+ if (options.verbose) {
69
+ console.log(chalk_1.default.gray("📊 Validation Details:"));
70
+ console.log(chalk_1.default.gray(` Schema Version: ${validation.schemaVersion}`));
71
+ console.log(chalk_1.default.gray(` Format Version: ${fafData.faf_version || "unknown"}`));
72
+ console.log(chalk_1.default.gray(` Total Sections: ${validation.sectionsFound}`));
73
+ console.log(chalk_1.default.gray(` Required Fields: ${validation.requiredFieldsFound}/${validation.requiredFieldsTotal}`));
74
+ }
75
+ }
76
+ else {
77
+ console.log(chalk_1.default.red("❌ Invalid .faf file"));
78
+ console.log(chalk_1.default.red("🚨 Errors found:"));
79
+ validation.errors.forEach((error, index) => {
80
+ console.log(chalk_1.default.red(` ${index + 1}. ${error.message}`));
81
+ if (error.path) {
82
+ console.log(chalk_1.default.gray(` Path: ${error.path}`));
83
+ }
84
+ });
85
+ if (validation.warnings.length > 0) {
86
+ console.log(chalk_1.default.yellow("⚠️ Warnings:"));
87
+ validation.warnings.forEach((warning, index) => {
88
+ console.log(chalk_1.default.yellow(` ${index + 1}. ${warning.message}`));
89
+ });
90
+ }
91
+ process.exit(1);
92
+ }
93
+ }
94
+ catch (error) {
95
+ console.log(chalk_1.default.red("💥 Validation failed:"));
96
+ console.log(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
97
+ process.exit(1);
98
+ }
99
+ }
100
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,0CAwEC;AApFD,kDAA0B;AAC1B,2BAAoC;AACpC,2CAA6B;AAC7B,qDAAsD;AACtD,oDAAkD;AAClD,gEAA4D;AAOrD,KAAK,UAAU,eAAe,CACnC,IAAa,EACb,UAA2B,EAAE;IAE7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,IAAA,wBAAW,GAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC,CAAC;QAErD,2BAA2B;QAC3B,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAA,2BAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC;QAEvE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAE/C,mDAAmD;YACnD,MAAM,IAAA,kCAAe,EAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YAEpD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,aAAa,EAAE,CAAC,CAC7D,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,CACrE,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,aAAa,EAAE,CAAC,CAC7D,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,uBAAuB,UAAU,CAAC,mBAAmB,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAC1F,CACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAE3C,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC3C,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * 🤖 AI Verification System - The Trust Builder
3
+ * Tests .faf context with Claude, ChatGPT, and Gemini to prove AI understanding
4
+ *
5
+ * Mission: Transform "🔴 Needs improvement" → "☑️ Perfect context"
6
+ */
7
+ export interface VerificationResult {
8
+ model: string;
9
+ understood: boolean;
10
+ confidence: number;
11
+ understanding: string;
12
+ suggestions?: string[];
13
+ responseTime?: number;
14
+ }
15
+ export interface AIVerificationOptions {
16
+ models?: string[];
17
+ timeout?: number;
18
+ detailed?: boolean;
19
+ }
20
+ /**
21
+ * Test .faf context with multiple AI models
22
+ */
23
+ export declare function verifyWithAI(fafPath: string, options?: AIVerificationOptions): Promise<VerificationResult[]>;
24
+ /**
25
+ * Display verification results with beautiful formatting
26
+ */
27
+ export declare function displayVerificationResults(results: VerificationResult[], detailed?: boolean): void;
28
+ /**
29
+ * Update Trust Dashboard with verification results
30
+ */
31
+ export declare function updateTrustWithVerification(fafPath: string, results: VerificationResult[]): Promise<number>;
32
+ /**
33
+ * Main verify command handler
34
+ */
35
+ export declare function verifyCommand(options?: AIVerificationOptions): Promise<void>;
36
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA2BtH;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI,CA4CzG;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CASjH;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCtF"}