@ai-coders/context 0.1.0 → 0.3.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/README.md +113 -580
- package/dist/generators/agents/agentConfig.d.ts +4 -0
- package/dist/generators/agents/agentConfig.d.ts.map +1 -0
- package/dist/generators/agents/agentConfig.js +138 -0
- package/dist/generators/agents/agentConfig.js.map +1 -0
- package/dist/generators/agents/agentGenerator.d.ts +10 -0
- package/dist/generators/agents/agentGenerator.d.ts.map +1 -0
- package/dist/generators/agents/agentGenerator.js +137 -0
- package/dist/generators/agents/agentGenerator.js.map +1 -0
- package/dist/generators/agents/agentTypes.d.ts +4 -0
- package/dist/generators/agents/agentTypes.d.ts.map +1 -0
- package/dist/generators/agents/agentTypes.js +22 -0
- package/dist/generators/agents/agentTypes.js.map +1 -0
- package/dist/generators/agents/contextUtils.d.ts +8 -0
- package/dist/generators/agents/contextUtils.d.ts.map +1 -0
- package/dist/generators/agents/contextUtils.js +15 -0
- package/dist/generators/agents/contextUtils.js.map +1 -0
- package/dist/generators/agents/index.d.ts +4 -0
- package/dist/generators/agents/index.d.ts.map +1 -0
- package/dist/generators/agents/index.js +12 -0
- package/dist/generators/agents/index.js.map +1 -0
- package/dist/generators/agents/promptFormatter.d.ts +9 -0
- package/dist/generators/agents/promptFormatter.d.ts.map +1 -0
- package/dist/generators/agents/promptFormatter.js +84 -0
- package/dist/generators/agents/promptFormatter.js.map +1 -0
- package/dist/generators/agents/templates/index.d.ts +4 -0
- package/dist/generators/agents/templates/index.d.ts.map +1 -0
- package/dist/generators/agents/templates/index.js +8 -0
- package/dist/generators/agents/templates/index.js.map +1 -0
- package/dist/generators/agents/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/agents/templates/indexTemplate.js +35 -0
- package/dist/generators/agents/templates/indexTemplate.js.map +1 -0
- package/dist/generators/agents/templates/playbookTemplate.d.ts +4 -0
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -0
- package/dist/generators/agents/templates/playbookTemplate.js +63 -0
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -0
- package/dist/generators/agents/templates/types.d.ts +14 -0
- package/dist/generators/agents/templates/types.d.ts.map +1 -0
- package/dist/generators/agents/templates/types.js +3 -0
- package/dist/generators/agents/templates/types.js.map +1 -0
- package/dist/generators/analyzers/codebaseAnalyzer.d.ts +45 -0
- package/dist/generators/analyzers/codebaseAnalyzer.d.ts.map +1 -0
- package/dist/generators/analyzers/codebaseAnalyzer.js +293 -0
- package/dist/generators/analyzers/codebaseAnalyzer.js.map +1 -0
- package/dist/generators/analyzers/index.d.ts +3 -0
- package/dist/generators/analyzers/index.d.ts.map +1 -0
- package/dist/generators/analyzers/index.js +6 -0
- package/dist/generators/analyzers/index.js.map +1 -0
- package/dist/generators/documentation/documentationGenerator.d.ts +13 -0
- package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -0
- package/dist/generators/documentation/documentationGenerator.js +115 -0
- package/dist/generators/documentation/documentationGenerator.js.map +1 -0
- package/dist/generators/documentation/documentationTemplates.d.ts +21 -0
- package/dist/generators/documentation/documentationTemplates.d.ts.map +1 -0
- package/dist/generators/documentation/documentationTemplates.js +359 -0
- package/dist/generators/documentation/documentationTemplates.js.map +1 -0
- package/dist/generators/documentation/documentationTypes.d.ts +11 -0
- package/dist/generators/documentation/documentationTypes.d.ts.map +1 -0
- package/dist/generators/documentation/documentationTypes.js +22 -0
- package/dist/generators/documentation/documentationTypes.js.map +1 -0
- package/dist/generators/documentation/documentationUtils.d.ts +7 -0
- package/dist/generators/documentation/documentationUtils.d.ts.map +1 -0
- package/dist/generators/documentation/documentationUtils.js +28 -0
- package/dist/generators/documentation/documentationUtils.js.map +1 -0
- package/dist/generators/documentation/guideRegistry.d.ts +6 -0
- package/dist/generators/documentation/guideRegistry.d.ts.map +1 -0
- package/dist/generators/documentation/guideRegistry.js +82 -0
- package/dist/generators/documentation/guideRegistry.js.map +1 -0
- package/dist/generators/{incrementalDocumentationGenerator.d.ts → documentation/incrementalDocumentationGenerator.d.ts} +4 -4
- package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts.map +1 -0
- package/dist/generators/documentation/incrementalDocumentationGenerator.js.map +1 -0
- package/dist/generators/documentation/index.d.ts +2 -0
- package/dist/generators/documentation/index.d.ts.map +1 -0
- package/dist/generators/documentation/index.js +6 -0
- package/dist/generators/documentation/index.js.map +1 -0
- package/dist/generators/documentation/templates/architectureTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/architectureTemplate.js +66 -0
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/common.d.ts +7 -0
- package/dist/generators/documentation/templates/common.d.ts.map +1 -0
- package/dist/generators/documentation/templates/common.js +58 -0
- package/dist/generators/documentation/templates/common.js.map +1 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.js +55 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +59 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/frontMatter.d.ts +11 -0
- package/dist/generators/documentation/templates/frontMatter.d.ts.map +1 -0
- package/dist/generators/documentation/templates/frontMatter.js +29 -0
- package/dist/generators/documentation/templates/frontMatter.js.map +1 -0
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/glossaryTemplate.js +55 -0
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/index.d.ts +11 -0
- package/dist/generators/documentation/templates/index.d.ts.map +1 -0
- package/dist/generators/documentation/templates/index.js +22 -0
- package/dist/generators/documentation/templates/index.js.map +1 -0
- package/dist/generators/documentation/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/indexTemplate.js +56 -0
- package/dist/generators/documentation/templates/indexTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.js +68 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/securityTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/securityTemplate.js +53 -0
- package/dist/generators/documentation/templates/securityTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/testingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/testingTemplate.js +59 -0
- package/dist/generators/documentation/templates/testingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/toolingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/toolingTemplate.js +56 -0
- package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/types.d.ts +23 -0
- package/dist/generators/documentation/templates/types.d.ts.map +1 -0
- package/dist/generators/documentation/templates/types.js +3 -0
- package/dist/generators/documentation/templates/types.js.map +1 -0
- package/dist/generators/documentation/templates.d.ts +31 -0
- package/dist/generators/documentation/templates.d.ts.map +1 -0
- package/dist/generators/documentation/templates.js +566 -0
- package/dist/generators/documentation/templates.js.map +1 -0
- package/dist/generators/guidelines/agentIntegration.d.ts +43 -0
- package/dist/generators/guidelines/agentIntegration.d.ts.map +1 -0
- package/dist/generators/guidelines/agentIntegration.js +157 -0
- package/dist/generators/guidelines/agentIntegration.js.map +1 -0
- package/dist/generators/guidelines/guidelineTypes.d.ts +40 -0
- package/dist/generators/guidelines/guidelineTypes.d.ts.map +1 -0
- package/dist/generators/guidelines/guidelineTypes.js +144 -0
- package/dist/generators/guidelines/guidelineTypes.js.map +1 -0
- package/dist/generators/guidelines/guidelinesAnalyzer.d.ts +30 -0
- package/dist/generators/guidelines/guidelinesAnalyzer.d.ts.map +1 -0
- package/dist/generators/guidelines/guidelinesAnalyzer.js +263 -0
- package/dist/generators/guidelines/guidelinesAnalyzer.js.map +1 -0
- package/dist/generators/guidelines/guidelinesGenerator.d.ts +30 -0
- package/dist/generators/guidelines/guidelinesGenerator.d.ts.map +1 -0
- package/dist/generators/guidelines/guidelinesGenerator.js +249 -0
- package/dist/generators/guidelines/guidelinesGenerator.js.map +1 -0
- package/dist/generators/guidelines/guidelinesTemplates.d.ts +23 -0
- package/dist/generators/guidelines/guidelinesTemplates.d.ts.map +1 -0
- package/dist/generators/guidelines/guidelinesTemplates.js +304 -0
- package/dist/generators/guidelines/guidelinesTemplates.js.map +1 -0
- package/dist/generators/guidelines/index.d.ts +6 -0
- package/dist/generators/guidelines/index.d.ts.map +1 -0
- package/dist/generators/guidelines/index.js +16 -0
- package/dist/generators/guidelines/index.js.map +1 -0
- package/dist/generators/moduleGrouper.d.ts +14 -0
- package/dist/generators/moduleGrouper.d.ts.map +1 -0
- package/dist/generators/moduleGrouper.js +82 -0
- package/dist/generators/moduleGrouper.js.map +1 -0
- package/dist/generators/plans/index.d.ts +2 -0
- package/dist/generators/plans/index.d.ts.map +1 -0
- package/dist/generators/plans/index.js +6 -0
- package/dist/generators/plans/index.js.map +1 -0
- package/dist/generators/plans/planGenerator.d.ts +22 -0
- package/dist/generators/plans/planGenerator.d.ts.map +1 -0
- package/dist/generators/plans/planGenerator.js +109 -0
- package/dist/generators/plans/planGenerator.js.map +1 -0
- package/dist/generators/plans/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/plans/templates/indexTemplate.js +36 -0
- package/dist/generators/plans/templates/indexTemplate.js.map +1 -0
- package/dist/generators/plans/templates/planTemplate.d.ts +3 -0
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -0
- package/dist/generators/plans/templates/planTemplate.js +83 -0
- package/dist/generators/plans/templates/planTemplate.js.map +1 -0
- package/dist/generators/plans/templates/types.d.ts +19 -0
- package/dist/generators/plans/templates/types.d.ts.map +1 -0
- package/dist/generators/plans/templates/types.js +3 -0
- package/dist/generators/plans/templates/types.js.map +1 -0
- package/dist/generators/projectAnalyzer.d.ts +14 -0
- package/dist/generators/projectAnalyzer.d.ts.map +1 -0
- package/dist/generators/projectAnalyzer.js +217 -0
- package/dist/generators/projectAnalyzer.js.map +1 -0
- package/dist/generators/shared/contextGenerator.d.ts +7 -0
- package/dist/generators/shared/contextGenerator.d.ts.map +1 -0
- package/dist/generators/shared/contextGenerator.js +13 -0
- package/dist/generators/shared/contextGenerator.js.map +1 -0
- package/dist/generators/shared/directoryTemplateHelpers.d.ts +2 -0
- package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +1 -0
- package/dist/generators/shared/directoryTemplateHelpers.js +12 -0
- package/dist/generators/shared/directoryTemplateHelpers.js.map +1 -0
- package/dist/generators/shared/generatorUtils.d.ts +16 -0
- package/dist/generators/shared/generatorUtils.d.ts.map +1 -0
- package/dist/generators/shared/generatorUtils.js +119 -0
- package/dist/generators/shared/generatorUtils.js.map +1 -0
- package/dist/generators/shared/index.d.ts +4 -0
- package/dist/generators/shared/index.d.ts.map +1 -0
- package/dist/generators/shared/index.js +10 -0
- package/dist/generators/shared/index.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1327 -419
- package/dist/index.js.map +1 -1
- package/dist/utils/cliUI.d.ts +6 -4
- package/dist/utils/cliUI.d.ts.map +1 -1
- package/dist/utils/cliUI.js +71 -56
- package/dist/utils/cliUI.js.map +1 -1
- package/dist/utils/i18n.d.ts +181 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +401 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/interactiveMode.d.ts +6 -1
- package/dist/utils/interactiveMode.d.ts.map +1 -1
- package/dist/utils/interactiveMode.js +375 -70
- package/dist/utils/interactiveMode.js.map +1 -1
- package/dist/utils/tokenEstimator.d.ts +10 -9
- package/dist/utils/tokenEstimator.d.ts.map +1 -1
- package/dist/utils/tokenEstimator.js +45 -109
- package/dist/utils/tokenEstimator.js.map +1 -1
- package/package.json +26 -23
- package/prompts/update_plan_prompt.md +42 -0
- package/prompts/update_scaffold_prompt.md +48 -0
- package/dist/generators/agentGenerator.d.ts +0 -23
- package/dist/generators/agentGenerator.d.ts.map +0 -1
- package/dist/generators/agentGenerator.js +0 -357
- package/dist/generators/agentGenerator.js.map +0 -1
- package/dist/generators/documentationGenerator.d.ts +0 -40
- package/dist/generators/documentationGenerator.d.ts.map +0 -1
- package/dist/generators/documentationGenerator.js +0 -786
- package/dist/generators/documentationGenerator.js.map +0 -1
- package/dist/generators/incrementalDocumentationGenerator.d.ts.map +0 -1
- package/dist/generators/incrementalDocumentationGenerator.js.map +0 -1
- /package/dist/generators/{incrementalDocumentationGenerator.js → documentation/incrementalDocumentationGenerator.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenEstimator.d.ts","sourceRoot":"","sources":["../../src/utils/tokenEstimator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenEstimator.d.ts","sourceRoot":"","sources":["../../src/utils/tokenEstimator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO,CAAC;gBADR,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,YAAY,YAAA;IAG1B,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAoD3F,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,sBAAsB;IAgB9B,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM;CAoDrD"}
|
|
@@ -5,90 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TokenEstimator = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
// Model pricing per 1M tokens (as of 2024)
|
|
9
|
-
// Update this constant when new models arrive or prices change
|
|
10
|
-
const MODEL_PRICING = {
|
|
11
|
-
// OpenRouter - Popular models
|
|
12
|
-
'openrouter-claude-3-haiku': {
|
|
13
|
-
provider: 'OpenRouter',
|
|
14
|
-
modelName: 'Claude 3 Haiku',
|
|
15
|
-
input: 0.25,
|
|
16
|
-
output: 1.25
|
|
17
|
-
},
|
|
18
|
-
'openrouter-claude-3-sonnet': {
|
|
19
|
-
provider: 'OpenRouter',
|
|
20
|
-
modelName: 'Claude 3.5 Sonnet',
|
|
21
|
-
input: 3.00,
|
|
22
|
-
output: 15.00
|
|
23
|
-
},
|
|
24
|
-
'openrouter-gpt-4o-mini': {
|
|
25
|
-
provider: 'OpenRouter',
|
|
26
|
-
modelName: 'GPT-4o Mini',
|
|
27
|
-
input: 0.15,
|
|
28
|
-
output: 0.60
|
|
29
|
-
},
|
|
30
|
-
'openrouter-llama-3.1-8b': {
|
|
31
|
-
provider: 'OpenRouter',
|
|
32
|
-
modelName: 'Llama 3.1 8B',
|
|
33
|
-
input: 0.05,
|
|
34
|
-
output: 0.05
|
|
35
|
-
},
|
|
36
|
-
// OpenAI Direct
|
|
37
|
-
'openai-gpt-4o': {
|
|
38
|
-
provider: 'OpenAI',
|
|
39
|
-
modelName: 'GPT-4o',
|
|
40
|
-
input: 2.50,
|
|
41
|
-
output: 10.00
|
|
42
|
-
},
|
|
43
|
-
'openai-gpt-4o-mini': {
|
|
44
|
-
provider: 'OpenAI',
|
|
45
|
-
modelName: 'GPT-4o Mini',
|
|
46
|
-
input: 0.15,
|
|
47
|
-
output: 0.60
|
|
48
|
-
},
|
|
49
|
-
'openai-gpt-4-turbo': {
|
|
50
|
-
provider: 'OpenAI',
|
|
51
|
-
modelName: 'GPT-4 Turbo',
|
|
52
|
-
input: 10.00,
|
|
53
|
-
output: 30.00
|
|
54
|
-
},
|
|
55
|
-
// Anthropic Direct
|
|
56
|
-
'anthropic-claude-3-haiku': {
|
|
57
|
-
provider: 'Anthropic',
|
|
58
|
-
modelName: 'Claude 3 Haiku',
|
|
59
|
-
input: 0.25,
|
|
60
|
-
output: 1.25
|
|
61
|
-
},
|
|
62
|
-
'anthropic-claude-3-sonnet': {
|
|
63
|
-
provider: 'Anthropic',
|
|
64
|
-
modelName: 'Claude 3.5 Sonnet',
|
|
65
|
-
input: 3.00,
|
|
66
|
-
output: 15.00
|
|
67
|
-
},
|
|
68
|
-
// Google AI
|
|
69
|
-
'gemini-1.5-flash': {
|
|
70
|
-
provider: 'Google AI',
|
|
71
|
-
modelName: 'Gemini 1.5 Flash',
|
|
72
|
-
input: 0.075,
|
|
73
|
-
output: 0.30
|
|
74
|
-
},
|
|
75
|
-
'gemini-1.5-pro': {
|
|
76
|
-
provider: 'Google AI',
|
|
77
|
-
modelName: 'Gemini 1.5 Pro',
|
|
78
|
-
input: 1.25,
|
|
79
|
-
output: 5.00
|
|
80
|
-
},
|
|
81
|
-
// Grok (X.AI)
|
|
82
|
-
'grok-beta': {
|
|
83
|
-
provider: 'Grok (X.AI)',
|
|
84
|
-
modelName: 'Grok Beta',
|
|
85
|
-
input: 5.00,
|
|
86
|
-
output: 15.00
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
8
|
class TokenEstimator {
|
|
90
|
-
constructor(fileMapper) {
|
|
9
|
+
constructor(fileMapper, pricing) {
|
|
91
10
|
this.fileMapper = fileMapper;
|
|
11
|
+
this.pricing = pricing;
|
|
92
12
|
}
|
|
93
13
|
async estimateTokensForFullGeneration(repoStructure) {
|
|
94
14
|
const relevantFiles = repoStructure.files.filter(file => this.fileMapper.isTextFile(file.path));
|
|
@@ -118,13 +38,17 @@ class TokenEstimator {
|
|
|
118
38
|
// Estimate output tokens (documentation is typically 30-50% of input size)
|
|
119
39
|
const estimatedOutputTokens = Math.ceil(totalInputWithOverhead * 0.4);
|
|
120
40
|
const estimatedTotalTokens = totalInputWithOverhead + estimatedOutputTokens;
|
|
121
|
-
|
|
41
|
+
const result = {
|
|
122
42
|
totalFiles: relevantFiles.length,
|
|
123
43
|
estimatedInputTokens: totalInputWithOverhead,
|
|
124
44
|
estimatedOutputTokens,
|
|
125
|
-
estimatedTotalTokens
|
|
126
|
-
costEstimates: this.calculateCostEstimates(totalInputWithOverhead, estimatedOutputTokens)
|
|
45
|
+
estimatedTotalTokens
|
|
127
46
|
};
|
|
47
|
+
// Only calculate cost estimates if pricing is provided
|
|
48
|
+
if (this.pricing) {
|
|
49
|
+
result.costEstimates = this.calculateCostEstimates(totalInputWithOverhead, estimatedOutputTokens);
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
128
52
|
}
|
|
129
53
|
selectSampleFiles(files, sampleSize) {
|
|
130
54
|
if (files.length <= sampleSize) {
|
|
@@ -146,20 +70,17 @@ class TokenEstimator {
|
|
|
146
70
|
return Math.ceil(text.length / 4);
|
|
147
71
|
}
|
|
148
72
|
calculateCostEstimates(inputTokens, outputTokens) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const inputCost = (inputTokens / 1000000) * model.input;
|
|
152
|
-
const outputCost = (outputTokens / 1000000) * model.output;
|
|
153
|
-
const totalCost = inputCost + outputCost;
|
|
154
|
-
costEstimates[modelKey] = {
|
|
155
|
-
provider: model.provider,
|
|
156
|
-
modelName: model.modelName,
|
|
157
|
-
inputCost: Math.round(inputCost * 100) / 100, // Round to 2 decimal places
|
|
158
|
-
outputCost: Math.round(outputCost * 100) / 100,
|
|
159
|
-
totalCost: Math.round(totalCost * 100) / 100
|
|
160
|
-
};
|
|
73
|
+
if (!this.pricing) {
|
|
74
|
+
throw new Error('Pricing information is required for cost estimation');
|
|
161
75
|
}
|
|
162
|
-
|
|
76
|
+
const inputCost = (inputTokens / 1000000) * this.pricing.input;
|
|
77
|
+
const outputCost = (outputTokens / 1000000) * this.pricing.output;
|
|
78
|
+
const totalCost = inputCost + outputCost;
|
|
79
|
+
return {
|
|
80
|
+
inputCost: Math.round(inputCost * 100) / 100,
|
|
81
|
+
outputCost: Math.round(outputCost * 100) / 100,
|
|
82
|
+
totalCost: Math.round(totalCost * 100) / 100
|
|
83
|
+
};
|
|
163
84
|
}
|
|
164
85
|
formatTokenEstimate(estimate) {
|
|
165
86
|
const formatNumber = (num) => num.toLocaleString();
|
|
@@ -172,23 +93,38 @@ ${chalk_1.default.bold('🔤 Estimated Input Tokens:')} ${chalk_1.default.cyan(f
|
|
|
172
93
|
${chalk_1.default.bold('📝 Estimated Output Tokens:')} ${chalk_1.default.cyan(formatNumber(estimate.estimatedOutputTokens))}
|
|
173
94
|
${chalk_1.default.bold('🎯 Total Estimated Tokens:')} ${chalk_1.default.cyan(formatNumber(estimate.estimatedTotalTokens))}
|
|
174
95
|
|
|
175
|
-
${chalk_1.default.bold.yellow('💰 Cost Estimates by Model:')}
|
|
176
96
|
`;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
.sort(([, a], [, b]) => a.totalCost - b.totalCost);
|
|
180
|
-
for (const [, costs] of sortedModels) {
|
|
181
|
-
const modelDisplay = `${costs.modelName} (${costs.provider})`;
|
|
97
|
+
if (estimate.costEstimates) {
|
|
98
|
+
const costs = estimate.costEstimates;
|
|
182
99
|
const totalColor = costs.totalCost < 0.10 ? chalk_1.default.green : costs.totalCost < 0.50 ? chalk_1.default.yellow : chalk_1.default.red;
|
|
183
|
-
output +=
|
|
100
|
+
output += `${chalk_1.default.bold.yellow('💰 Cost Estimate:')}
|
|
101
|
+
Input Tokens Cost: ${chalk_1.default.gray(formatCost(costs.inputCost))}
|
|
102
|
+
Output Tokens Cost: ${chalk_1.default.gray(formatCost(costs.outputCost))}
|
|
103
|
+
${chalk_1.default.bold('Total Estimated Cost:')} ${totalColor(formatCost(costs.totalCost))}
|
|
104
|
+
|
|
105
|
+
`;
|
|
184
106
|
}
|
|
185
|
-
|
|
186
|
-
|
|
107
|
+
else {
|
|
108
|
+
output += `${chalk_1.default.bold.yellow('💰 Cost Estimation:')}
|
|
109
|
+
${chalk_1.default.gray('No pricing information provided - cost estimation unavailable')}
|
|
110
|
+
${chalk_1.default.gray('Use --input-price and --output-price to enable cost estimation')}
|
|
111
|
+
|
|
112
|
+
`;
|
|
113
|
+
}
|
|
114
|
+
const notesSection = estimate.costEstimates
|
|
115
|
+
? `${chalk_1.default.bold.blue('ℹ️ Notes:')}
|
|
187
116
|
${chalk_1.default.gray('• Token estimates are based on sampling ' + Math.min(estimate.totalFiles, 10) + ' files')}
|
|
188
117
|
${chalk_1.default.gray('• Costs include system prompts and context overhead')}
|
|
189
118
|
${chalk_1.default.gray('• Output tokens estimated at ~40% of input + overhead')}
|
|
190
|
-
${chalk_1.default.gray('• Actual costs may vary based on
|
|
191
|
-
${chalk_1.default.gray('•
|
|
119
|
+
${chalk_1.default.gray('• Actual costs may vary based on content complexity')}
|
|
120
|
+
${chalk_1.default.gray('• Pricing based on your provided model costs')}`
|
|
121
|
+
: `${chalk_1.default.bold.blue('ℹ️ Notes:')}
|
|
122
|
+
${chalk_1.default.gray('• Token estimates are based on sampling ' + Math.min(estimate.totalFiles, 10) + ' files')}
|
|
123
|
+
${chalk_1.default.gray('• Costs include system prompts and context overhead')}
|
|
124
|
+
${chalk_1.default.gray('• Output tokens estimated at ~40% of input + overhead')}
|
|
125
|
+
${chalk_1.default.gray('• Provide pricing information to see cost estimates')}`;
|
|
126
|
+
output += `
|
|
127
|
+
${notesSection}
|
|
192
128
|
|
|
193
129
|
${chalk_1.default.gray('═══════════════════════════════════════════════════════════')}`;
|
|
194
130
|
return output;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenEstimator.js","sourceRoot":"","sources":["../../src/utils/tokenEstimator.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;
|
|
1
|
+
{"version":3,"file":"tokenEstimator.js","sourceRoot":"","sources":["../../src/utils/tokenEstimator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-coders/context",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "CLI tool for generating codebase documentation and AI agent prompts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,8 +9,12 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/**/*",
|
|
11
11
|
"README.md",
|
|
12
|
-
"LICENSE"
|
|
12
|
+
"LICENSE",
|
|
13
|
+
"prompts/**/*"
|
|
13
14
|
],
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=20.0.0"
|
|
17
|
+
},
|
|
14
18
|
"scripts": {
|
|
15
19
|
"build": "tsc",
|
|
16
20
|
"dev": "tsx src/index.ts",
|
|
@@ -36,38 +40,37 @@
|
|
|
36
40
|
},
|
|
37
41
|
"keywords": [
|
|
38
42
|
"cli",
|
|
39
|
-
"ai",
|
|
40
43
|
"documentation",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
44
|
+
"agents",
|
|
45
|
+
"scaffold"
|
|
43
46
|
],
|
|
44
47
|
"author": "",
|
|
45
48
|
"license": "MIT",
|
|
46
49
|
"dependencies": {
|
|
47
|
-
"@anthropic-ai/sdk": "^0.30.0",
|
|
48
|
-
"@google/genai": "^0.8.0",
|
|
49
|
-
"@types/inquirer": "^9.0.8",
|
|
50
|
-
"axios": "^1.7.0",
|
|
51
50
|
"boxen": "^5.1.2",
|
|
52
51
|
"chalk": "^4.1.2",
|
|
53
52
|
"cli-progress": "^3.12.0",
|
|
54
|
-
"commander": "^
|
|
55
|
-
"dotenv": "^16.4.0",
|
|
53
|
+
"commander": "^14.0.1",
|
|
56
54
|
"figures": "^3.2.0",
|
|
57
|
-
"fs-extra": "^11.2
|
|
58
|
-
"glob": "^10.4.
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
55
|
+
"fs-extra": "^11.3.2",
|
|
56
|
+
"glob": "^10.4.5",
|
|
57
|
+
"ora": "^5.4.1",
|
|
58
|
+
"@anthropic-ai/sdk": "^0.64.0",
|
|
59
|
+
"@google/genai": "^0.14.1",
|
|
60
|
+
"axios": "^1.12.2",
|
|
61
|
+
"dotenv": "^17.2.2",
|
|
62
|
+
"openai": "^5.23.1",
|
|
63
|
+
"inquirer": "^12.6.3"
|
|
62
64
|
},
|
|
63
65
|
"devDependencies": {
|
|
64
|
-
"@types/cli-progress": "^3.11.0",
|
|
65
66
|
"@types/fs-extra": "^11.0.4",
|
|
66
|
-
"@types/jest": "^
|
|
67
|
-
"@types/node": "^
|
|
68
|
-
"jest": "^
|
|
69
|
-
"ts-jest": "^29.
|
|
70
|
-
"tsx": "^4.
|
|
71
|
-
"typescript": "^5.
|
|
67
|
+
"@types/jest": "^30.0.0",
|
|
68
|
+
"@types/node": "^24.5.2",
|
|
69
|
+
"jest": "^30.1.3",
|
|
70
|
+
"ts-jest": "^29.4.4",
|
|
71
|
+
"tsx": "^4.20.6",
|
|
72
|
+
"typescript": "^5.9.2",
|
|
73
|
+
"@types/cli-progress": "^3.11.0",
|
|
74
|
+
"@types/inquirer": "^9.0.8"
|
|
72
75
|
}
|
|
73
76
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Prompt: Update Collaboration Plans
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
You are an AI assistant responsible for refining collaboration plans that live in the `.context/plans/` directory. Each plan orchestrates work across documentation guides (`docs/`) and agent playbooks (`agents/`). Your goal is to replace placeholders with actionable guidance that keeps the plan aligned with the referenced docs, agents, and repository context.
|
|
5
|
+
|
|
6
|
+
## Preparation Checklist
|
|
7
|
+
1. Review the plan’s YAML front matter to understand the stated `ai_update_goal`, `required_inputs`, and `success_criteria`.
|
|
8
|
+
2. Inspect the provided documentation excerpts (from `docs/`) and agent playbooks to ensure the plan reflects their current guidance.
|
|
9
|
+
3. Confirm that the “Agent Lineup” and “Documentation Touchpoints” tables link to real files and reference the correct `ai-task` markers.
|
|
10
|
+
4. Note any TODOs, `ai-slot` placeholders, or missing evidence sections that must be resolved.
|
|
11
|
+
|
|
12
|
+
## Update Procedure
|
|
13
|
+
1. **Task Snapshot**
|
|
14
|
+
- Summarize the primary goal and success signal in concrete terms.
|
|
15
|
+
- List authoritative references (docs, issues, specs) that contributors should consult.
|
|
16
|
+
|
|
17
|
+
2. **Agent Alignment**
|
|
18
|
+
- For each agent in the lineup, describe why they are involved and call out the first responsibility they should focus on.
|
|
19
|
+
- Ensure playbook links and responsibility summaries match the referenced agent files.
|
|
20
|
+
|
|
21
|
+
3. **Documentation Touchpoints**
|
|
22
|
+
- Map each plan stage to the docs excerpts provided, highlighting which sections need to be updated during execution.
|
|
23
|
+
- Keep the table sorted and ensure the listed `ai-task` markers exist.
|
|
24
|
+
|
|
25
|
+
4. **Working Stages**
|
|
26
|
+
- Break the work into clear stages with owners, deliverables, and evidence checkpoints.
|
|
27
|
+
- Reference documentation and agent resources that the team should consult while executing each stage.
|
|
28
|
+
|
|
29
|
+
5. **Evidence & Follow-up**
|
|
30
|
+
- Specify the artefacts that must be captured (PR links, test runs, change logs) before the plan is considered complete.
|
|
31
|
+
- Record any follow-up actions or decisions that require human confirmation.
|
|
32
|
+
|
|
33
|
+
## Acceptance Criteria
|
|
34
|
+
- Every TODO or placeholder inside the plan’s `ai-task` block is resolved or accompanied by a clear escalation note.
|
|
35
|
+
- Tables reference existing files and stay in sync with the docs/agent indices.
|
|
36
|
+
- Stages provide actionable guidance, owners, and success signals.
|
|
37
|
+
- The plan remains fully self-contained and ready for contributors to execute.
|
|
38
|
+
|
|
39
|
+
## Deliverables
|
|
40
|
+
- Updated plan Markdown returned verbatim.
|
|
41
|
+
- No additional commentary outside the Markdown output.
|
|
42
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Prompt: Update Repository Documentation and Agent Playbooks
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
You are an AI assistant responsible for refreshing the documentation (`docs/`) and agent playbooks (`agents/`) generated by the ai-context scaffolding tool. Your goal is to bring every guide up to date with the latest repository state, fill in placeholder sections, and maintain cross-references between docs and agent instructions.
|
|
5
|
+
|
|
6
|
+
## Context Gathering Checklist
|
|
7
|
+
1. Run `git status -sb` to understand pending changes.
|
|
8
|
+
2. Review the latest merged commits or PRs related to documentation, architecture, workflow, or testing.
|
|
9
|
+
3. Inspect `package.json`, CI configuration, and any release or roadmap notes stored in the repository.
|
|
10
|
+
4. Check `docs/README.md` for the current document map and update task markers (`ai-task:*`).
|
|
11
|
+
5. Identify unresolved placeholders marked as `<!-- ai-slot:* -->`.
|
|
12
|
+
|
|
13
|
+
## Update Procedure
|
|
14
|
+
1. **Select a Guide**
|
|
15
|
+
- Navigate to `docs/<guide>.md`.
|
|
16
|
+
- Read the YAML front matter (`ai_update_goal`, `required_inputs`, `success_criteria`) and ensure you collect the listed inputs before editing.
|
|
17
|
+
|
|
18
|
+
2. **Edit Within Task Wrappers**
|
|
19
|
+
- Update content strictly inside the matching `<!-- ai-task:... -->` block.
|
|
20
|
+
- Remove or replace any `TODO` text with accurate, current information.
|
|
21
|
+
- When you complete a placeholder slot (`<!-- ai-slot:... -->`), remove the wrapper and provide the finalized description.
|
|
22
|
+
|
|
23
|
+
3. **Cross-Link Updates**
|
|
24
|
+
- Verify that links between docs remain valid.
|
|
25
|
+
- If you add new guides or sections, update `docs/README.md` and the document map table.
|
|
26
|
+
|
|
27
|
+
4. **Agent Playbook Alignment**
|
|
28
|
+
- For each change in `docs/`, adjust the related `agents/*.md` playbooks.
|
|
29
|
+
- Ensure the "Documentation Touchpoints" list references the correct `ai-task` markers.
|
|
30
|
+
- Update collaboration checklists and evidence sections to reflect the latest workflows.
|
|
31
|
+
|
|
32
|
+
5. **Evidence & Traceability**
|
|
33
|
+
- Note key sources (commit hashes, issues, ADRs) in the "Evidence to Capture" or "AI Update Checklist" summary lines.
|
|
34
|
+
- If anything is ambiguous or requires human follow-up, leave a concise note clearly labelled for maintainers.
|
|
35
|
+
|
|
36
|
+
## Acceptance Criteria
|
|
37
|
+
- Every guide’s `success_criteria` field is satisfied.
|
|
38
|
+
- No unresolved `TODO` or `ai-slot` blocks remain unless they require explicit human input; in such cases, add a comment explaining the dependency.
|
|
39
|
+
- Agent playbooks list accurate responsibilities, best practices, and pointer links to the refreshed docs.
|
|
40
|
+
- Changes are self-contained, well-formatted Markdown, and reference any new external resources introduced.
|
|
41
|
+
|
|
42
|
+
## Deliverables
|
|
43
|
+
- Updated Markdown files committed to the repository.
|
|
44
|
+
- A short changelog or PR description summarizing:
|
|
45
|
+
- Guides touched
|
|
46
|
+
- Key decisions or facts added
|
|
47
|
+
- Evidence links and any pending follow-ups
|
|
48
|
+
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { RepoStructure } from '../types';
|
|
2
|
-
import { FileMapper } from '../utils/fileMapper';
|
|
3
|
-
import { BaseLLMClient } from '../services/baseLLMClient';
|
|
4
|
-
export declare class AgentGenerator {
|
|
5
|
-
private fileMapper;
|
|
6
|
-
private llmClient;
|
|
7
|
-
private agentTypes;
|
|
8
|
-
constructor(fileMapper: FileMapper, llmClient: BaseLLMClient);
|
|
9
|
-
generateAgentPrompts(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
|
|
10
|
-
private generateAgentPrompt;
|
|
11
|
-
private formatAgentPrompt;
|
|
12
|
-
private getAgentResponsibilities;
|
|
13
|
-
private getAgentBestPractices;
|
|
14
|
-
private getAgentCommands;
|
|
15
|
-
private createRepoContext;
|
|
16
|
-
private createFileContext;
|
|
17
|
-
private createStructureOverview;
|
|
18
|
-
private getFileTypeDistribution;
|
|
19
|
-
private isImportantFile;
|
|
20
|
-
private generateAgentIndex;
|
|
21
|
-
private formatBytes;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=agentGenerator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/agentGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,qBAAa,cAAc;IAavB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IAbnB,OAAO,CAAC,UAAU,CAShB;gBAGQ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa;IAG5B,oBAAoB,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;YA0CF,mBAAmB;IAiBjC,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,wBAAwB;IAwDhC,OAAO,CAAC,qBAAqB;IAgD7B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;YAyBX,iBAAiB;IAoB/B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,eAAe;YAaT,kBAAkB;IA6ChC,OAAO,CAAC,WAAW;CAOpB"}
|