nexus-agents 2.76.0 → 2.77.1

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.
@@ -40,7 +40,7 @@ import {
40
40
  } from "./chunk-GOT7OAL5.js";
41
41
 
42
42
  // src/version.ts
43
- var VERSION = true ? "2.76.0" : "dev";
43
+ var VERSION = true ? "2.77.1" : "dev";
44
44
 
45
45
  // src/config/schemas-core.ts
46
46
  import { z } from "zod";
@@ -2308,7 +2308,7 @@ async function runDoctorFix(result) {
2308
2308
  writeLine2("\u2500".repeat(40));
2309
2309
  let fixCount = 0;
2310
2310
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2311
- const { runSetup } = await import("./setup-command-3H2XXBJ3.js");
2311
+ const { runSetup } = await import("./setup-command-MF75ZAPA.js");
2312
2312
  const setupResult = runSetup({
2313
2313
  skipMcp: true,
2314
2314
  skipRules: true,
@@ -2419,4 +2419,4 @@ export {
2419
2419
  startStdioServer,
2420
2420
  closeServer
2421
2421
  };
2422
- //# sourceMappingURL=chunk-GBILTGR6.js.map
2422
+ //# sourceMappingURL=chunk-EVI46ZGG.js.map
@@ -37,7 +37,7 @@ import {
37
37
  withAccessPolicy,
38
38
  withProgressHeartbeat,
39
39
  wrapToolWithTimeout
40
- } from "./chunk-TMOGKDC2.js";
40
+ } from "./chunk-CPPZCNAS.js";
41
41
  import {
42
42
  REGISTRY_PATH,
43
43
  getProjectRoot,
@@ -70,7 +70,7 @@ import {
70
70
  clampTaskTtl,
71
71
  getAvailabilityCache,
72
72
  resolveFallback
73
- } from "./chunk-GBILTGR6.js";
73
+ } from "./chunk-EVI46ZGG.js";
74
74
  import {
75
75
  DEFAULTS
76
76
  } from "./chunk-YQMQSJQK.js";
@@ -26231,7 +26231,7 @@ function registerRunWorkflowTool(server, deps) {
26231
26231
  server.registerTool(
26232
26232
  "run_workflow",
26233
26233
  {
26234
- description: "Execute a workflow template with provided inputs, supporting built-in templates and custom paths",
26234
+ description: "Run a LINEAR (single-path) workflow template by name with typed inputs. For DAG-shaped workflows with branching, checkpoints, or rollback, use `run_graph_workflow` instead.",
26235
26235
  inputSchema: toolInputSchema,
26236
26236
  annotations: getToolAnnotations("run_workflow")
26237
26237
  },
@@ -34196,7 +34196,7 @@ function registerDelegateToModelTool(server, deps) {
34196
34196
  server.registerTool(
34197
34197
  "delegate_to_model",
34198
34198
  {
34199
- description: "Route a task to the optimal model based on capability matching. Returns model recommendation with reasoning.",
34199
+ description: "Pick which EXISTING model should handle a task. Inspects task complexity and returns the best-fit model from the routing registry \u2014 does NOT add a new model. Read-only. (For drafting a registry entry for a new model, use `registry_import`.)",
34200
34200
  inputSchema: TOOL_SCHEMA,
34201
34201
  outputSchema: DelegateOutputSchema.shape,
34202
34202
  annotations: getToolAnnotations("delegate_to_model")
@@ -35149,7 +35149,7 @@ function registerListExpertsTool(server, deps) {
35149
35149
  const toolSchema = {
35150
35150
  format: z57.enum(["full", "names"]).optional().describe("Output format: full (with details) or names (just role names)")
35151
35151
  };
35152
- const description2 = "List available expert types that can be created with create_expert. Returns role names, descriptions, and capabilities for each expert type.";
35152
+ const description2 = "Inventory of expert ROLES available to `create_expert` (architect, security, devex, etc.). Use this BEFORE create_expert to pick a role; returns role name, capability summary, default model.";
35153
35153
  const secureHandler = createSecureHandler(listExpertsHandler, {
35154
35154
  toolName: "list_experts",
35155
35155
  rateLimiter: deps.rateLimiter,
@@ -35242,7 +35242,7 @@ function registerListWorkflowsTool(server, deps) {
35242
35242
  category: z58.string().optional().describe("Filter by category (e.g., development, security)"),
35243
35243
  format: z58.enum(["full", "names"]).optional().describe("Output format: full (with details) or names (just template names)")
35244
35244
  };
35245
- const description2 = "List available workflow templates that can be executed with run_workflow. Returns template names, versions, descriptions, and categories.";
35245
+ const description2 = "Inventory of multi-step TEMPLATES available to `run_workflow` (code-review, security-audit, etc.). Use this BEFORE run_workflow to pick a template; returns template name, version, description, category, and required inputs.";
35246
35246
  const secureHandler = createSecureHandler(createListWorkflowsHandler(deps.workflowEngine), {
35247
35247
  toolName: "list_workflows",
35248
35248
  rateLimiter: deps.rateLimiter,
@@ -35835,7 +35835,7 @@ function registerExecuteExpertTool(server, deps) {
35835
35835
  const logger51 = deps.logger ?? createLogger({ tool: "execute_expert" });
35836
35836
  const notifier = deps.notifier ?? createMcpNotifier(server);
35837
35837
  const depsWithNotifier = { ...deps, notifier };
35838
- const description2 = "Execute a task using a previously created expert agent. Returns the expert analysis including output, confidence, and token usage.";
35838
+ const description2 = "Run a task through an expert YOU PREVIOUSLY CREATED via `create_expert`. Requires the expertId returned by create_expert; not for ad-hoc execution. Returns the expert analysis including output, confidence, and token usage.";
35839
35839
  server.experimental.tasks.registerToolTask(
35840
35840
  "execute_expert",
35841
35841
  {
@@ -37328,7 +37328,7 @@ function registerResearchAddTool(server, deps) {
37328
37328
  priority: z63.enum(["P1", "P2", "P3", "P4"]).optional().describe("Priority level"),
37329
37329
  dryRun: z63.boolean().optional().default(false).describe("Preview without persisting")
37330
37330
  };
37331
- const description2 = "Add an arXiv paper to the research registry. Fetches metadata from the arXiv API and persists to the registry. Use dryRun=true to preview without saving.";
37331
+ const description2 = "PAPER-only: add an arXiv preprint to the research registry by arXiv ID. Fetches metadata from arxiv.org and persists to the registry. For non-paper sources (GitHub repos, tools, blogs) use `research_add_source` instead. Use dryRun=true to preview without saving.";
37332
37332
  const secureHandler = createSecureHandler(createResearchAddHandler(deps), {
37333
37333
  toolName: "research_add",
37334
37334
  rateLimiter: deps.rateLimiter,
@@ -37544,7 +37544,7 @@ function registerResearchAddSourceTool(server, deps) {
37544
37544
  verdict_notes: z64.string().max(500).optional().describe("Verdict notes"),
37545
37545
  dryRun: z64.boolean().optional().default(false).describe("Preview only")
37546
37546
  };
37547
- const description2 = "Add a non-paper source (GitHub repo, tool, blog) to the research registry. Auto-computes quality_score from provided quality_signals. Use dryRun=true to preview without saving.";
37547
+ const description2 = "NON-PAPER source: add a GitHub repo / tool / blog URL to the research registry. Auto-computes quality_score from provided quality_signals. For arXiv papers use `research_add` instead. Use dryRun=true to preview without saving.";
37548
37548
  const secureHandler = createSecureHandler(createResearchAddSourceHandler(deps), {
37549
37549
  toolName: "research_add_source",
37550
37550
  securityTier: "external",
@@ -38793,7 +38793,7 @@ async function handleRunGraphWorkflow(input, logger51) {
38793
38793
  checkpointCount
38794
38794
  };
38795
38795
  }
38796
- var GRAPH_WORKFLOW_DESCRIPTION = "Execute a predefined graph-based workflow with checkpointing, event streaming, and audit trail support";
38796
+ var GRAPH_WORKFLOW_DESCRIPTION = "Run a DAG-shaped workflow with per-node checkpoints, rollback, event streaming, and audit trail. Use for multi-step pipelines where intermediate state must survive failures. For straight linear templates, use `run_workflow` instead.";
38797
38797
  var GRAPH_WORKFLOW_SCHEMA = {
38798
38798
  workflow: z70.string().min(1).max(100).describe(
38799
38799
  'Workflow name: echo, pipeline, code-review, security-scan. Use "list" for available workflows.'
@@ -40211,7 +40211,7 @@ function registerRegistryImportTool(server, deps) {
40211
40211
  modelId: z77.string().min(1).describe("Provider model identifier"),
40212
40212
  dryRun: z77.boolean().optional().describe("Preview without persisting (default: true)")
40213
40213
  };
40214
- const description2 = "Add an AI model to the registry. Generates a draft ModelCapability entry with conservative quality scores (5/10) for human review. Use dryRun=true (default) to preview the entry without saving.";
40214
+ const description2 = "Draft a registry ENTRY for a NEW model so routing can consider it later. Generates a ModelCapability YAML with conservative quality scores (5/10) for human review. For picking among ALREADY-registered models, use `delegate_to_model`. Use dryRun=true (default) to preview the entry without saving.";
40215
40215
  const secureHandler = createSecureHandler(registryImportHandler, {
40216
40216
  toolName: "registry_import",
40217
40217
  rateLimiter: deps.rateLimiter,
@@ -40432,7 +40432,7 @@ function registerSearchCodebaseTool(server, deps) {
40432
40432
  limit: z82.number().min(1).max(50).optional().describe("Max results"),
40433
40433
  mode: z82.enum(["search", "summary", "list"]).optional().describe("search/summary/list")
40434
40434
  };
40435
- const description2 = "Search a codebase for functions, classes, methods, interfaces, and types. Builds an in-memory symbol index and supports keyword search with relevance scoring. Modes: search (find symbols), summary (file overview), list (all indexed files).";
40435
+ const description2 = "Cross-file ripgrep-style search across the working directory. Builds an in-memory symbol index and ranks matches with relevance scoring. Use when you need usages of a symbol or pattern across MANY files. For the AST of a single file, use `extract_symbols` instead. Modes: search (find by keyword), summary (per-file overview), list (all indexed files).";
40436
40436
  const secureHandler = createSecureHandler(searchCodebaseHandler, {
40437
40437
  toolName: "search_codebase",
40438
40438
  rateLimiter: deps.rateLimiter,
@@ -40517,7 +40517,7 @@ function registerExtractSymbolsTool(server, deps) {
40517
40517
  filePath: z83.string().min(1).max(500).describe("Path to TypeScript/JavaScript file"),
40518
40518
  mode: z83.enum(["index", "full"]).optional().describe("index (default): names+lines. full: includes source text")
40519
40519
  };
40520
- const description2 = "Extract function, class, method, interface, and type definitions from a TypeScript/JavaScript file. Returns a compact symbol index (80%+ smaller than reading the full file) for token-efficient code retrieval.";
40520
+ const description2 = "Parse a SINGLE TypeScript/JavaScript file with tree-sitter and return its structural AST symbols. Use when you need the structure of one file \u2014 function/class/method/interface/type definitions. Not a cross-file search; for that use `search_codebase`. Output is 80%+ smaller than reading the full file.";
40521
40521
  const secureHandler = createSecureHandler(extractSymbolsHandler, {
40522
40522
  toolName: "extract_symbols",
40523
40523
  rateLimiter: deps.rateLimiter,
@@ -42800,7 +42800,7 @@ ${contextBlock}`;
42800
42800
  const strategy = config.votingStrategy ?? "higher_order";
42801
42801
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
42802
42802
  try {
42803
- const { executeVoting } = await import("./consensus-vote-KDSLAWQL.js");
42803
+ const { executeVoting } = await import("./consensus-vote-UR3JU7RI.js");
42804
42804
  const votingResult = await executeVoting(
42805
42805
  {
42806
42806
  proposal: plan.slice(0, 4e3),
@@ -50007,4 +50007,4 @@ export {
50007
50007
  detectBackend,
50008
50008
  createTaskTracker
50009
50009
  };
50010
- //# sourceMappingURL=chunk-GAA7XTB6.js.map
50010
+ //# sourceMappingURL=chunk-FGQOGLHQ.js.map