@ggailabs/cli-context 0.5.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 +197 -0
- 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 +180 -0
- package/dist/generators/agents/agentConfig.js.map +1 -0
- package/dist/generators/agents/agentGenerator.d.ts +9 -0
- package/dist/generators/agents/agentGenerator.d.ts.map +1 -0
- package/dist/generators/agents/agentGenerator.js +97 -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 +25 -0
- package/dist/generators/agents/agentTypes.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/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 +36 -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 +99 -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/documentation/documentationGenerator.d.ts +15 -0
- package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -0
- package/dist/generators/documentation/documentationGenerator.js +188 -0
- package/dist/generators/documentation/documentationGenerator.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/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/apiReferenceTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/apiReferenceTemplate.js +490 -0
- package/dist/generators/documentation/templates/apiReferenceTemplate.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 +40 -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 +44 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.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 +41 -0
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/index.d.ts +15 -0
- package/dist/generators/documentation/templates/index.d.ts.map +1 -0
- package/dist/generators/documentation/templates/index.js +30 -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 +42 -0
- package/dist/generators/documentation/templates/indexTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/migrationTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/migrationTemplate.js +422 -0
- package/dist/generators/documentation/templates/migrationTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/onboardingTemplate.js +431 -0
- package/dist/generators/documentation/templates/onboardingTemplate.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 +65 -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 +39 -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 +45 -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 +42 -0
- package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/troubleshootingTemplate.js +292 -0
- package/dist/generators/documentation/templates/troubleshootingTemplate.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/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 +37 -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 +166 -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/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 +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +571 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/defaults.d.ts +3 -0
- package/dist/prompts/defaults.d.ts.map +1 -0
- package/dist/prompts/defaults.js +95 -0
- package/dist/prompts/defaults.js.map +1 -0
- package/dist/services/baseLLMClient.d.ts +12 -0
- package/dist/services/baseLLMClient.d.ts.map +1 -0
- package/dist/services/baseLLMClient.js +80 -0
- package/dist/services/baseLLMClient.js.map +1 -0
- package/dist/services/fill/fillService.d.ts +46 -0
- package/dist/services/fill/fillService.d.ts.map +1 -0
- package/dist/services/fill/fillService.js +254 -0
- package/dist/services/fill/fillService.js.map +1 -0
- package/dist/services/init/initService.d.ts +37 -0
- package/dist/services/init/initService.d.ts.map +1 -0
- package/dist/services/init/initService.js +167 -0
- package/dist/services/init/initService.js.map +1 -0
- package/dist/services/llmClientFactory.d.ts +8 -0
- package/dist/services/llmClientFactory.d.ts.map +1 -0
- package/dist/services/llmClientFactory.js +23 -0
- package/dist/services/llmClientFactory.js.map +1 -0
- package/dist/services/openRouterClient.d.ts +9 -0
- package/dist/services/openRouterClient.d.ts.map +1 -0
- package/dist/services/openRouterClient.js +49 -0
- package/dist/services/openRouterClient.js.map +1 -0
- package/dist/services/plan/planService.d.ts +57 -0
- package/dist/services/plan/planService.d.ts.map +1 -0
- package/dist/services/plan/planService.js +334 -0
- package/dist/services/plan/planService.js.map +1 -0
- package/dist/services/shared/llmConfig.d.ts +22 -0
- package/dist/services/shared/llmConfig.d.ts.map +1 -0
- package/dist/services/shared/llmConfig.js +38 -0
- package/dist/services/shared/llmConfig.js.map +1 -0
- package/dist/types.d.ts +65 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/cliUI.d.ts +27 -0
- package/dist/utils/cliUI.d.ts.map +1 -0
- package/dist/utils/cliUI.js +252 -0
- package/dist/utils/cliUI.js.map +1 -0
- package/dist/utils/fileMapper.d.ts +11 -0
- package/dist/utils/fileMapper.d.ts.map +1 -0
- package/dist/utils/fileMapper.js +146 -0
- package/dist/utils/fileMapper.js.map +1 -0
- package/dist/utils/gitService.d.ts +50 -0
- package/dist/utils/gitService.d.ts.map +1 -0
- package/dist/utils/gitService.js +470 -0
- package/dist/utils/gitService.js.map +1 -0
- package/dist/utils/i18n.d.ts +171 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +381 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/promptLoader.d.ts +12 -0
- package/dist/utils/promptLoader.d.ts.map +1 -0
- package/dist/utils/promptLoader.js +81 -0
- package/dist/utils/promptLoader.js.map +1 -0
- package/dist/utils/versionChecker.d.ts +15 -0
- package/dist/utils/versionChecker.d.ts.map +1 -0
- package/dist/utils/versionChecker.js +49 -0
- package/dist/utils/versionChecker.js.map +1 -0
- package/package.json +76 -0
- package/prompts/update_plan_prompt.md +41 -0
- package/prompts/update_scaffold_prompt.md +47 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,571 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.runInit = runInit;
|
|
41
|
+
exports.runGenerate = runGenerate;
|
|
42
|
+
exports.runAnalyze = runAnalyze;
|
|
43
|
+
exports.runUpdate = runUpdate;
|
|
44
|
+
exports.runPreview = runPreview;
|
|
45
|
+
exports.runGuidelines = runGuidelines;
|
|
46
|
+
exports.runLlmFill = runLlmFill;
|
|
47
|
+
const commander_1 = require("commander");
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const dotenv = __importStar(require("dotenv"));
|
|
50
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
51
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
52
|
+
const planGenerator_1 = require("./generators/plans/planGenerator");
|
|
53
|
+
const cliUI_1 = require("./utils/cliUI");
|
|
54
|
+
const versionChecker_1 = require("./utils/versionChecker");
|
|
55
|
+
const i18n_1 = require("./utils/i18n");
|
|
56
|
+
const initService_1 = require("./services/init/initService");
|
|
57
|
+
const fillService_1 = require("./services/fill/fillService");
|
|
58
|
+
const planService_1 = require("./services/plan/planService");
|
|
59
|
+
dotenv.config();
|
|
60
|
+
const initialLocale = (0, i18n_1.detectLocale)(process.argv.slice(2), process.env.AI_CONTEXT_LANG);
|
|
61
|
+
let currentLocale = initialLocale;
|
|
62
|
+
let translateFn = (0, i18n_1.createTranslator)(initialLocale);
|
|
63
|
+
const t = (key, params) => translateFn(key, params);
|
|
64
|
+
const localeLabelKeys = {
|
|
65
|
+
en: 'prompts.language.option.en',
|
|
66
|
+
'pt-BR': 'prompts.language.option.pt-BR'
|
|
67
|
+
};
|
|
68
|
+
const program = new commander_1.Command();
|
|
69
|
+
const ui = new cliUI_1.CLIInterface(t);
|
|
70
|
+
const VERSION = '0.5.0';
|
|
71
|
+
const PACKAGE_NAME = '@ggailabs/cli-context';
|
|
72
|
+
const DEFAULT_MODEL = 'x-ai/grok-4-fast';
|
|
73
|
+
const initService = new initService_1.InitService({
|
|
74
|
+
ui,
|
|
75
|
+
t,
|
|
76
|
+
version: VERSION
|
|
77
|
+
});
|
|
78
|
+
const fillService = new fillService_1.FillService({
|
|
79
|
+
ui,
|
|
80
|
+
t,
|
|
81
|
+
version: VERSION,
|
|
82
|
+
defaultModel: DEFAULT_MODEL
|
|
83
|
+
});
|
|
84
|
+
const planService = new planService_1.PlanService({
|
|
85
|
+
ui,
|
|
86
|
+
t,
|
|
87
|
+
version: VERSION,
|
|
88
|
+
defaultModel: DEFAULT_MODEL
|
|
89
|
+
});
|
|
90
|
+
program
|
|
91
|
+
.name('ggailabs-cli-context')
|
|
92
|
+
.description('CLI para Gerenciamento de Contexto do GG.AI LABS')
|
|
93
|
+
.version(VERSION);
|
|
94
|
+
program.option('-l, --lang <locale>', t('global.options.lang'), initialLocale);
|
|
95
|
+
let versionCheckPromise = null;
|
|
96
|
+
function scheduleVersionCheck(force = false) {
|
|
97
|
+
if (!versionCheckPromise || force) {
|
|
98
|
+
versionCheckPromise = (0, versionChecker_1.checkForUpdates)({
|
|
99
|
+
packageName: PACKAGE_NAME,
|
|
100
|
+
currentVersion: VERSION,
|
|
101
|
+
ui,
|
|
102
|
+
t,
|
|
103
|
+
force
|
|
104
|
+
}).catch(() => { });
|
|
105
|
+
}
|
|
106
|
+
return versionCheckPromise;
|
|
107
|
+
}
|
|
108
|
+
program.hook('preAction', () => {
|
|
109
|
+
void scheduleVersionCheck();
|
|
110
|
+
});
|
|
111
|
+
program
|
|
112
|
+
.command('init')
|
|
113
|
+
.description(t('commands.init.description'))
|
|
114
|
+
.argument('<repo-path>', t('commands.init.arguments.repoPath'))
|
|
115
|
+
.argument('[type]', t('commands.init.arguments.type'), 'both')
|
|
116
|
+
.option('-o, --output <dir>', t('commands.init.options.output'), './.context')
|
|
117
|
+
.option('--exclude <patterns...>', t('commands.init.options.exclude'))
|
|
118
|
+
.option('--include <patterns...>', t('commands.init.options.include'))
|
|
119
|
+
.option('-v, --verbose', t('commands.init.options.verbose'))
|
|
120
|
+
.action(async (repoPath, type, options) => {
|
|
121
|
+
try {
|
|
122
|
+
await initService.run(repoPath, type, options);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
ui.displayError(t('errors.init.scaffoldFailed'), error);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
program
|
|
130
|
+
.command('fill')
|
|
131
|
+
.description(t('commands.fill.description'))
|
|
132
|
+
.argument('<repo-path>', t('commands.fill.arguments.repoPath'))
|
|
133
|
+
.option('-o, --output <dir>', t('commands.fill.options.output'), './.context')
|
|
134
|
+
.option('-k, --api-key <key>', t('commands.fill.options.apiKey'))
|
|
135
|
+
.option('-m, --model <model>', t('commands.fill.options.model'), DEFAULT_MODEL)
|
|
136
|
+
.option('-p, --provider <provider>', t('commands.fill.options.provider'))
|
|
137
|
+
.option('--base-url <url>', t('commands.fill.options.baseUrl'))
|
|
138
|
+
.option('--prompt <file>', t('commands.fill.options.prompt'))
|
|
139
|
+
.option('--limit <number>', t('commands.fill.options.limit'), (value) => parseInt(value, 10))
|
|
140
|
+
.option('--exclude <patterns...>', t('commands.fill.options.exclude'))
|
|
141
|
+
.option('--include <patterns...>', t('commands.fill.options.include'))
|
|
142
|
+
.option('-v, --verbose', t('commands.fill.options.verbose'))
|
|
143
|
+
.action(async (repoPath, options) => {
|
|
144
|
+
try {
|
|
145
|
+
await fillService.run(repoPath, options);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
ui.displayError(t('errors.fill.failed'), error);
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
program
|
|
153
|
+
.command('plan')
|
|
154
|
+
.description(t('commands.plan.description'))
|
|
155
|
+
.argument('<plan-name>', t('commands.plan.arguments.planName'))
|
|
156
|
+
.option('-o, --output <dir>', t('commands.plan.options.output'), './.context')
|
|
157
|
+
.option('--title <title>', t('commands.plan.options.title'))
|
|
158
|
+
.option('--summary <text>', t('commands.plan.options.summary'))
|
|
159
|
+
.option('-f, --force', t('commands.plan.options.force'))
|
|
160
|
+
.option('--fill', t('commands.plan.options.fill'))
|
|
161
|
+
.option('-r, --repo <path>', t('commands.plan.options.repo'))
|
|
162
|
+
.option('-k, --api-key <key>', t('commands.plan.options.apiKey'))
|
|
163
|
+
.option('-m, --model <model>', t('commands.plan.options.model'), DEFAULT_MODEL)
|
|
164
|
+
.option('-p, --provider <provider>', t('commands.plan.options.provider'))
|
|
165
|
+
.option('--base-url <url>', t('commands.plan.options.baseUrl'))
|
|
166
|
+
.option('--prompt <file>', t('commands.plan.options.prompt'))
|
|
167
|
+
.option('--dry-run', t('commands.plan.options.dryRun'), false)
|
|
168
|
+
.option('--include <patterns...>', t('commands.plan.options.include'))
|
|
169
|
+
.option('--exclude <patterns...>', t('commands.plan.options.exclude'))
|
|
170
|
+
.option('-v, --verbose', t('commands.plan.options.verbose'))
|
|
171
|
+
.action(async (planName, rawOptions) => {
|
|
172
|
+
const outputDir = path.resolve(rawOptions.output || './.context');
|
|
173
|
+
if (rawOptions.fill) {
|
|
174
|
+
try {
|
|
175
|
+
await planService.scaffoldPlanIfNeeded(planName, outputDir, {
|
|
176
|
+
title: rawOptions.title,
|
|
177
|
+
summary: rawOptions.summary,
|
|
178
|
+
force: Boolean(rawOptions.force),
|
|
179
|
+
verbose: Boolean(rawOptions.verbose)
|
|
180
|
+
});
|
|
181
|
+
await planService.fillPlan(planName, { ...rawOptions, output: outputDir });
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
ui.displayError(t('errors.plan.fillFailed'), error);
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const generator = new planGenerator_1.PlanGenerator();
|
|
190
|
+
ui.startSpinner(t('spinner.plan.creating'));
|
|
191
|
+
try {
|
|
192
|
+
const result = await generator.generatePlan({
|
|
193
|
+
planName,
|
|
194
|
+
outputDir,
|
|
195
|
+
title: rawOptions.title,
|
|
196
|
+
summary: rawOptions.summary,
|
|
197
|
+
force: Boolean(rawOptions.force),
|
|
198
|
+
verbose: Boolean(rawOptions.verbose)
|
|
199
|
+
});
|
|
200
|
+
ui.updateSpinner(t('spinner.plan.created'), 'success');
|
|
201
|
+
ui.displaySuccess(t('success.plan.createdAt', { path: chalk_1.default.cyan(result.relativePath) }));
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
ui.updateSpinner(t('spinner.plan.creationFailed'), 'fail');
|
|
205
|
+
ui.displayError(t('errors.plan.creationFailed'), error);
|
|
206
|
+
process.exit(1);
|
|
207
|
+
}
|
|
208
|
+
finally {
|
|
209
|
+
ui.stopSpinner();
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
async function runInit(repoPath, type, rawOptions) {
|
|
213
|
+
await initService.run(repoPath, type, rawOptions);
|
|
214
|
+
}
|
|
215
|
+
async function runGenerate(repoPath, options) {
|
|
216
|
+
const type = options?.docsOnly ? 'docs' : options?.agentsOnly ? 'agents' : (options?.type || 'both');
|
|
217
|
+
await initService.run(repoPath, type, {
|
|
218
|
+
output: options?.output ?? options?.outputDir ?? './.context',
|
|
219
|
+
include: options?.include,
|
|
220
|
+
exclude: options?.exclude,
|
|
221
|
+
verbose: options?.verbose,
|
|
222
|
+
docsOnly: options?.docsOnly,
|
|
223
|
+
agentsOnly: options?.agentsOnly
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
async function runAnalyze(..._args) {
|
|
227
|
+
throw new Error(t('errors.commands.analyzeRemoved'));
|
|
228
|
+
}
|
|
229
|
+
async function runUpdate(..._args) {
|
|
230
|
+
throw new Error(t('errors.commands.updateRemoved'));
|
|
231
|
+
}
|
|
232
|
+
async function runPreview(..._args) {
|
|
233
|
+
throw new Error(t('errors.commands.previewRemoved'));
|
|
234
|
+
}
|
|
235
|
+
async function runGuidelines(..._args) {
|
|
236
|
+
throw new Error(t('errors.commands.guidelinesRemoved'));
|
|
237
|
+
}
|
|
238
|
+
async function runLlmFill(repoPath, rawOptions) {
|
|
239
|
+
await fillService.run(repoPath, rawOptions);
|
|
240
|
+
}
|
|
241
|
+
async function selectLocale(showWelcome) {
|
|
242
|
+
const { locale } = await inquirer_1.default.prompt([
|
|
243
|
+
{
|
|
244
|
+
type: 'list',
|
|
245
|
+
name: 'locale',
|
|
246
|
+
message: t('prompts.language.select'),
|
|
247
|
+
default: currentLocale,
|
|
248
|
+
choices: i18n_1.SUPPORTED_LOCALES.map(option => ({
|
|
249
|
+
value: option,
|
|
250
|
+
name: t(localeLabelKeys[option])
|
|
251
|
+
}))
|
|
252
|
+
}
|
|
253
|
+
]);
|
|
254
|
+
const normalizedLocale = (0, i18n_1.normalizeLocale)(locale);
|
|
255
|
+
currentLocale = normalizedLocale;
|
|
256
|
+
translateFn = (0, i18n_1.createTranslator)(normalizedLocale);
|
|
257
|
+
if (showWelcome) {
|
|
258
|
+
ui.displayWelcome(VERSION);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
async function runInteractive() {
|
|
262
|
+
await selectLocale(true);
|
|
263
|
+
let exitRequested = false;
|
|
264
|
+
while (!exitRequested) {
|
|
265
|
+
const { action } = await inquirer_1.default.prompt([
|
|
266
|
+
{
|
|
267
|
+
type: 'list',
|
|
268
|
+
name: 'action',
|
|
269
|
+
message: t('prompts.main.action'),
|
|
270
|
+
choices: [
|
|
271
|
+
{ name: t('prompts.main.choice.scaffold'), value: 'scaffold' },
|
|
272
|
+
{ name: t('prompts.main.choice.fill'), value: 'fill' },
|
|
273
|
+
{ name: t('prompts.main.choice.plan'), value: 'plan' },
|
|
274
|
+
{ name: t('prompts.main.choice.changeLanguage'), value: 'changeLanguage' },
|
|
275
|
+
{ name: t('prompts.main.choice.exit'), value: 'exit' }
|
|
276
|
+
]
|
|
277
|
+
}
|
|
278
|
+
]);
|
|
279
|
+
if (action === 'changeLanguage') {
|
|
280
|
+
await selectLocale(true);
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
if (action === 'exit') {
|
|
284
|
+
exitRequested = true;
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
if (action === 'scaffold') {
|
|
288
|
+
await runInteractiveScaffold();
|
|
289
|
+
}
|
|
290
|
+
else if (action === 'fill') {
|
|
291
|
+
await runInteractiveLlmFill();
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
await runInteractivePlan();
|
|
295
|
+
}
|
|
296
|
+
ui.displayInfo(t('info.interactive.returning.title'), t('info.interactive.returning.detail'));
|
|
297
|
+
}
|
|
298
|
+
ui.displaySuccess(t('success.interactive.goodbye'));
|
|
299
|
+
}
|
|
300
|
+
async function runInteractiveScaffold() {
|
|
301
|
+
const { repoPath } = await inquirer_1.default.prompt([
|
|
302
|
+
{
|
|
303
|
+
type: 'input',
|
|
304
|
+
name: 'repoPath',
|
|
305
|
+
message: t('prompts.scaffold.repoPath'),
|
|
306
|
+
default: process.cwd()
|
|
307
|
+
}
|
|
308
|
+
]);
|
|
309
|
+
const resolvedRepo = path.resolve(repoPath.trim() || '.');
|
|
310
|
+
const defaultOutput = path.resolve(resolvedRepo, '.context');
|
|
311
|
+
const { outputDir } = await inquirer_1.default.prompt([
|
|
312
|
+
{
|
|
313
|
+
type: 'input',
|
|
314
|
+
name: 'outputDir',
|
|
315
|
+
message: t('commands.init.options.output'),
|
|
316
|
+
default: defaultOutput
|
|
317
|
+
}
|
|
318
|
+
]);
|
|
319
|
+
const { scaffoldType } = await inquirer_1.default.prompt([
|
|
320
|
+
{
|
|
321
|
+
type: 'list',
|
|
322
|
+
name: 'scaffoldType',
|
|
323
|
+
message: t('prompts.scaffold.type'),
|
|
324
|
+
choices: [
|
|
325
|
+
{ name: t('prompts.scaffold.typeBoth'), value: 'both' },
|
|
326
|
+
{ name: t('prompts.scaffold.typeDocs'), value: 'docs' },
|
|
327
|
+
{ name: t('prompts.scaffold.typeAgents'), value: 'agents' }
|
|
328
|
+
],
|
|
329
|
+
default: 'both'
|
|
330
|
+
}
|
|
331
|
+
]);
|
|
332
|
+
const { verbose } = await inquirer_1.default.prompt([
|
|
333
|
+
{
|
|
334
|
+
type: 'confirm',
|
|
335
|
+
name: 'verbose',
|
|
336
|
+
message: t('prompts.common.verbose'),
|
|
337
|
+
default: false
|
|
338
|
+
}
|
|
339
|
+
]);
|
|
340
|
+
await runInit(resolvedRepo, scaffoldType, {
|
|
341
|
+
output: outputDir,
|
|
342
|
+
verbose
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
async function runInteractiveLlmFill() {
|
|
346
|
+
const { repoPath } = await inquirer_1.default.prompt([
|
|
347
|
+
{
|
|
348
|
+
type: 'input',
|
|
349
|
+
name: 'repoPath',
|
|
350
|
+
message: t('prompts.fill.repoPath'),
|
|
351
|
+
default: process.cwd()
|
|
352
|
+
}
|
|
353
|
+
]);
|
|
354
|
+
const resolvedRepo = path.resolve(repoPath.trim() || '.');
|
|
355
|
+
const defaultOutput = path.resolve(resolvedRepo, '.context');
|
|
356
|
+
const { outputDir, promptPath: promptPathInput } = await inquirer_1.default.prompt([
|
|
357
|
+
{
|
|
358
|
+
type: 'input',
|
|
359
|
+
name: 'outputDir',
|
|
360
|
+
message: t('commands.fill.options.output'),
|
|
361
|
+
default: defaultOutput
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
type: 'input',
|
|
365
|
+
name: 'promptPath',
|
|
366
|
+
message: t('prompts.fill.promptPath'),
|
|
367
|
+
default: ''
|
|
368
|
+
}
|
|
369
|
+
]);
|
|
370
|
+
const promptPath = promptPathInput.trim() ? path.resolve(promptPathInput.trim()) : undefined;
|
|
371
|
+
const { limit } = await inquirer_1.default.prompt([
|
|
372
|
+
{
|
|
373
|
+
type: 'input',
|
|
374
|
+
name: 'limit',
|
|
375
|
+
message: t('prompts.fill.limit'),
|
|
376
|
+
filter: (value) => value.trim()
|
|
377
|
+
}
|
|
378
|
+
]);
|
|
379
|
+
const limitValue = limit ? parseInt(limit, 10) : undefined;
|
|
380
|
+
const parsedLimit = Number.isNaN(limitValue) ? undefined : limitValue;
|
|
381
|
+
const { specifyModel } = await inquirer_1.default.prompt([
|
|
382
|
+
{
|
|
383
|
+
type: 'confirm',
|
|
384
|
+
name: 'specifyModel',
|
|
385
|
+
message: t('prompts.fill.overrideModel'),
|
|
386
|
+
default: false
|
|
387
|
+
}
|
|
388
|
+
]);
|
|
389
|
+
let provider;
|
|
390
|
+
let model;
|
|
391
|
+
if (specifyModel) {
|
|
392
|
+
const modelAnswer = await inquirer_1.default.prompt([
|
|
393
|
+
{
|
|
394
|
+
type: 'input',
|
|
395
|
+
name: 'model',
|
|
396
|
+
message: t('prompts.fill.model'),
|
|
397
|
+
default: DEFAULT_MODEL
|
|
398
|
+
}
|
|
399
|
+
]);
|
|
400
|
+
model = modelAnswer.model.trim();
|
|
401
|
+
provider = 'openrouter';
|
|
402
|
+
}
|
|
403
|
+
const { provideApiKey } = await inquirer_1.default.prompt([
|
|
404
|
+
{
|
|
405
|
+
type: 'confirm',
|
|
406
|
+
name: 'provideApiKey',
|
|
407
|
+
message: t('prompts.fill.provideApiKey'),
|
|
408
|
+
default: false
|
|
409
|
+
}
|
|
410
|
+
]);
|
|
411
|
+
let apiKey;
|
|
412
|
+
if (provideApiKey) {
|
|
413
|
+
const apiKeyAnswer = await inquirer_1.default.prompt([
|
|
414
|
+
{
|
|
415
|
+
type: 'password',
|
|
416
|
+
name: 'apiKey',
|
|
417
|
+
message: t('prompts.fill.apiKey'),
|
|
418
|
+
mask: '*'
|
|
419
|
+
}
|
|
420
|
+
]);
|
|
421
|
+
apiKey = apiKeyAnswer.apiKey.trim();
|
|
422
|
+
}
|
|
423
|
+
const { verbose } = await inquirer_1.default.prompt([
|
|
424
|
+
{
|
|
425
|
+
type: 'confirm',
|
|
426
|
+
name: 'verbose',
|
|
427
|
+
message: t('prompts.common.verbose'),
|
|
428
|
+
default: false
|
|
429
|
+
}
|
|
430
|
+
]);
|
|
431
|
+
await fillService.run(resolvedRepo, {
|
|
432
|
+
output: outputDir,
|
|
433
|
+
prompt: promptPath,
|
|
434
|
+
limit: parsedLimit,
|
|
435
|
+
model,
|
|
436
|
+
provider,
|
|
437
|
+
apiKey,
|
|
438
|
+
verbose
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
async function runInteractivePlan() {
|
|
442
|
+
const { planName } = await inquirer_1.default.prompt([
|
|
443
|
+
{
|
|
444
|
+
type: 'input',
|
|
445
|
+
name: 'planName',
|
|
446
|
+
message: t('prompts.plan.name'),
|
|
447
|
+
default: 'new-plan'
|
|
448
|
+
}
|
|
449
|
+
]);
|
|
450
|
+
const defaultOutput = path.resolve(process.cwd(), '.context');
|
|
451
|
+
const { mode } = await inquirer_1.default.prompt([
|
|
452
|
+
{
|
|
453
|
+
type: 'list',
|
|
454
|
+
name: 'mode',
|
|
455
|
+
message: t('prompts.plan.mode'),
|
|
456
|
+
choices: [
|
|
457
|
+
{ name: t('prompts.plan.modeScaffold'), value: 'scaffold' },
|
|
458
|
+
{ name: t('prompts.plan.modeFill'), value: 'fill' }
|
|
459
|
+
],
|
|
460
|
+
default: 'scaffold'
|
|
461
|
+
}
|
|
462
|
+
]);
|
|
463
|
+
const { outputDir } = await inquirer_1.default.prompt([
|
|
464
|
+
{
|
|
465
|
+
type: 'input',
|
|
466
|
+
name: 'outputDir',
|
|
467
|
+
message: t('commands.plan.options.output'),
|
|
468
|
+
default: defaultOutput
|
|
469
|
+
}
|
|
470
|
+
]);
|
|
471
|
+
if (mode === 'fill') {
|
|
472
|
+
const { summary } = await inquirer_1.default.prompt([
|
|
473
|
+
{
|
|
474
|
+
type: 'input',
|
|
475
|
+
name: 'summary',
|
|
476
|
+
message: t('prompts.plan.summary'),
|
|
477
|
+
filter: (value) => value.trim()
|
|
478
|
+
}
|
|
479
|
+
]);
|
|
480
|
+
const { repoPath } = await inquirer_1.default.prompt([
|
|
481
|
+
{
|
|
482
|
+
type: 'input',
|
|
483
|
+
name: 'repoPath',
|
|
484
|
+
message: t('prompts.plan.repoPath'),
|
|
485
|
+
default: process.cwd()
|
|
486
|
+
}
|
|
487
|
+
]);
|
|
488
|
+
const { dryRun } = await inquirer_1.default.prompt([
|
|
489
|
+
{
|
|
490
|
+
type: 'confirm',
|
|
491
|
+
name: 'dryRun',
|
|
492
|
+
message: t('prompts.plan.dryRun'),
|
|
493
|
+
default: true
|
|
494
|
+
}
|
|
495
|
+
]);
|
|
496
|
+
try {
|
|
497
|
+
const resolvedOutput = path.resolve(outputDir.trim() || defaultOutput);
|
|
498
|
+
await planService.scaffoldPlanIfNeeded(planName, resolvedOutput, {
|
|
499
|
+
summary: summary || undefined
|
|
500
|
+
});
|
|
501
|
+
await planService.fillPlan(planName, {
|
|
502
|
+
output: resolvedOutput,
|
|
503
|
+
repo: repoPath,
|
|
504
|
+
dryRun
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
catch (error) {
|
|
508
|
+
ui.displayError(t('errors.plan.fillFailed'), error);
|
|
509
|
+
}
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
const { summary } = await inquirer_1.default.prompt([
|
|
513
|
+
{
|
|
514
|
+
type: 'input',
|
|
515
|
+
name: 'summary',
|
|
516
|
+
message: t('prompts.plan.summary'),
|
|
517
|
+
filter: (value) => value.trim()
|
|
518
|
+
}
|
|
519
|
+
]);
|
|
520
|
+
const generator = new planGenerator_1.PlanGenerator();
|
|
521
|
+
ui.startSpinner(t('spinner.plan.creating'));
|
|
522
|
+
try {
|
|
523
|
+
const result = await generator.generatePlan({
|
|
524
|
+
planName,
|
|
525
|
+
outputDir: path.resolve(outputDir.trim() || defaultOutput),
|
|
526
|
+
summary: summary || undefined,
|
|
527
|
+
verbose: false
|
|
528
|
+
});
|
|
529
|
+
ui.updateSpinner(t('spinner.plan.created'), 'success');
|
|
530
|
+
ui.displaySuccess(t('success.plan.createdAt', { path: chalk_1.default.cyan(result.relativePath) }));
|
|
531
|
+
}
|
|
532
|
+
catch (error) {
|
|
533
|
+
ui.updateSpinner(t('spinner.plan.creationFailed'), 'fail');
|
|
534
|
+
ui.displayError(t('errors.plan.creationFailed'), error);
|
|
535
|
+
}
|
|
536
|
+
finally {
|
|
537
|
+
ui.stopSpinner();
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
function filterOutLocaleArgs(args) {
|
|
541
|
+
const filtered = [];
|
|
542
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
543
|
+
const current = args[index];
|
|
544
|
+
if (current === '--lang' || current === '--language' || current === '-l') {
|
|
545
|
+
index += 1;
|
|
546
|
+
continue;
|
|
547
|
+
}
|
|
548
|
+
if (current.startsWith('--lang=') || current.startsWith('--language=')) {
|
|
549
|
+
continue;
|
|
550
|
+
}
|
|
551
|
+
filtered.push(current);
|
|
552
|
+
}
|
|
553
|
+
return filtered;
|
|
554
|
+
}
|
|
555
|
+
async function main() {
|
|
556
|
+
const userArgs = process.argv.slice(2);
|
|
557
|
+
void scheduleVersionCheck();
|
|
558
|
+
const meaningfulArgs = filterOutLocaleArgs(userArgs);
|
|
559
|
+
if (meaningfulArgs.length === 0) {
|
|
560
|
+
await runInteractive();
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
await program.parseAsync(process.argv);
|
|
564
|
+
}
|
|
565
|
+
if (require.main === module) {
|
|
566
|
+
main().catch(error => {
|
|
567
|
+
ui.displayError(t('errors.cli.executionFailed'), error);
|
|
568
|
+
process.exit(1);
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4LA,0BAEC;AAED,kCAWC;AAED,gCAEC;AAED,8BAEC;AAED,gCAEC;AAED,sCAEC;AAED,gCAEC;AA7ND,yCAAoC;AACpC,2CAA6B;AAC7B,+CAAiC;AACjC,kDAA0B;AAC1B,wDAAgC;AAEhC,oEAAiE;AACjE,yCAA6C;AAC7C,2DAAyD;AACzD,uCAAkG;AAGlG,6DAA0D;AAC1D,6DAA0D;AAC1D,6DAA0D;AAE1D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,aAAa,GAAG,IAAA,mBAAY,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACvF,IAAI,aAAa,GAAW,aAAa,CAAC;AAC1C,IAAI,WAAW,GAAG,IAAA,uBAAgB,EAAC,aAAa,CAAC,CAAC;AAClD,MAAM,CAAC,GAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,eAAe,GAAmC;IACtD,EAAE,EAAE,4BAA4B;IAChC,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,MAAM,EAAE,GAAG,IAAI,oBAAY,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,OAAO,GAAG,OAAO,CAAC;AACxB,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAC7C,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC,MAAM,WAAW,GAAG,IAAI,yBAAW,CAAC;IAClC,EAAE;IACF,CAAC;IACD,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,IAAI,yBAAW,CAAC;IAClC,EAAE;IACF,CAAC;IACD,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,aAAa;CAC5B,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,IAAI,yBAAW,CAAC;IAClC,EAAE;IACF,CAAC;IACD,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,aAAa;CAC5B,CAAC,CAAC;AAEH,OAAO;KACJ,IAAI,CAAC,sBAAsB,CAAC;KAC5B,WAAW,CAAC,kDAAkD,CAAC;KAC/D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,aAAa,CAAC,CAAC;AAE/E,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,SAAS,oBAAoB,CAAC,QAAiB,KAAK;IAClD,IAAI,CAAC,mBAAmB,IAAI,KAAK,EAAE,CAAC;QAClC,mBAAmB,GAAG,IAAA,gCAAe,EAAC;YACpC,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,OAAO;YACvB,EAAE;YACF,CAAC;YACD,KAAK;SACN,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,KAAK,oBAAoB,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;KAC3C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,kCAAkC,CAAC,CAAC;KAC9D,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;KAC7D,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,YAAY,CAAC;KAC7E,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACrE,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACrE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAY,EAAE,OAAY,EAAE,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,KAAc,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;KAC3C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,kCAAkC,CAAC,CAAC;KAC9D,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,YAAY,CAAC;KAC7E,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAAE,aAAa,CAAC;KAC9E,MAAM,CAAC,2BAA2B,EAAE,CAAC,CAAC,gCAAgC,CAAC,CAAC;KACxE,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC;KAC5D,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KACpG,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACrE,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACrE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAY,EAAE,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,KAAc,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;KAC3C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,kCAAkC,CAAC,CAAC;KAC9D,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,YAAY,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC;KAC3D,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KAC9D,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC;KACvD,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,4BAA4B,CAAC,CAAC;KACjD,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,4BAA4B,CAAC,CAAC;KAC5D,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAAE,aAAa,CAAC;KAC9E,MAAM,CAAC,2BAA2B,EAAE,CAAC,CAAC,gCAAgC,CAAC,CAAC;KACxE,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC;KAC5D,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,KAAK,CAAC;KAC7D,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACrE,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACrE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,UAAe,EAAE,EAAE;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;IAElE,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE;gBAC1D,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;gBAChC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;aACrC,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,KAAc,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,6BAAa,EAAE,CAAC;IAEtC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;YAC1C,QAAQ;YACR,SAAS;YACT,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;YAChC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;SACrC,CAAC,CAAC;QAEH,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,KAAc,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,WAAW,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEE,KAAK,UAAU,OAAO,CAAC,QAAgB,EAAE,IAAY,EAAE,UAAe;IAC3E,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,OAAY;IAC9D,MAAM,IAAI,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;IAErG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;QACpC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,SAAS,IAAI,YAAY;QAC7D,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,UAAU,EAAE,OAAO,EAAE,UAAU;KAChC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,GAAG,KAAgB;IAClD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC;AACvD,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,GAAG,KAAgB;IACjD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;AACtD,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,GAAG,KAAgB;IAClD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC;AACvD,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,GAAG,KAAgB;IACrD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,UAAe;IAChE,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAoB;IAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAqB;QAC3D;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC,CAAC,yBAAyB,CAAC;YACrC,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,wBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;aACjC,CAAC,CAAC;SACJ;KACF,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAC;IACjD,aAAa,GAAG,gBAAgB,CAAC;IACjC,WAAW,GAAG,IAAA,uBAAgB,EAAC,gBAAgB,CAAC,CAAC;IAEjD,IAAI,WAAW,EAAE,CAAC;QAChB,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAID,KAAK,UAAU,cAAc;IAC3B,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAEzB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,OAAO,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAgC;YACtE;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;gBACjC,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;oBAC9D,EAAE,IAAI,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;oBACtD,EAAE,IAAI,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;oBACtD,EAAE,IAAI,EAAE,CAAC,CAAC,oCAAoC,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBAC1E,EAAE,IAAI,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;iBACvD;aACF;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM;QACR,CAAC;QAED,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,sBAAsB,EAAE,CAAC;QACjC,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,qBAAqB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,kBAAkB,EAAE,CAAC;QAC7B,CAAC;QAED,EAAE,CAAC,WAAW,CACZ,CAAC,CAAC,kCAAkC,CAAC,EACrC,CAAC,CAAC,mCAAmC,CAAC,CACvC,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAuB;QAC/D;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,CAAC,CAAC,2BAA2B,CAAC;YACvC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAwB;QACjE;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,CAAC,8BAA8B,CAAC;YAC1C,OAAO,EAAE,aAAa;SACvB;KACF,CAAC,CAAC;IAEH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA+C;QAC3F;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,CAAC,CAAC,uBAAuB,CAAC;YACnC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,CAAC,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;gBACvD,EAAE,IAAI,EAAE,CAAC,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;gBACvD,EAAE,IAAI,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;aAC5D;YACD,OAAO,EAAE,MAAM;SAChB;KACF,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAuB;QAC9D;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC,CAAC,wBAAwB,CAAC;YACpC,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE;QACxC,MAAM,EAAE,SAAS;QACjB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAuB;QAC/D;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,CAAC,CAAC,uBAAuB,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7D,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA4C;QAClH;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,CAAC,8BAA8B,CAAC;YAC1C,OAAO,EAAE,aAAa;SACvB;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,CAAC,CAAC,yBAAyB,CAAC;YACrC,OAAO,EAAE,EAAE;SACZ;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7F,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAoB;QACzD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,CAAC,CAAC,oBAAoB,CAAC;YAChC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;SACxC;KACF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA4B;QACxE;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,CAAC,CAAC,4BAA4B,CAAC;YACxC,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,QAA2C,CAAC;IAChD,IAAI,KAAyB,CAAC;IAC9B,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAoB;YAC3D;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,CAAC,CAAC,oBAAoB,CAAC;gBAChC,OAAO,EAAE,aAAa;aACvB;SACF,CAAC,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,QAAQ,GAAG,YAAY,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA6B;QAC1E;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,CAAC,CAAC,4BAA4B,CAAC;YACxC,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,MAA0B,CAAC;IAC/B,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAqB;YAC7D;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;gBACjC,IAAI,EAAE,GAAG;aACV;SACF,CAAC,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAuB;QAC9D;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC,CAAC,wBAAwB,CAAC;YACpC,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE;QAClC,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,WAAW;QAClB,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAuB;QAC/D;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC;YAC/B,OAAO,EAAE,UAAU;SACpB;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAgC;QACpE;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC;YAC/B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,CAAC,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;gBAC3D,EAAE,IAAI,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;aACpD;YACD,OAAO,EAAE,UAAU;SACpB;KACF,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAwB;QACjE;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,CAAC,8BAA8B,CAAC;YAC1C,OAAO,EAAE,aAAa;SACvB;KACF,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAsB;YAC7D;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAAC;gBAClC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;aACxC;SACF,CAAC,CAAC;QAEH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAuB;YAC/D;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,CAAC,CAAC,uBAAuB,CAAC;gBACnC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;aACvB;SACF,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAsB;YAC5D;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;gBACjC,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC,CAAC;YACvE,MAAM,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE;gBAC/D,OAAO,EAAE,OAAO,IAAI,SAAS;aAC9B,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,QAAQ;gBACd,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,KAAc,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAsB;QAC7D;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAAC;YAClC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;SACxC;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,6BAAa,EAAE,CAAC;IACtC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;YAC1C,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC;YAC1D,OAAO,EAAE,OAAO,IAAI,SAAS;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,KAAc,CAAC,CAAC;IACnE,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,WAAW,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAc;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACzE,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACvE,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,KAAK,oBAAoB,EAAE,CAAC;IAC5B,MAAM,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,cAAc,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACnB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,KAAc,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const UPDATE_SCAFFOLD_PROMPT_FALLBACK = "# Prompt: Update Repository Documentation and Agent Playbooks\n\n## Purpose\nYou 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.\n\n## Context Gathering Checklist\n1. Run `git status -sb` to understand pending changes.\n2. Review the latest merged commits or PRs related to documentation, architecture, workflow, or testing.\n3. Inspect `package.json`, CI configuration, and any release or roadmap notes stored in the repository.\n4. Check `docs/README.md` for the current document map and update AI markers (`agent-update:*`).\n5. Identify unresolved placeholders marked as `<!-- agent-fill:* -->`.\n\n## Update Procedure\n1. **Select a Guide**\n - Navigate to `docs/<guide>.md`.\n - Read the YAML front matter (`ai_update_goal`, `required_inputs`, `success_criteria`) and ensure you collect the listed inputs before editing.\n\n2. **Edit Within Update Wrappers**\n - Update content strictly inside the matching `<!-- agent-update:start:... -->` block and keep the closing `<!-- agent-update:end -->` tag.\n - Remove or replace any `TODO` text with accurate, current information.\n - When you complete a placeholder slot (`<!-- agent-fill:... -->`), remove the wrapper and provide the finalized description.\n\n3. **Cross-Link Updates**\n - Verify that links between docs remain valid.\n - If you add new guides or sections, update `docs/README.md` and the document map table.\n\n4. **Agent Playbook Alignment**\n - For each change in `docs/`, adjust the related `agents/*.md` playbooks.\n - Ensure the \"Documentation Touchpoints\" list references the correct `agent-update` markers.\n - Update collaboration checklists and evidence sections to reflect the latest workflows.\n\n5. **Evidence & Traceability**\n - Note key sources (commit hashes, issues, ADRs) in the \"Evidence to Capture\" or \"AI Update Checklist\" summary lines.\n - If anything is ambiguous or requires human follow-up, leave a concise note clearly labelled for maintainers.\n\n## Acceptance Criteria\n- Every guide\u2019s `success_criteria` field is satisfied.\n- No unresolved `TODO` or `agent-fill` blocks remain unless they require explicit human input; in such cases, add a comment explaining the dependency.\n- Agent playbooks list accurate responsibilities, best practices, and pointer links to the refreshed docs.\n- Changes are self-contained, well-formatted Markdown, and reference any new external resources introduced.\n\n## Deliverables\n- Updated Markdown files committed to the repository.\n- A short changelog or PR description summarizing:\n - Guides touched\n - Key decisions or facts added\n - Evidence links and any pending follow-ups\n";
|
|
2
|
+
export declare const UPDATE_PLAN_PROMPT_FALLBACK = "# Prompt: Update Collaboration Plans\n\n## Purpose\nYou 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.\n\n## Preparation Checklist\n1. Review the plan\u2019s YAML front matter to understand the stated `ai_update_goal`, `required_inputs`, and `success_criteria`.\n2. Inspect the provided documentation excerpts (from `docs/`) and agent playbooks to ensure the plan reflects their current guidance.\n3. Confirm that the \u201CAgent Lineup\u201D and \u201CDocumentation Touchpoints\u201D tables link to real files and reference the correct `agent-update` markers.\n4. Note any TODOs, `agent-fill` placeholders, or missing evidence sections that must be resolved.\n\n## Update Procedure\n1. **Task Snapshot**\n - Summarize the primary goal and success signal in concrete terms.\n - List authoritative references (docs, issues, specs) that contributors should consult.\n\n2. **Agent Alignment**\n - For each agent in the lineup, describe why they are involved and call out the first responsibility they should focus on.\n - Ensure playbook links and responsibility summaries match the referenced agent files.\n\n3. **Documentation Touchpoints**\n - Map each plan stage to the docs excerpts provided, highlighting which sections need to be updated during execution.\n - Keep the table sorted and ensure the listed `agent-update` markers exist.\n\n4. **Working Phases**\n - Break the work into sequential phases that each include a numbered list of steps, accountable owners, deliverables, and evidence expectations.\n - Close every phase with an explicit Git commit checkpoint (for example, `git commit -m \"chore(plan): complete phase 1\"`) so progress is recorded in version control.\n - Reference documentation and agent resources that the team should consult while executing each phase.\n\n5. **Evidence & Follow-up**\n - Specify the artefacts that must be captured (PR links, test runs, change logs) before the plan is considered complete.\n - Record any follow-up actions or decisions that require human confirmation.\n\n## Acceptance Criteria\n- Every TODO or placeholder inside the plan\u2019s `agent-update` block is resolved or accompanied by a clear escalation note.\n- Tables reference existing files and stay in sync with the docs/agent indices.\n- Phases provide actionable guidance, include numbered steps, and end with an explicit Git commit checkpoint.\n- The plan remains fully self-contained and ready for contributors to execute.\n\n## Deliverables\n- Updated plan Markdown returned verbatim.\n- No additional commentary outside the Markdown output.\n";
|
|
3
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/prompts/defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,83FA+C3C,CAAC;AAEF,eAAO,MAAM,2BAA2B,u1FA0CvC,CAAC"}
|