nexarch 0.1.29 → 0.1.30
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.
|
@@ -4,7 +4,7 @@ import { join } from "path";
|
|
|
4
4
|
import process from "process";
|
|
5
5
|
import { requireCredentials } from "../lib/credentials.js";
|
|
6
6
|
import { callMcpTool, mcpInitialize, mcpListTools } from "../lib/mcp.js";
|
|
7
|
-
const CLI_VERSION = "0.1.
|
|
7
|
+
const CLI_VERSION = "0.1.30";
|
|
8
8
|
const AGENT_ENTITY_TYPE = "agent";
|
|
9
9
|
const TECH_COMPONENT_ENTITY_TYPE = "technology_component";
|
|
10
10
|
function parseFlag(args, flag) {
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import process from "process";
|
|
2
|
+
import { requireCredentials } from "../lib/credentials.js";
|
|
3
|
+
import { callMcpTool } from "../lib/mcp.js";
|
|
4
|
+
function parseFlag(args, flag) {
|
|
5
|
+
return args.includes(flag);
|
|
6
|
+
}
|
|
7
|
+
function parseOptionValue(args, option) {
|
|
8
|
+
const idx = args.indexOf(option);
|
|
9
|
+
if (idx === -1)
|
|
10
|
+
return null;
|
|
11
|
+
const value = args[idx + 1];
|
|
12
|
+
if (!value || value.startsWith("--"))
|
|
13
|
+
return null;
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
function parseToolText(result) {
|
|
17
|
+
const text = result.content?.[0]?.text ?? "{}";
|
|
18
|
+
return JSON.parse(text);
|
|
19
|
+
}
|
|
20
|
+
export async function resolveNames(args) {
|
|
21
|
+
const asJson = parseFlag(args, "--json");
|
|
22
|
+
const namesRaw = parseOptionValue(args, "--names");
|
|
23
|
+
if (!namesRaw) {
|
|
24
|
+
console.error("error: --names <comma-separated list> is required");
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const names = namesRaw
|
|
28
|
+
.split(",")
|
|
29
|
+
.map((n) => n.trim())
|
|
30
|
+
.filter(Boolean);
|
|
31
|
+
if (names.length === 0) {
|
|
32
|
+
console.error("error: --names must contain at least one name");
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
const creds = requireCredentials();
|
|
36
|
+
const mcpOpts = { companyId: creds.companyId };
|
|
37
|
+
const raw = await callMcpTool("nexarch_resolve_reference", { names, companyId: creds.companyId }, mcpOpts);
|
|
38
|
+
const result = parseToolText(raw);
|
|
39
|
+
if (asJson) {
|
|
40
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
for (const entry of result.resolved ?? []) {
|
|
44
|
+
if (entry.resolved) {
|
|
45
|
+
console.log(`✓ ${entry.input} → ${entry.canonicalExternalRef} (${entry.entityTypeCode}${entry.entitySubtypeCode ? `/${entry.entitySubtypeCode}` : ""}) "${entry.canonicalName}"`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log(`✗ ${entry.input} — not found in reference library`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
console.log(`\n${result.totalResolved}/${result.totalRequested} resolved`);
|
|
52
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { initProject } from "./commands/init-project.js";
|
|
|
14
14
|
import { updateEntity } from "./commands/update-entity.js";
|
|
15
15
|
import { addRelationship } from "./commands/add-relationship.js";
|
|
16
16
|
import { registerAlias } from "./commands/register-alias.js";
|
|
17
|
+
import { resolveNames } from "./commands/resolve-names.js";
|
|
17
18
|
const [, , command, ...args] = process.argv;
|
|
18
19
|
const commands = {
|
|
19
20
|
login,
|
|
@@ -28,6 +29,7 @@ const commands = {
|
|
|
28
29
|
"update-entity": updateEntity,
|
|
29
30
|
"add-relationship": addRelationship,
|
|
30
31
|
"register-alias": registerAlias,
|
|
32
|
+
"resolve-names": resolveNames,
|
|
31
33
|
};
|
|
32
34
|
async function main() {
|
|
33
35
|
if (command === "agent") {
|
|
@@ -114,6 +116,13 @@ Usage:
|
|
|
114
116
|
--subtype <code>
|
|
115
117
|
--description <text>
|
|
116
118
|
--json
|
|
119
|
+
nexarch resolve-names
|
|
120
|
+
Look up one or more raw names (package names, platform
|
|
121
|
+
names) against the global reference library and return
|
|
122
|
+
their canonical external keys. Useful for gap-check
|
|
123
|
+
results before calling add-relationship.
|
|
124
|
+
Options: --names <csv> (required, e.g. "vercel,neon")
|
|
125
|
+
--json
|
|
117
126
|
`);
|
|
118
127
|
process.exit(command ? 1 : 0);
|
|
119
128
|
}
|