beth-copilot 1.0.18 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -28
- package/README.md +87 -247
- package/bin/cli.js +158 -358
- package/dist/__tests__/smoke.test.d.ts +8 -0
- package/dist/__tests__/smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke.test.js +49 -0
- package/dist/__tests__/smoke.test.js.map +1 -0
- package/dist/cli/commands/beads.e2e.test.d.ts +13 -0
- package/dist/cli/commands/beads.e2e.test.d.ts.map +1 -0
- package/dist/cli/commands/beads.e2e.test.js +526 -0
- package/dist/cli/commands/beads.e2e.test.js.map +1 -0
- package/dist/cli/commands/cli-edge-cases.e2e.test.d.ts +32 -0
- package/dist/cli/commands/cli-edge-cases.e2e.test.d.ts.map +1 -0
- package/dist/cli/commands/cli-edge-cases.e2e.test.js +162 -0
- package/dist/cli/commands/cli-edge-cases.e2e.test.js.map +1 -0
- package/dist/cli/commands/close.d.ts +89 -0
- package/dist/cli/commands/close.d.ts.map +1 -0
- package/dist/cli/commands/close.e2e.test.d.ts +27 -0
- package/dist/cli/commands/close.e2e.test.d.ts.map +1 -0
- package/dist/cli/commands/close.e2e.test.js +252 -0
- package/dist/cli/commands/close.e2e.test.js.map +1 -0
- package/dist/cli/commands/close.js +309 -0
- package/dist/cli/commands/close.js.map +1 -0
- package/dist/cli/commands/close.test.d.ts +15 -0
- package/dist/cli/commands/close.test.d.ts.map +1 -0
- package/dist/cli/commands/close.test.js +634 -0
- package/dist/cli/commands/close.test.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +23 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +93 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/doctor.test.js +209 -0
- package/dist/cli/commands/doctor.test.js.map +1 -1
- package/dist/cli/commands/framework-isolation.test.d.ts +30 -0
- package/dist/cli/commands/framework-isolation.test.d.ts.map +1 -0
- package/dist/cli/commands/framework-isolation.test.js +119 -0
- package/dist/cli/commands/framework-isolation.test.js.map +1 -0
- package/dist/cli/commands/help.e2e.test.js +4 -4
- package/dist/cli/commands/help.e2e.test.js.map +1 -1
- package/dist/cli/commands/init-logic.e2e.test.d.ts +37 -0
- package/dist/cli/commands/init-logic.e2e.test.d.ts.map +1 -0
- package/dist/cli/commands/init-logic.e2e.test.js +305 -0
- package/dist/cli/commands/init-logic.e2e.test.js.map +1 -0
- package/dist/cli/commands/land.d.ts +142 -0
- package/dist/cli/commands/land.d.ts.map +1 -0
- package/dist/cli/commands/land.js +647 -0
- package/dist/cli/commands/land.js.map +1 -0
- package/dist/cli/commands/land.test.d.ts +20 -0
- package/dist/cli/commands/land.test.d.ts.map +1 -0
- package/dist/cli/commands/land.test.js +622 -0
- package/dist/cli/commands/land.test.js.map +1 -0
- package/dist/cli/commands/mcp.e2e.test.js +22 -29
- package/dist/cli/commands/mcp.e2e.test.js.map +1 -1
- package/dist/cli/commands/pipeline.e2e.test.js +20 -20
- package/dist/cli/commands/pipeline.e2e.test.js.map +1 -1
- package/dist/cli/commands/pre-push-guard.d.ts +84 -0
- package/dist/cli/commands/pre-push-guard.d.ts.map +1 -0
- package/dist/cli/commands/pre-push-guard.e2e.test.d.ts +24 -0
- package/dist/cli/commands/pre-push-guard.e2e.test.d.ts.map +1 -0
- package/dist/cli/commands/pre-push-guard.e2e.test.js +171 -0
- package/dist/cli/commands/pre-push-guard.e2e.test.js.map +1 -0
- package/dist/cli/commands/pre-push-guard.js +257 -0
- package/dist/cli/commands/pre-push-guard.js.map +1 -0
- package/dist/cli/commands/pre-push-guard.test.d.ts +15 -0
- package/dist/cli/commands/pre-push-guard.test.d.ts.map +1 -0
- package/dist/cli/commands/pre-push-guard.test.js +397 -0
- package/dist/cli/commands/pre-push-guard.test.js.map +1 -0
- package/dist/cli/commands/quickstart-expanded.e2e.test.d.ts +23 -0
- package/dist/cli/commands/quickstart-expanded.e2e.test.d.ts.map +1 -0
- package/dist/cli/commands/quickstart-expanded.e2e.test.js +179 -0
- package/dist/cli/commands/quickstart-expanded.e2e.test.js.map +1 -0
- package/dist/cli/commands/quickstart.d.ts.map +1 -1
- package/dist/cli/commands/quickstart.js +7 -23
- package/dist/cli/commands/quickstart.js.map +1 -1
- package/dist/cli/commands/quickstart.test.js +40 -67
- package/dist/cli/commands/quickstart.test.js.map +1 -1
- package/dist/core/agents/suite.test.js +4 -2
- package/dist/core/agents/suite.test.js.map +1 -1
- package/dist/core/agents/tools.test.js +5 -1
- package/dist/core/agents/tools.test.js.map +1 -1
- package/dist/index.d.ts +3 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -10
- package/dist/index.js.map +1 -1
- package/package.json +15 -9
- package/sbom.json +2011 -819
- package/templates/.github/agents/beth.agent.md +220 -66
- package/templates/.github/agents/developer.agent.md +53 -90
- package/templates/.github/agents/product-manager.agent.md +15 -68
- package/templates/.github/agents/researcher.agent.md +20 -71
- package/templates/.github/agents/security-reviewer.agent.md +29 -81
- package/templates/.github/agents/tester.agent.md +40 -69
- package/templates/.github/agents/ux-designer.agent.md +20 -74
- package/templates/.github/copilot-instructions.md +217 -225
- package/templates/AGENTS.md +108 -20
- package/templates/mcp.json.example +0 -3
- package/dist/cli/commands/client-config.d.ts +0 -31
- package/dist/cli/commands/client-config.d.ts.map +0 -1
- package/dist/cli/commands/client-config.e2e.test.d.ts +0 -15
- package/dist/cli/commands/client-config.e2e.test.d.ts.map +0 -1
- package/dist/cli/commands/client-config.e2e.test.js +0 -556
- package/dist/cli/commands/client-config.e2e.test.js.map +0 -1
- package/dist/cli/commands/client-config.js +0 -73
- package/dist/cli/commands/client-config.js.map +0 -1
- package/dist/cli/commands/client-config.test.d.ts +0 -6
- package/dist/cli/commands/client-config.test.d.ts.map +0 -1
- package/dist/cli/commands/client-config.test.js +0 -133
- package/dist/cli/commands/client-config.test.js.map +0 -1
- package/dist/cli/commands/init-quickstart.e2e.test.d.ts +0 -11
- package/dist/cli/commands/init-quickstart.e2e.test.d.ts.map +0 -1
- package/dist/cli/commands/init-quickstart.e2e.test.js +0 -221
- package/dist/cli/commands/init-quickstart.e2e.test.js.map +0 -1
- package/dist/core/context.d.ts +0 -171
- package/dist/core/context.d.ts.map +0 -1
- package/dist/core/context.js +0 -353
- package/dist/core/context.js.map +0 -1
- package/dist/core/context.test.d.ts +0 -8
- package/dist/core/context.test.d.ts.map +0 -1
- package/dist/core/context.test.js +0 -253
- package/dist/core/context.test.js.map +0 -1
- package/dist/core/handoffs.d.ts +0 -151
- package/dist/core/handoffs.d.ts.map +0 -1
- package/dist/core/handoffs.js +0 -220
- package/dist/core/handoffs.js.map +0 -1
- package/dist/core/handoffs.test.d.ts +0 -8
- package/dist/core/handoffs.test.d.ts.map +0 -1
- package/dist/core/handoffs.test.js +0 -231
- package/dist/core/handoffs.test.js.map +0 -1
- package/dist/core/orchestrator.d.ts +0 -246
- package/dist/core/orchestrator.d.ts.map +0 -1
- package/dist/core/orchestrator.js +0 -514
- package/dist/core/orchestrator.js.map +0 -1
- package/dist/core/orchestrator.test.d.ts +0 -8
- package/dist/core/orchestrator.test.d.ts.map +0 -1
- package/dist/core/orchestrator.test.js +0 -517
- package/dist/core/orchestrator.test.js.map +0 -1
- package/dist/core/router.d.ts +0 -102
- package/dist/core/router.d.ts.map +0 -1
- package/dist/core/router.js +0 -178
- package/dist/core/router.js.map +0 -1
- package/dist/core/router.test.d.ts +0 -8
- package/dist/core/router.test.d.ts.map +0 -1
- package/dist/core/router.test.js +0 -215
- package/dist/core/router.test.js.map +0 -1
- package/dist/init.test.js +0 -288
- package/dist/providers/azure.d.ts +0 -147
- package/dist/providers/azure.d.ts.map +0 -1
- package/dist/providers/azure.js +0 -491
- package/dist/providers/azure.js.map +0 -1
- package/dist/providers/azure.test.d.ts +0 -11
- package/dist/providers/azure.test.d.ts.map +0 -1
- package/dist/providers/azure.test.js +0 -330
- package/dist/providers/azure.test.js.map +0 -1
- package/dist/providers/config.d.ts +0 -87
- package/dist/providers/config.d.ts.map +0 -1
- package/dist/providers/config.js +0 -193
- package/dist/providers/config.js.map +0 -1
- package/dist/providers/config.test.d.ts +0 -7
- package/dist/providers/config.test.d.ts.map +0 -1
- package/dist/providers/config.test.js +0 -370
- package/dist/providers/config.test.js.map +0 -1
- package/dist/providers/index.d.ts +0 -18
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -14
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/interface.d.ts +0 -191
- package/dist/providers/interface.d.ts.map +0 -1
- package/dist/providers/interface.js +0 -94
- package/dist/providers/interface.js.map +0 -1
- package/dist/providers/retry.d.ts +0 -128
- package/dist/providers/retry.d.ts.map +0 -1
- package/dist/providers/retry.js +0 -205
- package/dist/providers/retry.js.map +0 -1
- package/dist/providers/retry.test.d.ts +0 -7
- package/dist/providers/retry.test.d.ts.map +0 -1
- package/dist/providers/retry.test.js +0 -439
- package/dist/providers/retry.test.js.map +0 -1
- package/dist/providers/streaming.d.ts +0 -157
- package/dist/providers/streaming.d.ts.map +0 -1
- package/dist/providers/streaming.js +0 -233
- package/dist/providers/streaming.js.map +0 -1
- package/dist/providers/streaming.test.d.ts +0 -7
- package/dist/providers/streaming.test.d.ts.map +0 -1
- package/dist/providers/streaming.test.js +0 -372
- package/dist/providers/streaming.test.js.map +0 -1
- package/dist/providers/types.d.ts +0 -209
- package/dist/providers/types.d.ts.map +0 -1
- package/dist/providers/types.js +0 -53
- package/dist/providers/types.js.map +0 -1
- package/dist/providers/types.test.d.ts +0 -7
- package/dist/providers/types.test.d.ts.map +0 -1
- package/dist/providers/types.test.js +0 -141
- package/dist/providers/types.test.js.map +0 -1
- package/dist/tools/cli/beads.d.ts +0 -27
- package/dist/tools/cli/beads.d.ts.map +0 -1
- package/dist/tools/cli/beads.js +0 -172
- package/dist/tools/cli/beads.js.map +0 -1
- package/dist/tools/cli/beads.test.d.ts +0 -8
- package/dist/tools/cli/beads.test.d.ts.map +0 -1
- package/dist/tools/cli/beads.test.js +0 -264
- package/dist/tools/cli/beads.test.js.map +0 -1
- package/dist/tools/cli/editFile.d.ts +0 -17
- package/dist/tools/cli/editFile.d.ts.map +0 -1
- package/dist/tools/cli/editFile.js +0 -125
- package/dist/tools/cli/editFile.js.map +0 -1
- package/dist/tools/cli/editFile.test.d.ts +0 -8
- package/dist/tools/cli/editFile.test.d.ts.map +0 -1
- package/dist/tools/cli/editFile.test.js +0 -177
- package/dist/tools/cli/editFile.test.js.map +0 -1
- package/dist/tools/cli/readFile.d.ts +0 -25
- package/dist/tools/cli/readFile.d.ts.map +0 -1
- package/dist/tools/cli/readFile.js +0 -118
- package/dist/tools/cli/readFile.js.map +0 -1
- package/dist/tools/cli/readFile.test.d.ts +0 -8
- package/dist/tools/cli/readFile.test.d.ts.map +0 -1
- package/dist/tools/cli/readFile.test.js +0 -194
- package/dist/tools/cli/readFile.test.js.map +0 -1
- package/dist/tools/cli/search.d.ts +0 -16
- package/dist/tools/cli/search.d.ts.map +0 -1
- package/dist/tools/cli/search.js +0 -261
- package/dist/tools/cli/search.js.map +0 -1
- package/dist/tools/cli/search.test.d.ts +0 -8
- package/dist/tools/cli/search.test.d.ts.map +0 -1
- package/dist/tools/cli/search.test.js +0 -172
- package/dist/tools/cli/search.test.js.map +0 -1
- package/dist/tools/cli/subagent.d.ts +0 -43
- package/dist/tools/cli/subagent.d.ts.map +0 -1
- package/dist/tools/cli/subagent.js +0 -99
- package/dist/tools/cli/subagent.js.map +0 -1
- package/dist/tools/cli/subagent.test.d.ts +0 -8
- package/dist/tools/cli/subagent.test.d.ts.map +0 -1
- package/dist/tools/cli/subagent.test.js +0 -190
- package/dist/tools/cli/subagent.test.js.map +0 -1
- package/dist/tools/cli/terminal.d.ts +0 -19
- package/dist/tools/cli/terminal.d.ts.map +0 -1
- package/dist/tools/cli/terminal.js +0 -164
- package/dist/tools/cli/terminal.js.map +0 -1
- package/dist/tools/cli/terminal.test.d.ts +0 -8
- package/dist/tools/cli/terminal.test.d.ts.map +0 -1
- package/dist/tools/cli/terminal.test.js +0 -161
- package/dist/tools/cli/terminal.test.js.map +0 -1
- package/dist/tools/index.d.ts +0 -25
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -41
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/interface.d.ts +0 -64
- package/dist/tools/interface.d.ts.map +0 -1
- package/dist/tools/interface.js +0 -37
- package/dist/tools/interface.js.map +0 -1
- package/dist/tools/interface.test.d.ts +0 -7
- package/dist/tools/interface.test.d.ts.map +0 -1
- package/dist/tools/interface.test.js +0 -179
- package/dist/tools/interface.test.js.map +0 -1
- package/dist/tools/mcp/bridge.d.ts +0 -48
- package/dist/tools/mcp/bridge.d.ts.map +0 -1
- package/dist/tools/mcp/bridge.js +0 -128
- package/dist/tools/mcp/bridge.js.map +0 -1
- package/dist/tools/mcp/bridge.test.d.ts +0 -8
- package/dist/tools/mcp/bridge.test.d.ts.map +0 -1
- package/dist/tools/mcp/bridge.test.js +0 -300
- package/dist/tools/mcp/bridge.test.js.map +0 -1
- package/dist/tools/mcp/client.d.ts +0 -135
- package/dist/tools/mcp/client.d.ts.map +0 -1
- package/dist/tools/mcp/client.js +0 -263
- package/dist/tools/mcp/client.js.map +0 -1
- package/dist/tools/mcp/client.test.d.ts +0 -8
- package/dist/tools/mcp/client.test.d.ts.map +0 -1
- package/dist/tools/mcp/client.test.js +0 -390
- package/dist/tools/mcp/client.test.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -82
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -99
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/registry.test.d.ts +0 -7
- package/dist/tools/registry.test.d.ts.map +0 -1
- package/dist/tools/registry.test.js +0 -199
- package/dist/tools/registry.test.js.map +0 -1
- package/dist/tools/suite.test.d.ts +0 -11
- package/dist/tools/suite.test.d.ts.map +0 -1
- package/dist/tools/suite.test.js +0 -119
- package/dist/tools/suite.test.js.map +0 -1
- package/dist/tools/types.d.ts +0 -75
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/types.js +0 -30
- package/dist/tools/types.js.map +0 -1
- package/dist/tools/types.test.d.ts +0 -7
- package/dist/tools/types.test.d.ts.map +0 -1
- package/dist/tools/types.test.js +0 -178
- package/dist/tools/types.test.js.map +0 -1
- package/templates/.vscode/mcp.json +0 -20
- package/templates/CLAUDE.md +0 -129
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM Provider Types
|
|
3
|
-
*
|
|
4
|
-
* Type definitions for the LLM provider abstraction layer.
|
|
5
|
-
* Designed to be compatible with OpenAI/Azure OpenAI API shapes (Responses API).
|
|
6
|
-
* Authentication uses Entra ID (Azure AD) via @azure/identity TokenCredential.
|
|
7
|
-
*/
|
|
8
|
-
import type { TokenCredential } from '@azure/identity';
|
|
9
|
-
/**
|
|
10
|
-
* Error codes for LLM provider errors.
|
|
11
|
-
* Used to categorize failures and determine retry behavior.
|
|
12
|
-
*/
|
|
13
|
-
export type LLMErrorCode = 'AUTH_FAILED' | 'RATE_LIMITED' | 'TIMEOUT' | 'INVALID_REQUEST' | 'SERVER_ERROR' | 'NETWORK_ERROR';
|
|
14
|
-
/**
|
|
15
|
-
* Custom error class for LLM provider errors.
|
|
16
|
-
* Includes metadata for error handling and retry logic.
|
|
17
|
-
*/
|
|
18
|
-
export declare class LLMError extends Error {
|
|
19
|
-
/** Categorized error code for programmatic handling */
|
|
20
|
-
readonly code: LLMErrorCode;
|
|
21
|
-
/** HTTP status code if applicable */
|
|
22
|
-
readonly statusCode: number | undefined;
|
|
23
|
-
/** Whether this error can be retried */
|
|
24
|
-
readonly retryable: boolean;
|
|
25
|
-
/** Provider that generated this error */
|
|
26
|
-
readonly provider: string;
|
|
27
|
-
/** Original error that caused this error */
|
|
28
|
-
readonly cause?: Error;
|
|
29
|
-
constructor(message: string, code: LLMErrorCode, provider: string, options?: {
|
|
30
|
-
statusCode?: number;
|
|
31
|
-
retryable?: boolean;
|
|
32
|
-
cause?: Error;
|
|
33
|
-
});
|
|
34
|
-
/**
|
|
35
|
-
* Determines default retry behavior based on error code.
|
|
36
|
-
*/
|
|
37
|
-
private isRetryableByDefault;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Role of a message in a chat conversation.
|
|
41
|
-
*/
|
|
42
|
-
export type ChatRole = 'system' | 'user' | 'assistant' | 'tool';
|
|
43
|
-
/**
|
|
44
|
-
* A function call within a tool call.
|
|
45
|
-
*/
|
|
46
|
-
export interface ToolCallFunction {
|
|
47
|
-
/** Name of the function to call */
|
|
48
|
-
name: string;
|
|
49
|
-
/** JSON-encoded arguments for the function */
|
|
50
|
-
arguments: string;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* A tool call requested by the model.
|
|
54
|
-
*/
|
|
55
|
-
export interface ToolCall {
|
|
56
|
-
/** Unique identifier for this tool call */
|
|
57
|
-
id: string;
|
|
58
|
-
/** Type of tool (currently only 'function' is supported) */
|
|
59
|
-
type: 'function';
|
|
60
|
-
/** Function call details */
|
|
61
|
-
function: ToolCallFunction;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* A message in a chat conversation.
|
|
65
|
-
* Represents a single turn from system, user, assistant, or tool.
|
|
66
|
-
*/
|
|
67
|
-
export interface ChatMessage {
|
|
68
|
-
/** The role of the message author */
|
|
69
|
-
role: ChatRole;
|
|
70
|
-
/** The content of the message */
|
|
71
|
-
content: string;
|
|
72
|
-
/** Optional name of the author (for multi-user conversations) */
|
|
73
|
-
name?: string;
|
|
74
|
-
/** Tool call ID this message is responding to (for tool role) */
|
|
75
|
-
tool_call_id?: string;
|
|
76
|
-
/** Tool calls requested by the assistant */
|
|
77
|
-
tool_calls?: ToolCall[];
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Reason the model stopped generating.
|
|
81
|
-
*/
|
|
82
|
-
export type FinishReason = 'stop' | 'tool_calls' | 'length' | 'content_filter';
|
|
83
|
-
/**
|
|
84
|
-
* Delta for a tool call in a streaming response.
|
|
85
|
-
* Fields are optional as they arrive incrementally.
|
|
86
|
-
*/
|
|
87
|
-
export interface ToolCallDelta {
|
|
88
|
-
/** Index of the tool call in the array */
|
|
89
|
-
index: number;
|
|
90
|
-
/** Tool call ID (sent in first chunk) */
|
|
91
|
-
id?: string;
|
|
92
|
-
/** Type of tool (sent in first chunk) */
|
|
93
|
-
type?: 'function';
|
|
94
|
-
/** Function details (arrives incrementally) */
|
|
95
|
-
function?: {
|
|
96
|
-
/** Function name (sent in first chunk) */
|
|
97
|
-
name?: string;
|
|
98
|
-
/** Arguments (streamed incrementally) */
|
|
99
|
-
arguments?: string;
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* A chunk of a streaming chat response.
|
|
104
|
-
* Represents incremental content as it's generated.
|
|
105
|
-
*/
|
|
106
|
-
export interface ChatChunk {
|
|
107
|
-
/** Unique identifier for this completion */
|
|
108
|
-
id: string;
|
|
109
|
-
/** Incremental content (null when no content in this chunk) */
|
|
110
|
-
content: string | null;
|
|
111
|
-
/** Role of the response (typically only in first chunk) */
|
|
112
|
-
role?: ChatRole;
|
|
113
|
-
/** Reason for stopping (only in final chunk) */
|
|
114
|
-
finish_reason: FinishReason | null;
|
|
115
|
-
/** Incremental tool call data */
|
|
116
|
-
tool_calls?: ToolCallDelta[];
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* JSON Schema definition for function parameters.
|
|
120
|
-
* Uses Record for flexibility with standard JSON Schema properties.
|
|
121
|
-
*/
|
|
122
|
-
export type JSONSchema = Record<string, unknown>;
|
|
123
|
-
/**
|
|
124
|
-
* Function definition within a tool.
|
|
125
|
-
*/
|
|
126
|
-
export interface ToolFunctionDefinition {
|
|
127
|
-
/** Name of the function */
|
|
128
|
-
name: string;
|
|
129
|
-
/** Description of what the function does */
|
|
130
|
-
description: string;
|
|
131
|
-
/** JSON Schema describing the function parameters */
|
|
132
|
-
parameters: JSONSchema;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* A tool definition that can be provided to the model.
|
|
136
|
-
* Defines tools the model can choose to call.
|
|
137
|
-
*/
|
|
138
|
-
export interface ToolDefinition {
|
|
139
|
-
/** Type of tool (currently only 'function' is supported) */
|
|
140
|
-
type: 'function';
|
|
141
|
-
/** Function definition */
|
|
142
|
-
function: ToolFunctionDefinition;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Supported LLM providers.
|
|
146
|
-
*/
|
|
147
|
-
export type LLMProvider = 'azure-openai';
|
|
148
|
-
/**
|
|
149
|
-
* Configuration for an LLM provider connection.
|
|
150
|
-
* Contains credentials, model selection, and generation parameters.
|
|
151
|
-
* Authentication uses Entra ID via TokenCredential.
|
|
152
|
-
*/
|
|
153
|
-
export interface LLMConfig {
|
|
154
|
-
/** The LLM provider to use */
|
|
155
|
-
provider: LLMProvider;
|
|
156
|
-
/** Model or deployment name */
|
|
157
|
-
model: string;
|
|
158
|
-
/** API endpoint URL */
|
|
159
|
-
endpoint: string;
|
|
160
|
-
/** Entra ID token credential for authentication */
|
|
161
|
-
credential: TokenCredential;
|
|
162
|
-
/** API version (required for Azure OpenAI) */
|
|
163
|
-
apiVersion?: string;
|
|
164
|
-
/** Sampling temperature (0-2, default varies by provider) */
|
|
165
|
-
temperature?: number;
|
|
166
|
-
/** Maximum tokens to generate */
|
|
167
|
-
maxTokens?: number;
|
|
168
|
-
/** Top-p (nucleus) sampling parameter (0-1) */
|
|
169
|
-
topP?: number;
|
|
170
|
-
/** Frequency penalty (-2 to 2) */
|
|
171
|
-
frequencyPenalty?: number;
|
|
172
|
-
/** Presence penalty (-2 to 2) */
|
|
173
|
-
presencePenalty?: number;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Token usage statistics for a completion.
|
|
177
|
-
*/
|
|
178
|
-
export interface TokenUsage {
|
|
179
|
-
/** Number of tokens in the prompt */
|
|
180
|
-
prompt_tokens: number;
|
|
181
|
-
/** Number of tokens in the completion */
|
|
182
|
-
completion_tokens: number;
|
|
183
|
-
/** Total tokens used (prompt + completion) */
|
|
184
|
-
total_tokens: number;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* A choice within an LLM response.
|
|
188
|
-
* Represents one possible completion (typically just one for chat).
|
|
189
|
-
*/
|
|
190
|
-
export interface LLMResponseChoice {
|
|
191
|
-
/** Index of this choice */
|
|
192
|
-
index: number;
|
|
193
|
-
/** The generated message */
|
|
194
|
-
message: ChatMessage;
|
|
195
|
-
/** Reason the model stopped generating */
|
|
196
|
-
finish_reason: FinishReason;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Full (non-streaming) response from an LLM.
|
|
200
|
-
*/
|
|
201
|
-
export interface LLMResponse {
|
|
202
|
-
/** Unique identifier for this completion */
|
|
203
|
-
id: string;
|
|
204
|
-
/** List of completion choices */
|
|
205
|
-
choices: LLMResponseChoice[];
|
|
206
|
-
/** Token usage statistics */
|
|
207
|
-
usage: TokenUsage;
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/types.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM Provider Types
|
|
3
|
-
*
|
|
4
|
-
* Type definitions for the LLM provider abstraction layer.
|
|
5
|
-
* Designed to be compatible with OpenAI/Azure OpenAI API shapes (Responses API).
|
|
6
|
-
* Authentication uses Entra ID (Azure AD) via @azure/identity TokenCredential.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Custom error class for LLM provider errors.
|
|
10
|
-
* Includes metadata for error handling and retry logic.
|
|
11
|
-
*/
|
|
12
|
-
export class LLMError extends Error {
|
|
13
|
-
/** Categorized error code for programmatic handling */
|
|
14
|
-
code;
|
|
15
|
-
/** HTTP status code if applicable */
|
|
16
|
-
statusCode;
|
|
17
|
-
/** Whether this error can be retried */
|
|
18
|
-
retryable;
|
|
19
|
-
/** Provider that generated this error */
|
|
20
|
-
provider;
|
|
21
|
-
/** Original error that caused this error */
|
|
22
|
-
cause;
|
|
23
|
-
constructor(message, code, provider, options) {
|
|
24
|
-
super(message);
|
|
25
|
-
this.name = 'LLMError';
|
|
26
|
-
this.code = code;
|
|
27
|
-
this.provider = provider;
|
|
28
|
-
this.statusCode = options?.statusCode;
|
|
29
|
-
this.retryable = options?.retryable ?? this.isRetryableByDefault(code);
|
|
30
|
-
// Set cause for error chaining (ES2022+)
|
|
31
|
-
if (options?.cause) {
|
|
32
|
-
this.cause = options.cause;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Determines default retry behavior based on error code.
|
|
37
|
-
*/
|
|
38
|
-
isRetryableByDefault(code) {
|
|
39
|
-
switch (code) {
|
|
40
|
-
case 'RATE_LIMITED':
|
|
41
|
-
case 'TIMEOUT':
|
|
42
|
-
case 'SERVER_ERROR':
|
|
43
|
-
case 'NETWORK_ERROR':
|
|
44
|
-
return true;
|
|
45
|
-
case 'AUTH_FAILED':
|
|
46
|
-
case 'INVALID_REQUEST':
|
|
47
|
-
return false;
|
|
48
|
-
default:
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,uDAAuD;IAC9C,IAAI,CAAe;IAE5B,qCAAqC;IAC5B,UAAU,CAAqB;IAExC,wCAAwC;IAC/B,SAAS,CAAU;IAE5B,yCAAyC;IAChC,QAAQ,CAAS;IAE1B,4CAA4C;IACnC,KAAK,CAAS;IAEvB,YACE,OAAe,EACf,IAAkB,EAClB,QAAgB,EAChB,OAIC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEvE,yCAAyC;QACzC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAkB;QAC7C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,cAAc,CAAC;YACpB,KAAK,SAAS,CAAC;YACf,KAAK,cAAc,CAAC;YACpB,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC;YACd,KAAK,aAAa,CAAC;YACnB,KAAK,iBAAiB;gBACpB,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/providers/types.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM Provider Types Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests for LLMError class and type definitions.
|
|
5
|
-
*/
|
|
6
|
-
import { describe, it } from 'node:test';
|
|
7
|
-
import assert from 'node:assert';
|
|
8
|
-
import { LLMError } from './types.js';
|
|
9
|
-
describe('LLMError', () => {
|
|
10
|
-
describe('constructor', () => {
|
|
11
|
-
it('should set message correctly', () => {
|
|
12
|
-
const error = new LLMError('Test message', 'AUTH_FAILED', 'test-provider');
|
|
13
|
-
assert.strictEqual(error.message, 'Test message');
|
|
14
|
-
});
|
|
15
|
-
it('should set code correctly', () => {
|
|
16
|
-
const error = new LLMError('Test', 'RATE_LIMITED', 'test-provider');
|
|
17
|
-
assert.strictEqual(error.code, 'RATE_LIMITED');
|
|
18
|
-
});
|
|
19
|
-
it('should set provider correctly', () => {
|
|
20
|
-
const error = new LLMError('Test', 'TIMEOUT', 'azure-openai');
|
|
21
|
-
assert.strictEqual(error.provider, 'azure-openai');
|
|
22
|
-
});
|
|
23
|
-
it('should set statusCode from options', () => {
|
|
24
|
-
const error = new LLMError('Test', 'SERVER_ERROR', 'test-provider', {
|
|
25
|
-
statusCode: 503,
|
|
26
|
-
});
|
|
27
|
-
assert.strictEqual(error.statusCode, 503);
|
|
28
|
-
});
|
|
29
|
-
it('should leave statusCode undefined when not provided', () => {
|
|
30
|
-
const error = new LLMError('Test', 'SERVER_ERROR', 'test-provider');
|
|
31
|
-
assert.strictEqual(error.statusCode, undefined);
|
|
32
|
-
});
|
|
33
|
-
it('should set cause from options', () => {
|
|
34
|
-
const originalError = new Error('Original error');
|
|
35
|
-
const error = new LLMError('Wrapped', 'NETWORK_ERROR', 'test-provider', {
|
|
36
|
-
cause: originalError,
|
|
37
|
-
});
|
|
38
|
-
assert.strictEqual(error.cause, originalError);
|
|
39
|
-
});
|
|
40
|
-
it('should leave cause undefined when not provided', () => {
|
|
41
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test-provider');
|
|
42
|
-
assert.strictEqual(error.cause, undefined);
|
|
43
|
-
});
|
|
44
|
-
it('should set all options together', () => {
|
|
45
|
-
const cause = new Error('Root cause');
|
|
46
|
-
const error = new LLMError('Complete error', 'RATE_LIMITED', 'azure-openai', {
|
|
47
|
-
statusCode: 429,
|
|
48
|
-
retryable: true,
|
|
49
|
-
cause,
|
|
50
|
-
});
|
|
51
|
-
assert.strictEqual(error.message, 'Complete error');
|
|
52
|
-
assert.strictEqual(error.code, 'RATE_LIMITED');
|
|
53
|
-
assert.strictEqual(error.provider, 'azure-openai');
|
|
54
|
-
assert.strictEqual(error.statusCode, 429);
|
|
55
|
-
assert.strictEqual(error.retryable, true);
|
|
56
|
-
assert.strictEqual(error.cause, cause);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
describe('name property', () => {
|
|
60
|
-
it('should be "LLMError"', () => {
|
|
61
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test');
|
|
62
|
-
assert.strictEqual(error.name, 'LLMError');
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe('inheritance', () => {
|
|
66
|
-
it('should be an instance of Error', () => {
|
|
67
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test');
|
|
68
|
-
assert.ok(error instanceof Error);
|
|
69
|
-
});
|
|
70
|
-
it('should be an instance of LLMError', () => {
|
|
71
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test');
|
|
72
|
-
assert.ok(error instanceof LLMError);
|
|
73
|
-
});
|
|
74
|
-
it('should have a stack trace', () => {
|
|
75
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test');
|
|
76
|
-
assert.ok(typeof error.stack === 'string');
|
|
77
|
-
assert.ok(error.stack.length > 0);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
describe('isRetryableByDefault', () => {
|
|
81
|
-
describe('retryable error codes', () => {
|
|
82
|
-
const retryableErrorCodes = [
|
|
83
|
-
'RATE_LIMITED',
|
|
84
|
-
'TIMEOUT',
|
|
85
|
-
'SERVER_ERROR',
|
|
86
|
-
'NETWORK_ERROR',
|
|
87
|
-
];
|
|
88
|
-
for (const code of retryableErrorCodes) {
|
|
89
|
-
it(`should default retryable to true for ${code}`, () => {
|
|
90
|
-
const error = new LLMError('Test', code, 'test-provider');
|
|
91
|
-
assert.strictEqual(error.retryable, true, `${code} should be retryable by default`);
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
describe('non-retryable error codes', () => {
|
|
96
|
-
const nonRetryableErrorCodes = ['AUTH_FAILED', 'INVALID_REQUEST'];
|
|
97
|
-
for (const code of nonRetryableErrorCodes) {
|
|
98
|
-
it(`should default retryable to false for ${code}`, () => {
|
|
99
|
-
const error = new LLMError('Test', code, 'test-provider');
|
|
100
|
-
assert.strictEqual(error.retryable, false, `${code} should not be retryable by default`);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
describe('custom retryable override', () => {
|
|
106
|
-
it('should allow overriding retryable to false for a normally-retryable code', () => {
|
|
107
|
-
const error = new LLMError('Test', 'RATE_LIMITED', 'test-provider', {
|
|
108
|
-
retryable: false,
|
|
109
|
-
});
|
|
110
|
-
assert.strictEqual(error.retryable, false);
|
|
111
|
-
});
|
|
112
|
-
it('should allow overriding retryable to true for a normally-non-retryable code', () => {
|
|
113
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test-provider', {
|
|
114
|
-
retryable: true,
|
|
115
|
-
});
|
|
116
|
-
assert.strictEqual(error.retryable, true);
|
|
117
|
-
});
|
|
118
|
-
it('should respect explicit retryable false even for SERVER_ERROR', () => {
|
|
119
|
-
const error = new LLMError('Test', 'SERVER_ERROR', 'test-provider', {
|
|
120
|
-
retryable: false,
|
|
121
|
-
});
|
|
122
|
-
assert.strictEqual(error.retryable, false);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
describe('readonly properties', () => {
|
|
126
|
-
it('should have readonly code', () => {
|
|
127
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test');
|
|
128
|
-
// TypeScript enforces this at compile time, but we verify the value is set correctly
|
|
129
|
-
assert.strictEqual(error.code, 'AUTH_FAILED');
|
|
130
|
-
});
|
|
131
|
-
it('should have readonly provider', () => {
|
|
132
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test-provider');
|
|
133
|
-
assert.strictEqual(error.provider, 'test-provider');
|
|
134
|
-
});
|
|
135
|
-
it('should have readonly retryable', () => {
|
|
136
|
-
const error = new LLMError('Test', 'AUTH_FAILED', 'test');
|
|
137
|
-
assert.strictEqual(error.retryable, false);
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
//# sourceMappingURL=types.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/providers/types.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Beads Tool
|
|
3
|
-
*
|
|
4
|
-
* Wraps the `bd` CLI for issue tracking via the beads system.
|
|
5
|
-
* Supports creating, closing, listing, and inspecting issues
|
|
6
|
-
* and their dependency trees.
|
|
7
|
-
*
|
|
8
|
-
* @see https://github.com/steveyegge/beads
|
|
9
|
-
*/
|
|
10
|
-
import { execFile as nodeExecFile } from 'node:child_process';
|
|
11
|
-
import type { Tool } from '../interface.js';
|
|
12
|
-
/** Type for the execFile callback-style function, used for dependency injection in tests */
|
|
13
|
-
type ExecFileFn = typeof nodeExecFile;
|
|
14
|
-
/**
|
|
15
|
-
* Create a beads tool instance.
|
|
16
|
-
*
|
|
17
|
-
* Accepts an optional `execFn` for dependency injection in tests.
|
|
18
|
-
* When omitted, uses `node:child_process.execFile`.
|
|
19
|
-
*
|
|
20
|
-
* @param execFn - Optional execFile function for testing
|
|
21
|
-
* @returns A Tool implementation for beads
|
|
22
|
-
*/
|
|
23
|
-
export declare function createBeadsTool(execFn?: ExecFileFn): Tool;
|
|
24
|
-
/** Default beads tool instance using real execFile */
|
|
25
|
-
export declare const beadsTool: Tool;
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=beads.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"beads.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/beads.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAQ5C,4FAA4F;AAC5F,KAAK,UAAU,GAAG,OAAO,YAAY,CAAC;AAsGtC;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CA2EzD;AAED,sDAAsD;AACtD,eAAO,MAAM,SAAS,EAAE,IAAwB,CAAC"}
|
package/dist/tools/cli/beads.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Beads Tool
|
|
3
|
-
*
|
|
4
|
-
* Wraps the `bd` CLI for issue tracking via the beads system.
|
|
5
|
-
* Supports creating, closing, listing, and inspecting issues
|
|
6
|
-
* and their dependency trees.
|
|
7
|
-
*
|
|
8
|
-
* @see https://github.com/steveyegge/beads
|
|
9
|
-
*/
|
|
10
|
-
import { execFile as nodeExecFile } from 'node:child_process';
|
|
11
|
-
import { ToolError } from '../types.js';
|
|
12
|
-
/** Valid beads commands */
|
|
13
|
-
const BEADS_COMMANDS = ['create', 'close', 'list', 'ready', 'show', 'dep-tree'];
|
|
14
|
-
/** Input schema for the beads tool */
|
|
15
|
-
const inputSchema = {
|
|
16
|
-
type: 'object',
|
|
17
|
-
properties: {
|
|
18
|
-
command: {
|
|
19
|
-
type: 'string',
|
|
20
|
-
enum: [...BEADS_COMMANDS],
|
|
21
|
-
description: 'Beads command to execute',
|
|
22
|
-
},
|
|
23
|
-
args: {
|
|
24
|
-
type: 'object',
|
|
25
|
-
description: 'Command-specific arguments',
|
|
26
|
-
properties: {
|
|
27
|
-
title: { type: 'string', description: 'Issue title (for create)' },
|
|
28
|
-
description: { type: 'string', description: 'Issue description (for create)' },
|
|
29
|
-
type: { type: 'string', enum: ['task', 'epic'], description: 'Issue type (for create)' },
|
|
30
|
-
priority: { type: 'number', description: 'Priority level (for create)' },
|
|
31
|
-
parent: { type: 'string', description: 'Parent issue ID (for create)' },
|
|
32
|
-
deps: { type: 'string', description: 'Comma-separated dependency IDs (for create)' },
|
|
33
|
-
label: { type: 'string', description: 'Label to apply (for create)' },
|
|
34
|
-
id: { type: 'string', description: 'Issue ID (for close, show, dep-tree)' },
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
required: ['command'],
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Build the `bd` CLI argument array for a given command and args.
|
|
42
|
-
*
|
|
43
|
-
* @param command - The beads command to run
|
|
44
|
-
* @param args - Command-specific arguments
|
|
45
|
-
* @param toolName - Tool name for error reporting
|
|
46
|
-
* @returns Array of string arguments to pass to `bd`
|
|
47
|
-
*/
|
|
48
|
-
function buildArgs(command, args, toolName) {
|
|
49
|
-
switch (command) {
|
|
50
|
-
case 'create': {
|
|
51
|
-
const title = args?.title;
|
|
52
|
-
if (typeof title !== 'string' || title.trim().length === 0) {
|
|
53
|
-
throw new ToolError('title is required for create command', 'INVALID_INPUT', toolName);
|
|
54
|
-
}
|
|
55
|
-
const result = ['create', title];
|
|
56
|
-
if (typeof args?.description === 'string' && args.description.length > 0) {
|
|
57
|
-
result.push(`--description=${args.description}`);
|
|
58
|
-
}
|
|
59
|
-
if (args?.type === 'epic') {
|
|
60
|
-
result.push('--type', 'epic');
|
|
61
|
-
}
|
|
62
|
-
if (typeof args?.priority === 'number') {
|
|
63
|
-
result.push('-p', String(args.priority));
|
|
64
|
-
}
|
|
65
|
-
if (typeof args?.parent === 'string' && args.parent.length > 0) {
|
|
66
|
-
result.push('--parent', args.parent);
|
|
67
|
-
}
|
|
68
|
-
if (typeof args?.deps === 'string' && args.deps.length > 0) {
|
|
69
|
-
result.push('--deps', args.deps);
|
|
70
|
-
}
|
|
71
|
-
if (typeof args?.label === 'string' && args.label.length > 0) {
|
|
72
|
-
result.push('-l', args.label);
|
|
73
|
-
}
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
76
|
-
case 'close': {
|
|
77
|
-
const id = args?.id;
|
|
78
|
-
if (typeof id !== 'string' || id.trim().length === 0) {
|
|
79
|
-
throw new ToolError('id is required for close command', 'INVALID_INPUT', toolName);
|
|
80
|
-
}
|
|
81
|
-
return ['close', id];
|
|
82
|
-
}
|
|
83
|
-
case 'list':
|
|
84
|
-
return ['list'];
|
|
85
|
-
case 'ready':
|
|
86
|
-
return ['ready'];
|
|
87
|
-
case 'show': {
|
|
88
|
-
const id = args?.id;
|
|
89
|
-
if (typeof id !== 'string' || id.trim().length === 0) {
|
|
90
|
-
throw new ToolError('id is required for show command', 'INVALID_INPUT', toolName);
|
|
91
|
-
}
|
|
92
|
-
return ['show', id];
|
|
93
|
-
}
|
|
94
|
-
case 'dep-tree': {
|
|
95
|
-
const id = args?.id;
|
|
96
|
-
if (typeof id !== 'string' || id.trim().length === 0) {
|
|
97
|
-
throw new ToolError('id is required for dep-tree command', 'INVALID_INPUT', toolName);
|
|
98
|
-
}
|
|
99
|
-
return ['dep', 'tree', id];
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Create a beads tool instance.
|
|
105
|
-
*
|
|
106
|
-
* Accepts an optional `execFn` for dependency injection in tests.
|
|
107
|
-
* When omitted, uses `node:child_process.execFile`.
|
|
108
|
-
*
|
|
109
|
-
* @param execFn - Optional execFile function for testing
|
|
110
|
-
* @returns A Tool implementation for beads
|
|
111
|
-
*/
|
|
112
|
-
export function createBeadsTool(execFn) {
|
|
113
|
-
const exec = execFn ?? nodeExecFile;
|
|
114
|
-
return {
|
|
115
|
-
name: 'beads',
|
|
116
|
-
description: 'Manage issues and work tracking via the beads (bd) CLI',
|
|
117
|
-
inputSchema,
|
|
118
|
-
async execute(input, context) {
|
|
119
|
-
// Check permission — beads runs as a CLI command
|
|
120
|
-
if (!context.permissions.allowTerminal) {
|
|
121
|
-
throw new ToolError('Terminal permission denied', 'PERMISSION_DENIED', 'beads');
|
|
122
|
-
}
|
|
123
|
-
// Validate command
|
|
124
|
-
const command = input.command;
|
|
125
|
-
if (typeof command !== 'string' || !BEADS_COMMANDS.includes(command)) {
|
|
126
|
-
throw new ToolError(`command must be one of: ${BEADS_COMMANDS.join(', ')}`, 'INVALID_INPUT', 'beads');
|
|
127
|
-
}
|
|
128
|
-
const args = (input.args ?? undefined);
|
|
129
|
-
const bdArgs = buildArgs(command, args, 'beads');
|
|
130
|
-
// Verify bd is available
|
|
131
|
-
await new Promise((resolve, reject) => {
|
|
132
|
-
exec('bd', ['--version'], { timeout: 5000 }, (error) => {
|
|
133
|
-
if (error) {
|
|
134
|
-
reject(new ToolError('beads (bd) CLI not found. Install from https://github.com/steveyegge/beads', 'NOT_FOUND', 'beads', { cause: error }));
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
resolve();
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
// Execute the bd command
|
|
142
|
-
return new Promise((resolve, reject) => {
|
|
143
|
-
exec('bd', bdArgs, { cwd: context.workingDir, timeout: 30_000 }, (error, stdout, stderr) => {
|
|
144
|
-
let output = '';
|
|
145
|
-
if (stdout)
|
|
146
|
-
output += stdout;
|
|
147
|
-
if (stderr) {
|
|
148
|
-
if (output.length > 0 && !output.endsWith('\n'))
|
|
149
|
-
output += '\n';
|
|
150
|
-
if (stderr.length > 0)
|
|
151
|
-
output += stderr;
|
|
152
|
-
}
|
|
153
|
-
if (error) {
|
|
154
|
-
reject(new ToolError(`bd ${command} failed: ${output || error.message}`, 'EXECUTION_FAILED', 'beads', { cause: error }));
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
resolve({
|
|
158
|
-
success: true,
|
|
159
|
-
output: output.trim(),
|
|
160
|
-
metadata: {
|
|
161
|
-
command,
|
|
162
|
-
args: bdArgs,
|
|
163
|
-
},
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
},
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
/** Default beads tool instance using real execFile */
|
|
171
|
-
export const beadsTool = createBeadsTool();
|
|
172
|
-
//# sourceMappingURL=beads.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"beads.js","sourceRoot":"","sources":["../../../src/tools/cli/beads.ts"],"names":[],"mappings":"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"}
|