agentblueprint 0.7.11 → 0.7.13
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/dist/__tests__/cli.test.js +20 -20
- package/dist/__tests__/cli.test.js.map +1 -1
- package/dist/__tests__/mcp-setup.test.js +41 -2
- package/dist/__tests__/mcp-setup.test.js.map +1 -1
- package/dist/__tests__/setup.test.d.ts +1 -0
- package/dist/__tests__/setup.test.js +62 -0
- package/dist/__tests__/setup.test.js.map +1 -0
- package/dist/cli.js +12 -25
- package/dist/cli.js.map +1 -1
- package/dist/directives.d.ts +1 -0
- package/dist/directives.js +6 -3
- package/dist/directives.js.map +1 -1
- package/dist/download.d.ts +0 -4
- package/dist/download.js +29 -22
- package/dist/download.js.map +1 -1
- package/dist/mcp-setup.d.ts +5 -0
- package/dist/mcp-setup.js +21 -1
- package/dist/mcp-setup.js.map +1 -1
- package/dist/renderers.js +6 -1
- package/dist/renderers.js.map +1 -1
- package/dist/setup.d.ts +11 -0
- package/dist/setup.js +251 -0
- package/dist/setup.js.map +1 -0
- package/package.json +1 -1
package/dist/mcp-setup.js
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
|
-
import { writeFile, mkdir } from 'node:fs/promises';
|
|
1
|
+
import { writeFile, mkdir, access } from 'node:fs/promises';
|
|
2
2
|
import { execFile } from 'node:child_process';
|
|
3
3
|
import { promisify } from 'node:util';
|
|
4
4
|
import { createInterface } from 'node:readline';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
const execFileAsync = promisify(execFile);
|
|
7
|
+
/**
|
|
8
|
+
* Check if ServiceNow credentials are configured via env vars or MCP config file.
|
|
9
|
+
* Used by download to decide whether to show the "run setup" nudge.
|
|
10
|
+
*/
|
|
11
|
+
export async function isServiceNowConfigured() {
|
|
12
|
+
// Check env vars first (preferred approach)
|
|
13
|
+
if (process.env.SN_INSTANCE && process.env.SN_PASS) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
// Check if servicenow-instances.json exists in the global npm package
|
|
17
|
+
try {
|
|
18
|
+
const { stdout } = await execFileAsync('npm', ['root', '-g']);
|
|
19
|
+
const configPath = join(stdout.trim(), 'servicenow-mcp-server', 'config', 'servicenow-instances.json');
|
|
20
|
+
await access(configPath);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
7
27
|
/**
|
|
8
28
|
* Resolve credentials from flags, env vars, or interactive prompts.
|
|
9
29
|
* Priority: explicit option > env var > interactive prompt.
|
package/dist/mcp-setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-setup.js","sourceRoot":"","sources":["../src/mcp-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-setup.js","sourceRoot":"","sources":["../src/mcp-setup.ts"],"names":[],"mappings":"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"}
|
package/dist/renderers.js
CHANGED
|
@@ -287,6 +287,8 @@ function buildSkillBody(input) {
|
|
|
287
287
|
lines.push(`- **NPV:** ${str(quantifiedROI.npv)}`);
|
|
288
288
|
if (str(quantifiedROI.paybackPeriod) && !isPlaceholder(str(quantifiedROI.paybackPeriod)))
|
|
289
289
|
lines.push(`- **Payback:** ${str(quantifiedROI.paybackPeriod)}`);
|
|
290
|
+
if (str(quantifiedROI.annualSavings) && !isPlaceholder(str(quantifiedROI.annualSavings)))
|
|
291
|
+
lines.push(`- **Annual Savings:** ${str(quantifiedROI.annualSavings)}`);
|
|
290
292
|
const pilotROI = rec(quantifiedROI.pilotROI);
|
|
291
293
|
const skillPilotCapex = str(rec(pilotROI.pilotCapex).value);
|
|
292
294
|
const skillPilotSavings = str(rec(pilotROI.pilotAnnualSavings).value);
|
|
@@ -808,7 +810,8 @@ function buildFinancialCase(input) {
|
|
|
808
810
|
const roiVal = str(qROI.roi);
|
|
809
811
|
const npvVal = str(qROI.npv);
|
|
810
812
|
const paybackVal = str(qROI.paybackPeriod);
|
|
811
|
-
|
|
813
|
+
const annualSavingsVal = str(qROI.annualSavings);
|
|
814
|
+
if ((roiVal && !isPlaceholder(roiVal)) || (npvVal && !isPlaceholder(npvVal)) || (paybackVal && !isPlaceholder(paybackVal)) || (annualSavingsVal && !isPlaceholder(annualSavingsVal))) {
|
|
812
815
|
lines.push('## Return on Investment', '');
|
|
813
816
|
if (roiVal && !isPlaceholder(roiVal))
|
|
814
817
|
lines.push(`- **ROI:** ${roiVal}`);
|
|
@@ -816,6 +819,8 @@ function buildFinancialCase(input) {
|
|
|
816
819
|
lines.push(`- **NPV:** ${npvVal}`);
|
|
817
820
|
if (paybackVal && !isPlaceholder(paybackVal))
|
|
818
821
|
lines.push(`- **Payback period:** ${paybackVal}`);
|
|
822
|
+
if (annualSavingsVal && !isPlaceholder(annualSavingsVal))
|
|
823
|
+
lines.push(`- **Annual Savings:** ${annualSavingsVal}`);
|
|
819
824
|
lines.push('');
|
|
820
825
|
}
|
|
821
826
|
// Labor cost detail (nested object: currentStateBaseline / projectedSavings)
|