@tacuchi/agent-workflow-cli 21.10.1 → 21.12.0

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 (56) hide show
  1. package/dist/application/dev-bootstrap-dsn-service.js +45 -35
  2. package/dist/application/dev-bootstrap-dsn-service.js.map +1 -1
  3. package/dist/application/docs-canon-service.js +68 -0
  4. package/dist/application/docs-canon-service.js.map +1 -0
  5. package/dist/application/dsn-reader-service.js +53 -2
  6. package/dist/application/dsn-reader-service.js.map +1 -1
  7. package/dist/application/flow/advance.js +132 -18
  8. package/dist/application/flow/advance.js.map +1 -1
  9. package/dist/application/flow/flow-service.js +100 -2
  10. package/dist/application/flow/flow-service.js.map +1 -1
  11. package/dist/application/flow/internal-drive.js +16 -13
  12. package/dist/application/flow/internal-drive.js.map +1 -1
  13. package/dist/application/flow/run-state-service.js +236 -5
  14. package/dist/application/flow/run-state-service.js.map +1 -1
  15. package/dist/application/flow/submit.js +90 -35
  16. package/dist/application/flow/submit.js.map +1 -1
  17. package/dist/application/mcp-dbhub-launcher.js +193 -34
  18. package/dist/application/mcp-dbhub-launcher.js.map +1 -1
  19. package/dist/application/mcp-doctor-service.js +13 -4
  20. package/dist/application/mcp-doctor-service.js.map +1 -1
  21. package/dist/application/mcp-test-connection-service.js +5 -11
  22. package/dist/application/mcp-test-connection-service.js.map +1 -1
  23. package/dist/application/paths-service.js +17 -0
  24. package/dist/application/paths-service.js.map +1 -1
  25. package/dist/application/session-narrative.js +7 -3
  26. package/dist/application/session-narrative.js.map +1 -1
  27. package/dist/application/session-resolver.js +12 -2
  28. package/dist/application/session-resolver.js.map +1 -1
  29. package/dist/application/session-resume-service.js +7 -0
  30. package/dist/application/session-resume-service.js.map +1 -1
  31. package/dist/application/visibility-doctor-service.js +89 -49
  32. package/dist/application/visibility-doctor-service.js.map +1 -1
  33. package/dist/application/workspace-migrate/apply.js +57 -0
  34. package/dist/application/workspace-migrate/apply.js.map +1 -0
  35. package/dist/application/workspace-migrate/markers.js +177 -0
  36. package/dist/application/workspace-migrate/markers.js.map +1 -0
  37. package/dist/application/workspace-migrate/plan.js +171 -0
  38. package/dist/application/workspace-migrate/plan.js.map +1 -0
  39. package/dist/application/workspace-migrate/preview.js +111 -0
  40. package/dist/application/workspace-migrate/preview.js.map +1 -0
  41. package/dist/cli/commands/flow.js +52 -5
  42. package/dist/cli/commands/flow.js.map +1 -1
  43. package/dist/cli/commands/unknown-flags.js +51 -0
  44. package/dist/cli/commands/unknown-flags.js.map +1 -0
  45. package/dist/cli/commands/visibility.js +105 -16
  46. package/dist/cli/commands/visibility.js.map +1 -1
  47. package/dist/cli/commands/workspace-migrate.js +70 -0
  48. package/dist/cli/commands/workspace-migrate.js.map +1 -0
  49. package/dist/domain/capability/effects.js +13 -0
  50. package/dist/domain/capability/effects.js.map +1 -1
  51. package/dist/domain/flow/answer.js +105 -0
  52. package/dist/domain/flow/answer.js.map +1 -1
  53. package/dist/domain/flow/run-state.js +215 -11
  54. package/dist/domain/flow/run-state.js.map +1 -1
  55. package/package.json +1 -1
  56. package/skills/w/loops/CHASSIS.md +5 -7
@@ -21,14 +21,14 @@
21
21
  * `renderHuman`, and a boundary nobody can see is a boundary that did not happen.
22
22
  */
23
23
  import { join } from "node:path";
24
- import { authorizeEffects } from "../../domain/capability/effects.js";
24
+ import { authorizeEffects, touchesTheWorld, } from "../../domain/capability/effects.js";
25
25
  import { AttemptLedger } from "../../domain/capability/protocol.js";
26
- import { claimedSeal, parseFlowAnswer } from "../../domain/flow/answer.js";
26
+ import { claimedSeal, parseFlowAnswer, spendsAttempt, } from "../../domain/flow/answer.js";
27
27
  import { actionOf, approvalGrantOf, effectsOf, internalActionOf, journeyOfFlow, proposalContractOf, publishApprovalOf, scopesSources, } from "../../domain/flow/authority.js";
28
28
  import { effectApprovalDigest } from "../../domain/flow/authorization.js";
29
29
  import { PAUSE_LABEL, STOP_LABEL, stepOf, } from "../../domain/flow/directive.js";
30
30
  import { executionVerdict } from "../../domain/flow/execution-result.js";
31
- import { applyTransition, checkAgainstJourney, withApproval, withAttempt, withBoundary, withObservation, withProposal, withScope, } from "../../domain/flow/run-state.js";
31
+ import { applyTransition, checkAgainstJourney, restatesLastEvent, withApproval, withAttempt, withBoundary, withEvent, withObservation, withProposal, withScope, } from "../../domain/flow/run-state.js";
32
32
  import { destinationsOf, sealProposal } from "../../domain/proposal.js";
33
33
  import { baseDigest } from "../../domain/proposal.js";
34
34
  import { reservationMarker } from "../../domain/reservation.js";
@@ -211,8 +211,9 @@ function decide(state, input, snapshot) {
211
211
  // nothing — matching a recorded attempt requires resending exactly what already
212
212
  // ran, and a retry applies nothing.
213
213
  const identity = attemptIdentity(state, input, claimedSeal(input.raw) ?? resolved.seal, resolved.stopped.id);
214
+ const cost = { journey, identity };
214
215
  // 1 · Resend, before anything else.
215
- const resend = resendCheck(state, resolved, identity);
216
+ const resend = resendCheck(state, resolved, cost);
216
217
  if (resend !== null)
217
218
  return resend;
218
219
  // The action the run is waiting on is the one that was EMITTED, and the seal
@@ -220,11 +221,11 @@ function decide(state, input, snapshot) {
220
221
  // is the diagnosis: when the two differ, the invocation changed underneath a run
221
222
  // in flight (a CLI upgraded mid-run), which is a different problem from a state
222
223
  // that moved — and it has a different answer.
223
- const drifted = actionDrift(state, resolved);
224
+ const drifted = actionDrift(state, resolved, cost);
224
225
  if (drifted !== null)
225
226
  return drifted;
226
227
  // 2 · The boundary in force decides what is admissible.
227
- const admissible = admit(state, resolved, resolved.stopped, input, { journey, identity });
228
+ const admissible = admit(state, resolved, resolved.stopped, input, cost);
228
229
  if ("decision" in admissible)
229
230
  return admissible.decision;
230
231
  const parsed = admissible;
@@ -237,17 +238,11 @@ function decide(state, input, snapshot) {
237
238
  // preview showed. Neither ever applies the step by itself.
238
239
  const scoped = scopeFrom(state, resolved.stopped, parsed.answer, snapshot.scope);
239
240
  if ("failure" in scoped) {
240
- return reject(state, resolved, scoped.failure.message, {
241
- code: scoped.failure.code,
242
- action: scoped.failure.action,
243
- });
241
+ return reject(state, resolved, scoped.failure.message, { code: scoped.failure.code, action: scoped.failure.action }, cost);
244
242
  }
245
243
  const sealed = sealFrom(scoped.state, resolved.stopped, parsed.answer, snapshot.destinations);
246
244
  if ("failure" in sealed) {
247
- return reject(state, resolved, sealed.failure.message, {
248
- code: sealed.failure.code,
249
- action: sealed.failure.action,
250
- });
245
+ return reject(state, resolved, sealed.failure.message, { code: sealed.failure.code, action: sealed.failure.action }, cost);
251
246
  }
252
247
  const granted = resolved.kind === "authorization" ? (resolved.authorization?.planned ?? []) : [];
253
248
  const approved = grantOf(sealed.state, resolved, parsed.answer, granted, journey);
@@ -336,8 +331,16 @@ function scopeFrom(state, stopped, answer, snapshot) {
336
331
  }
337
332
  return { state: withScope(state, { plan, sources }) };
338
333
  }
334
+ /**
335
+ * A scope answer the boundary read and refused — under its OWN code.
336
+ *
337
+ * It reported `FLOW_ANSWER_INVALID` for a while, and that code means "the
338
+ * envelope could not be read as an answer", so the same string stood for two
339
+ * opposite facts: one that must not cost an attempt and one that must. A reader
340
+ * cannot tell them apart, and neither could the table that decides the charge.
341
+ */
339
342
  function invalidScope(message, action) {
340
- return { code: "FLOW_ANSWER_INVALID", message, action };
343
+ return { code: "FLOW_SCOPE_INVALID", message, action };
341
344
  }
342
345
  /**
343
346
  * Seat the proposal an authoring answer just handed over — sealed, not believed.
@@ -498,7 +501,7 @@ function grantOf(state, resolved, answer, granted, journey) {
498
501
  * a payload the boundary's own contract rejects, a decline (a real answer that
499
502
  * applies nothing), and an execution result that did not earn its transition.
500
503
  */
501
- function admit(state, resolved, stopped, input, spent) {
504
+ function admit(state, resolved, stopped, input, cost) {
502
505
  const expectedApproval = resolved.kind === "authorization"
503
506
  ? effectApprovalDigest(stopped.id, resolved.authorization?.planned ?? [])
504
507
  : null;
@@ -514,11 +517,13 @@ function admit(state, resolved, stopped, input, spent) {
514
517
  request: resolved.request,
515
518
  });
516
519
  if (!parsed.ok) {
517
- // An answer the boundary refused IS an attempt spent: it is the exact event
518
- // the chassis' cap counts. Recorded here and nowhere else a resend, a
519
- // decline and a pause are not failed tries at resolving the gap.
520
+ // An answer the boundary EVALUATED and refused is an attempt spent: it is the
521
+ // exact event the chassis' cap counts. A payload it could not read as an
522
+ // answer at all is not see {@link FLOW_ANSWER_REJECTIONS}, which `reject`
523
+ // consults. A resend, a decline and a pause are not failed tries either, and
524
+ // they are classified there rather than being exempted here.
520
525
  return {
521
- decision: reject(state, resolved, parsed.failure.message, { code: parsed.failure.code, action: parsed.failure.action }, spent),
526
+ decision: reject(state, resolved, parsed.failure.message, { code: parsed.failure.code, action: parsed.failure.action }, cost),
522
527
  };
523
528
  }
524
529
  // The flow control is a real answer, and neither half applies anything. They
@@ -532,7 +537,7 @@ function admit(state, resolved, stopped, input, spent) {
532
537
  code: "FLOW_BOUNDARY_PAUSED",
533
538
  action: "escribí el CHECKPOINT con 'aw checkpoint-write', compactá, y volvé con 'aw flow advance' a esta misma frontera",
534
539
  outcome: "needs_input",
535
- }),
540
+ }, cost),
536
541
  };
537
542
  }
538
543
  if (parsed.answer.choice === STOP_LABEL) {
@@ -541,7 +546,7 @@ function admit(state, resolved, stopped, input, spent) {
541
546
  code: "FLOW_BOUNDARY_DECLINED",
542
547
  action: "reanudá con 'aw flow advance' cuando quieras retomar esta frontera",
543
548
  outcome: "cancelled",
544
- }),
549
+ }, cost),
545
550
  };
546
551
  }
547
552
  // An execution result has to EARN the transition. Anything short of a completed
@@ -553,11 +558,49 @@ function admit(state, resolved, stopped, input, spent) {
553
558
  // would leave the transition pending for an effect nobody could produce.
554
559
  const verdict = executionVerdict(parsed.answer.result, resolved.action, effectsOfTransition(state, stopped));
555
560
  if (verdict !== null) {
556
- return { decision: reject(state, resolved, verdict.message, verdict.detail, spent) };
561
+ const trace = declaredTrace(stopped, resolved, parsed.answer, verdict);
562
+ return {
563
+ decision: reject(state, resolved, verdict.message, verdict.detail, {
564
+ ...cost,
565
+ ...(trace === null ? {} : { trace }),
566
+ }),
567
+ };
557
568
  }
558
569
  }
559
570
  return parsed;
560
571
  }
572
+ /**
573
+ * The material fact a REFUSED external result still leaves behind — or `null`.
574
+ *
575
+ * A rejected result is not the same as a result about nothing. The executor may
576
+ * have run the command, written the file and come back with evidence the
577
+ * boundary did not accept: the effect reached the world regardless of what the
578
+ * verdict decided about it. Nothing else in the run records that — the trace is
579
+ * only written by the internal driver — so an external execution could declare
580
+ * `applied` classes, be refused, exhaust the boundary, and then be handed back as
581
+ * answerable by a recovery whose whole job is to refuse exactly that.
582
+ *
583
+ * Recorded when the result declares an effect past `read_only`, and when the
584
+ * verdict is a PARTIAL one: "it finished and did not apply everything" is the
585
+ * case where what did reach the world is precisely the unknown.
586
+ */
587
+ function declaredTrace(stopped, resolved, answer, verdict) {
588
+ const applied = answer.result?.effects.applied ?? [];
589
+ if (!touchesTheWorld(applied) && verdict.detail.code !== "FLOW_EFFECT_PARTIAL")
590
+ return null;
591
+ const invocation = resolved.action?.invocation;
592
+ return {
593
+ kind: "failed",
594
+ transition: stopped.id,
595
+ // What was really run, named the way whoever ran it would recognize it: an
596
+ // external execution has no internal operation id to quote.
597
+ operation: invocation === undefined ? stopped.id : [invocation.program, ...invocation.args].join(" "),
598
+ code: verdict.detail.code,
599
+ message: verdict.message,
600
+ recovery: verdict.detail.action,
601
+ effects: [...applied],
602
+ };
603
+ }
561
604
  /**
562
605
  * Whether the sealed action changed underneath a run that is standing on it.
563
606
  *
@@ -566,7 +609,7 @@ function admit(state, resolved, stopped, input, spent) {
566
609
  * staleness the seal would otherwise report, because the fix is different: nothing
567
610
  * is wrong with the state, the invocation is simply no longer the one that ran.
568
611
  */
569
- function actionDrift(state, resolved) {
612
+ function actionDrift(state, resolved, cost) {
570
613
  const pending = state.pending_action;
571
614
  if (pending === null || resolved.action === null)
572
615
  return null;
@@ -575,7 +618,7 @@ function actionDrift(state, resolved) {
575
618
  return reject(state, resolved, "la acción de esta frontera cambió después de emitirse: el resultado corresponde a otra invocación", {
576
619
  code: "FLOW_ACTION_CHANGED",
577
620
  action: "volvé a correr 'aw flow advance' para recibir la acción vigente y ejecutá esa antes de responder",
578
- });
621
+ }, cost);
579
622
  }
580
623
  /**
581
624
  * Approving an effect is NOT deciding the step, and never executing it.
@@ -651,7 +694,8 @@ function applyAndAdvance(approved, journey, stopped, identity, answer) {
651
694
  * for the reason the registry gives everywhere it derives: two sources for one
652
695
  * fact disagree eventually, and then the state is unusable.
653
696
  */
654
- function resendCheck(state, resolved, identity) {
697
+ function resendCheck(state, resolved, cost) {
698
+ const identity = cost.identity;
655
699
  const ledger = new AttemptLedger();
656
700
  for (const past of state.attempts) {
657
701
  const replay = ledger.record(past);
@@ -677,24 +721,32 @@ function resendCheck(state, resolved, identity) {
677
721
  code: "FLOW_ANSWER_RESENT",
678
722
  action: "la frontera vigente es la que devuelve esta directiva; contestá esa",
679
723
  outcome: "completed",
680
- });
724
+ }, cost);
681
725
  }
682
726
  /**
683
727
  * A rejection, expressed as the recalculated directive.
684
728
  *
685
- * The state handed back is the one that was read: nothing is written on this
686
- * path, and the caller can see that because the mutation returns `ok: false`
687
- * only for invocation failures a business rejection returns the state unchanged
688
- * with its own outcome.
729
+ * Whether it spends an attempt is decided HERE, from the code, and never by the
730
+ * call site. It used to be the call site's business, and six refusals of this
731
+ * file simply forgot to pass the parameter: a scope answered with an alias the
732
+ * plan does not name never exhausted, never degraded and never became
733
+ * recoverable — an unbounded loop inside the very mechanism that exists to bound
734
+ * one. One place decides, one table says which codes count.
735
+ *
736
+ * `cost` is absent only where there is no boundary to charge: a run that already
737
+ * finished, or one that never stopped at anything.
689
738
  */
690
- function reject(state, resolved, message, detail, spent) {
739
+ function reject(state, resolved, message, detail, cost) {
691
740
  // A refused answer is the one rejection that CHANGES the run: the attempt is
692
741
  // recorded, so the boundary that has been tried to its cap degrades instead of
693
742
  // being emitted again. The boundary is recalculated over that state, which is
694
743
  // what turns the last refusal into the degradation rather than into an
695
744
  // identical question with a different error string.
696
- const after = spent === undefined ? state : withAttempt(state, spent.identity);
697
- const now = spent === undefined ? resolved : resolveBoundary(after, spent.journey);
745
+ const traced = cost?.trace === undefined || restatesLastEvent(state, cost.trace)
746
+ ? state
747
+ : withEvent(state, cost.trace);
748
+ const after = cost !== undefined && spendsAttempt(detail.code) ? withAttempt(traced, cost.identity) : traced;
749
+ const now = cost === undefined || after === state ? resolved : resolveBoundary(after, cost.journey);
698
750
  const built = directiveFor(after, now, [], {
699
751
  // No outcome named ⇒ the boundary decides it: a finished journey reports
700
752
  // `completed`, an open one `needs_input`. Hardcoding one here would let a
@@ -716,7 +768,10 @@ function reject(state, resolved, message, detail, spent) {
716
768
  ok: true,
717
769
  state: after,
718
770
  value: { directive, advanced: false },
719
- persist: spent !== undefined,
771
+ // Persisted exactly when something really changed, whichever half changed it.
772
+ // Tying this to the attempt alone would drop a material trace that a refusal
773
+ // produced without charging for it.
774
+ persist: after !== state,
720
775
  };
721
776
  }
722
777
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/application/flow/submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/application/flow/submit.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
- // Launcher that resolves the DSN and spawns `npx -y @bytebase/dbhub` with stdio inherit.
1
+ // Launcher that resolves the DSN and spawns `npx -y @bytebase/dbhub`.
2
+ // stdin/stderr are inherited; stdout is piped so the dbhub startup banner never
3
+ // reaches the MCP JSON-RPC channel (see DbhubBannerFilter).
2
4
  import { spawn } from "node:child_process";
3
5
  import { normalizeDsnVarName, validateDsnVarName, validateMcpInstance, } from "../domain/mcp-entry.js";
4
- import { dsnKeyForInstance, readBootstrapDsn } from "./dsn-reader-service.js";
6
+ import { dsnKeyCandidates, resolveDsnFromCandidates, } from "./dsn-reader-service.js";
5
7
  export const DBHUB_DSN_VAR_ENV = "DBHUB_DSN_VAR";
6
8
  export class DbhubLauncherError extends Error {
7
9
  constructor(message) {
@@ -10,38 +12,154 @@ export class DbhubLauncherError extends Error {
10
12
  }
11
13
  }
12
14
  export function resolveDsn(instance, deps) {
13
- const dsnVar = resolveDsnVar(instance, deps);
14
- const fromEnv = deps.env[dsnVar];
15
- if (fromEnv && fromEnv.length > 0) {
16
- return { dsn: fromEnv, source: "env" };
17
- }
18
- // An unreadable dsn.env (e.g. it is a directory, or a permission/race error)
19
- // falls through to the DbhubLauncherError below, not a raw fs throw.
20
- let fromFile;
15
+ const candidates = dsnVarCandidates(instance, deps);
16
+ let resolved = null;
17
+ let fileError = null;
21
18
  try {
22
- fromFile = readBootstrapDsn(deps.paths).values[dsnVar];
19
+ resolved = resolveDsnFromCandidates(candidates, deps.env, deps.paths);
23
20
  }
24
- catch {
25
- fromFile = undefined;
21
+ catch (err) {
22
+ // An unreadable dsn.env (a directory in its place, a permission or race
23
+ // error) surfaces as this launcher's own diagnostic naming the cause,
24
+ // never as a raw fs throw and never as a silent "not found".
25
+ fileError = err instanceof Error ? err.message : String(err);
26
26
  }
27
- if (fromFile && fromFile.length > 0) {
28
- return { dsn: fromFile, source: "dsn.env" };
27
+ if (resolved === null) {
28
+ throw new DbhubLauncherError(buildUnresolvedDsnMessage(instance, candidates, deps, fileError));
29
29
  }
30
- throw new DbhubLauncherError(`[dbhub-mcp-runner] ${dsnVar} no visible — no está en process.env ni en ${deps.paths.userDsnFile()}. Asegurate de exportarlo en ~/.zshenv (macOS/Linux) o System Environment (Windows) y reiniciar Claude Code desde una terminal donde 'echo $${dsnVar}' devuelva valor.`);
30
+ reportNonCanonicalVariable(resolved, candidates, deps);
31
+ return resolved;
31
32
  }
32
- function resolveDsnVar(instance, deps) {
33
+ /**
34
+ * Variable names to probe, most specific first. An explicit DBHUB_DSN_VAR names
35
+ * the variable exactly — no prefix-dropping candidates are derived from it.
36
+ */
37
+ function dsnVarCandidates(instance, deps) {
33
38
  const configured = deps.env[DBHUB_DSN_VAR_ENV];
34
- if (configured === undefined || configured.trim().length === 0) {
35
- return dsnKeyForInstance(instance);
39
+ if (configured !== undefined && configured.trim().length > 0) {
40
+ const validation = validateDsnVarName(configured);
41
+ if (!validation.ok) {
42
+ throw new DbhubLauncherError(`[dbhub-mcp-runner] ${DBHUB_DSN_VAR_ENV} inválida '${configured}': ${validation.error}`);
43
+ }
44
+ return [normalizeDsnVarName(validation.value)];
36
45
  }
37
- const validation = validateDsnVarName(configured);
38
- if (!validation.ok) {
39
- throw new DbhubLauncherError(`[dbhub-mcp-runner] ${DBHUB_DSN_VAR_ENV} inválida '${configured}': ${validation.error}`);
46
+ const [canonical, ...rest] = dsnKeyCandidates(instance);
47
+ if (canonical === undefined) {
48
+ throw new DbhubLauncherError(`[dbhub-mcp-runner] la conexión '${instance}' no deriva ninguna variable DSN`);
49
+ }
50
+ return [canonical, ...rest];
51
+ }
52
+ /**
53
+ * A DSN found under a non-canonical name is a resolution the user did not
54
+ * spell out: say which variable was used and which one was missing, so the
55
+ * mismatch never passes as a silent default.
56
+ */
57
+ function reportNonCanonicalVariable(resolved, candidates, deps) {
58
+ const canonical = candidates[0];
59
+ if (resolved.variable === canonical)
60
+ return;
61
+ const origin = resolved.source === "env" ? "process.env" : deps.paths.userDsnFile();
62
+ stderrWriter(deps)(`[dbhub-mcp-runner] usando ${resolved.variable} (desde ${origin}) porque ${canonical} no está definida.\n`);
63
+ }
64
+ function buildUnresolvedDsnMessage(instance, candidates, deps, fileError) {
65
+ const dsnFile = deps.paths.userDsnFile();
66
+ const probed = candidates.length === 1 ? "la variable" : "estas variables, en orden";
67
+ const where = fileError === null
68
+ ? `primero en process.env y después en ${dsnFile}`
69
+ : `primero en process.env; ${dsnFile} no se pudo leer (${fileError})`;
70
+ return [
71
+ `[dbhub-mcp-runner] no encontré el DSN de la conexión '${instance}'.`,
72
+ `Probé ${probed}: ${candidates.join(", ")} — ${where}.`,
73
+ `Salidas: exportá ${candidates[0]} en ~/.zshenv (macOS/Linux) o System Environment (Windows)`,
74
+ `y reabrí el host desde una terminal donde 'echo $${candidates[0]}' devuelva valor;`,
75
+ `o nombrá la variable exacta con ${DBHUB_DSN_VAR_ENV} en el entorno del servidor MCP;`,
76
+ `o registrá la conexión con 'aw mcp setup --instance ${instance} --dsn-var <NOMBRE>'.`,
77
+ ].join(" ");
78
+ }
79
+ function stderrWriter(deps) {
80
+ return (deps.stderr ??
81
+ ((chunk) => {
82
+ process.stderr.write(chunk);
83
+ }));
84
+ }
85
+ const NEWLINE = 0x0a;
86
+ const OPEN_BRACE = 0x7b;
87
+ const EMPTY_CHUNK = Buffer.alloc(0);
88
+ /** Narrow enough that a banner containing it verbatim is not a realistic risk. */
89
+ const JSONRPC_MARKER = Buffer.from('{"jsonrpc"');
90
+ /**
91
+ * Splits dbhub's stdout into banner (stderr) and protocol (stdout).
92
+ *
93
+ * `@bytebase/dbhub` prints an ASCII banner on stdout before speaking JSON-RPC,
94
+ * which corrupts the stdio channel every MCP client reads. Complete lines are
95
+ * routed to stderr until the first one whose first non-blank byte is `{`; from
96
+ * that line on the filter is `started` and the caller must hand the pipe over
97
+ * raw, so the protocol is never re-sliced. Pure on purpose: testable without
98
+ * spawning a process.
99
+ */
100
+ export class DbhubBannerFilter {
101
+ pending = EMPTY_CHUNK;
102
+ jsonStarted = false;
103
+ /** True once the JSON-RPC stream began: the caller switches to raw passthrough. */
104
+ get started() {
105
+ return this.jsonStarted;
106
+ }
107
+ push(chunk) {
108
+ if (this.jsonStarted)
109
+ return { stdout: chunk, stderr: EMPTY_CHUNK };
110
+ this.pending = this.pending.length === 0 ? chunk : Buffer.concat([this.pending, chunk]);
111
+ // A banner that does not end in a newline would otherwise swallow the first
112
+ // message glued to its tail, so the protocol marker is a second and narrower
113
+ // cut point: bytes before it are banner, bytes from it on are protocol.
114
+ const marker = this.pending.indexOf(JSONRPC_MARKER);
115
+ const banner = [];
116
+ let consumed = 0;
117
+ let newline = this.pending.indexOf(NEWLINE, consumed);
118
+ while (newline !== -1) {
119
+ const line = this.pending.subarray(consumed, newline + 1);
120
+ // A line that already opens the protocol is handed over from its first
121
+ // byte, blanks included: the marker cut is for a banner glued to the
122
+ // message, never an excuse to re-slice bytes that are already protocol.
123
+ if (startsJsonRpc(line))
124
+ return this.startAt(consumed, consumed, banner);
125
+ if (marker !== -1 && marker < newline)
126
+ return this.startAt(marker, consumed, banner);
127
+ banner.push(line);
128
+ consumed = newline + 1;
129
+ newline = this.pending.indexOf(NEWLINE, consumed);
130
+ }
131
+ if (marker !== -1)
132
+ return this.startAt(marker, consumed, banner);
133
+ this.pending = Buffer.from(this.pending.subarray(consumed));
134
+ return { stdout: EMPTY_CHUNK, stderr: Buffer.concat(banner) };
135
+ }
136
+ /** Protocol starts at `cut`: [consumed, cut) is banner, [cut, …) goes out verbatim. */
137
+ startAt(cut, consumed, banner) {
138
+ this.jsonStarted = true;
139
+ if (cut > consumed)
140
+ banner.push(this.pending.subarray(consumed, cut));
141
+ const stdout = Buffer.from(this.pending.subarray(cut));
142
+ this.pending = EMPTY_CHUNK;
143
+ return { stdout, stderr: Buffer.concat(banner) };
144
+ }
145
+ /** Stream ended: anything still buffered never became a JSON line, so it is banner. */
146
+ end() {
147
+ const stderr = this.pending;
148
+ this.pending = EMPTY_CHUNK;
149
+ return { stdout: EMPTY_CHUNK, stderr };
150
+ }
151
+ }
152
+ function startsJsonRpc(line) {
153
+ for (const byte of line) {
154
+ // Skip leading blanks (space, tab, CR, LF); a fully blank line is banner.
155
+ if (byte === 0x20 || byte === 0x09 || byte === 0x0d || byte === NEWLINE)
156
+ continue;
157
+ return byte === OPEN_BRACE;
40
158
  }
41
- return normalizeDsnVarName(validation.value);
159
+ return false;
42
160
  }
43
161
  /**
44
- * Resolves DSN and spawns `npx -y @bytebase/dbhub` with stdio inherited.
162
+ * Resolves the DSN and spawns `npx -y @bytebase/dbhub`.
45
163
  * Resolves only when the spawned child exits.
46
164
  */
47
165
  export async function runDbhubLauncher(input) {
@@ -53,25 +171,66 @@ export async function runDbhubLauncher(input) {
53
171
  const { dsn } = resolveDsn(instance, input.deps);
54
172
  const isWin = input.deps.platform === "win32";
55
173
  const cmd = isWin ? "npx.cmd" : "npx";
174
+ const protocol = input.deps.stdout ?? process.stdout;
56
175
  return new Promise((resolve, reject) => {
57
176
  const child = spawn(cmd, ["-y", "@bytebase/dbhub"], {
58
- stdio: "inherit",
177
+ stdio: ["inherit", "pipe", "inherit"],
59
178
  env: { ...input.deps.env, DSN: dsn },
60
179
  shell: isWin,
61
180
  });
181
+ if (child.stdout === null) {
182
+ reject(new DbhubLauncherError("[dbhub-mcp-runner] no pude capturar el stdout de dbhub"));
183
+ return;
184
+ }
185
+ forwardDbhubStdout(child.stdout, {
186
+ protocol,
187
+ diagnostics: stderrWriter(input.deps),
188
+ });
62
189
  child.on("error", (err) => reject(new DbhubLauncherError(`[dbhub-mcp-runner] ${err.message}`)));
63
- child.on("exit", (code, signal) => {
64
- if (signal) {
65
- // Honor signal: emulate `process.kill(process.pid, signal)` from JS launcher
66
- // by mapping to a non-zero exit. The CLI command will exit with that code.
67
- resolve({ exitCode: 128 + (signalToNumber(signal) ?? 0) });
68
- }
69
- else {
70
- resolve({ exitCode: code ?? 0 });
71
- }
190
+ // `close`, not `exit`: `exit` fires before the child's stdout is drained, so
191
+ // the tail of the protocol would still be in flight. And piping made a second
192
+ // loss possible that `stdio: "inherit"` ruled out structurally — the child
193
+ // used to write fd 1 itself, whereas now every byte is re-written through OUR
194
+ // stdout, and the CLI ends with process.exit(), which drops whatever is still
195
+ // queued on a pipe. The zero-length write is a drain barrier: its callback
196
+ // runs once everything before it reached the OS.
197
+ child.on("close", (code, signal) => {
198
+ // Honor signal: emulate `process.kill(process.pid, signal)` from JS launcher
199
+ // by mapping to a non-zero exit. The CLI command will exit with that code.
200
+ const exitCode = signal ? 128 + (signalToNumber(signal) ?? 0) : (code ?? 0);
201
+ protocol.write(EMPTY_CHUNK, () => resolve({ exitCode }));
72
202
  });
73
203
  });
74
204
  }
205
+ /**
206
+ * Wires a dbhub stdout stream to this process's channels: banner lines to
207
+ * diagnostics, protocol bytes to the protocol channel. Takes its channels as
208
+ * parameters so the handover can be exercised without spawning anything.
209
+ */
210
+ export function forwardDbhubStdout(source, channels) {
211
+ const filter = new DbhubBannerFilter();
212
+ const onData = (chunk) => {
213
+ const routed = filter.push(chunk);
214
+ if (routed.stderr.length > 0)
215
+ channels.diagnostics(routed.stderr.toString("utf-8"));
216
+ if (routed.stdout.length > 0)
217
+ channels.protocol.write(routed.stdout);
218
+ if (!filter.started)
219
+ return;
220
+ // Protocol started: pause before detaching, so no chunk can be emitted
221
+ // between removing the listener and attaching the pipe. `end: false` keeps
222
+ // the child's EOF from closing our own stdout.
223
+ source.pause();
224
+ source.removeListener("data", onData);
225
+ source.pipe(channels.protocol, { end: false });
226
+ };
227
+ source.on("data", onData);
228
+ source.on("end", () => {
229
+ const rest = filter.end();
230
+ if (rest.stderr.length > 0)
231
+ channels.diagnostics(rest.stderr.toString("utf-8"));
232
+ });
233
+ }
75
234
  function signalToNumber(signal) {
76
235
  // Common signals; fallback to null (will produce exitCode 128 + 0 = 128).
77
236
  const map = {