nexarch 0.12.36 → 0.12.39

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,6 +4,7 @@ import { homedir } from "os";
4
4
  import { join } from "path";
5
5
  import { requireCredentials } from "../lib/credentials.js";
6
6
  import { callMcpTool, mcpInitialize, mcpListTools } from "../lib/mcp.js";
7
+ import { cliVersion } from "../lib/version.js";
7
8
  function parseFlag(args, flag) {
8
9
  return args.includes(flag);
9
10
  }
@@ -60,7 +61,7 @@ export async function agentIdentify(args) {
60
61
  const client = parseOptionValue(args, "--client");
61
62
  const sessionId = parseOptionValue(args, "--session-id");
62
63
  const framework = parseOptionValue(args, "--framework");
63
- const toolVersion = parseOptionValue(args, "--tool-version");
64
+ const toolVersion = parseOptionValue(args, "--tool-version") ?? cliVersion();
64
65
  const capabilities = parseCsv(parseOptionValue(args, "--capabilities"));
65
66
  const notes = parseOptionValue(args, "--notes");
66
67
  if (!provider || !model || !client) {
@@ -8,6 +8,7 @@ import { requireCredentials } from "../lib/credentials.js";
8
8
  import { fetchAgentRegistryOrThrow } from "../lib/agent-registry.js";
9
9
  import { callMcpTool, mcpInitialize, mcpListTools } from "../lib/mcp.js";
10
10
  import { buildVersionAttributes } from "../lib/version-normalization.js";
11
+ import { cliVersion } from "../lib/version.js";
11
12
  import { requestTrustAttestation, TRUST_ATTESTATION_SCOPE } from "../lib/trust.js";
12
13
  const CLI_VERSION = (() => {
13
14
  try {
@@ -684,7 +685,7 @@ export async function initAgent(args) {
684
685
  const clientArg = parseOptionValue(args, "--client");
685
686
  const frameworkArg = parseOptionValue(args, "--framework");
686
687
  const sessionIdArg = parseOptionValue(args, "--session-id");
687
- const toolVersionArg = parseOptionValue(args, "--tool-version");
688
+ const toolVersionArg = parseOptionValue(args, "--tool-version") ?? cliVersion();
688
689
  const capabilitiesArg = parseCsv(parseOptionValue(args, "--capabilities"));
689
690
  const notesArg = parseOptionValue(args, "--notes");
690
691
  const agentId = explicitAgentId ?? getDefaultAgentId();
package/dist/lib/mcp.js CHANGED
@@ -51,12 +51,29 @@ async function requestOnce(method, params, options) {
51
51
  const raw = Buffer.concat(chunks).toString("utf-8");
52
52
  const json = JSON.parse(raw);
53
53
  if (json.error) {
54
- const detail = json.error.data &&
55
- typeof json.error.data === "object" &&
56
- "detail" in json.error.data &&
57
- typeof json.error.data.detail === "string"
58
- ? json.error.data.detail
54
+ const errData = json.error.data;
55
+ const explicitDetail = errData && typeof errData === "object" && "detail" in errData && typeof errData.detail === "string"
56
+ ? errData.detail
59
57
  : null;
58
+ // INVALID_TOOL_ARGUMENTS carries Zod detail — without this,
59
+ // every schema violation surfaced as the bare, undiagnosable
60
+ // "Invalid tool arguments" and nothing else, e.g. a missing
61
+ // required entity field on a create looked identical to an
62
+ // unrelated request shape mistake. Prefer `issues` (full dotted
63
+ // path per error, e.g. "entities.0.name: Required") over the
64
+ // older `fieldErrors` shape, which collapses a nested path down
65
+ // to just its top-level key and loses which field/index failed.
66
+ const zodDetail = !explicitDetail && errData && typeof errData === "object" && "issues" in errData
67
+ ? errData.issues
68
+ .map(({ path, message }) => (path ? `${path}: ${message}` : message))
69
+ .join("; ") || null
70
+ : !explicitDetail && errData && typeof errData === "object" && "fieldErrors" in errData
71
+ ? Object.entries(errData.fieldErrors)
72
+ .filter(([, messages]) => Array.isArray(messages) && messages.length > 0)
73
+ .map(([field, messages]) => `${field}: ${messages.join(", ")}`)
74
+ .join("; ") || null
75
+ : null;
76
+ const detail = explicitDetail ?? zodDetail;
60
77
  reject(new Error(detail ? `${json.error.message} (${detail})` : json.error.message));
61
78
  }
62
79
  else if (json.result !== undefined) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexarch",
3
- "version": "0.12.36",
3
+ "version": "0.12.39",
4
4
  "description": "Your architecture workspace for AI delivery.",
5
5
  "keywords": [
6
6
  "nexarch",