@botiverse/raft-daemon 0.63.4 → 0.63.5-play.20260621140533

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.
@@ -1540,8 +1540,8 @@ var PLAN_CONFIG = {
1540
1540
  displayFeatures: [
1541
1541
  "Channels",
1542
1542
  "Tasks",
1543
- "Unlimited agents on your own computers",
1544
- "Agent Reminders",
1543
+ "Agents on your own computers",
1544
+ "Agent reminders",
1545
1545
  "Basic observability",
1546
1546
  "30 days of message history",
1547
1547
  "100 MB file uploads/month"
@@ -1572,12 +1572,13 @@ var DISPLAY_PLAN_CONFIG = {
1572
1572
  priceCadence: "/ seat pack / month",
1573
1573
  extraAgentPrice: 0,
1574
1574
  displayFeatures: [
1575
- "1 human seat + 10 agent seats per Pro Seat Pack",
1575
+ "Everything in Free",
1576
1576
  "Unlimited message history",
1577
1577
  "Higher file upload limits",
1578
- "Joint Channels",
1578
+ "Joint channels",
1579
1579
  "More professional features coming soon"
1580
1580
  ],
1581
+ displayDescription: "For builders and teams scaling agent collaboration.",
1581
1582
  displayNote: "$17.60 / seat pack / month when billed yearly"
1582
1583
  },
1583
1584
  enterprise: {
@@ -1589,14 +1590,18 @@ var DISPLAY_PLAN_CONFIG = {
1589
1590
  priceCadence: null,
1590
1591
  extraAgentPrice: 0,
1591
1592
  displayFeatures: [
1592
- "Custom commercial terms",
1593
- "Security and compliance review",
1594
- "Dedicated support and onboarding",
1595
- "Custom deployment planning"
1596
- ]
1593
+ "Everything in Pro",
1594
+ "Private deployment options",
1595
+ "SSO and advanced access control",
1596
+ "Dedicated onboarding and rollout support"
1597
+ ],
1598
+ displayDescription: "For advanced deployment and governance needs."
1597
1599
  }
1598
1600
  };
1599
1601
  var FREE_MONTHLY_FILE_UPLOAD_LIMIT_BYTES = 100 * 1024 * 1024;
1602
+ var TRIAL_START_DATE = /* @__PURE__ */ new Date("2026-04-18T00:00:00Z");
1603
+ var TRIAL_END_DATE = /* @__PURE__ */ new Date("2026-06-23T12:00:00Z");
1604
+ var TRIAL_DURATION_DAYS = (TRIAL_END_DATE.getTime() - TRIAL_START_DATE.getTime()) / (24 * 60 * 60 * 1e3);
1600
1605
 
1601
1606
  // src/agentProcessManager.ts
1602
1607
  import { existsSync as existsSync8, mkdirSync as mkdirSync4, readFileSync as readFileSync6, readdirSync as readdirSync4, statSync, writeFileSync as writeFileSync4 } from "fs";
@@ -2582,6 +2587,19 @@ function listLegacySlockStatePaths(slockHome = resolveSlockHome(), homeDir = os.
2582
2587
  return candidates.filter((candidate) => existsSync(candidate.path));
2583
2588
  }
2584
2589
 
2590
+ // src/authEnv.ts
2591
+ var DAEMON_API_KEY_ENV = "SLOCK_MACHINE_API_KEY";
2592
+ var SLOCK_AGENT_TOKEN_ENV = "SLOCK_AGENT_TOKEN";
2593
+ function scrubDaemonAuthEnv(env) {
2594
+ delete env[DAEMON_API_KEY_ENV];
2595
+ return env;
2596
+ }
2597
+ function scrubDaemonChildEnv(env) {
2598
+ delete env[DAEMON_API_KEY_ENV];
2599
+ delete env[SLOCK_AGENT_TOKEN_ENV];
2600
+ return env;
2601
+ }
2602
+
2585
2603
  // src/agentCredentialProxy.ts
2586
2604
  import { randomBytes } from "crypto";
2587
2605
  import http from "http";
@@ -4148,7 +4166,9 @@ var LOOPBACK_NO_PROXY = "127.0.0.1,localhost";
4148
4166
  var CLI_TRANSPORT_TRACE_DIR_ENV = "SLOCK_CLI_TRANSPORT_TRACE_DIR";
4149
4167
  var safePathPart = (value) => value.replace(/[^a-zA-Z0-9_.-]/g, "_");
4150
4168
  var RAW_CREDENTIAL_ENV_DENYLIST = [
4151
- "SLOCK_AGENT_CREDENTIAL_KEY"
4169
+ "SLOCK_AGENT_TOKEN",
4170
+ "SLOCK_AGENT_CREDENTIAL_KEY",
4171
+ "SLOCK_AGENT_CREDENTIAL_KEY_FILE"
4152
4172
  ];
4153
4173
  var WORKSPACE_CLI_TRANSPORT_FILENAMES = [
4154
4174
  "agent-token",
@@ -4500,7 +4520,7 @@ set "SLOCK_AGENT_ACTIVE_CAPABILITIES=${DEFAULT_ACTIVE_CAPABILITIES}"\r
4500
4520
  SLOCK_SERVER_URL: ctx.config.serverUrl,
4501
4521
  PATH: `${slockDir}${path2.delimiter}${process.env.PATH ?? ""}`
4502
4522
  };
4503
- delete spawnEnv.SLOCK_AGENT_TOKEN;
4523
+ scrubDaemonChildEnv(spawnEnv);
4504
4524
  for (const key of RAW_CREDENTIAL_ENV_DENYLIST) {
4505
4525
  delete spawnEnv[key];
4506
4526
  }
@@ -5022,7 +5042,7 @@ function requiresWindowsShell(command, platform = process.platform) {
5022
5042
  }
5023
5043
  function resolveCommandOnPath(command, deps = {}) {
5024
5044
  const platform = deps.platform ?? process.platform;
5025
- const env = withWindowsUserEnvironment(deps.env ?? process.env, deps);
5045
+ const env = scrubDaemonChildEnv({ ...withWindowsUserEnvironment(deps.env ?? process.env, deps) });
5026
5046
  const execFileSyncFn = deps.execFileSyncFn ?? execFileSync;
5027
5047
  const existsSyncFn = deps.existsSyncFn ?? existsSync3;
5028
5048
  if (platform === "win32") {
@@ -5048,7 +5068,7 @@ function firstExistingPath(candidates, deps = {}) {
5048
5068
  return null;
5049
5069
  }
5050
5070
  function readCommandVersion(command, args = [], deps = {}) {
5051
- const env = withWindowsUserEnvironment(deps.env ?? process.env, deps);
5071
+ const env = scrubDaemonChildEnv({ ...withWindowsUserEnvironment(deps.env ?? process.env, deps) });
5052
5072
  const execFileSyncFn = deps.execFileSyncFn ?? execFileSync;
5053
5073
  try {
5054
5074
  const output = normalizeExecOutput(execFileSyncFn(command, [...args, "--version"], {
@@ -7128,11 +7148,11 @@ function detectCursorModels(runCommand = runCursorModelsCommand) {
7128
7148
  return parseCursorModelsOutput(String(result.stdout || ""));
7129
7149
  }
7130
7150
  function buildCursorModelProbeEnv(deps = {}) {
7131
- return withWindowsUserEnvironment({
7151
+ return scrubDaemonChildEnv(withWindowsUserEnvironment({
7132
7152
  ...deps.env ?? process.env,
7133
7153
  FORCE_COLOR: "0",
7134
7154
  NO_COLOR: "1"
7135
- }, deps);
7155
+ }, deps));
7136
7156
  }
7137
7157
  function runCursorModelsCommand() {
7138
7158
  return spawnSync("cursor-agent", ["models"], {
@@ -7188,7 +7208,7 @@ function resolveGeminiSpawn(commandArgs, deps = {}) {
7188
7208
  }
7189
7209
  const execFileSyncFn = deps.execFileSyncFn ?? execFileSync3;
7190
7210
  const existsSyncFn = deps.existsSyncFn ?? existsSync5;
7191
- const env = deps.env ?? process.env;
7211
+ const env = scrubDaemonChildEnv({ ...deps.env ?? process.env });
7192
7212
  const winPath = path8.win32;
7193
7213
  let geminiEntry = null;
7194
7214
  try {
@@ -7325,12 +7345,15 @@ var GeminiDriver = class {
7325
7345
  // src/drivers/kimi.ts
7326
7346
  import { randomUUID as randomUUID2 } from "crypto";
7327
7347
  import { spawn as spawn7 } from "child_process";
7328
- import { existsSync as existsSync6, readFileSync as readFileSync3, writeFileSync as writeFileSync3 } from "fs";
7348
+ import { chmodSync, existsSync as existsSync6, readFileSync as readFileSync3, writeFileSync as writeFileSync3 } from "fs";
7329
7349
  import os4 from "os";
7330
7350
  import path9 from "path";
7331
7351
  var KIMI_WIRE_PROTOCOL_VERSION = "1.3";
7332
7352
  var KIMI_SYSTEM_PROMPT_FILE = ".slock-kimi-system.md";
7333
7353
  var KIMI_AGENT_FILE = ".slock-kimi-agent.yaml";
7354
+ var KIMI_GENERATED_CONFIG_FILE = ".slock-kimi-config.toml";
7355
+ var SLOCK_KIMI_CONFIG_CONTENT_ENV = "SLOCK_KIMI_CONFIG_CONTENT";
7356
+ var SLOCK_KIMI_CONFIG_FILE_ENV = "SLOCK_KIMI_CONFIG_FILE";
7334
7357
  function parseToolArguments(raw) {
7335
7358
  if (typeof raw !== "string") return raw;
7336
7359
  try {
@@ -7339,6 +7362,73 @@ function parseToolArguments(raw) {
7339
7362
  return raw;
7340
7363
  }
7341
7364
  }
7365
+ function readKimiConfigSource(home = os4.homedir(), env = process.env) {
7366
+ const inlineConfig = env[SLOCK_KIMI_CONFIG_CONTENT_ENV];
7367
+ if (inlineConfig && inlineConfig.trim()) {
7368
+ return {
7369
+ raw: inlineConfig,
7370
+ explicitPath: null,
7371
+ sourcePath: SLOCK_KIMI_CONFIG_CONTENT_ENV
7372
+ };
7373
+ }
7374
+ const explicitPath = env[SLOCK_KIMI_CONFIG_FILE_ENV];
7375
+ const configPath = explicitPath && explicitPath.trim() ? explicitPath : path9.join(home, ".kimi", "config.toml");
7376
+ try {
7377
+ return {
7378
+ raw: readFileSync3(configPath, "utf8"),
7379
+ explicitPath: explicitPath && explicitPath.trim() ? explicitPath : null,
7380
+ sourcePath: configPath
7381
+ };
7382
+ } catch {
7383
+ return {
7384
+ raw: null,
7385
+ explicitPath: explicitPath && explicitPath.trim() ? explicitPath : null,
7386
+ sourcePath: configPath
7387
+ };
7388
+ }
7389
+ }
7390
+ function buildKimiSpawnEnv(env = process.env) {
7391
+ const spawnEnv = { ...env, FORCE_COLOR: "0", NO_COLOR: "1" };
7392
+ delete spawnEnv[SLOCK_KIMI_CONFIG_CONTENT_ENV];
7393
+ delete spawnEnv[SLOCK_KIMI_CONFIG_FILE_ENV];
7394
+ return scrubDaemonChildEnv(spawnEnv);
7395
+ }
7396
+ function buildKimiEffectiveEnv(ctx, overrideEnv) {
7397
+ return {
7398
+ ...process.env,
7399
+ ...ctx.config.envVars || {},
7400
+ ...overrideEnv || {}
7401
+ };
7402
+ }
7403
+ function buildKimiLaunchOptions(ctx, opts = {}) {
7404
+ const env = buildKimiEffectiveEnv(ctx, opts.env);
7405
+ const source = readKimiConfigSource(opts.home ?? os4.homedir(), env);
7406
+ const args = [];
7407
+ let configFilePath = null;
7408
+ let configContent = null;
7409
+ if (source.explicitPath) {
7410
+ configFilePath = source.explicitPath;
7411
+ } else if (source.raw !== null && source.sourcePath === SLOCK_KIMI_CONFIG_CONTENT_ENV) {
7412
+ configFilePath = path9.join(ctx.workingDirectory, KIMI_GENERATED_CONFIG_FILE);
7413
+ configContent = source.raw;
7414
+ if (opts.writeGeneratedConfig !== false) {
7415
+ writeFileSync3(configFilePath, source.raw, { encoding: "utf8", mode: 384 });
7416
+ chmodSync(configFilePath, 384);
7417
+ }
7418
+ }
7419
+ if (configFilePath) {
7420
+ args.push("--config-file", configFilePath);
7421
+ }
7422
+ if (ctx.config.model && ctx.config.model !== "default") {
7423
+ args.push("--model", ctx.config.model);
7424
+ }
7425
+ return {
7426
+ args,
7427
+ env: buildKimiSpawnEnv(env),
7428
+ configFilePath,
7429
+ configContent
7430
+ };
7431
+ }
7342
7432
  function resolveKimiSpawn(commandArgs, deps = {}) {
7343
7433
  return {
7344
7434
  command: resolveCommandOnPath("kimi", deps) ?? "kimi",
@@ -7362,7 +7452,25 @@ var KimiDriver = class {
7362
7452
  };
7363
7453
  model = {
7364
7454
  detectedModelsVerifiedAs: "launchable",
7365
- toLaunchSpec: (modelId) => ({ args: ["--model", modelId] })
7455
+ toLaunchSpec: (modelId, ctx, opts) => {
7456
+ if (!ctx) return { args: ["--model", modelId] };
7457
+ const launchCtx = {
7458
+ ...ctx,
7459
+ config: {
7460
+ ...ctx.config,
7461
+ model: modelId
7462
+ }
7463
+ };
7464
+ const launch = buildKimiLaunchOptions(launchCtx, {
7465
+ home: opts?.home,
7466
+ writeGeneratedConfig: false
7467
+ });
7468
+ return {
7469
+ args: launch.args,
7470
+ env: launch.env,
7471
+ configFiles: launch.configFilePath ? [launch.configFilePath] : void 0
7472
+ };
7473
+ }
7366
7474
  };
7367
7475
  supportsStdinNotification = true;
7368
7476
  busyDeliveryMode = "direct";
@@ -7386,21 +7494,23 @@ var KimiDriver = class {
7386
7494
  ` system_prompt_path: ./${KIMI_SYSTEM_PROMPT_FILE}`,
7387
7495
  ""
7388
7496
  ].join("\n"), "utf8");
7497
+ const launch = buildKimiLaunchOptions(ctx);
7389
7498
  const args = [
7390
7499
  "--wire",
7391
7500
  "--yolo",
7392
7501
  "--agent-file",
7393
7502
  agentFilePath,
7394
7503
  "--session",
7395
- this.sessionId
7504
+ this.sessionId,
7505
+ ...launch.args
7396
7506
  ];
7397
7507
  const launchRuntimeFields = runtimeConfigToLaunchFields(ctx.config);
7398
7508
  if (launchRuntimeFields.model && launchRuntimeFields.model !== "default") {
7399
7509
  args.push("--model", launchRuntimeFields.model);
7400
7510
  }
7401
7511
  const spawnEnv = (await prepareCliTransport(ctx, { NO_COLOR: "1" })).spawnEnv;
7402
- const launch = resolveKimiSpawn(args);
7403
- const proc = spawn7(launch.command, launch.args, {
7512
+ const spawnTarget = resolveKimiSpawn(args);
7513
+ const proc = spawn7(spawnTarget.command, spawnTarget.args, {
7404
7514
  cwd: ctx.workingDirectory,
7405
7515
  stdio: ["pipe", "pipe", "pipe"],
7406
7516
  env: spawnEnv,
@@ -7408,7 +7518,7 @@ var KimiDriver = class {
7408
7518
  // and has an 8191-character command-line limit. Kimi's official
7409
7519
  // installer/uv entrypoint is an executable, so launch it directly and
7410
7520
  // keep prompts on stdin / files instead of routing through cmd.exe.
7411
- shell: launch.shell
7521
+ shell: spawnTarget.shell
7412
7522
  });
7413
7523
  proc.stdin?.write(JSON.stringify({
7414
7524
  jsonrpc: "2.0",
@@ -7521,14 +7631,9 @@ var KimiDriver = class {
7521
7631
  return detectKimiModels();
7522
7632
  }
7523
7633
  };
7524
- function detectKimiModels(home = os4.homedir()) {
7525
- const configPath = path9.join(home, ".kimi", "config.toml");
7526
- let raw;
7527
- try {
7528
- raw = readFileSync3(configPath, "utf8");
7529
- } catch {
7530
- return null;
7531
- }
7634
+ function detectKimiModels(home = os4.homedir(), opts = {}) {
7635
+ const raw = readKimiConfigSource(home, opts.env).raw;
7636
+ if (raw === null) return null;
7532
7637
  const models = [];
7533
7638
  const sectionRe = /^\s*\[models(?:\.([^\]]+)|"\.[^"]+"|\."[^"]+")\s*\]\s*$/gm;
7534
7639
  const lineRe = /^\s*\[models\.(.+?)\s*\]\s*$/gm;
@@ -8252,7 +8357,7 @@ function runOpenCodeModelsCommand(home, deps = {}) {
8252
8357
  const platform = deps.platform ?? process.platform;
8253
8358
  const spawnSyncFn = deps.spawnSyncFn ?? spawnSync2;
8254
8359
  const result = spawnSyncFn("opencode", ["models"], {
8255
- env: { ...process.env, HOME: home, FORCE_COLOR: "0", NO_COLOR: "1" },
8360
+ env: scrubDaemonChildEnv({ ...process.env, HOME: home, FORCE_COLOR: "0", NO_COLOR: "1" }),
8256
8361
  encoding: "utf8",
8257
8362
  timeout: 5e3,
8258
8363
  shell: platform === "win32"
@@ -16934,7 +17039,7 @@ var DAEMON_CORE_TRACE_ATTR_CONTRACTS = {
16934
17039
  spanAttrs: ["agentId", "event_kind", "runtime"]
16935
17040
  }
16936
17041
  };
16937
- var DAEMON_CLI_USAGE = "Usage: slock-daemon --server-url <url> --api-key <key>";
17042
+ var DAEMON_CLI_USAGE = `Usage: slock-daemon --server-url <url> (--api-key <key> or ${DAEMON_API_KEY_ENV}=<key>)`;
16938
17043
  var RunnerCredentialMintError2 = class extends Error {
16939
17044
  code;
16940
17045
  retryable;
@@ -16970,9 +17075,9 @@ function runnerCredentialErrorDetail2(error) {
16970
17075
  async function waitForRunnerCredentialRetry2() {
16971
17076
  await new Promise((resolve) => setTimeout(resolve, RUNNER_CREDENTIAL_MINT_RETRY_DELAY_MS2));
16972
17077
  }
16973
- function parseDaemonCliArgs(args) {
17078
+ function parseDaemonCliArgs(args, env = {}) {
16974
17079
  let serverUrl = "";
16975
- let apiKey = "";
17080
+ let apiKey = env[DAEMON_API_KEY_ENV] ?? "";
16976
17081
  for (let i = 0; i < args.length; i++) {
16977
17082
  if (args[i] === "--server-url" && args[i + 1]) serverUrl = args[++i];
16978
17083
  if (args[i] === "--api-key" && args[i + 1]) apiKey = args[++i];
@@ -17009,7 +17114,7 @@ function resolveSlockCliPathOrEmpty(moduleUrl = import.meta.url) {
17009
17114
  }
17010
17115
  async function runBundledSlockCli(argv) {
17011
17116
  process.argv = [process.execPath, "slock", ...argv];
17012
- await import("./dist-4KV4FRQE.js");
17117
+ await import("./dist-KC6QHBPD.js");
17013
17118
  }
17014
17119
  function detectRuntimes(tracer = noopTracer) {
17015
17120
  const ids = [];
@@ -17897,6 +18002,8 @@ var DaemonCore = class {
17897
18002
 
17898
18003
  export {
17899
18004
  subscribeDaemonLogs,
18005
+ DAEMON_API_KEY_ENV,
18006
+ scrubDaemonAuthEnv,
17900
18007
  resolveWorkspaceDirectoryPath,
17901
18008
  scanWorkspaceDirectories,
17902
18009
  deleteWorkspaceDirectory,
package/dist/cli/index.js CHANGED
@@ -15864,8 +15864,8 @@ var PLAN_CONFIG = {
15864
15864
  displayFeatures: [
15865
15865
  "Channels",
15866
15866
  "Tasks",
15867
- "Unlimited agents on your own computers",
15868
- "Agent Reminders",
15867
+ "Agents on your own computers",
15868
+ "Agent reminders",
15869
15869
  "Basic observability",
15870
15870
  "30 days of message history",
15871
15871
  "100 MB file uploads/month"
@@ -15896,12 +15896,13 @@ var DISPLAY_PLAN_CONFIG = {
15896
15896
  priceCadence: "/ seat pack / month",
15897
15897
  extraAgentPrice: 0,
15898
15898
  displayFeatures: [
15899
- "1 human seat + 10 agent seats per Pro Seat Pack",
15899
+ "Everything in Free",
15900
15900
  "Unlimited message history",
15901
15901
  "Higher file upload limits",
15902
- "Joint Channels",
15902
+ "Joint channels",
15903
15903
  "More professional features coming soon"
15904
15904
  ],
15905
+ displayDescription: "For builders and teams scaling agent collaboration.",
15905
15906
  displayNote: "$17.60 / seat pack / month when billed yearly"
15906
15907
  },
15907
15908
  enterprise: {
@@ -15913,14 +15914,18 @@ var DISPLAY_PLAN_CONFIG = {
15913
15914
  priceCadence: null,
15914
15915
  extraAgentPrice: 0,
15915
15916
  displayFeatures: [
15916
- "Custom commercial terms",
15917
- "Security and compliance review",
15918
- "Dedicated support and onboarding",
15919
- "Custom deployment planning"
15920
- ]
15917
+ "Everything in Pro",
15918
+ "Private deployment options",
15919
+ "SSO and advanced access control",
15920
+ "Dedicated onboarding and rollout support"
15921
+ ],
15922
+ displayDescription: "For advanced deployment and governance needs."
15921
15923
  }
15922
15924
  };
15923
15925
  var FREE_MONTHLY_FILE_UPLOAD_LIMIT_BYTES = 100 * 1024 * 1024;
15926
+ var TRIAL_START_DATE = /* @__PURE__ */ new Date("2026-04-18T00:00:00Z");
15927
+ var TRIAL_END_DATE = /* @__PURE__ */ new Date("2026-06-23T12:00:00Z");
15928
+ var TRIAL_DURATION_DAYS = (TRIAL_END_DATE.getTime() - TRIAL_START_DATE.getTime()) / (24 * 60 * 60 * 1e3);
15924
15929
 
15925
15930
  // src/agentCommsCore/bridge.ts
15926
15931
  var AGENT_COMMS_PROTOCOL_VERSION = "agent-comms-core.v1";
package/dist/core.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import {
2
+ DAEMON_API_KEY_ENV,
2
3
  DAEMON_CLI_USAGE,
3
4
  DaemonCore,
4
5
  deleteWorkspaceDirectory,
@@ -10,9 +11,11 @@ import {
10
11
  resolveWorkspaceDirectoryPath,
11
12
  runBundledSlockCli,
12
13
  scanWorkspaceDirectories,
14
+ scrubDaemonAuthEnv,
13
15
  subscribeDaemonLogs
14
- } from "./chunk-RUGCYI7A.js";
16
+ } from "./chunk-BU3OOLV7.js";
15
17
  export {
18
+ DAEMON_API_KEY_ENV,
16
19
  DAEMON_CLI_USAGE,
17
20
  DaemonCore,
18
21
  deleteWorkspaceDirectory,
@@ -24,5 +27,6 @@ export {
24
27
  resolveWorkspaceDirectoryPath,
25
28
  runBundledSlockCli,
26
29
  scanWorkspaceDirectories,
30
+ scrubDaemonAuthEnv,
27
31
  subscribeDaemonLogs
28
32
  };
@@ -15668,8 +15668,8 @@ var PLAN_CONFIG = {
15668
15668
  displayFeatures: [
15669
15669
  "Channels",
15670
15670
  "Tasks",
15671
- "Unlimited agents on your own computers",
15672
- "Agent Reminders",
15671
+ "Agents on your own computers",
15672
+ "Agent reminders",
15673
15673
  "Basic observability",
15674
15674
  "30 days of message history",
15675
15675
  "100 MB file uploads/month"
@@ -15700,12 +15700,13 @@ var DISPLAY_PLAN_CONFIG = {
15700
15700
  priceCadence: "/ seat pack / month",
15701
15701
  extraAgentPrice: 0,
15702
15702
  displayFeatures: [
15703
- "1 human seat + 10 agent seats per Pro Seat Pack",
15703
+ "Everything in Free",
15704
15704
  "Unlimited message history",
15705
15705
  "Higher file upload limits",
15706
- "Joint Channels",
15706
+ "Joint channels",
15707
15707
  "More professional features coming soon"
15708
15708
  ],
15709
+ displayDescription: "For builders and teams scaling agent collaboration.",
15709
15710
  displayNote: "$17.60 / seat pack / month when billed yearly"
15710
15711
  },
15711
15712
  enterprise: {
@@ -15717,14 +15718,18 @@ var DISPLAY_PLAN_CONFIG = {
15717
15718
  priceCadence: null,
15718
15719
  extraAgentPrice: 0,
15719
15720
  displayFeatures: [
15720
- "Custom commercial terms",
15721
- "Security and compliance review",
15722
- "Dedicated support and onboarding",
15723
- "Custom deployment planning"
15724
- ]
15721
+ "Everything in Pro",
15722
+ "Private deployment options",
15723
+ "SSO and advanced access control",
15724
+ "Dedicated onboarding and rollout support"
15725
+ ],
15726
+ displayDescription: "For advanced deployment and governance needs."
15725
15727
  }
15726
15728
  };
15727
15729
  var FREE_MONTHLY_FILE_UPLOAD_LIMIT_BYTES = 100 * 1024 * 1024;
15730
+ var TRIAL_START_DATE = /* @__PURE__ */ new Date("2026-04-18T00:00:00Z");
15731
+ var TRIAL_END_DATE = /* @__PURE__ */ new Date("2026-06-23T12:00:00Z");
15732
+ var TRIAL_DURATION_DAYS = (TRIAL_END_DATE.getTime() - TRIAL_START_DATE.getTime()) / (24 * 60 * 60 * 1e3);
15728
15733
  var AGENT_COMMS_PROTOCOL_VERSION = "agent-comms-core.v1";
15729
15734
  var AGENT_PROOF_SCHEMA_VERSION = "agent-proof.v1";
15730
15735
  var AgentCommsBridgeLockError = class extends Error {
package/dist/index.js CHANGED
@@ -2,11 +2,13 @@
2
2
  import {
3
3
  DAEMON_CLI_USAGE,
4
4
  DaemonCore,
5
- parseDaemonCliArgs
6
- } from "./chunk-RUGCYI7A.js";
5
+ parseDaemonCliArgs,
6
+ scrubDaemonAuthEnv
7
+ } from "./chunk-BU3OOLV7.js";
7
8
 
8
9
  // src/index.ts
9
- var parsedArgs = parseDaemonCliArgs(process.argv.slice(2));
10
+ var parsedArgs = parseDaemonCliArgs(process.argv.slice(2), process.env);
11
+ scrubDaemonAuthEnv(process.env);
10
12
  if (!parsedArgs) {
11
13
  console.error(DAEMON_CLI_USAGE);
12
14
  process.exit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/raft-daemon",
3
- "version": "0.63.4",
3
+ "version": "0.63.5-play.20260621140533",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "raft-daemon": "dist/raft-daemon.js",