nexus-agents 2.77.0 → 2.77.2

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.
@@ -9,7 +9,7 @@ import {
9
9
  defaultConfig,
10
10
  initDataDirectories,
11
11
  probeAllClis
12
- } from "./chunk-N2QNLBS5.js";
12
+ } from "./chunk-RFITLMH4.js";
13
13
  import {
14
14
  BUILT_IN_EXPERTS
15
15
  } from "./chunk-ZM4O442V.js";
@@ -1946,4 +1946,4 @@ export {
1946
1946
  setupCommand,
1947
1947
  setupCommandAsync
1948
1948
  };
1949
- //# sourceMappingURL=chunk-KYCZCROX.js.map
1949
+ //# sourceMappingURL=chunk-6UDFAXUI.js.map
@@ -70,7 +70,7 @@ import {
70
70
  clampTaskTtl,
71
71
  getAvailabilityCache,
72
72
  resolveFallback
73
- } from "./chunk-N2QNLBS5.js";
73
+ } from "./chunk-RFITLMH4.js";
74
74
  import {
75
75
  DEFAULTS
76
76
  } from "./chunk-YQMQSJQK.js";
@@ -1521,6 +1521,10 @@ var BaseAgentOptionsSchema = z4.object({
1521
1521
  "pm_expert",
1522
1522
  "ux_expert",
1523
1523
  "infrastructure_expert",
1524
+ "qa_expert",
1525
+ // #2715 — was missing from this Zod copy; canonical AgentRole has it
1526
+ "data_visualization_expert",
1527
+ // #2715 — same
1524
1528
  "thinker",
1525
1529
  "worker",
1526
1530
  "verifier",
@@ -10603,17 +10607,7 @@ function createManyExperts(configs, options) {
10603
10607
  return ok(experts);
10604
10608
  }
10605
10609
  function createAllBuiltInExperts(options) {
10606
- const types = [
10607
- "code",
10608
- "architecture",
10609
- "security",
10610
- "documentation",
10611
- "testing",
10612
- "devops",
10613
- "research",
10614
- "pm",
10615
- "ux"
10616
- ];
10610
+ const types = Object.keys(BUILT_IN_EXPERTS);
10617
10611
  const experts = [];
10618
10612
  for (const type of types) {
10619
10613
  const result = createBuiltInExpert(type, options);
@@ -26231,7 +26225,7 @@ function registerRunWorkflowTool(server, deps) {
26231
26225
  server.registerTool(
26232
26226
  "run_workflow",
26233
26227
  {
26234
- description: "Execute a workflow template with provided inputs, supporting built-in templates and custom paths",
26228
+ 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
26229
  inputSchema: toolInputSchema,
26236
26230
  annotations: getToolAnnotations("run_workflow")
26237
26231
  },
@@ -34196,7 +34190,7 @@ function registerDelegateToModelTool(server, deps) {
34196
34190
  server.registerTool(
34197
34191
  "delegate_to_model",
34198
34192
  {
34199
- description: "Route a task to the optimal model based on capability matching. Returns model recommendation with reasoning.",
34193
+ 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
34194
  inputSchema: TOOL_SCHEMA,
34201
34195
  outputSchema: DelegateOutputSchema.shape,
34202
34196
  annotations: getToolAnnotations("delegate_to_model")
@@ -35149,7 +35143,7 @@ function registerListExpertsTool(server, deps) {
35149
35143
  const toolSchema = {
35150
35144
  format: z57.enum(["full", "names"]).optional().describe("Output format: full (with details) or names (just role names)")
35151
35145
  };
35152
- const description2 = "List available expert types that can be created with create_expert. Returns role names, descriptions, and capabilities for each expert type.";
35146
+ 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
35147
  const secureHandler = createSecureHandler(listExpertsHandler, {
35154
35148
  toolName: "list_experts",
35155
35149
  rateLimiter: deps.rateLimiter,
@@ -35242,7 +35236,7 @@ function registerListWorkflowsTool(server, deps) {
35242
35236
  category: z58.string().optional().describe("Filter by category (e.g., development, security)"),
35243
35237
  format: z58.enum(["full", "names"]).optional().describe("Output format: full (with details) or names (just template names)")
35244
35238
  };
35245
- const description2 = "List available workflow templates that can be executed with run_workflow. Returns template names, versions, descriptions, and categories.";
35239
+ 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
35240
  const secureHandler = createSecureHandler(createListWorkflowsHandler(deps.workflowEngine), {
35247
35241
  toolName: "list_workflows",
35248
35242
  rateLimiter: deps.rateLimiter,
@@ -35835,7 +35829,7 @@ function registerExecuteExpertTool(server, deps) {
35835
35829
  const logger51 = deps.logger ?? createLogger({ tool: "execute_expert" });
35836
35830
  const notifier = deps.notifier ?? createMcpNotifier(server);
35837
35831
  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.";
35832
+ 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
35833
  server.experimental.tasks.registerToolTask(
35840
35834
  "execute_expert",
35841
35835
  {
@@ -37328,7 +37322,7 @@ function registerResearchAddTool(server, deps) {
37328
37322
  priority: z63.enum(["P1", "P2", "P3", "P4"]).optional().describe("Priority level"),
37329
37323
  dryRun: z63.boolean().optional().default(false).describe("Preview without persisting")
37330
37324
  };
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.";
37325
+ 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
37326
  const secureHandler = createSecureHandler(createResearchAddHandler(deps), {
37333
37327
  toolName: "research_add",
37334
37328
  rateLimiter: deps.rateLimiter,
@@ -37544,7 +37538,7 @@ function registerResearchAddSourceTool(server, deps) {
37544
37538
  verdict_notes: z64.string().max(500).optional().describe("Verdict notes"),
37545
37539
  dryRun: z64.boolean().optional().default(false).describe("Preview only")
37546
37540
  };
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.";
37541
+ 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
37542
  const secureHandler = createSecureHandler(createResearchAddSourceHandler(deps), {
37549
37543
  toolName: "research_add_source",
37550
37544
  securityTier: "external",
@@ -38793,7 +38787,7 @@ async function handleRunGraphWorkflow(input, logger51) {
38793
38787
  checkpointCount
38794
38788
  };
38795
38789
  }
38796
- var GRAPH_WORKFLOW_DESCRIPTION = "Execute a predefined graph-based workflow with checkpointing, event streaming, and audit trail support";
38790
+ 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
38791
  var GRAPH_WORKFLOW_SCHEMA = {
38798
38792
  workflow: z70.string().min(1).max(100).describe(
38799
38793
  'Workflow name: echo, pipeline, code-review, security-scan. Use "list" for available workflows.'
@@ -40211,7 +40205,7 @@ function registerRegistryImportTool(server, deps) {
40211
40205
  modelId: z77.string().min(1).describe("Provider model identifier"),
40212
40206
  dryRun: z77.boolean().optional().describe("Preview without persisting (default: true)")
40213
40207
  };
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.";
40208
+ 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
40209
  const secureHandler = createSecureHandler(registryImportHandler, {
40216
40210
  toolName: "registry_import",
40217
40211
  rateLimiter: deps.rateLimiter,
@@ -40432,7 +40426,7 @@ function registerSearchCodebaseTool(server, deps) {
40432
40426
  limit: z82.number().min(1).max(50).optional().describe("Max results"),
40433
40427
  mode: z82.enum(["search", "summary", "list"]).optional().describe("search/summary/list")
40434
40428
  };
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).";
40429
+ 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
40430
  const secureHandler = createSecureHandler(searchCodebaseHandler, {
40437
40431
  toolName: "search_codebase",
40438
40432
  rateLimiter: deps.rateLimiter,
@@ -40517,7 +40511,7 @@ function registerExtractSymbolsTool(server, deps) {
40517
40511
  filePath: z83.string().min(1).max(500).describe("Path to TypeScript/JavaScript file"),
40518
40512
  mode: z83.enum(["index", "full"]).optional().describe("index (default): names+lines. full: includes source text")
40519
40513
  };
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.";
40514
+ 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
40515
  const secureHandler = createSecureHandler(extractSymbolsHandler, {
40522
40516
  toolName: "extract_symbols",
40523
40517
  rateLimiter: deps.rateLimiter,
@@ -45668,7 +45662,7 @@ var PipelineInputSchema = z97.object({
45668
45662
  task: z97.string().min(5).max(1e4).describe("Task description \u2014 pipeline template auto-selected based on content"),
45669
45663
  /** Path to a spec file (.md, .yaml) to use as task input. */
45670
45664
  specFile: z97.string().max(500).optional().describe("Path to a spec file \u2014 content prepended to task for greenfield projects"),
45671
- /** Override template (dev, research, audit, greenfield). Auto-detected if omitted. */
45665
+ /** Override template — see `listTemplateIds()` for the canonical list (#2728). Auto-detected if omitted. */
45672
45666
  template: z97.string().max(50).optional().describe(`Pipeline template override. Available: ${listTemplateIds().join(", ")}`),
45673
45667
  /** Voting strategy for consensus stages. */
45674
45668
  votingStrategy: z97.enum([
@@ -45734,7 +45728,7 @@ function selectStageRegistry(template, task, agentStages) {
45734
45728
  }
45735
45729
  return createDevStageRegistry(agentStages);
45736
45730
  }
45737
- var RUN_PIPELINE_DESCRIPTION = "Single unified entry point for all pipeline templates (dev/research/audit/greenfield). Auto-detects template from task content or accepts an explicit override.";
45731
+ var RUN_PIPELINE_DESCRIPTION = `Single unified entry point for all pipeline templates (${listTemplateIds().join("/")}). Auto-detects template from task content or accepts an explicit override.`;
45738
45732
  function registerPipelineTool(server, _deps) {
45739
45733
  server.registerTool(
45740
45734
  "run_pipeline",
@@ -50007,4 +50001,4 @@ export {
50007
50001
  detectBackend,
50008
50002
  createTaskTracker
50009
50003
  };
50010
- //# sourceMappingURL=chunk-T3LEOO3A.js.map
50004
+ //# sourceMappingURL=chunk-N3HOBUU4.js.map