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.
- package/LICENSE +21 -0
- package/README.md +227 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1249 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ai-analyze.d.ts +18 -0
- package/dist/commands/ai-analyze.d.ts.map +1 -0
- package/dist/commands/ai-analyze.js +226 -0
- package/dist/commands/ai-analyze.js.map +1 -0
- package/dist/commands/ai-enhance.d.ts +17 -0
- package/dist/commands/ai-enhance.d.ts.map +1 -0
- package/dist/commands/ai-enhance.js +278 -0
- package/dist/commands/ai-enhance.js.map +1 -0
- package/dist/commands/audit.d.ts +11 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +180 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auto.d.ts +27 -0
- package/dist/commands/auto.d.ts.map +1 -0
- package/dist/commands/auto.js +106 -0
- package/dist/commands/auto.js.map +1 -0
- package/dist/commands/bi-sync.d.ts +43 -0
- package/dist/commands/bi-sync.d.ts.map +1 -0
- package/dist/commands/bi-sync.js +224 -0
- package/dist/commands/bi-sync.js.map +1 -0
- package/dist/commands/chat.d.ts +6 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +227 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/check.d.ts +15 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +58 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/clear.d.ts +15 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +167 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/commit.d.ts +8 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +164 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/convert.d.ts +19 -0
- package/dist/commands/convert.d.ts.map +1 -0
- package/dist/commands/convert.js +102 -0
- package/dist/commands/convert.js.map +1 -0
- package/dist/commands/credit.d.ts +13 -0
- package/dist/commands/credit.d.ts.map +1 -0
- package/dist/commands/credit.js +149 -0
- package/dist/commands/credit.js.map +1 -0
- package/dist/commands/edit-helper.d.ts +6 -0
- package/dist/commands/edit-helper.d.ts.map +1 -0
- package/dist/commands/edit-helper.js +55 -0
- package/dist/commands/edit-helper.js.map +1 -0
- package/dist/commands/edit.d.ts +14 -0
- package/dist/commands/edit.d.ts.map +1 -0
- package/dist/commands/edit.js +196 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/faf-auth.d.ts +10 -0
- package/dist/commands/faf-auth.d.ts.map +1 -0
- package/dist/commands/faf-auth.js +162 -0
- package/dist/commands/faf-auth.js.map +1 -0
- package/dist/commands/faf-dna.d.ts +9 -0
- package/dist/commands/faf-dna.d.ts.map +1 -0
- package/dist/commands/faf-dna.js +141 -0
- package/dist/commands/faf-dna.js.map +1 -0
- package/dist/commands/faf-log.d.ts +9 -0
- package/dist/commands/faf-log.d.ts.map +1 -0
- package/dist/commands/faf-log.js +135 -0
- package/dist/commands/faf-log.js.map +1 -0
- package/dist/commands/faf-recover.d.ts +3 -0
- package/dist/commands/faf-recover.d.ts.map +1 -0
- package/dist/commands/faf-recover.js +299 -0
- package/dist/commands/faf-recover.js.map +1 -0
- package/dist/commands/faf-update.d.ts +9 -0
- package/dist/commands/faf-update.d.ts.map +1 -0
- package/dist/commands/faf-update.js +68 -0
- package/dist/commands/faf-update.js.map +1 -0
- package/dist/commands/faq.d.ts +12 -0
- package/dist/commands/faq.d.ts.map +1 -0
- package/dist/commands/faq.js +84 -0
- package/dist/commands/faq.js.map +1 -0
- package/dist/commands/flow.d.ts +11 -0
- package/dist/commands/flow.d.ts.map +1 -0
- package/dist/commands/flow.js +117 -0
- package/dist/commands/flow.js.map +1 -0
- package/dist/commands/formats.d.ts +12 -0
- package/dist/commands/formats.d.ts.map +1 -0
- package/dist/commands/formats.js +109 -0
- package/dist/commands/formats.js.map +1 -0
- package/dist/commands/index.d.ts +14 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +443 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +202 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lint.d.ts +11 -0
- package/dist/commands/lint.d.ts.map +1 -0
- package/dist/commands/lint.js +269 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/mirror.d.ts +7 -0
- package/dist/commands/mirror.d.ts.map +1 -0
- package/dist/commands/mirror.js +130 -0
- package/dist/commands/mirror.js.map +1 -0
- package/dist/commands/score.d.ts +11 -0
- package/dist/commands/score.d.ts.map +1 -0
- package/dist/commands/score.js +192 -0
- package/dist/commands/score.js.map +1 -0
- package/dist/commands/search.d.ts +16 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +174 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/share.d.ts +17 -0
- package/dist/commands/share.d.ts.map +1 -0
- package/dist/commands/share.js +260 -0
- package/dist/commands/share.js.map +1 -0
- package/dist/commands/show.d.ts +10 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +167 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/stacks.d.ts +51 -0
- package/dist/commands/stacks.d.ts.map +1 -0
- package/dist/commands/stacks.js +180 -0
- package/dist/commands/stacks.js.map +1 -0
- package/dist/commands/status.d.ts +13 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +158 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +11 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +300 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/todo.d.ts +14 -0
- package/dist/commands/todo.d.ts.map +1 -0
- package/dist/commands/todo.js +279 -0
- package/dist/commands/todo.js.map +1 -0
- package/dist/commands/trust.d.ts +33 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +316 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/commands/validate.d.ts +11 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +100 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/verify.d.ts +36 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +194 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/version.d.ts +5 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +33 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/commands/vibe.d.ts +7 -0
- package/dist/commands/vibe.d.ts.map +1 -0
- package/dist/commands/vibe.js +78 -0
- package/dist/commands/vibe.js.map +1 -0
- package/dist/converters/faf-converters.d.ts +43 -0
- package/dist/converters/faf-converters.d.ts.map +1 -0
- package/dist/converters/faf-converters.js +186 -0
- package/dist/converters/faf-converters.js.map +1 -0
- package/dist/engine-bridge.d.ts +35 -0
- package/dist/engine-bridge.d.ts.map +1 -0
- package/dist/engine-bridge.js +76 -0
- package/dist/engine-bridge.js.map +1 -0
- package/dist/engines/claude-todo-engine.d.ts +115 -0
- package/dist/engines/claude-todo-engine.d.ts.map +1 -0
- package/dist/engines/claude-todo-engine.js +346 -0
- package/dist/engines/claude-todo-engine.js.map +1 -0
- package/dist/engines/drop-coach.d.ts +64 -0
- package/dist/engines/drop-coach.d.ts.map +1 -0
- package/dist/engines/drop-coach.js +222 -0
- package/dist/engines/drop-coach.js.map +1 -0
- package/dist/engines/fab-formats-processor.d.ts +167 -0
- package/dist/engines/fab-formats-processor.d.ts.map +1 -0
- package/dist/engines/fab-formats-processor.js +1274 -0
- package/dist/engines/fab-formats-processor.js.map +1 -0
- package/dist/engines/faf-dna.d.ts +160 -0
- package/dist/engines/faf-dna.d.ts.map +1 -0
- package/dist/engines/faf-dna.js +522 -0
- package/dist/engines/faf-dna.js.map +1 -0
- package/dist/engines/relentless-context-extractor.d.ts +101 -0
- package/dist/engines/relentless-context-extractor.d.ts.map +1 -0
- package/dist/engines/relentless-context-extractor.js +625 -0
- package/dist/engines/relentless-context-extractor.js.map +1 -0
- package/dist/fix-once/colors.d.ts +83 -0
- package/dist/fix-once/colors.d.ts.map +1 -0
- package/dist/fix-once/colors.js +145 -0
- package/dist/fix-once/colors.js.map +1 -0
- package/dist/fix-once/types.d.ts +258 -0
- package/dist/fix-once/types.d.ts.map +1 -0
- package/dist/fix-once/types.js +26 -0
- package/dist/fix-once/types.js.map +1 -0
- package/dist/framework-detector.d.ts +286 -0
- package/dist/framework-detector.d.ts.map +1 -0
- package/dist/framework-detector.js +782 -0
- package/dist/framework-detector.js.map +1 -0
- package/dist/generators/faf-generator-championship.d.ts +11 -0
- package/dist/generators/faf-generator-championship.d.ts.map +1 -0
- package/dist/generators/faf-generator-championship.js +371 -0
- package/dist/generators/faf-generator-championship.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/output/experience-manager.d.ts +58 -0
- package/dist/output/experience-manager.d.ts.map +1 -0
- package/dist/output/experience-manager.js +212 -0
- package/dist/output/experience-manager.js.map +1 -0
- package/dist/schema/faf-schema.d.ts +92 -0
- package/dist/schema/faf-schema.d.ts.map +1 -0
- package/dist/schema/faf-schema.js +173 -0
- package/dist/schema/faf-schema.js.map +1 -0
- package/dist/scoring/championship-scorer.d.ts +114 -0
- package/dist/scoring/championship-scorer.d.ts.map +1 -0
- package/dist/scoring/championship-scorer.js +380 -0
- package/dist/scoring/championship-scorer.js.map +1 -0
- package/dist/scoring/score-calculator.d.ts +29 -0
- package/dist/scoring/score-calculator.d.ts.map +1 -0
- package/dist/scoring/score-calculator.js +520 -0
- package/dist/scoring/score-calculator.js.map +1 -0
- package/dist/telemetry/analytics.d.ts +74 -0
- package/dist/telemetry/analytics.d.ts.map +1 -0
- package/dist/telemetry/analytics.js +370 -0
- package/dist/telemetry/analytics.js.map +1 -0
- package/dist/utils/balance-visualizer.d.ts +38 -0
- package/dist/utils/balance-visualizer.d.ts.map +1 -0
- package/dist/utils/balance-visualizer.js +196 -0
- package/dist/utils/balance-visualizer.js.map +1 -0
- package/dist/utils/championship-style.d.ts +110 -0
- package/dist/utils/championship-style.d.ts.map +1 -0
- package/dist/utils/championship-style.js +213 -0
- package/dist/utils/championship-style.js.map +1 -0
- package/dist/utils/color-utils.d.ts +17 -0
- package/dist/utils/color-utils.d.ts.map +1 -0
- package/dist/utils/color-utils.js +96 -0
- package/dist/utils/color-utils.js.map +1 -0
- package/dist/utils/fab-formats-engine.d.ts +76 -0
- package/dist/utils/fab-formats-engine.d.ts.map +1 -0
- package/dist/utils/fab-formats-engine.js +424 -0
- package/dist/utils/fab-formats-engine.js.map +1 -0
- package/dist/utils/fafignore-parser.d.ts +21 -0
- package/dist/utils/fafignore-parser.d.ts.map +1 -0
- package/dist/utils/fafignore-parser.js +178 -0
- package/dist/utils/fafignore-parser.js.map +1 -0
- package/dist/utils/file-utils.d.ts +65 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +598 -0
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/platform-detector.d.ts +31 -0
- package/dist/utils/platform-detector.d.ts.map +1 -0
- package/dist/utils/platform-detector.js +218 -0
- package/dist/utils/platform-detector.js.map +1 -0
- package/dist/utils/technical-credit.d.ts +36 -0
- package/dist/utils/technical-credit.d.ts.map +1 -0
- package/dist/utils/technical-credit.js +286 -0
- package/dist/utils/technical-credit.js.map +1 -0
- package/dist/utils/trust-cache.d.ts +29 -0
- package/dist/utils/trust-cache.d.ts.map +1 -0
- package/dist/utils/trust-cache.js +123 -0
- package/dist/utils/trust-cache.js.map +1 -0
- package/dist/utils/turbo-cat-knowledge.d.ts +82 -0
- package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -0
- package/dist/utils/turbo-cat-knowledge.js +1346 -0
- package/dist/utils/turbo-cat-knowledge.js.map +1 -0
- package/dist/utils/turbo-cat-pyramid.d.ts +38 -0
- package/dist/utils/turbo-cat-pyramid.d.ts.map +1 -0
- package/dist/utils/turbo-cat-pyramid.js +287 -0
- package/dist/utils/turbo-cat-pyramid.js.map +1 -0
- package/dist/utils/turbo-cat.d.ts +92 -0
- package/dist/utils/turbo-cat.d.ts.map +1 -0
- package/dist/utils/turbo-cat.js +412 -0
- package/dist/utils/turbo-cat.js.map +1 -0
- package/dist/utils/vibe-sync.d.ts +25 -0
- package/dist/utils/vibe-sync.d.ts.map +1 -0
- package/dist/utils/vibe-sync.js +169 -0
- package/dist/utils/vibe-sync.js.map +1 -0
- package/dist/utils/yaml-generator.d.ts +39 -0
- package/dist/utils/yaml-generator.d.ts.map +1 -0
- package/dist/utils/yaml-generator.js +345 -0
- package/dist/utils/yaml-generator.js.map +1 -0
- 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"}
|