@bridge_gpt/mcp-server 0.2.67 → 0.2.69

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 (127) hide show
  1. package/README.md +272 -51
  2. package/build/agent-launchers/claude-executor-adapter.js +27 -0
  3. package/build/agents.generated.js +22 -2
  4. package/build/bitbucket-workspace-remote.js +136 -0
  5. package/build/bootstrap-project-identity.js +24 -0
  6. package/build/bridge-permissions.js +1362 -0
  7. package/build/check-update-cli.js +74 -0
  8. package/build/claude-settings.js +102 -2
  9. package/build/cli-help.js +27 -0
  10. package/build/codex-home.js +9 -1
  11. package/build/codex-launcher-pin.js +598 -0
  12. package/build/command-assets-doctor.js +24 -70
  13. package/build/command-provisioning.js +29 -5
  14. package/build/commands.generated.js +9 -9
  15. package/build/conductor/bridge-api-client.js +714 -0
  16. package/build/conductor/command-drift-production.js +92 -0
  17. package/build/conductor/command-drift.js +89 -0
  18. package/build/conductor/doctor.js +69 -26
  19. package/build/conductor/epic-branch-ci-inspection.js +1375 -0
  20. package/build/conductor/epic-implementer-cli.js +76 -22
  21. package/build/conductor/gate-discovery.js +890 -0
  22. package/build/conductor/install-doctor.js +15 -3
  23. package/build/conductor/json-output.js +63 -0
  24. package/build/conductor/readiness-cli.js +95 -10
  25. package/build/conductor/readiness-sections.js +369 -3
  26. package/build/conductor/readiness.js +211 -8
  27. package/build/conductor/recovery-cli.js +110 -4
  28. package/build/conductor/recovery-operations.js +99 -1
  29. package/build/connect-bitbucket-api.js +41 -6
  30. package/build/connect-bitbucket.js +106 -33
  31. package/build/connect-github-api.js +33 -14
  32. package/build/credential-store.js +207 -47
  33. package/build/docs.generated.js +57 -3
  34. package/build/doctor.js +198 -4
  35. package/build/drive-epic.js +45 -8
  36. package/build/epic-coherence-input.test-fixtures.js +4 -3
  37. package/build/epic-implementer-bin.js +1369 -25
  38. package/build/epic-workarounds-path.js +39 -0
  39. package/build/executor/cli.js +30 -0
  40. package/build/executor/completion-contract.js +20 -5
  41. package/build/executor/deps.js +4 -1
  42. package/build/executor/gate-qualification-job.js +499 -0
  43. package/build/executor/guarded-fast-forward-push.js +129 -0
  44. package/build/executor/http-client.js +43 -4
  45. package/build/executor/integration-job.js +122 -8
  46. package/build/executor/job-errors.js +8 -1
  47. package/build/executor/job-runner.js +589 -47
  48. package/build/executor/likely-tests.js +290 -0
  49. package/build/executor/live-worker-registry.js +1 -1
  50. package/build/executor/observation.js +31 -2
  51. package/build/executor/packaged-recipe.js +106 -0
  52. package/build/executor/permissions.js +115 -28
  53. package/build/executor/platform.js +1 -1
  54. package/build/executor/preflight.js +61 -12
  55. package/build/executor/process-containment.js +36 -12
  56. package/build/executor/process.js +15 -7
  57. package/build/executor/prompt-spec.js +33 -1
  58. package/build/executor/recently-failed-tests-file.js +71 -0
  59. package/build/executor/reconcile-overlap-job.js +41 -23
  60. package/build/executor/required-verification.js +1 -1
  61. package/build/executor/required-work-ledger.js +105 -17
  62. package/build/executor/retirement.js +69 -0
  63. package/build/executor/runner.js +114 -11
  64. package/build/executor/test-clock.js +15 -0
  65. package/build/executor/types.js +32 -0
  66. package/build/executor/viewer-tabs.js +58 -8
  67. package/build/executor/worker-command.js +23 -7
  68. package/build/executor/worker-diagnostics.js +37 -0
  69. package/build/executor/worker-finalization.js +31 -5
  70. package/build/executor/worker-guard-hook.js +179 -25
  71. package/build/executor/worker-log.js +4 -3
  72. package/build/executor/worker-verification-guidance.js +37 -0
  73. package/build/executor/worktree.js +88 -11
  74. package/build/first-build-advisory.js +97 -0
  75. package/build/generated-assets-advisory.js +14 -0
  76. package/build/generated-assets-catalog.js +66 -0
  77. package/build/generated-assets-context.js +46 -0
  78. package/build/generated-assets-dependencies.js +26 -0
  79. package/build/generated-assets-doctor.js +50 -0
  80. package/build/generated-assets-health.js +65 -0
  81. package/build/generated-assets-host.js +17 -0
  82. package/build/generated-assets-inventory.js +17 -0
  83. package/build/generated-assets-paths.js +60 -0
  84. package/build/generated-assets-publisher.js +133 -0
  85. package/build/generated-assets-remedy.js +25 -0
  86. package/build/generated-assets-repair.js +72 -0
  87. package/build/generated-assets-session.js +71 -0
  88. package/build/generated-assets-test-support.js +35 -0
  89. package/build/index.js +1109 -695
  90. package/build/init.js +54 -177
  91. package/build/install-bridge-conductor-gate.js +1372 -0
  92. package/build/install-bridge-conductor.js +289 -36
  93. package/build/install-bridge.js +722 -252
  94. package/build/launcher-config-inspection.js +184 -19
  95. package/build/mcp-host-targets.js +4 -0
  96. package/build/mcp-identity.js +7 -0
  97. package/build/mcp-install-state.js +50 -4
  98. package/build/merge-workflow-install.js +3 -4
  99. package/build/pipeline-utils.js +6 -2
  100. package/build/pipelines.generated.js +22 -142
  101. package/build/plan-execution-ledger.js +2 -32
  102. package/build/plane/manifest.js +16 -1
  103. package/build/plane/preflight.js +54 -1
  104. package/build/printed-remedy-commands.js +16 -1
  105. package/build/readme.generated.js +1 -1
  106. package/build/repair-assets.js +93 -0
  107. package/build/run-unit-tests-launcher.js +130 -49
  108. package/build/secret-redaction.js +33 -0
  109. package/build/session-upgrade-notice.js +86 -0
  110. package/build/setup-epic.js +108 -3
  111. package/build/start-tickets-prereqs.js +70 -16
  112. package/build/start-tickets.js +44 -5
  113. package/build/tool-call-advisory.js +162 -0
  114. package/build/tool-surface-gating.js +32 -57
  115. package/build/update-check.js +97 -16
  116. package/build/update-status.js +61 -71
  117. package/build/upgrade-advice.js +15 -11
  118. package/build/upgrade-cli.js +398 -17
  119. package/build/version.generated.js +3 -3
  120. package/build/worker-guard-hook-bin.js +3 -2
  121. package/build/worker-guard-hook-main.js +1 -1
  122. package/build/worktree-core.js +15 -2
  123. package/docs/EPIC-IMPLEMENTER-INSTALL.md +30 -12
  124. package/docs/EPIC-IMPLEMENTER.md +68 -2
  125. package/package.json +3 -3
  126. package/pipelines/greenfield-setup.json +4 -128
  127. package/pipelines/implement-ticket.json +3 -2
@@ -25,8 +25,7 @@
25
25
  * and rendered by the caller's existing orchestration boundary.
26
26
  */
27
27
  import path from "path";
28
- import { COMMANDS } from "./commands.generated.js";
29
- import { codexSkillAssets } from "./codex-skill-adapter.js";
28
+ import { buildPackagedAssetCatalog } from "./generated-assets-catalog.js";
30
29
  import { ensureGitInfoExcluded } from "./git-ignore-utils.js";
31
30
  /** The exact exclude entry appended for the command directory (POSIX-relative). */
32
31
  const COMMAND_DIR_EXCLUDE_ENTRY = ".claude/commands/";
@@ -59,7 +58,10 @@ export async function provisionCommandsForWorktree(worktreeRoot, deps, includeCo
59
58
  ? api.normalize(worktreeRoot)
60
59
  : api.resolve(deps.cwd, worktreeRoot);
61
60
  const commandsDir = api.join(normalizedRoot, ".claude", "commands");
62
- const entries = Object.entries(COMMANDS);
61
+ const catalog = buildPackagedAssetCatalog();
62
+ const commandAssets = catalog.assets.filter(a => a.kind === "command" && a.hosts.includes("claude"));
63
+ const entries = commandAssets.map(a => [api.basename(a.destination), a.content]);
64
+ const successful = [];
63
65
  if (entries.length === 0) {
64
66
  // No runnable slash commands could ever be provisioned — fail loudly rather
65
67
  // than reporting a hollow success.
@@ -74,6 +76,9 @@ export async function provisionCommandsForWorktree(worktreeRoot, deps, includeCo
74
76
  const target = api.join(commandsDir, filename);
75
77
  try {
76
78
  await deps.readFile(target);
79
+ const asset = commandAssets.find(a => api.basename(a.destination) === filename);
80
+ if (asset)
81
+ successful.push(asset);
77
82
  }
78
83
  catch (err) {
79
84
  if (isEnoentError(err)) {
@@ -92,6 +97,9 @@ export async function provisionCommandsForWorktree(worktreeRoot, deps, includeCo
92
97
  await deps.mkdir(commandsDir, { recursive: true });
93
98
  for (const [filename, content] of missing) {
94
99
  await deps.writeFile(api.join(commandsDir, filename), content);
100
+ const asset = commandAssets.find(a => api.basename(a.destination) === filename);
101
+ if (asset)
102
+ successful.push(asset);
95
103
  }
96
104
  }
97
105
  catch {
@@ -102,8 +110,8 @@ export async function provisionCommandsForWorktree(worktreeRoot, deps, includeCo
102
110
  // Codex launch requires the full bundle. Fill only, preserving customer assets.
103
111
  if (!fillError && includeCodexSkills) {
104
112
  try {
105
- for (const asset of codexSkillAssets(COMMANDS)) {
106
- const target = api.join(normalizedRoot, asset.relativePath);
113
+ for (const asset of catalog.assets.filter(a => a.kind === "skill" && a.hosts.includes("codex"))) {
114
+ const target = api.join(normalizedRoot, asset.destination);
107
115
  try {
108
116
  await deps.readFile(target);
109
117
  }
@@ -113,6 +121,7 @@ export async function provisionCommandsForWorktree(worktreeRoot, deps, includeCo
113
121
  await deps.mkdir(api.dirname(target), { recursive: true });
114
122
  await deps.writeFile(target, asset.content);
115
123
  }
124
+ successful.push(asset);
116
125
  }
117
126
  }
118
127
  catch {
@@ -131,6 +140,13 @@ export async function provisionCommandsForWorktree(worktreeRoot, deps, includeCo
131
140
  runCommand: deps.runCommand,
132
141
  platform: deps.platform,
133
142
  });
143
+ if (deps.recordAssets) {
144
+ // Inventory is machine-local state, just like the generated workflow files.
145
+ await ensureGitInfoExcluded(normalizedRoot, ".bridge/install-state.json", {
146
+ readFile: deps.readFile, writeFile: deps.writeFile, mkdir: deps.mkdir,
147
+ runCommand: deps.runCommand, platform: deps.platform,
148
+ });
149
+ }
134
150
  if (includeCodexSkills) {
135
151
  await ensureGitInfoExcluded(normalizedRoot, CODEX_SKILLS_EXCLUDE_ENTRY, {
136
152
  readFile: deps.readFile,
@@ -145,6 +161,14 @@ export async function provisionCommandsForWorktree(worktreeRoot, deps, includeCo
145
161
  excludeError =
146
162
  "Command provisioning failed: could not add generated command assets to the worktree Git exclude file.";
147
163
  }
164
+ if (deps.recordAssets && successful.length) {
165
+ try {
166
+ await deps.recordAssets(normalizedRoot, successful, includeCodexSkills ? ["claude", "codex"] : ["claude"]);
167
+ }
168
+ catch {
169
+ fillError ??= "Command provisioning failed: could not record packaged workflow inventory.";
170
+ }
171
+ }
148
172
  if (fillError)
149
173
  return { ok: false, error: fillError };
150
174
  if (excludeError)