@kb-labs/agent-entry 2.118.2 → 2.119.0-canary.0c078654e
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/dist/cli/commands/diff.js.map +1 -1
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/quality-report.js.map +1 -1
- package/dist/cli/commands/rollback.js.map +1 -1
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/trace-context.js.map +1 -1
- package/dist/cli/commands/trace-diagnose.js.map +1 -1
- package/dist/cli/commands/trace-event-normalizer.js.map +1 -1
- package/dist/cli/commands/trace-filter.js.map +1 -1
- package/dist/cli/commands/trace-iteration.js.map +1 -1
- package/dist/cli/commands/trace-stats.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/rest/handlers/approve-handler.js.map +1 -1
- package/dist/rest/handlers/approve-session-plan-handler.js.map +1 -1
- package/dist/rest/handlers/correct-handler.js +29 -112
- package/dist/rest/handlers/correct-handler.js.map +1 -1
- package/dist/rest/handlers/create-session-handler.js.map +1 -1
- package/dist/rest/handlers/execute-session-plan-handler.js +56 -118
- package/dist/rest/handlers/execute-session-plan-handler.js.map +1 -1
- package/dist/rest/handlers/generate-spec-handler.js +50 -116
- package/dist/rest/handlers/generate-spec-handler.js.map +1 -1
- package/dist/rest/handlers/get-file-diff-handler.js.map +1 -1
- package/dist/rest/handlers/get-session-handler.js.map +1 -1
- package/dist/rest/handlers/get-session-plan-handler.js.map +1 -1
- package/dist/rest/handlers/get-session-turns-handler.js.map +1 -1
- package/dist/rest/handlers/get-spec-handler.js.map +1 -1
- package/dist/rest/handlers/list-file-changes-handler.js.map +1 -1
- package/dist/rest/handlers/list-sessions-handler.js.map +1 -1
- package/dist/rest/handlers/rollback-handler.js.map +1 -1
- package/dist/rest/handlers/run-handler.js +56 -118
- package/dist/rest/handlers/run-handler.js.map +1 -1
- package/dist/rest/handlers/sessions-handler.js.map +1 -1
- package/dist/rest/handlers/status-handler.js +29 -112
- package/dist/rest/handlers/status-handler.js.map +1 -1
- package/dist/rest/handlers/stop-handler.js +29 -112
- package/dist/rest/handlers/stop-handler.js.map +1 -1
- package/dist/ws/session-stream-handler.js +70 -180
- package/dist/ws/session-stream-handler.js.map +1 -1
- package/package.json +14 -14
- package/dist/manifest.json +0 -685
- package/dist/widgets/117.js +0 -25
- package/dist/widgets/165.js +0 -1
- package/dist/widgets/326.js +0 -1
- package/dist/widgets/370.js +0 -1
- package/dist/widgets/405.js +0 -1
- package/dist/widgets/46.js +0 -445
- package/dist/widgets/50.js +0 -1
- package/dist/widgets/546.js +0 -1
- package/dist/widgets/62.js +0 -96
- package/dist/widgets/648.js +0 -1
- package/dist/widgets/669.js +0 -1
- package/dist/widgets/707.js +0 -1
- package/dist/widgets/775.js +0 -1
- package/dist/widgets/78.js +0 -1
- package/dist/widgets/875.js +0 -25
- package/dist/widgets/945.js +0 -1
- package/dist/widgets/968.js +0 -9
- package/dist/widgets/__federation_expose_AgentsPage.js +0 -1
- package/dist/widgets/mf-manifest.json +0 -229
- package/dist/widgets/mf-stats.json +0 -256
- package/dist/widgets/remoteEntry.js +0 -7
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/manifest.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * KB Labs Agent Plugin - Manifest V3\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n AGENTS_BASE_PATH,\n AGENTS_WS_BASE_PATH,\n AGENTS_ROUTES,\n AGENTS_WS_CHANNELS,\n} from '@kb-labs/agent-contracts';\n\n/**\n * Command flags for agent:run (unified command with modes)\n */\nconst runFlags = {\n task: {\n type: 'string',\n description: 'Task description',\n },\n mode: {\n type: 'string',\n description: 'Agent mode: execute (default), plan, edit, debug',\n default: 'execute',\n },\n 'session-id': {\n type: 'string',\n description: 'Session ID (auto-generated if not provided)',\n },\n complexity: {\n type: 'string',\n description: 'Task complexity (for plan mode): simple, medium, complex',\n },\n approve: {\n type: 'boolean',\n description: 'Auto-approve generated plan (supported with --mode=plan)',\n default: false,\n },\n execute: {\n type: 'boolean',\n description: 'After plan is approved, immediately execute it (use with --mode=plan --approve)',\n default: false,\n },\n files: {\n type: 'array',\n description: 'Target files (for edit mode)',\n },\n trace: {\n type: 'string',\n description: 'Trace file path (for debug mode)',\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying (for edit mode)',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Verbose output',\n default: false,\n },\n debug: {\n type: 'boolean',\n description: 'Enable debug mode: emit full prompts and responses as llm:debug events',\n default: false,\n },\n timeout: {\n type: 'number',\n description: 'Abort agent execution after this many seconds (exit code 124). No timeout by default.',\n },\n budget: {\n type: 'number',\n description: 'Override token budget (e.g. 300000 for heavy tasks). Overrides config value.',\n },\n json: {\n type: 'boolean',\n description: 'Output structured JSON result instead of human-readable output.',\n },\n} as const;\n\n/**\n * Plugin permissions\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['.agent-memory/**', '**/*'], // Allow filesystem operations in working dir\n })\n .withPlatform({\n llm: true, // Full LLM access for agent execution\n cache: ['agent:'], // Cache namespace prefix\n analytics: true, // Track agent usage\n })\n .withQuotas({\n timeoutMs: 1800000, // 30 min for complex tasks\n memoryMb: 1024,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/agent',\n version: '0.1.0',\n\n display: {\n name: 'Agent System',\n description: 'Autonomous agents, tool calling, and task orchestration',\n tags: ['agent', 'autonomous', 'llm', 'orchestration'],\n },\n\n // Configuration lives under kb.config.json -> agents\n configSection: 'agents',\n\n platform: {\n requires: ['llm'],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'agent', describe: 'Autonomous agent commands' },\n { path: 'agent trace', describe: 'Agent trace debugging commands' },\n { path: 'agent quality', describe: 'Agent quality control commands' },\n ],\n commands: [\n {\n path: 'agent run',\n category: 'Run',\n describe: 'Run agent task (execute, plan, edit, or debug)',\n operationType: 'execute' as const,\n longDescription:\n 'Unified agent command with multiple modes: ' +\n 'execute (default) - run task immediately, ' +\n 'plan - generate execution plan without running, ' +\n 'edit - modify existing files, ' +\n 'debug - analyze errors with trace context. ' +\n 'Supports filesystem, search, shell, memory, and user interaction tools.',\n\n handler: './cli/commands/run.js#default',\n\n flags: defineCommandFlags(runFlags),\n\n examples: [\n 'kb agent run --task=\"Create analytics system\"',\n 'kb agent run --mode=plan --task=\"Add auth\" --complexity=complex',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve --execute',\n 'kb agent run --mode=edit --task=\"Fix bug\" --files src/auth.ts',\n 'kb agent run --mode=debug --task=\"Why crash?\" --trace .kb/traces/trace-123.json',\n 'kb agent run --task=\"Refactor auth module\" --timeout=120',\n ],\n },\n // Trace debugging commands (AI-friendly)\n {\n path: 'agent trace stats',\n category: 'Trace',\n describe: 'Show trace statistics: tokens, cost, timing',\n operationType: 'read' as const,\n longDescription:\n 'Analyze trace file to show comprehensive statistics: ' +\n 'iterations, LLM calls, token usage, tool usage, timing, and cost. ' +\n 'Supports --json flag for AI agent consumption.',\n\n handler: './cli/commands/trace-stats.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace stats --task-id=task-2026-01-29',\n 'kb agent trace stats --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace filter',\n category: 'Trace',\n describe: 'Filter trace events by type for debugging',\n operationType: 'read' as const,\n longDescription:\n 'Filter trace events by type (llm:call, tool:execution, error:captured, etc.). ' +\n 'Use this to debug specific aspects of agent execution. ' +\n 'Supports --json flag for programmatic access.',\n\n handler: './cli/commands/trace-filter.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n type: { type: 'string', description: 'Event type to filter (llm:call, tool:execution, etc.)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace filter --task-id=task-123 --type=llm:call',\n 'kb agent trace filter --task-id=task-123 --type=error:captured --json',\n ],\n },\n {\n path: 'agent trace iteration',\n category: 'Trace',\n describe: 'View all events for a specific iteration',\n operationType: 'read' as const,\n longDescription:\n 'Show all trace events for a specific iteration number. ' +\n 'Useful for debugging what happened in a particular loop iteration. ' +\n 'Includes summary statistics and event timeline.',\n\n handler: './cli/commands/trace-iteration.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Iteration number (1-based)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace iteration --task-id=task-123 --iteration=3',\n 'kb agent trace iteration --task-id=task-123 --iteration=5 --json',\n ],\n },\n {\n path: 'agent trace context',\n category: 'Trace',\n describe: 'Inspect context window and truncations per iteration',\n operationType: 'read' as const,\n longDescription:\n 'Shows the full context timeline for debugging agent behavior. ' +\n 'For each LLM call: what messages are in the sliding window, ' +\n 'what was truncated/dropped, and what the LLM responded with.',\n\n handler: './cli/commands/trace-context.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Filter to specific iteration' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace context --task-id=task-123',\n 'kb agent trace context --task-id=task-123 --iteration=3',\n 'kb agent trace context --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace diagnose',\n category: 'Trace',\n describe: 'Diagnose what went wrong in an agent run',\n operationType: 'analyze' as const,\n longDescription:\n 'Comprehensive diagnostic report for agent execution. ' +\n 'Analyzes errors, context window health (drops, truncations), ' +\n 'tool failures, LLM reasoning text, loop detection, and quality indicators. ' +\n 'One command to understand any agent issue.',\n\n handler: './cli/commands/trace-diagnose.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace diagnose --task-id=task-123',\n 'kb agent trace diagnose --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent quality report',\n category: 'Quality',\n describe: 'Show quality control report for recent agent runs',\n operationType: 'analyze' as const,\n longDescription:\n 'Aggregates agent KPI telemetry from analytics buffer and shows ' +\n 'quality, token usage, tool efficiency, drift, and regression alerts. ' +\n 'Useful for continuous quality control and cost/performance monitoring.',\n\n handler: './cli/commands/quality-report.js#default',\n\n flags: defineCommandFlags({\n days: { type: 'number', description: 'Lookback period in days', default: 1 },\n limit: { type: 'number', description: 'Max KPI runs to analyze', default: 200 },\n 'session-id': { type: 'string', description: 'Filter by session ID' },\n json: { type: 'boolean', description: 'Output JSON for automation', default: false },\n }),\n\n examples: [\n 'kb agent quality report',\n 'kb agent quality report --days=7',\n 'kb agent quality report --session-id=session-123',\n 'kb agent quality report --days=3 --json',\n ],\n },\n // File change history commands\n {\n path: 'agent history',\n category: 'History',\n describe: 'Show file change history for agent sessions',\n operationType: 'read' as const,\n longDescription:\n 'View file changes made by agents during execution. ' +\n 'Filter by session, file, or agent. Shows timestamps, operations, and change metadata.',\n\n handler: './cli/commands/history.js#default',\n\n flags: defineCommandFlags({\n 'session-id': { type: 'string', description: 'Session ID to filter by' },\n file: { type: 'string', description: 'File path to filter by' },\n 'agent-id': { type: 'string', description: 'Agent ID to filter by' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent history',\n 'kb agent history --session-id=session-123',\n 'kb agent history --file=src/index.ts',\n 'kb agent history --agent-id=agent-abc --json',\n ],\n },\n {\n path: 'agent diff',\n category: 'History',\n describe: 'Show diff for specific file change',\n operationType: 'read' as const,\n longDescription:\n 'Display line-by-line diff for a specific file change. ' +\n 'Shows additions, deletions, and modifications with context.',\n\n handler: './cli/commands/diff.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to show diff for' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent diff --change-id=change-abc123',\n 'kb agent diff --change-id=change-abc123 --json',\n ],\n },\n {\n path: 'agent rollback',\n category: 'History',\n describe: 'Rollback file changes made by agents',\n operationType: 'mutate' as const,\n longDescription:\n 'Rollback file changes made by agents. ' +\n 'Supports rollback by change ID, file path, agent ID, session, or timestamp. ' +\n 'Use --dry-run to preview changes before applying.',\n\n handler: './cli/commands/rollback.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to rollback' },\n file: { type: 'string', description: 'File path to rollback all changes for' },\n 'agent-id': { type: 'string', description: 'Agent ID to rollback all changes by' },\n 'session-id': { type: 'string', description: 'Session ID to rollback all changes in' },\n after: { type: 'string', description: 'Rollback all changes after timestamp (ISO 8601)' },\n force: { type: 'boolean', description: 'Force rollback even with conflicts', default: false },\n 'dry-run': { type: 'boolean', description: 'Preview rollback without applying', default: false },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent rollback --change-id=change-abc123',\n 'kb agent rollback --file=src/index.ts --dry-run',\n 'kb agent rollback --agent-id=agent-abc',\n 'kb agent rollback --session-id=session-123',\n 'kb agent rollback --after=\"2026-02-16T10:00:00Z\" --json',\n ],\n },\n ],\n },\n\n capabilities: [],\n\n permissions: pluginPermissions,\n\n // REST API for Agent UI\n rest: {\n basePath: AGENTS_BASE_PATH,\n defaults: {\n timeoutMs: 1800000, // 30 min for long-running tasks\n },\n routes: [\n {\n method: 'POST',\n path: AGENTS_ROUTES.RUN,\n description: 'Start a new agent run',\n handler: './rest/handlers/run-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.RUN_STATUS,\n description: 'Get status of a run',\n handler: './rest/handlers/status-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.CORRECT,\n description: 'Send correction to running agent(s)',\n handler: './rest/handlers/correct-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.STOP,\n description: 'Stop a running agent',\n handler: './rest/handlers/stop-handler.js',\n security: ['none'],\n },\n // Session management routes\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSIONS_LIST,\n description: 'List all sessions',\n handler: './rest/handlers/list-sessions-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_GET,\n description: 'Get session details',\n handler: './rest/handlers/get-session-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_CREATE,\n description: 'Create a new session',\n handler: './rest/handlers/create-session-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_TURNS,\n description: 'Get session turns (turn-based UI)',\n handler: './rest/handlers/get-session-turns-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_GET,\n description: 'Get current session plan',\n handler: './rest/handlers/get-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_APPROVE,\n description: 'Approve current session plan',\n handler: './rest/handlers/approve-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_EXECUTE,\n description: 'Execute approved session plan',\n handler: './rest/handlers/execute-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC,\n description: 'Generate detailed spec from approved plan',\n handler: './rest/handlers/generate-spec-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC_GET,\n description: 'Get current session spec',\n handler: './rest/handlers/get-spec-handler.js',\n security: ['none'],\n },\n // File change history routes (rollback & approve)\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGES,\n description: 'List file changes for session (optionally filtered by runId)',\n handler: './rest/handlers/list-file-changes-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGE_DIFF,\n description: 'Get unified diff for a specific file change',\n handler: './rest/handlers/get-file-diff-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_ROLLBACK,\n description: 'Rollback file changes for a session/run',\n handler: './rest/handlers/rollback-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_APPROVE,\n description: 'Approve file changes for a session/run',\n handler: './rest/handlers/approve-handler.js',\n security: ['none'],\n },\n ],\n },\n\n // WebSocket for real-time event streaming\n ws: {\n basePath: AGENTS_WS_BASE_PATH,\n defaults: {\n auth: 'none',\n idleTimeoutMs: 3600000, // 1 hour\n },\n channels: [\n {\n path: AGENTS_WS_CHANNELS.SESSION_STREAM,\n description: 'Persistent session stream (all runs in session)',\n handler: './ws/session-stream-handler.js',\n auth: 'none',\n },\n ],\n },\n\n artifacts: [\n {\n id: 'agent.memory.json',\n pathTemplate: '.agent-memory/memory.json',\n description: 'Persistent agent memory (facts, sessions, project context).',\n },\n ],\n\n studio: {\n version: 2 as const,\n remoteName: 'agentPlugin',\n pages: [\n {\n id: 'agent.overview',\n title: 'Agent',\n icon: 'RobotOutlined',\n route: '/p/agent',\n entry: './AgentsPage',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'agent',\n label: 'Agent',\n icon: 'RobotOutlined',\n target: 'agent.overview',\n order: 30,\n },\n ],\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/agents/entry/src/manifest.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * KB Labs Agent Plugin - Manifest V3\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n AGENTS_BASE_PATH,\n AGENTS_WS_BASE_PATH,\n AGENTS_ROUTES,\n AGENTS_WS_CHANNELS,\n} from '@kb-labs/agent-contracts';\n\n/**\n * Command flags for agent:run (unified command with modes)\n */\nconst runFlags = {\n task: {\n type: 'string',\n description: 'Task description',\n },\n mode: {\n type: 'string',\n description: 'Agent mode: execute (default), plan, edit, debug',\n default: 'execute',\n },\n 'session-id': {\n type: 'string',\n description: 'Session ID (auto-generated if not provided)',\n },\n complexity: {\n type: 'string',\n description: 'Task complexity (for plan mode): simple, medium, complex',\n },\n approve: {\n type: 'boolean',\n description: 'Auto-approve generated plan (supported with --mode=plan)',\n default: false,\n },\n execute: {\n type: 'boolean',\n description: 'After plan is approved, immediately execute it (use with --mode=plan --approve)',\n default: false,\n },\n files: {\n type: 'array',\n description: 'Target files (for edit mode)',\n },\n trace: {\n type: 'string',\n description: 'Trace file path (for debug mode)',\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying (for edit mode)',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Verbose output',\n default: false,\n },\n debug: {\n type: 'boolean',\n description: 'Enable debug mode: emit full prompts and responses as llm:debug events',\n default: false,\n },\n timeout: {\n type: 'number',\n description: 'Abort agent execution after this many seconds (exit code 124). No timeout by default.',\n },\n budget: {\n type: 'number',\n description: 'Override token budget (e.g. 300000 for heavy tasks). Overrides config value.',\n },\n json: {\n type: 'boolean',\n description: 'Output structured JSON result instead of human-readable output.',\n },\n} as const;\n\n/**\n * Plugin permissions\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['.agent-memory/**', '**/*'], // Allow filesystem operations in working dir\n })\n .withPlatform({\n llm: true, // Full LLM access for agent execution\n cache: ['agent:'], // Cache namespace prefix\n analytics: true, // Track agent usage\n })\n .withQuotas({\n timeoutMs: 1800000, // 30 min for complex tasks\n memoryMb: 1024,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/agent',\n version: '0.1.0',\n\n display: {\n name: 'Agent System',\n description: 'Autonomous agents, tool calling, and task orchestration',\n tags: ['agent', 'autonomous', 'llm', 'orchestration'],\n },\n\n // Configuration lives under kb.config.json -> agents\n configSection: 'agents',\n\n platform: {\n requires: ['llm'],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'agent', describe: 'Autonomous agent commands' },\n { path: 'agent trace', describe: 'Agent trace debugging commands' },\n { path: 'agent quality', describe: 'Agent quality control commands' },\n ],\n commands: [\n {\n path: 'agent run',\n category: 'Run',\n describe: 'Run agent task (execute, plan, edit, or debug)',\n operationType: 'execute' as const,\n longDescription:\n 'Unified agent command with multiple modes: ' +\n 'execute (default) - run task immediately, ' +\n 'plan - generate execution plan without running, ' +\n 'edit - modify existing files, ' +\n 'debug - analyze errors with trace context. ' +\n 'Supports filesystem, search, shell, memory, and user interaction tools.',\n\n handler: './cli/commands/run.js#default',\n\n flags: defineCommandFlags(runFlags),\n\n examples: [\n 'kb agent run --task=\"Create analytics system\"',\n 'kb agent run --mode=plan --task=\"Add auth\" --complexity=complex',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve --execute',\n 'kb agent run --mode=edit --task=\"Fix bug\" --files src/auth.ts',\n 'kb agent run --mode=debug --task=\"Why crash?\" --trace .kb/traces/trace-123.json',\n 'kb agent run --task=\"Refactor auth module\" --timeout=120',\n ],\n },\n // Trace debugging commands (AI-friendly)\n {\n path: 'agent trace stats',\n category: 'Trace',\n describe: 'Show trace statistics: tokens, cost, timing',\n operationType: 'read' as const,\n longDescription:\n 'Analyze trace file to show comprehensive statistics: ' +\n 'iterations, LLM calls, token usage, tool usage, timing, and cost. ' +\n 'Supports --json flag for AI agent consumption.',\n\n handler: './cli/commands/trace-stats.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace stats --task-id=task-2026-01-29',\n 'kb agent trace stats --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace filter',\n category: 'Trace',\n describe: 'Filter trace events by type for debugging',\n operationType: 'read' as const,\n longDescription:\n 'Filter trace events by type (llm:call, tool:execution, error:captured, etc.). ' +\n 'Use this to debug specific aspects of agent execution. ' +\n 'Supports --json flag for programmatic access.',\n\n handler: './cli/commands/trace-filter.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n type: { type: 'string', description: 'Event type to filter (llm:call, tool:execution, etc.)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace filter --task-id=task-123 --type=llm:call',\n 'kb agent trace filter --task-id=task-123 --type=error:captured --json',\n ],\n },\n {\n path: 'agent trace iteration',\n category: 'Trace',\n describe: 'View all events for a specific iteration',\n operationType: 'read' as const,\n longDescription:\n 'Show all trace events for a specific iteration number. ' +\n 'Useful for debugging what happened in a particular loop iteration. ' +\n 'Includes summary statistics and event timeline.',\n\n handler: './cli/commands/trace-iteration.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Iteration number (1-based)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace iteration --task-id=task-123 --iteration=3',\n 'kb agent trace iteration --task-id=task-123 --iteration=5 --json',\n ],\n },\n {\n path: 'agent trace context',\n category: 'Trace',\n describe: 'Inspect context window and truncations per iteration',\n operationType: 'read' as const,\n longDescription:\n 'Shows the full context timeline for debugging agent behavior. ' +\n 'For each LLM call: what messages are in the sliding window, ' +\n 'what was truncated/dropped, and what the LLM responded with.',\n\n handler: './cli/commands/trace-context.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Filter to specific iteration' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace context --task-id=task-123',\n 'kb agent trace context --task-id=task-123 --iteration=3',\n 'kb agent trace context --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace diagnose',\n category: 'Trace',\n describe: 'Diagnose what went wrong in an agent run',\n operationType: 'analyze' as const,\n longDescription:\n 'Comprehensive diagnostic report for agent execution. ' +\n 'Analyzes errors, context window health (drops, truncations), ' +\n 'tool failures, LLM reasoning text, loop detection, and quality indicators. ' +\n 'One command to understand any agent issue.',\n\n handler: './cli/commands/trace-diagnose.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace diagnose --task-id=task-123',\n 'kb agent trace diagnose --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent quality report',\n category: 'Quality',\n describe: 'Show quality control report for recent agent runs',\n operationType: 'analyze' as const,\n longDescription:\n 'Aggregates agent KPI telemetry from analytics buffer and shows ' +\n 'quality, token usage, tool efficiency, drift, and regression alerts. ' +\n 'Useful for continuous quality control and cost/performance monitoring.',\n\n handler: './cli/commands/quality-report.js#default',\n\n flags: defineCommandFlags({\n days: { type: 'number', description: 'Lookback period in days', default: 1 },\n limit: { type: 'number', description: 'Max KPI runs to analyze', default: 200 },\n 'session-id': { type: 'string', description: 'Filter by session ID' },\n json: { type: 'boolean', description: 'Output JSON for automation', default: false },\n }),\n\n examples: [\n 'kb agent quality report',\n 'kb agent quality report --days=7',\n 'kb agent quality report --session-id=session-123',\n 'kb agent quality report --days=3 --json',\n ],\n },\n // File change history commands\n {\n path: 'agent history',\n category: 'History',\n describe: 'Show file change history for agent sessions',\n operationType: 'read' as const,\n longDescription:\n 'View file changes made by agents during execution. ' +\n 'Filter by session, file, or agent. Shows timestamps, operations, and change metadata.',\n\n handler: './cli/commands/history.js#default',\n\n flags: defineCommandFlags({\n 'session-id': { type: 'string', description: 'Session ID to filter by' },\n file: { type: 'string', description: 'File path to filter by' },\n 'agent-id': { type: 'string', description: 'Agent ID to filter by' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent history',\n 'kb agent history --session-id=session-123',\n 'kb agent history --file=src/index.ts',\n 'kb agent history --agent-id=agent-abc --json',\n ],\n },\n {\n path: 'agent diff',\n category: 'History',\n describe: 'Show diff for specific file change',\n operationType: 'read' as const,\n longDescription:\n 'Display line-by-line diff for a specific file change. ' +\n 'Shows additions, deletions, and modifications with context.',\n\n handler: './cli/commands/diff.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to show diff for' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent diff --change-id=change-abc123',\n 'kb agent diff --change-id=change-abc123 --json',\n ],\n },\n {\n path: 'agent rollback',\n category: 'History',\n describe: 'Rollback file changes made by agents',\n operationType: 'mutate' as const,\n longDescription:\n 'Rollback file changes made by agents. ' +\n 'Supports rollback by change ID, file path, agent ID, session, or timestamp. ' +\n 'Use --dry-run to preview changes before applying.',\n\n handler: './cli/commands/rollback.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to rollback' },\n file: { type: 'string', description: 'File path to rollback all changes for' },\n 'agent-id': { type: 'string', description: 'Agent ID to rollback all changes by' },\n 'session-id': { type: 'string', description: 'Session ID to rollback all changes in' },\n after: { type: 'string', description: 'Rollback all changes after timestamp (ISO 8601)' },\n force: { type: 'boolean', description: 'Force rollback even with conflicts', default: false },\n 'dry-run': { type: 'boolean', description: 'Preview rollback without applying', default: false },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent rollback --change-id=change-abc123',\n 'kb agent rollback --file=src/index.ts --dry-run',\n 'kb agent rollback --agent-id=agent-abc',\n 'kb agent rollback --session-id=session-123',\n 'kb agent rollback --after=\"2026-02-16T10:00:00Z\" --json',\n ],\n },\n ],\n },\n\n capabilities: [],\n\n permissions: pluginPermissions,\n\n // REST API for Agent UI\n rest: {\n basePath: AGENTS_BASE_PATH,\n defaults: {\n timeoutMs: 1800000, // 30 min for long-running tasks\n },\n routes: [\n {\n method: 'POST',\n path: AGENTS_ROUTES.RUN,\n description: 'Start a new agent run',\n handler: './rest/handlers/run-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.RUN_STATUS,\n description: 'Get status of a run',\n handler: './rest/handlers/status-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.CORRECT,\n description: 'Send correction to running agent(s)',\n handler: './rest/handlers/correct-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.STOP,\n description: 'Stop a running agent',\n handler: './rest/handlers/stop-handler.js',\n security: ['none'],\n },\n // Session management routes\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSIONS_LIST,\n description: 'List all sessions',\n handler: './rest/handlers/list-sessions-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_GET,\n description: 'Get session details',\n handler: './rest/handlers/get-session-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_CREATE,\n description: 'Create a new session',\n handler: './rest/handlers/create-session-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_TURNS,\n description: 'Get session turns (turn-based UI)',\n handler: './rest/handlers/get-session-turns-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_GET,\n description: 'Get current session plan',\n handler: './rest/handlers/get-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_APPROVE,\n description: 'Approve current session plan',\n handler: './rest/handlers/approve-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_EXECUTE,\n description: 'Execute approved session plan',\n handler: './rest/handlers/execute-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC,\n description: 'Generate detailed spec from approved plan',\n handler: './rest/handlers/generate-spec-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC_GET,\n description: 'Get current session spec',\n handler: './rest/handlers/get-spec-handler.js',\n security: ['none'],\n },\n // File change history routes (rollback & approve)\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGES,\n description: 'List file changes for session (optionally filtered by runId)',\n handler: './rest/handlers/list-file-changes-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGE_DIFF,\n description: 'Get unified diff for a specific file change',\n handler: './rest/handlers/get-file-diff-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_ROLLBACK,\n description: 'Rollback file changes for a session/run',\n handler: './rest/handlers/rollback-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_APPROVE,\n description: 'Approve file changes for a session/run',\n handler: './rest/handlers/approve-handler.js',\n security: ['none'],\n },\n ],\n },\n\n // WebSocket for real-time event streaming\n ws: {\n basePath: AGENTS_WS_BASE_PATH,\n defaults: {\n auth: 'none',\n idleTimeoutMs: 3600000, // 1 hour\n },\n channels: [\n {\n path: AGENTS_WS_CHANNELS.SESSION_STREAM,\n description: 'Persistent session stream (all runs in session)',\n handler: './ws/session-stream-handler.js',\n auth: 'none',\n },\n ],\n },\n\n artifacts: [\n {\n id: 'agent.memory.json',\n pathTemplate: '.agent-memory/memory.json',\n description: 'Persistent agent memory (facts, sessions, project context).',\n },\n ],\n\n studio: {\n version: 2 as const,\n remoteName: 'agentPlugin',\n pages: [\n {\n id: 'agent.overview',\n title: 'Agent',\n icon: 'RobotOutlined',\n route: '/p/agent',\n entry: './AgentsPage',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'agent',\n label: 'Agent',\n icon: 'RobotOutlined',\n target: 'agent.overview',\n order: 30,\n },\n ],\n },\n};\n"]}
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/manifest.ts"],"names":[],"mappings":"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","file":"manifest.js","sourcesContent":["/**\n * KB Labs Agent Plugin - Manifest V3\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n AGENTS_BASE_PATH,\n AGENTS_WS_BASE_PATH,\n AGENTS_ROUTES,\n AGENTS_WS_CHANNELS,\n} from '@kb-labs/agent-contracts';\n\n/**\n * Command flags for agent:run (unified command with modes)\n */\nconst runFlags = {\n task: {\n type: 'string',\n description: 'Task description',\n },\n mode: {\n type: 'string',\n description: 'Agent mode: execute (default), plan, edit, debug',\n default: 'execute',\n },\n 'session-id': {\n type: 'string',\n description: 'Session ID (auto-generated if not provided)',\n },\n complexity: {\n type: 'string',\n description: 'Task complexity (for plan mode): simple, medium, complex',\n },\n approve: {\n type: 'boolean',\n description: 'Auto-approve generated plan (supported with --mode=plan)',\n default: false,\n },\n execute: {\n type: 'boolean',\n description: 'After plan is approved, immediately execute it (use with --mode=plan --approve)',\n default: false,\n },\n files: {\n type: 'array',\n description: 'Target files (for edit mode)',\n },\n trace: {\n type: 'string',\n description: 'Trace file path (for debug mode)',\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying (for edit mode)',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Verbose output',\n default: false,\n },\n debug: {\n type: 'boolean',\n description: 'Enable debug mode: emit full prompts and responses as llm:debug events',\n default: false,\n },\n timeout: {\n type: 'number',\n description: 'Abort agent execution after this many seconds (exit code 124). No timeout by default.',\n },\n budget: {\n type: 'number',\n description: 'Override token budget (e.g. 300000 for heavy tasks). Overrides config value.',\n },\n json: {\n type: 'boolean',\n description: 'Output structured JSON result instead of human-readable output.',\n },\n} as const;\n\n/**\n * Plugin permissions\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['.agent-memory/**', '**/*'], // Allow filesystem operations in working dir\n })\n .withPlatform({\n llm: true, // Full LLM access for agent execution\n cache: ['agent:'], // Cache namespace prefix\n analytics: true, // Track agent usage\n })\n .withQuotas({\n timeoutMs: 1800000, // 30 min for complex tasks\n memoryMb: 1024,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/agent',\n version: '0.1.0',\n\n display: {\n name: 'Agent System',\n description: 'Autonomous agents, tool calling, and task orchestration',\n tags: ['agent', 'autonomous', 'llm', 'orchestration'],\n },\n\n // Configuration lives under kb.config.json -> agents\n configSection: 'agents',\n\n platform: {\n requires: ['llm'],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'agent', describe: 'Autonomous agent commands' },\n { path: 'agent trace', describe: 'Agent trace debugging commands' },\n { path: 'agent quality', describe: 'Agent quality control commands' },\n ],\n commands: [\n {\n path: 'agent run',\n category: 'Run',\n describe: 'Run agent task (execute, plan, edit, or debug)',\n operationType: 'execute' as const,\n longDescription:\n 'Unified agent command with multiple modes: ' +\n 'execute (default) - run task immediately, ' +\n 'plan - generate execution plan without running, ' +\n 'edit - modify existing files, ' +\n 'debug - analyze errors with trace context. ' +\n 'Supports filesystem, search, shell, memory, and user interaction tools.',\n\n handler: './cli/commands/run.js#default',\n\n flags: defineCommandFlags(runFlags),\n\n examples: [\n 'kb agent run --task=\"Create analytics system\"',\n 'kb agent run --mode=plan --task=\"Add auth\" --complexity=complex',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve --execute',\n 'kb agent run --mode=edit --task=\"Fix bug\" --files src/auth.ts',\n 'kb agent run --mode=debug --task=\"Why crash?\" --trace .kb/traces/trace-123.json',\n 'kb agent run --task=\"Refactor auth module\" --timeout=120',\n ],\n },\n // Trace debugging commands (AI-friendly)\n {\n path: 'agent trace stats',\n category: 'Trace',\n describe: 'Show trace statistics: tokens, cost, timing',\n operationType: 'read' as const,\n longDescription:\n 'Analyze trace file to show comprehensive statistics: ' +\n 'iterations, LLM calls, token usage, tool usage, timing, and cost. ' +\n 'Supports --json flag for AI agent consumption.',\n\n handler: './cli/commands/trace-stats.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace stats --task-id=task-2026-01-29',\n 'kb agent trace stats --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace filter',\n category: 'Trace',\n describe: 'Filter trace events by type for debugging',\n operationType: 'read' as const,\n longDescription:\n 'Filter trace events by type (llm:call, tool:execution, error:captured, etc.). ' +\n 'Use this to debug specific aspects of agent execution. ' +\n 'Supports --json flag for programmatic access.',\n\n handler: './cli/commands/trace-filter.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n type: { type: 'string', description: 'Event type to filter (llm:call, tool:execution, etc.)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace filter --task-id=task-123 --type=llm:call',\n 'kb agent trace filter --task-id=task-123 --type=error:captured --json',\n ],\n },\n {\n path: 'agent trace iteration',\n category: 'Trace',\n describe: 'View all events for a specific iteration',\n operationType: 'read' as const,\n longDescription:\n 'Show all trace events for a specific iteration number. ' +\n 'Useful for debugging what happened in a particular loop iteration. ' +\n 'Includes summary statistics and event timeline.',\n\n handler: './cli/commands/trace-iteration.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Iteration number (1-based)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace iteration --task-id=task-123 --iteration=3',\n 'kb agent trace iteration --task-id=task-123 --iteration=5 --json',\n ],\n },\n {\n path: 'agent trace context',\n category: 'Trace',\n describe: 'Inspect context window and truncations per iteration',\n operationType: 'read' as const,\n longDescription:\n 'Shows the full context timeline for debugging agent behavior. ' +\n 'For each LLM call: what messages are in the sliding window, ' +\n 'what was truncated/dropped, and what the LLM responded with.',\n\n handler: './cli/commands/trace-context.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Filter to specific iteration' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace context --task-id=task-123',\n 'kb agent trace context --task-id=task-123 --iteration=3',\n 'kb agent trace context --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace diagnose',\n category: 'Trace',\n describe: 'Diagnose what went wrong in an agent run',\n operationType: 'analyze' as const,\n longDescription:\n 'Comprehensive diagnostic report for agent execution. ' +\n 'Analyzes errors, context window health (drops, truncations), ' +\n 'tool failures, LLM reasoning text, loop detection, and quality indicators. ' +\n 'One command to understand any agent issue.',\n\n handler: './cli/commands/trace-diagnose.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace diagnose --task-id=task-123',\n 'kb agent trace diagnose --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent quality report',\n category: 'Quality',\n describe: 'Show quality control report for recent agent runs',\n operationType: 'analyze' as const,\n longDescription:\n 'Aggregates agent KPI telemetry from analytics buffer and shows ' +\n 'quality, token usage, tool efficiency, drift, and regression alerts. ' +\n 'Useful for continuous quality control and cost/performance monitoring.',\n\n handler: './cli/commands/quality-report.js#default',\n\n flags: defineCommandFlags({\n days: { type: 'number', description: 'Lookback period in days', default: 1 },\n limit: { type: 'number', description: 'Max KPI runs to analyze', default: 200 },\n 'session-id': { type: 'string', description: 'Filter by session ID' },\n json: { type: 'boolean', description: 'Output JSON for automation', default: false },\n }),\n\n examples: [\n 'kb agent quality report',\n 'kb agent quality report --days=7',\n 'kb agent quality report --session-id=session-123',\n 'kb agent quality report --days=3 --json',\n ],\n },\n // File change history commands\n {\n path: 'agent history',\n category: 'History',\n describe: 'Show file change history for agent sessions',\n operationType: 'read' as const,\n longDescription:\n 'View file changes made by agents during execution. ' +\n 'Filter by session, file, or agent. Shows timestamps, operations, and change metadata.',\n\n handler: './cli/commands/history.js#default',\n\n flags: defineCommandFlags({\n 'session-id': { type: 'string', description: 'Session ID to filter by' },\n file: { type: 'string', description: 'File path to filter by' },\n 'agent-id': { type: 'string', description: 'Agent ID to filter by' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent history',\n 'kb agent history --session-id=session-123',\n 'kb agent history --file=src/index.ts',\n 'kb agent history --agent-id=agent-abc --json',\n ],\n },\n {\n path: 'agent diff',\n category: 'History',\n describe: 'Show diff for specific file change',\n operationType: 'read' as const,\n longDescription:\n 'Display line-by-line diff for a specific file change. ' +\n 'Shows additions, deletions, and modifications with context.',\n\n handler: './cli/commands/diff.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to show diff for' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent diff --change-id=change-abc123',\n 'kb agent diff --change-id=change-abc123 --json',\n ],\n },\n {\n path: 'agent rollback',\n category: 'History',\n describe: 'Rollback file changes made by agents',\n operationType: 'mutate' as const,\n longDescription:\n 'Rollback file changes made by agents. ' +\n 'Supports rollback by change ID, file path, agent ID, session, or timestamp. ' +\n 'Use --dry-run to preview changes before applying.',\n\n handler: './cli/commands/rollback.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to rollback' },\n file: { type: 'string', description: 'File path to rollback all changes for' },\n 'agent-id': { type: 'string', description: 'Agent ID to rollback all changes by' },\n 'session-id': { type: 'string', description: 'Session ID to rollback all changes in' },\n after: { type: 'string', description: 'Rollback all changes after timestamp (ISO 8601)' },\n force: { type: 'boolean', description: 'Force rollback even with conflicts', default: false },\n 'dry-run': { type: 'boolean', description: 'Preview rollback without applying', default: false },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent rollback --change-id=change-abc123',\n 'kb agent rollback --file=src/index.ts --dry-run',\n 'kb agent rollback --agent-id=agent-abc',\n 'kb agent rollback --session-id=session-123',\n 'kb agent rollback --after=\"2026-02-16T10:00:00Z\" --json',\n ],\n },\n ],\n },\n\n capabilities: [],\n\n permissions: pluginPermissions,\n\n // REST API for Agent UI\n rest: {\n basePath: AGENTS_BASE_PATH,\n defaults: {\n timeoutMs: 1800000, // 30 min for long-running tasks\n },\n routes: [\n {\n method: 'POST',\n path: AGENTS_ROUTES.RUN,\n description: 'Start a new agent run',\n handler: './rest/handlers/run-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.RUN_STATUS,\n description: 'Get status of a run',\n handler: './rest/handlers/status-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.CORRECT,\n description: 'Send correction to running agent(s)',\n handler: './rest/handlers/correct-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.STOP,\n description: 'Stop a running agent',\n handler: './rest/handlers/stop-handler.js',\n security: ['none'],\n },\n // Session management routes\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSIONS_LIST,\n description: 'List all sessions',\n handler: './rest/handlers/list-sessions-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_GET,\n description: 'Get session details',\n handler: './rest/handlers/get-session-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_CREATE,\n description: 'Create a new session',\n handler: './rest/handlers/create-session-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_TURNS,\n description: 'Get session turns (turn-based UI)',\n handler: './rest/handlers/get-session-turns-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_GET,\n description: 'Get current session plan',\n handler: './rest/handlers/get-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_APPROVE,\n description: 'Approve current session plan',\n handler: './rest/handlers/approve-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_EXECUTE,\n description: 'Execute approved session plan',\n handler: './rest/handlers/execute-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC,\n description: 'Generate detailed spec from approved plan',\n handler: './rest/handlers/generate-spec-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC_GET,\n description: 'Get current session spec',\n handler: './rest/handlers/get-spec-handler.js',\n security: ['none'],\n },\n // File change history routes (rollback & approve)\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGES,\n description: 'List file changes for session (optionally filtered by runId)',\n handler: './rest/handlers/list-file-changes-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGE_DIFF,\n description: 'Get unified diff for a specific file change',\n handler: './rest/handlers/get-file-diff-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_ROLLBACK,\n description: 'Rollback file changes for a session/run',\n handler: './rest/handlers/rollback-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_APPROVE,\n description: 'Approve file changes for a session/run',\n handler: './rest/handlers/approve-handler.js',\n security: ['none'],\n },\n ],\n },\n\n // WebSocket for real-time event streaming\n ws: {\n basePath: AGENTS_WS_BASE_PATH,\n defaults: {\n auth: 'none',\n idleTimeoutMs: 3600000, // 1 hour\n },\n channels: [\n {\n path: AGENTS_WS_CHANNELS.SESSION_STREAM,\n description: 'Persistent session stream (all runs in session)',\n handler: './ws/session-stream-handler.js',\n auth: 'none',\n },\n ],\n },\n\n artifacts: [\n {\n id: 'agent.memory.json',\n pathTemplate: '.agent-memory/memory.json',\n description: 'Persistent agent memory (facts, sessions, project context).',\n },\n ],\n\n studio: {\n version: 2 as const,\n remoteName: 'agentPlugin',\n pages: [\n {\n id: 'agent.overview',\n title: 'Agent',\n icon: 'RobotOutlined',\n route: '/p/agent',\n entry: './AgentsPage',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'agent',\n label: 'Agent',\n icon: 'RobotOutlined',\n target: 'agent.overview',\n order: 30,\n },\n ],\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/agents/entry/src/manifest.ts"],"names":[],"mappings":"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","file":"manifest.js","sourcesContent":["/**\n * KB Labs Agent Plugin - Manifest V3\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n AGENTS_BASE_PATH,\n AGENTS_WS_BASE_PATH,\n AGENTS_ROUTES,\n AGENTS_WS_CHANNELS,\n} from '@kb-labs/agent-contracts';\n\n/**\n * Command flags for agent:run (unified command with modes)\n */\nconst runFlags = {\n task: {\n type: 'string',\n description: 'Task description',\n },\n mode: {\n type: 'string',\n description: 'Agent mode: execute (default), plan, edit, debug',\n default: 'execute',\n },\n 'session-id': {\n type: 'string',\n description: 'Session ID (auto-generated if not provided)',\n },\n complexity: {\n type: 'string',\n description: 'Task complexity (for plan mode): simple, medium, complex',\n },\n approve: {\n type: 'boolean',\n description: 'Auto-approve generated plan (supported with --mode=plan)',\n default: false,\n },\n execute: {\n type: 'boolean',\n description: 'After plan is approved, immediately execute it (use with --mode=plan --approve)',\n default: false,\n },\n files: {\n type: 'array',\n description: 'Target files (for edit mode)',\n },\n trace: {\n type: 'string',\n description: 'Trace file path (for debug mode)',\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying (for edit mode)',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Verbose output',\n default: false,\n },\n debug: {\n type: 'boolean',\n description: 'Enable debug mode: emit full prompts and responses as llm:debug events',\n default: false,\n },\n timeout: {\n type: 'number',\n description: 'Abort agent execution after this many seconds (exit code 124). No timeout by default.',\n },\n budget: {\n type: 'number',\n description: 'Override token budget (e.g. 300000 for heavy tasks). Overrides config value.',\n },\n json: {\n type: 'boolean',\n description: 'Output structured JSON result instead of human-readable output.',\n },\n} as const;\n\n/**\n * Plugin permissions\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['.agent-memory/**', '**/*'], // Allow filesystem operations in working dir\n })\n .withPlatform({\n llm: true, // Full LLM access for agent execution\n cache: ['agent:'], // Cache namespace prefix\n analytics: true, // Track agent usage\n })\n .withQuotas({\n timeoutMs: 1800000, // 30 min for complex tasks\n memoryMb: 1024,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/agent',\n version: '0.1.0',\n\n display: {\n name: 'Agent System',\n description: 'Autonomous agents, tool calling, and task orchestration',\n tags: ['agent', 'autonomous', 'llm', 'orchestration'],\n },\n\n // Configuration lives under kb.config.json -> agents\n configSection: 'agents',\n\n platform: {\n requires: ['llm'],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'agent', describe: 'Autonomous agent commands' },\n { path: 'agent trace', describe: 'Agent trace debugging commands' },\n { path: 'agent quality', describe: 'Agent quality control commands' },\n ],\n commands: [\n {\n path: 'agent run',\n category: 'Run',\n describe: 'Run agent task (execute, plan, edit, or debug)',\n operationType: 'execute' as const,\n longDescription:\n 'Unified agent command with multiple modes: ' +\n 'execute (default) - run task immediately, ' +\n 'plan - generate execution plan without running, ' +\n 'edit - modify existing files, ' +\n 'debug - analyze errors with trace context. ' +\n 'Supports filesystem, search, shell, memory, and user interaction tools.',\n\n handler: './cli/commands/run.js#default',\n\n flags: defineCommandFlags(runFlags),\n\n examples: [\n 'kb agent run --task=\"Create analytics system\"',\n 'kb agent run --mode=plan --task=\"Add auth\" --complexity=complex',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve',\n 'kb agent run --mode=plan --task=\"Add auth\" --approve --execute',\n 'kb agent run --mode=edit --task=\"Fix bug\" --files src/auth.ts',\n 'kb agent run --mode=debug --task=\"Why crash?\" --trace .kb/traces/trace-123.json',\n 'kb agent run --task=\"Refactor auth module\" --timeout=120',\n ],\n },\n // Trace debugging commands (AI-friendly)\n {\n path: 'agent trace stats',\n category: 'Trace',\n describe: 'Show trace statistics: tokens, cost, timing',\n operationType: 'read' as const,\n longDescription:\n 'Analyze trace file to show comprehensive statistics: ' +\n 'iterations, LLM calls, token usage, tool usage, timing, and cost. ' +\n 'Supports --json flag for AI agent consumption.',\n\n handler: './cli/commands/trace-stats.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace stats --task-id=task-2026-01-29',\n 'kb agent trace stats --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace filter',\n category: 'Trace',\n describe: 'Filter trace events by type for debugging',\n operationType: 'read' as const,\n longDescription:\n 'Filter trace events by type (llm:call, tool:execution, error:captured, etc.). ' +\n 'Use this to debug specific aspects of agent execution. ' +\n 'Supports --json flag for programmatic access.',\n\n handler: './cli/commands/trace-filter.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n type: { type: 'string', description: 'Event type to filter (llm:call, tool:execution, etc.)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace filter --task-id=task-123 --type=llm:call',\n 'kb agent trace filter --task-id=task-123 --type=error:captured --json',\n ],\n },\n {\n path: 'agent trace iteration',\n category: 'Trace',\n describe: 'View all events for a specific iteration',\n operationType: 'read' as const,\n longDescription:\n 'Show all trace events for a specific iteration number. ' +\n 'Useful for debugging what happened in a particular loop iteration. ' +\n 'Includes summary statistics and event timeline.',\n\n handler: './cli/commands/trace-iteration.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Iteration number (1-based)' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace iteration --task-id=task-123 --iteration=3',\n 'kb agent trace iteration --task-id=task-123 --iteration=5 --json',\n ],\n },\n {\n path: 'agent trace context',\n category: 'Trace',\n describe: 'Inspect context window and truncations per iteration',\n operationType: 'read' as const,\n longDescription:\n 'Shows the full context timeline for debugging agent behavior. ' +\n 'For each LLM call: what messages are in the sliding window, ' +\n 'what was truncated/dropped, and what the LLM responded with.',\n\n handler: './cli/commands/trace-context.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n iteration: { type: 'number', description: 'Filter to specific iteration' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace context --task-id=task-123',\n 'kb agent trace context --task-id=task-123 --iteration=3',\n 'kb agent trace context --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent trace diagnose',\n category: 'Trace',\n describe: 'Diagnose what went wrong in an agent run',\n operationType: 'analyze' as const,\n longDescription:\n 'Comprehensive diagnostic report for agent execution. ' +\n 'Analyzes errors, context window health (drops, truncations), ' +\n 'tool failures, LLM reasoning text, loop detection, and quality indicators. ' +\n 'One command to understand any agent issue.',\n\n handler: './cli/commands/trace-diagnose.js#default',\n\n flags: defineCommandFlags({\n 'task-id': { type: 'string', description: 'Task ID or trace filename' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent trace diagnose --task-id=task-123',\n 'kb agent trace diagnose --task-id=task-123 --json',\n ],\n },\n {\n path: 'agent quality report',\n category: 'Quality',\n describe: 'Show quality control report for recent agent runs',\n operationType: 'analyze' as const,\n longDescription:\n 'Aggregates agent KPI telemetry from analytics buffer and shows ' +\n 'quality, token usage, tool efficiency, drift, and regression alerts. ' +\n 'Useful for continuous quality control and cost/performance monitoring.',\n\n handler: './cli/commands/quality-report.js#default',\n\n flags: defineCommandFlags({\n days: { type: 'number', description: 'Lookback period in days', default: 1 },\n limit: { type: 'number', description: 'Max KPI runs to analyze', default: 200 },\n 'session-id': { type: 'string', description: 'Filter by session ID' },\n json: { type: 'boolean', description: 'Output JSON for automation', default: false },\n }),\n\n examples: [\n 'kb agent quality report',\n 'kb agent quality report --days=7',\n 'kb agent quality report --session-id=session-123',\n 'kb agent quality report --days=3 --json',\n ],\n },\n // File change history commands\n {\n path: 'agent history',\n category: 'History',\n describe: 'Show file change history for agent sessions',\n operationType: 'read' as const,\n longDescription:\n 'View file changes made by agents during execution. ' +\n 'Filter by session, file, or agent. Shows timestamps, operations, and change metadata.',\n\n handler: './cli/commands/history.js#default',\n\n flags: defineCommandFlags({\n 'session-id': { type: 'string', description: 'Session ID to filter by' },\n file: { type: 'string', description: 'File path to filter by' },\n 'agent-id': { type: 'string', description: 'Agent ID to filter by' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent history',\n 'kb agent history --session-id=session-123',\n 'kb agent history --file=src/index.ts',\n 'kb agent history --agent-id=agent-abc --json',\n ],\n },\n {\n path: 'agent diff',\n category: 'History',\n describe: 'Show diff for specific file change',\n operationType: 'read' as const,\n longDescription:\n 'Display line-by-line diff for a specific file change. ' +\n 'Shows additions, deletions, and modifications with context.',\n\n handler: './cli/commands/diff.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to show diff for' },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent diff --change-id=change-abc123',\n 'kb agent diff --change-id=change-abc123 --json',\n ],\n },\n {\n path: 'agent rollback',\n category: 'History',\n describe: 'Rollback file changes made by agents',\n operationType: 'mutate' as const,\n longDescription:\n 'Rollback file changes made by agents. ' +\n 'Supports rollback by change ID, file path, agent ID, session, or timestamp. ' +\n 'Use --dry-run to preview changes before applying.',\n\n handler: './cli/commands/rollback.js#default',\n\n flags: defineCommandFlags({\n 'change-id': { type: 'string', description: 'Change ID to rollback' },\n file: { type: 'string', description: 'File path to rollback all changes for' },\n 'agent-id': { type: 'string', description: 'Agent ID to rollback all changes by' },\n 'session-id': { type: 'string', description: 'Session ID to rollback all changes in' },\n after: { type: 'string', description: 'Rollback all changes after timestamp (ISO 8601)' },\n force: { type: 'boolean', description: 'Force rollback even with conflicts', default: false },\n 'dry-run': { type: 'boolean', description: 'Preview rollback without applying', default: false },\n json: { type: 'boolean', description: 'Output JSON for AI agents', default: false },\n }),\n\n examples: [\n 'kb agent rollback --change-id=change-abc123',\n 'kb agent rollback --file=src/index.ts --dry-run',\n 'kb agent rollback --agent-id=agent-abc',\n 'kb agent rollback --session-id=session-123',\n 'kb agent rollback --after=\"2026-02-16T10:00:00Z\" --json',\n ],\n },\n ],\n },\n\n capabilities: [],\n\n permissions: pluginPermissions,\n\n // REST API for Agent UI\n rest: {\n basePath: AGENTS_BASE_PATH,\n defaults: {\n timeoutMs: 1800000, // 30 min for long-running tasks\n },\n routes: [\n {\n method: 'POST',\n path: AGENTS_ROUTES.RUN,\n description: 'Start a new agent run',\n handler: './rest/handlers/run-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.RUN_STATUS,\n description: 'Get status of a run',\n handler: './rest/handlers/status-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.CORRECT,\n description: 'Send correction to running agent(s)',\n handler: './rest/handlers/correct-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.STOP,\n description: 'Stop a running agent',\n handler: './rest/handlers/stop-handler.js',\n security: ['none'],\n },\n // Session management routes\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSIONS_LIST,\n description: 'List all sessions',\n handler: './rest/handlers/list-sessions-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_GET,\n description: 'Get session details',\n handler: './rest/handlers/get-session-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_CREATE,\n description: 'Create a new session',\n handler: './rest/handlers/create-session-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_TURNS,\n description: 'Get session turns (turn-based UI)',\n handler: './rest/handlers/get-session-turns-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_GET,\n description: 'Get current session plan',\n handler: './rest/handlers/get-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_APPROVE,\n description: 'Approve current session plan',\n handler: './rest/handlers/approve-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_EXECUTE,\n description: 'Execute approved session plan',\n handler: './rest/handlers/execute-session-plan-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC,\n description: 'Generate detailed spec from approved plan',\n handler: './rest/handlers/generate-spec-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_PLAN_SPEC_GET,\n description: 'Get current session spec',\n handler: './rest/handlers/get-spec-handler.js',\n security: ['none'],\n },\n // File change history routes (rollback & approve)\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGES,\n description: 'List file changes for session (optionally filtered by runId)',\n handler: './rest/handlers/list-file-changes-handler.js',\n security: ['none'],\n },\n {\n method: 'GET',\n path: AGENTS_ROUTES.SESSION_CHANGE_DIFF,\n description: 'Get unified diff for a specific file change',\n handler: './rest/handlers/get-file-diff-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_ROLLBACK,\n description: 'Rollback file changes for a session/run',\n handler: './rest/handlers/rollback-handler.js',\n security: ['none'],\n },\n {\n method: 'POST',\n path: AGENTS_ROUTES.SESSION_APPROVE,\n description: 'Approve file changes for a session/run',\n handler: './rest/handlers/approve-handler.js',\n security: ['none'],\n },\n ],\n },\n\n // WebSocket for real-time event streaming\n ws: {\n basePath: AGENTS_WS_BASE_PATH,\n defaults: {\n auth: 'none',\n idleTimeoutMs: 3600000, // 1 hour\n },\n channels: [\n {\n path: AGENTS_WS_CHANNELS.SESSION_STREAM,\n description: 'Persistent session stream (all runs in session)',\n handler: './ws/session-stream-handler.js',\n auth: 'none',\n },\n ],\n },\n\n artifacts: [\n {\n id: 'agent.memory.json',\n pathTemplate: '.agent-memory/memory.json',\n description: 'Persistent agent memory (facts, sessions, project context).',\n },\n ],\n\n studio: {\n version: 2 as const,\n remoteName: 'agentPlugin',\n pages: [\n {\n id: 'agent.overview',\n title: 'Agent',\n icon: 'RobotOutlined',\n route: '/p/agent',\n entry: './AgentsPage',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'agent',\n label: 'Agent',\n icon: 'RobotOutlined',\n target: 'agent.overview',\n order: 30,\n },\n ],\n },\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../../home/runner/work/kb-labs/kb-labs/plugins/agents/entry/src/rest/handlers/approve-handler.ts"],"names":[],"mappings":"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","file":"approve-handler.js","sourcesContent":["/**\n * POST /sessions/:sessionId/approve\n * Mark file changes as explicitly approved by the user.\n */\n\nimport { defineHandler, rethrowForRest, type RestInput, type PluginContextV3 } from '@kb-labs/sdk';\nimport { SessionManager } from '@kb-labs/agent-core';\nimport { SnapshotStorage } from '@kb-labs/agent-history';\n\ninterface ApproveRequest {\n runId?: string;\n changeIds?: string[];\n}\n\ninterface ApproveResponse {\n approved: number;\n changeIds: string[];\n approvedAt: string;\n}\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n input: RestInput<ApproveRequest>\n ): Promise<ApproveResponse> {\n try {\n const params = input.params as Record<string, string> | undefined;\n const sessionId = params?.sessionId;\n\n if (!sessionId) {throw new Error('Session ID is required');}\n\n const body = (input.body ?? {}) as ApproveRequest;\n\n const sessionManager = new SessionManager(ctx.cwd);\n const session = await sessionManager.loadSession(sessionId);\n if (!session) {\n throw new Error(`Session not found: ${sessionId}`);\n }\n\n // Use session's own workingDir for snapshot lookup (may differ from ctx.cwd)\n const workingDir = session.workingDir || ctx.cwd;\n const storage = new SnapshotStorage(workingDir);\n let changes = await storage.listSnapshots(sessionId);\n\n if (body.runId) {\n changes = changes.filter((c) => c.runId === body.runId);\n } else if (body.changeIds?.length) {\n const ids = new Set(body.changeIds);\n changes = changes.filter((c) => ids.has(c.id));\n }\n\n const approvedAt = new Date().toISOString();\n const approvedIds: string[] = [];\n\n for (const change of changes) {\n change.approved = true;\n change.approvedAt = approvedAt;\n await storage.saveSnapshot(sessionId, change);\n approvedIds.push(change.id);\n }\n\n // Patch turns.json so the UI reflects approved state after page reload\n if (body.runId && approvedIds.length > 0) {\n const updatedSummaries = changes.map((c) => ({\n changeId: c.id,\n filePath: c.filePath,\n operation: c.operation,\n timestamp: c.timestamp,\n linesAdded: c.metadata?.linesAdded,\n linesRemoved: c.metadata?.linesRemoved,\n isNew: !c.before,\n sizeAfter: c.after.size,\n approved: true,\n approvedAt,\n }));\n await sessionManager.updateTurnFileChanges(sessionId, body.runId, updatedSummaries);\n }\n\n ctx.platform.logger.info(\n `[approve-handler] Session ${sessionId}: approved ${approvedIds.length} changes`\n );\n\n return { approved: approvedIds.length, changeIds: approvedIds, approvedAt };\n } catch (err) {\n rethrowForRest(err);\n }\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../../home/runner/work/kb-labs/kb-labs/plugins/agents/entry/src/rest/handlers/approve-session-plan-handler.ts"],"names":["fs"],"mappings":";;;;;AAcA,eAAe,SAAS,QAAA,EAAqC;AAC3D,EAAA,MAAM,OAAA,GAAU,MAAMA,QAAA,CAAG,QAAA,CAAS,UAAU,OAAO,CAAA;AACnD,EAAA,OAAO,IAAA,CAAK,MAAM,OAAO,CAAA;AAC3B;AAEA,IAAO,uCAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,GAAA,EACA,KAAA,EACqC;AACrC,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,MAAA,MAAM,YAAY,MAAA,EAAQ,SAAA;AAC1B,MAAA,MAAM,IAAA,GAAQ,KAAA,CAAM,IAAA,IAAQ,EAAC;AAE7B,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,MAAM,IAAI,MAAM,wBAAwB,CAAA;AAAA,MAC1C;AAEA,MAAA,MAAM,WAAA,GAAc,IAAI,cAAA,CAAe,GAAA,CAAI,GAAG,CAAA;AAC9C,MAAA,MAAM,OAAA,GAAU,MAAM,WAAA,CAAY,WAAA,CAAY,SAAS,CAAA;AACvD,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,mBAAA,EAAsB,SAAS,CAAA,CAAE,CAAA;AAAA,MACnD;AAEA,MAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,UAAA,IAAc,GAAA,CAAI,GAAA;AAC7C,MAAA,MAAM,cAAA,GAAiB,IAAI,cAAA,CAAe,UAAU,CAAA;AACpD,MAAA,MAAM,QAAA,GAAW,cAAA,CAAe,kBAAA,CAAmB,SAAS,CAAA;AAE5D,MAAA,IAAI,IAAA;AACJ,MAAA,IAAI;AACF,QAAA,IAAA,GAAO,MAAM,SAAS,QAAQ,CAAA;AAAA,MAChC,CAAA,CAAA,MAAQ;AACN,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2BAAA,EAA8B,SAAS,CAAA,CAAE,CAAA;AAAA,MAC3D;AAEA,MAAA,MAAM,UAAA,GAAA,iBAAa,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAC1C,MAAA,MAAM,YAAA,GAAe;AAAA,QACnB,GAAG,IAAA;AAAA,QACH,MAAA,EAAQ,UAAA;AAAA,QACR,SAAA,EAAW,UAAA;AAAA,QACX,eAAA,EAAiB,IAAA,CAAK,OAAA,EAAS,IAAA,EAAK,IAAK,KAAA,CAAA;AAAA,QACzC;AAAA,OACF;AAEA,MAAA,MAAMA,QAAA,CAAG,UAAU,QAAA,EAAU,IAAA,CAAK,UAAU,YAAA,EAAc,IAAA,EAAM,CAAC,CAAA,EAAG,OAAO,CAAA;AAE3E,MAAA,GAAA,CAAI,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,CAAA,+BAAA,EAAkC,SAAS,CAAA,eAAA,CAAiB,CAAA;AAErF,MAAA,OAAO;AAAA,QACL,SAAA;AAAA,QACA,IAAA,EAAM,YAAA;AAAA,QACN;AAAA,OACF;AAAA,IACF,SAAS,GAAA,EAAK;AACZ,MAAA,cAAA,CAAe,GAAG,CAAA;AAAA,IACpB;AAAA,EACF;AACF,CAAC","file":"approve-session-plan-handler.js","sourcesContent":["/**\n * POST /sessions/:sessionId/plan/approve\n * Mark current session plan as approved.\n */\n\nimport { defineHandler, rethrowForRest, type RestInput, type PluginContextV3 } from '@kb-labs/sdk';\nimport { SessionManager } from '@kb-labs/agent-core';\nimport type { ApproveSessionPlanRequest, ApproveSessionPlanResponse, TaskPlan } from '@kb-labs/agent-contracts';\nimport { promises as fs } from 'node:fs';\n\ninterface ApprovePlanRouteParams {\n sessionId?: string;\n}\n\nasync function loadPlan(planPath: string): Promise<TaskPlan> {\n const content = await fs.readFile(planPath, 'utf-8');\n return JSON.parse(content) as TaskPlan;\n}\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n input: RestInput<ApproveSessionPlanRequest, unknown, ApprovePlanRouteParams>\n ): Promise<ApproveSessionPlanResponse> {\n try {\n const params = input.params as Record<string, string> | undefined;\n const sessionId = params?.sessionId;\n const body = (input.body ?? {}) as ApproveSessionPlanRequest;\n\n if (!sessionId) {\n throw new Error('Session ID is required');\n }\n\n const baseManager = new SessionManager(ctx.cwd);\n const session = await baseManager.loadSession(sessionId);\n if (!session) {\n throw new Error(`Session not found: ${sessionId}`);\n }\n\n const workingDir = session.workingDir || ctx.cwd;\n const sessionManager = new SessionManager(workingDir);\n const planPath = sessionManager.getSessionPlanPath(sessionId);\n\n let plan: TaskPlan;\n try {\n plan = await loadPlan(planPath);\n } catch {\n throw new Error(`Plan not found for session ${sessionId}`);\n }\n\n const approvedAt = new Date().toISOString();\n const approvedPlan = {\n ...plan,\n status: 'approved' as const,\n updatedAt: approvedAt,\n approvalComment: body.comment?.trim() || undefined,\n approvedAt,\n } as TaskPlan;\n\n await fs.writeFile(planPath, JSON.stringify(approvedPlan, null, 2), 'utf-8');\n\n ctx.platform.logger.info(`[approve-session-plan] Session ${sessionId}: plan approved`);\n\n return {\n sessionId,\n plan: approvedPlan,\n approvedAt,\n };\n } catch (err) {\n rethrowForRest(err);\n }\n },\n});\n"]}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import { defineHandler, useAnalytics, rethrowForRest, useCache
|
|
1
|
+
import { defineHandler, useAnalytics, rethrowForRest, useCache } from '@kb-labs/sdk';
|
|
2
2
|
import { AGENT_ANALYTICS_EVENTS } from '@kb-labs/agent-contracts';
|
|
3
3
|
|
|
4
4
|
// src/rest/handlers/correct-handler.ts
|
|
5
5
|
var CACHE_PREFIX = "agent:run:";
|
|
6
|
-
var EVENT_TOPIC_PREFIX = "agent:events:";
|
|
7
6
|
var CACHE_TTL = 36e5;
|
|
8
7
|
var RunManagerImpl = class {
|
|
9
|
-
/** Live agents
|
|
8
|
+
/** Live agents (not cacheable) */
|
|
10
9
|
activeRuns = /* @__PURE__ */ new Map();
|
|
11
|
-
/** Session-level listeners: sessionId → Set<callback> — receive
|
|
10
|
+
/** Session-level listeners: sessionId → Set<callback> — receive updates from ALL runs in session */
|
|
12
11
|
sessionListeners = /* @__PURE__ */ new Map();
|
|
13
|
-
/** sessionId per runId — set when run is registered */
|
|
14
|
-
runSessionMap = /* @__PURE__ */ new Map();
|
|
15
12
|
/**
|
|
16
13
|
* Generate unique run ID
|
|
17
14
|
*/
|
|
@@ -21,7 +18,7 @@ var RunManagerImpl = class {
|
|
|
21
18
|
/**
|
|
22
19
|
* Register a new run
|
|
23
20
|
*/
|
|
24
|
-
async register(runId, task, agent, sessionManager
|
|
21
|
+
async register(runId, task, agent, sessionManager) {
|
|
25
22
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
26
23
|
const run = {
|
|
27
24
|
runId,
|
|
@@ -29,15 +26,9 @@ var RunManagerImpl = class {
|
|
|
29
26
|
status: "pending",
|
|
30
27
|
agent,
|
|
31
28
|
sessionManager,
|
|
32
|
-
startedAt: now
|
|
33
|
-
listeners: /* @__PURE__ */ new Set(),
|
|
34
|
-
lastSeq: 0,
|
|
35
|
-
eventBuffer: []
|
|
29
|
+
startedAt: now
|
|
36
30
|
};
|
|
37
31
|
this.activeRuns.set(runId, run);
|
|
38
|
-
if (sessionId) {
|
|
39
|
-
this.runSessionMap.set(runId, sessionId);
|
|
40
|
-
}
|
|
41
32
|
await this.saveToCache(run);
|
|
42
33
|
return run;
|
|
43
34
|
}
|
|
@@ -100,101 +91,42 @@ var RunManagerImpl = class {
|
|
|
100
91
|
};
|
|
101
92
|
await cache.set(`${CACHE_PREFIX}${run.runId}`, state, CACHE_TTL);
|
|
102
93
|
}
|
|
103
|
-
/** Track subscriptions for cleanup */
|
|
104
|
-
subscriptions = /* @__PURE__ */ new Map();
|
|
105
94
|
/**
|
|
106
|
-
*
|
|
95
|
+
* Broadcast turn deltas to all session-level listeners. Callers MUST await
|
|
96
|
+
* persistence (sessionManager.addEvent) before calling this, so listeners
|
|
97
|
+
* never observe a delta whose underlying turn state isn't on disk yet —
|
|
98
|
+
* that ordering is what makes gap-recovery / reconnect resume correct.
|
|
107
99
|
*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const run2 = this.activeRuns.get(runId);
|
|
112
|
-
if (run2) {
|
|
113
|
-
run2.listeners.add(callback);
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
const topic = `${EVENT_TOPIC_PREFIX}${runId}`;
|
|
119
|
-
const unsubscribe = platform.eventBus.subscribe(topic, async (event) => {
|
|
120
|
-
try {
|
|
121
|
-
callback(event);
|
|
122
|
-
} catch {
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
if (!this.subscriptions.has(runId)) {
|
|
126
|
-
this.subscriptions.set(runId, /* @__PURE__ */ new Map());
|
|
127
|
-
}
|
|
128
|
-
this.subscriptions.get(runId).set(callback, unsubscribe);
|
|
129
|
-
const run = this.activeRuns.get(runId);
|
|
130
|
-
if (run) {
|
|
131
|
-
run.listeners.add(callback);
|
|
100
|
+
broadcastSessionDeltas(sessionId, deltas) {
|
|
101
|
+
if (deltas.length === 0) {
|
|
102
|
+
return;
|
|
132
103
|
}
|
|
133
|
-
|
|
104
|
+
this.notifySessionListeners(sessionId, { kind: "deltas", deltas });
|
|
134
105
|
}
|
|
135
106
|
/**
|
|
136
|
-
*
|
|
107
|
+
* Broadcast a run's terminal outcome to session-level listeners. Called
|
|
108
|
+
* directly from the run's own completion handler (after `agent.execute()`
|
|
109
|
+
* resolves) rather than derived reactively from an `agent:end` event —
|
|
110
|
+
* the completion handler already has definitive success/summary/duration,
|
|
111
|
+
* and this guarantees the message fires exactly once, deterministically.
|
|
137
112
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (runSubs) {
|
|
141
|
-
const unsubscribe = runSubs.get(callback);
|
|
142
|
-
if (unsubscribe) {
|
|
143
|
-
unsubscribe();
|
|
144
|
-
runSubs.delete(callback);
|
|
145
|
-
}
|
|
146
|
-
if (runSubs.size === 0) {
|
|
147
|
-
this.subscriptions.delete(runId);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
const run = this.activeRuns.get(runId);
|
|
151
|
-
if (run) {
|
|
152
|
-
run.listeners.delete(callback);
|
|
153
|
-
}
|
|
113
|
+
broadcastRunCompleted(sessionId, payload) {
|
|
114
|
+
this.notifySessionListeners(sessionId, { kind: "run:completed", ...payload });
|
|
154
115
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
*/
|
|
160
|
-
broadcast(runId, event) {
|
|
161
|
-
const platform = usePlatform();
|
|
162
|
-
const run = this.activeRuns.get(runId);
|
|
163
|
-
let seqEvent = event;
|
|
164
|
-
if (run) {
|
|
165
|
-
run.lastSeq++;
|
|
166
|
-
seqEvent = { ...event, seq: run.lastSeq, runId };
|
|
167
|
-
run.eventBuffer.push(seqEvent);
|
|
168
|
-
}
|
|
169
|
-
if (platform?.eventBus) {
|
|
170
|
-
const topic = `${EVENT_TOPIC_PREFIX}${runId}`;
|
|
171
|
-
platform.eventBus.publish(topic, seqEvent).catch(() => {
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
if (run) {
|
|
175
|
-
for (const listener of run.listeners) {
|
|
176
|
-
try {
|
|
177
|
-
listener(seqEvent);
|
|
178
|
-
} catch {
|
|
179
|
-
}
|
|
180
|
-
}
|
|
116
|
+
notifySessionListeners(sessionId, payload) {
|
|
117
|
+
const listeners = this.sessionListeners.get(sessionId);
|
|
118
|
+
if (!listeners) {
|
|
119
|
+
return;
|
|
181
120
|
}
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
for (const listener of sListeners) {
|
|
187
|
-
try {
|
|
188
|
-
listener(seqEvent);
|
|
189
|
-
} catch {
|
|
190
|
-
}
|
|
191
|
-
}
|
|
121
|
+
for (const listener of listeners) {
|
|
122
|
+
try {
|
|
123
|
+
listener(payload);
|
|
124
|
+
} catch {
|
|
192
125
|
}
|
|
193
126
|
}
|
|
194
|
-
return seqEvent;
|
|
195
127
|
}
|
|
196
128
|
/**
|
|
197
|
-
* Add a session-level listener — receives
|
|
129
|
+
* Add a session-level listener — receives updates from ALL runs in this session.
|
|
198
130
|
*/
|
|
199
131
|
addSessionListener(sessionId, callback) {
|
|
200
132
|
if (!this.sessionListeners.has(sessionId)) {
|
|
@@ -214,21 +146,6 @@ var RunManagerImpl = class {
|
|
|
214
146
|
}
|
|
215
147
|
}
|
|
216
148
|
}
|
|
217
|
-
/**
|
|
218
|
-
* Get replay buffer for a run (all events emitted since start).
|
|
219
|
-
* Used by WS handler to send missed events on late connection.
|
|
220
|
-
* Optionally filter by afterSeq to only get events the client hasn't seen.
|
|
221
|
-
*/
|
|
222
|
-
getEventBuffer(runId, afterSeq) {
|
|
223
|
-
const run = this.activeRuns.get(runId);
|
|
224
|
-
if (!run) {
|
|
225
|
-
return [];
|
|
226
|
-
}
|
|
227
|
-
if (afterSeq != null) {
|
|
228
|
-
return run.eventBuffer.filter((e) => e.seq != null && e.seq > afterSeq);
|
|
229
|
-
}
|
|
230
|
-
return [...run.eventBuffer];
|
|
231
|
-
}
|
|
232
149
|
/**
|
|
233
150
|
* List all active runs
|
|
234
151
|
*/
|