@neobiotechlabs/neobiotech-dev-agent 0.1.35 → 0.1.36
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 +24 -13
- 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.36"
|
|
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
|
@@ -160094,7 +160094,8 @@ var registerJiraCrudTools = (ctx2) => {
|
|
|
160094
160094
|
// src/tools/confluence.ts
|
|
160095
160095
|
init_markdown();
|
|
160096
160096
|
import { readFileSync } from "fs";
|
|
160097
|
-
import { resolve as resolve2 } from "path";
|
|
160097
|
+
import { resolve as resolve2, dirname as dirname2 } from "path";
|
|
160098
|
+
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
160098
160099
|
|
|
160099
160100
|
// src/utils/plantuml-renderer.ts
|
|
160100
160101
|
import { spawn } from "child_process";
|
|
@@ -160197,10 +160198,12 @@ async function renderPlantUml(source, opts = {}) {
|
|
|
160197
160198
|
// src/tools/confluence.ts
|
|
160198
160199
|
function readPluginVersion() {
|
|
160199
160200
|
try {
|
|
160200
|
-
const
|
|
160201
|
-
|
|
160202
|
-
|
|
160203
|
-
return "unknown-
|
|
160201
|
+
const here = dirname2(fileURLToPath2(import.meta.url));
|
|
160202
|
+
const pkgPath = resolve2(here, "package.json");
|
|
160203
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
160204
|
+
return pkg.version || "unknown-no-version";
|
|
160205
|
+
} catch (err) {
|
|
160206
|
+
return "unknown-read-failed: " + (err?.message ?? String(err));
|
|
160204
160207
|
}
|
|
160205
160208
|
}
|
|
160206
160209
|
var PLUGIN_VERSION = readPluginVersion();
|
|
@@ -160327,19 +160330,27 @@ var registerConfluenceTools = (ctx2) => {
|
|
|
160327
160330
|
currentVersion = result?.version?.number ?? 1;
|
|
160328
160331
|
}
|
|
160329
160332
|
let finalStorage = storage;
|
|
160333
|
+
renderTrace.push(`round2 entry: renderedDiagrams.size=${renderedDiagrams.size}`);
|
|
160330
160334
|
if (render_diagrams && renderedDiagrams.size > 0) {
|
|
160335
|
+
let attIter = 0;
|
|
160331
160336
|
for (const [id, diag] of renderedDiagrams) {
|
|
160337
|
+
attIter++;
|
|
160332
160338
|
const filename = `diagram-${id}.${diag.format}`;
|
|
160333
160339
|
try {
|
|
160334
160340
|
await confluence2.addAttachment(currentPageId, filename, diag.buffer, diag.contentType);
|
|
160341
|
+
renderTrace.push(`attach ${attIter}/${renderedDiagrams.size}: ${filename} OK`);
|
|
160335
160342
|
} catch (err) {
|
|
160343
|
+
renderTrace.push(`attach ${attIter}/${renderedDiagrams.size}: ${filename} FAIL \u2014 ${err?.message ?? err}`);
|
|
160336
160344
|
console.error(`[confluence_publish_doc] attachment upload failed for ${id}: ${err?.message ?? err}`);
|
|
160337
160345
|
renderedDiagrams.delete(id);
|
|
160338
160346
|
diagramStats.rendered--;
|
|
160339
160347
|
}
|
|
160340
160348
|
}
|
|
160349
|
+
renderTrace.push(`round2 pre-replace: renderedDiagrams.size=${renderedDiagrams.size}`);
|
|
160341
160350
|
finalStorage = replacePumlMarkers(storage, renderedDiagrams, pumlRegistry);
|
|
160351
|
+
renderTrace.push(`round2 post-replace: finalStorage.length=${finalStorage.length}, contains-image=${finalStorage.includes("<ac:image")}`);
|
|
160342
160352
|
result = await confluence2.updatePage(currentPageId, title, finalStorage, currentVersion);
|
|
160353
|
+
renderTrace.push(`round2 update: v${result?.version?.number}, body_chars=${finalStorage.length}`);
|
|
160343
160354
|
versionsUsed = 2;
|
|
160344
160355
|
}
|
|
160345
160356
|
const pageIdOut = result?.id ?? currentPageId;
|
|
@@ -162114,7 +162125,7 @@ var registerInitTools = ({ server: server2 }) => {
|
|
|
162114
162125
|
|
|
162115
162126
|
// src/tools/doc-render.ts
|
|
162116
162127
|
import { readFileSync as readFileSync3 } from "fs";
|
|
162117
|
-
import { fileURLToPath as
|
|
162128
|
+
import { fileURLToPath as fileURLToPath3 } from "url";
|
|
162118
162129
|
import path from "path";
|
|
162119
162130
|
|
|
162120
162131
|
// src/utils/doc-render.ts
|
|
@@ -162179,7 +162190,7 @@ var TEMPLATE_VERSION = "17d0c4e";
|
|
|
162179
162190
|
|
|
162180
162191
|
// src/tools/doc-render.ts
|
|
162181
162192
|
init_adf();
|
|
162182
|
-
var __dirname2 = path.dirname(
|
|
162193
|
+
var __dirname2 = path.dirname(fileURLToPath3(import.meta.url));
|
|
162183
162194
|
var TEMPLATE_DIR = path.resolve(__dirname2, "../vendor/dev-docs-templates/templates");
|
|
162184
162195
|
var registerDocRenderTools = (ctx2) => {
|
|
162185
162196
|
const { server: server2, jira: jira2 } = ctx2;
|
|
@@ -184326,13 +184337,13 @@ init_marked_esm();
|
|
|
184326
184337
|
|
|
184327
184338
|
// src/utils/pdf-fonts.ts
|
|
184328
184339
|
import { existsSync as existsSync3 } from "fs";
|
|
184329
|
-
import { join as join4, dirname as
|
|
184330
|
-
import { fileURLToPath as
|
|
184340
|
+
import { join as join4, dirname as dirname3 } from "path";
|
|
184341
|
+
import { fileURLToPath as fileURLToPath4 } from "url";
|
|
184331
184342
|
var BUNDLED_FONT_FAMILY = "BodyFont";
|
|
184332
184343
|
var BUNDLED_FONT_FAMILY_BOLD = "BodyFont-Bold";
|
|
184333
184344
|
var DEFAULT_FAMILY = "BodyFont";
|
|
184334
184345
|
function bundledFontPaths() {
|
|
184335
|
-
const here = typeof __dirname !== "undefined" ? __dirname :
|
|
184346
|
+
const here = typeof __dirname !== "undefined" ? __dirname : dirname3(fileURLToPath4(import.meta.url));
|
|
184336
184347
|
const rootFromSrc = join4(here, "..", "..");
|
|
184337
184348
|
const candidates = [join4(here, "fonts"), join4(rootFromSrc, "dist", "fonts")];
|
|
184338
184349
|
const fontsDir = candidates.find(
|
|
@@ -185503,9 +185514,9 @@ var registerExpertTools = (ctx2) => {
|
|
|
185503
185514
|
|
|
185504
185515
|
// src/tools/review-criteria.ts
|
|
185505
185516
|
import { readFileSync as readFileSync5 } from "fs";
|
|
185506
|
-
import { fileURLToPath as
|
|
185517
|
+
import { fileURLToPath as fileURLToPath5 } from "url";
|
|
185507
185518
|
import path2 from "path";
|
|
185508
|
-
var __dirname3 = path2.dirname(
|
|
185519
|
+
var __dirname3 = path2.dirname(fileURLToPath5(import.meta.url));
|
|
185509
185520
|
var CRITERIA_PATH = path2.resolve(__dirname3, "../data/review-criteria.md");
|
|
185510
185521
|
var registerReviewCriteriaTools = (ctx2) => {
|
|
185511
185522
|
ctx2.server.tool(
|
|
@@ -185552,7 +185563,7 @@ var xrayClientSecret = process.env.XRAY_CLIENT_SECRET || "";
|
|
|
185552
185563
|
var xray = xrayClientId && xrayClientSecret ? new XrayClient(xrayClientId, xrayClientSecret, jiraUrl, jiraEmail, jiraToken) : null;
|
|
185553
185564
|
var server = new McpServer({
|
|
185554
185565
|
name: "jira-confluence",
|
|
185555
|
-
version: "0.1.
|
|
185566
|
+
version: "0.1.36"
|
|
185556
185567
|
});
|
|
185557
185568
|
var ctx = { server, jira, confluence, risk, xray };
|
|
185558
185569
|
registerJiraCrudTools(ctx);
|