@takutakahashi/claude-agentapi 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/.claude/config.json.example +88 -0
  2. package/.env.example +97 -0
  3. package/LICENSE +21 -0
  4. package/README.md +815 -0
  5. package/bin/cli.js +78 -0
  6. package/dist/__tests__/routes/action.test.d.ts +2 -0
  7. package/dist/__tests__/routes/action.test.d.ts.map +1 -0
  8. package/dist/__tests__/routes/action.test.js +262 -0
  9. package/dist/__tests__/routes/action.test.js.map +1 -0
  10. package/dist/__tests__/routes/message.test.d.ts +2 -0
  11. package/dist/__tests__/routes/message.test.d.ts.map +1 -0
  12. package/dist/__tests__/routes/message.test.js +94 -0
  13. package/dist/__tests__/routes/message.test.js.map +1 -0
  14. package/dist/__tests__/routes/messages.test.d.ts +2 -0
  15. package/dist/__tests__/routes/messages.test.d.ts.map +1 -0
  16. package/dist/__tests__/routes/messages.test.js +105 -0
  17. package/dist/__tests__/routes/messages.test.js.map +1 -0
  18. package/dist/__tests__/routes/status.test.d.ts +2 -0
  19. package/dist/__tests__/routes/status.test.d.ts.map +1 -0
  20. package/dist/__tests__/routes/status.test.js +56 -0
  21. package/dist/__tests__/routes/status.test.js.map +1 -0
  22. package/dist/__tests__/routes/tool_status.test.d.ts +2 -0
  23. package/dist/__tests__/routes/tool_status.test.d.ts.map +1 -0
  24. package/dist/__tests__/routes/tool_status.test.js +93 -0
  25. package/dist/__tests__/routes/tool_status.test.js.map +1 -0
  26. package/dist/__tests__/services/session.test.d.ts +2 -0
  27. package/dist/__tests__/services/session.test.d.ts.map +1 -0
  28. package/dist/__tests__/services/session.test.js +121 -0
  29. package/dist/__tests__/services/session.test.js.map +1 -0
  30. package/dist/__tests__/types/api.test.d.ts +2 -0
  31. package/dist/__tests__/types/api.test.d.ts.map +1 -0
  32. package/dist/__tests__/types/api.test.js +256 -0
  33. package/dist/__tests__/types/api.test.js.map +1 -0
  34. package/dist/__tests__/utils/config.test.d.ts +2 -0
  35. package/dist/__tests__/utils/config.test.d.ts.map +1 -0
  36. package/dist/__tests__/utils/config.test.js +72 -0
  37. package/dist/__tests__/utils/config.test.js.map +1 -0
  38. package/dist/__tests__/utils/logger.test.d.ts +2 -0
  39. package/dist/__tests__/utils/logger.test.d.ts.map +1 -0
  40. package/dist/__tests__/utils/logger.test.js +56 -0
  41. package/dist/__tests__/utils/logger.test.js.map +1 -0
  42. package/dist/__tests__/utils/sse.test.d.ts +2 -0
  43. package/dist/__tests__/utils/sse.test.d.ts.map +1 -0
  44. package/dist/__tests__/utils/sse.test.js +76 -0
  45. package/dist/__tests__/utils/sse.test.js.map +1 -0
  46. package/dist/index.d.ts +2 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +69 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/routes/action.d.ts +3 -0
  51. package/dist/routes/action.d.ts.map +1 -0
  52. package/dist/routes/action.js +106 -0
  53. package/dist/routes/action.js.map +1 -0
  54. package/dist/routes/events.d.ts +3 -0
  55. package/dist/routes/events.d.ts.map +1 -0
  56. package/dist/routes/events.js +27 -0
  57. package/dist/routes/events.js.map +1 -0
  58. package/dist/routes/message.d.ts +3 -0
  59. package/dist/routes/message.d.ts.map +1 -0
  60. package/dist/routes/message.js +69 -0
  61. package/dist/routes/message.js.map +1 -0
  62. package/dist/routes/messages.d.ts +3 -0
  63. package/dist/routes/messages.d.ts.map +1 -0
  64. package/dist/routes/messages.js +15 -0
  65. package/dist/routes/messages.js.map +1 -0
  66. package/dist/routes/status.d.ts +3 -0
  67. package/dist/routes/status.d.ts.map +1 -0
  68. package/dist/routes/status.js +12 -0
  69. package/dist/routes/status.js.map +1 -0
  70. package/dist/routes/tool_status.d.ts +3 -0
  71. package/dist/routes/tool_status.d.ts.map +1 -0
  72. package/dist/routes/tool_status.js +14 -0
  73. package/dist/routes/tool_status.js.map +1 -0
  74. package/dist/server.d.ts +3 -0
  75. package/dist/server.d.ts.map +1 -0
  76. package/dist/server.js +50 -0
  77. package/dist/server.js.map +1 -0
  78. package/dist/services/agent.d.ts +45 -0
  79. package/dist/services/agent.d.ts.map +1 -0
  80. package/dist/services/agent.js +910 -0
  81. package/dist/services/agent.js.map +1 -0
  82. package/dist/services/metrics.d.ts +74 -0
  83. package/dist/services/metrics.d.ts.map +1 -0
  84. package/dist/services/metrics.js +219 -0
  85. package/dist/services/metrics.js.map +1 -0
  86. package/dist/services/session.d.ts +14 -0
  87. package/dist/services/session.d.ts.map +1 -0
  88. package/dist/services/session.js +49 -0
  89. package/dist/services/session.js.map +1 -0
  90. package/dist/types/agent.d.ts +12 -0
  91. package/dist/types/agent.d.ts.map +1 -0
  92. package/dist/types/agent.js +2 -0
  93. package/dist/types/agent.js.map +1 -0
  94. package/dist/types/api.d.ts +161 -0
  95. package/dist/types/api.d.ts.map +1 -0
  96. package/dist/types/api.js +74 -0
  97. package/dist/types/api.js.map +1 -0
  98. package/dist/types/config.d.ts +164 -0
  99. package/dist/types/config.d.ts.map +1 -0
  100. package/dist/types/config.js +6 -0
  101. package/dist/types/config.js.map +1 -0
  102. package/dist/utils/config.d.ts +15 -0
  103. package/dist/utils/config.d.ts.map +1 -0
  104. package/dist/utils/config.js +350 -0
  105. package/dist/utils/config.js.map +1 -0
  106. package/dist/utils/logger.d.ts +10 -0
  107. package/dist/utils/logger.d.ts.map +1 -0
  108. package/dist/utils/logger.js +22 -0
  109. package/dist/utils/logger.js.map +1 -0
  110. package/dist/utils/sse.d.ts +12 -0
  111. package/dist/utils/sse.d.ts.map +1 -0
  112. package/dist/utils/sse.js +43 -0
  113. package/dist/utils/sse.js.map +1 -0
  114. package/dist/utils/telemetry.d.ts +20 -0
  115. package/dist/utils/telemetry.d.ts.map +1 -0
  116. package/dist/utils/telemetry.js +68 -0
  117. package/dist/utils/telemetry.js.map +1 -0
  118. package/package.json +81 -0
@@ -0,0 +1,74 @@
1
+ import { z } from 'zod';
2
+ // API Types based on coder/agentapi specification
3
+ export const MessageSchema = z.object({
4
+ id: z.number(),
5
+ role: z.enum(['user', 'assistant', 'agent', 'tool_result']),
6
+ content: z.string(),
7
+ time: z.string(), // ISO 8601 timestamp
8
+ type: z.enum(['normal', 'question', 'plan']).optional(),
9
+ // Tool execution tracking fields
10
+ toolUseId: z.string().optional(), // ID of tool_use (for 'agent' role messages)
11
+ parentToolUseId: z.string().optional(), // ID of parent tool_use (for 'tool_result' role messages)
12
+ status: z.enum(['success', 'error']).optional(), // Execution status (for 'tool_result' role messages)
13
+ error: z.string().optional(), // Error message (for 'tool_result' role messages with status='error')
14
+ });
15
+ export const MessagesResponseBodySchema = z.object({
16
+ $schema: z.string().optional(),
17
+ messages: z.array(MessageSchema),
18
+ });
19
+ export const ToolStatusResponseBodySchema = z.object({
20
+ $schema: z.string().optional(),
21
+ messages: z.array(MessageSchema),
22
+ });
23
+ export const PostMessageRequestSchema = z.object({
24
+ content: z.string(),
25
+ type: z.enum(['user', 'raw']),
26
+ });
27
+ export const PostMessageResponseSchema = z.object({
28
+ ok: z.boolean(),
29
+ });
30
+ export const StatusResponseSchema = z.object({
31
+ agent_type: z.string(),
32
+ status: z.enum(['running', 'stable']),
33
+ });
34
+ export const UploadResponseSchema = z.object({
35
+ filePath: z.string(),
36
+ ok: z.boolean(),
37
+ });
38
+ // Problem+JSON format for error responses
39
+ export const ProblemJsonSchema = z.object({
40
+ type: z.string(),
41
+ title: z.string(),
42
+ status: z.number(),
43
+ detail: z.string().optional(),
44
+ instance: z.string().optional(),
45
+ });
46
+ // Action request schemas for various agent actions
47
+ export const AnswerQuestionActionSchema = z.object({
48
+ type: z.literal('answer_question'),
49
+ answers: z.record(z.string(), z.union([z.string(), z.array(z.string())])),
50
+ });
51
+ export const ApprovePlanActionSchema = z.object({
52
+ type: z.literal('approve_plan'),
53
+ approved: z.boolean(),
54
+ });
55
+ export const StopAgentActionSchema = z.object({
56
+ type: z.literal('stop_agent'),
57
+ });
58
+ export const PostActionRequestSchema = z.discriminatedUnion('type', [
59
+ AnswerQuestionActionSchema,
60
+ ApprovePlanActionSchema,
61
+ StopAgentActionSchema,
62
+ ]);
63
+ export const PostActionResponseSchema = z.object({
64
+ ok: z.boolean(),
65
+ });
66
+ export const PendingActionSchema = z.object({
67
+ type: z.string(),
68
+ tool_use_id: z.string(),
69
+ content: z.unknown(),
70
+ });
71
+ export const GetActionResponseSchema = z.object({
72
+ pending_actions: z.array(PendingActionSchema),
73
+ });
74
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Claude Code compatible configuration types
3
+ * Based on the same structure used by Claude Code CLI
4
+ */
5
+ /**
6
+ * MCP Server configuration - stdio type
7
+ */
8
+ export interface MCPServerStdioConfig {
9
+ /** Transport type */
10
+ type?: 'stdio';
11
+ /** Command to execute the MCP server */
12
+ command: string;
13
+ /** Arguments to pass to the command */
14
+ args?: string[];
15
+ /** Environment variables for the server process */
16
+ env?: Record<string, string>;
17
+ /** Whether the server is disabled */
18
+ disabled?: boolean;
19
+ }
20
+ /**
21
+ * MCP Server configuration - HTTP type
22
+ */
23
+ export interface MCPServerHttpConfig {
24
+ /** Transport type */
25
+ type: 'http' | 'sse';
26
+ /** Server URL */
27
+ url: string;
28
+ /** HTTP headers */
29
+ headers?: Record<string, string>;
30
+ /** Environment variables */
31
+ env?: Record<string, string>;
32
+ /** Whether the server is disabled */
33
+ disabled?: boolean;
34
+ }
35
+ /**
36
+ * MCP Server configuration (union type)
37
+ */
38
+ export type MCPServerConfig = MCPServerStdioConfig | MCPServerHttpConfig;
39
+ /**
40
+ * MCP Servers configuration map
41
+ */
42
+ export type MCPServersConfig = Record<string, MCPServerConfig>;
43
+ /**
44
+ * Plugin configuration
45
+ */
46
+ export interface PluginConfig {
47
+ /** Whether the plugin is enabled */
48
+ enabled?: boolean;
49
+ /** Plugin-specific configuration */
50
+ config?: Record<string, unknown>;
51
+ }
52
+ /**
53
+ * Plugins configuration map
54
+ */
55
+ export type PluginsConfig = Record<string, PluginConfig>;
56
+ /**
57
+ * Hook configuration
58
+ */
59
+ export interface HookConfig {
60
+ /** Command to execute */
61
+ command: string;
62
+ /** Arguments to pass to the command */
63
+ args?: string[];
64
+ /** Environment variables for the hook process */
65
+ env?: Record<string, string>;
66
+ }
67
+ /**
68
+ * Hooks configuration map
69
+ * Hooks are executed at specific events (e.g., user-prompt-submit-hook, tool-call-hook)
70
+ */
71
+ export type HooksConfig = Record<string, HookConfig>;
72
+ /**
73
+ * Custom command configuration
74
+ */
75
+ export interface CommandConfig {
76
+ /** Command to execute */
77
+ command: string;
78
+ /** Arguments to pass to the command */
79
+ args?: string[];
80
+ /** Environment variables for the command process */
81
+ env?: Record<string, string>;
82
+ /** Description of what the command does */
83
+ description?: string;
84
+ }
85
+ /**
86
+ * Commands configuration map
87
+ * Custom commands that can be invoked (e.g., /deploy, /test)
88
+ */
89
+ export type CommandsConfig = Record<string, CommandConfig>;
90
+ /**
91
+ * Main Claude configuration structure
92
+ * Compatible with Claude Code's .claude/config.json
93
+ */
94
+ export interface ClaudeConfig {
95
+ /** MCP server configurations */
96
+ mcpServers?: MCPServersConfig;
97
+ /** Plugin configurations */
98
+ plugins?: PluginsConfig;
99
+ /** Skills configurations (alias for plugins) */
100
+ skills?: PluginsConfig;
101
+ /** Hook configurations */
102
+ hooks?: HooksConfig;
103
+ /** Custom command configurations */
104
+ commands?: CommandsConfig;
105
+ /** Allowed tools (for MCP tool permissions) - supports wildcards like "mcp__servername__*" */
106
+ allowedTools?: string[];
107
+ /** Environment variables */
108
+ env?: Record<string, string>;
109
+ }
110
+ /**
111
+ * Claude Code settings.json structure
112
+ */
113
+ export interface ClaudeSettings {
114
+ /** Enabled plugins map (name@marketplace -> boolean) */
115
+ enabledPlugins?: Record<string, boolean>;
116
+ /** Environment variables */
117
+ env?: Record<string, string>;
118
+ /** Extra known marketplaces configuration */
119
+ extraKnownMarketplaces?: Record<string, {
120
+ source: {
121
+ source: string;
122
+ path: string;
123
+ };
124
+ }>;
125
+ /** Other settings */
126
+ settings?: Record<string, unknown>;
127
+ }
128
+ /**
129
+ * SDK plugin configuration
130
+ */
131
+ export interface SdkPluginConfig {
132
+ type: 'local';
133
+ path: string;
134
+ }
135
+ /**
136
+ * Setting source type for loading settings and CLAUDE.md files
137
+ */
138
+ export type SettingSource = 'user' | 'project' | 'local';
139
+ /**
140
+ * Merged configuration with environment variable overrides
141
+ */
142
+ export interface ResolvedConfig {
143
+ /** Working directory for the agent */
144
+ workingDirectory: string;
145
+ /** Permission mode */
146
+ permissionMode: 'default' | 'acceptEdits' | 'bypassPermissions';
147
+ /** MCP servers to be passed to the Agent SDK */
148
+ mcpServers?: MCPServersConfig;
149
+ /** Plugins/skills configuration (from config.json) */
150
+ plugins?: PluginsConfig;
151
+ /** Resolved SDK plugins (from settings.json) */
152
+ sdkPlugins?: SdkPluginConfig[];
153
+ /** Hooks configuration */
154
+ hooks?: HooksConfig;
155
+ /** Custom commands configuration */
156
+ commands?: CommandsConfig;
157
+ /** Allowed tools (for MCP tool permissions) */
158
+ allowedTools?: string[];
159
+ /** Environment variables */
160
+ env?: Record<string, string>;
161
+ /** Setting sources for loading CLAUDE.md and settings files */
162
+ settingSources?: SettingSource[];
163
+ }
164
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Claude Code compatible configuration types
3
+ * Based on the same structure used by Claude Code CLI
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,15 @@
1
+ import type { ClaudeConfig, ResolvedConfig } from '../types/config.js';
2
+ /**
3
+ * Load Claude configuration from .claude/config.json
4
+ * Checks in order:
5
+ * 1. Global config: ~/.claude/config.json
6
+ * 2. Project config: .claude/config.json (current working directory)
7
+ * 3. Working directory config: {workingDirectory}/.claude/config.json
8
+ * 4. --mcp-config option (highest priority)
9
+ */
10
+ export declare function loadClaudeConfig(workingDirectory?: string): Promise<ClaudeConfig>;
11
+ /**
12
+ * Resolve final configuration with environment variable overrides
13
+ */
14
+ export declare function resolveConfig(): Promise<ResolvedConfig>;
15
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAmF,MAAM,oBAAoB,CAAC;AAgCxJ;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAyCvF;AAgMD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC,CAiG7D"}
@@ -0,0 +1,350 @@
1
+ import { readFile, access, stat } from 'fs/promises';
2
+ import { join } from 'path';
3
+ import { homedir } from 'os';
4
+ import { logger } from './logger.js';
5
+ /**
6
+ * Load MCP config from --mcp-config option
7
+ * Supports both JSON string and file path
8
+ */
9
+ async function loadMcpConfigFromOption() {
10
+ const mcpConfigOption = process.env.CLAUDE_MCP_CONFIG;
11
+ if (!mcpConfigOption) {
12
+ return null;
13
+ }
14
+ try {
15
+ // First, try to parse as JSON string
16
+ try {
17
+ const parsed = JSON.parse(mcpConfigOption);
18
+ logger.info('Loaded MCP config from --mcp-config (JSON string)');
19
+ return parsed;
20
+ }
21
+ catch {
22
+ // If not valid JSON, try as file path
23
+ const content = await readFile(mcpConfigOption, 'utf-8');
24
+ const parsed = JSON.parse(content);
25
+ logger.info(`Loaded MCP config from --mcp-config (file): ${mcpConfigOption}`);
26
+ return parsed;
27
+ }
28
+ }
29
+ catch (error) {
30
+ logger.error(`Failed to load MCP config from --mcp-config: ${error}`);
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Load Claude configuration from .claude/config.json
36
+ * Checks in order:
37
+ * 1. Global config: ~/.claude/config.json
38
+ * 2. Project config: .claude/config.json (current working directory)
39
+ * 3. Working directory config: {workingDirectory}/.claude/config.json
40
+ * 4. --mcp-config option (highest priority)
41
+ */
42
+ export async function loadClaudeConfig(workingDirectory) {
43
+ const configs = [];
44
+ // 1. Load global config
45
+ const globalConfigPath = join(homedir(), '.claude', 'config.json');
46
+ const globalConfig = await loadConfigFile(globalConfigPath);
47
+ if (globalConfig) {
48
+ configs.push(globalConfig);
49
+ logger.info(`Loaded global config from: ${globalConfigPath}`);
50
+ }
51
+ // 2. Load project config (from current working directory)
52
+ const projectConfigPath = join(process.cwd(), '.claude', 'config.json');
53
+ if (projectConfigPath !== globalConfigPath) {
54
+ const projectConfig = await loadConfigFile(projectConfigPath);
55
+ if (projectConfig) {
56
+ configs.push(projectConfig);
57
+ logger.info(`Loaded project config from: ${projectConfigPath}`);
58
+ }
59
+ }
60
+ // 3. Load working directory config (if specified and different)
61
+ if (workingDirectory) {
62
+ const workingDirConfigPath = join(workingDirectory, '.claude', 'config.json');
63
+ if (workingDirConfigPath !== globalConfigPath && workingDirConfigPath !== projectConfigPath) {
64
+ const workingDirConfig = await loadConfigFile(workingDirConfigPath);
65
+ if (workingDirConfig) {
66
+ configs.push(workingDirConfig);
67
+ logger.info(`Loaded working directory config from: ${workingDirConfigPath}`);
68
+ }
69
+ }
70
+ }
71
+ // 4. Load MCP config from --mcp-config option (highest priority)
72
+ const mcpConfigFromOption = await loadMcpConfigFromOption();
73
+ if (mcpConfigFromOption) {
74
+ configs.push(mcpConfigFromOption);
75
+ }
76
+ // Merge all configs (later configs override earlier ones)
77
+ return mergeConfigs(configs);
78
+ }
79
+ /**
80
+ * Load a single config file
81
+ */
82
+ async function loadConfigFile(path) {
83
+ try {
84
+ // Check if file exists
85
+ await access(path);
86
+ const content = await readFile(path, 'utf-8');
87
+ const config = JSON.parse(content);
88
+ return config;
89
+ }
90
+ catch (error) {
91
+ // File doesn't exist or can't be read - this is not an error
92
+ if (error.code === 'ENOENT') {
93
+ logger.debug(`Config file not found: ${path}`);
94
+ }
95
+ else {
96
+ logger.warn(`Failed to load config from ${path}:`, error);
97
+ }
98
+ return null;
99
+ }
100
+ }
101
+ /**
102
+ * Merge multiple config objects
103
+ * Later configs override earlier ones
104
+ */
105
+ function mergeConfigs(configs) {
106
+ const merged = {};
107
+ for (const config of configs) {
108
+ // Merge mcpServers
109
+ if (config.mcpServers) {
110
+ merged.mcpServers = {
111
+ ...merged.mcpServers,
112
+ ...config.mcpServers,
113
+ };
114
+ }
115
+ // Merge plugins
116
+ if (config.plugins) {
117
+ merged.plugins = {
118
+ ...merged.plugins,
119
+ ...config.plugins,
120
+ };
121
+ }
122
+ // Merge skills (alias for plugins)
123
+ if (config.skills) {
124
+ merged.skills = {
125
+ ...merged.skills,
126
+ ...config.skills,
127
+ };
128
+ }
129
+ // Merge hooks
130
+ if (config.hooks) {
131
+ merged.hooks = {
132
+ ...merged.hooks,
133
+ ...config.hooks,
134
+ };
135
+ }
136
+ // Merge commands
137
+ if (config.commands) {
138
+ merged.commands = {
139
+ ...merged.commands,
140
+ ...config.commands,
141
+ };
142
+ }
143
+ // Merge allowedTools (concatenate arrays)
144
+ if (config.allowedTools) {
145
+ merged.allowedTools = [
146
+ ...(merged.allowedTools || []),
147
+ ...config.allowedTools,
148
+ ];
149
+ }
150
+ // Merge env
151
+ if (config.env) {
152
+ merged.env = {
153
+ ...merged.env,
154
+ ...config.env,
155
+ };
156
+ }
157
+ }
158
+ return merged;
159
+ }
160
+ /**
161
+ * Load Claude settings from ~/.claude/settings.json
162
+ */
163
+ async function loadClaudeSettings() {
164
+ const settingsPath = join(homedir(), '.claude', 'settings.json');
165
+ try {
166
+ await access(settingsPath);
167
+ const content = await readFile(settingsPath, 'utf-8');
168
+ const settings = JSON.parse(content);
169
+ logger.debug(`Loaded settings from: ${settingsPath}`);
170
+ return settings;
171
+ }
172
+ catch (error) {
173
+ if (error.code === 'ENOENT') {
174
+ logger.debug(`Settings file not found: ${settingsPath}`);
175
+ }
176
+ else {
177
+ logger.warn(`Failed to load settings from ${settingsPath}:`, error);
178
+ }
179
+ return null;
180
+ }
181
+ }
182
+ /**
183
+ * Resolve plugin path from marketplace
184
+ */
185
+ async function resolvePluginPath(pluginName, marketplace, settings) {
186
+ // Get marketplace path
187
+ let marketplacePath;
188
+ if (settings?.extraKnownMarketplaces?.[marketplace]) {
189
+ // Use custom marketplace path from settings
190
+ marketplacePath = settings.extraKnownMarketplaces[marketplace].source.path;
191
+ }
192
+ else {
193
+ // Use default marketplace path
194
+ marketplacePath = join(homedir(), '.claude', 'plugins', 'marketplaces', marketplace);
195
+ }
196
+ // Construct plugin path
197
+ const pluginPath = join(marketplacePath, 'plugins', pluginName);
198
+ // Check if plugin directory exists
199
+ try {
200
+ const stats = await stat(pluginPath);
201
+ if (stats.isDirectory()) {
202
+ logger.debug(`Resolved plugin ${pluginName}@${marketplace} to: ${pluginPath}`);
203
+ return pluginPath;
204
+ }
205
+ }
206
+ catch (error) {
207
+ logger.debug(`Plugin not found: ${pluginPath}`);
208
+ }
209
+ return null;
210
+ }
211
+ /**
212
+ * Convert enabled plugins from settings.json to SDK format
213
+ */
214
+ async function resolvePluginsFromSettings(settings) {
215
+ if (!settings?.enabledPlugins) {
216
+ return [];
217
+ }
218
+ const sdkPlugins = [];
219
+ for (const [fullName, enabled] of Object.entries(settings.enabledPlugins)) {
220
+ if (!enabled) {
221
+ continue;
222
+ }
223
+ // Parse plugin name: "name@marketplace" or just "name"
224
+ const [pluginName, marketplace = 'claude-plugins-official'] = fullName.split('@');
225
+ // Resolve plugin path
226
+ const pluginPath = await resolvePluginPath(pluginName, marketplace, settings);
227
+ if (pluginPath) {
228
+ sdkPlugins.push({
229
+ type: 'local',
230
+ path: pluginPath,
231
+ });
232
+ logger.debug(`Added plugin: ${fullName} from ${pluginPath}`);
233
+ }
234
+ else {
235
+ logger.warn(`Plugin ${fullName} not found, skipping`);
236
+ }
237
+ }
238
+ return sdkPlugins;
239
+ }
240
+ /**
241
+ * Resolve final configuration with environment variable overrides
242
+ */
243
+ export async function resolveConfig() {
244
+ // Get working directory from env or default to current directory
245
+ const workingDirectory = process.env.CLAUDE_WORKING_DIRECTORY || process.cwd();
246
+ // Load Claude config files
247
+ const claudeConfig = await loadClaudeConfig(workingDirectory);
248
+ // Load Claude settings
249
+ const settings = await loadClaudeSettings();
250
+ // Determine permission mode
251
+ let permissionMode = 'default';
252
+ if (process.env.DANGEROUSLY_SKIP_PERMISSIONS === 'true') {
253
+ permissionMode = 'bypassPermissions';
254
+ logger.warn('⚠️ WARNING: All permission checks are disabled (bypassPermissions mode)');
255
+ }
256
+ else if (process.env.CLAUDE_PERMISSION_MODE) {
257
+ const mode = process.env.CLAUDE_PERMISSION_MODE;
258
+ if (mode === 'default' || mode === 'acceptEdits' || mode === 'bypassPermissions') {
259
+ permissionMode = mode;
260
+ }
261
+ else {
262
+ logger.warn(`Invalid permission mode: ${mode}. Using default.`);
263
+ }
264
+ }
265
+ // Filter out disabled MCP servers
266
+ const mcpServers = filterEnabledMCPServers(claudeConfig.mcpServers);
267
+ // Merge plugins and skills
268
+ const plugins = {
269
+ ...claudeConfig.skills,
270
+ ...claudeConfig.plugins,
271
+ };
272
+ // Resolve SDK plugins from settings.json
273
+ const sdkPlugins = await resolvePluginsFromSettings(settings);
274
+ // Determine setting sources for loading CLAUDE.md files
275
+ // Default: ['user', 'project'] to enable CLAUDE.md loading
276
+ let settingSources = ['user', 'project'];
277
+ // Allow override via environment variable (comma-separated)
278
+ if (process.env.CLAUDE_SETTING_SOURCES) {
279
+ const sources = process.env.CLAUDE_SETTING_SOURCES.split(',').map(s => s.trim());
280
+ // Validate sources
281
+ const validSources = sources.filter(s => ['user', 'project', 'local'].includes(s));
282
+ if (validSources.length > 0) {
283
+ settingSources = validSources;
284
+ }
285
+ else {
286
+ logger.warn(`Invalid CLAUDE_SETTING_SOURCES: ${process.env.CLAUDE_SETTING_SOURCES}. Using default: user,project`);
287
+ }
288
+ }
289
+ const resolved = {
290
+ workingDirectory,
291
+ permissionMode,
292
+ mcpServers,
293
+ plugins,
294
+ sdkPlugins: sdkPlugins.length > 0 ? sdkPlugins : undefined,
295
+ hooks: claudeConfig.hooks,
296
+ commands: claudeConfig.commands,
297
+ allowedTools: claudeConfig.allowedTools,
298
+ env: claudeConfig.env,
299
+ settingSources,
300
+ };
301
+ // Log configuration summary
302
+ logger.info('Configuration resolved:');
303
+ logger.info(` Working directory: ${resolved.workingDirectory}`);
304
+ logger.info(` Permission mode: ${resolved.permissionMode}`);
305
+ logger.info(` Setting sources: ${resolved.settingSources?.join(', ') || 'none'} (CLAUDE.md enabled: ${resolved.settingSources?.includes('project') ? 'yes' : 'no'})`);
306
+ if (mcpServers && Object.keys(mcpServers).length > 0) {
307
+ logger.info(` MCP servers: ${Object.keys(mcpServers).join(', ')}`);
308
+ }
309
+ else {
310
+ logger.info(' MCP servers: none');
311
+ }
312
+ if (sdkPlugins.length > 0) {
313
+ logger.info(` SDK Plugins: ${sdkPlugins.length} plugin(s) loaded from settings.json`);
314
+ }
315
+ else {
316
+ logger.info(' SDK Plugins: none');
317
+ }
318
+ if (resolved.hooks && Object.keys(resolved.hooks).length > 0) {
319
+ logger.info(` Hooks: ${Object.keys(resolved.hooks).join(', ')}`);
320
+ }
321
+ else {
322
+ logger.info(' Hooks: none');
323
+ }
324
+ if (resolved.commands && Object.keys(resolved.commands).length > 0) {
325
+ logger.info(` Commands: ${Object.keys(resolved.commands).join(', ')}`);
326
+ }
327
+ else {
328
+ logger.info(' Commands: none');
329
+ }
330
+ return resolved;
331
+ }
332
+ /**
333
+ * Filter out disabled MCP servers
334
+ */
335
+ function filterEnabledMCPServers(servers) {
336
+ if (!servers) {
337
+ return undefined;
338
+ }
339
+ const enabled = {};
340
+ for (const [name, config] of Object.entries(servers)) {
341
+ if (!config.disabled) {
342
+ enabled[name] = config;
343
+ }
344
+ else {
345
+ logger.info(`MCP server '${name}' is disabled, skipping`);
346
+ }
347
+ }
348
+ return Object.keys(enabled).length > 0 ? enabled : undefined;
349
+ }
350
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ declare class Logger {
2
+ private formatMessage;
3
+ info(message: string, ...args: unknown[]): void;
4
+ warn(message: string, ...args: unknown[]): void;
5
+ error(message: string, ...args: unknown[]): void;
6
+ debug(message: string, ...args: unknown[]): void;
7
+ }
8
+ export declare const logger: Logger;
9
+ export {};
10
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,cAAM,MAAM;IACV,OAAO,CAAC,aAAa;IAKrB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIhD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAKjD;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}