@ai-support-agent/cli 0.0.5-beta.5 → 0.0.6
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/agent-config-sync.d.ts +49 -0
- package/dist/agent-config-sync.d.ts.map +1 -0
- package/dist/agent-config-sync.js +168 -0
- package/dist/agent-config-sync.js.map +1 -0
- package/dist/agent-runner.d.ts +11 -3
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +48 -24
- package/dist/agent-runner.js.map +1 -1
- package/dist/agent-transport.d.ts +59 -0
- package/dist/agent-transport.d.ts.map +1 -0
- package/dist/agent-transport.js +225 -0
- package/dist/agent-transport.js.map +1 -0
- package/dist/api-client.d.ts +2 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +4 -0
- package/dist/api-client.js.map +1 -1
- package/dist/appsync-subscriber.d.ts +15 -9
- package/dist/appsync-subscriber.d.ts.map +1 -1
- package/dist/appsync-subscriber.js +50 -111
- package/dist/appsync-subscriber.js.map +1 -1
- package/dist/aws-profile.d.ts.map +1 -1
- package/dist/aws-profile.js +3 -6
- package/dist/aws-profile.js.map +1 -1
- package/dist/base-websocket.d.ts +40 -0
- package/dist/base-websocket.d.ts.map +1 -0
- package/dist/base-websocket.js +95 -0
- package/dist/base-websocket.js.map +1 -0
- package/dist/child-process-manager.d.ts +20 -0
- package/dist/child-process-manager.d.ts.map +1 -0
- package/dist/child-process-manager.js +125 -0
- package/dist/child-process-manager.js.map +1 -0
- package/dist/commands/api-chat-executor.d.ts +10 -1
- package/dist/commands/api-chat-executor.d.ts.map +1 -1
- package/dist/commands/api-chat-executor.js +83 -58
- package/dist/commands/api-chat-executor.js.map +1 -1
- package/dist/commands/chat-executor.d.ts +13 -2
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +66 -16
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/claude-code-args.d.ts +12 -0
- package/dist/commands/claude-code-args.d.ts.map +1 -0
- package/dist/commands/claude-code-args.js +78 -0
- package/dist/commands/claude-code-args.js.map +1 -0
- package/dist/commands/claude-code-runner.d.ts +17 -36
- package/dist/commands/claude-code-runner.d.ts.map +1 -1
- package/dist/commands/claude-code-runner.js +49 -221
- package/dist/commands/claude-code-runner.js.map +1 -1
- package/dist/commands/claude-code-stream.d.ts +63 -0
- package/dist/commands/claude-code-stream.d.ts.map +1 -0
- package/dist/commands/claude-code-stream.js +179 -0
- package/dist/commands/claude-code-stream.js.map +1 -0
- package/dist/commands/file-executor.d.ts +1 -1
- package/dist/commands/file-executor.d.ts.map +1 -1
- package/dist/commands/file-executor.js +59 -70
- package/dist/commands/file-executor.js.map +1 -1
- package/dist/commands/file-path-guard.d.ts +9 -0
- package/dist/commands/file-path-guard.d.ts.map +1 -0
- package/dist/commands/file-path-guard.js +15 -0
- package/dist/commands/file-path-guard.js.map +1 -0
- package/dist/commands/file-transfer.d.ts +5 -0
- package/dist/commands/file-transfer.d.ts.map +1 -1
- package/dist/commands/file-transfer.js +16 -39
- package/dist/commands/file-transfer.js.map +1 -1
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +18 -7
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/process-executor.d.ts +1 -1
- package/dist/commands/process-executor.d.ts.map +1 -1
- package/dist/commands/process-executor.js +24 -6
- package/dist/commands/process-executor.js.map +1 -1
- package/dist/commands/process-manager.d.ts +22 -0
- package/dist/commands/process-manager.d.ts.map +1 -0
- package/dist/commands/process-manager.js +36 -0
- package/dist/commands/process-manager.js.map +1 -0
- package/dist/commands/shared-chat-utils.d.ts +10 -1
- package/dist/commands/shared-chat-utils.d.ts.map +1 -1
- package/dist/commands/shared-chat-utils.js +18 -0
- package/dist/commands/shared-chat-utils.js.map +1 -1
- package/dist/commands/shell-executor.d.ts +1 -1
- package/dist/commands/shell-executor.d.ts.map +1 -1
- package/dist/commands/shell-executor.js +9 -12
- package/dist/commands/shell-executor.js.map +1 -1
- package/dist/config-manager.d.ts.map +1 -1
- package/dist/config-manager.js +2 -3
- package/dist/config-manager.js.map +1 -1
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +26 -1
- package/dist/constants.js.map +1 -1
- package/dist/docker/docker-runner.d.ts.map +1 -1
- package/dist/docker/docker-runner.js +5 -3
- package/dist/docker/docker-runner.js.map +1 -1
- package/dist/ipc-types.d.ts +36 -0
- package/dist/ipc-types.d.ts.map +1 -0
- package/dist/ipc-types.js +34 -0
- package/dist/ipc-types.js.map +1 -0
- package/dist/mcp/config-writer.d.ts +5 -1
- package/dist/mcp/config-writer.d.ts.map +1 -1
- package/dist/mcp/config-writer.js +14 -1
- package/dist/mcp/config-writer.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/credentials.d.ts.map +1 -1
- package/dist/mcp/tools/credentials.js +36 -9
- package/dist/mcp/tools/credentials.js.map +1 -1
- package/dist/mcp/tools/db-query.d.ts.map +1 -1
- package/dist/mcp/tools/db-query.js +13 -18
- package/dist/mcp/tools/db-query.js.map +1 -1
- package/dist/mcp/tools/db-schemas.d.ts.map +1 -1
- package/dist/mcp/tools/db-schemas.js +8 -13
- package/dist/mcp/tools/db-schemas.js.map +1 -1
- package/dist/mcp/tools/file-upload.d.ts.map +1 -1
- package/dist/mcp/tools/file-upload.js +12 -17
- package/dist/mcp/tools/file-upload.js.map +1 -1
- package/dist/mcp/tools/mcp-response.d.ts +29 -1
- package/dist/mcp/tools/mcp-response.d.ts.map +1 -1
- package/dist/mcp/tools/mcp-response.js +51 -3
- package/dist/mcp/tools/mcp-response.js.map +1 -1
- package/dist/mcp/tools/project-info.d.ts.map +1 -1
- package/dist/mcp/tools/project-info.js +28 -33
- package/dist/mcp/tools/project-info.js.map +1 -1
- package/dist/mcp/tools/read-conversation-file.d.ts +4 -0
- package/dist/mcp/tools/read-conversation-file.d.ts.map +1 -0
- package/dist/mcp/tools/read-conversation-file.js +92 -0
- package/dist/mcp/tools/read-conversation-file.js.map +1 -0
- package/dist/process-manager.d.ts +2 -0
- package/dist/process-manager.d.ts.map +1 -0
- package/dist/process-manager.js +7 -0
- package/dist/process-manager.js.map +1 -0
- package/dist/project-agent.d.ts +5 -25
- package/dist/project-agent.d.ts.map +1 -1
- package/dist/project-agent.js +67 -313
- package/dist/project-agent.js.map +1 -1
- package/dist/project-config-sync.d.ts.map +1 -1
- package/dist/project-config-sync.js +9 -3
- package/dist/project-config-sync.js.map +1 -1
- package/dist/project-worker.d.ts +2 -0
- package/dist/project-worker.d.ts.map +1 -0
- package/dist/project-worker.js +85 -0
- package/dist/project-worker.js.map +1 -0
- package/dist/repo-sync.d.ts +23 -0
- package/dist/repo-sync.d.ts.map +1 -0
- package/dist/repo-sync.js +191 -0
- package/dist/repo-sync.js.map +1 -0
- package/dist/terminal/terminal-websocket.d.ts +8 -9
- package/dist/terminal/terminal-websocket.d.ts.map +1 -1
- package/dist/terminal/terminal-websocket.js +30 -87
- package/dist/terminal/terminal-websocket.js.map +1 -1
- package/dist/types/chat.d.ts +28 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +3 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/command.d.ts +100 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +11 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/config.d.ts +44 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +22 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/project.d.ts +112 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/project.js +3 -0
- package/dist/types/project.js.map +1 -0
- package/dist/types/server.d.ts +58 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/server.js +3 -0
- package/dist/types/server.js.map +1 -0
- package/dist/types.d.ts +1 -295
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/activity-timeout.d.ts +19 -0
- package/dist/utils/activity-timeout.d.ts.map +1 -0
- package/dist/utils/activity-timeout.js +28 -0
- package/dist/utils/activity-timeout.js.map +1 -0
- package/dist/utils/claude-config-validator.d.ts +16 -0
- package/dist/utils/claude-config-validator.d.ts.map +1 -0
- package/dist/utils/claude-config-validator.js +94 -0
- package/dist/utils/claude-config-validator.js.map +1 -0
- package/dist/utils/content-type.d.ts +10 -0
- package/dist/utils/content-type.d.ts.map +1 -0
- package/dist/utils/content-type.js +120 -0
- package/dist/utils/content-type.js.map +1 -0
- package/dist/utils/json-parse.d.ts +5 -0
- package/dist/utils/json-parse.d.ts.map +1 -0
- package/dist/utils/json-parse.js +15 -0
- package/dist/utils/json-parse.js.map +1 -0
- package/dist/utils/stream-parser.d.ts +14 -0
- package/dist/utils/stream-parser.d.ts.map +1 -0
- package/dist/utils/stream-parser.js +31 -0
- package/dist/utils/stream-parser.js.map +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +40 -0
- package/dist/utils.js.map +1 -1
- package/dist/ws-reconnect.d.ts +12 -0
- package/dist/ws-reconnect.d.ts.map +1 -0
- package/dist/ws-reconnect.js +32 -0
- package/dist/ws-reconnect.js.map +1 -0
- package/package.json +2 -2
package/dist/types.d.ts
CHANGED
|
@@ -1,296 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
role: string;
|
|
3
|
-
content: string;
|
|
4
|
-
}
|
|
5
|
-
export type ReleaseChannel = 'latest' | 'beta' | 'alpha';
|
|
6
|
-
export type InstallMethod = 'global' | 'npx' | 'local' | 'dev';
|
|
7
|
-
export interface VersionInfo {
|
|
8
|
-
latestVersion: string;
|
|
9
|
-
minimumVersion: string;
|
|
10
|
-
channel: ReleaseChannel;
|
|
11
|
-
channels: Record<string, string>;
|
|
12
|
-
}
|
|
13
|
-
export interface AutoUpdateConfig {
|
|
14
|
-
enabled: boolean;
|
|
15
|
-
autoRestart: boolean;
|
|
16
|
-
channel: ReleaseChannel;
|
|
17
|
-
}
|
|
18
|
-
export interface ProjectRegistration {
|
|
19
|
-
projectCode: string;
|
|
20
|
-
token: string;
|
|
21
|
-
apiUrl: string;
|
|
22
|
-
projectDir?: string;
|
|
23
|
-
}
|
|
24
|
-
export interface AgentConfig {
|
|
25
|
-
agentId: string;
|
|
26
|
-
createdAt: string;
|
|
27
|
-
lastConnected?: string;
|
|
28
|
-
language?: string;
|
|
29
|
-
projects?: ProjectRegistration[];
|
|
30
|
-
autoUpdate?: AutoUpdateConfig;
|
|
31
|
-
agentChatMode?: AgentChatMode;
|
|
32
|
-
defaultProjectDir?: string;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Legacy config format (pre-multi-project).
|
|
36
|
-
* Used only during migration detection.
|
|
37
|
-
*/
|
|
38
|
-
export interface LegacyAgentConfig extends AgentConfig {
|
|
39
|
-
token?: string;
|
|
40
|
-
apiUrl?: string;
|
|
41
|
-
}
|
|
42
|
-
export type AgentCommandType = 'execute_command' | 'file_read' | 'file_write' | 'file_list' | 'file_rename' | 'file_delete' | 'file_mkdir' | 'process_list' | 'process_kill' | 'chat' | 'setup' | 'config_sync';
|
|
43
|
-
export type AgentCommandStatus = 'PENDING' | 'RUNNING' | 'COMPLETED' | 'FAILED' | 'TIMEOUT';
|
|
44
|
-
export interface AgentCommand {
|
|
45
|
-
commandId: string;
|
|
46
|
-
type: AgentCommandType;
|
|
47
|
-
payload: Record<string, unknown>;
|
|
48
|
-
status: AgentCommandStatus;
|
|
49
|
-
createdAt: number;
|
|
50
|
-
}
|
|
51
|
-
export interface PendingCommand {
|
|
52
|
-
commandId: string;
|
|
53
|
-
type: AgentCommandType;
|
|
54
|
-
createdAt: number;
|
|
55
|
-
}
|
|
56
|
-
export type CommandResult = {
|
|
57
|
-
success: true;
|
|
58
|
-
data: unknown;
|
|
59
|
-
} | {
|
|
60
|
-
success: false;
|
|
61
|
-
error: string;
|
|
62
|
-
data?: unknown;
|
|
63
|
-
};
|
|
64
|
-
export interface RegisterRequest {
|
|
65
|
-
agentId: string;
|
|
66
|
-
hostname: string;
|
|
67
|
-
os: string;
|
|
68
|
-
arch: string;
|
|
69
|
-
ipAddress?: string;
|
|
70
|
-
capabilities?: string[];
|
|
71
|
-
availableChatModes?: string[];
|
|
72
|
-
activeChatMode?: string;
|
|
73
|
-
}
|
|
74
|
-
export type TransportMode = 'polling' | 'realtime';
|
|
75
|
-
export interface RegisterResponse {
|
|
76
|
-
agentId: string;
|
|
77
|
-
appsyncUrl: string;
|
|
78
|
-
appsyncApiKey: string;
|
|
79
|
-
transportMode: TransportMode;
|
|
80
|
-
}
|
|
81
|
-
export interface SystemInfo {
|
|
82
|
-
platform: string;
|
|
83
|
-
arch: string;
|
|
84
|
-
cpuUsage: number;
|
|
85
|
-
memoryUsage: number;
|
|
86
|
-
uptime: number;
|
|
87
|
-
}
|
|
88
|
-
export interface ShellCommandPayload {
|
|
89
|
-
command?: unknown;
|
|
90
|
-
timeout?: unknown;
|
|
91
|
-
cwd?: unknown;
|
|
92
|
-
}
|
|
93
|
-
export interface FileReadPayload {
|
|
94
|
-
path?: unknown;
|
|
95
|
-
}
|
|
96
|
-
export interface FileWritePayload {
|
|
97
|
-
path?: unknown;
|
|
98
|
-
content?: unknown;
|
|
99
|
-
createDirectories?: unknown;
|
|
100
|
-
}
|
|
101
|
-
export interface FileListPayload {
|
|
102
|
-
path?: unknown;
|
|
103
|
-
}
|
|
104
|
-
export interface FileRenamePayload {
|
|
105
|
-
oldPath?: unknown;
|
|
106
|
-
newPath?: unknown;
|
|
107
|
-
}
|
|
108
|
-
export interface FileDeletePayload {
|
|
109
|
-
path?: unknown;
|
|
110
|
-
recursive?: unknown;
|
|
111
|
-
}
|
|
112
|
-
export interface FileMkdirPayload {
|
|
113
|
-
path?: unknown;
|
|
114
|
-
}
|
|
115
|
-
export interface ProcessKillPayload {
|
|
116
|
-
pid?: unknown;
|
|
117
|
-
signal?: unknown;
|
|
118
|
-
}
|
|
119
|
-
export interface ChatPayload {
|
|
120
|
-
message?: unknown;
|
|
121
|
-
conversationId?: unknown;
|
|
122
|
-
projectCode?: unknown;
|
|
123
|
-
history?: unknown;
|
|
124
|
-
locale?: unknown;
|
|
125
|
-
awsAccountId?: unknown;
|
|
126
|
-
files?: unknown;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* チャットモード(ルーティング先)
|
|
130
|
-
* - agent: 外部エージェント経由(デフォルト)
|
|
131
|
-
* - builtin: サーバー内蔵エージェント
|
|
132
|
-
*/
|
|
133
|
-
export type ChatMode = 'agent' | 'builtin';
|
|
134
|
-
/**
|
|
135
|
-
* エージェントチャットモード(エージェント内部の実行方式)
|
|
136
|
-
* - claude_code: Claude Code CLI を使用
|
|
137
|
-
* - api: Anthropic API 直接呼び出し
|
|
138
|
-
*/
|
|
139
|
-
export type AgentChatMode = 'claude_code' | 'api';
|
|
140
|
-
export interface AgentServerConfig {
|
|
141
|
-
agentEnabled: boolean;
|
|
142
|
-
builtinAgentEnabled: boolean;
|
|
143
|
-
builtinFallbackEnabled: boolean;
|
|
144
|
-
externalAgentEnabled: boolean;
|
|
145
|
-
chatMode: ChatMode;
|
|
146
|
-
defaultAgentChatMode?: AgentChatMode;
|
|
147
|
-
claudeCodeConfig?: {
|
|
148
|
-
model?: string;
|
|
149
|
-
maxTokens?: number;
|
|
150
|
-
systemPrompt?: string;
|
|
151
|
-
allowedTools?: string[];
|
|
152
|
-
addDirs?: string[];
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
export interface AwsCredentials {
|
|
156
|
-
accessKeyId: string;
|
|
157
|
-
secretAccessKey: string;
|
|
158
|
-
sessionToken?: string;
|
|
159
|
-
region: string;
|
|
160
|
-
}
|
|
161
|
-
export interface ProjectConfigResponse {
|
|
162
|
-
configHash: string;
|
|
163
|
-
project: {
|
|
164
|
-
projectCode: string;
|
|
165
|
-
projectName: string;
|
|
166
|
-
description?: string;
|
|
167
|
-
};
|
|
168
|
-
agent: {
|
|
169
|
-
agentEnabled: boolean;
|
|
170
|
-
builtinAgentEnabled: boolean;
|
|
171
|
-
builtinFallbackEnabled: boolean;
|
|
172
|
-
externalAgentEnabled: boolean;
|
|
173
|
-
allowedTools: string[];
|
|
174
|
-
claudeCodeConfig?: {
|
|
175
|
-
additionalDirs?: string[];
|
|
176
|
-
appendSystemPrompt?: string;
|
|
177
|
-
};
|
|
178
|
-
};
|
|
179
|
-
aws?: {
|
|
180
|
-
accounts: Array<{
|
|
181
|
-
id: string;
|
|
182
|
-
name: string;
|
|
183
|
-
description?: string;
|
|
184
|
-
profileName?: string;
|
|
185
|
-
region: string;
|
|
186
|
-
accountId: string;
|
|
187
|
-
auth: {
|
|
188
|
-
method: 'access_key';
|
|
189
|
-
} | {
|
|
190
|
-
method: 'sso';
|
|
191
|
-
startUrl: string;
|
|
192
|
-
ssoRegion: string;
|
|
193
|
-
permissionSetName: string;
|
|
194
|
-
};
|
|
195
|
-
isDefault: boolean;
|
|
196
|
-
}>;
|
|
197
|
-
cli?: {
|
|
198
|
-
defaultProfile?: string;
|
|
199
|
-
};
|
|
200
|
-
};
|
|
201
|
-
databases?: Array<{
|
|
202
|
-
name: string;
|
|
203
|
-
host: string;
|
|
204
|
-
port: number;
|
|
205
|
-
database: string;
|
|
206
|
-
engine: string;
|
|
207
|
-
writePermissions?: {
|
|
208
|
-
insert: boolean;
|
|
209
|
-
update: boolean;
|
|
210
|
-
delete: boolean;
|
|
211
|
-
};
|
|
212
|
-
}>;
|
|
213
|
-
documentation?: {
|
|
214
|
-
sources: Array<{
|
|
215
|
-
type: 'url' | 's3';
|
|
216
|
-
url?: string;
|
|
217
|
-
bucket?: string;
|
|
218
|
-
prefix?: string;
|
|
219
|
-
}>;
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
export interface DbCredentials {
|
|
223
|
-
name: string;
|
|
224
|
-
engine: string;
|
|
225
|
-
host: string;
|
|
226
|
-
port: number;
|
|
227
|
-
database: string;
|
|
228
|
-
user: string;
|
|
229
|
-
password: string;
|
|
230
|
-
ssl?: boolean;
|
|
231
|
-
writePermissions?: {
|
|
232
|
-
insert: boolean;
|
|
233
|
-
update: boolean;
|
|
234
|
-
delete: boolean;
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
export interface CachedProjectConfig {
|
|
238
|
-
cachedAt: string;
|
|
239
|
-
configHash: string;
|
|
240
|
-
config: Omit<ProjectConfigResponse, 'aws'>;
|
|
241
|
-
}
|
|
242
|
-
export interface HeartbeatResponse {
|
|
243
|
-
success: true;
|
|
244
|
-
configHash?: string;
|
|
245
|
-
}
|
|
246
|
-
export interface ChatFileInfo {
|
|
247
|
-
fileId: string;
|
|
248
|
-
s3Key: string;
|
|
249
|
-
filename: string;
|
|
250
|
-
contentType: string;
|
|
251
|
-
fileSize: number;
|
|
252
|
-
}
|
|
253
|
-
export type ChatChunkType = 'delta' | 'tool_call' | 'tool_result' | 'done' | 'error' | 'system' | 'file_attachment';
|
|
254
|
-
export interface ChatChunk {
|
|
255
|
-
index: number;
|
|
256
|
-
type: ChatChunkType;
|
|
257
|
-
content: string;
|
|
258
|
-
}
|
|
259
|
-
export type CommandDispatch = {
|
|
260
|
-
type: 'execute_command';
|
|
261
|
-
payload: ShellCommandPayload;
|
|
262
|
-
} | {
|
|
263
|
-
type: 'file_read';
|
|
264
|
-
payload: FileReadPayload;
|
|
265
|
-
} | {
|
|
266
|
-
type: 'file_write';
|
|
267
|
-
payload: FileWritePayload;
|
|
268
|
-
} | {
|
|
269
|
-
type: 'file_list';
|
|
270
|
-
payload: FileListPayload;
|
|
271
|
-
} | {
|
|
272
|
-
type: 'file_rename';
|
|
273
|
-
payload: FileRenamePayload;
|
|
274
|
-
} | {
|
|
275
|
-
type: 'file_delete';
|
|
276
|
-
payload: FileDeletePayload;
|
|
277
|
-
} | {
|
|
278
|
-
type: 'file_mkdir';
|
|
279
|
-
payload: FileMkdirPayload;
|
|
280
|
-
} | {
|
|
281
|
-
type: 'process_list';
|
|
282
|
-
payload: Record<string, never>;
|
|
283
|
-
} | {
|
|
284
|
-
type: 'process_kill';
|
|
285
|
-
payload: ProcessKillPayload;
|
|
286
|
-
} | {
|
|
287
|
-
type: 'chat';
|
|
288
|
-
payload: ChatPayload;
|
|
289
|
-
} | {
|
|
290
|
-
type: 'setup';
|
|
291
|
-
payload: Record<string, never>;
|
|
292
|
-
} | {
|
|
293
|
-
type: 'config_sync';
|
|
294
|
-
payload: Record<string, never>;
|
|
295
|
-
};
|
|
1
|
+
export * from './types/index';
|
|
296
2
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
package/dist/types.js
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types/index"), exports);
|
|
3
18
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* アクティビティベースのタイムアウト管理
|
|
3
|
+
* データ受信のたびに reset() を呼び出してタイマーをリセットする
|
|
4
|
+
*/
|
|
5
|
+
export interface ActivityTimeout {
|
|
6
|
+
/** タイマーをリセット(アクティビティ発生時に呼び出す) */
|
|
7
|
+
reset: () => void;
|
|
8
|
+
/** タイマーをクリア(プロセス終了時に呼び出す) */
|
|
9
|
+
clear: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* アクティビティタイムアウトを作成する
|
|
13
|
+
*
|
|
14
|
+
* @param timeoutMs - 非アクティブ時間の上限(ミリ秒)
|
|
15
|
+
* @param onTimeout - タイムアウト発生時のコールバック
|
|
16
|
+
* @returns reset / clear を持つオブジェクト
|
|
17
|
+
*/
|
|
18
|
+
export declare function createActivityTimeout(timeoutMs: number, onTimeout: () => void): ActivityTimeout;
|
|
19
|
+
//# sourceMappingURL=activity-timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-timeout.d.ts","sourceRoot":"","sources":["../../src/utils/activity-timeout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,IAAI,GACpB,eAAe,CAmBjB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createActivityTimeout = createActivityTimeout;
|
|
4
|
+
/**
|
|
5
|
+
* アクティビティタイムアウトを作成する
|
|
6
|
+
*
|
|
7
|
+
* @param timeoutMs - 非アクティブ時間の上限(ミリ秒)
|
|
8
|
+
* @param onTimeout - タイムアウト発生時のコールバック
|
|
9
|
+
* @returns reset / clear を持つオブジェクト
|
|
10
|
+
*/
|
|
11
|
+
function createActivityTimeout(timeoutMs, onTimeout) {
|
|
12
|
+
let timer;
|
|
13
|
+
const reset = () => {
|
|
14
|
+
if (timer)
|
|
15
|
+
clearTimeout(timer);
|
|
16
|
+
timer = setTimeout(onTimeout, timeoutMs);
|
|
17
|
+
};
|
|
18
|
+
const clear = () => {
|
|
19
|
+
if (timer) {
|
|
20
|
+
clearTimeout(timer);
|
|
21
|
+
timer = undefined;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
// 初期タイマーを開始
|
|
25
|
+
reset();
|
|
26
|
+
return { reset, clear };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=activity-timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-timeout.js","sourceRoot":"","sources":["../../src/utils/activity-timeout.ts"],"names":[],"mappings":";;AAkBA,sDAsBC;AA7BD;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,SAAiB,EACjB,SAAqB;IAErB,IAAI,KAAiC,CAAA;IAErC,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;QAC9B,KAAK,GAAG,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC1C,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,KAAK,GAAG,SAAS,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAED,YAAY;IACZ,KAAK,EAAE,CAAA;IAEP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .claude.json の整合性を検証し、破損していれば復元する。
|
|
3
|
+
*
|
|
4
|
+
* 処理フロー:
|
|
5
|
+
* 1. ファイルが存在しなければスキップ
|
|
6
|
+
* 2. JSON.parse で検証
|
|
7
|
+
* 3. 有効なら .claude.json.backup にバックアップ
|
|
8
|
+
* 4. 破損していたら:
|
|
9
|
+
* a. バックアップから復元
|
|
10
|
+
* b. バックアップも破損なら {} にリセット
|
|
11
|
+
*
|
|
12
|
+
* IO エラー(パーミッション不足、ディスクフル等)が発生した場合は
|
|
13
|
+
* 警告ログを出力して処理を継続する(修復失敗でメイン処理を止めない)。
|
|
14
|
+
*/
|
|
15
|
+
export declare function ensureClaudeJsonIntegrity(): void;
|
|
16
|
+
//# sourceMappingURL=claude-config-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-config-validator.d.ts","sourceRoot":"","sources":["../../src/utils/claude-config-validator.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAwChD"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ensureClaudeJsonIntegrity = ensureClaudeJsonIntegrity;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const logger_1 = require("../logger");
|
|
41
|
+
/**
|
|
42
|
+
* .claude.json の整合性を検証し、破損していれば復元する。
|
|
43
|
+
*
|
|
44
|
+
* 処理フロー:
|
|
45
|
+
* 1. ファイルが存在しなければスキップ
|
|
46
|
+
* 2. JSON.parse で検証
|
|
47
|
+
* 3. 有効なら .claude.json.backup にバックアップ
|
|
48
|
+
* 4. 破損していたら:
|
|
49
|
+
* a. バックアップから復元
|
|
50
|
+
* b. バックアップも破損なら {} にリセット
|
|
51
|
+
*
|
|
52
|
+
* IO エラー(パーミッション不足、ディスクフル等)が発生した場合は
|
|
53
|
+
* 警告ログを出力して処理を継続する(修復失敗でメイン処理を止めない)。
|
|
54
|
+
*/
|
|
55
|
+
function ensureClaudeJsonIntegrity() {
|
|
56
|
+
try {
|
|
57
|
+
const home = os.homedir();
|
|
58
|
+
const claudeJsonPath = path.join(home, '.claude.json');
|
|
59
|
+
const backupPath = path.join(home, '.claude.json.backup');
|
|
60
|
+
// 1. ファイルが存在しなければスキップ
|
|
61
|
+
if (!fs.existsSync(claudeJsonPath)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const content = fs.readFileSync(claudeJsonPath, 'utf-8');
|
|
65
|
+
// 2. JSON.parse で検証
|
|
66
|
+
try {
|
|
67
|
+
JSON.parse(content);
|
|
68
|
+
// 3. 有効なら バックアップ作成
|
|
69
|
+
fs.writeFileSync(backupPath, content, { mode: 0o600 });
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// 破損している
|
|
74
|
+
}
|
|
75
|
+
// 4. 破損時の復元
|
|
76
|
+
if (fs.existsSync(backupPath)) {
|
|
77
|
+
try {
|
|
78
|
+
const backupContent = fs.readFileSync(backupPath, 'utf-8');
|
|
79
|
+
JSON.parse(backupContent); // バックアップの検証
|
|
80
|
+
fs.writeFileSync(claudeJsonPath, backupContent, { mode: 0o600 });
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// バックアップも破損
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// バックアップも破損 or 不在 → {} にリセット
|
|
88
|
+
fs.writeFileSync(claudeJsonPath, '{}', { mode: 0o600 });
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
logger_1.logger.warn(`Failed to validate/repair .claude.json: ${error instanceof Error ? error.message : String(error)}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=claude-config-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-config-validator.js","sourceRoot":"","sources":["../../src/utils/claude-config-validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,8DAwCC;AA5DD,uCAAwB;AACxB,2CAA4B;AAC5B,uCAAwB;AAExB,sCAAkC;AAElC;;;;;;;;;;;;;GAaG;AACH,SAAgB,yBAAyB;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAA;QAEzD,sBAAsB;QACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAExD,oBAAoB;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACnB,mBAAmB;YACnB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,YAAY;QACZ,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,CAAC,YAAY;gBACtC,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;gBAChE,OAAM;YACR,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,IAAI,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAClH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ファイルパス(またはファイル名)から MIME タイプを推定する。
|
|
3
|
+
* 未知の拡張子は `application/octet-stream` を返す。
|
|
4
|
+
*/
|
|
5
|
+
export declare function guessContentType(filenameOrExt: string): string;
|
|
6
|
+
export declare function isTextExtension(ext: string): boolean;
|
|
7
|
+
export declare function isTextMime(contentType: string): boolean;
|
|
8
|
+
/** MIME タイプが画像か判定する */
|
|
9
|
+
export declare function isImageMime(contentType: string): boolean;
|
|
10
|
+
//# sourceMappingURL=content-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../src/utils/content-type.ts"],"names":[],"mappings":"AAsEA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAM9D;AAkBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAgBD,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,uBAAuB;AACvB,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAExD"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.guessContentType = guessContentType;
|
|
4
|
+
exports.isTextExtension = isTextExtension;
|
|
5
|
+
exports.isTextMime = isTextMime;
|
|
6
|
+
exports.isImageMime = isImageMime;
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
/**
|
|
9
|
+
* 拡張子(ドットなし)から MIME タイプへのマッピング。
|
|
10
|
+
* IANA 標準 (https://www.iana.org/assignments/media-types/) に従う。
|
|
11
|
+
* IANA 未登録の言語は `text/x-*` (Apache/IANA 慣例) を使用。
|
|
12
|
+
*/
|
|
13
|
+
const CONTENT_TYPE_MAP = {
|
|
14
|
+
// テキスト系
|
|
15
|
+
txt: 'text/plain',
|
|
16
|
+
md: 'text/markdown',
|
|
17
|
+
csv: 'text/csv',
|
|
18
|
+
tsv: 'text/tab-separated-values',
|
|
19
|
+
html: 'text/html',
|
|
20
|
+
css: 'text/css',
|
|
21
|
+
scss: 'text/css',
|
|
22
|
+
less: 'text/css',
|
|
23
|
+
log: 'text/plain',
|
|
24
|
+
env: 'text/plain',
|
|
25
|
+
conf: 'text/plain',
|
|
26
|
+
cfg: 'text/plain',
|
|
27
|
+
ini: 'text/plain',
|
|
28
|
+
// アプリケーション系
|
|
29
|
+
json: 'application/json',
|
|
30
|
+
xml: 'application/xml',
|
|
31
|
+
yaml: 'application/yaml',
|
|
32
|
+
yml: 'application/yaml',
|
|
33
|
+
toml: 'application/toml',
|
|
34
|
+
js: 'application/javascript',
|
|
35
|
+
jsx: 'application/javascript',
|
|
36
|
+
ts: 'application/typescript',
|
|
37
|
+
tsx: 'application/typescript',
|
|
38
|
+
sql: 'application/sql',
|
|
39
|
+
graphql: 'application/graphql',
|
|
40
|
+
sh: 'application/x-sh',
|
|
41
|
+
bash: 'application/x-sh',
|
|
42
|
+
zsh: 'application/x-sh',
|
|
43
|
+
pdf: 'application/pdf',
|
|
44
|
+
zip: 'application/zip',
|
|
45
|
+
gz: 'application/gzip',
|
|
46
|
+
tar: 'application/x-tar',
|
|
47
|
+
// 言語ソースコード (IANA 未登録)
|
|
48
|
+
py: 'text/x-python',
|
|
49
|
+
rb: 'text/x-ruby',
|
|
50
|
+
java: 'text/x-java',
|
|
51
|
+
go: 'text/x-go',
|
|
52
|
+
rs: 'text/x-rust',
|
|
53
|
+
c: 'text/x-c',
|
|
54
|
+
cpp: 'text/x-c++',
|
|
55
|
+
h: 'text/x-c',
|
|
56
|
+
hpp: 'text/x-c++',
|
|
57
|
+
// 画像
|
|
58
|
+
png: 'image/png',
|
|
59
|
+
jpg: 'image/jpeg',
|
|
60
|
+
jpeg: 'image/jpeg',
|
|
61
|
+
gif: 'image/gif',
|
|
62
|
+
webp: 'image/webp',
|
|
63
|
+
svg: 'image/svg+xml',
|
|
64
|
+
// Office / バイナリ
|
|
65
|
+
doc: 'application/msword',
|
|
66
|
+
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
67
|
+
xls: 'application/vnd.ms-excel',
|
|
68
|
+
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
69
|
+
pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* ファイルパス(またはファイル名)から MIME タイプを推定する。
|
|
73
|
+
* 未知の拡張子は `application/octet-stream` を返す。
|
|
74
|
+
*/
|
|
75
|
+
function guessContentType(filenameOrExt) {
|
|
76
|
+
// ドット付き → extname で拡張子を取得、ドットなし → そのまま拡張子として扱う
|
|
77
|
+
const ext = filenameOrExt.includes('.')
|
|
78
|
+
? (0, path_1.extname)(filenameOrExt).replace(/^\./, '').toLowerCase()
|
|
79
|
+
: filenameOrExt.toLowerCase();
|
|
80
|
+
return CONTENT_TYPE_MAP[ext] ?? 'application/octet-stream';
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* テキストファイルとして読み取り可能な拡張子かどうかを判定する。
|
|
84
|
+
* MIME タイプだけでは判定しきれないケース(.prisma, .tf 等)を補完するために使用。
|
|
85
|
+
*/
|
|
86
|
+
const TEXT_EXTENSIONS = new Set([
|
|
87
|
+
'txt', 'md', 'csv', 'tsv',
|
|
88
|
+
'json', 'xml', 'yaml', 'yml',
|
|
89
|
+
'js', 'ts', 'jsx', 'tsx',
|
|
90
|
+
'py', 'rb', 'java', 'go', 'rs', 'c', 'cpp', 'h', 'hpp',
|
|
91
|
+
'sh', 'bash', 'zsh',
|
|
92
|
+
'html', 'css', 'scss', 'less',
|
|
93
|
+
'sql', 'graphql',
|
|
94
|
+
'env', 'cfg', 'ini', 'toml', 'conf', 'log',
|
|
95
|
+
'prisma', 'proto', 'tf', 'hcl',
|
|
96
|
+
]);
|
|
97
|
+
function isTextExtension(ext) {
|
|
98
|
+
return TEXT_EXTENSIONS.has(ext.toLowerCase());
|
|
99
|
+
}
|
|
100
|
+
/** MIME タイプがテキストとして読み取り可能か判定する */
|
|
101
|
+
const TEXT_MIME_PREFIXES = [
|
|
102
|
+
'text/',
|
|
103
|
+
'application/json',
|
|
104
|
+
'application/xml',
|
|
105
|
+
'application/javascript',
|
|
106
|
+
'application/typescript',
|
|
107
|
+
'application/yaml',
|
|
108
|
+
'application/x-sh',
|
|
109
|
+
'application/sql',
|
|
110
|
+
'application/toml',
|
|
111
|
+
'application/graphql',
|
|
112
|
+
];
|
|
113
|
+
function isTextMime(contentType) {
|
|
114
|
+
return TEXT_MIME_PREFIXES.some((prefix) => contentType.startsWith(prefix));
|
|
115
|
+
}
|
|
116
|
+
/** MIME タイプが画像か判定する */
|
|
117
|
+
function isImageMime(contentType) {
|
|
118
|
+
return contentType.startsWith('image/');
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=content-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.js","sourceRoot":"","sources":["../../src/utils/content-type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-parse.d.ts","sourceRoot":"","sources":["../../src/utils/json-parse.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAM5D"}
|