@amaster.ai/employee-runtime-connector 0.1.1-beta.37 → 0.1.1-beta.39

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.
@@ -3148,6 +3148,29 @@ function createManagedPiMcpProfileApi(options = {}) {
3148
3148
  }
3149
3149
  return { ...env, ...record6(commandEnv) };
3150
3150
  }
3151
+ function sourceAcquisitionBrowserEnvironment(sourceAcquisition, baseEnv) {
3152
+ const env = {
3153
+ PI_BROWSER_USE_RUNTIME_READ_POLICY: "required"
3154
+ };
3155
+ if (sourceAcquisition?.profile?.transport?.browserMode !== "isolated") return env;
3156
+ const executable = typeof baseEnv?.AMASTER_BROWSER_EXECUTABLE_PATH === "string" ? baseEnv.AMASTER_BROWSER_EXECUTABLE_PATH.trim() : "";
3157
+ if (!executable || !isAbsolute2(executable)) {
3158
+ throw new Error("source_acquisition_browser_executable_unavailable");
3159
+ }
3160
+ let stat;
3161
+ try {
3162
+ stat = statSync2(executable);
3163
+ } catch {
3164
+ throw new Error("source_acquisition_browser_executable_unavailable");
3165
+ }
3166
+ if (!stat.isFile() || (stat.mode & 73) === 0) {
3167
+ throw new Error("source_acquisition_browser_executable_unavailable");
3168
+ }
3169
+ return {
3170
+ ...env,
3171
+ CHROME_BIN: executable
3172
+ };
3173
+ }
3151
3174
  function projectMcpConfigHasContent(filePath) {
3152
3175
  if (!existsSync3(filePath)) return false;
3153
3176
  let parsed;
@@ -3684,9 +3707,7 @@ ${result3.stderr ?? ""}`, "Pi", MINIMUM_PI_VERSION);
3684
3707
  AMASTER_PI_EFFECTIVE_TOOLS_CACHE: directAttestationInput.cachePath,
3685
3708
  AMASTER_PI_EFFECTIVE_TOOLS_CONFIG: directAttestationInput.configPath
3686
3709
  } : {},
3687
- ...input.sourceAcquisition ? {
3688
- PI_BROWSER_USE_RUNTIME_READ_POLICY: "required"
3689
- } : {}
3710
+ ...input.sourceAcquisition ? sourceAcquisitionBrowserEnvironment(input.sourceAcquisition, input.baseEnv) : {}
3690
3711
  };
3691
3712
  const spawnIdentity = typeof input.prepareExecutorAccess === "function" ? input.prepareExecutorAccess({ profileRoot, workspaceRoot: cwd }) : null;
3692
3713
  const executorAttestation = attestPi(
@@ -6471,7 +6492,8 @@ var CAPABILITIES = [
6471
6492
  "model_call_output_contract_v1",
6472
6493
  "run_cancel",
6473
6494
  "run_terminate",
6474
- "logs_cost_workspace_status"
6495
+ "logs_cost_workspace_status",
6496
+ "source_acquisition_v1"
6475
6497
  ];
6476
6498
  var RUNNER_KIND_CLOUD_MANAGED = "cloud_managed";
6477
6499
  var RUNNER_KIND_DESKTOP_DELEGATED = "desktop_delegated";
@@ -9667,7 +9689,7 @@ var source_acquisition_compatibility_default = {
9667
9689
  };
9668
9690
 
9669
9691
  // src/amaster-runtime-daemon.mjs
9670
- var CONNECTOR_VERSION = "0.1.1-beta.37";
9692
+ var CONNECTOR_VERSION = "0.1.1-beta.39";
9671
9693
  var CONNECTOR_CONTRACT_VERSION = "2026-06-04.v1";
9672
9694
  var SOURCE_ACQUISITION_CAPABILITY = source_acquisition_compatibility_default.profileVersion;
9673
9695
  var SOURCE_ACQUISITION_PROFILE_VERSION = source_acquisition_compatibility_default.profileVersion;
@@ -10134,6 +10156,16 @@ function sourceAcquisitionPackageMetadata(packageName) {
10134
10156
  const metadata = readJsonFile2(packagePath);
10135
10157
  return metadata.name === packageName && readString(metadata.version) ? metadata : null;
10136
10158
  }
10159
+ function sourceAcquisitionBrowserExecutableReady() {
10160
+ const executable = readString(process.env.AMASTER_BROWSER_EXECUTABLE_PATH);
10161
+ if (!executable || !isAbsolute6(executable)) return false;
10162
+ try {
10163
+ const stat = statSync8(executable);
10164
+ return stat.isFile() && (stat.mode & 73) !== 0;
10165
+ } catch {
10166
+ return false;
10167
+ }
10168
+ }
10137
10169
  function sourceAcquisitionRuntimeReadiness(config) {
10138
10170
  const unavailable = (reason) => ({ ready: false, reason });
10139
10171
  const piExecutor = config.executors.find((executor) => executor.kind === "pi");
@@ -10154,6 +10186,9 @@ function sourceAcquisitionRuntimeReadiness(config) {
10154
10186
  if (adapters.length === 0 || adapters.some((adapter) => ![SOURCE_ACQUISITION_HEADLESS_ADAPTER, SOURCE_ACQUISITION_DESKTOP_ADAPTER].includes(adapter))) {
10155
10187
  return unavailable("source_acquisition_adapter_attestation_invalid");
10156
10188
  }
10189
+ if (adapters.includes(SOURCE_ACQUISITION_HEADLESS_ADAPTER) && !sourceAcquisitionBrowserExecutableReady()) {
10190
+ return unavailable("source_acquisition_browser_executable_unavailable");
10191
+ }
10157
10192
  const connectorDigest = readString(process.env.AMASTER_SOURCE_ACQUISITION_CONNECTOR_DIGEST);
10158
10193
  if (!connectorDigest || !/^[a-f0-9]{64}$/.test(connectorDigest)) {
10159
10194
  return unavailable("source_acquisition_connector_digest_unavailable");
@@ -6,7 +6,7 @@ import { basename, dirname, join, resolve } from "node:path";
6
6
  import { homedir, hostname } from "node:os";
7
7
  import { fileURLToPath } from "node:url";
8
8
 
9
- const CONNECTOR_VERSION = "0.1.1-beta.37";
9
+ const CONNECTOR_VERSION = "0.1.1-beta.39";
10
10
 
11
11
  const CAPABILITIES = [
12
12
  "remote_registration",
@@ -20,6 +20,7 @@ const CAPABILITIES = [
20
20
  "run_cancel",
21
21
  "run_terminate",
22
22
  "logs_cost_workspace_status",
23
+ "source_acquisition_v1",
23
24
  ];
24
25
 
25
26
  const CONFIG_KEY_MAP = new Map([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amaster.ai/employee-runtime-connector",
3
- "version": "0.1.1-beta.37",
3
+ "version": "0.1.1-beta.39",
4
4
  "description": "MirrorX runtime connector CLI and daemon",
5
5
  "license": "MIT",
6
6
  "type": "module",