@haven_ai/connect 0.2.0-alpha.0 → 0.2.1-alpha.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.
package/dist/index.d.cts CHANGED
@@ -738,7 +738,7 @@ type WiringCollisionResolution = {
738
738
  action: 'abort';
739
739
  };
740
740
 
741
- declare const CONNECTOR_VERSION = "0.2.0-alpha.0";
741
+ declare const CONNECTOR_VERSION = "0.2.1-alpha.0";
742
742
  interface ConnectOptions {
743
743
  setupToken: string;
744
744
  apiBaseUrl: string;
@@ -1138,11 +1138,11 @@ declare function isConnectError(err: unknown): err is ConnectError;
1138
1138
 
1139
1139
  declare const MCP_RUNTIME_MANIFEST: {
1140
1140
  readonly mcpPackage: "@haven_ai/mcp";
1141
- readonly mcpVersion: "0.2.0-alpha.0";
1141
+ readonly mcpVersion: "0.2.1-alpha.0";
1142
1142
  readonly sdkPackage: "@haven_ai/sdk";
1143
- readonly sdkVersion: "0.2.0-alpha.0";
1143
+ readonly sdkVersion: "0.2.1-alpha.0";
1144
1144
  readonly signerPackage: "@haven_ai/signer";
1145
- readonly signerVersion: "0.2.0-alpha.0";
1145
+ readonly signerVersion: "0.2.1-alpha.0";
1146
1146
  readonly minimumNodeVersion: "22.0.0";
1147
1147
  readonly supportedClients: readonly ["codex-cli", "codex-desktop", "claude-code"];
1148
1148
  readonly requiredTools: readonly string[];
package/dist/index.d.ts CHANGED
@@ -738,7 +738,7 @@ type WiringCollisionResolution = {
738
738
  action: 'abort';
739
739
  };
740
740
 
741
- declare const CONNECTOR_VERSION = "0.2.0-alpha.0";
741
+ declare const CONNECTOR_VERSION = "0.2.1-alpha.0";
742
742
  interface ConnectOptions {
743
743
  setupToken: string;
744
744
  apiBaseUrl: string;
@@ -1138,11 +1138,11 @@ declare function isConnectError(err: unknown): err is ConnectError;
1138
1138
 
1139
1139
  declare const MCP_RUNTIME_MANIFEST: {
1140
1140
  readonly mcpPackage: "@haven_ai/mcp";
1141
- readonly mcpVersion: "0.2.0-alpha.0";
1141
+ readonly mcpVersion: "0.2.1-alpha.0";
1142
1142
  readonly sdkPackage: "@haven_ai/sdk";
1143
- readonly sdkVersion: "0.2.0-alpha.0";
1143
+ readonly sdkVersion: "0.2.1-alpha.0";
1144
1144
  readonly signerPackage: "@haven_ai/signer";
1145
- readonly signerVersion: "0.2.0-alpha.0";
1145
+ readonly signerVersion: "0.2.1-alpha.0";
1146
1146
  readonly minimumNodeVersion: "22.0.0";
1147
1147
  readonly supportedClients: readonly ["codex-cli", "codex-desktop", "claude-code"];
1148
1148
  readonly requiredTools: readonly string[];
package/dist/index.js CHANGED
@@ -549,9 +549,9 @@ var init_runtime_manifest = __esm({
549
549
  mcpPackage: "@haven_ai/mcp",
550
550
  mcpVersion: MCP_VERSION,
551
551
  sdkPackage: "@haven_ai/sdk",
552
- sdkVersion: "0.2.0-alpha.0",
552
+ sdkVersion: "0.2.1-alpha.0",
553
553
  signerPackage: "@haven_ai/signer",
554
- signerVersion: "0.2.0-alpha.0",
554
+ signerVersion: "0.2.1-alpha.0",
555
555
  // Sourced from the SDK, never a literal (#1161). This field read '20.0.0'
556
556
  // while every package's `engines` said `>=24` and the docs said `>=24.0.0`,
557
557
  // so the guard that was supposed to enforce the floor waved Node v23 through
@@ -2657,7 +2657,7 @@ async function installRuntime(input, deps = {}) {
2657
2657
  (signerProbe === void 0 || signerProbe.status === "ok");
2658
2658
  const restartRequired = configResult.restartRequired || restartRequiredForRuntime(runtime, deps.env);
2659
2659
  const errorCode = configResult.errorCode ?? (configResult.runtimeMcpMode === "local_stdio" ? localMcpErrorCode(signerCredentialReady, localMcpConsent, localMcpProbe?.status) : hostedMcpErrorCode(configResult.hostedConfigured, hostedProbe.status) ?? signerConsentErrorCode(signerCredentialReady, signerConsent) ?? signerProbeErrorCode(signerProbe));
2660
- const hostedProbeMessages = configResult.hostedConfigured && hostedProbe.status !== "ok" ? [`Hosted Haven MCP probe failed: ${hostedProbe.status}.`] : configResult.hostedConfigured ? ["Verified hosted Haven MCP tools with a read-only handshake."] : [];
2660
+ const hostedProbeMessages = configResult.hostedConfigured && hostedProbe.status !== "ok" ? [`Hosted Haven MCP probe failed: ${hostedProbe.status}.`] : configResult.hostedConfigured ? ["Verified that the hosted Haven MCP tools endpoint responds to a read-only handshake."] : [];
2661
2661
  const signerProbeMessages = signerProbe ? signerProbe.status === "ok" ? ["Verified local Haven signer with a stdio handshake."] : [
2662
2662
  `Local Haven signer handshake failed: ${signerProbe.status}.`,
2663
2663
  `Re-run \`${connectorRerunCommand()}\` to repair the signer setup.`
@@ -3707,14 +3707,17 @@ async function checksForAgent(entry, input, deps) {
3707
3707
  ...matches ? {} : { repair: `Run: ${RERUN} --doctor --repair --runtime ${input.runtime} with the same HAVEN_*_SPEC variables set.` }
3708
3708
  });
3709
3709
  } else {
3710
- const matches = await installedRuntimeMatches(sidecar.runtime_directory, sidecar.cli_path);
3710
+ const intact = await installedRuntimeMatchesVersions(sidecar.runtime_directory, sidecar.cli_path, {
3711
+ signerVersion: sidecar.signer_version,
3712
+ sdkVersion: sidecar.sdk_version
3713
+ });
3711
3714
  const versionOk = sidecar.signer_version === MCP_RUNTIME_MANIFEST.signerVersion;
3712
- const ok = matches && versionOk;
3715
+ const ok = intact && versionOk;
3713
3716
  checks.push({
3714
3717
  id: "signer_runtime",
3715
3718
  label: "Signer runtime (preinstalled wrapper)",
3716
3719
  ok,
3717
- detail: ok ? `Installed ${sidecar.signer_package}@${sidecar.signer_version} at ${sidecar.runtime_directory}` : matches ? `Installed version ${sidecar.signer_version} does not match the connector's pinned ${MCP_RUNTIME_MANIFEST.signerVersion}.` : `Runtime directory is stale or empty (${sidecar.runtime_directory}) \u2014 the CLI or package versions are missing.`,
3720
+ detail: ok ? `Installed ${sidecar.signer_package}@${sidecar.signer_version} at ${sidecar.runtime_directory}` : intact ? `Installed version ${sidecar.signer_version} does not match the connector's pinned ${MCP_RUNTIME_MANIFEST.signerVersion} \u2014 intact, but outdated.` : `Runtime directory is stale or empty (${sidecar.runtime_directory}) \u2014 the CLI or package versions are missing.`,
3718
3721
  ...ok ? {} : { repair: `Run: ${RERUN} --doctor --repair --runtime ${input.runtime}` }
3719
3722
  });
3720
3723
  }
@@ -3727,9 +3730,9 @@ async function checksForAgent(entry, input, deps) {
3727
3730
  id: "hosted_mcp",
3728
3731
  label: "Hosted Haven MCP",
3729
3732
  ok: probe.status === "ok",
3730
- detail: probe.status === "ok" ? `Reachable and authorized (${hostedUrl}).` : `Probe failed: ${probe.status} (${hostedUrl}).`,
3733
+ detail: probe.status === "ok" ? `MCP tools endpoint is reachable (${hostedUrl}).` : `MCP tools endpoint probe failed: ${probe.status} (${hostedUrl}).`,
3731
3734
  ...probe.status === "ok" ? {} : {
3732
- repair: probe.status === "unauthorized" ? `The stored API key was rejected \u2014 re-run the full setup with a fresh token: ${RERUN} --setup <token>.` : "Check network access to the hosted MCP URL, then re-run --doctor."
3735
+ repair: "Check network access and runtime configuration for the hosted MCP URL, then re-run --doctor."
3733
3736
  }
3734
3737
  });
3735
3738
  } else {
@@ -3963,14 +3966,17 @@ async function runDoctor(input, deps = {}) {
3963
3966
  const identity = await readIdentity(entry.directory);
3964
3967
  const tombstone = await readAgentTombstone(entry.directory);
3965
3968
  const otherAgent = entry.agentId ?? basename(entry.directory);
3966
- const otherUrl = identity?.hosted_mcp_url ?? (identity?.api_url ? `${identity.api_url}/mcp` : void 0);
3967
- if (!identity?.api_key || !otherUrl) {
3969
+ if (!identity?.api_key || !identity.api_url) {
3968
3970
  if (tombstone) retired.push(`${otherAgent} (retired ${tombstone.retired_at})`);
3969
- else unverifiable.push(`${otherAgent} (no stored key/URL to probe)`);
3971
+ else unverifiable.push(`${otherAgent} (no stored key/API URL to probe)`);
3970
3972
  continue;
3971
3973
  }
3972
3974
  const suffix = tombstone ? " [tombstoned \u2014 key material still present]" : "";
3973
- const probe = await (deps.probeHosted ?? probeHostedMcpTools)(identity.api_key, otherUrl, deps.fetch);
3975
+ const probe = await (deps.probeHostedIdentity ?? probeHostedAgentIdentity)(
3976
+ identity.api_key,
3977
+ identity.api_url,
3978
+ deps.fetch
3979
+ );
3974
3980
  if (probe.status === "ok") live.push({ label: `${otherAgent}${suffix}`, entry });
3975
3981
  else if (probe.status === "unauthorized") revoked.push(`${otherAgent}${suffix}`);
3976
3982
  else unverifiable.push(`${otherAgent} (${probe.status})${suffix}`);
@@ -4414,7 +4420,7 @@ async function pathExists2(path) {
4414
4420
  init_unwire();
4415
4421
  init_local_mcp_runtime();
4416
4422
  init_runtime_manifest();
4417
- var CONNECTOR_VERSION = "0.2.0-alpha.0";
4423
+ var CONNECTOR_VERSION = "0.2.1-alpha.0";
4418
4424
  var CONNECT_OUTCOME_SCHEMA_VERSION = 1;
4419
4425
  var failureOutcomesByError = /* @__PURE__ */ new WeakMap();
4420
4426
  function failureOutcomeFor(runtimeHint, error) {