agent-nuvira 3.3.1 → 3.3.3

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.
Files changed (154) hide show
  1. package/README.md +5 -8
  2. package/dist/agents/agents/runner.d.ts +9 -0
  3. package/dist/agents/agents/runner.d.ts.map +1 -1
  4. package/dist/agents/agents/runner.js +34 -12
  5. package/dist/agents/agents/runner.js.map +1 -1
  6. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  7. package/dist/agents/agents/writer-tool-calling.js +7 -2
  8. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  9. package/dist/agents/agents/writer.d.ts.map +1 -1
  10. package/dist/agents/agents/writer.js +7 -1
  11. package/dist/agents/agents/writer.js.map +1 -1
  12. package/dist/agents/artifact-verification.d.ts +102 -0
  13. package/dist/agents/artifact-verification.d.ts.map +1 -0
  14. package/dist/agents/artifact-verification.js +216 -0
  15. package/dist/agents/artifact-verification.js.map +1 -0
  16. package/dist/agents/checkpoint-store.d.ts +73 -0
  17. package/dist/agents/checkpoint-store.d.ts.map +1 -1
  18. package/dist/agents/checkpoint-store.js +161 -0
  19. package/dist/agents/checkpoint-store.js.map +1 -1
  20. package/dist/agents/credential-store.d.ts +120 -0
  21. package/dist/agents/credential-store.d.ts.map +1 -1
  22. package/dist/agents/credential-store.js +358 -19
  23. package/dist/agents/credential-store.js.map +1 -1
  24. package/dist/agents/orchestrator.d.ts +10 -1
  25. package/dist/agents/orchestrator.d.ts.map +1 -1
  26. package/dist/agents/orchestrator.js +234 -75
  27. package/dist/agents/orchestrator.js.map +1 -1
  28. package/dist/agents/phase-engine.d.ts +61 -0
  29. package/dist/agents/phase-engine.d.ts.map +1 -1
  30. package/dist/agents/phase-engine.js +68 -2
  31. package/dist/agents/phase-engine.js.map +1 -1
  32. package/dist/agents/prompt-assembly.d.ts +11 -0
  33. package/dist/agents/prompt-assembly.d.ts.map +1 -1
  34. package/dist/agents/prompt-assembly.js +17 -0
  35. package/dist/agents/prompt-assembly.js.map +1 -1
  36. package/dist/agents/release-preflight.d.ts +121 -0
  37. package/dist/agents/release-preflight.d.ts.map +1 -0
  38. package/dist/agents/release-preflight.js +259 -0
  39. package/dist/agents/release-preflight.js.map +1 -0
  40. package/dist/agents/release-runner.d.ts +157 -0
  41. package/dist/agents/release-runner.d.ts.map +1 -0
  42. package/dist/agents/release-runner.js +719 -0
  43. package/dist/agents/release-runner.js.map +1 -0
  44. package/dist/agents/step-handoff.d.ts +190 -0
  45. package/dist/agents/step-handoff.d.ts.map +1 -0
  46. package/dist/agents/step-handoff.js +443 -0
  47. package/dist/agents/step-handoff.js.map +1 -0
  48. package/dist/cli/benchmark.d.ts.map +1 -1
  49. package/dist/cli/benchmark.js +11 -4
  50. package/dist/cli/benchmark.js.map +1 -1
  51. package/dist/cli/chat.d.ts.map +1 -1
  52. package/dist/cli/chat.js +25 -4
  53. package/dist/cli/chat.js.map +1 -1
  54. package/dist/cli/cli-program.d.ts.map +1 -1
  55. package/dist/cli/cli-program.js +3 -0
  56. package/dist/cli/cli-program.js.map +1 -1
  57. package/dist/cli/credentials.d.ts +28 -0
  58. package/dist/cli/credentials.d.ts.map +1 -0
  59. package/dist/cli/credentials.js +213 -0
  60. package/dist/cli/credentials.js.map +1 -0
  61. package/dist/cli/failover-runner.d.ts.map +1 -1
  62. package/dist/cli/failover-runner.js +9 -3
  63. package/dist/cli/failover-runner.js.map +1 -1
  64. package/dist/cli/loop-executor.d.ts.map +1 -1
  65. package/dist/cli/loop-executor.js +74 -7
  66. package/dist/cli/loop-executor.js.map +1 -1
  67. package/dist/cli/nlu.d.ts.map +1 -1
  68. package/dist/cli/nlu.js +8 -2
  69. package/dist/cli/nlu.js.map +1 -1
  70. package/dist/cli/publish.d.ts +22 -0
  71. package/dist/cli/publish.d.ts.map +1 -1
  72. package/dist/cli/publish.js +109 -13
  73. package/dist/cli/publish.js.map +1 -1
  74. package/dist/config/live-credentials.d.ts +57 -0
  75. package/dist/config/live-credentials.d.ts.map +1 -0
  76. package/dist/config/live-credentials.js +126 -0
  77. package/dist/config/live-credentials.js.map +1 -0
  78. package/dist/config/paths.d.ts +18 -0
  79. package/dist/config/paths.d.ts.map +1 -1
  80. package/dist/config/paths.js +25 -0
  81. package/dist/config/paths.js.map +1 -1
  82. package/dist/federation/a2a-types.js +1 -1
  83. package/dist/federation/a2a-types.js.map +1 -1
  84. package/dist/inference/model-validator.d.ts +6 -1
  85. package/dist/inference/model-validator.d.ts.map +1 -1
  86. package/dist/inference/model-validator.js +7 -2
  87. package/dist/inference/model-validator.js.map +1 -1
  88. package/dist/inference/route-resolver.d.ts +116 -0
  89. package/dist/inference/route-resolver.d.ts.map +1 -0
  90. package/dist/inference/route-resolver.js +159 -0
  91. package/dist/inference/route-resolver.js.map +1 -0
  92. package/dist/learning/autonomy-policy.d.ts +18 -0
  93. package/dist/learning/autonomy-policy.d.ts.map +1 -1
  94. package/dist/learning/autonomy-policy.js +35 -0
  95. package/dist/learning/autonomy-policy.js.map +1 -1
  96. package/dist/learning/reasoning-trace.d.ts +1 -1
  97. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  98. package/dist/learning/reasoning-trace.js +25 -1
  99. package/dist/learning/reasoning-trace.js.map +1 -1
  100. package/dist/learning/resilient-call.d.ts.map +1 -1
  101. package/dist/learning/resilient-call.js +29 -17
  102. package/dist/learning/resilient-call.js.map +1 -1
  103. package/dist/learning/skill-store.d.ts.map +1 -1
  104. package/dist/learning/skill-store.js +30 -9
  105. package/dist/learning/skill-store.js.map +1 -1
  106. package/dist/mcp/catalog.js +2 -3
  107. package/dist/mcp/catalog.js.map +1 -1
  108. package/dist/mcp/manager.d.ts.map +1 -1
  109. package/dist/mcp/manager.js +5 -3
  110. package/dist/mcp/manager.js.map +1 -1
  111. package/dist/skills/secret-capture.d.ts.map +1 -1
  112. package/dist/skills/secret-capture.js +9 -4
  113. package/dist/skills/secret-capture.js.map +1 -1
  114. package/dist/tools/credentials-tool.d.ts +24 -0
  115. package/dist/tools/credentials-tool.d.ts.map +1 -0
  116. package/dist/tools/credentials-tool.js +125 -0
  117. package/dist/tools/credentials-tool.js.map +1 -0
  118. package/dist/tools/git-tool.d.ts +25 -7
  119. package/dist/tools/git-tool.d.ts.map +1 -1
  120. package/dist/tools/git-tool.js +155 -15
  121. package/dist/tools/git-tool.js.map +1 -1
  122. package/dist/tools/loop-project-context.d.ts.map +1 -1
  123. package/dist/tools/loop-project-context.js +16 -0
  124. package/dist/tools/loop-project-context.js.map +1 -1
  125. package/dist/tools/loop-route-feed.d.ts +57 -0
  126. package/dist/tools/loop-route-feed.d.ts.map +1 -0
  127. package/dist/tools/loop-route-feed.js +101 -0
  128. package/dist/tools/loop-route-feed.js.map +1 -0
  129. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  130. package/dist/tools/pipeline-tool.js +8 -2
  131. package/dist/tools/pipeline-tool.js.map +1 -1
  132. package/dist/tools/publish-tool.d.ts.map +1 -1
  133. package/dist/tools/publish-tool.js +76 -10
  134. package/dist/tools/publish-tool.js.map +1 -1
  135. package/dist/tools/registry.d.ts +21 -1
  136. package/dist/tools/registry.d.ts.map +1 -1
  137. package/dist/tools/registry.js +44 -6
  138. package/dist/tools/registry.js.map +1 -1
  139. package/dist/tools/run-terminal.d.ts +9 -0
  140. package/dist/tools/run-terminal.d.ts.map +1 -1
  141. package/dist/tools/run-terminal.js +80 -2
  142. package/dist/tools/run-terminal.js.map +1 -1
  143. package/dist/tools/tool-loop.d.ts +12 -5
  144. package/dist/tools/tool-loop.d.ts.map +1 -1
  145. package/dist/tools/tool-loop.js +148 -0
  146. package/dist/tools/tool-loop.js.map +1 -1
  147. package/dist/tools/toolsets.js +2 -2
  148. package/dist/tools/toolsets.js.map +1 -1
  149. package/dist/workflow/registry.js +1 -1
  150. package/dist/workflow/registry.js.map +1 -1
  151. package/package.json +5 -4
  152. package/src/web-dashboard/public/assets/{index-CjvoBhlz.js → index-CxDj7p6i.js} +2 -2
  153. package/src/web-dashboard/public/assets/{index-CjvoBhlz.js.map → index-CxDj7p6i.js.map} +1 -1
  154. package/src/web-dashboard/public/index.html +1 -1
@@ -24,11 +24,33 @@ import { Command } from 'commander';
24
24
  import { BaseCommand } from './commands.js';
25
25
  import { type PhaseDefinition } from '../agents/phase-engine.js';
26
26
  import { type PublishCredentials } from '../agents/credential-store.js';
27
+ /** Options the `publish` command accepts (commander's parsed shape). */
28
+ export interface PublishOptions {
29
+ patch?: boolean;
30
+ minor?: boolean;
31
+ major?: boolean;
32
+ dryRun?: boolean;
33
+ skipTests?: boolean;
34
+ /** `--no-preflight` sets this to false. */
35
+ preflight?: boolean;
36
+ force?: boolean;
37
+ fresh?: boolean;
38
+ from?: string;
39
+ provider?: string;
40
+ model?: string;
41
+ verbose?: boolean;
42
+ }
27
43
  /**
28
44
  * The publish pipeline's PHASE LIST — one shared source for the CLI command
29
45
  * AND the H1 `publish` tool (E3c model-decides vocabulary). Both entry points
30
46
  * build the exact same phases from the same credentials, so a chat-loop
31
47
  * publish can never diverge from `nuvira publish` (STANDING RULE).
48
+ *
49
+ * Every phase also carries its DETERMINISTIC runner (see release-runner.ts).
50
+ * A release is mechanical — bump, changelog, commit, tag, push, publish — and
51
+ * delegating those to the LLM orchestrator made them depend on plan quality and
52
+ * provider health. The runner is attached HERE so both entry points run the
53
+ * same implementation, not just the same phase names.
32
54
  */
33
55
  export declare function buildPublishPhases(bumpType: string, skipTests: boolean, creds: PublishCredentials): PhaseDefinition[];
34
56
  export declare class PublishCommand extends BaseCommand {
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/cli/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGzF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,kBAAkB,GACxB,eAAe,EAAE,CA+CnB;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,IAAI,OAAO;YA8BH,cAAc;CAuN7B"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/cli/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASzF,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,kBAAkB,GACxB,eAAe,EAAE,CAuDnB;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,IAAI,OAAO;YAyBH,cAAc;CAqS7B"}
@@ -25,17 +25,26 @@ import inquirer from 'inquirer';
25
25
  import ora from 'ora';
26
26
  import { BaseCommand } from './commands.js';
27
27
  import { Orchestrator } from '../agents/orchestrator.js';
28
- import { PhaseExecutionEngine } from '../agents/phase-engine.js';
28
+ import { PhaseExecutionEngine, adoptSavedProgress, skipPhasesBefore, } from '../agents/phase-engine.js';
29
29
  import { CredentialStore } from '../agents/credential-store.js';
30
+ import { createReleaseRunners, bumpVersionString, readVersion } from '../agents/release-runner.js';
31
+ import { probeProviderModel, reportPreflight, runReleasePreflight, } from '../agents/release-preflight.js';
30
32
  import { logger } from '../utils/logger.js';
31
33
  /**
32
34
  * The publish pipeline's PHASE LIST — one shared source for the CLI command
33
35
  * AND the H1 `publish` tool (E3c model-decides vocabulary). Both entry points
34
36
  * build the exact same phases from the same credentials, so a chat-loop
35
37
  * publish can never diverge from `nuvira publish` (STANDING RULE).
38
+ *
39
+ * Every phase also carries its DETERMINISTIC runner (see release-runner.ts).
40
+ * A release is mechanical — bump, changelog, commit, tag, push, publish — and
41
+ * delegating those to the LLM orchestrator made them depend on plan quality and
42
+ * provider health. The runner is attached HERE so both entry points run the
43
+ * same implementation, not just the same phase names.
36
44
  */
37
45
  export function buildPublishPhases(bumpType, skipTests, creds) {
38
46
  const phases = [];
47
+ const runners = createReleaseRunners(bumpType);
39
48
  // Phase 1: Tests (optional)
40
49
  if (!skipTests) {
41
50
  phases.push({
@@ -74,6 +83,13 @@ export function buildPublishPhases(bumpType, skipTests, creds) {
74
83
  description: 'GitHub Release',
75
84
  });
76
85
  }
86
+ // One lookup, at the end, so a phase added above cannot be left without its
87
+ // runner by accident while the two lists drift apart.
88
+ for (const phase of phases) {
89
+ const runner = runners[phase.id];
90
+ if (runner)
91
+ phase.runner = runner;
92
+ }
77
93
  return phases;
78
94
  }
79
95
  export class PublishCommand extends BaseCommand {
@@ -87,6 +103,10 @@ export class PublishCommand extends BaseCommand {
87
103
  .option('--major', 'Major version bump', false)
88
104
  .option('--dry-run', 'Preview changes without publishing', false)
89
105
  .option('--skip-tests', 'Skip test verification phase', false)
106
+ .option('--no-preflight', 'Skip the pre-release checks (registry, tag, route)')
107
+ .option('--force', 'Run even when the preflight finds a definitive blocker', false)
108
+ .option('--fresh', 'Ignore an unfinished release and start a new one', false)
109
+ .option('--from <phaseId>', 'Start at this phase id (continue a release)')
90
110
  .option('-p, --provider <provider>', 'Inference provider')
91
111
  .option('-m, --model <model>', 'Model override')
92
112
  .option('-v, --verbose', 'Show detailed agent output', false)
@@ -139,7 +159,37 @@ export class PublishCommand extends BaseCommand {
139
159
  logger.info(` ▶ ${p.description}: ${p.goal.slice(0, 60)}`);
140
160
  }
141
161
  }
142
- // ── Step 4: Execute phases via orchestrator ─────────────────────────
162
+ // ── Step 3b: PREFLIGHT — the one cheap moment a release has ───────────
163
+ // Everything the pipeline does after this is irreversible: a commit, a tag,
164
+ // a push, a publish. The live 3.3.2 run bumped, committed, tagged and pushed
165
+ // and only then found it could not publish (a stale version-pinned artifact
166
+ // failed `prepublishOnly`'s test run). Check first instead.
167
+ const currentVersion = readVersion();
168
+ const targetVersion = currentVersion ? bumpVersionString(currentVersion, bumpType) : '';
169
+ if (options.preflight !== false) {
170
+ // Only check the route when a phase will actually use one. Since the release
171
+ // phases became deterministic that is normally zero phases, and reporting a
172
+ // verified route nothing will call would be a decorative check.
173
+ const needsModel = phases.some((p) => !p.runner);
174
+ const preflight = await runReleasePreflight({
175
+ targetVersion,
176
+ needsModel,
177
+ probeModel: needsModel
178
+ ? () => probeProviderModel(this.configManager, options.provider, options.model)
179
+ : undefined,
180
+ });
181
+ reportPreflight(preflight);
182
+ if (preflight.blocked) {
183
+ if (!options.force) {
184
+ logger.error(` ❌ Stopped before phase 1. ${targetVersion ? `Target: v${targetVersion}. ` : ''}` +
185
+ 'Nothing was committed, tagged or published. Fix the blocker, or pass --force to run anyway.');
186
+ return;
187
+ }
188
+ logger.warn(' ⚠️ --force: running despite a definitive preflight blocker');
189
+ }
190
+ console.log('');
191
+ }
192
+ // ── Step 4: Execute phases ───────────────────────────────────────────
143
193
  const engine = new PhaseExecutionEngine(credStore);
144
194
  // In dry-run mode, just show what would happen
145
195
  if (options.dryRun) {
@@ -167,10 +217,18 @@ export class PublishCommand extends BaseCommand {
167
217
  logger.success(' ✅ Dry-run complete — no changes were made');
168
218
  return;
169
219
  }
170
- // Execute each phase via the orchestrator
220
+ // ── Step 4b: Resume, or start a new release ──────────────────────────
221
+ // A release is a multi-step, partly-irreversible process that can be killed
222
+ // halfway. The scope was always SAVED and never read, so a second run always
223
+ // started over — which, after a successful version bump, means bumping twice
224
+ // (3.3.2 → 3.3.3) on top of an unfinished release. The scope's `running`
225
+ // status is what makes continuation possible: it is the mark a killed process
226
+ // leaves behind, and it counts as incomplete.
227
+ const scopeName = `Publish: ${goal}`;
171
228
  const scope = engine.createScope({
172
- name: `Publish: ${goal}`,
229
+ name: scopeName,
173
230
  phases,
231
+ targetVersion,
174
232
  options: {
175
233
  provider: options.provider,
176
234
  model: options.model,
@@ -179,31 +237,62 @@ export class PublishCommand extends BaseCommand {
179
237
  autoCredentials: false, // Already collected above
180
238
  },
181
239
  });
240
+ const saved = options.fresh ? null : engine.loadScope(scopeName);
241
+ const resumedFrom = adoptSavedProgress(scope, saved);
242
+ if (resumedFrom > 0) {
243
+ logger.info(` ↻ Resuming the unfinished release v${scope.targetVersion}: ${resumedFrom} of ${scope.phases.length} ` +
244
+ 'phase(s) already done — the version will NOT be bumped again.');
245
+ }
246
+ else if (saved && !saved.completed && saved.targetVersion && saved.targetVersion !== targetVersion) {
247
+ logger.warn(` ⚠️ An unfinished release v${saved.targetVersion} exists; this run targets v${targetVersion}. ` +
248
+ 'Use --fresh to acknowledge, or complete the other release first.');
249
+ }
250
+ if (options.from) {
251
+ const index = skipPhasesBefore(scope, options.from);
252
+ if (index === -1) {
253
+ logger.error(` ❌ --from '${options.from}': no such phase. Known phases: ` +
254
+ scope.phases.map((p) => `${p.id} (${p.description})`).join(' · '));
255
+ return;
256
+ }
257
+ logger.info(` ⏭️ Starting at phase ${index + 1}/${scope.phases.length}: ${scope.phases[index].description}`);
258
+ }
182
259
  console.log('');
183
260
  logger.highlight(`${'═'.repeat(50)}`);
184
261
  logger.highlight(' 🚀 Starting Publish Pipeline');
185
262
  logger.highlight(`${'═'.repeat(50)}`);
186
263
  const orchestrator = new Orchestrator(this.configManager);
264
+ // The runners cannot live on the scope (state is JSON-serialized for
265
+ // resume), so they are looked up by phase id from the list above.
266
+ const runners = new Map(phases.filter((p) => p.runner).map((p) => [p.id, p.runner]));
187
267
  let hasFailure = false;
188
268
  for (let i = 0; i < scope.phases.length; i++) {
189
269
  const phase = scope.phases[i];
270
+ // Already done in the run being resumed — re-running the version bump
271
+ // would create the next version instead of completing this one.
272
+ if (phase.status === 'completed' || phase.status === 'skipped') {
273
+ scope.currentPhaseIndex = i;
274
+ continue;
275
+ }
190
276
  phase.status = 'running';
191
277
  phase.startedAt = new Date().toISOString();
192
278
  console.log('');
193
279
  logger.highlight(` 📦 Phase ${i + 1}/${scope.phases.length}: ${phase.description}`);
194
280
  console.log('');
281
+ const runner = runners.get(phase.id);
195
282
  const spinner = ora({
196
- text: `Running: ${phase.goal.slice(0, 60)}...`,
283
+ text: `${runner ? 'Running' : 'Planning'}: ${phase.goal.slice(0, 60)}...`,
197
284
  spinner: 'dots',
198
285
  }).start();
199
286
  try {
200
- const result = await orchestrator.execute(phase.goal, {
201
- provider: options.provider,
202
- model: options.model,
203
- verbose: options.verbose,
204
- dryRun: false,
205
- skipTests: options.skipTests,
206
- });
287
+ const result = runner
288
+ ? await runner()
289
+ : await orchestrator.execute(phase.goal, {
290
+ provider: options.provider,
291
+ model: options.model,
292
+ verbose: options.verbose,
293
+ dryRun: false,
294
+ skipTests: options.skipTests,
295
+ });
207
296
  spinner.stop();
208
297
  if (result.success) {
209
298
  phase.status = 'completed';
@@ -223,7 +312,14 @@ export class PublishCommand extends BaseCommand {
223
312
  if (result.error) {
224
313
  logger.error(` ${result.error.slice(0, 300)}`);
225
314
  }
226
- // Ask if user wants to continue
315
+ // Ask if user wants to continue. Only when there IS a user to ask:
316
+ // `inquirer` throws ERR_USE_AFTER_CLOSE on a closed/non-TTY stdin,
317
+ // which is how a scripted `nuvira publish --patch` died mid-pipeline
318
+ // instead of reporting the failure it had just detected.
319
+ if (i < scope.phases.length - 1 && !process.stdin.isTTY) {
320
+ logger.error(' stdin is not a terminal — aborting rather than guessing. Fix the phase above and re-run.');
321
+ break;
322
+ }
227
323
  if (i < scope.phases.length - 1) {
228
324
  const { action } = await inquirer.prompt([
229
325
  {
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/cli/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/cli/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Credentials that grant a REAL, outward action — and the rule that they must
3
+ * never reach a test process.
4
+ *
5
+ * WHY THIS EXISTS. It is the reason agent-nuvira could not publish its own
6
+ * release, and the reason the failure looked inexplicable for three attempts.
7
+ *
8
+ * The release pipeline spawns `npm test` with its own environment, and the
9
+ * credential store loads that environment from `~/.nuvira/.env` — so the test
10
+ * process inherited the operator's LIVE provider keys (GROQ, GEMINI, NVIDIA NIM,
11
+ * OPENROUTER) along with Twilio / Slack / Telegram tokens and AWS/Bedrock
12
+ * credentials. Tests that are conditioned on a key being present — correctly, so
13
+ * that someone with a key can exercise the real path — then woke up and took a
14
+ * real network path. MEASURED: the same 350 files that are green in a shell
15
+ * without those keys (349 passed, 99-133s, twice) produced 7 failed files with
16
+ * 25 x `Test timed out in 15000ms` when run with the release's environment
17
+ * (363s). Phase 1 therefore failed every release attempt on an environment
18
+ * difference that left no trace in its own output.
19
+ *
20
+ * The fix is deliberately at BOTH ends:
21
+ * - the SUITE strips these keys (`tests/setup/hermetic-env.ts`) so no test can
22
+ * reach a live provider or send a real message, no matter who starts it; and
23
+ * - the PIPELINE spawns the suite without them (`runTestsPhase`), because
24
+ * handing live credentials to a process whose job is to not use them is the
25
+ * pipeline's own bug.
26
+ * A test that genuinely needs a key sets one itself, as the credential tests
27
+ * already do.
28
+ *
29
+ * The release's OWN git/npm credentials are stripped from the suite as well, and
30
+ * the measurement is the reason. `IssueTriageAgent.detectSource` infers `github`
31
+ * from the presence of a GitHub token, so `should detect auto when no keyword
32
+ * matches` returned `github` and failed — under the release, which must hold
33
+ * `GITHUB_TOKEN` to push, that is EVERY release. A test that needs a token now
34
+ * provides its own: the credential tests already set and delete these in their
35
+ * `beforeEach` (see tests/agents/credential-store.test.ts), so nothing depends on
36
+ * inheriting them.
37
+ */
38
+ /**
39
+ * Every provider API key the catalog knows about, derived rather than copied —
40
+ * a hardcoded list here would silently fall behind the providers being added.
41
+ */
42
+ export declare const PROVIDER_CREDENTIAL_ENV_KEYS: string[];
43
+ /** {@link SIDE_EFFECT_ENV_KEYS}, exported for the tests that pin the list. */
44
+ export declare const SIDE_EFFECT_CREDENTIAL_ENV_KEYS: string[];
45
+ /** The keys {@link stripTestUnsafeEnv} removes, sorted. */
46
+ export declare const TEST_UNSAFE_ENV_KEYS: string[];
47
+ /**
48
+ * A COPY of `env` without the credentials above — for spawning a child (the
49
+ * release spawns the suite) without mutating this process's own environment.
50
+ */
51
+ export declare function stripTestUnsafeEnv(env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
52
+ /**
53
+ * Remove the credentials above from `env` IN PLACE, returning the names that were
54
+ * actually present — so a suite can report what it closed rather than assuming.
55
+ */
56
+ export declare function deleteTestUnsafeEnv(env?: NodeJS.ProcessEnv): string[];
57
+ //# sourceMappingURL=live-credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-credentials.d.ts","sourceRoot":"","sources":["../../src/config/live-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAoCH;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,EAOzC,CAAC;AAET,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,EAAE,MAAM,EAA8B,CAAC;AAiBnF,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,EAAE,MAAM,EAIhC,CAAC;AAEV;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAI1F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,EAAE,CASlF"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Credentials that grant a REAL, outward action — and the rule that they must
3
+ * never reach a test process.
4
+ *
5
+ * WHY THIS EXISTS. It is the reason agent-nuvira could not publish its own
6
+ * release, and the reason the failure looked inexplicable for three attempts.
7
+ *
8
+ * The release pipeline spawns `npm test` with its own environment, and the
9
+ * credential store loads that environment from `~/.nuvira/.env` — so the test
10
+ * process inherited the operator's LIVE provider keys (GROQ, GEMINI, NVIDIA NIM,
11
+ * OPENROUTER) along with Twilio / Slack / Telegram tokens and AWS/Bedrock
12
+ * credentials. Tests that are conditioned on a key being present — correctly, so
13
+ * that someone with a key can exercise the real path — then woke up and took a
14
+ * real network path. MEASURED: the same 350 files that are green in a shell
15
+ * without those keys (349 passed, 99-133s, twice) produced 7 failed files with
16
+ * 25 x `Test timed out in 15000ms` when run with the release's environment
17
+ * (363s). Phase 1 therefore failed every release attempt on an environment
18
+ * difference that left no trace in its own output.
19
+ *
20
+ * The fix is deliberately at BOTH ends:
21
+ * - the SUITE strips these keys (`tests/setup/hermetic-env.ts`) so no test can
22
+ * reach a live provider or send a real message, no matter who starts it; and
23
+ * - the PIPELINE spawns the suite without them (`runTestsPhase`), because
24
+ * handing live credentials to a process whose job is to not use them is the
25
+ * pipeline's own bug.
26
+ * A test that genuinely needs a key sets one itself, as the credential tests
27
+ * already do.
28
+ *
29
+ * The release's OWN git/npm credentials are stripped from the suite as well, and
30
+ * the measurement is the reason. `IssueTriageAgent.detectSource` infers `github`
31
+ * from the presence of a GitHub token, so `should detect auto when no keyword
32
+ * matches` returned `github` and failed — under the release, which must hold
33
+ * `GITHUB_TOKEN` to push, that is EVERY release. A test that needs a token now
34
+ * provides its own: the credential tests already set and delete these in their
35
+ * `beforeEach` (see tests/agents/credential-store.test.ts), so nothing depends on
36
+ * inheriting them.
37
+ */
38
+ import { PROVIDER_CATALOG } from '../inference/provider-catalog.js';
39
+ /** Provider keys that are not in the catalog (legacy or bespoke). */
40
+ const EXTRA_PROVIDER_ENV_KEYS = ['TOKENRA_API_KEY', 'AZURE_OPENAI_ENDPOINT'];
41
+ /**
42
+ * The release's own credentials. Not "side effects" in the same sense — they are
43
+ * how the release pushes and publishes — but a test process must not inherit
44
+ * them either: their mere PRESENCE changes behaviour (see the note above).
45
+ */
46
+ const RELEASE_CREDENTIAL_ENV_KEYS = [
47
+ 'GITHUB_TOKEN',
48
+ 'GH_TOKEN',
49
+ 'GITHUB_API_KEY',
50
+ 'GIT_USERNAME',
51
+ 'NPM_TOKEN',
52
+ ];
53
+ /** Credentials that can cause an outward action: send a message, spend money. */
54
+ const SIDE_EFFECT_ENV_KEYS = [
55
+ 'TWILIO_ACCOUNT_SID',
56
+ 'TWILIO_AUTH_TOKEN',
57
+ 'TWILIO_PHONE_NUMBER',
58
+ 'SLACK_BOT_TOKEN',
59
+ 'TELEGRAM_BOT_TOKEN',
60
+ 'TELEGRAM_TOKEN',
61
+ 'WHATSAPP_SELF_CHAT',
62
+ 'AWS_ACCESS_KEY_ID',
63
+ 'AWS_SECRET_ACCESS_KEY',
64
+ 'AWS_SESSION_TOKEN',
65
+ 'AWS_BEARER_TOKEN',
66
+ 'BEDROCK_REGION',
67
+ ];
68
+ /**
69
+ * Every provider API key the catalog knows about, derived rather than copied —
70
+ * a hardcoded list here would silently fall behind the providers being added.
71
+ */
72
+ export const PROVIDER_CREDENTIAL_ENV_KEYS = [
73
+ ...new Set([
74
+ ...Object.values(PROVIDER_CATALOG)
75
+ .map((provider) => provider.envVar)
76
+ .filter((name) => Boolean(name)),
77
+ ...EXTRA_PROVIDER_ENV_KEYS,
78
+ ]),
79
+ ].sort();
80
+ /** {@link SIDE_EFFECT_ENV_KEYS}, exported for the tests that pin the list. */
81
+ export const SIDE_EFFECT_CREDENTIAL_ENV_KEYS = [...SIDE_EFFECT_ENV_KEYS];
82
+ /**
83
+ * One base key plus the `NUVIRA_` / `BUFF_` spellings the resolvers accept:
84
+ * `TELEGRAM_TOKEN` is also read as `NUVIRA_TELEGRAM_TOKEN`, and a split pair
85
+ * (one spelling stripped, the other kept) would leave the live key reachable.
86
+ */
87
+ function withPrefixedAliases(keys) {
88
+ const out = new Set();
89
+ for (const key of keys) {
90
+ out.add(key);
91
+ out.add(`NUVIRA_${key}`);
92
+ out.add(`BUFF_${key}`);
93
+ }
94
+ return [...out];
95
+ }
96
+ /** The keys {@link stripTestUnsafeEnv} removes, sorted. */
97
+ export const TEST_UNSAFE_ENV_KEYS = withPrefixedAliases([
98
+ ...PROVIDER_CREDENTIAL_ENV_KEYS,
99
+ ...SIDE_EFFECT_ENV_KEYS,
100
+ ...RELEASE_CREDENTIAL_ENV_KEYS,
101
+ ]).sort();
102
+ /**
103
+ * A COPY of `env` without the credentials above — for spawning a child (the
104
+ * release spawns the suite) without mutating this process's own environment.
105
+ */
106
+ export function stripTestUnsafeEnv(env = process.env) {
107
+ const copy = { ...env };
108
+ for (const key of TEST_UNSAFE_ENV_KEYS)
109
+ delete copy[key];
110
+ return copy;
111
+ }
112
+ /**
113
+ * Remove the credentials above from `env` IN PLACE, returning the names that were
114
+ * actually present — so a suite can report what it closed rather than assuming.
115
+ */
116
+ export function deleteTestUnsafeEnv(env = process.env) {
117
+ const removed = [];
118
+ for (const key of TEST_UNSAFE_ENV_KEYS) {
119
+ if (env[key] !== undefined) {
120
+ delete env[key];
121
+ removed.push(key);
122
+ }
123
+ }
124
+ return removed;
125
+ }
126
+ //# sourceMappingURL=live-credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-credentials.js","sourceRoot":"","sources":["../../src/config/live-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,qEAAqE;AACrE,MAAM,uBAAuB,GAAG,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,2BAA2B,GAAG;IAClC,cAAc;IACd,UAAU;IACV,gBAAgB;IAChB,cAAc;IACd,WAAW;CACZ,CAAC;AAEF,iFAAiF;AACjF,MAAM,oBAAoB,GAAG;IAC3B,oBAAoB;IACpB,mBAAmB;IACnB,qBAAqB;IACrB,iBAAiB;IACjB,oBAAoB;IACpB,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,mBAAmB;IACnB,kBAAkB;IAClB,gBAAgB;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAa;IACpD,GAAG,IAAI,GAAG,CAAC;QACT,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;aAC/B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;aAClC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,GAAG,uBAAuB;KAC3B,CAAC;CACH,CAAC,IAAI,EAAE,CAAC;AAET,8EAA8E;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAa,CAAC,GAAG,oBAAoB,CAAC,CAAC;AAEnF;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAc;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAa,mBAAmB,CAAC;IAChE,GAAG,4BAA4B;IAC/B,GAAG,oBAAoB;IACvB,GAAG,2BAA2B;CAC/B,CAAC,CAAC,IAAI,EAAE,CAAC;AAEV;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACrE,MAAM,IAAI,GAAsB,EAAE,GAAG,GAAG,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,oBAAoB;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACtE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -27,6 +27,24 @@ export declare function resolveNuviraHome(): string;
27
27
  * persists (env, routing failures, audit logs, …) must resolve through here.
28
28
  */
29
29
  export declare function resolveNuviraDataPath(...segments: string[]): string;
30
+ /**
31
+ * Resolve the directory that holds MCP server configs.
32
+ *
33
+ * Precedence: an explicit directory, `$NUVIRA_MCP_DIR` / `$BUFF_MCP_DIR`, then
34
+ * `<config dir>/mcp` — so `$NUVIRA_CONFIG_DIR` isolates this too — then
35
+ * `~/.nuvira/mcp`.
36
+ *
37
+ * WHY THIS EXISTS. Both call sites used to be a bare
38
+ * `join(homedir(), '.nuvira', 'mcp')`, which is the reach the note on
39
+ * {@link resolveNuviraHome} warns about. The cost was measured rather than
40
+ * assumed: the orchestrator calls `discoverConfigs()` on every run, so the test
41
+ * suite found the developer's REAL `github` / `exa` / `firecrawl` configs and
42
+ * spawned those servers mid-run. That is outbound network traffic from a test
43
+ * process, MCP responses arriving for clients the test had already torn down
44
+ * (`Received a response for an unknown message ID`), and a fully mocked test
45
+ * timing out at 15s. A test run must not be able to reach a live MCP server.
46
+ */
47
+ export declare function resolveMcpConfigDir(explicitDir?: string): string;
30
48
  /**
31
49
  * Resolve the `.env` file that supplies provider credentials.
32
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAwBA,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,+BAAyB,CAAC;AAE3D,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,6BAA6B;AAC7B,eAAO,MAAM,qBAAqB,gCAA0B,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExD"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAwBA,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,+BAAyB,CAAC;AAE3D,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,6BAA6B;AAC7B,eAAO,MAAM,qBAAqB,gCAA0B,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEnE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExD"}
@@ -70,6 +70,31 @@ export function resolveNuviraHome() {
70
70
  export function resolveNuviraDataPath(...segments) {
71
71
  return join(resolveNuviraConfigDir(), ...segments);
72
72
  }
73
+ /**
74
+ * Resolve the directory that holds MCP server configs.
75
+ *
76
+ * Precedence: an explicit directory, `$NUVIRA_MCP_DIR` / `$BUFF_MCP_DIR`, then
77
+ * `<config dir>/mcp` — so `$NUVIRA_CONFIG_DIR` isolates this too — then
78
+ * `~/.nuvira/mcp`.
79
+ *
80
+ * WHY THIS EXISTS. Both call sites used to be a bare
81
+ * `join(homedir(), '.nuvira', 'mcp')`, which is the reach the note on
82
+ * {@link resolveNuviraHome} warns about. The cost was measured rather than
83
+ * assumed: the orchestrator calls `discoverConfigs()` on every run, so the test
84
+ * suite found the developer's REAL `github` / `exa` / `firecrawl` configs and
85
+ * spawned those servers mid-run. That is outbound network traffic from a test
86
+ * process, MCP responses arriving for clients the test had already torn down
87
+ * (`Received a response for an unknown message ID`), and a fully mocked test
88
+ * timing out at 15s. A test run must not be able to reach a live MCP server.
89
+ */
90
+ export function resolveMcpConfigDir(explicitDir) {
91
+ if (explicitDir)
92
+ return explicitDir;
93
+ const override = envBuff('MCP_DIR');
94
+ if (override)
95
+ return override;
96
+ return join(resolveNuviraConfigDir(), 'mcp');
97
+ }
73
98
  /**
74
99
  * Resolve the `.env` file that supplies provider credentials.
75
100
  *
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAC7C,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,MAAM,UAAU,sBAAsB,CAAC,WAAoB;IACzD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,6BAA6B;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACpE,0DAA0D;IAC1D,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,2FAA2F;AAC3F,MAAM,UAAU,uBAAuB,CAAC,WAAoB;IAC1D,MAAM,GAAG,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC/C,6EAA6E;IAC7E,IAAI,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6BAA6B;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAG,QAAkB;IACzD,OAAO,IAAI,CAAC,sBAAsB,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAkB;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IAC1F,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAC7C,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,MAAM,UAAU,sBAAsB,CAAC,WAAoB;IACzD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,6BAA6B;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACpE,0DAA0D;IAC1D,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,2FAA2F;AAC3F,MAAM,UAAU,uBAAuB,CAAC,WAAoB;IAC1D,MAAM,GAAG,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC/C,6EAA6E;IAC7E,IAAI,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6BAA6B;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAG,QAAkB;IACzD,OAAO,IAAI,CAAC,sBAAsB,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAoB;IACtD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAkB;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IAC1F,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC"}
@@ -58,7 +58,7 @@ export function createDefaultAgentCard(baseUrl, nodeName) {
58
58
  url: baseUrl,
59
59
  identity: {
60
60
  organization: 'Agent-Nuvira',
61
- documentationUrl: 'https://github.com/imdheerajKube/agent-nuvira',
61
+ documentationUrl: 'https://github.com/imdheerajKube/agent-nuvira-documentation',
62
62
  },
63
63
  capabilities: [
64
64
  { id: 'code-generation', name: 'Code Generation', description: 'Generate new source code files and projects' },
@@ -1 +1 @@
1
- {"version":3,"file":"a2a-types.js","sourceRoot":"","sources":["../../src/federation/a2a-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a2a-types.js","sourceRoot":"","sources":["../../src/federation/a2a-types.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,12 @@ export declare function clearModelListCache(): void;
36
36
  * @param provider The inference provider instance (for listModels()).
37
37
  * @param providerType Provider id (e.g. 'gemini', 'groq') for curated defaults.
38
38
  * @param desiredModel The model Auto routing resolved (may be stale/'default').
39
+ * @param announce Also print the repair here. DEFAULT `false`: every caller
40
+ * now goes through `resolveRoute()`, which owns the reporting (print + routing
41
+ * history + run trace). Announcing in both places produced TWO lines for one
42
+ * substitution, and in strict mode it announced a swap that then threw
43
+ * instead of happening — worse than silence.
39
44
  * @returns A model id guaranteed (best-effort) to exist on the provider.
40
45
  */
41
- export declare function resolveWorkingModel(provider: InferenceProvider, providerType: string, desiredModel?: string): Promise<string>;
46
+ export declare function resolveWorkingModel(provider: InferenceProvider, providerType: string, desiredModel?: string, announce?: boolean): Promise<string>;
42
47
  //# sourceMappingURL=model-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-validator.d.ts","sourceRoot":"","sources":["../../src/inference/model-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,gBAAgB,CAAC;AAuBzE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAyCD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CA+GjB"}
1
+ {"version":3,"file":"model-validator.d.ts","sourceRoot":"","sources":["../../src/inference/model-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,gBAAgB,CAAC;AAuBzE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAyCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,UAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA+GjB"}