abtars 0.2.1 → 0.2.3-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.
Files changed (71) hide show
  1. package/bundle/{_registry.generated-FNJOX7VV.js → _registry.generated-KM6LXTNJ.js} +3 -3
  2. package/bundle/abtars-cli.js +69 -14
  3. package/bundle/abtars-cli.js.map +3 -3
  4. package/bundle/abtars.js +122 -65
  5. package/bundle/abtars.js.map +3 -3
  6. package/bundle/{agent-registry-S2MNHQYQ.js → agent-registry-ABPFQXNL.js} +3 -3
  7. package/bundle/{chunk-QIAFGDRL.js → chunk-2SFN2VYD.js} +4 -4
  8. package/bundle/{chunk-3X6VGRL6.js → chunk-2W6JIHZ5.js} +4 -1
  9. package/bundle/chunk-2W6JIHZ5.js.map +7 -0
  10. package/bundle/{chunk-HCYENZAB.js → chunk-6TSCOXF6.js} +58 -27
  11. package/bundle/chunk-6TSCOXF6.js.map +7 -0
  12. package/bundle/{chunk-2SWKJX64.js → chunk-7B3GK5JQ.js} +3 -3
  13. package/bundle/{chunk-KL5QRHHK.js → chunk-ENXQMPV3.js} +1 -2
  14. package/bundle/chunk-ENXQMPV3.js.map +7 -0
  15. package/bundle/{chunk-WLAVZSVZ.js → chunk-GXKJKYU4.js} +70 -2
  16. package/bundle/chunk-GXKJKYU4.js.map +7 -0
  17. package/bundle/{chunk-Z4SWEFIY.js → chunk-HFPXN6NM.js} +4 -4
  18. package/bundle/chunk-HFPXN6NM.js.map +7 -0
  19. package/bundle/{chunk-MHK4UPM6.js → chunk-PKHYCNTT.js} +1 -1
  20. package/bundle/{chunk-OGZXYN6E.js → chunk-SEXVA3GK.js} +224 -46
  21. package/bundle/chunk-SEXVA3GK.js.map +7 -0
  22. package/bundle/chunk-W6ELWLAR.js +143 -0
  23. package/bundle/chunk-W6ELWLAR.js.map +7 -0
  24. package/bundle/{commands-AXW7L2MZ.js → commands-L6VIMPCR.js} +5 -5
  25. package/bundle/{direct-api-transport-LSAUIP5S.js → direct-api-transport-BK72AP3I.js} +18 -2
  26. package/bundle/direct-api-transport-BK72AP3I.js.map +7 -0
  27. package/bundle/{discord-adapter-LNWTIOUK.js → discord-adapter-DWIQRNDI.js} +6 -6
  28. package/bundle/{doctor-PIPSGI3H.js → doctor-WHTVSUOF.js} +36 -26
  29. package/bundle/doctor-WHTVSUOF.js.map +7 -0
  30. package/bundle/{install-FZT43PTH.js → install-Q4XNCPG7.js} +2 -2
  31. package/bundle/kanban-board-I52RHNHQ.js +31 -0
  32. package/bundle/{message-pipeline-QX272U5X.js → message-pipeline-GCSZCQWO.js} +5 -5
  33. package/bundle/meta.json +971 -768
  34. package/bundle/{phase-transport-BSGROTHY.js → phase-transport-F7GQRRYE.js} +4 -4
  35. package/bundle/{sleep-K7EXAFGW.js → sleep-MYOZ73IU.js} +3 -3
  36. package/bundle/{subagent-runtime-FQAT3564.js → subagent-runtime-QA4LVU4C.js} +2 -2
  37. package/bundle/{system-status-7K2QTH3J.js → system-status-KMKPAC5Z.js} +4 -2
  38. package/bundle/system-status-KMKPAC5Z.js.map +7 -0
  39. package/bundle/{telegram-adapter-LXLSG4SK.js → telegram-adapter-TRMCC634.js} +10 -7
  40. package/bundle/telegram-adapter-TRMCC634.js.map +7 -0
  41. package/bundle/{tool-registry-5PXNSYOI.js → tool-registry-CG7GIS64.js} +3 -2
  42. package/bundle/tool-registry-CG7GIS64.js.map +7 -0
  43. package/config/transport.default.json +2 -1
  44. package/install-manifest.json +1 -0
  45. package/package.json +2 -1
  46. package/scripts/abtars-daemon.service +0 -1
  47. package/scripts/abtars@.service +0 -1
  48. package/scripts/build-and-deploy.sh +35 -7
  49. package/bundle/chunk-3X6VGRL6.js.map +0 -7
  50. package/bundle/chunk-HCYENZAB.js.map +0 -7
  51. package/bundle/chunk-KL5QRHHK.js.map +0 -7
  52. package/bundle/chunk-OGZXYN6E.js.map +0 -7
  53. package/bundle/chunk-WLAVZSVZ.js.map +0 -7
  54. package/bundle/chunk-Z4SWEFIY.js.map +0 -7
  55. package/bundle/direct-api-transport-LSAUIP5S.js.map +0 -7
  56. package/bundle/doctor-PIPSGI3H.js.map +0 -7
  57. package/bundle/system-status-7K2QTH3J.js.map +0 -7
  58. package/bundle/telegram-adapter-LXLSG4SK.js.map +0 -7
  59. /package/bundle/{_registry.generated-FNJOX7VV.js.map → _registry.generated-KM6LXTNJ.js.map} +0 -0
  60. /package/bundle/{agent-registry-S2MNHQYQ.js.map → agent-registry-ABPFQXNL.js.map} +0 -0
  61. /package/bundle/{chunk-QIAFGDRL.js.map → chunk-2SFN2VYD.js.map} +0 -0
  62. /package/bundle/{chunk-2SWKJX64.js.map → chunk-7B3GK5JQ.js.map} +0 -0
  63. /package/bundle/{chunk-MHK4UPM6.js.map → chunk-PKHYCNTT.js.map} +0 -0
  64. /package/bundle/{commands-AXW7L2MZ.js.map → commands-L6VIMPCR.js.map} +0 -0
  65. /package/bundle/{discord-adapter-LNWTIOUK.js.map → discord-adapter-DWIQRNDI.js.map} +0 -0
  66. /package/bundle/{install-FZT43PTH.js.map → install-Q4XNCPG7.js.map} +0 -0
  67. /package/bundle/{message-pipeline-QX272U5X.js.map → kanban-board-I52RHNHQ.js.map} +0 -0
  68. /package/bundle/{phase-transport-BSGROTHY.js.map → message-pipeline-GCSZCQWO.js.map} +0 -0
  69. /package/bundle/{sleep-K7EXAFGW.js.map → phase-transport-F7GQRRYE.js.map} +0 -0
  70. /package/bundle/{subagent-runtime-FQAT3564.js.map → sleep-MYOZ73IU.js.map} +0 -0
  71. /package/bundle/{tool-registry-5PXNSYOI.js.map → subagent-runtime-QA4LVU4C.js.map} +0 -0
@@ -6,14 +6,14 @@ import {
6
6
  import "./chunk-DHPFI7OF.js";
7
7
  import {
8
8
  sleep_exports
9
- } from "./chunk-Z4SWEFIY.js";
9
+ } from "./chunk-HFPXN6NM.js";
10
10
  import {
11
11
  hotskills_exports,
12
12
  init_hotskills
13
13
  } from "./chunk-NIYVCGBC.js";
14
14
  import "./chunk-ITB2K6LI.js";
15
- import "./chunk-JAJ3DUQ2.js";
16
15
  import "./chunk-HAF2AFBW.js";
16
+ import "./chunk-JAJ3DUQ2.js";
17
17
  import "./chunk-RTL7HO3N.js";
18
18
  import "./chunk-TBLYGCPQ.js";
19
19
  import "./chunk-H7RX7UCR.js";
@@ -36,4 +36,4 @@ var capabilities = [
36
36
  export {
37
37
  capabilities
38
38
  };
39
- //# sourceMappingURL=_registry.generated-FNJOX7VV.js.map
39
+ //# sourceMappingURL=_registry.generated-KM6LXTNJ.js.map
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __bundleCreateRequire } from 'node:module'; import { fileURLToPath as __bundleFileURLToPath } from 'node:url'; import { dirname as __bundleDirname } from 'node:path'; const require = __bundleCreateRequire(import.meta.url); const __chunk_filename = __bundleFileURLToPath(import.meta.url); const __chunk_dirname = __bundleDirname(__chunk_filename);
3
3
  import {
4
4
  install
5
- } from "./chunk-KL5QRHHK.js";
5
+ } from "./chunk-ENXQMPV3.js";
6
6
  import {
7
7
  rollback
8
8
  } from "./chunk-EKHNWFEQ.js";
@@ -337,7 +337,7 @@ var ABMIND_EXCLUDE = [
337
337
  "*.db-wal",
338
338
  "*.db-shm"
339
339
  ];
340
- var CONFIG_DIRS = ["config", "secret", "tasks", "skills", "core", "agents"];
340
+ var CONFIG_DIRS = ["config", "secret", "tasks", "skills", "core", "agents", "kanban"];
341
341
  async function backup(opts = {}) {
342
342
  const abHome = abtarsHome();
343
343
  const abmindHome = process.env["ABMIND_HOME"] ?? join4(dirname(abHome), ".abmind");
@@ -1316,11 +1316,11 @@ import { hostname } from "node:os";
1316
1316
  import { join as join10 } from "node:path";
1317
1317
  import { readFileSync as readFileSync6, writeFileSync as writeFileSync3, existsSync as existsSync8 } from "node:fs";
1318
1318
  import { copyFile as copyFile2, mkdir as mkdir4, chmod, readdir } from "node:fs/promises";
1319
- import { rmSync as rmSync2, cpSync, readdirSync as readdirSync3, mkdirSync as mkdirSync2 } from "node:fs";
1319
+ import { rmSync as rmSync2, cpSync as cpSync2, readdirSync as readdirSync3, mkdirSync as mkdirSync2, copyFileSync } from "node:fs";
1320
1320
 
1321
1321
  // src/cli/update-sources/local.ts
1322
1322
  import { spawnSync as spawnSync2 } from "node:child_process";
1323
- import { existsSync as existsSync6 } from "node:fs";
1323
+ import { existsSync as existsSync6, cpSync } from "node:fs";
1324
1324
  import { copyFile, cp, mkdir as mkdir2, readFile as readFile2, rm, writeFile as writeFile2 } from "node:fs/promises";
1325
1325
  import { join as join8 } from "node:path";
1326
1326
  var LocalBuildError = class extends Error {
@@ -1426,7 +1426,11 @@ function makeLocalBuildSource(opts = {}) {
1426
1426
  if (opts.skipInstall !== true) {
1427
1427
  runCmd("npm", ["install", "--no-audit", "--no-fund"], repoRoot);
1428
1428
  }
1429
- runCmd("npm", ["run", "bundle"], repoRoot);
1429
+ runCmd("node", ["esbuild.config.js"], repoRoot);
1430
+ const publicSrc = join8(repoRoot, "src", "components", "dashboard", "public");
1431
+ if (existsSync6(publicSrc)) cpSync(publicSrc, join8(repoRoot, "bundle", "public"), { recursive: true });
1432
+ const agentsSrc = join8(repoRoot, "agents");
1433
+ if (existsSync6(agentsSrc)) cpSync(agentsSrc, join8(repoRoot, "bundle", "agents"), { recursive: true });
1430
1434
  const stagedPath = ctx.stagingDir;
1431
1435
  await rm(stagedPath, { recursive: true, force: true });
1432
1436
  await mkdir2(stagedPath, { recursive: true });
@@ -1622,6 +1626,9 @@ Use --source local (default) or --source npm.
1622
1626
  writeSentinel(paths.home, { ...sentinelData, status: "success" });
1623
1627
  process.stdout.write(`\u2713 Bridge healthy (PID ${health.pid}, tick at ${new Date(health.heartbeat).toISOString()})
1624
1628
  `);
1629
+ const stateFile = join10(paths.home, "deploy.state");
1630
+ writeFileSync3(stateFile, JSON.stringify({ status: "success", completedAt: (/* @__PURE__ */ new Date()).toISOString(), version: staged.version }) + "\n");
1631
+ await syncAssets(paths.home, staged.stagedPath);
1625
1632
  return 0;
1626
1633
  }
1627
1634
  process.stderr.write(`\u274C Bridge unhealthy after 60s. Auto-rolling back...
@@ -1662,6 +1669,7 @@ Use --source local (default) or --source npm.
1662
1669
  }
1663
1670
  }
1664
1671
  async function copyAbmind(stagedPath, repoRoot) {
1672
+ if ((process.env["MEMORY"] ?? "auto") === "none") return;
1665
1673
  const candidates = [
1666
1674
  process.env["ABMIND_REPO"],
1667
1675
  join10(repoRoot, "..", "abmind"),
@@ -1672,16 +1680,20 @@ async function copyAbmind(stagedPath, repoRoot) {
1672
1680
  if (existsSync8(distDir)) {
1673
1681
  const dest = join10(stagedPath, "bundle", "node_modules", "abmind");
1674
1682
  mkdirSync2(dest, { recursive: true });
1675
- cpSync(distDir, join10(dest, "dist"), { recursive: true });
1676
- if (existsSync8(join10(src, "package.json"))) cpSync(join10(src, "package.json"), join10(dest, "package.json"));
1677
- if (existsSync8(join10(src, "prompts"))) cpSync(join10(src, "prompts"), join10(dest, "prompts"), { recursive: true });
1683
+ cpSync2(distDir, join10(dest, "dist"), { recursive: true });
1684
+ if (existsSync8(join10(src, "package.json"))) cpSync2(join10(src, "package.json"), join10(dest, "package.json"));
1685
+ if (existsSync8(join10(src, "prompts"))) cpSync2(join10(src, "prompts"), join10(dest, "prompts"), { recursive: true });
1678
1686
  const stalePath = join10(stagedPath, "node_modules", "abmind");
1679
1687
  if (existsSync8(stalePath)) rmSync2(stalePath, { recursive: true });
1680
1688
  try {
1681
1689
  const pkg = JSON.parse(readFileSync6(join10(dest, "package.json"), "utf-8"));
1682
1690
  const abmindHome = process.env["ABMIND_HOME"] ?? join10(process.env["HOME"] ?? "", ".abmind");
1683
1691
  mkdirSync2(abmindHome, { recursive: true });
1684
- const manifest = { version: pkg.version, activatedAt: (/* @__PURE__ */ new Date()).toISOString(), source: "local" };
1692
+ const { spawnSync: spawnSync4 } = await import("node:child_process");
1693
+ const gitResult = spawnSync4("git", ["-C", src, "rev-parse", "--short", "HEAD"], { encoding: "utf-8" });
1694
+ const commit = gitResult.status === 0 ? gitResult.stdout.trim() : "";
1695
+ const version = commit ? `${pkg.version}-${commit}` : pkg.version;
1696
+ const manifest = { version, activatedAt: (/* @__PURE__ */ new Date()).toISOString(), source: "local" };
1685
1697
  writeFileSync3(join10(abmindHome, "manifest.json"), JSON.stringify(manifest, null, 2) + "\n");
1686
1698
  } catch {
1687
1699
  }
@@ -1709,7 +1721,7 @@ async function postSwapHousekeeping(paths, repoRoot, _staged) {
1709
1721
  }
1710
1722
  process.stdout.write(`\u2713 scripts refreshed (${scriptFiles.length} files)
1711
1723
  `);
1712
- const { writeWrapper } = await import("./install-FZT43PTH.js");
1724
+ const { writeWrapper } = await import("./install-Q4XNCPG7.js");
1713
1725
  await mkdir4(paths.bin, { recursive: true });
1714
1726
  for (const name of installManifest.cliWrappers) {
1715
1727
  await writeWrapper(paths.bin, name, paths.app, false);
@@ -1720,7 +1732,7 @@ async function postSwapHousekeeping(paths, repoRoot, _staged) {
1720
1732
  const skillsCoreDst = join10(paths.home, "skills", "core");
1721
1733
  if (existsSync8(skillsCoreSrc)) {
1722
1734
  rmSync2(skillsCoreDst, { recursive: true, force: true });
1723
- cpSync(skillsCoreSrc, skillsCoreDst, { recursive: true });
1735
+ cpSync2(skillsCoreSrc, skillsCoreDst, { recursive: true });
1724
1736
  const files = readdirSync3(skillsCoreDst, { recursive: true });
1725
1737
  const count = files.filter((f) => f.endsWith("SKILL.md")).length;
1726
1738
  process.stdout.write(`\u2713 skills/core synced (${count} skills)
@@ -1735,13 +1747,13 @@ async function postSwapHousekeeping(paths, repoRoot, _staged) {
1735
1747
  for (const f of readdirSync3(releaseConfig)) {
1736
1748
  const src = join10(releaseConfig, f);
1737
1749
  if (f.endsWith(".example")) {
1738
- cpSync(src, join10(destConfig, f));
1750
+ cpSync2(src, join10(destConfig, f));
1739
1751
  const target = join10(destConfig, f.replace(".example", ""));
1740
- if (!existsSync8(target)) cpSync(src, target);
1752
+ if (!existsSync8(target)) cpSync2(src, target);
1741
1753
  }
1742
1754
  }
1743
1755
  const defaultTransport = join10(releaseConfig, "transport.default.json");
1744
- if (existsSync8(defaultTransport)) cpSync(defaultTransport, join10(destConfig, "transport.default.json"));
1756
+ if (existsSync8(defaultTransport)) cpSync2(defaultTransport, join10(destConfig, "transport.default.json"));
1745
1757
  }
1746
1758
  const transportJson = join10(paths.home, "config", "transport.json");
1747
1759
  if (existsSync8(transportJson)) {
@@ -1869,6 +1881,49 @@ async function checkForUpdates(home, opts) {
1869
1881
  `);
1870
1882
  return 2;
1871
1883
  }
1884
+ async function syncAssets(home, _stagedPath) {
1885
+ const abmindBundle = join10(home, "app", "bundle", "node_modules", "abmind");
1886
+ const abmindHome = process.env["ABMIND_HOME"] ?? join10(process.env["HOME"] ?? "", ".abmind");
1887
+ const coreDir = join10(abmindHome, "memory", "core");
1888
+ mkdirSync2(coreDir, { recursive: true });
1889
+ const mtSrc = join10(abmindBundle, "dist", "core", "memory-tools.md");
1890
+ if (existsSync8(mtSrc)) copyFileSync(mtSrc, join10(coreDir, "memory-tools.md"));
1891
+ for (const file of ["core_facts.md", "agent_notes.md"]) {
1892
+ const src = join10(abmindBundle, "templates", "core", file);
1893
+ if (!existsSync8(src)) continue;
1894
+ const live = join10(coreDir, file);
1895
+ if (!existsSync8(live)) {
1896
+ copyFileSync(src, live);
1897
+ } else {
1898
+ copyFileSync(src, join10(coreDir, file.replace(".md", ".template.md")));
1899
+ }
1900
+ }
1901
+ const sleepSrc = join10(abmindBundle, "prompts", "sleep");
1902
+ if (existsSync8(sleepSrc)) {
1903
+ const sleepDst = join10(abmindHome, "prompts", "sleep");
1904
+ mkdirSync2(sleepDst, { recursive: true });
1905
+ for (const f of readdirSync3(sleepSrc)) {
1906
+ copyFileSync(join10(sleepSrc, f), join10(sleepDst, f));
1907
+ }
1908
+ }
1909
+ const skillsSrc = join10(home, "app", "core", "skills");
1910
+ if (existsSync8(skillsSrc)) {
1911
+ const skillsDst = join10(home, "skills", "core");
1912
+ mkdirSync2(skillsDst, { recursive: true });
1913
+ cpSync2(skillsSrc, skillsDst, { recursive: true });
1914
+ }
1915
+ const agentSrc = join10(home, "app", "bundle", "agents", "default.md");
1916
+ if (existsSync8(agentSrc)) {
1917
+ const agentDst = join10(home, "agents");
1918
+ mkdirSync2(agentDst, { recursive: true });
1919
+ const live = join10(agentDst, "default.md");
1920
+ if (!existsSync8(live)) {
1921
+ copyFileSync(agentSrc, live);
1922
+ } else {
1923
+ copyFileSync(agentSrc, join10(agentDst, "default.template.md"));
1924
+ }
1925
+ }
1926
+ }
1872
1927
 
1873
1928
  // src/cli/abtars.ts
1874
1929
  process.umask(63);