appsec-agent 0.1.3 → 0.2.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.
@@ -12,9 +12,9 @@ default: &default
12
12
  verbose: True
13
13
  code_reviewer:
14
14
  options:
15
- system_prompt: "You are an Application Security (AppSec) expert assistant. You are responsible for performing a thorough code review. List out all the potential security and privacy issues found in the code. Then provide security and privacy advice and guidance in the code review report."
16
- output_format: "markdown"
17
- verbose: True
15
+ system_prompt: "You are an Application Security (AppSec) expert assistant. You are responsible for performing a thorough code review. List out all the potential security issues found in the code. Provide affected code snippet and security advice and guidance in the code review report."
16
+ output_format: "markdown"
17
+ verbose: True
18
18
  threat_modeler:
19
19
  options:
20
20
  system_prompt: "You are an Application Security (AppSec) expert assistant. You are responsible for performing risk assessment on the source code repository for SOC2 type 2 compliance audit: 1. Start with drawing the ASCII text based Data Flow Diagrm (DFD), with output format as <codebase_data_flow_diagram_text_timestamp>; 2. then proceeding to use STRIDE methodology to perform threat modeling on the DFD, without output report in the format <codebase_threat_model_timestamp>; 3. finally, provide a seperate risk registry report including proposed remediation plan in the format <codebase_risk_registry_text_timestamp>. We're looking for 3 reports in the current working directory as the deliverable."
@@ -1 +1 @@
1
- {"version":3,"file":"agent_actions.d.ts","sourceRoot":"","sources":["../src/agent_actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,mBAAmB,CAA2B;gBAE1C,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAMtE;;OAEG;IACG,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAyP/F;;OAEG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiElE;;OAEG;IACG,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgEzE"}
1
+ {"version":3,"file":"agent_actions.d.ts","sourceRoot":"","sources":["../src/agent_actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,mBAAmB,CAA2B;gBAC1C,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAMtE;;OAEG;IACG,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAiJ/F;;OAEG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiElE;;OAEG;IACG,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA6DzE"}
@@ -26,241 +26,139 @@ class AgentActions {
26
26
  const agentOptions = new agent_options_1.AgentOptions(this.confDict, this.environment);
27
27
  const options = agentOptions.getSimpleQueryAgentOptions(this.args.role, srcDir);
28
28
  // Build prompt with conversation history and source directory context
29
+ const sourceDirContext = srcDir
30
+ ? `\n\nContext: There is a source code directory available at ${srcDir}. You can search and read files within this directory to answer questions. The directory is located in the current working directory.\n`
31
+ : '';
29
32
  let fullPrompt;
30
- let sourceDirContext = '';
31
- // Add source directory context if provided
32
- if (srcDir) {
33
- sourceDirContext = `\n\nContext: There is a source code directory available at ${srcDir}. You can search and read files within this directory to answer questions. The directory is located in the current working directory.\n`;
34
- }
35
33
  if (this.conversationHistory.length > 0) {
36
- // Include previous conversation context
37
- let contextPrompt = 'Previous conversation:\n';
38
- for (const entry of this.conversationHistory) {
39
- if (entry.role === 'user') {
40
- contextPrompt += `User: ${entry.content}\n`;
41
- }
42
- else {
43
- contextPrompt += `Assistant: ${entry.content}\n`;
44
- }
45
- }
46
- fullPrompt = `${contextPrompt}${sourceDirContext}User: ${yourPrompt}`;
34
+ const contextPrompt = this.conversationHistory
35
+ .map(entry => `${entry.role === 'user' ? 'User' : 'Assistant'}: ${entry.content}`)
36
+ .join('\n');
37
+ fullPrompt = `Previous conversation:\n${contextPrompt}${sourceDirContext}User: ${yourPrompt}`;
47
38
  }
48
39
  else {
49
40
  fullPrompt = `${sourceDirContext}${yourPrompt}`;
50
41
  }
51
- // Declare cursor outside try block so it's accessible in catch
52
- let cursor = null;
42
+ const cursor = new blinking_cursor_1.BlinkingCursor();
43
+ let cursorStopped = false;
44
+ const stopCursor = () => {
45
+ if (!cursorStopped) {
46
+ cursor.stop();
47
+ cursorStopped = true;
48
+ }
49
+ };
50
+ let accumulatedText = '';
51
+ let hasPrintedHeader = false;
52
+ let hasSeenStreamEvents = false;
53
+ let assistantResponseText = '';
54
+ let finalResult = null;
55
+ const printHeader = () => {
56
+ if (!hasPrintedHeader) {
57
+ console.log(`\nClaude:\n`);
58
+ hasPrintedHeader = true;
59
+ }
60
+ };
53
61
  try {
54
- let accumulatedText = '';
55
- let hasPrintedHeader = false;
56
- let hasSeenStreamEvents = false;
57
- let messageCount = 0;
58
- let assistantResponseText = '';
59
- let finalResult = null;
60
- // Start blinking cursor to show we're waiting for Claude's response
61
- cursor = new blinking_cursor_1.BlinkingCursor();
62
62
  cursor.start();
63
- try {
64
- for await (const msg of (0, claude_agent_sdk_1.query)({ prompt: fullPrompt, options })) {
65
- messageCount++;
66
- // Debug logging (remove in production)
67
- if (this.args.verbose) {
68
- console.error(`[DEBUG] Message #${messageCount}: type=${msg.type}`);
69
- }
70
- // Handle stream events (streaming deltas) - these come first
71
- if (msg.type === 'stream_event') {
72
- hasSeenStreamEvents = true;
73
- const streamMsg = msg;
74
- // Stop blinking cursor when we receive the first stream event
75
- if (cursor)
76
- cursor.stop();
77
- // Handle content block deltas (streaming text)
78
- if (streamMsg.event?.type === 'content_block_delta' && streamMsg.event.delta?.type === 'text_delta') {
79
- const deltaText = streamMsg.event.delta.text || '';
80
- if (deltaText) {
81
- if (!hasPrintedHeader) {
82
- console.log(`\nClaude:\n`);
83
- hasPrintedHeader = true;
84
- }
85
- // Accumulate and write streaming deltas directly
86
- accumulatedText += deltaText;
87
- assistantResponseText += deltaText;
88
- process.stdout.write(deltaText);
89
- }
90
- }
91
- // Handle content block start (beginning of new content block)
92
- else if (streamMsg.event?.type === 'content_block_start') {
93
- // Stop cursor when content block starts
94
- if (cursor)
95
- cursor.stop();
96
- // Content block is starting - ensure header is printed
97
- if (!hasPrintedHeader) {
98
- console.log(`\nClaude:\n`);
99
- hasPrintedHeader = true;
100
- }
101
- // Don't reset accumulatedText here - we want to accumulate ALL text across all blocks
102
- // Only reset if this is truly a new message (but we can't tell that here)
103
- // Actually, we should keep accumulating to get the full response
104
- }
105
- // Handle message stop (one message/turn is complete, but stream may continue)
106
- else if (streamMsg.event?.type === 'message_stop') {
107
- // One message is complete, but the stream may continue with more messages
108
- // (e.g., after tools execute). Don't treat this as stream end.
109
- if (hasPrintedHeader && accumulatedText) {
110
- // This message is done, but more may come
111
- }
112
- }
113
- // Handle other stream event types we might not be handling
114
- else if (this.args.verbose) {
115
- console.error(`[DEBUG] Unhandled stream event type: ${streamMsg.event?.type}`);
63
+ for await (const msg of (0, claude_agent_sdk_1.query)({ prompt: fullPrompt, options })) {
64
+ if (this.args.verbose) {
65
+ console.error(`[DEBUG] Message type: ${msg.type}`);
66
+ }
67
+ if (msg.type === 'stream_event') {
68
+ hasSeenStreamEvents = true;
69
+ stopCursor();
70
+ const streamMsg = msg;
71
+ if (streamMsg.event?.type === 'content_block_delta' && streamMsg.event.delta?.type === 'text_delta') {
72
+ const deltaText = streamMsg.event.delta.text || '';
73
+ if (deltaText) {
74
+ printHeader();
75
+ accumulatedText += deltaText;
76
+ assistantResponseText += deltaText;
77
+ process.stdout.write(deltaText);
116
78
  }
117
79
  }
118
- // Handle assistant messages (complete messages) - only use if no stream events
119
- // Note: If we've seen stream events, the content was already printed incrementally
120
- // BUT: When tools are used, there may be more assistant messages after tools complete
121
- // So we need to handle both cases
122
- else if (msg.type === 'assistant') {
123
- // Stop cursor when we receive assistant message
124
- if (cursor)
125
- cursor.stop();
126
- const assistantMsg = msg;
127
- if (assistantMsg.message.content) {
128
- for (const block of assistantMsg.message.content) {
129
- if (block.type === 'text') {
130
- const currentText = block.text || '';
131
- if (currentText && currentText.length > 0) {
132
- // If we haven't seen stream events, print the complete message
133
- if (!hasSeenStreamEvents) {
134
- if (!hasPrintedHeader) {
135
- console.log(`\nClaude:\n`);
136
- hasPrintedHeader = true;
137
- }
138
- console.log(currentText);
139
- accumulatedText = currentText;
140
- assistantResponseText = currentText;
141
- }
142
- else {
143
- // If we've seen stream events, this might be additional content after tools
144
- // Check if this is new content not already accumulated
145
- if (!currentText.startsWith(accumulatedText) && currentText !== accumulatedText) {
146
- // This is additional content (e.g., after tools complete)
147
- const newText = currentText.slice(accumulatedText.length);
148
- if (newText) {
149
- process.stdout.write(newText);
150
- accumulatedText = currentText;
151
- assistantResponseText = currentText;
152
- }
153
- }
154
- else if (currentText.length > accumulatedText.length) {
155
- // More content than we've accumulated
156
- const newText = currentText.slice(accumulatedText.length);
157
- if (newText) {
158
- process.stdout.write(newText);
159
- accumulatedText = currentText;
160
- assistantResponseText = currentText;
161
- }
162
- }
163
- }
164
- }
165
- }
166
- }
167
- }
80
+ else if (streamMsg.event?.type === 'content_block_start') {
81
+ printHeader();
168
82
  }
169
- // Handle result messages - collect but don't display until stream completes
170
- // IMPORTANT: The stream may continue after a result message if tools are being used
171
- // We must continue processing until the stream is truly exhausted
172
- else if (msg.type === 'result') {
173
- // Stop cursor when we receive result (in case no content was received)
174
- if (cursor)
175
- cursor.stop();
176
- const resultMsg = msg;
177
- // Always update finalResult with the latest result message
178
- // (there may be multiple result messages if tools are used)
179
- finalResult = resultMsg;
180
- // Check for errors in result messages - display errors immediately
181
- if (resultMsg.is_error) {
182
- const errorMsg = resultMsg.errors?.[0] || resultMsg.error_message || 'Unknown error occurred';
183
- console.error(`\nError: ${errorMsg}`);
184
- if (resultMsg.subtype) {
185
- console.error(`Error subtype: ${resultMsg.subtype}`);
83
+ else if (this.args.verbose && streamMsg.event?.type !== 'message_stop') {
84
+ console.error(`[DEBUG] Unhandled stream event type: ${streamMsg.event?.type}`);
85
+ }
86
+ }
87
+ else if (msg.type === 'assistant') {
88
+ stopCursor();
89
+ const assistantMsg = msg;
90
+ for (const block of assistantMsg.message.content || []) {
91
+ if (block.type === 'text' && block.text) {
92
+ const currentText = block.text;
93
+ if (!hasSeenStreamEvents) {
94
+ // No streaming - print the complete message
95
+ printHeader();
96
+ console.log(currentText);
97
+ accumulatedText = currentText;
98
+ assistantResponseText = currentText;
186
99
  }
187
- // Log max_turns error specifically
188
- if (resultMsg.subtype === 'error_max_turns') {
189
- console.error(`\nNote: The conversation stopped because max_turns (${options.maxTurns || 1}) was reached.`);
190
- console.error(`To allow the agent to use tools and continue, increase max_turns in the configuration or use the code_reviewer role.`);
100
+ else if (currentText.length > accumulatedText.length) {
101
+ // Print only new content not yet streamed
102
+ const newText = currentText.startsWith(accumulatedText)
103
+ ? currentText.slice(accumulatedText.length)
104
+ : currentText; // Fallback: print entire text if mismatch
105
+ if (newText) {
106
+ process.stdout.write(newText);
107
+ accumulatedText = currentText;
108
+ assistantResponseText = currentText;
109
+ }
191
110
  }
192
111
  }
193
- // Debug: log turn count and continue processing (stream may not be done yet)
194
- if (this.args.verbose) {
195
- console.error(`[DEBUG] Result: num_turns=${resultMsg.num_turns}, is_error=${resultMsg.is_error}`);
196
- console.error(`[DEBUG] Continuing to process stream (may have more messages after tools)`);
197
- }
198
112
  }
199
- // Handle tool progress messages (agent might be using tools)
200
- else if (msg.type === 'tool_progress') {
201
- // Tool is being executed - this is normal, just continue
202
- if (this.args.verbose) {
203
- const toolMsg = msg;
204
- console.log(`[Tool Progress] ${toolMsg.tool_name}: ${toolMsg.elapsed_time_seconds}s`);
113
+ }
114
+ else if (msg.type === 'result') {
115
+ stopCursor();
116
+ finalResult = msg;
117
+ if (finalResult.is_error) {
118
+ const errorMsg = finalResult.errors?.[0] || finalResult.error_message || 'Unknown error occurred';
119
+ console.error(`\nError: ${errorMsg}`);
120
+ if (finalResult.subtype) {
121
+ console.error(`Error subtype: ${finalResult.subtype}`);
205
122
  }
206
- }
207
- // Log other message types - always log to help debug issues
208
- else {
209
- // Unknown message type - log it to help debug
210
- if (this.args.verbose) {
211
- console.error(`[DEBUG] Received unknown message type: ${msg.type}`);
212
- console.error(`[DEBUG] Message content:`, JSON.stringify(msg, null, 2));
123
+ if (finalResult.subtype === 'error_max_turns') {
124
+ console.error(`\nNote: The conversation stopped because max_turns (${options.maxTurns || 1}) was reached.`);
125
+ console.error(`To allow the agent to use tools and continue, increase max_turns in the configuration or use the code_reviewer role.`);
213
126
  }
214
127
  }
128
+ if (this.args.verbose) {
129
+ console.error(`[DEBUG] Result: num_turns=${finalResult.num_turns}, is_error=${finalResult.is_error}`);
130
+ }
215
131
  }
216
- }
217
- finally {
218
- // Always stop the cursor when done, even if there's an error
219
- if (cursor)
220
- cursor.stop();
221
- }
222
- // Debug: log total messages processed
223
- if (this.args.verbose) {
224
- console.error(`[DEBUG] Total messages processed: ${messageCount}`);
225
- }
226
- // Now that the stream is complete, ensure all stdout writes are flushed
227
- // Use multiple setImmediate calls to ensure the event loop processes all pending writes
228
- // This is critical when using process.stdout.write() for streaming
229
- await new Promise(resolve => setImmediate(resolve));
230
- await new Promise(resolve => setImmediate(resolve));
231
- // Now that the stream is complete, display the final result (cost, etc.)
232
- if (finalResult) {
233
- // Ensure we flush any partial output and add newline
234
- if (hasPrintedHeader) {
235
- console.log(); // New line after final output
132
+ else if (msg.type === 'tool_progress') {
133
+ if (this.args.verbose) {
134
+ const toolMsg = msg;
135
+ console.log(`[Tool Progress] ${toolMsg.tool_name}: ${toolMsg.elapsed_time_seconds}s`);
136
+ }
236
137
  }
237
- // Display cost only after stream is completely done
238
- if (!finalResult.is_error && finalResult.total_cost_usd && finalResult.total_cost_usd > 0) {
239
- console.log(`\nCost: $${finalResult.total_cost_usd.toFixed(4)}`);
138
+ else if (this.args.verbose) {
139
+ console.error(`[DEBUG] Unknown message type: ${msg.type}`);
240
140
  }
241
141
  }
242
- // One more flush to ensure cost is written before returning
243
- await new Promise(resolve => setImmediate(resolve));
244
- // Store the current exchange in conversation history
245
- this.conversationHistory.push({ role: 'user', content: yourPrompt });
246
- if (assistantResponseText) {
247
- this.conversationHistory.push({ role: 'assistant', content: assistantResponseText });
248
- }
249
142
  }
250
- catch (error) {
251
- // Ensure cursor is stopped on error
252
- if (cursor) {
253
- try {
254
- cursor.stop();
255
- }
256
- catch {
257
- // Ignore if cursor cleanup fails
258
- }
143
+ finally {
144
+ stopCursor();
145
+ }
146
+ // Flush stdout writes
147
+ await new Promise(resolve => setImmediate(resolve));
148
+ // Display final result
149
+ if (finalResult) {
150
+ if (hasPrintedHeader) {
151
+ console.log();
259
152
  }
260
- console.error('Error during query:', error);
261
- throw error;
153
+ if (!finalResult.is_error && finalResult.total_cost_usd && finalResult.total_cost_usd > 0) {
154
+ console.log(`\nCost: $${finalResult.total_cost_usd.toFixed(4)}`);
155
+ }
156
+ }
157
+ // Store conversation history
158
+ this.conversationHistory.push({ role: 'user', content: yourPrompt });
159
+ if (assistantResponseText) {
160
+ this.conversationHistory.push({ role: 'assistant', content: assistantResponseText });
262
161
  }
263
- // Add newline for spacing after response (matching Python version)
264
162
  console.log();
265
163
  return '';
266
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent_actions.js","sourceRoot":"","sources":["../src/agent_actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_actions.js","sourceRoot":"","sources":["../src/agent_actions.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export declare class AgentOptions {
33
33
  */
34
34
  getSimpleQueryAgentOptions(role?: string, srcDir?: string | null): Options;
35
35
  /**
36
- * Get options for code reviewer
36
+ * Get options for security code reviewer
37
37
  */
38
38
  getCodeReviewerOptions(role?: string): Options;
39
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent_options.d.ts","sourceRoot":"","sources":["../src/agent_options.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAqC,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAsB;gBAE9B,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM;IAKrD;;;OAGG;IACH,eAAe,IAAI,YAAY,EAAE;IAIjC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,sBAAsB,EAAE,UAAU,CAqBjC;IAED;;OAEG;IACH,0BAA0B,CAAC,IAAI,GAAE,MAA6B,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAehG;;OAEG;IACH,sBAAsB,CAAC,IAAI,GAAE,MAAwB,GAAG,OAAO;IAkB/D;;OAEG;IACH,uBAAuB,CAAC,IAAI,GAAE,MAAyB,GAAG,OAAO;CAiBlE"}
1
+ {"version":3,"file":"agent_options.d.ts","sourceRoot":"","sources":["../src/agent_options.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAqC,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAsB;gBAE9B,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM;IAKrD;;;OAGG;IACH,eAAe,IAAI,YAAY,EAAE;IAIjC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,sBAAsB,EAAE,UAAU,CAqBjC;IAED;;OAEG;IACH,0BAA0B,CAAC,IAAI,GAAE,MAA6B,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAgBhG;;OAEG;IACH,sBAAsB,CAAC,IAAI,GAAE,MAAwB,GAAG,OAAO;IAkB/D;;OAEG;IACH,uBAAuB,CAAC,IAAI,GAAE,MAAyB,GAAG,OAAO;CAiBlE"}
@@ -51,7 +51,8 @@ class AgentOptions {
51
51
  */
52
52
  getSimpleQueryAgentOptions(role = 'simple_query_agent', srcDir) {
53
53
  const roleConfig = this.confDict[this.environment]?.[role];
54
- let systemPrompt = roleConfig?.options?.system_prompt || 'You are an AppSec expert assistant.';
54
+ let systemPrompt = roleConfig?.options?.system_prompt ||
55
+ 'You are an Application Security (AppSec) expert assistant. You are responsible for providing security advice and guidance to the user.';
55
56
  // Add source directory context to system prompt if provided
56
57
  if (srcDir) {
57
58
  systemPrompt += ` You have access to a source code directory at ${srcDir} that you can search and read files from to answer questions.`;
@@ -62,16 +63,16 @@ class AgentOptions {
62
63
  };
63
64
  }
64
65
  /**
65
- * Get options for code reviewer
66
+ * Get options for security code reviewer
66
67
  */
67
68
  getCodeReviewerOptions(role = 'code_reviewer') {
68
69
  const roleConfig = this.confDict[this.environment]?.[role];
69
70
  const systemPrompt = roleConfig?.options?.system_prompt ||
70
- 'You are a code reviewer assistant. Review code for security and privacy issues.';
71
+ 'You are an Application Security (AppSec) expert assistant. You are responsible for performing a thorough code review. List out all the potential security and privacy issues found in the code.';
71
72
  return {
72
73
  agents: {
73
74
  'code-reviewer': {
74
- description: 'Reviews code for best practices and potential security and privacy issues',
75
+ description: 'Reviews code for best practices and potential security issues only',
75
76
  prompt: systemPrompt,
76
77
  tools: ['Read', 'Grep', 'Write'],
77
78
  model: 'sonnet'
@@ -86,17 +87,17 @@ class AgentOptions {
86
87
  getThreatModelerOptions(role = 'threat_modeler') {
87
88
  const roleConfig = this.confDict[this.environment]?.[role];
88
89
  const systemPrompt = roleConfig?.options?.system_prompt ||
89
- 'You are a code reviewer assistant. Perform risk assessment on source code for SOC2 type 2 compliance audit.';
90
+ 'You are an Application Security (AppSec) expert assistant. You are responsible for performing risk assessment on the source code repository for SOC2 type 2 compliance audit using the STRIDE methodology.';
90
91
  return {
91
92
  agents: {
92
- 'code-reviewer': {
93
- description: 'Threat modeler agent',
93
+ 'threat-modeler': {
94
+ description: 'Performs threat modeling and risk assessment using STRIDE methodology',
94
95
  prompt: systemPrompt,
95
96
  tools: ['Read', 'Grep', 'Write', 'Graphviz'],
96
97
  model: 'sonnet'
97
98
  }
98
99
  },
99
- permissionMode: 'bypassPermissions' // Skip all approval prompts - tools are pre-approved
100
+ permissionMode: 'bypassPermissions'
100
101
  };
101
102
  }
102
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent_options.js","sourceRoot":"","sources":["../src/agent_options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_options.js","sourceRoot":"","sources":["../src/agent_options.ts"],"names":[],"mappings":"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"}
@@ -28,11 +28,11 @@ class BlinkingCursor {
28
28
  process.stdout.write('\x1b[?25l'); // Hide cursor
29
29
  this.intervalId = setInterval(() => {
30
30
  if (this.isVisible) {
31
- process.stdout.write(`\r${this.cursorChar} Thinking...`);
31
+ process.stdout.write(`\rClaude is thinking ... ${this.cursorChar}`);
32
32
  this.isVisible = false;
33
33
  }
34
34
  else {
35
- process.stdout.write(`\r Thinking...`);
35
+ process.stdout.write(`\rClaude is thinking ... `);
36
36
  this.isVisible = true;
37
37
  }
38
38
  }, this.blinkInterval);
@@ -1 +1 @@
1
- {"version":3,"file":"blinking_cursor.js","sourceRoot":"","sources":["../src/blinking_cursor.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;GAGG;AACH,MAAa,cAAc;IACjB,UAAU,GAA0B,IAAI,CAAC;IACzC,SAAS,GAAY,IAAI,CAAC;IACjB,UAAU,GAAG,GAAG,CAAC;IACjB,aAAa,GAAG,GAAG,CAAC,CAAC,eAAe;IAErD;;;OAGG;IACH,KAAK;QACH,2CAA2C;QAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QAEjD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,UAAU,cAAc,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QACnD,CAAC;IACH,CAAC;CACF;AA7CD,wCA6CC"}
1
+ {"version":3,"file":"blinking_cursor.js","sourceRoot":"","sources":["../src/blinking_cursor.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;GAGG;AACH,MAAa,cAAc;IACjB,UAAU,GAA0B,IAAI,CAAC;IACzC,SAAS,GAAY,IAAI,CAAC;IACjB,UAAU,GAAG,GAAG,CAAC;IACjB,aAAa,GAAG,GAAG,CAAC,CAAC,eAAe;IAErD;;;OAGG;IACH,KAAK;QACH,2CAA2C;QAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QAEjD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QACnD,CAAC;IACH,CAAC;CACF;AA7CD,wCA6CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG1D,wBAAsB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAwKxE"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiD1D,wBAAsB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAwExE"}
package/dist/main.js CHANGED
@@ -42,9 +42,51 @@ exports.main = main;
42
42
  const fs = __importStar(require("fs-extra"));
43
43
  const agent_actions_1 = require("./agent_actions");
44
44
  const utils_1 = require("./utils");
45
+ /**
46
+ * Validate and copy source directory, exiting on validation failure
47
+ */
48
+ function validateAndCopySrcDir(srcDir, cwd) {
49
+ if (!(0, utils_1.validateDirectoryPath)(srcDir, true)) {
50
+ const safePath = (0, utils_1.sanitizePathForError)(srcDir);
51
+ console.error(`Error: Invalid source directory path: ${safePath}`);
52
+ console.error('Source directory path must be valid and cannot contain directory traversal sequences.');
53
+ process.exit(1);
54
+ }
55
+ return (0, utils_1.copyProjectSrcDir)(cwd, srcDir);
56
+ }
57
+ /**
58
+ * Validate output file path, exiting on validation failure
59
+ */
60
+ function validateOutputFile(outputFile, cwd) {
61
+ const validated = (0, utils_1.validateOutputFilePath)(outputFile, cwd);
62
+ if (!validated) {
63
+ const safePath = (0, utils_1.sanitizePathForError)(outputFile);
64
+ console.error(`Error: Invalid output file path: ${safePath}`);
65
+ console.error('Output file path must be relative to the current working directory and cannot contain directory traversal sequences.');
66
+ process.exit(1);
67
+ }
68
+ return validated;
69
+ }
70
+ /**
71
+ * Clean up temporary directory if it exists
72
+ */
73
+ function cleanupTmpDir(tmpDir, verbose = false) {
74
+ if (!tmpDir || !fs.existsSync(tmpDir))
75
+ return;
76
+ try {
77
+ fs.removeSync(tmpDir);
78
+ if (verbose) {
79
+ const safePath = (0, utils_1.sanitizePathForError)(tmpDir);
80
+ console.log(`Cleaned up temporary directory: ${safePath}`);
81
+ }
82
+ }
83
+ catch (error) {
84
+ const safePath = (0, utils_1.sanitizePathForError)(tmpDir);
85
+ const errorMessage = error?.message || 'Unknown error';
86
+ console.warn(`Warning: Could not clean up temporary directory ${safePath}: ${errorMessage}`);
87
+ }
88
+ }
45
89
  async function main(confDict, args) {
46
- // Capture working directory once at the start to avoid race conditions
47
- // in concurrent contexts (e.g., web applications)
48
90
  const currentWorkingDir = process.cwd();
49
91
  const agentActions = new agent_actions_1.AgentActions(confDict, args.environment, args);
50
92
  if (args.role === 'simple_query_agent') {
@@ -52,16 +94,8 @@ async function main(confDict, args) {
52
94
  console.log("(Type '/end' to exit the conversation)\n");
53
95
  let tmpSrcDir = null;
54
96
  if (args.src_dir) {
55
- // Validate source directory path
56
- if (!(0, utils_1.validateDirectoryPath)(args.src_dir, true)) {
57
- const safePath = (0, utils_1.sanitizePathForError)(args.src_dir);
58
- console.error(`Error: Invalid source directory path: ${safePath}`);
59
- console.error('Source directory path must be valid and cannot contain directory traversal sequences.');
60
- process.exit(1);
61
- }
62
- tmpSrcDir = (0, utils_1.copyProjectSrcDir)(currentWorkingDir, args.src_dir);
63
- const safeTmpPath = (0, utils_1.sanitizePathForError)(tmpSrcDir);
64
- console.log(`Source code directory copied to: ${safeTmpPath}`);
97
+ tmpSrcDir = validateAndCopySrcDir(args.src_dir, currentWorkingDir);
98
+ console.log(`Source code directory copied to: ${(0, utils_1.sanitizePathForError)(tmpSrcDir)}`);
65
99
  console.log('The agent can search files within this directory to answer your questions.\n');
66
100
  }
67
101
  const readline = require('readline');
@@ -69,124 +103,40 @@ async function main(confDict, args) {
69
103
  input: process.stdin,
70
104
  output: process.stdout
71
105
  });
72
- // Continuous conversation loop
73
106
  while (true) {
74
- // Wait for Claude's response to complete before showing next prompt
75
107
  const yourPrompt = await new Promise((resolve) => {
76
- rl.question("Your turn (enter '/end' to exit the conversation): ", (answer) => {
77
- resolve(answer);
78
- });
108
+ rl.question("Your turn (enter '/end' to exit the conversation): ", resolve);
79
109
  });
80
- // Check for exit command
81
110
  if (yourPrompt.trim().toLowerCase() === '/end') {
82
111
  console.log('\nExiting Simple Query Agent. Goodbye!');
83
112
  rl.close();
84
113
  break;
85
114
  }
86
- // Skip empty prompts
87
- if (!yourPrompt.trim()) {
115
+ if (!yourPrompt.trim())
88
116
  continue;
89
- }
90
- // Process the query and wait for complete response
91
- // The method will add proper spacing after the response completes
92
117
  await agentActions.simpleQueryClaudeWithOptions(yourPrompt, tmpSrcDir);
93
- // Ensure stdout is fully flushed and event loop processes all writes
94
- // before showing next prompt. This prevents the prompt from appearing
95
- // before streaming output completes.
96
118
  await new Promise(resolve => setImmediate(resolve));
97
119
  }
98
- // Clean up temporary source code directory if it was created
99
- if (tmpSrcDir && fs.existsSync(tmpSrcDir)) {
100
- try {
101
- fs.removeSync(tmpSrcDir);
102
- const safePath = (0, utils_1.sanitizePathForError)(tmpSrcDir);
103
- console.log(`Cleaned up temporary directory: ${safePath}`);
104
- }
105
- catch (error) {
106
- const safePath = (0, utils_1.sanitizePathForError)(tmpSrcDir);
107
- const errorMessage = error?.message || 'Unknown error';
108
- console.warn(`Warning: Could not clean up temporary directory ${safePath}: ${errorMessage}`);
109
- }
110
- }
120
+ cleanupTmpDir(tmpSrcDir, true);
111
121
  }
112
122
  else if (args.role === 'code_reviewer') {
113
123
  console.log('Running Code Review Agent');
114
- // Validate output file path
115
- const validatedOutputFile = (0, utils_1.validateOutputFilePath)(args.output_file || 'code_review_report.md', currentWorkingDir);
116
- if (!validatedOutputFile) {
117
- const safePath = (0, utils_1.sanitizePathForError)(args.output_file || 'code_review_report.md');
118
- console.error(`Error: Invalid output file path: ${safePath}`);
119
- console.error('Output file path must be relative to the current working directory and cannot contain directory traversal sequences.');
120
- process.exit(1);
121
- }
122
- let userPrompt;
123
- let tmpSrcDir = null;
124
- if (args.src_dir) {
125
- // Validate source directory path
126
- if (!(0, utils_1.validateDirectoryPath)(args.src_dir, true)) {
127
- const safePath = (0, utils_1.sanitizePathForError)(args.src_dir);
128
- console.error(`Error: Invalid source directory path: ${safePath}`);
129
- console.error('Source directory path must be valid and cannot contain directory traversal sequences.');
130
- process.exit(1);
131
- }
132
- tmpSrcDir = (0, utils_1.copyProjectSrcDir)(currentWorkingDir, args.src_dir);
133
- userPrompt = `Review the code in the current working directory ${tmpSrcDir}, then provide a report of the potential security and privacy issues found in the code. Please write the review report in the ${validatedOutputFile} file under current working directory in ${args.output_format} format.`;
134
- }
135
- else {
136
- userPrompt = `Review the code in the current working directory, then provide a report of the potential security and privacy issues found in the code. Please write the review report in the ${validatedOutputFile} file under current working directory in ${args.output_format} format.`;
137
- }
124
+ const outputFile = validateOutputFile(args.output_file || 'code_review_report.md', currentWorkingDir);
125
+ const tmpSrcDir = args.src_dir ? validateAndCopySrcDir(args.src_dir, currentWorkingDir) : null;
126
+ const srcLocation = tmpSrcDir ? `current working directory ${tmpSrcDir}` : 'current working directory';
127
+ const userPrompt = `Review the code in the ${srcLocation}, then provide a report of the potential security issues found in the code. Please write the review report in the ${outputFile} file under current working directory in ${args.output_format} format.`;
138
128
  await agentActions.codeReviewerWithOptions(userPrompt);
139
- // Clean up temporary source code directory if it was created
140
- if (tmpSrcDir && fs.existsSync(tmpSrcDir)) {
141
- try {
142
- fs.removeSync(tmpSrcDir);
143
- }
144
- catch (error) {
145
- const safePath = (0, utils_1.sanitizePathForError)(tmpSrcDir);
146
- const errorMessage = error?.message || 'Unknown error';
147
- console.warn(`Warning: Could not clean up temporary directory ${safePath}: ${errorMessage}`);
148
- }
149
- }
129
+ cleanupTmpDir(tmpSrcDir);
150
130
  }
151
131
  else if (args.role === 'threat_modeler') {
152
132
  console.log('Running Threat Modeler');
153
- // Validate output file path
154
- const validatedOutputFile = (0, utils_1.validateOutputFilePath)(args.output_file || 'threat_model_report.md', currentWorkingDir);
155
- if (!validatedOutputFile) {
156
- const safePath = (0, utils_1.sanitizePathForError)(args.output_file || 'threat_model_report.md');
157
- console.error(`Error: Invalid output file path: ${safePath}`);
158
- console.error('Output file path must be relative to the current working directory and cannot contain directory traversal sequences.');
159
- process.exit(1);
160
- }
161
- const userPrompt0 = `Draw the ASCII text based Data Flow Diagram (DFD), with output format as <codebase_data_flow_diagram_text_timestamp>. Then proceeding to use STRIDE methodology to perform threat modeling on the DFD, without output report in the format <codebase_threat_model_timestamp>. Finally, provide a separate risk registry report including proposed remediation plan in the format <codebase_risk_registry_text_timestamp>. We're looking for 3 reports in the current working directory as the deliverable. Please write the threat modeler report in the ${validatedOutputFile} file under current working directory in ${args.output_format} format.`;
162
- let tmpSrcDir = null;
163
- let userPrompt;
164
- if (args.src_dir) {
165
- // Validate source directory path
166
- if (!(0, utils_1.validateDirectoryPath)(args.src_dir, true)) {
167
- const safePath = (0, utils_1.sanitizePathForError)(args.src_dir);
168
- console.error(`Error: Invalid source directory path: ${safePath}`);
169
- console.error('Source directory path must be valid and cannot contain directory traversal sequences.');
170
- process.exit(1);
171
- }
172
- tmpSrcDir = (0, utils_1.copyProjectSrcDir)(currentWorkingDir, args.src_dir);
173
- userPrompt = `Review the code in the ${tmpSrcDir} directory. ${userPrompt0}`;
174
- }
175
- else {
176
- userPrompt = `Review the code in the current working directory. ${userPrompt0}`;
177
- }
133
+ const outputFile = validateOutputFile(args.output_file || 'threat_model_report.md', currentWorkingDir);
134
+ const tmpSrcDir = args.src_dir ? validateAndCopySrcDir(args.src_dir, currentWorkingDir) : null;
135
+ const srcLocation = tmpSrcDir ? `the ${tmpSrcDir} directory` : 'the current working directory';
136
+ const basePrompt = `Draw the ASCII text based Data Flow Diagram (DFD), with output format as <codebase_data_flow_diagram_text_timestamp>. Then proceeding to use STRIDE methodology to perform threat modeling on the DFD, without output report in the format <codebase_threat_model_timestamp>. Finally, provide a separate risk registry report including proposed remediation plan in the format <codebase_risk_registry_text_timestamp>. We're looking for 3 reports in the current working directory as the deliverable. Please write the threat modeler reportg under the current working directory in ${args.output_format} format.`;
137
+ const userPrompt = `Review the code in ${srcLocation}. ${basePrompt}`;
178
138
  await agentActions.threatModelerAgentWithOptions(userPrompt);
179
- // Clean up temporary source code directory
180
- if (tmpSrcDir && fs.existsSync(tmpSrcDir)) {
181
- try {
182
- fs.removeSync(tmpSrcDir);
183
- }
184
- catch (error) {
185
- const safePath = (0, utils_1.sanitizePathForError)(tmpSrcDir);
186
- const errorMessage = error?.message || 'Unknown error';
187
- console.warn(`Warning: Could not clean up temporary directory ${safePath}: ${errorMessage}`);
188
- }
189
- }
139
+ cleanupTmpDir(tmpSrcDir);
190
140
  }
191
141
  else {
192
142
  console.error(`Error: Invalid appsec AI agent role: ${args.role} - refer to 'appsec_agent.yaml' for available roles`);
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDH,oBAwEC;AA1HD,6CAA+B;AAC/B,mDAA0D;AAC1D,mCAAiH;AAEjH;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAc,EAAE,GAAW;IACxD,IAAI,CAAC,IAAA,6BAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;QACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAA,yBAAiB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,UAAkB,EAAE,GAAW;IACzD,MAAM,SAAS,GAAG,IAAA,8BAAsB,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EAAC,UAAU,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,sHAAsH,CAAC,CAAC;QACtI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAqB,EAAE,UAAmB,KAAK;IACpE,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO;IAE9C,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,mDAAmD,QAAQ,KAAK,YAAY,EAAE,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,QAAa,EAAE,IAAe;IACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAExE,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAExD,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAA,4BAAoB,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACvD,EAAE,CAAC,QAAQ,CAAC,qDAAqD,EAAE,OAAO,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM;YACR,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gBAAE,SAAS;YAEjC,MAAM,YAAY,CAAC,4BAA4B,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACvE,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEjC,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,IAAI,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/F,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAEvG,MAAM,UAAU,GAAG,0BAA0B,WAAW,qHAAqH,UAAU,4CAA4C,IAAI,CAAC,aAAa,UAAU,CAAC;QAEhQ,MAAM,YAAY,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACvD,aAAa,CAAC,SAAS,CAAC,CAAC;IAE3B,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAEtC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,IAAI,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;QACvG,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/F,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,YAAY,CAAC,CAAC,CAAC,+BAA+B,CAAC;QAE/F,MAAM,UAAU,GAAG,6jBAA6jB,IAAI,CAAC,aAAa,UAAU,CAAC;QAE7mB,MAAM,UAAU,GAAG,sBAAsB,WAAW,KAAK,UAAU,EAAE,CAAC;QAEtE,MAAM,YAAY,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC7D,aAAa,CAAC,SAAS,CAAC,CAAC;IAE3B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,IAAI,qDAAqD,CAAC,CAAC;QACtH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "appsec-agent",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "TypeScript package for AppSec AI Agent management",
5
5
  "author": "Sam Li",
6
- "date": "Dec 13 2025",
6
+ "date": "Dec 17 2025",
7
7
  "license": "MIT",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",