@panguard-ai/panguard-guard 0.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/dist/agent/analyze-agent.d.ts +62 -0
- package/dist/agent/analyze-agent.d.ts.map +1 -0
- package/dist/agent/analyze-agent.js +327 -0
- package/dist/agent/analyze-agent.js.map +1 -0
- package/dist/agent/detect-agent.d.ts +59 -0
- package/dist/agent/detect-agent.d.ts.map +1 -0
- package/dist/agent/detect-agent.js +214 -0
- package/dist/agent/detect-agent.js.map +1 -0
- package/dist/agent/index.d.ts +15 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +14 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/report-agent.d.ts +122 -0
- package/dist/agent/report-agent.d.ts.map +1 -0
- package/dist/agent/report-agent.js +468 -0
- package/dist/agent/report-agent.js.map +1 -0
- package/dist/agent/respond-agent.d.ts +113 -0
- package/dist/agent/respond-agent.d.ts.map +1 -0
- package/dist/agent/respond-agent.js +749 -0
- package/dist/agent/respond-agent.js.map +1 -0
- package/dist/agent-client/index.d.ts +81 -0
- package/dist/agent-client/index.d.ts.map +1 -0
- package/dist/agent-client/index.js +170 -0
- package/dist/agent-client/index.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +295 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config.d.ts +23 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +108 -0
- package/dist/config.js.map +1 -0
- package/dist/daemon/index.d.ts +66 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +284 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/dashboard/index.d.ts +78 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +455 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/guard-engine.d.ts +108 -0
- package/dist/guard-engine.d.ts.map +1 -0
- package/dist/guard-engine.js +740 -0
- package/dist/guard-engine.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/install/index.d.ts +23 -0
- package/dist/install/index.d.ts.map +1 -0
- package/dist/install/index.js +216 -0
- package/dist/install/index.js.map +1 -0
- package/dist/investigation/index.d.ts +80 -0
- package/dist/investigation/index.d.ts.map +1 -0
- package/dist/investigation/index.js +570 -0
- package/dist/investigation/index.js.map +1 -0
- package/dist/license/index.d.ts +46 -0
- package/dist/license/index.d.ts.map +1 -0
- package/dist/license/index.js +145 -0
- package/dist/license/index.js.map +1 -0
- package/dist/memory/baseline.d.ts +34 -0
- package/dist/memory/baseline.d.ts.map +1 -0
- package/dist/memory/baseline.js +224 -0
- package/dist/memory/baseline.js.map +1 -0
- package/dist/memory/index.d.ts +32 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +58 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/learning.d.ts +35 -0
- package/dist/memory/learning.d.ts.map +1 -0
- package/dist/memory/learning.js +60 -0
- package/dist/memory/learning.js.map +1 -0
- package/dist/monitors/falco-monitor.d.ts +62 -0
- package/dist/monitors/falco-monitor.d.ts.map +1 -0
- package/dist/monitors/falco-monitor.js +226 -0
- package/dist/monitors/falco-monitor.js.map +1 -0
- package/dist/monitors/suricata-monitor.d.ts +80 -0
- package/dist/monitors/suricata-monitor.d.ts.map +1 -0
- package/dist/monitors/suricata-monitor.js +227 -0
- package/dist/monitors/suricata-monitor.js.map +1 -0
- package/dist/notify/email.d.ts +23 -0
- package/dist/notify/email.d.ts.map +1 -0
- package/dist/notify/email.js +124 -0
- package/dist/notify/email.js.map +1 -0
- package/dist/notify/index.d.ts +31 -0
- package/dist/notify/index.d.ts.map +1 -0
- package/dist/notify/index.js +70 -0
- package/dist/notify/index.js.map +1 -0
- package/dist/notify/line-notify.d.ts.map +1 -0
- package/dist/notify/slack.d.ts +21 -0
- package/dist/notify/slack.d.ts.map +1 -0
- package/dist/notify/slack.js +92 -0
- package/dist/notify/slack.js.map +1 -0
- package/dist/notify/telegram.d.ts +21 -0
- package/dist/notify/telegram.d.ts.map +1 -0
- package/dist/notify/telegram.js +89 -0
- package/dist/notify/telegram.js.map +1 -0
- package/dist/response/file-quarantine.d.ts +63 -0
- package/dist/response/file-quarantine.d.ts.map +1 -0
- package/dist/response/file-quarantine.js +137 -0
- package/dist/response/file-quarantine.js.map +1 -0
- package/dist/response/index.d.ts +4 -0
- package/dist/response/index.d.ts.map +1 -0
- package/dist/response/index.js +4 -0
- package/dist/response/index.js.map +1 -0
- package/dist/response/ip-blocker.d.ts +69 -0
- package/dist/response/ip-blocker.d.ts.map +1 -0
- package/dist/response/ip-blocker.js +191 -0
- package/dist/response/ip-blocker.js.map +1 -0
- package/dist/response/process-killer.d.ts +49 -0
- package/dist/response/process-killer.d.ts.map +1 -0
- package/dist/response/process-killer.js +230 -0
- package/dist/response/process-killer.js.map +1 -0
- package/dist/rules/builtin-rules.d.ts +12 -0
- package/dist/rules/builtin-rules.d.ts.map +1 -0
- package/dist/rules/builtin-rules.js +471 -0
- package/dist/rules/builtin-rules.js.map +1 -0
- package/dist/threat-cloud/client-id.d.ts +13 -0
- package/dist/threat-cloud/client-id.d.ts.map +1 -0
- package/dist/threat-cloud/client-id.js +38 -0
- package/dist/threat-cloud/client-id.js.map +1 -0
- package/dist/threat-cloud/index.d.ts +103 -0
- package/dist/threat-cloud/index.d.ts.map +1 -0
- package/dist/threat-cloud/index.js +386 -0
- package/dist/threat-cloud/index.js.map +1 -0
- package/dist/types.d.ts +336 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +42 -0
- package/dist/types.js.map +1 -0
- package/package.json +35 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PanguardGuard type definitions
|
|
3
|
+
* PanguardGuard 型別定義
|
|
4
|
+
* @module @panguard-ai/panguard-guard/types
|
|
5
|
+
*/
|
|
6
|
+
import type { Language, Severity, SecurityEvent } from '@panguard-ai/core';
|
|
7
|
+
/** Investigation tool name / 調查工具名稱 */
|
|
8
|
+
export type InvestigationTool = 'checkIPHistory' | 'checkUserPrivilege' | 'checkTimeAnomaly' | 'checkGeoLocation' | 'checkRelatedEvents' | 'checkProcessTree' | 'checkFileReputation' | 'checkNetworkPattern';
|
|
9
|
+
/** Single investigation step / 單一調查步驟 */
|
|
10
|
+
export interface InvestigationStep {
|
|
11
|
+
tool: InvestigationTool;
|
|
12
|
+
reason: string;
|
|
13
|
+
result?: InvestigationResult;
|
|
14
|
+
durationMs?: number;
|
|
15
|
+
}
|
|
16
|
+
/** Investigation result / 調查結果 */
|
|
17
|
+
export interface InvestigationResult {
|
|
18
|
+
finding: string;
|
|
19
|
+
riskContribution: number;
|
|
20
|
+
needsAdditionalInvestigation: boolean;
|
|
21
|
+
data?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
/** Investigation plan from AI / AI 產生的調查計畫 */
|
|
24
|
+
export interface InvestigationPlan {
|
|
25
|
+
steps: InvestigationStep[];
|
|
26
|
+
reasoning: string;
|
|
27
|
+
}
|
|
28
|
+
/** Evidence source type / 證據來源類型 */
|
|
29
|
+
export type EvidenceSource = 'rule_match' | 'ai_analysis' | 'baseline_deviation' | 'threat_intel' | 'investigation';
|
|
30
|
+
/** Evidence item / 證據項目 */
|
|
31
|
+
export interface Evidence {
|
|
32
|
+
source: EvidenceSource;
|
|
33
|
+
description: string;
|
|
34
|
+
confidence: number;
|
|
35
|
+
data?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
/** Response action type / 回應動作類型 */
|
|
38
|
+
export type ResponseAction = 'log_only' | 'notify' | 'block_ip' | 'kill_process' | 'disable_account' | 'isolate_file';
|
|
39
|
+
/** Threat verdict from Analyze Agent / 分析代理的威脅判決 */
|
|
40
|
+
export interface ThreatVerdict {
|
|
41
|
+
/** Conclusion / 結論 */
|
|
42
|
+
conclusion: 'benign' | 'suspicious' | 'malicious';
|
|
43
|
+
/** Confidence score 0-100 / 信心分數 */
|
|
44
|
+
confidence: number;
|
|
45
|
+
/** AI reasoning chain / AI 推理鏈 */
|
|
46
|
+
reasoning: string;
|
|
47
|
+
/** Supporting evidence / 支持判斷的證據 */
|
|
48
|
+
evidence: Evidence[];
|
|
49
|
+
/** Recommended response action / 建議的回應動作 */
|
|
50
|
+
recommendedAction: ResponseAction;
|
|
51
|
+
/** MITRE ATT&CK technique ID / MITRE ATT&CK 技術 ID */
|
|
52
|
+
mitreTechnique?: string;
|
|
53
|
+
/** Investigation steps taken / 執行的調查步驟 */
|
|
54
|
+
investigationSteps?: InvestigationStep[];
|
|
55
|
+
}
|
|
56
|
+
/** Configurable action thresholds / 可配置的動作閾值 */
|
|
57
|
+
export interface ActionPolicy {
|
|
58
|
+
/** Auto-respond threshold (default 85) / 自動回應閾值 */
|
|
59
|
+
autoRespond: number;
|
|
60
|
+
/** Notify-and-wait threshold (default 50) / 通知等待閾值 */
|
|
61
|
+
notifyAndWait: number;
|
|
62
|
+
/** Log-only threshold (default 0) / 僅記錄閾值 */
|
|
63
|
+
logOnly: number;
|
|
64
|
+
}
|
|
65
|
+
/** Default action policy / 預設動作策略 */
|
|
66
|
+
export declare const DEFAULT_ACTION_POLICY: ActionPolicy;
|
|
67
|
+
/** Process pattern for baseline / 基線程序模式 */
|
|
68
|
+
export interface ProcessPattern {
|
|
69
|
+
name: string;
|
|
70
|
+
path?: string;
|
|
71
|
+
frequency: number;
|
|
72
|
+
firstSeen: string;
|
|
73
|
+
lastSeen: string;
|
|
74
|
+
}
|
|
75
|
+
/** Connection pattern for baseline / 基線連線模式 */
|
|
76
|
+
export interface ConnectionPattern {
|
|
77
|
+
remoteAddress: string;
|
|
78
|
+
remotePort: number;
|
|
79
|
+
protocol: string;
|
|
80
|
+
frequency: number;
|
|
81
|
+
firstSeen: string;
|
|
82
|
+
lastSeen: string;
|
|
83
|
+
}
|
|
84
|
+
/** Login pattern for baseline / 基線登入模式 */
|
|
85
|
+
export interface LoginPattern {
|
|
86
|
+
username: string;
|
|
87
|
+
sourceIP?: string;
|
|
88
|
+
hourOfDay: number;
|
|
89
|
+
dayOfWeek: number;
|
|
90
|
+
frequency: number;
|
|
91
|
+
firstSeen: string;
|
|
92
|
+
lastSeen: string;
|
|
93
|
+
}
|
|
94
|
+
/** Port pattern for baseline / 基線埠模式 */
|
|
95
|
+
export interface PortPattern {
|
|
96
|
+
port: number;
|
|
97
|
+
service?: string;
|
|
98
|
+
firstSeen: string;
|
|
99
|
+
lastSeen: string;
|
|
100
|
+
}
|
|
101
|
+
/** Environment baseline built during learning / 學習期建立的環境基線 */
|
|
102
|
+
export interface EnvironmentBaseline {
|
|
103
|
+
normalProcesses: ProcessPattern[];
|
|
104
|
+
normalConnections: ConnectionPattern[];
|
|
105
|
+
normalLoginPatterns: LoginPattern[];
|
|
106
|
+
normalServicePorts: PortPattern[];
|
|
107
|
+
learningStarted: string;
|
|
108
|
+
learningComplete: boolean;
|
|
109
|
+
confidenceLevel: number;
|
|
110
|
+
lastUpdated: string;
|
|
111
|
+
eventCount: number;
|
|
112
|
+
}
|
|
113
|
+
/** Deviation check result / 偏離檢查結果 */
|
|
114
|
+
export interface DeviationResult {
|
|
115
|
+
isDeviation: boolean;
|
|
116
|
+
deviationType: string;
|
|
117
|
+
confidence: number;
|
|
118
|
+
description: string;
|
|
119
|
+
}
|
|
120
|
+
/** Detection result from Detect Agent / 偵測代理的偵測結果 */
|
|
121
|
+
export interface DetectionResult {
|
|
122
|
+
event: SecurityEvent;
|
|
123
|
+
ruleMatches: Array<{
|
|
124
|
+
ruleId: string;
|
|
125
|
+
ruleName: string;
|
|
126
|
+
severity: Severity;
|
|
127
|
+
}>;
|
|
128
|
+
threatIntelMatch?: {
|
|
129
|
+
ip: string;
|
|
130
|
+
threat: string;
|
|
131
|
+
};
|
|
132
|
+
timestamp: string;
|
|
133
|
+
/** Attack chain correlation data (present when multiple events from same source detected) */
|
|
134
|
+
attackChain?: {
|
|
135
|
+
sourceIP: string;
|
|
136
|
+
eventCount: number;
|
|
137
|
+
ruleIds: string[];
|
|
138
|
+
windowMs: number;
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/** Response execution result / 回應執行結果 */
|
|
142
|
+
export interface ResponseResult {
|
|
143
|
+
action: ResponseAction;
|
|
144
|
+
success: boolean;
|
|
145
|
+
details: string;
|
|
146
|
+
timestamp: string;
|
|
147
|
+
target?: string;
|
|
148
|
+
}
|
|
149
|
+
/** Telegram Bot config / Telegram Bot 配置 */
|
|
150
|
+
export interface TelegramConfig {
|
|
151
|
+
botToken: string;
|
|
152
|
+
chatId: string;
|
|
153
|
+
}
|
|
154
|
+
/** Slack Webhook config / Slack Webhook 配置 */
|
|
155
|
+
export interface SlackConfig {
|
|
156
|
+
webhookUrl: string;
|
|
157
|
+
}
|
|
158
|
+
/** Email SMTP config / Email SMTP 配置 */
|
|
159
|
+
export interface EmailConfig {
|
|
160
|
+
host: string;
|
|
161
|
+
port: number;
|
|
162
|
+
secure: boolean;
|
|
163
|
+
auth: {
|
|
164
|
+
user: string;
|
|
165
|
+
pass: string;
|
|
166
|
+
};
|
|
167
|
+
from: string;
|
|
168
|
+
to: string[];
|
|
169
|
+
}
|
|
170
|
+
/** Notification config combining all channels / 通知配置(所有通道) */
|
|
171
|
+
export interface NotificationConfig {
|
|
172
|
+
telegram?: TelegramConfig;
|
|
173
|
+
slack?: SlackConfig;
|
|
174
|
+
email?: EmailConfig;
|
|
175
|
+
}
|
|
176
|
+
/** Notification result / 通知結果 */
|
|
177
|
+
export interface NotificationResult {
|
|
178
|
+
channel: 'telegram' | 'slack' | 'email';
|
|
179
|
+
success: boolean;
|
|
180
|
+
error?: string;
|
|
181
|
+
}
|
|
182
|
+
/** Anonymized threat data for cloud upload / 匿名化威脅數據 */
|
|
183
|
+
export interface AnonymizedThreatData {
|
|
184
|
+
attackSourceIP: string;
|
|
185
|
+
attackType: string;
|
|
186
|
+
mitreTechnique: string;
|
|
187
|
+
sigmaRuleMatched: string;
|
|
188
|
+
timestamp: string;
|
|
189
|
+
industry?: string;
|
|
190
|
+
region: string;
|
|
191
|
+
/** Unique event identifier / 唯一事件識別碼 */
|
|
192
|
+
eventId?: string;
|
|
193
|
+
/** SHA-256 hash of threat pattern / 威脅模式的 SHA-256 雜湊 */
|
|
194
|
+
patternHash?: string;
|
|
195
|
+
/** Confidence score 0-100 / 信心分數 */
|
|
196
|
+
confidence?: number;
|
|
197
|
+
/** Severity level / 嚴重等級 */
|
|
198
|
+
severity?: 'low' | 'medium' | 'high' | 'critical';
|
|
199
|
+
/** Auto-response action taken / 自動回應動作 */
|
|
200
|
+
autoResponseTaken?: string;
|
|
201
|
+
/** Panguard client version / Panguard 客戶端版本 */
|
|
202
|
+
panguardVersion?: string;
|
|
203
|
+
/** OS type (darwin/linux/windows) / 作業系統類型 */
|
|
204
|
+
osType?: string;
|
|
205
|
+
}
|
|
206
|
+
/** Threat cloud rule update / 威脅雲規則更新 */
|
|
207
|
+
export interface ThreatCloudUpdate {
|
|
208
|
+
ruleId: string;
|
|
209
|
+
ruleContent: string;
|
|
210
|
+
publishedAt: string;
|
|
211
|
+
source: string;
|
|
212
|
+
}
|
|
213
|
+
/** Threat cloud status / 威脅雲狀態 */
|
|
214
|
+
export type ThreatCloudStatus = 'connected' | 'disconnected' | 'offline';
|
|
215
|
+
/** License tier / 授權等級 */
|
|
216
|
+
export type LicenseTier = 'free' | 'pro' | 'enterprise';
|
|
217
|
+
/** License info / 授權資訊 */
|
|
218
|
+
export interface LicenseInfo {
|
|
219
|
+
key: string;
|
|
220
|
+
tier: LicenseTier;
|
|
221
|
+
isValid: boolean;
|
|
222
|
+
expiresAt?: string;
|
|
223
|
+
maxEndpoints?: number;
|
|
224
|
+
features: string[];
|
|
225
|
+
}
|
|
226
|
+
/** Feature gates per tier / 各等級功能閘 */
|
|
227
|
+
export declare const TIER_FEATURES: Record<LicenseTier, string[]>;
|
|
228
|
+
/** LLM analysis result / LLM 分析結果 */
|
|
229
|
+
export interface LLMAnalysisResult {
|
|
230
|
+
summary: string;
|
|
231
|
+
severity: string;
|
|
232
|
+
confidence: number;
|
|
233
|
+
recommendations: string[];
|
|
234
|
+
}
|
|
235
|
+
/** LLM classification result / LLM 分類結果 */
|
|
236
|
+
export interface LLMClassificationResult {
|
|
237
|
+
technique: string;
|
|
238
|
+
severity: string;
|
|
239
|
+
confidence: number;
|
|
240
|
+
description: string;
|
|
241
|
+
}
|
|
242
|
+
/** LLM provider interface for analysis / 分析用 LLM 供應商介面 */
|
|
243
|
+
export interface AnalyzeLLM {
|
|
244
|
+
analyze(prompt: string, context?: string): Promise<LLMAnalysisResult>;
|
|
245
|
+
classify(event: SecurityEvent): Promise<LLMClassificationResult>;
|
|
246
|
+
isAvailable(): Promise<boolean>;
|
|
247
|
+
}
|
|
248
|
+
/** Dashboard status data / Dashboard 狀態資料 */
|
|
249
|
+
export interface DashboardStatus {
|
|
250
|
+
mode: 'learning' | 'protection';
|
|
251
|
+
uptime: number;
|
|
252
|
+
eventsProcessed: number;
|
|
253
|
+
threatsDetected: number;
|
|
254
|
+
actionsExecuted: number;
|
|
255
|
+
learningProgress: number;
|
|
256
|
+
baselineConfidence: number;
|
|
257
|
+
memoryUsageMB: number;
|
|
258
|
+
cpuPercent: number;
|
|
259
|
+
lastEvent?: SecurityEvent;
|
|
260
|
+
recentVerdicts: ThreatVerdict[];
|
|
261
|
+
}
|
|
262
|
+
/** Dashboard event for WebSocket push / WebSocket 推送事件 */
|
|
263
|
+
export interface DashboardEvent {
|
|
264
|
+
type: 'status_update' | 'new_event' | 'new_verdict' | 'action_executed' | 'learning_progress';
|
|
265
|
+
data: unknown;
|
|
266
|
+
timestamp: string;
|
|
267
|
+
}
|
|
268
|
+
/** Threat map entry / 威脅地圖條目 */
|
|
269
|
+
export interface ThreatMapEntry {
|
|
270
|
+
sourceIP: string;
|
|
271
|
+
country?: string;
|
|
272
|
+
city?: string;
|
|
273
|
+
latitude?: number;
|
|
274
|
+
longitude?: number;
|
|
275
|
+
attackType: string;
|
|
276
|
+
count: number;
|
|
277
|
+
lastSeen: string;
|
|
278
|
+
}
|
|
279
|
+
/** Guard engine operating mode / 守護引擎運作模式 */
|
|
280
|
+
export type GuardMode = 'learning' | 'protection';
|
|
281
|
+
/** Complete guard configuration / 完整守護配置 */
|
|
282
|
+
export interface GuardConfig {
|
|
283
|
+
lang: Language;
|
|
284
|
+
mode: GuardMode;
|
|
285
|
+
learningDays: number;
|
|
286
|
+
actionPolicy: ActionPolicy;
|
|
287
|
+
notifications: NotificationConfig;
|
|
288
|
+
ai?: {
|
|
289
|
+
provider: 'ollama' | 'claude' | 'openai';
|
|
290
|
+
model: string;
|
|
291
|
+
endpoint?: string;
|
|
292
|
+
apiKey?: string;
|
|
293
|
+
};
|
|
294
|
+
dataDir: string;
|
|
295
|
+
threatCloudEndpoint?: string;
|
|
296
|
+
licenseKey?: string;
|
|
297
|
+
/** CLI tier from panguard credentials (overrides key-based license) */
|
|
298
|
+
cliTier?: string;
|
|
299
|
+
dashboardPort: number;
|
|
300
|
+
dashboardEnabled: boolean;
|
|
301
|
+
verbose: boolean;
|
|
302
|
+
monitors: {
|
|
303
|
+
logMonitor: boolean;
|
|
304
|
+
networkMonitor: boolean;
|
|
305
|
+
processMonitor: boolean;
|
|
306
|
+
fileMonitor: boolean;
|
|
307
|
+
networkPollInterval: number;
|
|
308
|
+
processPollInterval: number;
|
|
309
|
+
};
|
|
310
|
+
watchdogEnabled: boolean;
|
|
311
|
+
watchdogInterval: number;
|
|
312
|
+
/** YARA rules directory (custom + community) / YARA 規則目錄 */
|
|
313
|
+
yaraRulesDir?: string;
|
|
314
|
+
/** Bundled Sigma rules directory (shipped with installation) / 內建 Sigma 規則目錄 */
|
|
315
|
+
bundledSigmaDir?: string;
|
|
316
|
+
/** Bundled YARA rules directory (shipped with installation) / 內建 YARA 規則目錄 */
|
|
317
|
+
bundledYaraDir?: string;
|
|
318
|
+
/** Manager URL for agent mode (distributed architecture) */
|
|
319
|
+
managerUrl?: string;
|
|
320
|
+
/** Agent ID (auto-assigned on registration) */
|
|
321
|
+
agentId?: string;
|
|
322
|
+
}
|
|
323
|
+
/** Guard engine status / 守護引擎狀態 */
|
|
324
|
+
export interface GuardStatus {
|
|
325
|
+
running: boolean;
|
|
326
|
+
mode: GuardMode;
|
|
327
|
+
uptime: number;
|
|
328
|
+
eventsProcessed: number;
|
|
329
|
+
threatsDetected: number;
|
|
330
|
+
actionsExecuted: number;
|
|
331
|
+
learningProgress: number;
|
|
332
|
+
baselineConfidence: number;
|
|
333
|
+
memoryUsageMB: number;
|
|
334
|
+
licenseTier: LicenseTier;
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PanguardGuard type definitions
|
|
3
|
+
* PanguardGuard 型別定義
|
|
4
|
+
* @module @panguard-ai/panguard-guard/types
|
|
5
|
+
*/
|
|
6
|
+
/** Default action policy / 預設動作策略 */
|
|
7
|
+
export const DEFAULT_ACTION_POLICY = {
|
|
8
|
+
autoRespond: 85,
|
|
9
|
+
notifyAndWait: 50,
|
|
10
|
+
logOnly: 0,
|
|
11
|
+
};
|
|
12
|
+
/** Feature gates per tier / 各等級功能閘 */
|
|
13
|
+
export const TIER_FEATURES = {
|
|
14
|
+
free: ['basic_monitoring', 'rule_matching', 'auto_respond', 'threat_cloud_upload'],
|
|
15
|
+
pro: [
|
|
16
|
+
'basic_monitoring',
|
|
17
|
+
'rule_matching',
|
|
18
|
+
'ai_analysis',
|
|
19
|
+
'auto_respond',
|
|
20
|
+
'auto_fix',
|
|
21
|
+
'notifications',
|
|
22
|
+
'context_memory',
|
|
23
|
+
'threat_cloud_upload',
|
|
24
|
+
'custom_rules',
|
|
25
|
+
],
|
|
26
|
+
enterprise: [
|
|
27
|
+
'basic_monitoring',
|
|
28
|
+
'rule_matching',
|
|
29
|
+
'ai_analysis',
|
|
30
|
+
'auto_respond',
|
|
31
|
+
'auto_fix',
|
|
32
|
+
'notifications',
|
|
33
|
+
'context_memory',
|
|
34
|
+
'threat_cloud',
|
|
35
|
+
'threat_cloud_upload',
|
|
36
|
+
'multi_endpoint',
|
|
37
|
+
'priority_support',
|
|
38
|
+
'custom_rules',
|
|
39
|
+
'webhook_api',
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgGH,qCAAqC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,CAAC;CACX,CAAC;AAqLF,sCAAsC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAkC;IAC1D,IAAI,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,CAAC;IAClF,GAAG,EAAE;QACH,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,cAAc;QACd,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,cAAc;KACf;IACD,UAAU,EAAE;QACV,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,cAAc;QACd,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,qBAAqB;QACrB,gBAAgB;QAChB,kBAAkB;QAClB,cAAc;QACd,aAAa;KACd;CACF,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@panguard-ai/panguard-guard",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "AI real-time endpoint monitoring and auto-response / AI 即時端點監控與自動回應",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"panguard-guard": "./dist/cli/index.js"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"package.json",
|
|
17
|
+
"README.md"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc --build",
|
|
21
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
22
|
+
"typecheck": "tsc --noEmit",
|
|
23
|
+
"test": "vitest run",
|
|
24
|
+
"dev": "tsc --build --watch",
|
|
25
|
+
"prepublishOnly": "pnpm run build"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@panguard-ai/core": "workspace:*",
|
|
29
|
+
"@panguard-ai/security-hardening": "workspace:*"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/node": "^22.14.0",
|
|
33
|
+
"typescript": "~5.7.3"
|
|
34
|
+
}
|
|
35
|
+
}
|