appsec-agent 2.4.2 โ 2.4.4
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/README.md +34 -0
- package/dist/src/agent_options.d.ts +10 -0
- package/dist/src/agent_options.d.ts.map +1 -1
- package/dist/src/agent_options.js +23 -0
- package/dist/src/agent_options.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@ A TypeScript package that provides AI-powered agents for Application Security (A
|
|
|
4
4
|
|
|
5
5
|
**๐ฆ Available on npm**: Install with `npm install appsec-agent`
|
|
6
6
|
|
|
7
|
+
**๐ Looking for a full web dashboard?** Check out [**AI Threat Modeler**](https://github.com/yangsec888/ai-threat-modeler/) โ the parent application that bundles `appsec-agent` into a Dockerized Next.js + Express stack with authentication, an interactive threat-aware Data Flow Diagram canvas, risk registry exports (PDF/CSV/JSON), and a chat UI. It's the easiest way to use this agent without writing code.
|
|
8
|
+
|
|
7
9
|
## ๐ Features
|
|
8
10
|
|
|
9
11
|
- **AI-Powered AppSec Automation**: Leverage Claude's capabilities for application security
|
|
@@ -27,6 +29,7 @@ A TypeScript package that provides AI-powered agents for Application Security (A
|
|
|
27
29
|
- [Usage Examples](#usage-examples)
|
|
28
30
|
- [Development](#development)
|
|
29
31
|
- [Testing](#testing)
|
|
32
|
+
- [Related Projects](#related-projects)
|
|
30
33
|
|
|
31
34
|
## ๐ Installation
|
|
32
35
|
|
|
@@ -645,8 +648,39 @@ All tests pass including:
|
|
|
645
648
|
- โ
5 QA verifier tests
|
|
646
649
|
- โ
Full coverage of core functionality
|
|
647
650
|
|
|
651
|
+
## ๐ Related Projects
|
|
652
|
+
|
|
653
|
+
### [AI Threat Modeler](https://github.com/yangsec888/ai-threat-modeler/) โ Parent Application
|
|
654
|
+
|
|
655
|
+
`appsec-agent` powers [**AI Threat Modeler**](https://github.com/yangsec888/ai-threat-modeler/), a full open-source web application for AppSec automation. If you'd like to use these agents through a polished UI rather than the CLI or library API, the parent app is the recommended way to get started.
|
|
656
|
+
|
|
657
|
+
Highlights:
|
|
658
|
+
|
|
659
|
+
- ๐ณ **One-command setup** with `docker-compose up -d --build`
|
|
660
|
+
- ๐ฅ๏ธ **Next.js web dashboard** with authentication (JWT, bcrypt, role-based access) and admin-managed Anthropic API credentials
|
|
661
|
+
- ๐งต **Threat Modeling workflow** โ upload a repository ZIP and get a structured JSON threat model (powered by `appsec-agent` v1.6+) with:
|
|
662
|
+
- Interactive threat-aware **Data Flow Diagrams** (React Flow canvas with pan/zoom, search, filters, trust boundaries)
|
|
663
|
+
- Sortable threat tables with STRIDE category and severity badges
|
|
664
|
+
- Risk Registry with cross-referenced threat IDs
|
|
665
|
+
- Export to **PDF** (DFD with embedded vector SVG, and Threat Model), **CSV** (Risk Registry), or **raw JSON**
|
|
666
|
+
- ๐ฌ **Chat interface** with persistent conversation history, backed by `appsec-agent` interactive mode
|
|
667
|
+
- ๐ **OpenAPI 3.0 / Swagger** docs at `/api-docs`
|
|
668
|
+
- ๐งช Comprehensive backend, frontend, and Playwright E2E test coverage
|
|
669
|
+
|
|
670
|
+
Quick start:
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
git clone https://github.com/yangsec888/ai-threat-modeler.git
|
|
674
|
+
cd ai-threat-modeler
|
|
675
|
+
docker-compose up -d --build
|
|
676
|
+
# Then open http://localhost:3000 (default login: admin / admin)
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
See the [AI Threat Modeler README](https://github.com/yangsec888/ai-threat-modeler/blob/main/README.md) and [SETUP.md](https://github.com/yangsec888/ai-threat-modeler/blob/main/SETUP.md) for full details.
|
|
680
|
+
|
|
648
681
|
## ๐ References
|
|
649
682
|
|
|
683
|
+
- [AI Threat Modeler (parent app)](https://github.com/yangsec888/ai-threat-modeler/)
|
|
650
684
|
- [Claude Agent SDK Documentation](https://docs.claude.com/en/api/agent-sdk)
|
|
651
685
|
- [Anthropic API Documentation](https://docs.anthropic.com/)
|
|
652
686
|
- [Claude Code Documentation](https://docs.anthropic.com/claude-code)
|
|
@@ -51,6 +51,16 @@ export declare const MCP_INTERNAL_TOOL_NAMES: readonly ["queryFindingsHistory",
|
|
|
51
51
|
* to `DEFAULT_MCP_SERVER_NAME` (`appsec-internal`).
|
|
52
52
|
*/
|
|
53
53
|
export declare function buildMcpInternalToolNames(serverName?: string): string[];
|
|
54
|
+
/**
|
|
55
|
+
* System-prompt suffix for `pr_reviewer` when `--mcp-server-url` is set.
|
|
56
|
+
* ยง8.17 staged ladder phase 3: steer the model toward all three live tools by
|
|
57
|
+
* exact SDK tool id โ `queryFindingsHistory`, `queryImportGraph`,
|
|
58
|
+
* `queryRuntimeEnrichment`.
|
|
59
|
+
*
|
|
60
|
+
* @param mcpServerName - Same override as `attachMcpServerToOptions`
|
|
61
|
+
* (`DEFAULT_MCP_SERVER_NAME` when omitted).
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildPrReviewerMcpNudgeSystemPromptSuffix(mcpServerName?: string): string;
|
|
54
64
|
export declare class AgentOptions {
|
|
55
65
|
private confDict;
|
|
56
66
|
private environment;
|
|
@@ -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;AAiBrC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,oBAA0B,CAAC;AAEhE;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,iFAI1B,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,GAAE,MAAgC,GAC3C,MAAM,EAAE,CAIV;AAyCD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAsB;gBAE9B,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAe;IAM7E;;;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;;;;OAIG;IACH,sBAAsB,CAAC,IAAI,GAAE,MAAwB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO;IAmCtF;;;;OAIG;IACH,uBAAuB,CAAC,IAAI,GAAE,MAAyB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO;IAgCxF;;;;;;;OAOG;IACH,sBAAsB,CACpB,IAAI,GAAE,MAAwB,EAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,EACjB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;
|
|
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;AAiBrC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,oBAA0B,CAAC;AAEhE;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,iFAI1B,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,GAAE,MAAgC,GAC3C,MAAM,EAAE,CAIV;AAED;;;;;;;;GAQG;AACH,wBAAgB,yCAAyC,CACvD,aAAa,GAAE,MAAgC,GAC9C,MAAM,CASR;AAyCD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAsB;gBAE9B,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAe;IAM7E;;;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;;;;OAIG;IACH,sBAAsB,CAAC,IAAI,GAAE,MAAwB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO;IAmCtF;;;;OAIG;IACH,uBAAuB,CAAC,IAAI,GAAE,MAAyB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO;IAgCxF;;;;;;;OAOG;IACH,sBAAsB,CACpB,IAAI,GAAE,MAAwB,EAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,EACjB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IA4GV;;;;;;OAMG;IACH,mBAAmB,CACjB,IAAI,GAAE,MAAqB,EAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAoCV;;;OAGG;IACH,oBAAoB,CAAC,IAAI,GAAE,MAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAmCnF;;;OAGG;IACH,0BAA0B,CAAC,IAAI,GAAE,MAA4B,GAAG,OAAO;IAmCvE,0BAA0B,CACxB,IAAI,GAAE,MAA4B,EAClC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAoCV;;;OAGG;IACH,qBAAqB,CACnB,IAAI,GAAE,MAAuB,EAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;CAwCX"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.AgentOptions = exports.MCP_INTERNAL_TOOL_NAMES = exports.MCP_INTERNAL_SERVER_NAME = exports.DEFAULT_MCP_SERVER_NAME = void 0;
|
|
9
9
|
exports.buildMcpInternalToolNames = buildMcpInternalToolNames;
|
|
10
|
+
exports.buildPrReviewerMcpNudgeSystemPromptSuffix = buildPrReviewerMcpNudgeSystemPromptSuffix;
|
|
10
11
|
const security_report_1 = require("./schemas/security_report");
|
|
11
12
|
const threat_model_report_1 = require("./schemas/threat_model_report");
|
|
12
13
|
const security_fix_1 = require("./schemas/security_fix");
|
|
@@ -68,6 +69,25 @@ exports.MCP_INTERNAL_TOOL_NAMES = [
|
|
|
68
69
|
function buildMcpInternalToolNames(serverName = exports.DEFAULT_MCP_SERVER_NAME) {
|
|
69
70
|
return exports.MCP_INTERNAL_TOOL_NAMES.map((tool) => `mcp__${serverName}__${tool}`);
|
|
70
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* System-prompt suffix for `pr_reviewer` when `--mcp-server-url` is set.
|
|
74
|
+
* ยง8.17 staged ladder phase 3: steer the model toward all three live tools by
|
|
75
|
+
* exact SDK tool id โ `queryFindingsHistory`, `queryImportGraph`,
|
|
76
|
+
* `queryRuntimeEnrichment`.
|
|
77
|
+
*
|
|
78
|
+
* @param mcpServerName - Same override as `attachMcpServerToOptions`
|
|
79
|
+
* (`DEFAULT_MCP_SERVER_NAME` when omitted).
|
|
80
|
+
*/
|
|
81
|
+
function buildPrReviewerMcpNudgeSystemPromptSuffix(mcpServerName = exports.DEFAULT_MCP_SERVER_NAME) {
|
|
82
|
+
const name = mcpServerName || exports.DEFAULT_MCP_SERVER_NAME;
|
|
83
|
+
const findingsTool = `mcp__${name}__queryFindingsHistory`;
|
|
84
|
+
const importGraphTool = `mcp__${name}__queryImportGraph`;
|
|
85
|
+
const runtimeTool = `mcp__${name}__queryRuntimeEnrichment`;
|
|
86
|
+
return `
|
|
87
|
+
|
|
88
|
+
**Backend-backed MCP tools:** Call \`${findingsTool}\` when prior findings, dismissals, or fingerprint history for the changed files or CWE would affect severity or confidence. Call \`${importGraphTool}\` with the PR file paths when you need authoritative import-graph reachability (callers, entry points) instead of inferring from the diff alone. Call \`${runtimeTool}\` with the changed file paths when you need runtime-incident or hot-files signal for operational risk instead of guessing from the diff alone. Prefer these tools over guessing.
|
|
89
|
+
`;
|
|
90
|
+
}
|
|
71
91
|
/**
|
|
72
92
|
* Mutate an already-built `Options` object to attach the MCP server config
|
|
73
93
|
* (top-level `mcpServers`) and extend the named subagent's `tools`
|
|
@@ -300,6 +320,9 @@ You have access to Read, Grep, and Write tools:
|
|
|
300
320
|
|
|
301
321
|
**Experiment (treatment arm):** Apply stricter false-positive controls. Before reporting a finding, require a concrete failure or exploit path visible from the diff or verified in-repo (Grep/Read). Prefer MEDIUM over HIGH when evidence is mostly circumstantial.`;
|
|
302
322
|
}
|
|
323
|
+
if (mcpServerUrl && role === 'pr_reviewer') {
|
|
324
|
+
systemPrompt += buildPrReviewerMcpNudgeSystemPromptSuffix(mcpServerName);
|
|
325
|
+
}
|
|
303
326
|
const resolvedMaxTurns = maxTurns
|
|
304
327
|
?? roleConfig?.options?.max_turns
|
|
305
328
|
?? 10;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_options.js","sourceRoot":"","sources":["../../src/agent_options.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAyEH,8DAMC;
|
|
1
|
+
{"version":3,"file":"agent_options.js","sourceRoot":"","sources":["../../src/agent_options.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Author: Sam Li
|
|
5
5
|
*/
|
|
6
6
|
export { AgentActions, AgentArgs } from './agent_actions';
|
|
7
|
-
export { AgentOptions, ToolUsageLog } from './agent_options';
|
|
7
|
+
export { AgentOptions, ToolUsageLog, buildPrReviewerMcpNudgeSystemPromptSuffix, } from './agent_options';
|
|
8
8
|
export { main } from './main';
|
|
9
9
|
export * from './utils';
|
|
10
10
|
export { DFDNode, DFDDataFlow, DFDTrustBoundary, Threat, Risk, ThreatModelReport, THREAT_MODEL_REPORT_SCHEMA, } from './schemas/threat_model_report';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,yCAAyC,GAC1C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,SAAS,EACT,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,SAAS,EACT,SAAS,EACT,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,sBAAsB,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,6BAA6B,EAC7B,uCAAuC,GACxC,MAAM,8BAA8B,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -19,11 +19,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.formatRuntimeEnrichmentContextForPrompt = exports.parseRuntimeEnrichmentContext = exports.formatImportGraphContextForPrompt = exports.parseImportGraphContext = exports.emptySecurityReport = exports.toSecurityFindings = exports.buildAdversarialUserPrompt = exports.parseAdversarialPassContext = exports.RETEST_VERDICT_SCHEMA = exports.QA_VERDICT_SCHEMA = exports.FIX_OUTPUT_SCHEMA = exports.THREAT_MODEL_REPORT_SCHEMA = exports.main = exports.AgentOptions = exports.AgentActions = void 0;
|
|
22
|
+
exports.formatRuntimeEnrichmentContextForPrompt = exports.parseRuntimeEnrichmentContext = exports.formatImportGraphContextForPrompt = exports.parseImportGraphContext = exports.emptySecurityReport = exports.toSecurityFindings = exports.buildAdversarialUserPrompt = exports.parseAdversarialPassContext = exports.RETEST_VERDICT_SCHEMA = exports.QA_VERDICT_SCHEMA = exports.FIX_OUTPUT_SCHEMA = exports.THREAT_MODEL_REPORT_SCHEMA = exports.main = exports.buildPrReviewerMcpNudgeSystemPromptSuffix = exports.AgentOptions = exports.AgentActions = void 0;
|
|
23
23
|
var agent_actions_1 = require("./agent_actions");
|
|
24
24
|
Object.defineProperty(exports, "AgentActions", { enumerable: true, get: function () { return agent_actions_1.AgentActions; } });
|
|
25
25
|
var agent_options_1 = require("./agent_options");
|
|
26
26
|
Object.defineProperty(exports, "AgentOptions", { enumerable: true, get: function () { return agent_options_1.AgentOptions; } });
|
|
27
|
+
Object.defineProperty(exports, "buildPrReviewerMcpNudgeSystemPromptSuffix", { enumerable: true, get: function () { return agent_options_1.buildPrReviewerMcpNudgeSystemPromptSuffix; } });
|
|
27
28
|
var main_1 = require("./main");
|
|
28
29
|
Object.defineProperty(exports, "main", { enumerable: true, get: function () { return main_1.main; } });
|
|
29
30
|
__exportStar(require("./utils"), exports);
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,iDAA0D;AAAjD,6GAAA,YAAY,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,iDAA0D;AAAjD,6GAAA,YAAY,OAAA;AACrB,iDAIyB;AAHvB,6GAAA,YAAY,OAAA;AAEZ,0IAAA,yCAAyC,OAAA;AAE3C,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,0CAAwB;AACxB,qEAQuC;AADrC,iIAAA,0BAA0B,OAAA;AAE5B,uDAMgC;AAD9B,iHAAA,iBAAiB,OAAA;AAEnB,mDAI8B;AAD5B,+GAAA,iBAAiB,OAAA;AAEnB,iEAKqC;AADnC,0HAAA,qBAAqB,OAAA;AAEvB,+DAMoC;AAJlC,+HAAA,2BAA2B,OAAA;AAC3B,8HAAA,0BAA0B,OAAA;AAC1B,sHAAA,kBAAkB,OAAA;AAClB,uHAAA,mBAAmB,OAAA;AAErB,uDAKgC;AAF9B,uHAAA,uBAAuB,OAAA;AACvB,iIAAA,iCAAiC,OAAA;AAGnC,mEAKsC;AAFpC,mIAAA,6BAA6B,OAAA;AAC7B,6IAAA,uCAAuC,OAAA"}
|