agent-nuvira 1.14.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 +891 -0
- package/dist/agent-sdk/src/agent.d.ts +118 -0
- package/dist/agent-sdk/src/agent.d.ts.map +1 -0
- package/dist/agent-sdk/src/agent.js +88 -0
- package/dist/agent-sdk/src/agent.js.map +1 -0
- package/dist/agent-sdk/src/index.d.ts +33 -0
- package/dist/agent-sdk/src/index.d.ts.map +1 -0
- package/dist/agent-sdk/src/index.js +32 -0
- package/dist/agent-sdk/src/index.js.map +1 -0
- package/dist/agent-sdk/src/register.d.ts +70 -0
- package/dist/agent-sdk/src/register.d.ts.map +1 -0
- package/dist/agent-sdk/src/register.js +181 -0
- package/dist/agent-sdk/src/register.js.map +1 -0
- package/dist/agent-sdk/src/scaffold.d.ts +50 -0
- package/dist/agent-sdk/src/scaffold.d.ts.map +1 -0
- package/dist/agent-sdk/src/scaffold.js +291 -0
- package/dist/agent-sdk/src/scaffold.js.map +1 -0
- package/dist/agent-sdk/src/testing.d.ts +187 -0
- package/dist/agent-sdk/src/testing.d.ts.map +1 -0
- package/dist/agent-sdk/src/testing.js +243 -0
- package/dist/agent-sdk/src/testing.js.map +1 -0
- package/dist/agent-sdk/src/types.d.ts +202 -0
- package/dist/agent-sdk/src/types.d.ts.map +1 -0
- package/dist/agent-sdk/src/types.js +11 -0
- package/dist/agent-sdk/src/types.js.map +1 -0
- package/dist/agents/agent.d.ts +132 -0
- package/dist/agents/agent.d.ts.map +1 -0
- package/dist/agents/agent.js +19 -0
- package/dist/agents/agent.js.map +1 -0
- package/dist/agents/agents/context-gatherer.d.ts +42 -0
- package/dist/agents/agents/context-gatherer.d.ts.map +1 -0
- package/dist/agents/agents/context-gatherer.js +366 -0
- package/dist/agents/agents/context-gatherer.js.map +1 -0
- package/dist/agents/agents/debugger.d.ts +58 -0
- package/dist/agents/agents/debugger.d.ts.map +1 -0
- package/dist/agents/agents/debugger.js +257 -0
- package/dist/agents/agents/debugger.js.map +1 -0
- package/dist/agents/agents/git-agent.d.ts +34 -0
- package/dist/agents/agents/git-agent.d.ts.map +1 -0
- package/dist/agents/agents/git-agent.js +200 -0
- package/dist/agents/agents/git-agent.js.map +1 -0
- package/dist/agents/agents/github-release-agent.d.ts +65 -0
- package/dist/agents/agents/github-release-agent.d.ts.map +1 -0
- package/dist/agents/agents/github-release-agent.js +439 -0
- package/dist/agents/agents/github-release-agent.js.map +1 -0
- package/dist/agents/agents/package-agent.d.ts +33 -0
- package/dist/agents/agents/package-agent.d.ts.map +1 -0
- package/dist/agents/agents/package-agent.js +233 -0
- package/dist/agents/agents/package-agent.js.map +1 -0
- package/dist/agents/agents/planner.d.ts +26 -0
- package/dist/agents/agents/planner.d.ts.map +1 -0
- package/dist/agents/agents/planner.js +222 -0
- package/dist/agents/agents/planner.js.map +1 -0
- package/dist/agents/agents/reviewer.d.ts +34 -0
- package/dist/agents/agents/reviewer.d.ts.map +1 -0
- package/dist/agents/agents/reviewer.js +159 -0
- package/dist/agents/agents/reviewer.js.map +1 -0
- package/dist/agents/agents/runner.d.ts +73 -0
- package/dist/agents/agents/runner.d.ts.map +1 -0
- package/dist/agents/agents/runner.js +299 -0
- package/dist/agents/agents/runner.js.map +1 -0
- package/dist/agents/agents/security-agent.d.ts +33 -0
- package/dist/agents/agents/security-agent.d.ts.map +1 -0
- package/dist/agents/agents/security-agent.js +184 -0
- package/dist/agents/agents/security-agent.js.map +1 -0
- package/dist/agents/agents/tester.d.ts +96 -0
- package/dist/agents/agents/tester.d.ts.map +1 -0
- package/dist/agents/agents/tester.js +410 -0
- package/dist/agents/agents/tester.js.map +1 -0
- package/dist/agents/agents/writer.d.ts +51 -0
- package/dist/agents/agents/writer.d.ts.map +1 -0
- package/dist/agents/agents/writer.js +384 -0
- package/dist/agents/agents/writer.js.map +1 -0
- package/dist/agents/context-vault.d.ts +49 -0
- package/dist/agents/context-vault.d.ts.map +1 -0
- package/dist/agents/context-vault.js +134 -0
- package/dist/agents/context-vault.js.map +1 -0
- package/dist/agents/orchestrator.d.ts +97 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator.js +696 -0
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/utils/file-tree.d.ts +28 -0
- package/dist/agents/utils/file-tree.d.ts.map +1 -0
- package/dist/agents/utils/file-tree.js +93 -0
- package/dist/agents/utils/file-tree.js.map +1 -0
- package/dist/cli/agent.d.ts +25 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +374 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/benchmark.d.ts +24 -0
- package/dist/cli/benchmark.d.ts.map +1 -0
- package/dist/cli/benchmark.js +235 -0
- package/dist/cli/benchmark.js.map +1 -0
- package/dist/cli/cache.d.ts +12 -0
- package/dist/cli/cache.d.ts.map +1 -0
- package/dist/cli/cache.js +58 -0
- package/dist/cli/cache.js.map +1 -0
- package/dist/cli/chat.d.ts +37 -0
- package/dist/cli/chat.d.ts.map +1 -0
- package/dist/cli/chat.js +393 -0
- package/dist/cli/chat.js.map +1 -0
- package/dist/cli/commands.d.ts +24 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +18 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/config.d.ts +19 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +162 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/dashboard.d.ts +34 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +126 -0
- package/dist/cli/dashboard.js.map +1 -0
- package/dist/cli/doctor.d.ts +68 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +585 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/edit.d.ts +11 -0
- package/dist/cli/edit.d.ts.map +1 -0
- package/dist/cli/edit.js +86 -0
- package/dist/cli/edit.js.map +1 -0
- package/dist/cli/execute.d.ts +25 -0
- package/dist/cli/execute.d.ts.map +1 -0
- package/dist/cli/execute.js +186 -0
- package/dist/cli/execute.js.map +1 -0
- package/dist/cli/federation.d.ts +31 -0
- package/dist/cli/federation.d.ts.map +1 -0
- package/dist/cli/federation.js +387 -0
- package/dist/cli/federation.js.map +1 -0
- package/dist/cli/history.d.ts +22 -0
- package/dist/cli/history.d.ts.map +1 -0
- package/dist/cli/history.js +140 -0
- package/dist/cli/history.js.map +1 -0
- package/dist/cli/init.d.ts +49 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +423 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/learn.d.ts +31 -0
- package/dist/cli/learn.d.ts.map +1 -0
- package/dist/cli/learn.js +320 -0
- package/dist/cli/learn.js.map +1 -0
- package/dist/cli/memory.d.ts +38 -0
- package/dist/cli/memory.d.ts.map +1 -0
- package/dist/cli/memory.js +295 -0
- package/dist/cli/memory.js.map +1 -0
- package/dist/cli/model-picker.d.ts +18 -0
- package/dist/cli/model-picker.d.ts.map +1 -0
- package/dist/cli/model-picker.js +225 -0
- package/dist/cli/model-picker.js.map +1 -0
- package/dist/cli/models.d.ts +11 -0
- package/dist/cli/models.d.ts.map +1 -0
- package/dist/cli/models.js +132 -0
- package/dist/cli/models.js.map +1 -0
- package/dist/cli/plan.d.ts +11 -0
- package/dist/cli/plan.d.ts.map +1 -0
- package/dist/cli/plan.js +94 -0
- package/dist/cli/plan.js.map +1 -0
- package/dist/cli/plugins.d.ts +15 -0
- package/dist/cli/plugins.d.ts.map +1 -0
- package/dist/cli/plugins.js +123 -0
- package/dist/cli/plugins.js.map +1 -0
- package/dist/cli/router.d.ts +20 -0
- package/dist/cli/router.d.ts.map +1 -0
- package/dist/cli/router.js +142 -0
- package/dist/cli/router.js.map +1 -0
- package/dist/cli/run.d.ts +22 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +110 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/sandbox.d.ts +27 -0
- package/dist/cli/sandbox.d.ts.map +1 -0
- package/dist/cli/sandbox.js +264 -0
- package/dist/cli/sandbox.js.map +1 -0
- package/dist/cli/sdk.d.ts +27 -0
- package/dist/cli/sdk.d.ts.map +1 -0
- package/dist/cli/sdk.js +204 -0
- package/dist/cli/sdk.js.map +1 -0
- package/dist/cli/stats.d.ts +18 -0
- package/dist/cli/stats.d.ts.map +1 -0
- package/dist/cli/stats.js +78 -0
- package/dist/cli/stats.js.map +1 -0
- package/dist/cli/team.d.ts +42 -0
- package/dist/cli/team.d.ts.map +1 -0
- package/dist/cli/team.js +473 -0
- package/dist/cli/team.js.map +1 -0
- package/dist/cli/workflow.d.ts +27 -0
- package/dist/cli/workflow.d.ts.map +1 -0
- package/dist/cli/workflow.js +347 -0
- package/dist/cli/workflow.js.map +1 -0
- package/dist/config/manager.d.ts +37 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +147 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/types.d.ts +53 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/context/cache.d.ts +27 -0
- package/dist/context/cache.d.ts.map +1 -0
- package/dist/context/cache.js +116 -0
- package/dist/context/cache.js.map +1 -0
- package/dist/context/history.d.ts +87 -0
- package/dist/context/history.d.ts.map +1 -0
- package/dist/context/history.js +249 -0
- package/dist/context/history.js.map +1 -0
- package/dist/context/parser.d.ts +61 -0
- package/dist/context/parser.d.ts.map +1 -0
- package/dist/context/parser.js +194 -0
- package/dist/context/parser.js.map +1 -0
- package/dist/federation/client.d.ts +49 -0
- package/dist/federation/client.d.ts.map +1 -0
- package/dist/federation/client.js +239 -0
- package/dist/federation/client.js.map +1 -0
- package/dist/federation/protocol.d.ts +155 -0
- package/dist/federation/protocol.d.ts.map +1 -0
- package/dist/federation/protocol.js +57 -0
- package/dist/federation/protocol.js.map +1 -0
- package/dist/federation/server.d.ts +25 -0
- package/dist/federation/server.d.ts.map +1 -0
- package/dist/federation/server.js +401 -0
- package/dist/federation/server.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/inference/factory.d.ts +20 -0
- package/dist/inference/factory.d.ts.map +1 -0
- package/dist/inference/factory.js +46 -0
- package/dist/inference/factory.js.map +1 -0
- package/dist/inference/gemini-adapter.d.ts +17 -0
- package/dist/inference/gemini-adapter.d.ts.map +1 -0
- package/dist/inference/gemini-adapter.js +176 -0
- package/dist/inference/gemini-adapter.js.map +1 -0
- package/dist/inference/groq-adapter.d.ts +17 -0
- package/dist/inference/groq-adapter.d.ts.map +1 -0
- package/dist/inference/groq-adapter.js +103 -0
- package/dist/inference/groq-adapter.js.map +1 -0
- package/dist/inference/interface.d.ts +49 -0
- package/dist/inference/interface.d.ts.map +1 -0
- package/dist/inference/interface.js +2 -0
- package/dist/inference/interface.js.map +1 -0
- package/dist/inference/local-adapter.d.ts +35 -0
- package/dist/inference/local-adapter.d.ts.map +1 -0
- package/dist/inference/local-adapter.js +311 -0
- package/dist/inference/local-adapter.js.map +1 -0
- package/dist/inference/model-catalog.d.ts +53 -0
- package/dist/inference/model-catalog.d.ts.map +1 -0
- package/dist/inference/model-catalog.js +306 -0
- package/dist/inference/model-catalog.js.map +1 -0
- package/dist/inference/nim-adapter.d.ts +17 -0
- package/dist/inference/nim-adapter.d.ts.map +1 -0
- package/dist/inference/nim-adapter.js +103 -0
- package/dist/inference/nim-adapter.js.map +1 -0
- package/dist/inference/openrouter-adapter.d.ts +17 -0
- package/dist/inference/openrouter-adapter.d.ts.map +1 -0
- package/dist/inference/openrouter-adapter.js +105 -0
- package/dist/inference/openrouter-adapter.js.map +1 -0
- package/dist/inference/sse.d.ts +20 -0
- package/dist/inference/sse.d.ts.map +1 -0
- package/dist/inference/sse.js +91 -0
- package/dist/inference/sse.js.map +1 -0
- package/dist/learning/agent-stats.d.ts +109 -0
- package/dist/learning/agent-stats.d.ts.map +1 -0
- package/dist/learning/agent-stats.js +240 -0
- package/dist/learning/agent-stats.js.map +1 -0
- package/dist/learning/benchmark.d.ts +161 -0
- package/dist/learning/benchmark.d.ts.map +1 -0
- package/dist/learning/benchmark.js +589 -0
- package/dist/learning/benchmark.js.map +1 -0
- package/dist/learning/cost-tracker.d.ts +101 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -0
- package/dist/learning/cost-tracker.js +224 -0
- package/dist/learning/cost-tracker.js.map +1 -0
- package/dist/learning/feedback.d.ts +88 -0
- package/dist/learning/feedback.d.ts.map +1 -0
- package/dist/learning/feedback.js +169 -0
- package/dist/learning/feedback.js.map +1 -0
- package/dist/learning/hybrid-router.d.ts +201 -0
- package/dist/learning/hybrid-router.d.ts.map +1 -0
- package/dist/learning/hybrid-router.js +450 -0
- package/dist/learning/hybrid-router.js.map +1 -0
- package/dist/learning/model-compare.d.ts +76 -0
- package/dist/learning/model-compare.d.ts.map +1 -0
- package/dist/learning/model-compare.js +252 -0
- package/dist/learning/model-compare.js.map +1 -0
- package/dist/learning/model-router.d.ts +68 -0
- package/dist/learning/model-router.d.ts.map +1 -0
- package/dist/learning/model-router.js +140 -0
- package/dist/learning/model-router.js.map +1 -0
- package/dist/learning/pattern-extractor.d.ts +99 -0
- package/dist/learning/pattern-extractor.d.ts.map +1 -0
- package/dist/learning/pattern-extractor.js +310 -0
- package/dist/learning/pattern-extractor.js.map +1 -0
- package/dist/learning/scorer.d.ts +51 -0
- package/dist/learning/scorer.d.ts.map +1 -0
- package/dist/learning/scorer.js +64 -0
- package/dist/learning/scorer.js.map +1 -0
- package/dist/learning/self-improver.d.ts +48 -0
- package/dist/learning/self-improver.d.ts.map +1 -0
- package/dist/learning/self-improver.js +161 -0
- package/dist/learning/self-improver.js.map +1 -0
- package/dist/memory/embedder.d.ts +65 -0
- package/dist/memory/embedder.d.ts.map +1 -0
- package/dist/memory/embedder.js +424 -0
- package/dist/memory/embedder.js.map +1 -0
- package/dist/memory/memory-integration.d.ts +56 -0
- package/dist/memory/memory-integration.d.ts.map +1 -0
- package/dist/memory/memory-integration.js +95 -0
- package/dist/memory/memory-integration.js.map +1 -0
- package/dist/memory/trajectory-store.d.ts +149 -0
- package/dist/memory/trajectory-store.d.ts.map +1 -0
- package/dist/memory/trajectory-store.js +476 -0
- package/dist/memory/trajectory-store.js.map +1 -0
- package/dist/memory/vector-store.d.ts +78 -0
- package/dist/memory/vector-store.d.ts.map +1 -0
- package/dist/memory/vector-store.js +186 -0
- package/dist/memory/vector-store.js.map +1 -0
- package/dist/plugins/agent-plugin.d.ts +73 -0
- package/dist/plugins/agent-plugin.d.ts.map +1 -0
- package/dist/plugins/agent-plugin.js +199 -0
- package/dist/plugins/agent-plugin.js.map +1 -0
- package/dist/plugins/registry.d.ts +61 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +67 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/sandbox/images.d.ts +31 -0
- package/dist/sandbox/images.d.ts.map +1 -0
- package/dist/sandbox/images.js +129 -0
- package/dist/sandbox/images.js.map +1 -0
- package/dist/sandbox/manager.d.ts +134 -0
- package/dist/sandbox/manager.d.ts.map +1 -0
- package/dist/sandbox/manager.js +470 -0
- package/dist/sandbox/manager.js.map +1 -0
- package/dist/sandbox/types.d.ts +113 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sandbox/types.js +107 -0
- package/dist/sandbox/types.js.map +1 -0
- package/dist/security/scanner.d.ts +53 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +271 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/team/config.d.ts +50 -0
- package/dist/team/config.d.ts.map +1 -0
- package/dist/team/config.js +108 -0
- package/dist/team/config.js.map +1 -0
- package/dist/team/memory.d.ts +63 -0
- package/dist/team/memory.d.ts.map +1 -0
- package/dist/team/memory.js +282 -0
- package/dist/team/memory.js.map +1 -0
- package/dist/team/review.d.ts +123 -0
- package/dist/team/review.d.ts.map +1 -0
- package/dist/team/review.js +293 -0
- package/dist/team/review.js.map +1 -0
- package/dist/utils/env.d.ts +19 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +250 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +45 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/web-dashboard/server.d.ts +59 -0
- package/dist/web-dashboard/server.d.ts.map +1 -0
- package/dist/web-dashboard/server.js +418 -0
- package/dist/web-dashboard/server.js.map +1 -0
- package/dist/workflow/registry.d.ts +127 -0
- package/dist/workflow/registry.d.ts.map +1 -0
- package/dist/workflow/registry.js +482 -0
- package/dist/workflow/registry.js.map +1 -0
- package/dist/workflow/templates.d.ts +93 -0
- package/dist/workflow/templates.d.ts.map +1 -0
- package/dist/workflow/templates.js +481 -0
- package/dist/workflow/templates.js.map +1 -0
- package/package.json +78 -0
- package/src/web-dashboard/public/assets/index-B08nDkSB.css +1 -0
- package/src/web-dashboard/public/assets/index-BKL8YOFD.js +135 -0
- package/src/web-dashboard/public/assets/index-BKL8YOFD.js.map +1 -0
- package/src/web-dashboard/public/index.html +13 -0
package/dist/cli/sdk.js
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Command — Create and manage custom agents with the Agent-Baba-D SDK.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* buff sdk scaffold <outDir> <agentName> [description] — Generate a new agent project
|
|
6
|
+
* buff sdk scaffold --template basic-agent ... — Use a minimal template
|
|
7
|
+
* buff sdk scaffold --template agent-pack ... — Multi-agent package template
|
|
8
|
+
* buff sdk templates — List available templates
|
|
9
|
+
* buff sdk info — Show SDK package info
|
|
10
|
+
*
|
|
11
|
+
* The scaffold subcommand creates a complete, ready-to-extend agent package with:
|
|
12
|
+
* - TypeScript configuration
|
|
13
|
+
* - A custom agent class extending Agent
|
|
14
|
+
* - Unit tests using the SDK testing utilities
|
|
15
|
+
* - Package.json with build/test scripts
|
|
16
|
+
*/
|
|
17
|
+
import { Command } from 'commander';
|
|
18
|
+
import { join } from 'node:path';
|
|
19
|
+
import { existsSync } from 'node:fs';
|
|
20
|
+
import { BaseCommand } from './commands.js';
|
|
21
|
+
import { logger } from '../utils/logger.js';
|
|
22
|
+
import { scaffold, listTemplates } from '../agent-sdk/src/scaffold.js';
|
|
23
|
+
import { registerAgent, unregisterAgent } from '../agent-sdk/src/register.js';
|
|
24
|
+
// ─── SDKCommand ─────────────────────────────────────────────────────────────
|
|
25
|
+
export class SDKCommand extends BaseCommand {
|
|
26
|
+
create() {
|
|
27
|
+
const command = new Command('sdk')
|
|
28
|
+
.description('Create and manage custom agents with the Agent-Baba-D SDK');
|
|
29
|
+
// ── scaffold subcommand ─────────────────────────────────────────────
|
|
30
|
+
const scaffoldCmd = new Command('scaffold')
|
|
31
|
+
.description('Generate a new custom agent project')
|
|
32
|
+
.argument('<outDir>', 'Output directory for the new agent project')
|
|
33
|
+
.argument('<agentName>', 'Agent class name in PascalCase (e.g. CodeFormatter)')
|
|
34
|
+
.argument('[description]', 'Description of what the agent does', 'A custom agent')
|
|
35
|
+
.option('-t, --template <template>', 'Template type: basic-agent, full-agent, or agent-pack', 'full-agent')
|
|
36
|
+
.option('--agent-type <type>', 'Agent type identifier for task plans (default: kebab-case of name)')
|
|
37
|
+
.action(async (outDir, agentName, description, options) => {
|
|
38
|
+
await this.handleScaffold(outDir, agentName, description, options);
|
|
39
|
+
});
|
|
40
|
+
command.addCommand(scaffoldCmd);
|
|
41
|
+
// ── templates subcommand ────────────────────────────────────────────
|
|
42
|
+
const templatesCmd = new Command('templates')
|
|
43
|
+
.description('List available scaffold templates')
|
|
44
|
+
.action(() => {
|
|
45
|
+
this.handleListTemplates();
|
|
46
|
+
});
|
|
47
|
+
command.addCommand(templatesCmd);
|
|
48
|
+
// ── info subcommand ────────────────────────────────────────────
|
|
49
|
+
const infoCmd = new Command('info')
|
|
50
|
+
.description('Show SDK package info and version')
|
|
51
|
+
.action(() => {
|
|
52
|
+
this.handleInfo();
|
|
53
|
+
});
|
|
54
|
+
command.addCommand(infoCmd);
|
|
55
|
+
// ── register subcommand ─────────────────────────────────────────
|
|
56
|
+
const registerCmd = new Command('register')
|
|
57
|
+
.description('Register a custom agent with the orchestrator')
|
|
58
|
+
.argument('<className>', 'Exported class name (e.g. CodeFormatter)')
|
|
59
|
+
.argument('<agentType>', 'Agent type for task plans (e.g. code-formatter)')
|
|
60
|
+
.argument('<sourceModule>', 'Import module path relative to orchestrator.ts (e.g. ./agents/my-agent.js)')
|
|
61
|
+
.option('-i, --icon <emoji>', 'Emoji icon for the agent (default: 🧩)', '🧩')
|
|
62
|
+
.option('--orchestrator-path <path>', 'Path to orchestrator.ts (auto-detected if not set)')
|
|
63
|
+
.action(async (className, agentType, sourceModule, options) => {
|
|
64
|
+
await this.handleRegister(className, agentType, sourceModule, options);
|
|
65
|
+
});
|
|
66
|
+
command.addCommand(registerCmd);
|
|
67
|
+
// ── unregister subcommand ───────────────────────────────────────
|
|
68
|
+
const unregisterCmd = new Command('unregister')
|
|
69
|
+
.description('Remove a custom agent from the orchestrator')
|
|
70
|
+
.argument('<agentType>', 'Agent type to remove (e.g. code-formatter)')
|
|
71
|
+
.option('--orchestrator-path <path>', 'Path to orchestrator.ts (auto-detected if not set)')
|
|
72
|
+
.action(async (agentType, options) => {
|
|
73
|
+
await this.handleUnregister(agentType, options);
|
|
74
|
+
});
|
|
75
|
+
command.addCommand(unregisterCmd);
|
|
76
|
+
return command;
|
|
77
|
+
}
|
|
78
|
+
// ─── Handlers ─────────────────────────────────────────────────────────
|
|
79
|
+
async handleScaffold(outDir, agentName, description, options) {
|
|
80
|
+
const resolvedDir = join(process.cwd(), outDir);
|
|
81
|
+
// Validate template
|
|
82
|
+
const validTemplates = listTemplates().map((t) => t.name);
|
|
83
|
+
const template = options.template || 'full-agent';
|
|
84
|
+
if (!validTemplates.includes(template)) {
|
|
85
|
+
logger.error(`Unknown template: "${template}". Valid templates: ${validTemplates.join(', ')}`);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Validate agent name
|
|
89
|
+
if (!agentName.match(/^[A-Z][a-zA-Z0-9]*$/)) {
|
|
90
|
+
logger.error(`Invalid agent name "${agentName}". Must be in PascalCase (e.g. "CodeFormatter", "MyAgent").`);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (existsSync(resolvedDir)) {
|
|
94
|
+
logger.error(`Output directory already exists: ${resolvedDir}`);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
logger.info(`Generating ${template} agent: ${agentName}...`);
|
|
98
|
+
try {
|
|
99
|
+
const files = scaffold({
|
|
100
|
+
outDir: resolvedDir,
|
|
101
|
+
agentName,
|
|
102
|
+
description: description || 'A custom agent',
|
|
103
|
+
template: template,
|
|
104
|
+
agentType: options.agentType,
|
|
105
|
+
});
|
|
106
|
+
logger.success(`Created ${files.length} files in ${outDir}/`);
|
|
107
|
+
console.log('');
|
|
108
|
+
for (const file of files) {
|
|
109
|
+
const relativePath = file.replace(resolvedDir, '').replace(/^\//, '');
|
|
110
|
+
console.log(` 📄 ${relativePath}`);
|
|
111
|
+
}
|
|
112
|
+
console.log('');
|
|
113
|
+
logger.success('Next steps:');
|
|
114
|
+
console.log('');
|
|
115
|
+
console.log(` cd ${outDir}`);
|
|
116
|
+
console.log(' npm install');
|
|
117
|
+
console.log(' npm run build');
|
|
118
|
+
console.log(' npm test');
|
|
119
|
+
console.log('');
|
|
120
|
+
logger.info('To register this agent with the orchestrator, add it to the createAgent() switch in src/agents/orchestrator.ts');
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
124
|
+
logger.error(`Failed to scaffold agent: ${msg}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
handleListTemplates() {
|
|
128
|
+
const templates = listTemplates();
|
|
129
|
+
logger.highlight('Available scaffold templates:');
|
|
130
|
+
console.log('');
|
|
131
|
+
for (const t of templates) {
|
|
132
|
+
console.log(` ${t.name}`);
|
|
133
|
+
console.log(` ${t.description}`);
|
|
134
|
+
console.log('');
|
|
135
|
+
}
|
|
136
|
+
logger.info('Use: buff sdk scaffold <outDir> <agentName> [description] --template <name>');
|
|
137
|
+
}
|
|
138
|
+
handleInfo() {
|
|
139
|
+
logger.highlight('@agent-baba-d/sdk');
|
|
140
|
+
console.log('');
|
|
141
|
+
console.log(' Build custom agents for the Agent-Baba-D multi-agent system.');
|
|
142
|
+
console.log('');
|
|
143
|
+
console.log(' Subcommands:');
|
|
144
|
+
console.log(' scaffold Generate a new custom agent project');
|
|
145
|
+
console.log(' templates List available scaffold templates');
|
|
146
|
+
console.log(' info Show this information');
|
|
147
|
+
console.log('');
|
|
148
|
+
console.log(' Entry points:');
|
|
149
|
+
console.log(' @agent-baba-d/sdk Base Agent class + core types');
|
|
150
|
+
console.log(' @agent-baba-d/sdk/testing Testing utilities');
|
|
151
|
+
console.log('');
|
|
152
|
+
console.log(' API Docs: https://github.com/imdheerajKube/agent-baba-d');
|
|
153
|
+
}
|
|
154
|
+
async handleRegister(className, agentType, sourceModule, options) {
|
|
155
|
+
// Validate className (must be PascalCase)
|
|
156
|
+
if (!className.match(/^[A-Z][a-zA-Z0-9]*$/)) {
|
|
157
|
+
logger.error(`Invalid class name "${className}". Must be in PascalCase (e.g. "CodeFormatter").`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// Validate agentType (must be kebab-case)
|
|
161
|
+
if (!agentType.match(/^[a-z][a-z0-9-]*$/)) {
|
|
162
|
+
logger.error(`Invalid agent type "${agentType}". Must be kebab-case (e.g. "code-formatter").`);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
logger.info(`Registering agent '${agentType}' (${className}) from ${sourceModule}...`);
|
|
166
|
+
const result = registerAgent({
|
|
167
|
+
sourceModule,
|
|
168
|
+
className,
|
|
169
|
+
agentType,
|
|
170
|
+
icon: options.icon,
|
|
171
|
+
orchestratorPath: options.orchestratorPath,
|
|
172
|
+
});
|
|
173
|
+
if (result.success) {
|
|
174
|
+
logger.success(result.message);
|
|
175
|
+
if (result.modifiedFiles.length > 0) {
|
|
176
|
+
console.log('');
|
|
177
|
+
logger.success('Next steps:');
|
|
178
|
+
console.log('');
|
|
179
|
+
console.log(' Add the agent to a task plan in your workflow or CLI command:');
|
|
180
|
+
console.log(` { agentType: '${agentType}', description: '...', dependsOn: [] }`);
|
|
181
|
+
console.log('');
|
|
182
|
+
console.log(' Or use it directly in a goal:');
|
|
183
|
+
console.log(` buff execute "Run ${agentType} on the project"`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
logger.error(result.message);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
async handleUnregister(agentType, options) {
|
|
191
|
+
logger.info(`Unregistering agent '${agentType}'...`);
|
|
192
|
+
const result = unregisterAgent({
|
|
193
|
+
agentType,
|
|
194
|
+
orchestratorPath: options.orchestratorPath,
|
|
195
|
+
});
|
|
196
|
+
if (result.success) {
|
|
197
|
+
logger.success(result.message);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
logger.error(result.message);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/cli/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stats command — View usage statistics and cost tracking.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* buff stats — Show all stats summary
|
|
6
|
+
* buff stats cost — Show cost tracking details
|
|
7
|
+
* buff stats cost --clear — Reset cost tracking data
|
|
8
|
+
* buff stats history — Show conversation history stats
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
import { BaseCommand } from './commands.js';
|
|
12
|
+
export declare class StatsCommand extends BaseCommand {
|
|
13
|
+
create(): Command;
|
|
14
|
+
private showCost;
|
|
15
|
+
private showHistoryStats;
|
|
16
|
+
private showAllStats;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,IAAI,OAAO;YA+BH,QAAQ;IAWtB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,YAAY;CAYrB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stats command — View usage statistics and cost tracking.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* buff stats — Show all stats summary
|
|
6
|
+
* buff stats cost — Show cost tracking details
|
|
7
|
+
* buff stats cost --clear — Reset cost tracking data
|
|
8
|
+
* buff stats history — Show conversation history stats
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
import { BaseCommand } from './commands.js';
|
|
12
|
+
import { getCostTracker } from '../learning/cost-tracker.js';
|
|
13
|
+
import { getChatHistory } from '../context/history.js';
|
|
14
|
+
import { logger } from '../utils/logger.js';
|
|
15
|
+
export class StatsCommand extends BaseCommand {
|
|
16
|
+
create() {
|
|
17
|
+
const command = new Command('stats')
|
|
18
|
+
.description('View usage statistics and cost tracking');
|
|
19
|
+
// ── cost ─────────────────────────────────────────────────────────────
|
|
20
|
+
const costCmd = new Command('cost')
|
|
21
|
+
.description('Show API cost tracking details')
|
|
22
|
+
.option('--clear', 'Reset all cost tracking data')
|
|
23
|
+
.action(async (options) => {
|
|
24
|
+
await this.showCost(options);
|
|
25
|
+
});
|
|
26
|
+
command.addCommand(costCmd);
|
|
27
|
+
// ── history ──────────────────────────────────────────────────────────
|
|
28
|
+
const historyCmd = new Command('history')
|
|
29
|
+
.description('Show conversation history statistics')
|
|
30
|
+
.action(() => {
|
|
31
|
+
this.showHistoryStats();
|
|
32
|
+
});
|
|
33
|
+
command.addCommand(historyCmd);
|
|
34
|
+
// Default: show all stats
|
|
35
|
+
command.action(() => {
|
|
36
|
+
this.showAllStats();
|
|
37
|
+
});
|
|
38
|
+
return command;
|
|
39
|
+
}
|
|
40
|
+
async showCost(options) {
|
|
41
|
+
if (options?.clear) {
|
|
42
|
+
getCostTracker().clear();
|
|
43
|
+
logger.success('Cost tracking data cleared.');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const tracker = getCostTracker();
|
|
47
|
+
console.log(`\n${tracker.formatSummary()}`);
|
|
48
|
+
}
|
|
49
|
+
showHistoryStats() {
|
|
50
|
+
const history = getChatHistory();
|
|
51
|
+
const total = history.count();
|
|
52
|
+
const recent = history.getRecentSessions(7);
|
|
53
|
+
logger.highlight(`${'═'.repeat(60)}`);
|
|
54
|
+
logger.highlight(' 📝 Conversation History');
|
|
55
|
+
logger.highlight(`${'═'.repeat(60)}`);
|
|
56
|
+
console.log(`\n Total sessions: ${total}`);
|
|
57
|
+
console.log(` Recent (7 days): ${recent.length}`);
|
|
58
|
+
if (recent.length > 0) {
|
|
59
|
+
console.log(`\n Recent sessions:`);
|
|
60
|
+
for (const session of recent.slice(0, 10)) {
|
|
61
|
+
console.log(history.formatSessionSummary(session));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
console.log('');
|
|
65
|
+
}
|
|
66
|
+
showAllStats() {
|
|
67
|
+
this.showHistoryStats();
|
|
68
|
+
const tracker = getCostTracker();
|
|
69
|
+
const summary = tracker.getSummary();
|
|
70
|
+
if (summary.totalRequests > 0) {
|
|
71
|
+
console.log(`\n${tracker.formatSummary()}`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
logger.info('No cost data yet. Start using providers to track costs.');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team command — Team collaboration with shared memory, config, and review workflow.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* buff team init [name] — Initialize team config in working directory
|
|
6
|
+
* buff team init --repo <url> — Init with remote team repository
|
|
7
|
+
* buff team join <repo-url> — Clone and join an existing team repo
|
|
8
|
+
* buff team sync — Sync team memory with remote (pull + push)
|
|
9
|
+
* buff team status — Show team configuration and memory status
|
|
10
|
+
* buff team share — Share local trajectories with team
|
|
11
|
+
* buff team review list — List all review bundles
|
|
12
|
+
* buff team review show <id> — Show a specific review bundle
|
|
13
|
+
* buff team review approve <id> — Approve a review
|
|
14
|
+
* buff team review reject <id> [reason] — Reject a review
|
|
15
|
+
* buff team review merge <id> — Merge an approved review into working dir
|
|
16
|
+
* buff team review create <title> <goal> — Create a review bundle from files
|
|
17
|
+
*
|
|
18
|
+
* The team system enables multiple developers to:
|
|
19
|
+
* - Share agent execution trajectories via git
|
|
20
|
+
* - Use project-level .buffconfig.json for shared provider defaults
|
|
21
|
+
* - Review agent-generated changes before applying them
|
|
22
|
+
* - Collaborate on workflow templates and coding patterns
|
|
23
|
+
*/
|
|
24
|
+
import { Command } from 'commander';
|
|
25
|
+
import { BaseCommand } from './commands.js';
|
|
26
|
+
export declare class TeamCommand extends BaseCommand {
|
|
27
|
+
create(): Command;
|
|
28
|
+
private handleInit;
|
|
29
|
+
private handleJoin;
|
|
30
|
+
private handleSync;
|
|
31
|
+
private handleStatus;
|
|
32
|
+
private handleShare;
|
|
33
|
+
private handleReviewList;
|
|
34
|
+
private handleReviewShow;
|
|
35
|
+
private handleReviewApprove;
|
|
36
|
+
private handleReviewRequestChanges;
|
|
37
|
+
private handleReviewReject;
|
|
38
|
+
private handleReviewMerge;
|
|
39
|
+
private handleReviewCreate;
|
|
40
|
+
private reviewStatusIcon;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=team.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/cli/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA4B5C,qBAAa,WAAY,SAAQ,WAAW;IAC1C,MAAM,IAAI,OAAO;YAuHH,UAAU;YAqDV,UAAU;YAkCV,UAAU;YAwCV,YAAY;YA0EZ,WAAW;YAqBX,gBAAgB;YA0BhB,gBAAgB;YAgDhB,mBAAmB;YAmBnB,0BAA0B;YAe1B,kBAAkB;YAQlB,iBAAiB;YAQjB,kBAAkB;IAsDhC,OAAO,CAAC,gBAAgB;CAUzB"}
|