create-byan-agent 2.23.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.
Files changed (172) hide show
  1. package/CHANGELOG.md +230 -0
  2. package/README.md +9 -12
  3. package/install/bin/create-byan-agent-v2.js +29 -169
  4. package/install/lib/agent-generator.js +5 -5
  5. package/install/lib/byan-web-integration.js +1 -1
  6. package/install/lib/claude-native-setup.js +1 -1
  7. package/install/lib/phase2-chat.js +3 -10
  8. package/install/lib/platforms/claude-code.js +2 -2
  9. package/install/lib/platforms/index.js +0 -2
  10. package/install/lib/project-agents-generator.js +3 -3
  11. package/install/lib/staging-consent.js +3 -3
  12. package/install/lib/subagent-generator.js +3 -3
  13. package/install/lib/yanstaller/agent-launcher.js +1 -27
  14. package/install/lib/yanstaller/detector.js +4 -4
  15. package/install/lib/yanstaller/installer.js +0 -2
  16. package/install/lib/yanstaller/interviewer.js +1 -1
  17. package/install/lib/yanstaller/platform-selector.js +1 -13
  18. package/install/package.json +1 -1
  19. package/install/src/byan-v2/context/session-state.js +2 -2
  20. package/install/src/byan-v2/index.js +2 -6
  21. package/install/src/byan-v2/orchestrator/generation-state.js +4 -4
  22. package/install/src/webui/api.js +0 -2
  23. package/install/src/webui/chat/bridge.js +1 -13
  24. package/install/src/webui/chat/cli-detector.js +0 -23
  25. package/install/src/webui/public/app.js +1 -3
  26. package/install/src/webui/public/chat.html +0 -2
  27. package/install/src/webui/public/chat.js +0 -1
  28. package/install/src/webui/public/index.html +2 -2
  29. package/install/templates/.claude/CLAUDE.md +13 -2
  30. package/install/templates/.claude/agents/bmad-byan.md +1 -1
  31. package/install/templates/.claude/hooks/autobench-stop-guard.js +286 -0
  32. package/install/templates/.claude/hooks/drain-advisory.js +85 -0
  33. package/install/templates/.claude/hooks/fact-check-absolutes.js +1 -61
  34. package/install/templates/.claude/hooks/fact-check-claims.js +69 -0
  35. package/install/templates/.claude/hooks/fd-response-check.js +37 -46
  36. package/install/templates/.claude/hooks/inject-soul.js +64 -25
  37. package/install/templates/.claude/hooks/leantime-fd-sync.js +216 -0
  38. package/install/templates/.claude/hooks/lib/autobench-config.json +81 -0
  39. package/install/templates/.claude/hooks/lib/autobench-fc-enrich.js +251 -0
  40. package/install/templates/.claude/hooks/lib/autobench-ledger-report.js +253 -0
  41. package/install/templates/.claude/hooks/lib/autobench-runtime.js +199 -0
  42. package/install/templates/.claude/hooks/lib/fact-check-core.js +69 -0
  43. package/install/templates/.claude/hooks/lib/failure-detector.js +18 -4
  44. package/install/templates/.claude/hooks/lib/transcript-read.js +137 -0
  45. package/install/templates/.claude/hooks/soul-memory-check.js +49 -25
  46. package/install/templates/.claude/hooks/soul-memory-triggers.js +27 -8
  47. package/install/templates/.claude/hooks/stage-to-byan.js +25 -7
  48. package/install/templates/.claude/hooks/strict-stop-guard.js +4 -16
  49. package/install/templates/.claude/rules/benchmark.md +251 -0
  50. package/install/templates/.claude/rules/byan-agents.md +0 -1
  51. package/install/templates/.claude/rules/byan-api.md +64 -0
  52. package/install/templates/.claude/rules/fact-check.md +1 -1
  53. package/install/templates/.claude/rules/strict-mode.md +10 -9
  54. package/install/templates/.claude/settings.json +16 -0
  55. package/install/templates/.claude/skills/byan-benchmark/SKILL.md +159 -0
  56. package/install/templates/.claude/skills/byan-byan/SKILL.md +73 -12
  57. package/install/templates/.claude/skills/byan-fact-check/SKILL.md +1 -1
  58. package/install/templates/.claude/skills/byan-hermes-dispatch/SKILL.md +5 -6
  59. package/install/templates/.claude/skills/byan-insight/SKILL.md +56 -0
  60. package/install/templates/.claude/skills/byan-orchestrate/SKILL.md +11 -3
  61. package/install/templates/.claude/skills/byan-strict/SKILL.md +4 -1
  62. package/install/templates/.claude/workflows/INDEX.md +2 -1
  63. package/install/templates/.claude/workflows/byan-benchmark.js +328 -0
  64. package/install/templates/.claude/workflows/check-implementation-readiness.js +1 -1
  65. package/install/templates/_byan/_config/agent-manifest.csv +1 -1
  66. package/install/templates/_byan/_config/autobench.yaml +510 -0
  67. package/install/templates/_byan/_config/strict-mode.yaml +9 -3
  68. package/install/templates/_byan/_config/workflow-manifest.csv +1 -0
  69. package/install/templates/_byan/agent/byan/byan.md +1 -3
  70. package/install/templates/_byan/agent/byan-flat/byan.md +1 -3
  71. package/install/templates/_byan/agent/byan-test/byan-test.md +2 -2
  72. package/install/templates/_byan/agent/byan-test-flat/byan-test.md +2 -2
  73. package/install/templates/_byan/agent/byan.optimized/byan.optimized.md +2 -2
  74. package/install/templates/_byan/agent/byan.optimized-v2/byan.optimized-v2.md +2 -2
  75. package/install/templates/_byan/agent/claude/claude.md +0 -2
  76. package/install/templates/_byan/agent/codex/codex.md +0 -2
  77. package/install/templates/_byan/agent/rachid/rachid.md +2 -10
  78. package/install/templates/_byan/agent/rachid-flat/rachid.md +2 -11
  79. package/install/templates/_byan/agent/turbo-whisper/turbo-whisper.md +2 -5
  80. package/install/templates/_byan/agent/turbo-whisper-integration/turbo-whisper-integration.md +5 -13
  81. package/install/templates/_byan/agent/yanstaller/yanstaller.md +2 -24
  82. package/install/templates/_byan/config.yaml +0 -1
  83. package/install/templates/_byan/core/activation/soul-activation.md +3 -3
  84. package/install/templates/_byan/mcp/byan-mcp-server/bin/byan-insight-digest.js +31 -0
  85. package/install/templates/_byan/mcp/byan-mcp-server/bin/byan-sync-rules.js +20 -4
  86. package/install/templates/_byan/mcp/byan-mcp-server/lib/advisory-autofeed.js +96 -0
  87. package/install/templates/_byan/mcp/byan-mcp-server/lib/index-generator.js +1 -1
  88. package/install/templates/_byan/mcp/byan-mcp-server/lib/insight-harvest.js +220 -0
  89. package/install/templates/_byan/mcp/byan-mcp-server/lib/kanban.js +6 -3
  90. package/install/templates/_byan/mcp/byan-mcp-server/lib/leantime-fd-core.js +205 -0
  91. package/install/templates/_byan/mcp/byan-mcp-server/lib/leantime-sync.js +415 -0
  92. package/install/templates/_byan/mcp/byan-mcp-server/lib/outcome-buffer.js +64 -0
  93. package/install/templates/_byan/mcp/byan-mcp-server/lib/precommit-gate.js +1 -1
  94. package/install/templates/_byan/mcp/byan-mcp-server/lib/strict-activation.js +1 -1
  95. package/install/templates/_byan/mcp/byan-mcp-server/lib/strict-mode.js +8 -0
  96. package/install/templates/_byan/mcp/byan-mcp-server/lib/sync-rules.js +172 -23
  97. package/install/templates/_byan/mcp/byan-mcp-server/lib/workflows-generator.js +1 -0
  98. package/install/templates/_byan/mcp/byan-mcp-server/server.js +262 -81
  99. package/install/templates/_byan/worker/launchers/README.md +4 -24
  100. package/install/templates/_byan/worker/workers.md +8 -9
  101. package/install/templates/_byan/workflow/simple/bmb/byan-benchmark/workflow.md +86 -0
  102. package/install/templates/_byan/workflow/simple/byan/feature-workflow.md +2 -2
  103. package/install/templates/docs/leantime-integration.md +160 -0
  104. package/package.json +3 -7
  105. package/src/byan-v2/context/session-state.js +2 -2
  106. package/src/byan-v2/generation/mantra-validator.js +3 -3
  107. package/src/byan-v2/index.js +1 -5
  108. package/src/byan-v2/integration/voice-integration.js +1 -1
  109. package/src/byan-v2/orchestrator/generation-state.js +4 -4
  110. package/src/loadbalancer/loadbalancer.js +1 -1
  111. package/src/staging/staging.js +20 -6
  112. package/install/bin/build-copilot-stubs.js +0 -138
  113. package/install/lib/platforms/copilot-cli.js +0 -123
  114. package/install/lib/platforms/vscode.js +0 -51
  115. package/install/src/byan-v2/context/copilot-context.js +0 -79
  116. package/install/src/webui/chat/copilot-adapter.js +0 -68
  117. package/install/templates/.claude/agents/bmad-marc.md +0 -25
  118. package/install/templates/.claude/skills/byan-marc/SKILL.md +0 -20
  119. package/install/templates/.github/agents/bmad-agent-bmad-master.md +0 -16
  120. package/install/templates/.github/agents/bmad-agent-bmb-agent-builder.md +0 -16
  121. package/install/templates/.github/agents/bmad-agent-bmb-module-builder.md +0 -16
  122. package/install/templates/.github/agents/bmad-agent-bmb-workflow-builder.md +0 -16
  123. package/install/templates/.github/agents/bmad-agent-bmm-analyst.md +0 -16
  124. package/install/templates/.github/agents/bmad-agent-bmm-architect.md +0 -16
  125. package/install/templates/.github/agents/bmad-agent-bmm-dev.md +0 -16
  126. package/install/templates/.github/agents/bmad-agent-bmm-pm.md +0 -16
  127. package/install/templates/.github/agents/bmad-agent-bmm-quick-flow-solo-dev.md +0 -16
  128. package/install/templates/.github/agents/bmad-agent-bmm-quinn.md +0 -16
  129. package/install/templates/.github/agents/bmad-agent-bmm-sm.md +0 -16
  130. package/install/templates/.github/agents/bmad-agent-bmm-tech-writer.md +0 -16
  131. package/install/templates/.github/agents/bmad-agent-bmm-ux-designer.md +0 -16
  132. package/install/templates/.github/agents/bmad-agent-byan-test.md +0 -33
  133. package/install/templates/.github/agents/bmad-agent-byan-v2.md +0 -44
  134. package/install/templates/.github/agents/bmad-agent-byan.md +0 -1062
  135. package/install/templates/.github/agents/bmad-agent-carmack.md +0 -14
  136. package/install/templates/.github/agents/bmad-agent-cis-brainstorming-coach.md +0 -16
  137. package/install/templates/.github/agents/bmad-agent-cis-creative-problem-solver.md +0 -16
  138. package/install/templates/.github/agents/bmad-agent-cis-design-thinking-coach.md +0 -16
  139. package/install/templates/.github/agents/bmad-agent-cis-innovation-strategist.md +0 -16
  140. package/install/templates/.github/agents/bmad-agent-cis-presentation-master.md +0 -16
  141. package/install/templates/.github/agents/bmad-agent-cis-storyteller.md +0 -16
  142. package/install/templates/.github/agents/bmad-agent-claude.md +0 -49
  143. package/install/templates/.github/agents/bmad-agent-codex.md +0 -49
  144. package/install/templates/.github/agents/bmad-agent-drawio.md +0 -45
  145. package/install/templates/.github/agents/bmad-agent-fact-checker.md +0 -16
  146. package/install/templates/.github/agents/bmad-agent-forgeron.md +0 -15
  147. package/install/templates/.github/agents/bmad-agent-jimmy.md +0 -15
  148. package/install/templates/.github/agents/bmad-agent-marc.md +0 -49
  149. package/install/templates/.github/agents/bmad-agent-mike.md +0 -15
  150. package/install/templates/.github/agents/bmad-agent-patnote.md +0 -49
  151. package/install/templates/.github/agents/bmad-agent-rachid.md +0 -48
  152. package/install/templates/.github/agents/bmad-agent-skeptic.md +0 -16
  153. package/install/templates/.github/agents/bmad-agent-tao.md +0 -14
  154. package/install/templates/.github/agents/bmad-agent-tea-tea.md +0 -16
  155. package/install/templates/.github/agents/bmad-agent-test-dynamic.md +0 -22
  156. package/install/templates/.github/agents/bmad-agent-yanstaller-interview.md +0 -50
  157. package/install/templates/.github/agents/bmad-agent-yanstaller-phase2.md +0 -189
  158. package/install/templates/.github/agents/bmad-agent-yanstaller.md +0 -350
  159. package/install/templates/.github/agents/expert-merise-agile.md +0 -178
  160. package/install/templates/.github/agents/franck.md +0 -379
  161. package/install/templates/.github/agents/hermes.md +0 -575
  162. package/install/templates/.github/extensions/byan-staging/extension.mjs +0 -169
  163. package/install/templates/.github/extensions/byan-staging/package.json +0 -8
  164. package/install/templates/_byan/agent/marc/marc-soul.md +0 -47
  165. package/install/templates/_byan/agent/marc/marc-tao.md +0 -77
  166. package/install/templates/_byan/agent/marc/marc.md +0 -324
  167. package/install/templates/_byan/agent/marc-flat/marc.md +0 -387
  168. package/install/templates/_byan/mcp/byan-mcp-server/lib/copilot.js +0 -148
  169. package/install/templates/_byan/worker/launchers/launch-yanstaller-copilot.md +0 -173
  170. package/install/templates/workers/cost-optimizer.js +0 -169
  171. package/src/byan-v2/context/copilot-context.js +0 -79
  172. package/src/core/dispatcher/execution-router.js +0 -66
@@ -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;
@@ -1,66 +0,0 @@
1
- /**
2
- * Execution strategy router.
3
- *
4
- * Decides WHERE a task runs (not which model). Four strategies, routed by
5
- * complexity score and whether the task is parallelizable with siblings:
6
- *
7
- * main-thread score < 15
8
- * agent-subagent-worktree score 15-39 + parallelizable = true
9
- * mcp-worker-haiku score 15-39 + sequential
10
- * main-thread-opus score >= 40
11
- *
12
- * Complementary to EconomicDispatcher (which picks the model).
13
- */
14
-
15
- class ExecutionRouter {
16
- /**
17
- * @param {{task?: string, complexity?: number, parallelizable?: boolean}} input
18
- * @returns {{score: number, strategy: string, reasoning: string, parallelizable: boolean}}
19
- */
20
- route(input = {}) {
21
- const { task, complexity, parallelizable } = input;
22
-
23
- const score =
24
- typeof complexity === 'number'
25
- ? complexity
26
- : Math.min(100, Math.floor((task?.length || 0) / 10));
27
-
28
- const isPar = parallelizable === true;
29
-
30
- if (score < 15) {
31
- return {
32
- score,
33
- strategy: 'main-thread',
34
- reasoning: `Score ${score} < 15. Inline in current context, no delegation overhead.`,
35
- parallelizable: isPar,
36
- };
37
- }
38
-
39
- if (score < 40 && isPar) {
40
- return {
41
- score,
42
- strategy: 'agent-subagent-worktree',
43
- reasoning: `Score ${score} + parallelizable. Spawn Claude Code Agent tool with worktree isolation.`,
44
- parallelizable: isPar,
45
- };
46
- }
47
-
48
- if (score < 40) {
49
- return {
50
- score,
51
- strategy: 'mcp-worker-haiku',
52
- reasoning: `Score ${score}, sequential. Delegate to lightweight Haiku worker via MCP.`,
53
- parallelizable: isPar,
54
- };
55
- }
56
-
57
- return {
58
- score,
59
- strategy: 'main-thread-opus',
60
- reasoning: `Score ${score} >= 40. Complex task, keep in main thread with Opus reasoning.`,
61
- parallelizable: isPar,
62
- };
63
- }
64
- }
65
-
66
- module.exports = ExecutionRouter;