appsec-agent 2.8.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +0 -18
  2. package/dist/bin/agent-run.js +14 -17
  3. package/dist/bin/agent-run.js.map +1 -1
  4. package/dist/src/__tests__/mocks/codex_sdk.d.ts +53 -0
  5. package/dist/src/__tests__/mocks/codex_sdk.d.ts.map +1 -0
  6. package/dist/src/__tests__/mocks/codex_sdk.js +8 -0
  7. package/dist/src/__tests__/mocks/codex_sdk.js.map +1 -0
  8. package/dist/src/agent_actions.d.ts +1 -1
  9. package/dist/src/agent_actions.d.ts.map +1 -1
  10. package/dist/src/agent_actions.js +41 -27
  11. package/dist/src/agent_actions.js.map +1 -1
  12. package/dist/src/agent_options.d.ts +17 -93
  13. package/dist/src/agent_options.d.ts.map +1 -1
  14. package/dist/src/agent_options.js +191 -310
  15. package/dist/src/agent_options.js.map +1 -1
  16. package/dist/src/llm_query.d.ts +4 -43
  17. package/dist/src/llm_query.d.ts.map +1 -1
  18. package/dist/src/llm_query.js +4 -145
  19. package/dist/src/llm_query.js.map +1 -1
  20. package/dist/src/main.d.ts.map +1 -1
  21. package/dist/src/main.js +1 -7
  22. package/dist/src/main.js.map +1 -1
  23. package/dist/src/mcp_internal.d.ts +13 -0
  24. package/dist/src/mcp_internal.d.ts.map +1 -0
  25. package/dist/src/mcp_internal.js +34 -0
  26. package/dist/src/mcp_internal.js.map +1 -0
  27. package/dist/src/providers/claude_provider.d.ts +18 -0
  28. package/dist/src/providers/claude_provider.d.ts.map +1 -0
  29. package/dist/src/providers/claude_provider.js +27 -0
  30. package/dist/src/providers/claude_provider.js.map +1 -0
  31. package/dist/src/providers/claude_role_spec.d.ts +10 -0
  32. package/dist/src/providers/claude_role_spec.d.ts.map +1 -0
  33. package/dist/src/providers/claude_role_spec.js +85 -0
  34. package/dist/src/providers/claude_role_spec.js.map +1 -0
  35. package/dist/src/providers/codex_model.d.ts +12 -0
  36. package/dist/src/providers/codex_model.d.ts.map +1 -0
  37. package/dist/src/providers/codex_model.js +45 -0
  38. package/dist/src/providers/codex_model.js.map +1 -0
  39. package/dist/src/providers/codex_provider.d.ts +30 -0
  40. package/dist/src/providers/codex_provider.d.ts.map +1 -0
  41. package/dist/src/providers/codex_provider.js +170 -0
  42. package/dist/src/providers/codex_provider.js.map +1 -0
  43. package/dist/src/providers/codex_role_spec.d.ts +16 -0
  44. package/dist/src/providers/codex_role_spec.d.ts.map +1 -0
  45. package/dist/src/providers/codex_role_spec.js +63 -0
  46. package/dist/src/providers/codex_role_spec.js.map +1 -0
  47. package/dist/src/providers/query_message.d.ts +45 -0
  48. package/dist/src/providers/query_message.d.ts.map +1 -0
  49. package/dist/src/providers/query_message.js +8 -0
  50. package/dist/src/providers/query_message.js.map +1 -0
  51. package/dist/src/providers/resolve_provider.d.ts +10 -0
  52. package/dist/src/providers/resolve_provider.d.ts.map +1 -0
  53. package/dist/src/providers/resolve_provider.js +29 -0
  54. package/dist/src/providers/resolve_provider.js.map +1 -0
  55. package/dist/src/providers/role_spec.d.ts +39 -0
  56. package/dist/src/providers/role_spec.d.ts.map +1 -0
  57. package/dist/src/providers/role_spec.js +8 -0
  58. package/dist/src/providers/role_spec.js.map +1 -0
  59. package/dist/src/providers/structured_output.d.ts +21 -0
  60. package/dist/src/providers/structured_output.d.ts.map +1 -0
  61. package/dist/src/providers/structured_output.js +61 -0
  62. package/dist/src/providers/structured_output.js.map +1 -0
  63. package/dist/src/providers/types.d.ts +18 -0
  64. package/dist/src/providers/types.d.ts.map +1 -0
  65. package/dist/src/providers/types.js +15 -0
  66. package/dist/src/providers/types.js.map +1 -0
  67. package/dist/src/utils.js +1 -1
  68. package/dist/src/utils.js.map +1 -1
  69. package/package.json +3 -3
  70. package/dist/src/openai_tools.d.ts +0 -26
  71. package/dist/src/openai_tools.d.ts.map +0 -1
  72. package/dist/src/openai_tools.js +0 -194
  73. package/dist/src/openai_tools.js.map +0 -1
@@ -5,52 +5,14 @@
5
5
  */
6
6
  import { Options, CanUseTool } from '@anthropic-ai/claude-agent-sdk';
7
7
  import { ConfigDict } from './utils';
8
+ import type { RoleSpec } from './providers/role_spec';
9
+ import { DEFAULT_MCP_SERVER_NAME, MCP_INTERNAL_SERVER_NAME, MCP_INTERNAL_TOOL_NAMES, buildMcpInternalToolNames } from './mcp_internal';
10
+ export { DEFAULT_MCP_SERVER_NAME, MCP_INTERNAL_SERVER_NAME, MCP_INTERNAL_TOOL_NAMES, buildMcpInternalToolNames, };
8
11
  export interface ToolUsageLog {
9
12
  tool: string;
10
13
  input: any;
11
14
  suggestions: string;
12
15
  }
13
- /**
14
- * Default identifier the agent uses to register a parent-app-managed MCP
15
- * server with the Claude Agent SDK. The resulting tool names exposed to
16
- * the LLM follow the SDK convention `mcp__<server>__<tool>`, so this
17
- * value becomes the literal prefix the model sees on its tool list.
18
- *
19
- * The default is intentionally generic (`appsec-internal`) so the
20
- * `appsec-agent` package is reusable across parent apps. Callers that
21
- * need a different identifier — e.g. to keep an existing prompt-nudge or
22
- * counter contract stable — pass `--mcp-server-name <name>` on the CLI
23
- * (or `mcpServerName` to the role builders directly), and the override
24
- * threads through to both `Options.mcpServers[<name>]` and the namespaced
25
- * tool names in the subagent whitelist.
26
- */
27
- export declare const DEFAULT_MCP_SERVER_NAME = "appsec-internal";
28
- /**
29
- * @deprecated since v2.4.2 — historical alias for the default server name.
30
- * Kept exported so existing imports keep type-checking; new code should
31
- * read `DEFAULT_MCP_SERVER_NAME` (and pass an override via
32
- * `mcpServerName` when a specific identifier is required).
33
- */
34
- export declare const MCP_INTERNAL_SERVER_NAME = "appsec-internal";
35
- /**
36
- * Tools exposed by the per-scan in-process MCP server the parent app
37
- * stands up. Pinned at this set (`queryFindingsHistory`,
38
- * `queryImportGraph`, `queryRuntimeEnrichment`, `queryCodebaseGraph`) so
39
- * the agent's tool whitelist is deterministic at the current version;
40
- * parent apps that expose a different surface should fork or extend this
41
- * list rather than rely on dynamic discovery (the SDK would otherwise have
42
- * to round-trip the server before constructing the whitelist).
43
- */
44
- export declare const MCP_INTERNAL_TOOL_NAMES: readonly ["queryFindingsHistory", "queryImportGraph", "queryRuntimeEnrichment", "queryCodebaseGraph"];
45
- /**
46
- * SDK-namespaced tool names the LLM sees on its tool list when the server
47
- * is wired up. Exposed as a helper rather than a constant so callers in
48
- * `agent_options.ts` and the test suite share one source of truth.
49
- *
50
- * @param serverName - Override for the MCP server identifier. Defaults
51
- * to `DEFAULT_MCP_SERVER_NAME` (`appsec-internal`).
52
- */
53
- export declare function buildMcpInternalToolNames(serverName?: string): string[];
54
16
  /**
55
17
  * System-prompt suffix for `pr_reviewer` / `code_reviewer` when
56
18
  * `--mcp-server-url` is set. Steers the model toward all live parent-app
@@ -90,6 +52,7 @@ export declare class AgentOptions {
90
52
  /**
91
53
  * Get options for simple query agent
92
54
  */
55
+ getSimpleQueryAgentRoleSpec(role?: string, srcDir?: string | null): RoleSpec;
93
56
  getSimpleQueryAgentOptions(role?: string, srcDir?: string | null): Options;
94
57
  /**
95
58
  * Get options for security code reviewer
@@ -110,7 +73,12 @@ export declare class AgentOptions {
110
73
  * @param mcpServerName - Override for the MCP server identifier
111
74
  * @param mcpServerBearer - Bearer token for MCP HTTP requests
112
75
  */
76
+ getCodeReviewerRoleSpec(role?: string, outputFormat?: string, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string, workingDirectory?: string): RoleSpec;
113
77
  getCodeReviewerOptions(role?: string, outputFormat?: string, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): Options;
78
+ /**
79
+ * Provider-neutral spec for threat modeler (Phase 3 RoleSpec spike).
80
+ */
81
+ getThreatModelerRoleSpec(role?: string, outputFormat?: string, workingDirectory?: string): RoleSpec;
114
82
  /**
115
83
  * Get options for threat modeler
116
84
  * @param role - The role configuration key
@@ -125,65 +93,21 @@ export declare class AgentOptions {
125
93
  * @param srcDir - Optional source directory path
126
94
  * @param outputFormat - Output format (json, markdown, etc.)
127
95
  */
96
+ getDiffReviewerRoleSpec(role?: string, srcDir?: string | null, outputFormat?: string, maxTurns?: number, noTools?: boolean, experimentEnabled?: boolean, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): RoleSpec;
128
97
  getDiffReviewerOptions(role?: string, srcDir?: string | null, outputFormat?: string, maxTurns?: number, noTools?: boolean, experimentEnabled?: boolean, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): Options;
129
- /**
130
- * Get options for code fixer agent
131
- * Uses structured JSON output to guarantee a well-formed fix response.
132
- * Has Read and Grep tools to explore the source directory for additional context.
133
- * @param role - The role configuration key
134
- * @param srcDir - Optional source directory path for additional context
135
- */
98
+ getCodeFixerRoleSpec(role?: string, srcDir?: string | null, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): RoleSpec;
136
99
  getCodeFixerOptions(role?: string, srcDir?: string | null, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): Options;
137
- /**
138
- * Get options for the QA verifier agent
139
- * Uses Read, Grep, and Bash tools for test execution and analysis
140
- */
100
+ getQaVerifierRoleSpec(role?: string, srcDir?: string | null): RoleSpec;
141
101
  getQaVerifierOptions(role?: string, srcDir?: string | null): Options;
142
- /**
143
- * Get options for the finding validator agent
144
- * Uses Read and Grep tools (read-only) to analyze code for vulnerability presence.
145
- */
102
+ getContextExtractorRoleSpec(role?: string): RoleSpec;
146
103
  getContextExtractorOptions(role?: string): Options;
104
+ getFindingValidatorRoleSpec(role?: string, srcDir?: string | null, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): RoleSpec;
147
105
  getFindingValidatorOptions(role?: string, srcDir?: string | null, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): Options;
148
- /**
149
- * learned_guidance_synthesizer (v2.5.0 / parent-app plan §3.8): pure-transform
150
- * role that condenses bucketed dismissal/outcome/feedback signals into a short
151
- * list of class-level policy bullets the pr_reviewer reads next scan.
152
- *
153
- * Tools: NONE — the agent must work from the provided buckets only. No
154
- * source-tree access, no MCP server. The parent app's `runSynthesizerAgent`
155
- * spawns this from a temp working directory anyway, so even if a tool were
156
- * attached it would have nothing to read.
157
- *
158
- * Output schema (LEARNED_GUIDANCE_OUTPUT_SCHEMA):
159
- * { bullets: [{ cwe, bullet (≤300 chars), confidence (0..1) }] }
160
- *
161
- * Confidence floor and active-bullet cap are enforced by the parent app
162
- * (`MIN_CONFIDENCE = 0.6`, `MAX_ACTIVE_BULLETS_PER_PROJECT = 12`); this
163
- * role is allowed to return up to 50 bullets and the parent ranks +
164
- * truncates.
165
- */
106
+ getLearnedGuidanceSynthesizerRoleSpec(role?: string): RoleSpec;
166
107
  getLearnedGuidanceSynthesizerOptions(role?: string): Options;
167
- /**
168
- * pr_adversary: second pass that filters pr_reviewer findings using failure-path skepticism.
169
- * Output: same SECURITY_REPORT_SCHEMA with only surviving findings.
170
- */
108
+ getPrAdversaryRoleSpec(role?: string, srcDir?: string | null, maxTurns?: number, experimentEnabled?: boolean, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): RoleSpec;
171
109
  getPrAdversaryOptions(role?: string, srcDir?: string | null, maxTurns?: number, experimentEnabled?: boolean, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): Options;
172
- /**
173
- * fp_adversary (v2.8.0 / parent app full-repo Phase 2.5): second pass that
174
- * filters first-pass `code_reviewer` findings on full-repo scans by emitting
175
- * per-finding `(fingerprint, verdict, confidence, rationale)` verdicts. Output
176
- * is constrained to FP_ADVERSARY_REPORT_SCHEMA so the verdict contract stays
177
- * model-independent across Claude upgrades.
178
- *
179
- * Differences from `getPrAdversaryOptions`:
180
- * - Output schema is the dedicated `fp_adversary_report` (not
181
- * SECURITY_REPORT_SCHEMA) — verdicts round-trip on `fingerprint`, not `id`.
182
- * - No `experiment_enabled` plumbing (Lane-2 deliberately omits A/B per M4).
183
- * - System prompt references the four structured posture fields and
184
- * `similar_dismissed` precedent that the parent app threads in via
185
- * `--adversarial-context`.
186
- */
110
+ getFpAdversaryRoleSpec(role?: string, srcDir?: string | null, maxTurns?: number, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): RoleSpec;
187
111
  getFpAdversaryOptions(role?: string, srcDir?: string | null, maxTurns?: number, mcpServerUrl?: string, mcpServerName?: string, mcpServerBearer?: string): Options;
188
112
  }
189
113
  //# sourceMappingURL=agent_options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent_options.d.ts","sourceRoot":"","sources":["../../src/agent_options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_options.d.ts","sourceRoot":"","sources":["../../src/agent_options.ts"],"names":[],"mappings":"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"}