@bridge_gpt/mcp-server 0.2.30 → 0.2.31
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.
- package/build/command-assets-doctor.js +72 -0
- package/build/command-provisioning.js +157 -0
- package/build/executor/test-clock.js +3 -1
- package/build/executor/worktree.js +31 -2
- package/build/git-ignore-utils.js +67 -14
- package/build/index.js +2871 -2871
- package/build/install-bridge.js +36 -13
- package/build/start-tickets-prereqs.js +45 -0
- package/build/start-tickets.js +32 -2
- package/build/version.generated.js +1 -1
- package/package.json +3 -3
package/build/install-bridge.js
CHANGED
|
@@ -300,12 +300,15 @@ export function getInstallBridgeUsage() {
|
|
|
300
300
|
" --agent claude|cursor-agent Explicit launch override for the post-install",
|
|
301
301
|
" session — it always wins, and there is NO Claude",
|
|
302
302
|
" default. Without it the launch tool is derived",
|
|
303
|
-
" from your selection: Claude Code opens `claude
|
|
304
|
-
" Cursor
|
|
305
|
-
"
|
|
306
|
-
"
|
|
307
|
-
"
|
|
308
|
-
"
|
|
303
|
+
" from your selection: Claude Code opens `claude`.",
|
|
304
|
+
" Cursor is NOT auto-opened (its cursor-agent CLI",
|
|
305
|
+
" first-run workspace-trust prompt collapses a spawned",
|
|
306
|
+
" session); selecting Cursor writes .cursor/mcp.json",
|
|
307
|
+
" and prints how to finish by running /install-bridge",
|
|
308
|
+
" in a new Cursor session. A selection whose tools have",
|
|
309
|
+
" no agentic CLI (e.g. Copilot) likewise opens nothing",
|
|
310
|
+
" and prints how to finish configuring later. Passing",
|
|
311
|
+
" --agent cursor-agent still force-spawns it.",
|
|
309
312
|
" -h, --help Show this help.",
|
|
310
313
|
"",
|
|
311
314
|
"Environment: BAPI_BASE_URL (default https://bridgegpt-api.com) and BAPI_DOCS_DIR",
|
|
@@ -1131,18 +1134,37 @@ export async function resolveSelectedHostPlatforms(deps, options) {
|
|
|
1131
1134
|
legacy.push("copilot-vscode");
|
|
1132
1135
|
return HOST_PLATFORM_ORDER.filter((id) => legacy.includes(id));
|
|
1133
1136
|
}
|
|
1137
|
+
/**
|
|
1138
|
+
* Launch agents install-bridge will NEVER auto-spawn from a host SELECTION, even
|
|
1139
|
+
* though their CLI exists and the host's MCP config is still written normally.
|
|
1140
|
+
*
|
|
1141
|
+
* `cursor-agent` is excluded: its FIRST-RUN workspace-trust handshake collapses
|
|
1142
|
+
* under our osascript-spawned launch — the "Workspace Trust Required" dialog
|
|
1143
|
+
* renders, then the process exits before a selection registers, so configuration
|
|
1144
|
+
* never runs (reproduced on a pristine, never-trusted workspace; the identical
|
|
1145
|
+
* command works only where Cursor already trusts the directory). The trust gate is
|
|
1146
|
+
* cursor-agent's own behavior on an untrusted workspace and is not something our
|
|
1147
|
+
* launch can drive, so we treat Cursor as a no-auto-launch host: selecting it
|
|
1148
|
+
* still writes `.cursor/mcp.json`, then prints the manual `/install-bridge`
|
|
1149
|
+
* continuation (same path as Copilot/Codex/Windsurf, which have no agentic CLI).
|
|
1150
|
+
* An explicit `--agent cursor-agent` override still spawns it — a deliberate,
|
|
1151
|
+
* documented power-user opt-in that bypasses this selection guard.
|
|
1152
|
+
*/
|
|
1153
|
+
const SELECTION_NON_LAUNCHABLE_AGENTS = new Set(["cursor-agent"]);
|
|
1134
1154
|
/**
|
|
1135
1155
|
* Resolve the post-install launch decision from the selected host platforms and an
|
|
1136
1156
|
* OPTIONAL explicit `--agent` override (BAPI-657). Pure and total:
|
|
1137
1157
|
*
|
|
1138
1158
|
* - An explicit `--agent` is an ABSOLUTE override (ratified AC-4): a valid explicit
|
|
1139
1159
|
* agent always returns `spawn(agent)`, regardless of which tools were selected —
|
|
1140
|
-
* the flag is honored even for a host outside the selection
|
|
1160
|
+
* the flag is honored even for a host outside the selection, and it bypasses the
|
|
1161
|
+
* {@link SELECTION_NON_LAUNCHABLE_AGENTS} guard below.
|
|
1141
1162
|
* - Otherwise the selection drives it: map each selected host through
|
|
1142
|
-
* {@link agentForPlatform}, drop non-launchable
|
|
1143
|
-
*
|
|
1144
|
-
* `manual("
|
|
1145
|
-
* `
|
|
1163
|
+
* {@link agentForPlatform}, drop hosts that are non-launchable OR excluded from
|
|
1164
|
+
* selection auto-spawn ({@link SELECTION_NON_LAUNCHABLE_AGENTS}, e.g. Cursor),
|
|
1165
|
+
* dedup in registry order, then return `manual("empty-selection")` for an empty
|
|
1166
|
+
* selection, `manual("no-launchable-agent")` for zero launchable agents, `spawn`
|
|
1167
|
+
* for one, or `choose-one` for more than one.
|
|
1146
1168
|
*
|
|
1147
1169
|
* Never prompts, logs, resolves an {@link AgentSpec}, or touches the filesystem.
|
|
1148
1170
|
*/
|
|
@@ -1158,8 +1180,9 @@ export function resolveInstallBridgeLaunchDecision(selectedPlatforms, explicitAg
|
|
|
1158
1180
|
if (!selectedPlatforms.includes(id))
|
|
1159
1181
|
continue;
|
|
1160
1182
|
const agent = agentForPlatform(id);
|
|
1161
|
-
if (agent && !agents.includes(agent))
|
|
1183
|
+
if (agent && !SELECTION_NON_LAUNCHABLE_AGENTS.has(agent) && !agents.includes(agent)) {
|
|
1162
1184
|
agents.push(agent);
|
|
1185
|
+
}
|
|
1163
1186
|
}
|
|
1164
1187
|
if (agents.length === 0)
|
|
1165
1188
|
return { kind: "manual", reason: "no-launchable-agent" };
|
|
@@ -1246,7 +1269,7 @@ export function buildManualInstallBridgeContinuation(kind, toolLabels) {
|
|
|
1246
1269
|
const toolPhrase = formatToolLabelPhrase(toolLabels);
|
|
1247
1270
|
return [
|
|
1248
1271
|
`To finish configuring this project, open it in ${toolPhrase} that has the`,
|
|
1249
|
-
"Bridge MCP server configured and run /install-bridge.",
|
|
1272
|
+
"Bridge MCP server configured, start a new session, and run /install-bridge.",
|
|
1250
1273
|
"Until the project is configured, your Bridge MCP tools stay limited.",
|
|
1251
1274
|
].join("\n");
|
|
1252
1275
|
}
|
|
@@ -17,6 +17,7 @@ import path from "path";
|
|
|
17
17
|
import { resolveBapiCredentials, getPrimaryCredentialStorePath, } from "./credential-store.js";
|
|
18
18
|
import { resolveStartTicketsRepoName } from "./start-tickets-repo.js";
|
|
19
19
|
import { probeWorktreeMcpRegistration } from "./mcp-registration-doctor.js";
|
|
20
|
+
import { probeWorktreeCommandAssets } from "./command-assets-doctor.js";
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
21
22
|
// Constants (moved here from start-tickets.ts so both consumers share them)
|
|
22
23
|
// ---------------------------------------------------------------------------
|
|
@@ -436,6 +437,49 @@ export function worktreeMcpReachabilityDescriptor() {
|
|
|
436
437
|
},
|
|
437
438
|
};
|
|
438
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* Secret-free remediation hint shared by the worktree command-assets descriptor
|
|
442
|
+
* (BAPI-664). Directs users to rerun start-tickets — the supported provisioning
|
|
443
|
+
* workflow — rather than manually copying or committing the generated command
|
|
444
|
+
* files, which are fill-only, never refreshed, and Git-excluded per worktree.
|
|
445
|
+
*/
|
|
446
|
+
const WORKTREE_COMMAND_ASSETS_HINT = "Re-run start-tickets to provision the packaged Claude command assets " +
|
|
447
|
+
"(.claude/commands/) into this worktree. Do not manually copy or commit the " +
|
|
448
|
+
"generated command files — they are bootstrapped per worktree and Git-excluded.";
|
|
449
|
+
const WORKTREE_COMMAND_ASSETS_INSTALL_HINTS = {
|
|
450
|
+
darwin: WORKTREE_COMMAND_ASSETS_HINT,
|
|
451
|
+
linux: WORKTREE_COMMAND_ASSETS_HINT,
|
|
452
|
+
win32: WORKTREE_COMMAND_ASSETS_HINT,
|
|
453
|
+
};
|
|
454
|
+
/**
|
|
455
|
+
* Doctor-only, strictly read-only probe: does the current worktree contain every
|
|
456
|
+
* packaged Claude slash-command asset under `.claude/commands/`? Delegates to the
|
|
457
|
+
* read-only {@link probeWorktreeCommandAssets} using only `deps.readFile`,
|
|
458
|
+
* `deps.platform`, and `deps.cwd`. Reports an unavailable diagnostic (never a
|
|
459
|
+
* false "present") when the optional read-only filesystem boundary is absent. The
|
|
460
|
+
* probe performs NO writes, Git calls, or process spawns.
|
|
461
|
+
*/
|
|
462
|
+
export function worktreeCommandAssetsDescriptor() {
|
|
463
|
+
return {
|
|
464
|
+
id: "worktree-command-assets",
|
|
465
|
+
label: "Worktree Claude command assets",
|
|
466
|
+
installHint: WORKTREE_COMMAND_ASSETS_INSTALL_HINTS,
|
|
467
|
+
probe: async (deps) => {
|
|
468
|
+
const { readFile } = deps;
|
|
469
|
+
if (!readFile) {
|
|
470
|
+
return {
|
|
471
|
+
found: false,
|
|
472
|
+
detail: "command-asset probe unavailable (no read-only filesystem access)",
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
const result = await probeWorktreeCommandAssets(deps.cwd, {
|
|
476
|
+
readFile,
|
|
477
|
+
platform: deps.platform,
|
|
478
|
+
});
|
|
479
|
+
return { found: result.found, detail: result.detail };
|
|
480
|
+
},
|
|
481
|
+
};
|
|
482
|
+
}
|
|
439
483
|
/**
|
|
440
484
|
* Conservatively normalize a filesystem path for comparison: trim, drop a
|
|
441
485
|
* trailing separator, and resolve `.`/`..` segments via `path.resolve`. Symlink
|
|
@@ -578,6 +622,7 @@ export function getDoctorOnlyPrereqDescriptors(_platform, _env, agent) {
|
|
|
578
622
|
agentDescriptor(agent),
|
|
579
623
|
credentialResolutionDescriptor(),
|
|
580
624
|
worktreeMcpReachabilityDescriptor(),
|
|
625
|
+
worktreeCommandAssetsDescriptor(),
|
|
581
626
|
astGrepDescriptor(),
|
|
582
627
|
lizardDescriptor(),
|
|
583
628
|
ripgrepDescriptor(),
|
package/build/start-tickets.js
CHANGED
|
@@ -61,6 +61,7 @@ import { VERSION } from "./version.generated.js";
|
|
|
61
61
|
import { resolveBapiCredentials, getPrimaryCredentialStorePath, } from "./credential-store.js";
|
|
62
62
|
import { resolveStartTicketsRepoName as resolveSharedStartTicketsRepoName, resolveRequiredStartTicketsRepoName, } from "./start-tickets-repo.js";
|
|
63
63
|
import { provisionMcpRegistrationsForCreatedWorktrees, } from "./mcp-provisioning.js";
|
|
64
|
+
import { provisionCommandsForCreatedWorktrees, } from "./command-provisioning.js";
|
|
64
65
|
import { resolveMcpShimInvocationForRuntime, buildMcpShimCommand, } from "./mcp-server-invocation.js";
|
|
65
66
|
import { existsSync } from "node:fs";
|
|
66
67
|
// Per-OS prerequisite knowledge + low-level command probes live in the shared
|
|
@@ -1851,6 +1852,24 @@ export function buildMcpProvisioningDeps(deps) {
|
|
|
1851
1852
|
}),
|
|
1852
1853
|
};
|
|
1853
1854
|
}
|
|
1855
|
+
/**
|
|
1856
|
+
* Build the command-provisioning filesystem/command boundary from
|
|
1857
|
+
* `StartTicketsDeps` (BAPI-664). Mirrors {@link buildMcpProvisioningDeps}:
|
|
1858
|
+
* real UTF-8 `fs/promises` ops for reads/writes and a recursive `mkdir`, with the
|
|
1859
|
+
* platform, cwd, and list-based command runner inherited from the orchestration
|
|
1860
|
+
* deps (the runner is threaded to `ensureGitInfoExcluded` for linked-worktree
|
|
1861
|
+
* `info/exclude` resolution).
|
|
1862
|
+
*/
|
|
1863
|
+
export function buildCommandProvisioningDeps(deps) {
|
|
1864
|
+
return {
|
|
1865
|
+
readFile: deps.readFile ?? ((filePath) => readFile(filePath, "utf-8")),
|
|
1866
|
+
writeFile: deps.writeFile ?? ((filePath, data) => writeFile(filePath, data, "utf-8")),
|
|
1867
|
+
mkdir: deps.mkdir ?? ((dirPath, options) => mkdir(dirPath, options)),
|
|
1868
|
+
runCommand: deps.runCommand,
|
|
1869
|
+
platform: deps.platform,
|
|
1870
|
+
cwd: deps.cwd,
|
|
1871
|
+
};
|
|
1872
|
+
}
|
|
1854
1873
|
/**
|
|
1855
1874
|
* Tier-3 file-credential materialization seam.
|
|
1856
1875
|
*
|
|
@@ -2791,6 +2810,8 @@ export async function orchestrateStartTickets(deps, options, overrides = {}) {
|
|
|
2791
2810
|
return { ok: false, error: refresh.error };
|
|
2792
2811
|
}
|
|
2793
2812
|
const createWorktreesFn = overrides.createWorktrees ?? createWorktrees;
|
|
2813
|
+
const provisionCommandsFn = overrides.provisionCommands ??
|
|
2814
|
+
((rows, d) => provisionCommandsForCreatedWorktrees(rows, buildCommandProvisioningDeps(d)));
|
|
2794
2815
|
const provisionFn = overrides.provisionMcpRegistrations ??
|
|
2795
2816
|
((rows, d) => provisionMcpRegistrationsForCreatedWorktrees(rows, buildMcpProvisioningDeps(d)));
|
|
2796
2817
|
const materializeFn = overrides.materializeFileCredentials ?? materializeFileCredentialsForCreatedWorktrees;
|
|
@@ -2804,11 +2825,20 @@ export async function orchestrateStartTickets(deps, options, overrides = {}) {
|
|
|
2804
2825
|
const created = options.resumeMode
|
|
2805
2826
|
? await resumeWorktreesFn(deps, options)
|
|
2806
2827
|
: await createWorktreesFn(deps, options, platformConfig.config.worktrunkBinary, effectiveBaseStartPoint);
|
|
2828
|
+
// BAPI-664: bootstrap the packaged Claude command assets into each created OR
|
|
2829
|
+
// resumed worktree FIRST — before MCP registration, credential materialization,
|
|
2830
|
+
// conductor/model routing, or any terminal spawn — so no worker session can
|
|
2831
|
+
// launch without its slash commands. Both the normal-creation and resume-mode
|
|
2832
|
+
// rows pass through this stage; dry runs never reach here (they returned above).
|
|
2833
|
+
// A per-worktree command-bootstrap failure marks only that row `spawn-failed`,
|
|
2834
|
+
// so it is skipped by MCP provisioning and every later spawn step while its
|
|
2835
|
+
// siblings proceed; it never aborts the whole run.
|
|
2836
|
+
const commandProvisioned = await provisionCommandsFn(created, deps);
|
|
2807
2837
|
// Synchronously provision secret-free worktree MCP registrations after
|
|
2808
|
-
//
|
|
2838
|
+
// command bootstrap and before launching the agent tab. Per-worktree
|
|
2809
2839
|
// provisioning failures mark only that row `spawn-failed` (skipped by the
|
|
2810
2840
|
// spawn step below) — they never abort the whole run.
|
|
2811
|
-
const provisioned = await provisionFn(
|
|
2841
|
+
const provisioned = await provisionFn(commandProvisioned, deps);
|
|
2812
2842
|
// Materialize any Tier-3 file credentials AFTER MCP registration provisioning
|
|
2813
2843
|
// and BEFORE tab spawning (currently a pass-through seam; see
|
|
2814
2844
|
// materializeFileCredentialsForCreatedWorktrees).
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// AUTO-GENERATED — do not edit manually. Regenerate with: npm run build
|
|
2
|
-
export const VERSION = "0.2.
|
|
2
|
+
export const VERSION = "0.2.31";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bridge_gpt/mcp-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.31",
|
|
4
4
|
"description": "Bridge API MCP server — exposes Jira endpoints as MCP tools for Claude Code agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"check:version-generated": "node scripts/bundle-version.js && node scripts/check-version-generated.js",
|
|
26
26
|
"postbuild": "node scripts/prepend-shebang.cjs",
|
|
27
27
|
"start": "node build/index.js",
|
|
28
|
-
"test": "node --test --test-force-exit build/pipeline-utils.test.js build/backend-warnings.test.js build/update-check.test.js build/cli-upgrade.test.js build/decision-page-schema.test.js build/decision-page-template.test.js build/bundle-pipelines.test.js build/instructions-contract.test.js build/pipeline-orchestrator-persistence.test.js build/pipeline-orchestrator-execution.test.js build/pipeline-orchestrator-integration.test.js build/index-static.test.js build/config-fields.static.test.js build/request-brainstorm.static.test.js build/execute-plan-instructions.static.test.js build/index-resolvers.test.js build/index-project-root.test.js build/index-pipelines.test.js build/index.test.js build/bridge-config.test.js build/credential-store.test.js build/agent-config-credential-migration.test.js build/mcp-invoke.test.js build/mcp-provisioning.test.js build/mcp-server-invocation.test.js build/third-party-mcp-targets.test.js build/git-ignore-utils.test.js build/credential-materialization.test.js build/mcp-registration-doctor.test.js build/mcp-host-targets.test.js build/mcp-install-state.test.js build/mcp-host-config.test.js build/secret-safety.test.js build/base-ref.test.js build/pr-base-contract.test.js build/start-tickets.test.js build/review-tickets.test.js build/start-tickets-base-branch.test.js build/agent-registry.test.js build/agent-registry.model-routing.test.js build/start-tickets.shell-model-routing.test.js build/start-tickets.bridge-api-model-routing.test.js build/start-tickets.tier-fetch-model-routing.test.js build/start-tickets.resolve-model-routing.test.js build/start-tickets.orchestrate-model-routing.test.js build/start-tickets.routing-diagnostics.test.js build/start-tickets-repo.test.js build/start-tickets-credential-invariants.static.test.js build/credentials-cli.test.js build/start-tickets-prereqs.test.js build/regression-check.test.js build/doctor.test.js build/install-doctor.test.js build/install-bridge.test.js build/install-bridge-invite.test.js build/install-bridge-prompt.test.js build/install-bridge-tools.test.js build/install-bridge-join-static.test.js build/init.test.js build/init-docs.test.js build/resolveUploadAttachment.test.js build/package-static.test.js build/chain-utils.test.js build/chain-orchestrator.test.js build/scheduler-backends/types.test.js build/scheduler-backends/escaping.test.js build/scheduler-backends/launchd.test.js build/scheduler-backends/task-scheduler.test.js build/scheduler-backends/systemd-user.test.js build/scheduler-backends/at-fallback.test.js build/scheduler-backends/index.test.js build/command-catalog.test.js build/scheduled-prompt.test.js build/agent-launchers/claude.test.js build/agent-launchers/cursor.test.js build/agent-launchers/index.test.js build/schedule-store.test.js build/schedule-run.test.js build/setup-epic.test.js build/conductor-bundle-artifacts.test.js build/conductor-bundle-cli.test.js build/agent-capabilities/cli.test.js build/agent-capabilities/runner.test.js build/agent-capabilities/probes.test.js build/agent-capabilities/probe-context.test.js build/agent-capabilities/reporter.test.js build/conductor/taxonomy-and-errors.test.js build/conductor/github-mergeability.test.js build/conductor/merge-conflict-routing.test.js build/conductor/redaction-normalization.test.js build/conductor/claude-hook.test.js build/conductor/git-ci-types.test.js build/conductor/done-gate.test.js build/conductor/git-ci-taxonomy-payload.test.js build/conductor/bridge-api-client.test.js build/conductor/plan.test.js build/conductor/producer-ledger.test.js build/conductor/spec-review-producer.test.js build/conductor/git-producer.test.js build/conductor/git-hooks.test.js build/conductor/store-migration.test.js build/conductor/pr-discovery.test.js build/conductor/pr-ci-producer.test.js build/conductor/pr-review-producer.test.js build/conductor/doctor.test.js build/conductor/deny-enforcement-preflight.test.js build/conductor/errors.test.js build/conductor/store.test.js build/conductor/index-poll-ci-producer.test.js build/start-tickets-conductor.test.js build/start-tickets-conductor.spawn.test.js build/start-tickets-conductor-node-propagation.test.js build/start-tickets.non-mutating-base.test.js build/start-tickets-live-source-guard.test.js build/conductor/worker-ledger-cli.test.js build/conductor/supervisor-config.test.js build/conductor/supervisor-ledger.test.js build/conductor/supervisor-state-reducer.test.js build/conductor/supervisor-housekeeping-projection.test.js build/conductor/supervisor-escalation.test.js build/conductor/supervisor-retired-judgment.static.test.js build/conductor/supervisor-runtime.test.js build/conductor/supervisor-store-projection.test.js build/conductor/supervisor-cli.test.js build/conductor/supervisor-start-tickets.test.js build/conductor/supervisor-message-relay.test.js build/conductor/supervisor-state-message-events.test.js build/conductor/store-message-relay.test.js build/start-tickets-message-relay.test.js build/conductor/event-accessors.test.js build/conductor/merge-ledger.test.js build/conductor/deterministic-completion.static.test.js build/conductor/deterministic-completion.integration.test.js build/conductor/local-merge.test.js build/conductor/local-merge.static.test.js build/conductor/supervisor-merge.test.js build/conductor/bridge-api-merge-client.test.js build/conductor/bridge-api-epic-client.test.js build/conductor/supervisor-merge-runtime-state.test.js build/conductor/epic-state.test.js build/executor/claude-settings.test.js build/executor/cli.test.js build/executor/credentials.test.js build/executor/echo-acceptance.test.js build/executor/env.test.js build/executor/base-branch.test.js build/executor/heartbeat.test.js build/executor/http-client.test.js build/executor/job-runner.test.js build/executor/job-runner.payload-timeout.test.js build/executor/worker-finalization.test.js build/executor/job-runner.static.test.js build/executor/prompt-spec.test.js build/executor/job-types.test.js build/executor/recovery-job.static.test.js build/executor/observation.test.js build/executor/permissions.test.js build/executor/preflight.test.js build/executor/process.test.js build/executor/results.test.js build/executor/runner.test.js build/executor/terminal-mutation.test.js build/executor/worker-command.test.js build/executor/worktree-core.test.js build/executor/worktree.test.js build/executor/job-errors.test.js build/executor/worktree-inspection.test.js build/executor/resume-pre-spawn.test.js build/executor/verdict-artifact.test.js build/executor/worker-log.test.js build/executor/job-log-registry.test.js build/executor/viewer-tabs.test.js build/executor/watch-cli.test.js build/executor/merge-job.test.js build/executor/job-runner.merge.test.js build/executor/worktree-gc.test.js build/executor/runner.job-behaviors.test.js build/conductor/cli-freeze.test.js build/conductor/epic-reconcile.test.js build/conductor/epic-runtime.test.js build/conductor/epic-tick-sequence.test.js build/conductor/epic-runtime-post-action.test.js build/conductor/file-scope-guard.test.js build/conductor/file-scope-guard.integration.test.js build/mcp-profile.test.js build/mcp-profile-registration.test.js build/env-flags.test.js build/bridge-api-urls.test.js build/tool-surface-gating.test.js build/tools-budget.test.js build/visual-diff-worker.test.js build/visual-diff.test.js build/estimate-epic.test.js build/integration/measure-tools.test.js build/sfcc/config.test.js build/sfcc/ocapi-shape.test.js build/sfcc/output.test.js build/sfcc/credentials.test.js build/sfcc/ocapi-write-faults.test.js build/sfcc/write-guard.test.js build/sfcc/write-grants.test.js build/sfcc/write-result.test.js build/sfcc/writes.test.js build/sfcc/writes-system-object-payloads.test.js build/sfcc/writes-payloads.test.js build/sfcc/log-gate.test.js build/sfcc/log-query.test.js && node --experimental-test-module-mocks --test --test-force-exit build/index-heavy-read-truncation.test.js build/index-artifacts.test.js build/automation-progress.test.js build/recovery-formatting.test.js build/wait-for-result.test.js build/ticket-wait-recovery.test.js build/council-wait-recovery.test.js build/index.review-rounds.test.js build/index-brainstorm-filenames.test.js build/index-output-path.test.js build/index-generate-decision-page.test.js build/index-generate-decision-page.integration.test.js build/visual-diff.registration.test.js build/visual-diff.attachment-adapter.test.js build/attachment-download.test.js build/attachment-upload.test.js build/conductor/paths.test.js build/conductor/store-lifecycle.test.js build/conductor/store-queries.test.js build/conductor/tools.test.js build/conductor/cli.test.js build/conductor/security-regressions.test.js build/conductor/git-inspection.test.js build/conductor/tools-done-gate.test.js build/conductor/pr-ci-producer-emit-seam.test.js build/conductor/cli-git-hooks.test.js build/sfcc/client.test.js build/sfcc/tool-wrapper.test.js build/sfcc/setup-status.test.js build/sfcc/permissions.test.js build/sfcc/register.test.js build/sfcc/reads-system-object.test.js build/sfcc/reads-custom-object-def.test.js build/sfcc/reads-site-preference.test.js build/sfcc/writes-system-object.test.js build/sfcc/writes-custom-object-def.test.js build/sfcc/writes-site-preference.test.js build/connect-github.test.js build/connect-github-api.test.js",
|
|
29
|
-
"test:integration": "node --test build/integration/refresh-main.integration.test.js build/integration/start-tickets.integration.test.js build/integration/start-tickets-tier-handoff.integration.test.js build/integration/doctor.integration.test.js build/integration/agent-capabilities.integration.test.js build/integration/conductor-producer.integration.test.js build/integration/conductor-message-relay.integration.test.js build/integration/executor-http-runner.integration.test.js build/integration/executor-job-behaviors.integration.test.js build/integration/executor-recovery-jobs.integration.test.js build/integration/executor-spec-review-prompt.integration.test.js build/integration/resume-pre-spawn.git.integration.test.js build/integration/worker-finalization-origin.integration.test.js build/integration/post-remediation-merge-ci-wait.integration.test.js build/integration/executor-merge-supervision.integration.test.js build/integration/attachment-binary-roundtrip.integration.test.js build/integration/dependent-ticket-fresh-base.integration.test.js build/integration/execute-plan-instructions.integration.test.js build/integration/conductor-bundle-artifacts.integration.test.js build/integration/install-bridge-repo-resolution.integration.test.js build/integration/capability-report-contract.integration.test.js build/integration/request-brainstorm-general.integration.test.js build/integration/request-council-trigger-drop.integration.test.js",
|
|
28
|
+
"test": "node --test --test-force-exit build/pipeline-utils.test.js build/backend-warnings.test.js build/update-check.test.js build/cli-upgrade.test.js build/decision-page-schema.test.js build/decision-page-template.test.js build/bundle-pipelines.test.js build/instructions-contract.test.js build/pipeline-orchestrator-persistence.test.js build/pipeline-orchestrator-execution.test.js build/pipeline-orchestrator-integration.test.js build/index-static.test.js build/config-fields.static.test.js build/request-brainstorm.static.test.js build/execute-plan-instructions.static.test.js build/index-resolvers.test.js build/index-project-root.test.js build/index-pipelines.test.js build/index.test.js build/bridge-config.test.js build/credential-store.test.js build/agent-config-credential-migration.test.js build/mcp-invoke.test.js build/mcp-provisioning.test.js build/mcp-server-invocation.test.js build/third-party-mcp-targets.test.js build/git-ignore-utils.test.js build/command-provisioning.test.js build/command-assets-doctor.test.js build/credential-materialization.test.js build/mcp-registration-doctor.test.js build/mcp-host-targets.test.js build/mcp-install-state.test.js build/mcp-host-config.test.js build/secret-safety.test.js build/base-ref.test.js build/pr-base-contract.test.js build/start-tickets.test.js build/review-tickets.test.js build/start-tickets-base-branch.test.js build/agent-registry.test.js build/agent-registry.model-routing.test.js build/start-tickets.shell-model-routing.test.js build/start-tickets.bridge-api-model-routing.test.js build/start-tickets.tier-fetch-model-routing.test.js build/start-tickets.resolve-model-routing.test.js build/start-tickets.orchestrate-model-routing.test.js build/start-tickets.routing-diagnostics.test.js build/start-tickets-repo.test.js build/start-tickets-credential-invariants.static.test.js build/credentials-cli.test.js build/start-tickets-prereqs.test.js build/regression-check.test.js build/doctor.test.js build/install-doctor.test.js build/install-bridge.test.js build/install-bridge-invite.test.js build/install-bridge-prompt.test.js build/install-bridge-tools.test.js build/install-bridge-join-static.test.js build/init.test.js build/init-docs.test.js build/resolveUploadAttachment.test.js build/package-static.test.js build/chain-utils.test.js build/chain-orchestrator.test.js build/scheduler-backends/types.test.js build/scheduler-backends/escaping.test.js build/scheduler-backends/launchd.test.js build/scheduler-backends/task-scheduler.test.js build/scheduler-backends/systemd-user.test.js build/scheduler-backends/at-fallback.test.js build/scheduler-backends/index.test.js build/command-catalog.test.js build/scheduled-prompt.test.js build/agent-launchers/claude.test.js build/agent-launchers/cursor.test.js build/agent-launchers/index.test.js build/schedule-store.test.js build/schedule-run.test.js build/setup-epic.test.js build/conductor-bundle-artifacts.test.js build/conductor-bundle-cli.test.js build/agent-capabilities/cli.test.js build/agent-capabilities/runner.test.js build/agent-capabilities/probes.test.js build/agent-capabilities/probe-context.test.js build/agent-capabilities/reporter.test.js build/conductor/taxonomy-and-errors.test.js build/conductor/github-mergeability.test.js build/conductor/merge-conflict-routing.test.js build/conductor/redaction-normalization.test.js build/conductor/claude-hook.test.js build/conductor/git-ci-types.test.js build/conductor/done-gate.test.js build/conductor/git-ci-taxonomy-payload.test.js build/conductor/bridge-api-client.test.js build/conductor/plan.test.js build/conductor/producer-ledger.test.js build/conductor/spec-review-producer.test.js build/conductor/git-producer.test.js build/conductor/git-hooks.test.js build/conductor/store-migration.test.js build/conductor/pr-discovery.test.js build/conductor/pr-ci-producer.test.js build/conductor/pr-review-producer.test.js build/conductor/doctor.test.js build/conductor/deny-enforcement-preflight.test.js build/conductor/errors.test.js build/conductor/store.test.js build/conductor/index-poll-ci-producer.test.js build/start-tickets-conductor.test.js build/start-tickets-conductor.spawn.test.js build/start-tickets-conductor-node-propagation.test.js build/start-tickets.non-mutating-base.test.js build/start-tickets-live-source-guard.test.js build/conductor/worker-ledger-cli.test.js build/conductor/supervisor-config.test.js build/conductor/supervisor-ledger.test.js build/conductor/supervisor-state-reducer.test.js build/conductor/supervisor-housekeeping-projection.test.js build/conductor/supervisor-escalation.test.js build/conductor/supervisor-retired-judgment.static.test.js build/conductor/supervisor-runtime.test.js build/conductor/supervisor-store-projection.test.js build/conductor/supervisor-cli.test.js build/conductor/supervisor-start-tickets.test.js build/conductor/supervisor-message-relay.test.js build/conductor/supervisor-state-message-events.test.js build/conductor/store-message-relay.test.js build/start-tickets-message-relay.test.js build/conductor/event-accessors.test.js build/conductor/merge-ledger.test.js build/conductor/deterministic-completion.static.test.js build/conductor/deterministic-completion.integration.test.js build/conductor/local-merge.test.js build/conductor/local-merge.static.test.js build/conductor/supervisor-merge.test.js build/conductor/bridge-api-merge-client.test.js build/conductor/bridge-api-epic-client.test.js build/conductor/supervisor-merge-runtime-state.test.js build/conductor/epic-state.test.js build/executor/claude-settings.test.js build/executor/cli.test.js build/executor/credentials.test.js build/executor/echo-acceptance.test.js build/executor/env.test.js build/executor/base-branch.test.js build/executor/heartbeat.test.js build/executor/http-client.test.js build/executor/job-runner.test.js build/executor/job-runner.payload-timeout.test.js build/executor/worker-finalization.test.js build/executor/job-runner.static.test.js build/executor/prompt-spec.test.js build/executor/job-types.test.js build/executor/recovery-job.static.test.js build/executor/observation.test.js build/executor/permissions.test.js build/executor/preflight.test.js build/executor/process.test.js build/executor/results.test.js build/executor/runner.test.js build/executor/terminal-mutation.test.js build/executor/worker-command.test.js build/executor/worktree-core.test.js build/executor/worktree.test.js build/executor/job-errors.test.js build/executor/worktree-inspection.test.js build/executor/resume-pre-spawn.test.js build/executor/verdict-artifact.test.js build/executor/worker-log.test.js build/executor/job-log-registry.test.js build/executor/viewer-tabs.test.js build/executor/watch-cli.test.js build/executor/merge-job.test.js build/executor/job-runner.merge.test.js build/executor/worktree-gc.test.js build/executor/runner.job-behaviors.test.js build/conductor/cli-freeze.test.js build/conductor/epic-reconcile.test.js build/conductor/epic-runtime.test.js build/conductor/epic-tick-sequence.test.js build/conductor/epic-runtime-post-action.test.js build/conductor/file-scope-guard.test.js build/conductor/file-scope-guard.integration.test.js build/mcp-profile.test.js build/mcp-profile-registration.test.js build/env-flags.test.js build/bridge-api-urls.test.js build/tool-surface-gating.test.js build/tools-budget.test.js build/visual-diff-worker.test.js build/visual-diff.test.js build/estimate-epic.test.js build/integration/measure-tools.test.js build/sfcc/config.test.js build/sfcc/ocapi-shape.test.js build/sfcc/output.test.js build/sfcc/credentials.test.js build/sfcc/ocapi-write-faults.test.js build/sfcc/write-guard.test.js build/sfcc/write-grants.test.js build/sfcc/write-result.test.js build/sfcc/writes.test.js build/sfcc/writes-system-object-payloads.test.js build/sfcc/writes-payloads.test.js build/sfcc/log-gate.test.js build/sfcc/log-query.test.js && node --experimental-test-module-mocks --test --test-force-exit build/index-heavy-read-truncation.test.js build/index-artifacts.test.js build/automation-progress.test.js build/recovery-formatting.test.js build/wait-for-result.test.js build/ticket-wait-recovery.test.js build/council-wait-recovery.test.js build/index.review-rounds.test.js build/index-brainstorm-filenames.test.js build/index-output-path.test.js build/index-generate-decision-page.test.js build/index-generate-decision-page.integration.test.js build/visual-diff.registration.test.js build/visual-diff.attachment-adapter.test.js build/attachment-download.test.js build/attachment-upload.test.js build/conductor/paths.test.js build/conductor/store-lifecycle.test.js build/conductor/store-queries.test.js build/conductor/tools.test.js build/conductor/cli.test.js build/conductor/security-regressions.test.js build/conductor/git-inspection.test.js build/conductor/tools-done-gate.test.js build/conductor/pr-ci-producer-emit-seam.test.js build/conductor/cli-git-hooks.test.js build/sfcc/client.test.js build/sfcc/tool-wrapper.test.js build/sfcc/setup-status.test.js build/sfcc/permissions.test.js build/sfcc/register.test.js build/sfcc/reads-system-object.test.js build/sfcc/reads-custom-object-def.test.js build/sfcc/reads-site-preference.test.js build/sfcc/writes-system-object.test.js build/sfcc/writes-custom-object-def.test.js build/sfcc/writes-site-preference.test.js build/connect-github.test.js build/connect-github-api.test.js",
|
|
29
|
+
"test:integration": "node --test build/integration/refresh-main.integration.test.js build/integration/command-provisioning.integration.test.js build/integration/start-tickets.integration.test.js build/integration/start-tickets-tier-handoff.integration.test.js build/integration/doctor.integration.test.js build/integration/agent-capabilities.integration.test.js build/integration/conductor-producer.integration.test.js build/integration/conductor-message-relay.integration.test.js build/integration/executor-http-runner.integration.test.js build/integration/executor-job-behaviors.integration.test.js build/integration/executor-recovery-jobs.integration.test.js build/integration/executor-spec-review-prompt.integration.test.js build/integration/resume-pre-spawn.git.integration.test.js build/integration/worker-finalization-origin.integration.test.js build/integration/post-remediation-merge-ci-wait.integration.test.js build/integration/executor-merge-supervision.integration.test.js build/integration/attachment-binary-roundtrip.integration.test.js build/integration/dependent-ticket-fresh-base.integration.test.js build/integration/execute-plan-instructions.integration.test.js build/integration/conductor-bundle-artifacts.integration.test.js build/integration/install-bridge-repo-resolution.integration.test.js build/integration/capability-report-contract.integration.test.js build/integration/request-brainstorm-general.integration.test.js build/integration/request-council-trigger-drop.integration.test.js",
|
|
30
30
|
"test:smoke": "node --test build/integration/packaged-cli-smoke.test.js",
|
|
31
31
|
"prepublishOnly": "node scripts/bundle-assets.js && npm run build && node scripts/verify-shebang.cjs"
|
|
32
32
|
},
|