signetai 0.78.1 → 0.78.2

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 (57) hide show
  1. package/dashboard/_app/immutable/chunks/{CPxvKR7V.js → 2MRzfVP3.js} +1 -1
  2. package/dashboard/_app/immutable/chunks/{DV8wGmC8.js → 3MTuhkkM.js} +1 -1
  3. package/dashboard/_app/immutable/chunks/{38ZgouNY.js → 7pObTy5Z.js} +1 -1
  4. package/dashboard/_app/immutable/chunks/{CRUduKA7.js → 8qq9odk9.js} +1 -1
  5. package/dashboard/_app/immutable/chunks/{CV4ykY_o.js → B82MekTh.js} +1 -1
  6. package/dashboard/_app/immutable/chunks/{D1iopvlw.js → BHvXyetp.js} +1 -1
  7. package/dashboard/_app/immutable/chunks/{DIHXSfCj.js → BLrn3yUI.js} +1 -1
  8. package/dashboard/_app/immutable/chunks/{D_Im5aZI.js → BMHg4p9s.js} +1 -1
  9. package/dashboard/_app/immutable/chunks/{0KLSww2g.js → BX1Yz7rd.js} +1 -1
  10. package/dashboard/_app/immutable/chunks/{BeURViHA.js → BXXcrVDk.js} +1 -1
  11. package/dashboard/_app/immutable/chunks/{glFZwsPz.js → Bf45f0Vp.js} +1 -1
  12. package/dashboard/_app/immutable/chunks/{IzHcInW5.js → BjFLqtWT.js} +1 -1
  13. package/dashboard/_app/immutable/chunks/{DzCuXTzC.js → BnRD8JUX.js} +1 -1
  14. package/dashboard/_app/immutable/chunks/{BJ51EAZe.js → Bo0KuYql.js} +1 -1
  15. package/dashboard/_app/immutable/chunks/{C4BUOwe9.js → C2EsmaBq.js} +1 -1
  16. package/dashboard/_app/immutable/chunks/{B30RiZBJ.js → C6Ut0qMj.js} +1 -1
  17. package/dashboard/_app/immutable/chunks/{Dsqtk7bd.js → CAzEUj7-.js} +1 -1
  18. package/dashboard/_app/immutable/chunks/{BqfXf-fl.js → CCS36Mqc.js} +1 -1
  19. package/dashboard/_app/immutable/chunks/{C-uvJkcI.js → CH07uMzE.js} +1 -1
  20. package/dashboard/_app/immutable/chunks/{dt7gUNCK.js → CQlsEtmr.js} +2 -2
  21. package/dashboard/_app/immutable/chunks/{BH7nybVy.js → CRs_2u26.js} +1 -1
  22. package/dashboard/_app/immutable/chunks/{DlYRznmm.js → CYGmkkOT.js} +1 -1
  23. package/dashboard/_app/immutable/chunks/{B8mOiZbS.js → Ca7ofCGO.js} +1 -1
  24. package/dashboard/_app/immutable/chunks/{Bs-AEdPz.js → CaQOFuOW.js} +1 -1
  25. package/dashboard/_app/immutable/chunks/{bWI-Iqpw.js → Cfzanl-M.js} +1 -1
  26. package/dashboard/_app/immutable/chunks/{Blf9RMze.js → Cvtb1Uv1.js} +1 -1
  27. package/dashboard/_app/immutable/chunks/{BXCFavez.js → D2L-5-73.js} +3 -3
  28. package/dashboard/_app/immutable/chunks/{B3FwM7BH.js → D4fMMG5j.js} +1 -1
  29. package/dashboard/_app/immutable/chunks/{WXIYzLgc.js → D4j6_yDm.js} +1 -1
  30. package/dashboard/_app/immutable/chunks/{Dwe7h3sn.js → D7-Y1GbH.js} +1 -1
  31. package/dashboard/_app/immutable/chunks/{oAuTYnKl.js → D7kvLQQv.js} +1 -1
  32. package/dashboard/_app/immutable/chunks/{DOjzHP12.js → D7ozeA5b.js} +1 -1
  33. package/dashboard/_app/immutable/chunks/{BuF3zyNC.js → D9AMLR_o.js} +1 -1
  34. package/dashboard/_app/immutable/chunks/{D29iOQmB.js → DMYKaFD3.js} +1 -1
  35. package/dashboard/_app/immutable/chunks/{B8bNx4DM.js → DP2Cqb23.js} +1 -1
  36. package/dashboard/_app/immutable/chunks/{vjJwAaWg.js → DP3h6pcQ.js} +1 -1
  37. package/dashboard/_app/immutable/chunks/{C0t9wwW-.js → DPqWqYTP.js} +1 -1
  38. package/dashboard/_app/immutable/chunks/{DuHNH2Hq.js → DW-0HYki.js} +1 -1
  39. package/dashboard/_app/immutable/chunks/{N-hxVXSQ.js → DWi5AdTB.js} +1 -1
  40. package/dashboard/_app/immutable/chunks/{C6gzeD0O.js → Dg17Auac.js} +1 -1
  41. package/dashboard/_app/immutable/chunks/{C2eCPaQX.js → Sbdhs5rk.js} +1 -1
  42. package/dashboard/_app/immutable/chunks/{C6tvqo-R.js → TDeGgAzG.js} +1 -1
  43. package/dashboard/_app/immutable/chunks/{Dw5ER7C2.js → cLV2Mo98.js} +1 -1
  44. package/dashboard/_app/immutable/chunks/{5f7Dy_Sf.js → gnFq108l.js} +1 -1
  45. package/dashboard/_app/immutable/chunks/{XUPnRvSO.js → otBz_bAw.js} +1 -1
  46. package/dashboard/_app/immutable/chunks/{jr1iw_Y8.js → u_Tqmrjo.js} +1 -1
  47. package/dashboard/_app/immutable/chunks/{Cdb7OGvn.js → ycjTzGx9.js} +1 -1
  48. package/dashboard/_app/immutable/entry/{app.DEQhXvQP.js → app.D33Fg_EX.js} +2 -2
  49. package/dashboard/_app/immutable/entry/start.CKfFW3OZ.js +1 -0
  50. package/dashboard/_app/immutable/nodes/{1.BE9YBJBe.js → 1.CixhrL0r.js} +1 -1
  51. package/dashboard/_app/immutable/nodes/2.BF93CE4w.js +1 -0
  52. package/dashboard/_app/version.json +1 -1
  53. package/dashboard/index.html +6 -6
  54. package/dist/daemon.js +217 -60
  55. package/package.json +1 -1
  56. package/dashboard/_app/immutable/entry/start.nCih2axK.js +0 -1
  57. package/dashboard/_app/immutable/nodes/2.Ct2iUe2p.js +0 -1
package/dist/daemon.js CHANGED
@@ -809,6 +809,7 @@ import { existsSync as existsSync9, readFileSync as readFileSync6, writeFileSync
809
809
  import { join as join10 } from "path";
810
810
  import { existsSync as existsSync10, readFileSync as readFileSync7 } from "fs";
811
811
  import { spawnSync } from "child_process";
812
+ import { homedir as homedir5 } from "os";
812
813
  import { join as join11 } from "path";
813
814
  function up(db) {
814
815
  db.exec(`
@@ -3515,6 +3516,71 @@ function getSkillsRunnerCommand(family, skillsArgs) {
3515
3516
  };
3516
3517
  }
3517
3518
  }
3519
+ function resolveGlobalPackagePath(family, packageName) {
3520
+ try {
3521
+ switch (family) {
3522
+ case "bun": {
3523
+ const bunGlobal = join11(process.env.BUN_INSTALL ?? join11(homedir5(), ".bun"), "install", "global", "node_modules", packageName);
3524
+ if (existsSync10(bunGlobal))
3525
+ return bunGlobal;
3526
+ return;
3527
+ }
3528
+ case "npm": {
3529
+ const result = spawnSync("npm", ["root", "-g"], {
3530
+ encoding: "utf-8",
3531
+ timeout: 1e4,
3532
+ windowsHide: true
3533
+ });
3534
+ if (result.status === 0 && result.stdout.trim()) {
3535
+ const candidate = join11(result.stdout.trim(), packageName);
3536
+ if (existsSync10(candidate))
3537
+ return candidate;
3538
+ }
3539
+ return;
3540
+ }
3541
+ case "pnpm": {
3542
+ const result = spawnSync("pnpm", ["root", "-g"], {
3543
+ encoding: "utf-8",
3544
+ timeout: 1e4,
3545
+ windowsHide: true
3546
+ });
3547
+ if (result.status === 0 && result.stdout.trim()) {
3548
+ const candidate = join11(result.stdout.trim(), packageName);
3549
+ if (existsSync10(candidate))
3550
+ return candidate;
3551
+ }
3552
+ return;
3553
+ }
3554
+ case "yarn": {
3555
+ const versionResult = spawnSync("yarn", ["--version"], {
3556
+ encoding: "utf-8",
3557
+ timeout: 5000,
3558
+ windowsHide: true
3559
+ });
3560
+ const isClassic = versionResult.status === 0 && /^1\./.test(versionResult.stdout.trim());
3561
+ if (isClassic) {
3562
+ const result = spawnSync("yarn", ["global", "dir"], {
3563
+ encoding: "utf-8",
3564
+ timeout: 1e4,
3565
+ windowsHide: true
3566
+ });
3567
+ if (result.status === 0 && result.stdout.trim()) {
3568
+ const candidate = join11(result.stdout.trim(), "node_modules", packageName);
3569
+ if (existsSync10(candidate))
3570
+ return candidate;
3571
+ }
3572
+ } else {
3573
+ const berryGlobal = join11(process.env.YARN_GLOBAL_FOLDER ?? join11(homedir5(), ".yarn", "berry", "global"), "node_modules", packageName);
3574
+ if (existsSync10(berryGlobal))
3575
+ return berryGlobal;
3576
+ }
3577
+ return;
3578
+ }
3579
+ }
3580
+ } catch {
3581
+ return;
3582
+ }
3583
+ }
3518
3584
  function getGlobalInstallCommand(family, packageName) {
3519
3585
  switch (family) {
3520
3586
  case "bun":
@@ -14515,7 +14581,7 @@ import {
14515
14581
  statSync as statSync3,
14516
14582
  unlinkSync
14517
14583
  } from "fs";
14518
- import { homedir as homedir5 } from "os";
14584
+ import { homedir as homedir6 } from "os";
14519
14585
  import { basename as basename3, dirname as dirname5, join as join6 } from "path";
14520
14586
  var LOG_LEVELS, DEFAULT_CONFIG, Logger, envLogFile, envLogDir, loggerConfig, logger;
14521
14587
  var init_logger = __esm(() => {
@@ -14526,7 +14592,7 @@ var init_logger = __esm(() => {
14526
14592
  error: 3
14527
14593
  };
14528
14594
  DEFAULT_CONFIG = {
14529
- logDir: join6(homedir5(), ".agents", ".daemon", "logs"),
14595
+ logDir: join6(homedir6(), ".agents", ".daemon", "logs"),
14530
14596
  logFilePath: undefined,
14531
14597
  level: "info",
14532
14598
  maxFileSize: 10 * 1024 * 1024,
@@ -17025,7 +17091,7 @@ var init_cross_agent = __esm(() => {
17025
17091
  // ../daemon/src/db-accessor.ts
17026
17092
  import { Database } from "bun:sqlite";
17027
17093
  import { copyFileSync, existsSync as existsSync8, mkdirSync as mkdirSync3, readFileSync as readFileSync10, readdirSync as readdirSync3, statSync as statSync5, unlinkSync as unlinkSync2 } from "fs";
17028
- import { homedir as homedir7 } from "os";
17094
+ import { homedir as homedir8 } from "os";
17029
17095
  import { basename as basename5, dirname as dirname6, join as join14 } from "path";
17030
17096
  function configurePragmas(db) {
17031
17097
  db.exec("PRAGMA journal_mode = WAL");
@@ -17044,7 +17110,7 @@ function readConfigHome(env) {
17044
17110
  const dir = readTrimmed(env, "XDG_CONFIG_HOME");
17045
17111
  if (dir !== null)
17046
17112
  return dir;
17047
- return join14(homedir7(), ".config");
17113
+ return join14(homedir8(), ".config");
17048
17114
  }
17049
17115
  function readWorkspaceConfig(path) {
17050
17116
  if (!existsSync8(path))
@@ -17072,7 +17138,7 @@ function resolveSqliteAgentsDir(opts) {
17072
17138
  const cfg2 = readWorkspaceConfig(join14(readConfigHome(env), "signet", "workspace.json"));
17073
17139
  if (cfg2 !== null)
17074
17140
  return cfg2;
17075
- return join14((opts?.home ?? homedir7)(), ".agents");
17141
+ return join14((opts?.home ?? homedir8)(), ".agents");
17076
17142
  }
17077
17143
  function resolveCustomSqlitePath(opts) {
17078
17144
  const platform2 = opts?.platform ?? process.platform;
@@ -25442,7 +25508,7 @@ var init_onepassword = __esm(() => {
25442
25508
  // ../daemon/src/secrets.ts
25443
25509
  import { execSync, spawn } from "child_process";
25444
25510
  import { existsSync as existsSync13, mkdirSync as mkdirSync4, readFileSync as readFileSync12, writeFileSync as writeFileSync3 } from "fs";
25445
- import { homedir as homedir8, hostname } from "os";
25511
+ import { homedir as homedir9, hostname } from "os";
25446
25512
  import { join as join16 } from "path";
25447
25513
  function getMachineId() {
25448
25514
  const isWindows2 = process.platform === "win32";
@@ -25624,7 +25690,7 @@ var AGENTS_DIR, SECRETS_DIR, SECRETS_FILE, _masterKey = null, SHELL_META, NAME_R
25624
25690
  var init_secrets = __esm(() => {
25625
25691
  init_libsodium_wrappers();
25626
25692
  init_onepassword();
25627
- AGENTS_DIR = process.env.SIGNET_PATH || join16(homedir8(), ".agents");
25693
+ AGENTS_DIR = process.env.SIGNET_PATH || join16(homedir9(), ".agents");
25628
25694
  SECRETS_DIR = join16(AGENTS_DIR, ".secrets");
25629
25695
  SECRETS_FILE = join16(SECRETS_DIR, "secrets.enc");
25630
25696
  SHELL_META = /[;&|`$(){}[\]<>!\\]/;
@@ -25649,7 +25715,7 @@ __export(exports_native_embedding, {
25649
25715
  checkNativeProvider: () => checkNativeProvider
25650
25716
  });
25651
25717
  import { mkdirSync as mkdirSync5 } from "fs";
25652
- import { homedir as homedir9 } from "os";
25718
+ import { homedir as homedir10 } from "os";
25653
25719
  import { dirname as dirname7, join as join17 } from "path";
25654
25720
  import { fileURLToPath as fileURLToPath2, pathToFileURL } from "url";
25655
25721
  function isRecord5(value) {
@@ -25745,7 +25811,7 @@ function toEmbedFn(value) {
25745
25811
  return embed;
25746
25812
  }
25747
25813
  function getCacheDir() {
25748
- const agentsDir = process.env.SIGNET_PATH || join17(homedir9(), ".agents");
25814
+ const agentsDir = process.env.SIGNET_PATH || join17(homedir10(), ".agents");
25749
25815
  return join17(agentsDir, ".models");
25750
25816
  }
25751
25817
  async function ensureInitialized() {
@@ -33901,7 +33967,7 @@ var init_continuity_state = __esm(() => {
33901
33967
  // ../daemon/src/memory-head.ts
33902
33968
  import { createHash as createHash2, randomUUID as randomUUID3 } from "crypto";
33903
33969
  import { existsSync as existsSync15, mkdirSync as mkdirSync6, readFileSync as readFileSync14, writeFileSync as writeFileSync5 } from "fs";
33904
- import { homedir as homedir10 } from "os";
33970
+ import { homedir as homedir11 } from "os";
33905
33971
  import { join as join19 } from "path";
33906
33972
  function hashContent(content) {
33907
33973
  return createHash2("sha256").update(content).digest("hex");
@@ -34036,7 +34102,7 @@ var init_memory_head = __esm(() => {
34036
34102
  init_db_accessor();
34037
34103
  init_db_helpers();
34038
34104
  init_memory_config();
34039
- AGENTS_DIR2 = process.env.SIGNET_PATH || join19(homedir10(), ".agents");
34105
+ AGENTS_DIR2 = process.env.SIGNET_PATH || join19(homedir11(), ".agents");
34040
34106
  });
34041
34107
 
34042
34108
  // ../daemon/src/predictor-state.ts
@@ -34048,11 +34114,11 @@ __export(exports_predictor_state, {
34048
34114
  computeEffectiveAlpha: () => computeEffectiveAlpha
34049
34115
  });
34050
34116
  import { existsSync as existsSync16, mkdirSync as mkdirSync7, readFileSync as readFileSync15, writeFileSync as writeFileSync7 } from "fs";
34051
- import { homedir as homedir11 } from "os";
34117
+ import { homedir as homedir12 } from "os";
34052
34118
  import { dirname as dirname8, join as join20 } from "path";
34053
34119
  function statePath(agentId) {
34054
34120
  const safeId = agentId.replace(/[/\\]/g, "_").replace(/\.\./g, "_");
34055
- const agentsDir = process.env.SIGNET_PATH || join20(homedir11(), ".agents");
34121
+ const agentsDir = process.env.SIGNET_PATH || join20(homedir12(), ".agents");
34056
34122
  return join20(agentsDir, "memory", "predictor", `state-${safeId}.json`);
34057
34123
  }
34058
34124
  function isRecord6(v2) {
@@ -34945,10 +35011,10 @@ var init_session_checkpoints = __esm(() => {
34945
35011
 
34946
35012
  // ../daemon/src/session-memories.ts
34947
35013
  import { existsSync as existsSync17 } from "fs";
34948
- import { homedir as homedir12 } from "os";
35014
+ import { homedir as homedir13 } from "os";
34949
35015
  import { join as join21 } from "path";
34950
35016
  function getMemoryDbPath() {
34951
- const agentsDir = process.env.SIGNET_PATH || join21(homedir12(), ".agents");
35017
+ const agentsDir = process.env.SIGNET_PATH || join21(homedir13(), ".agents");
34952
35018
  return join21(agentsDir, "memory", "memories.db");
34953
35019
  }
34954
35020
  function recordSessionCandidates(sessionKey, candidates, injectedIds, agentId = "default") {
@@ -36006,8 +36072,84 @@ async function checkForUpdates() {
36006
36072
  }
36007
36073
  return result;
36008
36074
  }
36075
+ function normalizeTargetVersion(targetVersion) {
36076
+ if (typeof targetVersion !== "string")
36077
+ return null;
36078
+ const trimmed = targetVersion.trim();
36079
+ if (!trimmed)
36080
+ return null;
36081
+ const normalized = trimmed.replace(/^v/i, "");
36082
+ if (!EXACT_SEMVER_PATTERN.test(normalized)) {
36083
+ return null;
36084
+ }
36085
+ return normalized;
36086
+ }
36087
+ function parseInstalledPackageVersion(packageJsonContent) {
36088
+ try {
36089
+ const parsed = JSON.parse(packageJsonContent);
36090
+ if (typeof parsed.version !== "string")
36091
+ return null;
36092
+ const version = parsed.version.trim();
36093
+ if (!version)
36094
+ return null;
36095
+ return EXACT_SEMVER_PATTERN.test(version) ? version : null;
36096
+ } catch {
36097
+ return null;
36098
+ }
36099
+ }
36100
+ function verifyInstalledVersion(family, packageName, expectedVersion, deps = {
36101
+ resolveGlobalPackagePath: (family2, packageName2) => resolveGlobalPackagePath(family2, packageName2),
36102
+ existsSync: (path) => existsSync18(path),
36103
+ readFileSync: (path, encoding) => readFileSync16(path, { encoding })
36104
+ }) {
36105
+ try {
36106
+ const packagePath = deps.resolveGlobalPackagePath(family, packageName);
36107
+ if (!packagePath) {
36108
+ return {
36109
+ ok: false,
36110
+ message: `Update exited cleanly but could not locate global package path for '${packageName}'`
36111
+ };
36112
+ }
36113
+ const packageJsonPath = join23(packagePath, "package.json");
36114
+ if (!deps.existsSync(packageJsonPath)) {
36115
+ return {
36116
+ ok: false,
36117
+ message: `Update exited cleanly but package manifest missing at ${packageJsonPath}`
36118
+ };
36119
+ }
36120
+ const installedVersion = parseInstalledPackageVersion(deps.readFileSync(packageJsonPath, "utf-8"));
36121
+ if (!installedVersion) {
36122
+ return {
36123
+ ok: false,
36124
+ message: `Update exited cleanly but installed package.json has no valid version at ${packageJsonPath}`
36125
+ };
36126
+ }
36127
+ if (expectedVersion && installedVersion !== expectedVersion) {
36128
+ return {
36129
+ ok: false,
36130
+ message: `Install exited cleanly but version is ${installedVersion}, expected ${expectedVersion}`
36131
+ };
36132
+ }
36133
+ return {
36134
+ ok: true,
36135
+ installedVersion
36136
+ };
36137
+ } catch (error) {
36138
+ return {
36139
+ ok: false,
36140
+ message: `Update exited cleanly but failed to verify installed version: ${error instanceof Error ? error.message : String(error)}`
36141
+ };
36142
+ }
36143
+ }
36009
36144
  async function runUpdate(targetVersion) {
36010
36145
  assertInitialized();
36146
+ const normalizedTargetVersion = normalizeTargetVersion(targetVersion);
36147
+ if (targetVersion && !normalizedTargetVersion) {
36148
+ return {
36149
+ success: false,
36150
+ message: `Invalid targetVersion '${targetVersion}'`
36151
+ };
36152
+ }
36011
36153
  if (updateInstallInProgress) {
36012
36154
  return {
36013
36155
  success: false,
@@ -36021,7 +36163,8 @@ async function runUpdate(targetVersion) {
36021
36163
  agentsDir,
36022
36164
  env: process.env
36023
36165
  });
36024
- const installCommand = getGlobalInstallCommand(packageManager.family, NPM_PACKAGE);
36166
+ const installPackage = normalizedTargetVersion ? `${NPM_PACKAGE}@${normalizedTargetVersion}` : NPM_PACKAGE;
36167
+ const installCommand = getGlobalInstallCommand(packageManager.family, installPackage);
36025
36168
  logger.info("system", "Running update command", {
36026
36169
  command: `${installCommand.command} ${installCommand.args.join(" ")}`,
36027
36170
  family: packageManager.family,
@@ -36046,7 +36189,20 @@ async function runUpdate(targetVersion) {
36046
36189
  command: `${installCommand.command} ${installCommand.args.join(" ")}`
36047
36190
  });
36048
36191
  if (code === 0) {
36049
- pendingRestartVersion = targetVersion ?? "unknown";
36192
+ const verification = verifyInstalledVersion(packageManager.family, NPM_PACKAGE, normalizedTargetVersion);
36193
+ if (!verification.ok) {
36194
+ logger.warn("system", "Update verification failed", {
36195
+ reason: verification.message,
36196
+ family: packageManager.family
36197
+ });
36198
+ resolve5({
36199
+ success: false,
36200
+ message: verification.message,
36201
+ output: stdout + stderr
36202
+ });
36203
+ return;
36204
+ }
36205
+ pendingRestartVersion = verification.installedVersion;
36050
36206
  lastUpdateCheck = null;
36051
36207
  lastUpdateCheckTime = null;
36052
36208
  logger.info("system", "Update installed successfully");
@@ -36054,7 +36210,7 @@ async function runUpdate(targetVersion) {
36054
36210
  success: true,
36055
36211
  message: "Update installed. Restart daemon to apply.",
36056
36212
  output: stdout,
36057
- installedVersion: targetVersion ?? "unknown",
36213
+ installedVersion: verification.installedVersion,
36058
36214
  restartRequired: true
36059
36215
  });
36060
36216
  } else {
@@ -36179,10 +36335,11 @@ function setUpdateConfig(patch) {
36179
36335
  const persisted = persistUpdateConfig(updateConfig);
36180
36336
  return { config: { ...updateConfig }, persisted };
36181
36337
  }
36182
- var GITHUB_REPO = "Signet-AI/signetai", NPM_PACKAGE = "signetai", MIN_UPDATE_INTERVAL_SECONDS = 300, MAX_UPDATE_INTERVAL_SECONDS = 604800, DEFAULT_UPDATE_INTERVAL_SECONDS = 21600, currentVersion2 = "0.0.0", agentsDir = "", initialized2 = false, lastUpdateCheck = null, lastUpdateCheckTime = null, updateTimer = null, updateCheckInProgress = false, updateInstallInProgress = false, pendingRestartVersion = null, lastAutoUpdateAt = null, lastAutoUpdateError = null, updateConfig, restartCallback = null;
36338
+ var GITHUB_REPO = "Signet-AI/signetai", NPM_PACKAGE = "signetai", EXACT_SEMVER_PATTERN, MIN_UPDATE_INTERVAL_SECONDS = 300, MAX_UPDATE_INTERVAL_SECONDS = 604800, DEFAULT_UPDATE_INTERVAL_SECONDS = 21600, currentVersion2 = "0.0.0", agentsDir = "", initialized2 = false, lastUpdateCheck = null, lastUpdateCheckTime = null, updateTimer = null, updateCheckInProgress = false, updateInstallInProgress = false, pendingRestartVersion = null, lastAutoUpdateAt = null, lastAutoUpdateError = null, updateConfig, restartCallback = null;
36183
36339
  var init_update_system = __esm(() => {
36184
36340
  init_dist2();
36185
36341
  init_logger();
36342
+ EXACT_SEMVER_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
36186
36343
  updateConfig = {
36187
36344
  autoInstall: false,
36188
36345
  checkInterval: DEFAULT_UPDATE_INTERVAL_SECONDS,
@@ -36192,7 +36349,7 @@ var init_update_system = __esm(() => {
36192
36349
 
36193
36350
  // ../daemon/src/hooks.ts
36194
36351
  import { existsSync as existsSync19, readFileSync as readFileSync17, realpathSync as realpathSync2 } from "fs";
36195
- import { homedir as homedir13 } from "os";
36352
+ import { homedir as homedir14 } from "os";
36196
36353
  import { join as join25 } from "path";
36197
36354
  function resetPromptDedup(sessionKey) {
36198
36355
  promptDedupRecent.delete(sessionKey);
@@ -38230,7 +38387,7 @@ var init_hooks = __esm(() => {
38230
38387
  init_structural_features();
38231
38388
  init_temporal_fallback();
38232
38389
  init_update_system();
38233
- AGENTS_DIR3 = process.env.SIGNET_PATH || join25(homedir13(), ".agents");
38390
+ AGENTS_DIR3 = process.env.SIGNET_PATH || join25(homedir14(), ".agents");
38234
38391
  MEMORY_DB = join25(AGENTS_DIR3, "memory", "memories.db");
38235
38392
  sessionStartSeen = new Map;
38236
38393
  promptDedupRecent = new Map;
@@ -38372,7 +38529,7 @@ function trimTrailingSlash(url) {
38372
38529
  // ../daemon/src/pipeline/provider.ts
38373
38530
  import { spawn as nodeSpawn } from "child_process";
38374
38531
  import { existsSync as existsSync20 } from "fs";
38375
- import { homedir as homedir14 } from "os";
38532
+ import { homedir as homedir15 } from "os";
38376
38533
  import { Readable as Readable4 } from "stream";
38377
38534
 
38378
38535
  class SubprocessSemaphore {
@@ -39227,7 +39384,7 @@ function resolveOpenCodeBin() {
39227
39384
  const found = Bun.which("opencode");
39228
39385
  if (found)
39229
39386
  return found;
39230
- const fallback = `${homedir14()}/.opencode/bin/opencode`;
39387
+ const fallback = `${homedir15()}/.opencode/bin/opencode`;
39231
39388
  if (existsSync20(fallback))
39232
39389
  return fallback;
39233
39390
  return null;
@@ -39720,7 +39877,7 @@ var init_provider = __esm(() => {
39720
39877
  DEFAULT_CODEX_CONFIG = {
39721
39878
  model: "gpt-5-codex-mini",
39722
39879
  defaultTimeoutMs: 60000,
39723
- workingDirectory: homedir14()
39880
+ workingDirectory: homedir15()
39724
39881
  };
39725
39882
  DEFAULT_OPENCODE_CONFIG = {
39726
39883
  baseUrl: "http://127.0.0.1:4096",
@@ -40310,7 +40467,7 @@ var init_predictor_comparison = __esm(() => {
40310
40467
 
40311
40468
  // ../daemon/src/pipeline/summary-worker.ts
40312
40469
  import { existsSync as existsSync21, mkdirSync as mkdirSync8, writeFileSync as writeFileSync9 } from "fs";
40313
- import { homedir as homedir15 } from "os";
40470
+ import { homedir as homedir16 } from "os";
40314
40471
  import { join as join26 } from "path";
40315
40472
  function buildPrompt3(transcript, date) {
40316
40473
  return `You are a session librarian. Summarize this coding session as a dated markdown note and extract key durable facts.
@@ -41207,7 +41364,7 @@ var init_summary_worker = __esm(() => {
41207
41364
  init_session_transcripts();
41208
41365
  init_provider();
41209
41366
  init_significance_gate();
41210
- AGENTS_DIR4 = process.env.SIGNET_PATH || join26(homedir15(), ".agents");
41367
+ AGENTS_DIR4 = process.env.SIGNET_PATH || join26(homedir16(), ".agents");
41211
41368
  MEMORY_DIR = join26(AGENTS_DIR4, "memory");
41212
41369
  });
41213
41370
 
@@ -41235,10 +41392,10 @@ var init_synthesis_llm = __esm(() => {
41235
41392
 
41236
41393
  // ../daemon/src/pipeline/synthesis-worker.ts
41237
41394
  import { existsSync as existsSync22, mkdirSync as mkdirSync9, readFileSync as readFileSync18, writeFileSync as writeFileSync10 } from "fs";
41238
- import { homedir as homedir16 } from "os";
41395
+ import { homedir as homedir17 } from "os";
41239
41396
  import { join as join27 } from "path";
41240
41397
  function getAgentsDir() {
41241
- return process.env.SIGNET_PATH || join27(homedir16(), ".agents");
41398
+ return process.env.SIGNET_PATH || join27(homedir17(), ".agents");
41242
41399
  }
41243
41400
  function normalizeAgentId(agentId) {
41244
41401
  const next = agentId?.trim();
@@ -48302,7 +48459,7 @@ function resolveRuntimeModel(effective, configured, model) {
48302
48459
  // ../daemon/src/predictor-client.ts
48303
48460
  import { spawn as spawn3 } from "child_process";
48304
48461
  import { statSync as statSync6 } from "fs";
48305
- import { homedir as homedir17 } from "os";
48462
+ import { homedir as homedir18 } from "os";
48306
48463
  import { isAbsolute as isAbsolute2, join as join28 } from "path";
48307
48464
  import { createInterface } from "readline";
48308
48465
  function isRecord9(value) {
@@ -48387,7 +48544,7 @@ function syncedBinaryCandidate() {
48387
48544
  const ext = platform2 === "win32" ? ".exe" : "";
48388
48545
  const name = `signet-predictor-${platform2}-${arch2}${ext}`;
48389
48546
  const envPath = process.env.SIGNET_PATH;
48390
- const agentsDir2 = typeof envPath === "string" && isAbsolute2(envPath) ? envPath : join28(homedir17(), ".agents");
48547
+ const agentsDir2 = typeof envPath === "string" && isAbsolute2(envPath) ? envPath : join28(homedir18(), ".agents");
48391
48548
  return join28(agentsDir2, ".daemon", "bin", name);
48392
48549
  }
48393
48550
  function localBinaryCandidates() {
@@ -48428,7 +48585,7 @@ function resolvePredictorCheckpointPath(config) {
48428
48585
  return config.checkpointPath ?? defaultCheckpointPath();
48429
48586
  }
48430
48587
  function defaultCheckpointPath() {
48431
- return join28(homedir17(), ".agents", "memory", "predictor", "model.bin");
48588
+ return join28(homedir18(), ".agents", "memory", "predictor", "model.bin");
48432
48589
  }
48433
48590
  function describeStatusResult(result) {
48434
48591
  if (isRecord9(result)) {
@@ -55236,7 +55393,7 @@ var init_cron = __esm(() => {
55236
55393
 
55237
55394
  // ../daemon/src/scheduler/skill-resolver.ts
55238
55395
  import { readFileSync as readFileSync19 } from "fs";
55239
- import { homedir as homedir18 } from "os";
55396
+ import { homedir as homedir19 } from "os";
55240
55397
  import { join as join29 } from "path";
55241
55398
  function stripFrontmatter(content) {
55242
55399
  if (!content.startsWith("---"))
@@ -55272,7 +55429,7 @@ ${basePrompt}`;
55272
55429
  var AGENTS_DIR5;
55273
55430
  var init_skill_resolver = __esm(() => {
55274
55431
  init_logger();
55275
- AGENTS_DIR5 = process.env.SIGNET_PATH ?? join29(homedir18(), ".agents");
55432
+ AGENTS_DIR5 = process.env.SIGNET_PATH ?? join29(homedir19(), ".agents");
55276
55433
  });
55277
55434
 
55278
55435
  // ../daemon/src/scheduler/spawn.ts
@@ -55522,7 +55679,7 @@ var init_task_stream = __esm(() => {
55522
55679
  });
55523
55680
 
55524
55681
  // ../daemon/src/scheduler/worker.ts
55525
- import { homedir as homedir19 } from "os";
55682
+ import { homedir as homedir20 } from "os";
55526
55683
  import { join as join30 } from "path";
55527
55684
  function isTaskHarness(value) {
55528
55685
  return value === "claude-code" || value === "opencode" || value === "codex";
@@ -55718,7 +55875,7 @@ var init_worker2 = __esm(() => {
55718
55875
  init_spawn();
55719
55876
  init_task_stream();
55720
55877
  init_logger();
55721
- AGENTS_DIR6 = process.env.SIGNET_PATH || join30(homedir19(), ".agents");
55878
+ AGENTS_DIR6 = process.env.SIGNET_PATH || join30(homedir20(), ".agents");
55722
55879
  taskModelCache = new Map;
55723
55880
  });
55724
55881
 
@@ -101780,10 +101937,10 @@ var init_skill_reconciler = __esm(() => {
101780
101937
  // ../daemon/src/routes/skills.ts
101781
101938
  import { spawn as spawn4 } from "child_process";
101782
101939
  import { existsSync as existsSync24, readFileSync as readFileSync21, readdirSync as readdirSync6, rmSync, writeFileSync as writeFileSync11 } from "fs";
101783
- import { homedir as homedir20 } from "os";
101940
+ import { homedir as homedir21 } from "os";
101784
101941
  import { join as join33 } from "path";
101785
101942
  function getAgentsDir2() {
101786
- return process.env.SIGNET_PATH || join33(homedir20(), ".agents");
101943
+ return process.env.SIGNET_PATH || join33(homedir21(), ".agents");
101787
101944
  }
101788
101945
  function getSkillsDir() {
101789
101946
  return join33(getAgentsDir2(), "skills");
@@ -104971,10 +105128,10 @@ var init_event_bus = __esm(() => {
104971
105128
 
104972
105129
  // ../daemon/src/widget-gen.ts
104973
105130
  import { existsSync as existsSync25, mkdirSync as mkdirSync10, readFileSync as readFileSync22, unlinkSync as unlinkSync3 } from "fs";
104974
- import { homedir as homedir21 } from "os";
105131
+ import { homedir as homedir22 } from "os";
104975
105132
  import { join as join34 } from "path";
104976
105133
  function agentsDir2() {
104977
- return process.env.SIGNET_PATH || join34(homedir21(), ".agents");
105134
+ return process.env.SIGNET_PATH || join34(homedir22(), ".agents");
104978
105135
  }
104979
105136
  function widgetDir() {
104980
105137
  return join34(agentsDir2(), "marketplace", "widgets");
@@ -105235,10 +105392,10 @@ var init_widget_gen = __esm(() => {
105235
105392
 
105236
105393
  // ../daemon/src/mcp-probe.ts
105237
105394
  import { existsSync as existsSync26, mkdirSync as mkdirSync11, readFileSync as readFileSync23, unlinkSync as unlinkSync4, writeFileSync as writeFileSync12 } from "fs";
105238
- import { homedir as homedir22 } from "os";
105395
+ import { homedir as homedir23 } from "os";
105239
105396
  import { join as join35 } from "path";
105240
105397
  function getAgentsDir3() {
105241
- return process.env.SIGNET_PATH || join35(homedir22(), ".agents");
105398
+ return process.env.SIGNET_PATH || join35(homedir23(), ".agents");
105242
105399
  }
105243
105400
  function getManifestsDir() {
105244
105401
  return join35(getAgentsDir3(), "marketplace", "app-manifests");
@@ -105610,10 +105767,10 @@ __export(exports_marketplace, {
105610
105767
  extractStandardMcpConfig: () => extractStandardMcpConfig
105611
105768
  });
105612
105769
  import { existsSync as existsSync27, mkdirSync as mkdirSync12, readFileSync as readFileSync24, writeFileSync as writeFileSync13 } from "fs";
105613
- import { homedir as homedir23 } from "os";
105770
+ import { homedir as homedir24 } from "os";
105614
105771
  import { join as join36 } from "path";
105615
105772
  function getAgentsDir4() {
105616
- return process.env.SIGNET_PATH || join36(homedir23(), ".agents");
105773
+ return process.env.SIGNET_PATH || join36(homedir24(), ".agents");
105617
105774
  }
105618
105775
  function getMarketplaceDir() {
105619
105776
  return join36(getAgentsDir4(), "marketplace");
@@ -106879,10 +107036,10 @@ __export(exports_marketplace_helpers, {
106879
107036
  readInstalledServersPublic: () => readInstalledServersPublic
106880
107037
  });
106881
107038
  import { existsSync as existsSync28, readFileSync as readFileSync25 } from "fs";
106882
- import { homedir as homedir24 } from "os";
107039
+ import { homedir as homedir25 } from "os";
106883
107040
  import { join as join37 } from "path";
106884
107041
  function getAgentsDir5() {
106885
- return process.env.SIGNET_PATH || join37(homedir24(), ".agents");
107042
+ return process.env.SIGNET_PATH || join37(homedir25(), ".agents");
106886
107043
  }
106887
107044
  function getInstalledMcpPath2() {
106888
107045
  return join37(getAgentsDir5(), "marketplace", "mcp-servers.json");
@@ -106908,7 +107065,7 @@ var init_marketplace_helpers = () => {};
106908
107065
  // ../daemon/src/routes/app-tray.ts
106909
107066
  import { existsSync as existsSync29, mkdirSync as mkdirSync13, readFileSync as readFileSync26, writeFileSync as writeFileSync14 } from "fs";
106910
107067
  import { join as join38 } from "path";
106911
- import { homedir as homedir25 } from "os";
107068
+ import { homedir as homedir26 } from "os";
106912
107069
  function isValidState(s2) {
106913
107070
  return s2 === "tray" || s2 === "grid" || s2 === "dock";
106914
107071
  }
@@ -107058,7 +107215,7 @@ function mountAppTrayRoutes(app) {
107058
107215
  updatedAt: new Date().toISOString()
107059
107216
  };
107060
107217
  tray[index] = updated;
107061
- const agentsDir3 = process.env.SIGNET_PATH || join38(homedir25(), ".agents");
107218
+ const agentsDir3 = process.env.SIGNET_PATH || join38(homedir26(), ".agents");
107062
107219
  const trayPath = join38(agentsDir3, "marketplace", "app-tray.json");
107063
107220
  writeFileSync14(trayPath, JSON.stringify(tray, null, 2));
107064
107221
  return c2.json({ success: true, entry: updated });
@@ -107117,7 +107274,7 @@ function mountAppTrayRoutes(app) {
107117
107274
  gridPosition: pos,
107118
107275
  updatedAt: new Date().toISOString()
107119
107276
  };
107120
- const agentsDir3 = process.env.SIGNET_PATH || join38(homedir25(), ".agents");
107277
+ const agentsDir3 = process.env.SIGNET_PATH || join38(homedir26(), ".agents");
107121
107278
  const trayPath = join38(agentsDir3, "marketplace", "app-tray.json");
107122
107279
  writeFileSync14(trayPath, JSON.stringify(tray, null, 2));
107123
107280
  }
@@ -107136,7 +107293,7 @@ function mountAppTrayRoutes(app) {
107136
107293
  });
107137
107294
  }
107138
107295
  function getAgentsDir6() {
107139
- return process.env.SIGNET_PATH || join38(homedir25(), ".agents");
107296
+ return process.env.SIGNET_PATH || join38(homedir26(), ".agents");
107140
107297
  }
107141
107298
  function getMarketplaceDir2() {
107142
107299
  return join38(getAgentsDir6(), "marketplace");
@@ -107409,10 +107566,10 @@ var init_event_bus2 = __esm(() => {
107409
107566
  // ../daemon/src/routes/marketplace-reviews.ts
107410
107567
  import { randomUUID as randomUUID4 } from "crypto";
107411
107568
  import { existsSync as existsSync31, mkdirSync as mkdirSync14, readFileSync as readFileSync27, writeFileSync as writeFileSync15 } from "fs";
107412
- import { homedir as homedir26 } from "os";
107569
+ import { homedir as homedir27 } from "os";
107413
107570
  import { join as join40 } from "path";
107414
107571
  function getAgentsDir7() {
107415
- return process.env.SIGNET_PATH || join40(homedir26(), ".agents");
107572
+ return process.env.SIGNET_PATH || join40(homedir27(), ".agents");
107416
107573
  }
107417
107574
  function getMarketplaceDir3() {
107418
107575
  return join40(getAgentsDir7(), "marketplace");
@@ -108598,7 +108755,7 @@ import {
108598
108755
  unlinkSync as unlinkSync5,
108599
108756
  writeFileSync as writeFileSync16
108600
108757
  } from "fs";
108601
- import { homedir as homedir27 } from "os";
108758
+ import { homedir as homedir28 } from "os";
108602
108759
  import { basename as basename7, dirname as dirname10, join as join42 } from "path";
108603
108760
  import { fileURLToPath as fileURLToPath4 } from "url";
108604
108761
  function readEnvTrimmed(key) {
@@ -110501,7 +110658,7 @@ ${c2}`;
110501
110658
  }).filter(Boolean).join(`
110502
110659
  `);
110503
110660
  const composed = withBlock + identityExtras;
110504
- const opencodeDir = join42(homedir27(), ".config", "opencode");
110661
+ const opencodeDir = join42(homedir28(), ".config", "opencode");
110505
110662
  if (existsSync33(opencodeDir)) {
110506
110663
  try {
110507
110664
  writeFileSync16(join42(opencodeDir, "AGENTS.md"), buildHeader("AGENTS.md") + composed);
@@ -110662,7 +110819,7 @@ function startFileWatcher() {
110662
110819
  startClaudeMemoryWatcher();
110663
110820
  }
110664
110821
  function startClaudeMemoryWatcher() {
110665
- const claudeProjectsDir = join42(homedir27(), ".claude", "projects");
110822
+ const claudeProjectsDir = join42(homedir28(), ".claude", "projects");
110666
110823
  if (!existsSync33(claudeProjectsDir))
110667
110824
  return;
110668
110825
  const claudeWatcher = watch(join42(claudeProjectsDir, "**", "memory", "MEMORY.md"), {
@@ -111814,7 +111971,7 @@ async function main() {
111814
111971
  const errDetails = e instanceof Error ? { message: e.message, stack: e.stack } : { error: String(e) };
111815
111972
  logger.error("daemon", "Failed to import existing memory files", undefined, errDetails);
111816
111973
  });
111817
- const claudeProjectsDir = join42(homedir27(), ".claude", "projects");
111974
+ const claudeProjectsDir = join42(homedir28(), ".claude", "projects");
111818
111975
  if (existsSync33(claudeProjectsDir)) {
111819
111976
  syncExistingClaudeMemories(claudeProjectsDir);
111820
111977
  }
@@ -111892,7 +112049,7 @@ var init_daemon = __esm(() => {
111892
112049
  init_hooks();
111893
112050
  init_session_transcripts();
111894
112051
  init_session_tracker();
111895
- AGENTS_DIR7 = process.env.SIGNET_PATH || join42(homedir27(), ".agents");
112052
+ AGENTS_DIR7 = process.env.SIGNET_PATH || join42(homedir28(), ".agents");
111896
112053
  DAEMON_DIR = join42(AGENTS_DIR7, ".daemon");
111897
112054
  PID_FILE = join42(DAEMON_DIR, "pid");
111898
112055
  LOG_DIR = join42(DAEMON_DIR, "logs");
@@ -114370,14 +114527,14 @@ var init_daemon = __esm(() => {
114370
114527
  {
114371
114528
  name: "Claude Code",
114372
114529
  id: "claude-code",
114373
- path: join42(homedir27(), ".claude", "settings.json"),
114374
- exists: existsSync33(join42(homedir27(), ".claude", "settings.json"))
114530
+ path: join42(homedir28(), ".claude", "settings.json"),
114531
+ exists: existsSync33(join42(homedir28(), ".claude", "settings.json"))
114375
114532
  },
114376
114533
  {
114377
114534
  name: "OpenCode",
114378
114535
  id: "opencode",
114379
- path: join42(homedir27(), ".config", "opencode", "AGENTS.md"),
114380
- exists: existsSync33(join42(homedir27(), ".config", "opencode", "AGENTS.md"))
114536
+ path: join42(homedir28(), ".config", "opencode", "AGENTS.md"),
114537
+ exists: existsSync33(join42(homedir28(), ".config", "opencode", "AGENTS.md"))
114381
114538
  },
114382
114539
  {
114383
114540
  name: "OpenClaw",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signetai",
3
- "version": "0.78.1",
3
+ "version": "0.78.2",
4
4
  "description": "Portable AI agent identity - own your agent, bring it anywhere",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/D1iopvlw.js";export{o as load_css,r as start};
@@ -1 +0,0 @@
1
- import{bi as e,bj as n}from"../chunks/BXCFavez.js";export{e as component,n as universal};