@neobiotechlabs/neobiotech-dev-agent 0.1.22 → 0.1.24
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/dist/index.js +29 -17
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"source": "npm",
|
|
11
11
|
"package": "@neobiotechlabs/neobiotech-dev-agent",
|
|
12
12
|
"registry": "https://registry.npmjs.org",
|
|
13
|
-
"version": "0.1.
|
|
13
|
+
"version": "0.1.24"
|
|
14
14
|
},
|
|
15
15
|
"description": "의료기기 SW 규제 개발 자동화 (Jira·Confluence·Risk·CVSS·Xray·IEC 62304/62366·MDR·문서 렌더)",
|
|
16
16
|
"category": "medical-device",
|
package/dist/index.js
CHANGED
|
@@ -159694,10 +159694,12 @@ var RiskClient = class {
|
|
|
159694
159694
|
error: "RISK_PLUGIN_ENDPOINT not configured. \uD658\uACBD\uBCC0\uC218 \uB610\uB294 \uCF54\uB4DC \uC815\uC801 \uAE30\uBCF8\uAC12\uC744 \uD655\uC778\uD558\uC138\uC694."
|
|
159695
159695
|
};
|
|
159696
159696
|
}
|
|
159697
|
+
const DEFAULT_RMP_AUTHOR = "557058:f58131cb-b67d-43c7-b30d-6b58d40bd077";
|
|
159698
|
+
const finalAuthor = payload.author && payload.author.length > 0 ? payload.author : process.env.RISK_PLUGIN_AUTHOR || DEFAULT_RMP_AUTHOR;
|
|
159697
159699
|
const fullPayload = {
|
|
159698
159700
|
...payload,
|
|
159699
159701
|
issueKey,
|
|
159700
|
-
author:
|
|
159702
|
+
author: finalAuthor
|
|
159701
159703
|
};
|
|
159702
159704
|
try {
|
|
159703
159705
|
const resp = await fetch(endpoint, {
|
|
@@ -160243,8 +160245,9 @@ function planSetRisk(model, riskSet, classifierOptions, issueKey) {
|
|
|
160243
160245
|
if (!m3) return { items: [], skipped: [{ classifier: "*", optionName: model }] };
|
|
160244
160246
|
const setId = m3.riskSets[riskSet];
|
|
160245
160247
|
if (!setId) return { items: [], skipped: [{ classifier: "*", optionName: `riskSet.${riskSet}` }] };
|
|
160246
|
-
const
|
|
160247
|
-
|
|
160248
|
+
const DEFAULT_RMP_AUTHOR = "557058:f58131cb-b67d-43c7-b30d-6b58d40bd077";
|
|
160249
|
+
const author = process.env.RISK_PLUGIN_AUTHOR || DEFAULT_RMP_AUTHOR;
|
|
160250
|
+
if (!author) return { items: [], skipped: [{ classifier: "*", optionName: "RISK_PLUGIN_AUTHOR missing" }] };
|
|
160248
160251
|
const items = [];
|
|
160249
160252
|
const skipped = [];
|
|
160250
160253
|
for (const [classifierName, optionName] of Object.entries(classifierOptions)) {
|
|
@@ -160981,11 +160984,11 @@ var TOOL_CATALOG = [
|
|
|
160981
160984
|
{ name: "confluence_get_spaces", description: "\uC2A4\uD398\uC774\uC2A4 \uBAA9\uB85D", category: "Confluence" },
|
|
160982
160985
|
{ name: "confluence_get_page_children", description: "\uD558\uC704 \uD398\uC774\uC9C0 \uC870\uD68C", category: "Confluence" },
|
|
160983
160986
|
{ name: "confluence_publish_doc", description: "\uB9C8\uD06C\uB2E4\uC6B4 \uBB38\uC11C \u2192 Confluence \uD398\uC774\uC9C0 \uAC8C\uC7AC (create/update \uC790\uB3D9 \uBD84\uAE30, \uCF54\uB4DC\uD39C\uC2A4 \u2192 \uCF54\uB4DC \uB9E4\uD06C\uB85C)", category: "Confluence" },
|
|
160984
|
-
{ name: "risk_get_config", description: "\
|
|
160985
|
-
{ name: "risk_activate_panel", description: "\
|
|
160986
|
-
{ name: "risk_set_values", description: "\
|
|
160987
|
-
{ name: "risk_create_hazards", description: "Hazard \uC77C\uAD04 \uC0DD\uC131 + Risk Source \uB9C1\uD06C", category: "\uB9AC\uC2A4\uD06C \uAD00\uB9AC" },
|
|
160988
|
-
{ name: "risk_create_mitigation", description: "\uC644\uD654 Requirement \uC0DD\uC131 + P2 \uC5C5\uB370\uC774\uD2B8", category: "\uB9AC\uC2A4\uD06C \uAD00\uB9AC" },
|
|
160987
|
+
{ name: "risk_get_config", description: "RMP 3 \uBAA8\uB378(p1_p2_iso14971 / rpn / cia) \uC815\uC758 + \uC635\uC158 name \uBAA9\uB85D \uC870\uD68C", category: "\uB9AC\uC2A4\uD06C \uAD00\uB9AC" },
|
|
160988
|
+
{ name: "risk_activate_panel", description: "\uC774\uC288\uC5D0 RMP Risk Panel \uD65C\uC131\uD654", category: "\uB9AC\uC2A4\uD06C \uAD00\uB9AC" },
|
|
160989
|
+
{ name: "risk_set_values", description: "3 \uBAA8\uB378(p1_p2_iso14971 / rpn / cia) \uB3D9\uC2DC \uC785\uB825. \uC635\uC158 name \u2192 UUID \uC790\uB3D9 \uB9E4\uD551. lookup \uC2E4\uD328\uB294 SKIP. risk_set\uC740 initial | current | final (rpn\uC740 final\uAE4C\uC9C0)", category: "\uB9AC\uC2A4\uD06C \uAD00\uB9AC" },
|
|
160990
|
+
{ name: "risk_create_hazards", description: "Hazard \uC77C\uAD04 \uC0DD\uC131 + 3 \uBAA8\uB378 risk values \uC790\uB3D9 \uC14B\uD305 + Risk Source/Relates \uB9C1\uD06C", category: "\uB9AC\uC2A4\uD06C \uAD00\uB9AC" },
|
|
160991
|
+
{ name: "risk_create_mitigation", description: "\uC644\uD654 Requirement \uC0DD\uC131 + Hazard Current P2(P1-P2 \uBAA8\uB378) \uC790\uB3D9 \uC5C5\uB370\uC774\uD2B8", category: "\uB9AC\uC2A4\uD06C \uAD00\uB9AC" },
|
|
160989
160992
|
{ name: "cvss_calculate", description: "CVSS v4.0 \uC810\uC218 \uACC4\uC0B0", category: "\uBCF4\uC548 \uCDE8\uC57D\uC810" },
|
|
160990
160993
|
{ name: "cvss_set_vector", description: "Vulnerability \uD2F0\uCF13\uC5D0 CVSS Vector \uC124\uC815", category: "\uBCF4\uC548 \uCDE8\uC57D\uC810" },
|
|
160991
160994
|
{ name: "cvss_get_vector", description: "Vulnerability \uD2F0\uCF13\uC758 CVSS Vector \uC870\uD68C", category: "\uBCF4\uC548 \uCDE8\uC57D\uC810" },
|
|
@@ -161081,15 +161084,24 @@ var WORKFLOWS = {
|
|
|
161081
161084
|
"13. doc_generate_evidence \u2192 NB \uC2EC\uC0AC\uC6A9 \uC99D\uAC70 \uD328\uD0A4\uC9C0 \uC0DD\uC131"
|
|
161082
161085
|
].join("\n"),
|
|
161083
161086
|
risk: [
|
|
161084
|
-
"=== \uB9AC\uC2A4\uD06C \uAD00\uB9AC \uC6CC\uD06C\uD50C\uB85C\uC6B0 ===",
|
|
161087
|
+
"=== \uB9AC\uC2A4\uD06C \uAD00\uB9AC \uC6CC\uD06C\uD50C\uB85C\uC6B0 (3 \uBAA8\uB378 \uBA40\uD2F0\uC785\uB825, 0.1.21+) ===",
|
|
161085
161088
|
"",
|
|
161086
|
-
"
|
|
161087
|
-
"
|
|
161088
|
-
"
|
|
161089
|
-
"
|
|
161090
|
-
"
|
|
161091
|
-
"
|
|
161092
|
-
"
|
|
161089
|
+
"\uB3C4\uAD6C \uC778\uD130\uD398\uC774\uC2A4:",
|
|
161090
|
+
"- 3 \uBAA8\uB378 \uB3D9\uC2DC \uC785\uB825 \uAC00\uB2A5 \u2014 p1_p2_iso14971 (Severity/P1/P2, ISO 14971) / rpn (Severity/Occurrence/Detectability, FMEA RPN) / cia (Confidentiality/Availability/Integrity + Likelihood, Cyber Sec)",
|
|
161091
|
+
"- \uC635\uC158\uC740 name \uBB38\uC790\uC5F4 \uC785\uB825 \u2014 \uB3C4\uAD6C\uAC00 UUID \uC790\uB3D9 \uB9E4\uD551 (SoftComply RMP \uACF5\uC2DD schema)",
|
|
161092
|
+
"- lookup \uC2E4\uD328 \uC635\uC158\uC740 SKIPPED \uD45C\uC2DC, \uB098\uBA38\uC9C0 \uC815\uC0C1 \uC9C4\uD589",
|
|
161093
|
+
"",
|
|
161094
|
+
"1. risk_get_config \u2192 \uD504\uB85C\uC81D\uD2B8\uC758 3 \uBAA8\uB378 \uC815\uC758 + \uC635\uC158 name \uBAA9\uB85D \uC870\uD68C",
|
|
161095
|
+
"2. IU/SyRS \uBD84\uC11D \u2192 Hazard \uC2DD\uBCC4 (P1-P2 ISO 14971)",
|
|
161096
|
+
"3. risk_create_hazards \u2192 Hazard \uC77C\uAD04 \uC0DD\uC131 + 3 \uBAA8\uB378 risk values \uC790\uB3D9 \uC14B\uD305 + Risk Source/Relates \uB9C1\uD06C",
|
|
161097
|
+
" - hazard \uAC1D\uCCB4 \uC548\uC5D0 p1_p2_iso14971 / rpn / cia \uC635\uC154\uB110 \uAC1D\uCCB4 \uC785\uB825. \uC785\uB825\uD55C \uBAA8\uB378\uB9CC \uC790\uB3D9 setValues \uD638\uCD9C",
|
|
161098
|
+
"4. risk_set_values \u2192 \uAE30\uC874 Hazard\uC5D0 \uCD94\uAC00/\uC218\uC815 risk \uAC12 \uC785\uB825 (3 \uBAA8\uB378 \uB3D9\uC2DC \uB610\uB294 \uBD80\uBD84)",
|
|
161099
|
+
"5. \uC644\uD654 \uC870\uCE58 \uC124\uACC4 \u2192 risk_create_mitigation \u2192 Requirement \uC0DD\uC131 + Hazard Current P2 \uC790\uB3D9 \uC5C5\uB370\uC774\uD2B8 (P1-P2 \uBAA8\uB378)",
|
|
161100
|
+
"6. RMP Panel\uC5D0\uC11C \uC9C1\uC811 \uC785\uB825\uD558\uB294 \uBAA8\uB378 (Risk Score Calculation / Cyber Sec Risk Model) \uC740",
|
|
161101
|
+
" risk_create_hazards / risk_set_values \uC758 rpn / cia \uAC1D\uCCB4\uB85C \uC790\uB3D9 \uC14B\uD305 \uAC00\uB2A5 \u2014 UI \uC218\uB3D9 \uBD88\uD544\uC694",
|
|
161102
|
+
"7. traceability_check \u2192 \uCD94\uC801\uC131 \uD655\uC778",
|
|
161103
|
+
"8. traceability_find_missing \u2192 \uB204\uB77D \uB9C1\uD06C \uAC80\uC0C9",
|
|
161104
|
+
"9. traceability_fix \u2192 \uB204\uB77D \uB9C1\uD06C \uC790\uB3D9 \uC0DD\uC131"
|
|
161093
161105
|
].join("\n"),
|
|
161094
161106
|
usability: [
|
|
161095
161107
|
"=== \uC0AC\uC6A9\uC131 \uACF5\uD559 (IEC 62366-1) \uC6CC\uD06C\uD50C\uB85C\uC6B0 ===",
|
|
@@ -184969,7 +184981,7 @@ var xrayClientSecret = process.env.XRAY_CLIENT_SECRET || "";
|
|
|
184969
184981
|
var xray = xrayClientId && xrayClientSecret ? new XrayClient(xrayClientId, xrayClientSecret, jiraUrl, jiraEmail, jiraToken) : null;
|
|
184970
184982
|
var server = new McpServer({
|
|
184971
184983
|
name: "jira-confluence",
|
|
184972
|
-
version: "0.1.
|
|
184984
|
+
version: "0.1.24"
|
|
184973
184985
|
});
|
|
184974
184986
|
var ctx = { server, jira, confluence, risk, xray };
|
|
184975
184987
|
registerJiraCrudTools(ctx);
|