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,76 @@
1
+ "use strict";
2
+ /**
3
+ * 🚀 faf-engine Integration Bridge
4
+ * Connects the CLI to the independent faf-engine Mk-1
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.EngineBridge = exports.FafEngine = void 0;
8
+ exports.createCLIEngine = createCLIEngine;
9
+ exports.scoreWithEngine = scoreWithEngine;
10
+ exports.generateWithEngine = generateWithEngine;
11
+ exports.validateWithEngine = validateWithEngine;
12
+ const engine_1 = require("@faf/engine");
13
+ const engine_2 = require("@faf/engine");
14
+ // Export the engine for backwards compatibility
15
+ var engine_3 = require("@faf/engine");
16
+ Object.defineProperty(exports, "FafEngine", { enumerable: true, get: function () { return engine_3.FafEngine; } });
17
+ /**
18
+ * Create a CLI-configured engine instance
19
+ */
20
+ function createCLIEngine(projectDir) {
21
+ return new engine_1.FafEngine({
22
+ platform: 'cli',
23
+ projectDir: projectDir || process.cwd(),
24
+ adapter: new engine_2.CLIAdapter({ projectDir: projectDir || process.cwd() })
25
+ });
26
+ }
27
+ /**
28
+ * Bridge function for existing CLI score command
29
+ */
30
+ async function scoreWithEngine(fafFilePath) {
31
+ const engine = createCLIEngine();
32
+ const fafData = await engine.loadFaf(fafFilePath);
33
+ return engine.score(fafData);
34
+ }
35
+ /**
36
+ * Bridge function for existing CLI init command
37
+ */
38
+ async function generateWithEngine(projectDir) {
39
+ const engine = createCLIEngine(projectDir);
40
+ return engine.generateContext(projectDir);
41
+ }
42
+ /**
43
+ * Bridge function for existing CLI validate command
44
+ */
45
+ async function validateWithEngine(fafFilePath) {
46
+ const engine = createCLIEngine();
47
+ const fafData = await engine.loadFaf(fafFilePath);
48
+ return engine.validate(fafData);
49
+ }
50
+ /**
51
+ * Compatibility layer for existing CLI functions
52
+ */
53
+ exports.EngineBridge = {
54
+ // Direct engine access
55
+ createEngine: createCLIEngine,
56
+ // Command bridges
57
+ score: scoreWithEngine,
58
+ generate: generateWithEngine,
59
+ validate: validateWithEngine,
60
+ // Utility functions
61
+ async enhance(fafData, apiKey) {
62
+ // This would integrate with AI enhancement
63
+ const engine = createCLIEngine();
64
+ const validation = engine.validate(fafData);
65
+ if (!validation.valid) {
66
+ throw new Error(`Invalid .faf data: ${validation.errors.join(', ')}`);
67
+ }
68
+ // Return enhanced data (stub for now)
69
+ return {
70
+ ...fafData,
71
+ ai_enhanced: true,
72
+ enhancement_timestamp: new Date().toISOString()
73
+ };
74
+ }
75
+ };
76
+ //# sourceMappingURL=engine-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-bridge.js","sourceRoot":"","sources":["../src/engine-bridge.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAaH,0CAMC;AAKD,0CAIC;AAKD,gDAGC;AAKD,gDAIC;AA3CD,wCAAwC;AACxC,wCAAyC;AAGzC,gDAAgD;AAChD,sCAAwC;AAA/B,mGAAA,SAAS,OAAA;AAGlB;;GAEG;AACH,SAAgB,eAAe,CAAC,UAAmB;IACjD,OAAO,IAAI,kBAAS,CAAC;QACnB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,EAAE,IAAI,mBAAU,CAAC,EAAE,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;KACrE,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,UAAmB;IAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,uBAAuB;IACvB,YAAY,EAAE,eAAe;IAE7B,kBAAkB;IAClB,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAE5B,oBAAoB;IACpB,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,MAAe;QAC7C,2CAA2C;QAC3C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,sCAAsC;QACtC,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,IAAI;YACjB,qBAAqB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAChD,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * 🤖 Claude-Inspired Todo Engine - Championship Gamification System
3
+ *
4
+ * PORTABLE ARCHITECTURE:
5
+ * - Pure TypeScript core (no CLI dependencies)
6
+ * - Works in: Node.js CLI, Browser/Svelte, API endpoints
7
+ * - Pluggable scoring algorithms
8
+ * - Event-driven progress tracking
9
+ *
10
+ * DESIGN PHILOSOPHY:
11
+ * Turn low AI context scores into exciting improvement games
12
+ * with Claude-inspired todo lists and celebration systems.
13
+ */
14
+ export interface TodoItem {
15
+ id: string;
16
+ title: string;
17
+ description: string;
18
+ impact: number;
19
+ difficulty: 'easy' | 'medium' | 'hard';
20
+ category: 'documentation' | 'structure' | 'context' | 'quality' | 'examples';
21
+ completed: boolean;
22
+ completedAt?: Date;
23
+ estimatedMinutes: number;
24
+ aiPersonality: 'claude' | 'chatgpt' | 'gemini' | 'universal';
25
+ }
26
+ export interface TodoList {
27
+ id: string;
28
+ projectId: string;
29
+ currentScore: number;
30
+ targetScore: number;
31
+ items: TodoItem[];
32
+ createdAt: Date;
33
+ updatedAt: Date;
34
+ completedAt?: Date;
35
+ }
36
+ export interface ScoreImprovement {
37
+ before: number;
38
+ after: number;
39
+ improvement: number;
40
+ taskCompleted: string;
41
+ celebrationLevel: 'minor' | 'major' | 'championship';
42
+ }
43
+ export interface TodoGenerationContext {
44
+ currentScore: number;
45
+ projectType: string;
46
+ missingSlots: string[];
47
+ existingFiles: string[];
48
+ techStack: Record<string, any>;
49
+ aiPreference?: 'claude' | 'chatgpt' | 'gemini';
50
+ }
51
+ export declare class ClaudeTodoEngine {
52
+ private todoDatabase;
53
+ private completionCallbacks;
54
+ constructor();
55
+ /**
56
+ * Generate contextual todo list based on current score and missing context
57
+ */
58
+ generateTodoList(context: TodoGenerationContext): TodoList;
59
+ /**
60
+ * Complete a todo item and calculate score improvement
61
+ */
62
+ completeTask(todoList: TodoList, taskId: string, newProjectScore: number): ScoreImprovement;
63
+ /**
64
+ * Subscribe to completion events (for UI updates, celebrations, etc.)
65
+ */
66
+ onTaskCompletion(callback: (improvement: ScoreImprovement) => void): void;
67
+ /**
68
+ * Get progress statistics
69
+ */
70
+ getProgress(todoList: TodoList): {
71
+ completed: number;
72
+ total: number;
73
+ percentage: number;
74
+ remainingPoints: number;
75
+ estimatedMinutes: number;
76
+ };
77
+ private initializeTodoDatabase;
78
+ private addTaskTemplate;
79
+ private getRelevantTasks;
80
+ private isTaskRelevant;
81
+ private optimizeTaskSelection;
82
+ private calculateTargetScore;
83
+ private calculateCelebrationLevel;
84
+ private generateId;
85
+ }
86
+ /**
87
+ * Factory function for creating Claude Todo Engine instances
88
+ * Works in both Node.js and browser environments
89
+ */
90
+ export declare function createClaudeTodoEngine(): ClaudeTodoEngine;
91
+ /**
92
+ * Utility functions for platform-specific integrations
93
+ */
94
+ export declare const TodoEngineUtils: {
95
+ /**
96
+ * Format progress for CLI output
97
+ */
98
+ formatProgressCLI(progress: ReturnType<ClaudeTodoEngine["getProgress"]>): string;
99
+ /**
100
+ * Format progress for Svelte reactive stores
101
+ */
102
+ formatProgressSvelte(progress: ReturnType<ClaudeTodoEngine["getProgress"]>): {
103
+ completed: number;
104
+ total: number;
105
+ percentage: number;
106
+ remainingPoints: number;
107
+ estimatedMinutes: number;
108
+ isComplete: boolean;
109
+ };
110
+ /**
111
+ * Generate celebration message based on improvement
112
+ */
113
+ generateCelebration(improvement: ScoreImprovement): string;
114
+ };
115
+ //# sourceMappingURL=claude-todo-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-todo-engine.d.ts","sourceRoot":"","sources":["../../src/engines/claude-todo-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,346 @@
1
+ "use strict";
2
+ /**
3
+ * 🤖 Claude-Inspired Todo Engine - Championship Gamification System
4
+ *
5
+ * PORTABLE ARCHITECTURE:
6
+ * - Pure TypeScript core (no CLI dependencies)
7
+ * - Works in: Node.js CLI, Browser/Svelte, API endpoints
8
+ * - Pluggable scoring algorithms
9
+ * - Event-driven progress tracking
10
+ *
11
+ * DESIGN PHILOSOPHY:
12
+ * Turn low AI context scores into exciting improvement games
13
+ * with Claude-inspired todo lists and celebration systems.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.TodoEngineUtils = exports.ClaudeTodoEngine = void 0;
17
+ exports.createClaudeTodoEngine = createClaudeTodoEngine;
18
+ // =====================================
19
+ // SCORE-BASED TODO GENERATION ENGINE
20
+ // =====================================
21
+ class ClaudeTodoEngine {
22
+ todoDatabase = new Map();
23
+ completionCallbacks = [];
24
+ constructor() {
25
+ this.initializeTodoDatabase();
26
+ }
27
+ /**
28
+ * Generate contextual todo list based on current score and missing context
29
+ */
30
+ generateTodoList(context) {
31
+ const targetScore = this.calculateTargetScore(context.currentScore);
32
+ const availableTasks = this.getRelevantTasks(context);
33
+ const optimizedTasks = this.optimizeTaskSelection(availableTasks, context, targetScore);
34
+ return {
35
+ id: this.generateId(),
36
+ projectId: context.projectType || 'unknown',
37
+ currentScore: context.currentScore,
38
+ targetScore,
39
+ items: optimizedTasks,
40
+ createdAt: new Date(),
41
+ updatedAt: new Date()
42
+ };
43
+ }
44
+ /**
45
+ * Complete a todo item and calculate score improvement
46
+ */
47
+ completeTask(todoList, taskId, newProjectScore) {
48
+ const task = todoList.items.find(item => item.id === taskId);
49
+ if (!task || task.completed) {
50
+ throw new Error(`Task ${taskId} not found or already completed`);
51
+ }
52
+ const oldScore = todoList.currentScore;
53
+ task.completed = true;
54
+ task.completedAt = new Date();
55
+ todoList.currentScore = newProjectScore;
56
+ todoList.updatedAt = new Date();
57
+ const improvement = {
58
+ before: oldScore,
59
+ after: newProjectScore,
60
+ improvement: newProjectScore - oldScore,
61
+ taskCompleted: task.title,
62
+ celebrationLevel: this.calculateCelebrationLevel(oldScore, newProjectScore, todoList.targetScore)
63
+ };
64
+ // Check for championship completion
65
+ if (newProjectScore >= todoList.targetScore && !todoList.completedAt) {
66
+ todoList.completedAt = new Date();
67
+ improvement.celebrationLevel = 'championship';
68
+ }
69
+ // Trigger callbacks
70
+ this.completionCallbacks.forEach(callback => callback(improvement));
71
+ return improvement;
72
+ }
73
+ /**
74
+ * Subscribe to completion events (for UI updates, celebrations, etc.)
75
+ */
76
+ onTaskCompletion(callback) {
77
+ this.completionCallbacks.push(callback);
78
+ }
79
+ /**
80
+ * Get progress statistics
81
+ */
82
+ getProgress(todoList) {
83
+ const completed = todoList.items.filter(item => item.completed).length;
84
+ const total = todoList.items.length;
85
+ const remainingTasks = todoList.items.filter(item => !item.completed);
86
+ const remainingPoints = remainingTasks.reduce((sum, task) => sum + task.impact, 0);
87
+ const estimatedMinutes = remainingTasks.reduce((sum, task) => sum + task.estimatedMinutes, 0);
88
+ return {
89
+ completed,
90
+ total,
91
+ percentage: total > 0 ? (completed / total) * 100 : 0,
92
+ remainingPoints,
93
+ estimatedMinutes
94
+ };
95
+ }
96
+ // =====================================
97
+ // PRIVATE IMPLEMENTATION
98
+ // =====================================
99
+ initializeTodoDatabase() {
100
+ // High-impact documentation tasks (Claude's favorites)
101
+ this.addTaskTemplate({
102
+ id: 'readme-creation',
103
+ title: 'Create comprehensive README.md',
104
+ description: 'Add project overview, installation, and usage instructions',
105
+ impact: 15,
106
+ difficulty: 'medium',
107
+ category: 'documentation',
108
+ completed: false,
109
+ estimatedMinutes: 20,
110
+ aiPersonality: 'claude'
111
+ });
112
+ this.addTaskTemplate({
113
+ id: 'project-goals',
114
+ title: 'Define clear project goals',
115
+ description: 'Add specific, measurable project objectives to .faf',
116
+ impact: 12,
117
+ difficulty: 'easy',
118
+ category: 'context',
119
+ completed: false,
120
+ estimatedMinutes: 10,
121
+ aiPersonality: 'universal'
122
+ });
123
+ this.addTaskTemplate({
124
+ id: 'tech-stack-documentation',
125
+ title: 'Document complete tech stack',
126
+ description: 'List all frameworks, libraries, and tools used',
127
+ impact: 10,
128
+ difficulty: 'easy',
129
+ category: 'structure',
130
+ completed: false,
131
+ estimatedMinutes: 8,
132
+ aiPersonality: 'chatgpt'
133
+ });
134
+ this.addTaskTemplate({
135
+ id: 'api-documentation',
136
+ title: 'Add API documentation',
137
+ description: 'Document all public APIs and endpoints',
138
+ impact: 18,
139
+ difficulty: 'hard',
140
+ category: 'documentation',
141
+ completed: false,
142
+ estimatedMinutes: 45,
143
+ aiPersonality: 'claude'
144
+ });
145
+ this.addTaskTemplate({
146
+ id: 'examples-creation',
147
+ title: 'Add usage examples',
148
+ description: 'Create practical examples showing how to use the project',
149
+ impact: 14,
150
+ difficulty: 'medium',
151
+ category: 'examples',
152
+ completed: false,
153
+ estimatedMinutes: 30,
154
+ aiPersonality: 'chatgpt'
155
+ });
156
+ this.addTaskTemplate({
157
+ id: 'architecture-overview',
158
+ title: 'Add architecture overview',
159
+ description: 'Explain system design and component relationships',
160
+ impact: 16,
161
+ difficulty: 'medium',
162
+ category: 'documentation',
163
+ completed: false,
164
+ estimatedMinutes: 25,
165
+ aiPersonality: 'gemini'
166
+ });
167
+ this.addTaskTemplate({
168
+ id: 'package-description',
169
+ title: 'Improve package.json description',
170
+ description: 'Write clear, compelling project description',
171
+ impact: 8,
172
+ difficulty: 'easy',
173
+ category: 'structure',
174
+ completed: false,
175
+ estimatedMinutes: 5,
176
+ aiPersonality: 'universal'
177
+ });
178
+ this.addTaskTemplate({
179
+ id: 'contributing-guide',
180
+ title: 'Create CONTRIBUTING.md',
181
+ description: 'Guide contributors on how to participate',
182
+ impact: 11,
183
+ difficulty: 'medium',
184
+ category: 'documentation',
185
+ completed: false,
186
+ estimatedMinutes: 15,
187
+ aiPersonality: 'claude'
188
+ });
189
+ this.addTaskTemplate({
190
+ id: 'error-handling-docs',
191
+ title: 'Document error handling',
192
+ description: 'Explain how errors are handled and what users should expect',
193
+ impact: 9,
194
+ difficulty: 'easy',
195
+ category: 'quality',
196
+ completed: false,
197
+ estimatedMinutes: 12,
198
+ aiPersonality: 'gemini'
199
+ });
200
+ this.addTaskTemplate({
201
+ id: 'deployment-instructions',
202
+ title: 'Add deployment instructions',
203
+ description: 'Step-by-step guide for deploying the project',
204
+ impact: 13,
205
+ difficulty: 'medium',
206
+ category: 'documentation',
207
+ completed: false,
208
+ estimatedMinutes: 20,
209
+ aiPersonality: 'chatgpt'
210
+ });
211
+ }
212
+ addTaskTemplate(template) {
213
+ const category = template.category;
214
+ if (!this.todoDatabase.has(category)) {
215
+ this.todoDatabase.set(category, []);
216
+ }
217
+ this.todoDatabase.get(category).push(template);
218
+ }
219
+ getRelevantTasks(context) {
220
+ const allTasks = [];
221
+ // Get tasks from all categories
222
+ this.todoDatabase.forEach((categoryTasks) => {
223
+ allTasks.push(...categoryTasks);
224
+ });
225
+ // Filter based on missing context and existing files
226
+ return allTasks.filter(task => this.isTaskRelevant(task, context));
227
+ }
228
+ isTaskRelevant(task, context) {
229
+ // Don't suggest README if it already exists
230
+ if (task.id === 'readme-creation' && context.existingFiles.includes('README.md')) {
231
+ return false;
232
+ }
233
+ // Don't suggest package.json improvements if it doesn't exist
234
+ if (task.id === 'package-description' && !context.existingFiles.includes('package.json')) {
235
+ return false;
236
+ }
237
+ // Prefer tasks matching AI personality
238
+ if (context.aiPreference && task.aiPersonality !== 'universal' &&
239
+ task.aiPersonality !== context.aiPreference) {
240
+ return Math.random() > 0.7; // 30% chance to include non-preferred
241
+ }
242
+ return true;
243
+ }
244
+ optimizeTaskSelection(availableTasks, context, targetScore) {
245
+ const pointsNeeded = Math.max(0, targetScore - context.currentScore);
246
+ const selectedTasks = [];
247
+ let currentPoints = 0;
248
+ // Sort by impact/effort ratio (efficiency)
249
+ const sortedTasks = availableTasks
250
+ .map(task => ({
251
+ ...task,
252
+ efficiency: task.impact / task.estimatedMinutes
253
+ }))
254
+ .sort((a, b) => b.efficiency - a.efficiency);
255
+ // Select tasks greedily until we hit target or reasonable limit
256
+ for (const task of sortedTasks) {
257
+ if (selectedTasks.length >= 8) {
258
+ break;
259
+ } // Max 8 tasks to avoid overwhelm
260
+ if (currentPoints >= pointsNeeded * 1.2) {
261
+ break;
262
+ } // 20% buffer
263
+ selectedTasks.push({
264
+ ...task,
265
+ id: this.generateId() // Give unique ID for this todo list
266
+ });
267
+ currentPoints += task.impact;
268
+ }
269
+ return selectedTasks;
270
+ }
271
+ calculateTargetScore(currentScore) {
272
+ if (currentScore < 50) {
273
+ return 75;
274
+ }
275
+ if (currentScore < 70) {
276
+ return 85;
277
+ }
278
+ if (currentScore < 85) {
279
+ return 95;
280
+ }
281
+ return 100;
282
+ }
283
+ calculateCelebrationLevel(oldScore, newScore, targetScore) {
284
+ const improvement = newScore - oldScore;
285
+ if (newScore >= targetScore) {
286
+ return 'championship';
287
+ }
288
+ if (improvement >= 15 || newScore >= 85) {
289
+ return 'major';
290
+ }
291
+ return 'minor';
292
+ }
293
+ generateId() {
294
+ return Math.random().toString(36).substring(2) + Date.now().toString(36);
295
+ }
296
+ }
297
+ exports.ClaudeTodoEngine = ClaudeTodoEngine;
298
+ // =====================================
299
+ // EXPORT FOR DIFFERENT PLATFORMS
300
+ // =====================================
301
+ /**
302
+ * Factory function for creating Claude Todo Engine instances
303
+ * Works in both Node.js and browser environments
304
+ */
305
+ function createClaudeTodoEngine() {
306
+ return new ClaudeTodoEngine();
307
+ }
308
+ /**
309
+ * Utility functions for platform-specific integrations
310
+ */
311
+ exports.TodoEngineUtils = {
312
+ /**
313
+ * Format progress for CLI output
314
+ */
315
+ formatProgressCLI(progress) {
316
+ const percentage = Math.round(progress.percentage);
317
+ return `${progress.completed}/${progress.total} tasks (${percentage}%) - ${progress.remainingPoints} points remaining`;
318
+ },
319
+ /**
320
+ * Format progress for Svelte reactive stores
321
+ */
322
+ formatProgressSvelte(progress) {
323
+ return {
324
+ completed: progress.completed,
325
+ total: progress.total,
326
+ percentage: Math.round(progress.percentage),
327
+ remainingPoints: progress.remainingPoints,
328
+ estimatedMinutes: progress.estimatedMinutes,
329
+ isComplete: progress.percentage === 100
330
+ };
331
+ },
332
+ /**
333
+ * Generate celebration message based on improvement
334
+ */
335
+ generateCelebration(improvement) {
336
+ switch (improvement.celebrationLevel) {
337
+ case 'championship':
338
+ return `🏆 CHAMPIONSHIP ACHIEVED! Perfect score: ${improvement.after}%!`;
339
+ case 'major':
340
+ return `🎉 Major breakthrough! +${improvement.improvement} points (${improvement.after}%)`;
341
+ case 'minor':
342
+ return `☑️ Great progress! +${improvement.improvement} points (${improvement.after}%)`;
343
+ }
344
+ }
345
+ };
346
+ //# sourceMappingURL=claude-todo-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-todo-engine.js","sourceRoot":"","sources":["../../src/engines/claude-todo-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * 🏎️ DropCoach - Intelligent File Drop Coaching System
3
+ * Guides users through optimal file uploads with personalized encouragement
4
+ * Part of the RACE STRATEGY package
5
+ */
6
+ export interface CoachingMessage {
7
+ text: string;
8
+ type: 'ai' | 'human' | 'system' | 'trust';
9
+ priority: number;
10
+ }
11
+ export interface FileTypePriority {
12
+ pattern: string;
13
+ name: string;
14
+ value: number;
15
+ reason: string;
16
+ category: 'foundation' | 'framework' | 'quality' | 'deployment';
17
+ }
18
+ export interface ProcessedFile {
19
+ fileName: string;
20
+ fileType: string;
21
+ intelligenceBonus: number;
22
+ }
23
+ export declare class DropCoach {
24
+ private droppedFiles;
25
+ private sessionScore;
26
+ private readonly baseTopSix;
27
+ private readonly pythonTopSix;
28
+ private readonly goTopSix;
29
+ private readonly rustTopSix;
30
+ private readonly javaTopSix;
31
+ /**
32
+ * Detect project type from files
33
+ */
34
+ detectProjectType(fileNames: string[]): 'python' | 'go' | 'rust' | 'java' | 'javascript';
35
+ /**
36
+ * Get appropriate TOP-6 files based on detected project type
37
+ */
38
+ getTopSixForProject(fileNames: string[]): FileTypePriority[];
39
+ /**
40
+ * Get next coaching message based on current state
41
+ */
42
+ getCoachingMessage(processedFiles: ProcessedFile[]): CoachingMessage | null;
43
+ /**
44
+ * Get next priority path that hasn't been dropped yet
45
+ */
46
+ private getNextPriorityPath;
47
+ /**
48
+ * Generate recommendations for missing files
49
+ */
50
+ generateRecommendations(existingFiles: string[]): string[];
51
+ /**
52
+ * Calculate score boost from files
53
+ */
54
+ calculateScoreBoost(fileNames: string[]): number;
55
+ /**
56
+ * Get milestone message for achievements
57
+ */
58
+ getMilestoneMessage(filesCount: number): CoachingMessage | null;
59
+ }
60
+ /**
61
+ * Export singleton instance
62
+ */
63
+ export declare const dropCoach: DropCoach;
64
+ //# sourceMappingURL=drop-coach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drop-coach.d.ts","sourceRoot":"","sources":["../../src/engines/drop-coach.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;CACjE;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAK;IAGzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOzB;IAGF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO3B;IAGF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAOvB;IAGF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOzB;IAGF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOzB;IAEF;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY;IA2CxF;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE;IAkB5D;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,eAAe,GAAG,IAAI;IAoC3E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAmB1D;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAmBhD;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;CA2BhE;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}