create-byan-agent 2.25.0 → 2.26.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/CHANGELOG.md +155 -0
- package/README.md +9 -12
- package/install/bin/create-byan-agent-v2.js +29 -169
- package/install/lib/agent-generator.js +5 -5
- package/install/lib/byan-web-integration.js +1 -1
- package/install/lib/claude-native-setup.js +1 -1
- package/install/lib/phase2-chat.js +3 -10
- package/install/lib/platforms/claude-code.js +2 -2
- package/install/lib/platforms/index.js +0 -2
- package/install/lib/project-agents-generator.js +3 -3
- package/install/lib/staging-consent.js +3 -3
- package/install/lib/subagent-generator.js +3 -3
- package/install/lib/yanstaller/agent-launcher.js +1 -27
- package/install/lib/yanstaller/detector.js +4 -4
- package/install/lib/yanstaller/installer.js +0 -2
- package/install/lib/yanstaller/interviewer.js +1 -1
- package/install/lib/yanstaller/platform-selector.js +1 -13
- package/install/package.json +1 -1
- package/install/src/byan-v2/context/session-state.js +2 -2
- package/install/src/byan-v2/index.js +1 -5
- package/install/src/byan-v2/orchestrator/generation-state.js +4 -4
- package/install/src/webui/api.js +0 -2
- package/install/src/webui/chat/bridge.js +1 -13
- package/install/src/webui/chat/cli-detector.js +0 -23
- package/install/src/webui/public/app.js +1 -3
- package/install/src/webui/public/chat.html +0 -2
- package/install/src/webui/public/chat.js +0 -1
- package/install/src/webui/public/index.html +2 -2
- package/install/templates/.claude/CLAUDE.md +13 -2
- package/install/templates/.claude/agents/bmad-byan.md +1 -1
- package/install/templates/.claude/hooks/autobench-stop-guard.js +286 -0
- package/install/templates/.claude/hooks/fact-check-absolutes.js +1 -61
- package/install/templates/.claude/hooks/fact-check-claims.js +69 -0
- package/install/templates/.claude/hooks/fd-response-check.js +37 -46
- package/install/templates/.claude/hooks/inject-soul.js +64 -25
- package/install/templates/.claude/hooks/leantime-fd-sync.js +216 -0
- package/install/templates/.claude/hooks/lib/autobench-config.json +81 -0
- package/install/templates/.claude/hooks/lib/autobench-fc-enrich.js +251 -0
- package/install/templates/.claude/hooks/lib/autobench-ledger-report.js +253 -0
- package/install/templates/.claude/hooks/lib/autobench-runtime.js +199 -0
- package/install/templates/.claude/hooks/lib/fact-check-core.js +69 -0
- package/install/templates/.claude/hooks/lib/transcript-read.js +137 -0
- package/install/templates/.claude/hooks/soul-memory-check.js +49 -25
- package/install/templates/.claude/hooks/soul-memory-triggers.js +27 -8
- package/install/templates/.claude/hooks/stage-to-byan.js +25 -7
- package/install/templates/.claude/hooks/strict-stop-guard.js +4 -16
- package/install/templates/.claude/rules/benchmark.md +251 -0
- package/install/templates/.claude/rules/byan-agents.md +0 -1
- package/install/templates/.claude/rules/byan-api.md +64 -0
- package/install/templates/.claude/rules/fact-check.md +1 -1
- package/install/templates/.claude/rules/strict-mode.md +10 -9
- package/install/templates/.claude/settings.json +12 -0
- package/install/templates/.claude/skills/byan-benchmark/SKILL.md +159 -0
- package/install/templates/.claude/skills/byan-byan/SKILL.md +73 -12
- package/install/templates/.claude/skills/byan-fact-check/SKILL.md +1 -1
- package/install/templates/.claude/skills/byan-hermes-dispatch/SKILL.md +5 -6
- package/install/templates/.claude/skills/byan-orchestrate/SKILL.md +11 -3
- package/install/templates/.claude/skills/byan-strict/SKILL.md +4 -1
- package/install/templates/.claude/workflows/INDEX.md +2 -1
- package/install/templates/.claude/workflows/byan-benchmark.js +328 -0
- package/install/templates/_byan/_config/agent-manifest.csv +1 -1
- package/install/templates/_byan/_config/autobench.yaml +510 -0
- package/install/templates/_byan/_config/strict-mode.yaml +9 -3
- package/install/templates/_byan/_config/workflow-manifest.csv +1 -0
- package/install/templates/_byan/agent/byan/byan.md +1 -3
- package/install/templates/_byan/agent/byan-flat/byan.md +1 -3
- package/install/templates/_byan/agent/byan-test/byan-test.md +2 -2
- package/install/templates/_byan/agent/byan-test-flat/byan-test.md +2 -2
- package/install/templates/_byan/agent/byan.optimized/byan.optimized.md +2 -2
- package/install/templates/_byan/agent/byan.optimized-v2/byan.optimized-v2.md +2 -2
- package/install/templates/_byan/agent/claude/claude.md +0 -2
- package/install/templates/_byan/agent/codex/codex.md +0 -2
- package/install/templates/_byan/agent/rachid/rachid.md +2 -10
- package/install/templates/_byan/agent/rachid-flat/rachid.md +2 -11
- package/install/templates/_byan/agent/turbo-whisper/turbo-whisper.md +2 -5
- package/install/templates/_byan/agent/turbo-whisper-integration/turbo-whisper-integration.md +5 -13
- package/install/templates/_byan/agent/yanstaller/yanstaller.md +2 -24
- package/install/templates/_byan/config.yaml +0 -1
- package/install/templates/_byan/mcp/byan-mcp-server/bin/byan-sync-rules.js +20 -4
- package/install/templates/_byan/mcp/byan-mcp-server/lib/advisory-autofeed.js +13 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/index-generator.js +1 -1
- package/install/templates/_byan/mcp/byan-mcp-server/lib/kanban.js +6 -3
- package/install/templates/_byan/mcp/byan-mcp-server/lib/leantime-fd-core.js +205 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/leantime-sync.js +415 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/precommit-gate.js +1 -1
- package/install/templates/_byan/mcp/byan-mcp-server/lib/strict-activation.js +1 -1
- package/install/templates/_byan/mcp/byan-mcp-server/lib/strict-mode.js +8 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/sync-rules.js +172 -23
- package/install/templates/_byan/mcp/byan-mcp-server/lib/workflows-generator.js +1 -0
- package/install/templates/_byan/mcp/byan-mcp-server/server.js +205 -82
- package/install/templates/_byan/worker/launchers/README.md +4 -24
- package/install/templates/_byan/worker/workers.md +0 -2
- package/install/templates/_byan/workflow/simple/bmb/byan-benchmark/workflow.md +86 -0
- package/install/templates/docs/leantime-integration.md +160 -0
- package/package.json +3 -7
- package/src/byan-v2/context/session-state.js +2 -2
- package/src/byan-v2/generation/mantra-validator.js +3 -3
- package/src/byan-v2/index.js +1 -5
- package/src/byan-v2/integration/voice-integration.js +1 -1
- package/src/byan-v2/orchestrator/generation-state.js +4 -4
- package/src/staging/staging.js +20 -6
- package/install/bin/build-copilot-stubs.js +0 -138
- package/install/lib/platforms/copilot-cli.js +0 -123
- package/install/lib/platforms/vscode.js +0 -51
- package/install/src/byan-v2/context/copilot-context.js +0 -79
- package/install/src/webui/chat/copilot-adapter.js +0 -68
- package/install/templates/.claude/agents/bmad-marc.md +0 -25
- package/install/templates/.claude/skills/byan-marc/SKILL.md +0 -20
- package/install/templates/.github/agents/bmad-agent-bmad-master.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmb-agent-builder.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmb-module-builder.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmb-workflow-builder.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-analyst.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-architect.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-dev.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-pm.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-quick-flow-solo-dev.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-quinn.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-sm.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-tech-writer.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-ux-designer.md +0 -16
- package/install/templates/.github/agents/bmad-agent-byan-test.md +0 -33
- package/install/templates/.github/agents/bmad-agent-byan-v2.md +0 -44
- package/install/templates/.github/agents/bmad-agent-byan.md +0 -1062
- package/install/templates/.github/agents/bmad-agent-carmack.md +0 -14
- package/install/templates/.github/agents/bmad-agent-cis-brainstorming-coach.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-creative-problem-solver.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-design-thinking-coach.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-innovation-strategist.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-presentation-master.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-storyteller.md +0 -16
- package/install/templates/.github/agents/bmad-agent-claude.md +0 -49
- package/install/templates/.github/agents/bmad-agent-codex.md +0 -49
- package/install/templates/.github/agents/bmad-agent-drawio.md +0 -45
- package/install/templates/.github/agents/bmad-agent-fact-checker.md +0 -16
- package/install/templates/.github/agents/bmad-agent-forgeron.md +0 -15
- package/install/templates/.github/agents/bmad-agent-jimmy.md +0 -15
- package/install/templates/.github/agents/bmad-agent-marc.md +0 -49
- package/install/templates/.github/agents/bmad-agent-mike.md +0 -15
- package/install/templates/.github/agents/bmad-agent-patnote.md +0 -49
- package/install/templates/.github/agents/bmad-agent-rachid.md +0 -48
- package/install/templates/.github/agents/bmad-agent-skeptic.md +0 -16
- package/install/templates/.github/agents/bmad-agent-tao.md +0 -14
- package/install/templates/.github/agents/bmad-agent-tea-tea.md +0 -16
- package/install/templates/.github/agents/bmad-agent-test-dynamic.md +0 -22
- package/install/templates/.github/agents/bmad-agent-yanstaller-interview.md +0 -50
- package/install/templates/.github/agents/bmad-agent-yanstaller-phase2.md +0 -189
- package/install/templates/.github/agents/bmad-agent-yanstaller.md +0 -350
- package/install/templates/.github/agents/expert-merise-agile.md +0 -178
- package/install/templates/.github/agents/franck.md +0 -379
- package/install/templates/.github/agents/hermes.md +0 -575
- package/install/templates/.github/extensions/byan-staging/extension.mjs +0 -169
- package/install/templates/.github/extensions/byan-staging/package.json +0 -8
- package/install/templates/_byan/agent/marc/marc-soul.md +0 -47
- package/install/templates/_byan/agent/marc/marc-tao.md +0 -77
- package/install/templates/_byan/agent/marc/marc.md +0 -324
- package/install/templates/_byan/agent/marc-flat/marc.md +0 -387
- package/install/templates/_byan/mcp/byan-mcp-server/lib/copilot.js +0 -148
- package/install/templates/_byan/worker/launchers/launch-yanstaller-copilot.md +0 -173
- package/install/templates/workers/cost-optimizer.js +0 -169
- package/src/byan-v2/context/copilot-context.js +0 -79
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cost Optimizer Worker
|
|
3
|
-
*
|
|
4
|
-
* Automatically routes LLM calls to optimal model based on complexity.
|
|
5
|
-
* Integrates with byan-copilot-router for cost optimization.
|
|
6
|
-
*
|
|
7
|
-
* @module workers/cost-optimizer
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
const { CopilotRouter } = require('byan-copilot-router');
|
|
11
|
-
|
|
12
|
-
class CostOptimizerWorker {
|
|
13
|
-
constructor(config = {}) {
|
|
14
|
-
this.router = new CopilotRouter({
|
|
15
|
-
workerThreshold: config.workerThreshold || 30,
|
|
16
|
-
agentThreshold: config.agentThreshold || 60,
|
|
17
|
-
fallbackEnabled: config.fallbackEnabled !== false,
|
|
18
|
-
maxRetries: config.maxRetries || 3,
|
|
19
|
-
clientOptions: {
|
|
20
|
-
testMode: config.testMode !== false // Default to test mode
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
this.role = 'worker';
|
|
25
|
-
this.model = 'auto'; // Auto-select based on complexity
|
|
26
|
-
this.verbose = config.verbose || false;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Execute task with automatic routing
|
|
31
|
-
*
|
|
32
|
-
* @param {Object} task - Task to execute
|
|
33
|
-
* @param {string} task.input - User prompt
|
|
34
|
-
* @param {string} task.type - Task type (simple/generate/analysis/reasoning)
|
|
35
|
-
* @param {number} [task.contextSize] - Context size in characters
|
|
36
|
-
* @param {number} [task.steps] - Number of steps
|
|
37
|
-
* @param {string} [task.outputFormat] - Output format (text/json/complex)
|
|
38
|
-
* @returns {Promise<Object>} Execution result
|
|
39
|
-
*/
|
|
40
|
-
async execute(task) {
|
|
41
|
-
if (this.verbose) {
|
|
42
|
-
console.log('[CostOptimizer] Routing task:', task.type);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
const result = await this.router.route({
|
|
47
|
-
input: task.input || task.prompt,
|
|
48
|
-
type: task.type || 'generate',
|
|
49
|
-
contextSize: task.contextSize || (task.context?.length || 0),
|
|
50
|
-
steps: task.steps,
|
|
51
|
-
outputFormat: task.outputFormat
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
if (this.verbose) {
|
|
55
|
-
console.log(`[CostOptimizer] Routed to: ${result.route}`);
|
|
56
|
-
console.log(`[CostOptimizer] Cost: $${result.cost.toFixed(6)}`);
|
|
57
|
-
console.log(`[CostOptimizer] Complexity: ${result.complexityScore.total}`);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return {
|
|
61
|
-
success: true,
|
|
62
|
-
content: result.content,
|
|
63
|
-
route: result.route,
|
|
64
|
-
model: result.model,
|
|
65
|
-
cost: result.cost,
|
|
66
|
-
tokens: result.tokens,
|
|
67
|
-
complexity: result.complexityScore.total
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
} catch (error) {
|
|
71
|
-
console.error('[CostOptimizer] Error:', error.message);
|
|
72
|
-
return {
|
|
73
|
-
success: false,
|
|
74
|
-
error: error.message
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Get routing statistics
|
|
81
|
-
*
|
|
82
|
-
* @returns {Object} Statistics with costs and savings
|
|
83
|
-
*/
|
|
84
|
-
getStatistics() {
|
|
85
|
-
return this.router.getTracker().getStatistics();
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Print cost summary
|
|
90
|
-
*/
|
|
91
|
-
printSummary() {
|
|
92
|
-
console.log(this.router.getTracker().printSummary());
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Export cost data
|
|
97
|
-
*
|
|
98
|
-
* @param {string} format - Format (json/csv)
|
|
99
|
-
* @returns {string} Exported data
|
|
100
|
-
*/
|
|
101
|
-
exportData(format = 'json') {
|
|
102
|
-
const tracker = this.router.getTracker();
|
|
103
|
-
return format === 'csv' ? tracker.exportCSV() : tracker.exportJSON();
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Reset statistics
|
|
108
|
-
*/
|
|
109
|
-
reset() {
|
|
110
|
-
this.router.getTracker().reset();
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Cleanup resources
|
|
115
|
-
*/
|
|
116
|
-
async close() {
|
|
117
|
-
await this.router.close();
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Get complexity score for a task without executing
|
|
122
|
-
*
|
|
123
|
-
* @param {Object} task - Task to analyze
|
|
124
|
-
* @returns {Object} Complexity score
|
|
125
|
-
*/
|
|
126
|
-
analyzeComplexity(task) {
|
|
127
|
-
return this.router.analyzer.calculateComplexity({
|
|
128
|
-
input: task.input || task.prompt,
|
|
129
|
-
type: task.type || 'generate',
|
|
130
|
-
contextSize: task.contextSize || 0,
|
|
131
|
-
steps: task.steps,
|
|
132
|
-
outputFormat: task.outputFormat
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
module.exports = CostOptimizerWorker;
|
|
138
|
-
|
|
139
|
-
// Example usage
|
|
140
|
-
if (require.main === module) {
|
|
141
|
-
(async () => {
|
|
142
|
-
console.log('🚀 Cost Optimizer Worker Demo\n');
|
|
143
|
-
|
|
144
|
-
const worker = new CostOptimizerWorker({ verbose: true });
|
|
145
|
-
|
|
146
|
-
// Simple task
|
|
147
|
-
console.log('1️⃣ Simple task:');
|
|
148
|
-
const r1 = await worker.execute({
|
|
149
|
-
input: 'Fix typo in code',
|
|
150
|
-
type: 'simple'
|
|
151
|
-
});
|
|
152
|
-
console.log('Result:', r1.success ? '✓' : '✗', '\n');
|
|
153
|
-
|
|
154
|
-
// Complex task
|
|
155
|
-
console.log('2️⃣ Complex task:');
|
|
156
|
-
const r2 = await worker.execute({
|
|
157
|
-
input: 'Design microservices architecture',
|
|
158
|
-
type: 'reasoning',
|
|
159
|
-
steps: 5
|
|
160
|
-
});
|
|
161
|
-
console.log('Result:', r2.success ? '✓' : '✗', '\n');
|
|
162
|
-
|
|
163
|
-
// Show statistics
|
|
164
|
-
console.log('📊 Statistics:');
|
|
165
|
-
worker.printSummary();
|
|
166
|
-
|
|
167
|
-
await worker.close();
|
|
168
|
-
})();
|
|
169
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const os = require('os');
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
function getCopilotContext() {
|
|
6
|
-
const context = {
|
|
7
|
-
projectRoot: getProjectRoot(),
|
|
8
|
-
userName: getUserName(),
|
|
9
|
-
workingDir: getWorkingDir(),
|
|
10
|
-
gitBranch: getGitBranch()
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
return context;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function getProjectRoot() {
|
|
17
|
-
if (process.env.GITHUB_WORKSPACE) {
|
|
18
|
-
return process.env.GITHUB_WORKSPACE;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (process.env.PWD) {
|
|
22
|
-
return process.env.PWD;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return process.cwd();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function getUserName() {
|
|
29
|
-
if (process.env.COPILOT_USER_NAME) {
|
|
30
|
-
return process.env.COPILOT_USER_NAME;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const projectRoot = getProjectRoot();
|
|
34
|
-
const configPath = path.join(projectRoot, '.github', 'copilot', 'config.yaml');
|
|
35
|
-
|
|
36
|
-
if (fs.existsSync(configPath)) {
|
|
37
|
-
try {
|
|
38
|
-
const configContent = fs.readFileSync(configPath, 'utf8');
|
|
39
|
-
const userNameMatch = configContent.match(/user_name:\s*(.+)/);
|
|
40
|
-
if (userNameMatch && userNameMatch[1]) {
|
|
41
|
-
return userNameMatch[1].trim();
|
|
42
|
-
}
|
|
43
|
-
} catch (error) {
|
|
44
|
-
// Fallback to next option
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (process.env.USER) {
|
|
49
|
-
return process.env.USER;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
try {
|
|
53
|
-
return os.userInfo().username;
|
|
54
|
-
} catch (error) {
|
|
55
|
-
return 'unknown';
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function getWorkingDir() {
|
|
60
|
-
if (process.env.PWD) {
|
|
61
|
-
return process.env.PWD;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return process.cwd();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function getGitBranch() {
|
|
68
|
-
if (process.env.GITHUB_REF_NAME) {
|
|
69
|
-
return process.env.GITHUB_REF_NAME;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (process.env.GIT_BRANCH) {
|
|
73
|
-
return process.env.GIT_BRANCH;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return '';
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
module.exports = getCopilotContext;
|