abtars 0.2.1-alpha.10 → 0.2.1-alpha.11

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 (146) hide show
  1. package/README.md +93 -34
  2. package/bundle/{_registry.generated-N74SMTUJ.js → _registry.generated-AJRCDWPQ.js} +10 -9
  3. package/bundle/{_registry.generated-G2FSGHNY.js.map → _registry.generated-AJRCDWPQ.js.map} +1 -1
  4. package/bundle/abtars-browser.js +2 -2
  5. package/bundle/abtars-cli.js +11 -7
  6. package/bundle/abtars-cli.js.map +2 -2
  7. package/bundle/abtars-rss.js +25 -80
  8. package/bundle/abtars-rss.js.map +2 -2
  9. package/bundle/abtars-task.js +0 -0
  10. package/bundle/abtars-todo.js +133 -0
  11. package/bundle/abtars-todo.js.map +7 -0
  12. package/bundle/abtars.js +137 -67
  13. package/bundle/abtars.js.map +3 -3
  14. package/bundle/action-gate-L3QT4QYY.js +191 -0
  15. package/bundle/action-gate-L3QT4QYY.js.map +7 -0
  16. package/bundle/{agent-registry-TM7EISOV.js → agent-registry-PEKMTIK2.js} +4 -4
  17. package/bundle/{browse-delivery-VTLEAVYA.js → browse-delivery-ECW5SPRW.js} +4 -3
  18. package/bundle/{browser-REIXOJ6S.js → browser-2K2A4ABD.js} +7 -6
  19. package/bundle/{capability-ILW3D5HS.js → capability-GXT2XT3L.js} +3 -3
  20. package/bundle/{chunk-CNWXVXGH.js → chunk-2DVSXHVA.js} +5 -5
  21. package/bundle/{chunk-EZZBO2QK.js → chunk-2SH2U57T.js} +2 -2
  22. package/bundle/{chunk-LDKSCXGL.js → chunk-4IQ2HVXR.js} +5 -3
  23. package/bundle/{chunk-LDKSCXGL.js.map → chunk-4IQ2HVXR.js.map} +1 -1
  24. package/bundle/{chunk-VREI2GUO.js → chunk-4NZGCLOX.js} +2 -2
  25. package/bundle/{chunk-OOKLEC6V.js → chunk-64HRCGBT.js} +5 -5
  26. package/bundle/{chunk-HTGVYNPE.js → chunk-6HVT2J24.js} +22 -13
  27. package/bundle/chunk-6HVT2J24.js.map +7 -0
  28. package/bundle/{chunk-R36WIOYX.js → chunk-BMC76RUB.js} +27 -2
  29. package/bundle/{chunk-R36WIOYX.js.map → chunk-BMC76RUB.js.map} +2 -2
  30. package/bundle/chunk-DGS7J4P6.js +13 -0
  31. package/bundle/chunk-DGS7J4P6.js.map +7 -0
  32. package/bundle/{chunk-X5FBUA53.js → chunk-DQBHT5ZW.js} +51 -18
  33. package/bundle/chunk-DQBHT5ZW.js.map +7 -0
  34. package/bundle/{chunk-7I5C2U3C.js → chunk-DWCCYHRT.js} +8 -10
  35. package/bundle/chunk-DWCCYHRT.js.map +7 -0
  36. package/bundle/{chunk-TYVI3ZWA.js → chunk-EQCLQSTA.js} +8 -5
  37. package/bundle/chunk-EQCLQSTA.js.map +7 -0
  38. package/bundle/{chunk-4YOTNYAE.js → chunk-FAF2NRZD.js} +2 -2
  39. package/bundle/{chunk-Q7F5R2LL.js → chunk-FAK3FMQN.js} +5 -5
  40. package/bundle/{chunk-Q62SXS73.js → chunk-GBZIN2S7.js} +2 -2
  41. package/bundle/{chunk-J7CFCY4U.js → chunk-GUA6H4RM.js} +5 -5
  42. package/bundle/{chunk-ITG6XGBS.js → chunk-KB6ATNBP.js} +5 -5
  43. package/bundle/{chunk-MNKLPRGY.js → chunk-UBQJA7N4.js} +3 -3
  44. package/bundle/{chunk-HEHD3GG5.js → chunk-UUOUTFBM.js} +2 -9
  45. package/bundle/{chunk-HEHD3GG5.js.map → chunk-UUOUTFBM.js.map} +3 -3
  46. package/bundle/{chunk-JRK3UFBS.js → chunk-WMWI3SJ7.js} +1 -1
  47. package/bundle/chunk-WMWI3SJ7.js.map +7 -0
  48. package/bundle/{chunk-RV54J75Q.js → chunk-YL7SJIOO.js} +6 -6
  49. package/bundle/{chunk-HZRUBJ4Q.js → chunk-YTKYXFJK.js} +177 -65
  50. package/bundle/chunk-YTKYXFJK.js.map +7 -0
  51. package/bundle/chunk-YWZPKBO6.js +22 -0
  52. package/bundle/chunk-YWZPKBO6.js.map +7 -0
  53. package/bundle/chunk-ZAA7B5BN.js +22 -0
  54. package/bundle/chunk-ZAA7B5BN.js.map +7 -0
  55. package/bundle/{chunk-KSEIWT4T.js → chunk-ZAUTS7MH.js} +5 -5
  56. package/bundle/{commands-J6JAZ7D2.js → commands-VUPBDZXV.js} +7 -6
  57. package/bundle/{config-DQIGDX4W.js → config-O5AANQJU.js} +2 -2
  58. package/bundle/{deploy-lib-import-PJXUADPS.js → deploy-lib-import-6VJTYXEG.js} +2 -2
  59. package/bundle/{direct-api-transport-ZSJHKYBX.js → direct-api-transport-PAPPBTI7.js} +20 -9
  60. package/bundle/direct-api-transport-PAPPBTI7.js.map +7 -0
  61. package/bundle/{discord-adapter-OCWSJTJU.js → discord-adapter-H7HFJRZD.js} +20 -17
  62. package/bundle/discord-adapter-H7HFJRZD.js.map +7 -0
  63. package/bundle/{install-6H3APAIJ.js → install-EBD7J27R.js} +3 -3
  64. package/bundle/{message-pipeline-TCPHRBAK.js → message-pipeline-6RWJU5EM.js} +9 -6
  65. package/bundle/meta.json +2293 -1850
  66. package/bundle/{notification-U6F5ZBSG.js → notification-YVFUMNJZ.js} +4 -3
  67. package/bundle/{peer-client-T44VI7NB.js → peer-client-IK4ADRVT.js} +1 -1
  68. package/bundle/{phase-transport-ME2XDRR2.js → phase-transport-O654BWIS.js} +5 -5
  69. package/bundle/{rollback-D7AYTC7Z.js → rollback-NXVGLUJD.js} +3 -3
  70. package/bundle/{sleep-IOWYTSMK.js → sleep-JWL4EQ3M.js} +3 -3
  71. package/bundle/{soul-bundle-AH5S3MVI.js → soul-bundle-4HXHCAZ5.js} +3 -3
  72. package/bundle/{soul-loader-N5FA4I6C.js → soul-loader-ZVBDNGX4.js} +4 -4
  73. package/bundle/{subagent-runtime-OOJXCKJF.js → subagent-runtime-XG5QES6I.js} +2 -2
  74. package/bundle/system-event-buffer-OEPPNUGK.js +17 -0
  75. package/bundle/system-event-buffer-OEPPNUGK.js.map +7 -0
  76. package/bundle/{system-status-4JP36OKC.js → system-status-OLGEY4SC.js} +14 -9
  77. package/bundle/system-status-OLGEY4SC.js.map +7 -0
  78. package/bundle/task-failure-buffer-DPM5MWZ5.js +14 -0
  79. package/bundle/{telegram-adapter-QXHJQLLX.js → telegram-adapter-VCDL7NOC.js} +39 -21
  80. package/bundle/telegram-adapter-VCDL7NOC.js.map +7 -0
  81. package/bundle/{tool-registry-T7XLTI2Q.js → tool-registry-P3WUARSV.js} +5 -3
  82. package/bundle/{transport-config-G5NKQXPJ.js → transport-config-U3ASSIT6.js} +3 -3
  83. package/install-manifest.json +1 -0
  84. package/package.json +4 -3
  85. package/scripts/deploy.sh +91 -0
  86. package/scripts/doctor.sh +28 -0
  87. package/CHANGELOG.md +0 -64
  88. package/bundle/_registry.generated-4P6KTBTH.js +0 -36
  89. package/bundle/_registry.generated-4P6KTBTH.js.map +0 -7
  90. package/bundle/_registry.generated-G2FSGHNY.js +0 -36
  91. package/bundle/_registry.generated-N74SMTUJ.js.map +0 -7
  92. package/bundle/_registry.generated-Y4VT5MBX.js +0 -36
  93. package/bundle/_registry.generated-Y4VT5MBX.js.map +0 -7
  94. package/bundle/browser-JQGYFZAG.js +0 -19
  95. package/bundle/browser-M4KDLN75.js +0 -19
  96. package/bundle/browser-VG2GTEND.js +0 -19
  97. package/bundle/chunk-7I5C2U3C.js.map +0 -7
  98. package/bundle/chunk-HTGVYNPE.js.map +0 -7
  99. package/bundle/chunk-HZRUBJ4Q.js.map +0 -7
  100. package/bundle/chunk-JRK3UFBS.js.map +0 -7
  101. package/bundle/chunk-KJOCXWJ5.js +0 -131
  102. package/bundle/chunk-KJOCXWJ5.js.map +0 -7
  103. package/bundle/chunk-O73EZGKR.js +0 -135
  104. package/bundle/chunk-O73EZGKR.js.map +0 -7
  105. package/bundle/chunk-TYVI3ZWA.js.map +0 -7
  106. package/bundle/chunk-VYR25H37.js +0 -135
  107. package/bundle/chunk-VYR25H37.js.map +0 -7
  108. package/bundle/chunk-X5FBUA53.js.map +0 -7
  109. package/bundle/direct-api-transport-ZSJHKYBX.js.map +0 -7
  110. package/bundle/discord-adapter-OCWSJTJU.js.map +0 -7
  111. package/bundle/system-status-4JP36OKC.js.map +0 -7
  112. package/bundle/telegram-adapter-QXHJQLLX.js.map +0 -7
  113. package/bundle/tool-registry-T7XLTI2Q.js.map +0 -7
  114. package/bundle/transport-config-G5NKQXPJ.js.map +0 -7
  115. /package/bundle/{agent-registry-TM7EISOV.js.map → agent-registry-PEKMTIK2.js.map} +0 -0
  116. /package/bundle/{browse-delivery-VTLEAVYA.js.map → browse-delivery-ECW5SPRW.js.map} +0 -0
  117. /package/bundle/{browser-JQGYFZAG.js.map → browser-2K2A4ABD.js.map} +0 -0
  118. /package/bundle/{browser-M4KDLN75.js.map → capability-GXT2XT3L.js.map} +0 -0
  119. /package/bundle/{chunk-CNWXVXGH.js.map → chunk-2DVSXHVA.js.map} +0 -0
  120. /package/bundle/{chunk-EZZBO2QK.js.map → chunk-2SH2U57T.js.map} +0 -0
  121. /package/bundle/{chunk-VREI2GUO.js.map → chunk-4NZGCLOX.js.map} +0 -0
  122. /package/bundle/{chunk-OOKLEC6V.js.map → chunk-64HRCGBT.js.map} +0 -0
  123. /package/bundle/{chunk-4YOTNYAE.js.map → chunk-FAF2NRZD.js.map} +0 -0
  124. /package/bundle/{chunk-Q7F5R2LL.js.map → chunk-FAK3FMQN.js.map} +0 -0
  125. /package/bundle/{chunk-Q62SXS73.js.map → chunk-GBZIN2S7.js.map} +0 -0
  126. /package/bundle/{chunk-J7CFCY4U.js.map → chunk-GUA6H4RM.js.map} +0 -0
  127. /package/bundle/{chunk-ITG6XGBS.js.map → chunk-KB6ATNBP.js.map} +0 -0
  128. /package/bundle/{chunk-MNKLPRGY.js.map → chunk-UBQJA7N4.js.map} +0 -0
  129. /package/bundle/{chunk-RV54J75Q.js.map → chunk-YL7SJIOO.js.map} +0 -0
  130. /package/bundle/{chunk-KSEIWT4T.js.map → chunk-ZAUTS7MH.js.map} +0 -0
  131. /package/bundle/{browser-REIXOJ6S.js.map → commands-VUPBDZXV.js.map} +0 -0
  132. /package/bundle/{browser-VG2GTEND.js.map → config-O5AANQJU.js.map} +0 -0
  133. /package/bundle/{capability-ILW3D5HS.js.map → deploy-lib-import-6VJTYXEG.js.map} +0 -0
  134. /package/bundle/{commands-J6JAZ7D2.js.map → install-EBD7J27R.js.map} +0 -0
  135. /package/bundle/{config-DQIGDX4W.js.map → message-pipeline-6RWJU5EM.js.map} +0 -0
  136. /package/bundle/{deploy-lib-import-PJXUADPS.js.map → notification-YVFUMNJZ.js.map} +0 -0
  137. /package/bundle/{peer-client-T44VI7NB.js.map → peer-client-IK4ADRVT.js.map} +0 -0
  138. /package/bundle/{install-6H3APAIJ.js.map → phase-transport-O654BWIS.js.map} +0 -0
  139. /package/bundle/{message-pipeline-TCPHRBAK.js.map → rollback-NXVGLUJD.js.map} +0 -0
  140. /package/bundle/{notification-U6F5ZBSG.js.map → sleep-JWL4EQ3M.js.map} +0 -0
  141. /package/bundle/{phase-transport-ME2XDRR2.js.map → soul-bundle-4HXHCAZ5.js.map} +0 -0
  142. /package/bundle/{rollback-D7AYTC7Z.js.map → soul-loader-ZVBDNGX4.js.map} +0 -0
  143. /package/bundle/{sleep-IOWYTSMK.js.map → subagent-runtime-XG5QES6I.js.map} +0 -0
  144. /package/bundle/{soul-bundle-AH5S3MVI.js.map → task-failure-buffer-DPM5MWZ5.js.map} +0 -0
  145. /package/bundle/{soul-loader-N5FA4I6C.js.map → tool-registry-P3WUARSV.js.map} +0 -0
  146. /package/bundle/{subagent-runtime-OOJXCKJF.js.map → transport-config-U3ASSIT6.js.map} +0 -0
package/README.md CHANGED
@@ -1,29 +1,36 @@
1
1
  # abTARS
2
2
 
3
- A personal AI agent that runs on your machine, talks to you via Telegram/Discord/IRC, and remembers everything. Use frontier models through existing subscriptions — no per-token billing.
3
+ **Autonomous AI agent with persistent memory, self-healing, and peer-to-peer communication. Your hardware, your rules.**
4
4
 
5
- ## What it does
5
+ abTARS runs 24/7 on your machine — talks to you via Telegram/Discord/IRC, remembers everything across sessions, executes scheduled tasks, and recovers from failures without intervention. Use frontier models through existing CLI subscriptions at zero marginal cost.
6
6
 
7
- - **Always-on agent** — runs 24/7, responds on Telegram/Discord, executes tasks on schedule
8
- - **Persistent memory** — remembers conversations, learns preferences, extracts facts overnight
9
- - **Multi-model** — Claude, Gemini, OpenRouter (40+ models), ollama (local). Switch by changing config
10
- - **Self-healing** — 4-layer watchdog, auto model fallback, survives crashes and network drops
11
- - **Extensible** — skills system, MCP integration, agent-to-agent communication
7
+ ## Why abTARS
8
+
9
+ - 🧠 **Memory that curates itself** — multi-layer recall (5 search stages + reranking), nightly sleep maintenance, emotion tracking, contradiction detection, Memory Darwinism
10
+ - 🛡️ **Self-hosted, defense-in-depth** — classified memory (4 tiers, encrypted at rest), role-based access, injection scanning, secrets vault
11
+ - 🔄 **Runs months unattended** — 5-layer supervision, leaky-bucket model fallback, self-healing agent, standby-aware recovery
12
+ - 🤝 **Agent-to-agent** — P2P communication with Ed25519 signatures, mDNS wake-up, IRC coordination channels
13
+ - 💰 **Zero idle cost** — no LLM calls at rest, CLI subscription parasitism, budget sleep tiers
14
+
15
+ → **[Why abTARS vs OpenClaw & Hermes](https://aksika.github.io/abtars/why)**
16
+
17
+ ## Architecture
12
18
 
13
19
  ```
14
- You (Telegram/Discord/IRC)
20
+ You (Telegram / Discord / IRC / API client)
15
21
 
16
22
 
17
- abTARS (agent brain)
18
- ├── Memory (abmindpersistent, searchable, encrypted)
19
- ├── Personality (customizable identity + learned behavior)
20
- ├── Tools (browse, recall, store, bash, MCP servers)
21
- ├── Skills (hot-reloadable, self-authoring)
23
+ abTARS (bridge)
24
+ ├── abmind (memoryin-process, multi-layer recall, encrypted)
25
+ ├── Skills (core + self-authored during sleep + downloadable)
26
+ ├── Tools (browse, bash, MCP, peer_ask)
27
+ ├── Tasks (cron scheduler + retry + DoD checks)
28
+ ├── Agent Swarm (async background sessions)
22
29
 
23
- ├── kiro-cli → Claude (AWS subscription)
24
- ├── gemini-cli → Gemini
25
- ├── Codex / Claude Code OpenAI / Anthropic
26
- └── Direct API ollama, OpenRouter, any OpenAI-compatible
30
+ ├── kiro-cli → Claude, DeepSeek, MiniMax, Qwen (free tier)
31
+ ├── gemini-cli → Gemini 2.5
32
+ ├── Direct API → ollama, OpenRouter, any OpenAI-compatible
33
+ └── Peers other abTARS instances via /v1/chat/completions
27
34
  ```
28
35
 
29
36
  ## Quick Start
@@ -37,37 +44,84 @@ abtars onboard
37
44
  sudo $(which abtars) daemon install
38
45
  ```
39
46
 
40
- Full installation guide: **[docs/wiki/install.md](docs/wiki/install.md)**
47
+ After install, configure `~/.abtars/config/.env` with your Telegram bot token and at least one model provider. Full guide: **[docs/wiki/install.md](docs/wiki/install.md)**
41
48
 
42
- ## Documentation
49
+ ## Features
43
50
 
44
- Docs live in the repo at **[docs/wiki/](docs/wiki/)** — always up to date with the code.
51
+ ### Memory (abmind)
45
52
 
46
- - [Installation](docs/wiki/install.md)
47
- - [Configuration](docs/wiki/commands.md)
48
- - [Commands](docs/wiki/cli.md)
49
- - [Memory System (abmind)](https://github.com/aksika/abmind)
50
- - [Skills & Extensions](docs/wiki/skills.md)
51
- - [Deployment & Supervision](docs/wiki/supervision.md)
53
+ Standalone package — works with abTARS, Kiro CLI, Gemini CLI, Claude Code, Codex, Hermes, or any MCP client.
54
+
55
+ - Multi-layer recall: 5 search stages (porter FTS5 → trigram → binary signatures → vector embeddings → entity graph) + 7 post-processing layers (cross-stage penalty, context boost, emotion boost, spacing boost, quality boost, MMR reranking, interference detection)
56
+ - Agglutinative language support (Hungarian, Finnish, Turkish) — QWERTZ fallback, substring windows
57
+ - 25 emotion types with per-memory scoring, emotional arcs per topic
58
+ - 12-step nightly sleep: extract, consolidate, prune, detect contradictions, fix translations
59
+ - NATO-inspired classification: confidentiality × trust × integrity × credibility
60
+ - AES-256-GCM encrypted secrets vault with auto-redaction from history
61
+ - Memory Darwinism — unused memories fade, recalled memories strengthen
62
+
63
+ ### Reliability
64
+
65
+ - **L1** Heartbeat — standby detection, bridge.lock, task dispatch
66
+ - **L2** In-process watchdog — detects stuck event loops
67
+ - **L3** External watchdog — catches dead PIDs, stale heartbeats. Circuit breaker prevents restart storms
68
+ - **L4** OS supervisor — launchd (macOS) / systemd (Linux) restarts the watchdog itself
69
+ - **L5** Preventive daily restart — eliminates memory leaks
70
+ - **Model health** — leaky-bucket per model, progressive penalties, arbitrarily long fallback chains
71
+ - **Self-healing agent** — diagnoses failed tasks, attempts repair, suspends after 3 failures
72
+
73
+ ### Agent Swarm
74
+
75
+ Main agent spawns independent background sessions (own context, own tool loop). Results auto-inject into the parent's next prompt. Up to 3 concurrent. `/wait` injects instructions into running sessions.
76
+
77
+ ### Peer-to-Peer
52
78
 
53
- > **Note:** The [aksika.github.io](https://aksika.github.io/abtars/) site may be outdated. Always refer to the docs in this repo.
79
+ Multiple abTARS instances communicate via OpenAI-compatible `/v1/chat/completions` endpoint. Bearer auth per peer, Ed25519 signatures, mDNS wake-up for firewalled peers, hop-limit loop prevention.
80
+
81
+ ### Security
82
+
83
+ - Platform-level access: only registered chatId/userId can reach the agent
84
+ - Role-based: master/user/guest — commands, tools, memory all gated
85
+ - Secrets vault: AES-256-GCM, scrypt-derived key, auto-encrypt on ingest
86
+ - Injection scanner on all inbound messages
87
+ - SSRF guard on browser agent
88
+ - Credential redaction in all logs and exports
54
89
 
55
90
  ## Supported Transports
56
91
 
57
- | Transport | Provider |
58
- |-----------|----------|
59
- | ACP | kiro-cli, gemini-cli, Codex, Claude Code |
60
- | Direct API | OpenRouter, ollama, any OpenAI-compatible endpoint |
61
- | Hooks | abmind hooks (standalone CLI agents) |
92
+ | Transport | Providers |
93
+ |-----------|-----------|
94
+ | ACP (recommended) | kiro-cli, gemini-cli |
95
+ | Direct API | ollama, OpenRouter, any OpenAI-compatible endpoint |
96
+ | Hooks (standalone) | abmind lifecycle hooks on any CLI agent |
62
97
 
63
98
  ## Requirements
64
99
 
65
100
  - Node.js 22+
66
- - A Telegram bot token
67
- - At least one model provider (kiro-cli, gemini-cli, ollama, OpenRouter, Codex, or Claude Code)
101
+ - A Telegram bot token (Discord/IRC optional)
102
+ - At least one model provider
68
103
 
69
104
  Optional: ollama + `nomic-embed-text` for memory embeddings.
70
105
 
106
+ ## Documentation
107
+
108
+ - [Installation](docs/wiki/install.md)
109
+ - [Configuration](docs/wiki/commands.md)
110
+ - [CLI Reference](docs/wiki/cli.md)
111
+ - [Memory System (abmind)](https://github.com/aksika/abmind)
112
+ - [Skills & Extensions](docs/wiki/skills.md)
113
+ - [Deployment & Supervision](docs/wiki/supervision.md)
114
+
115
+ Full docs: **[aksika.github.io/abtars](https://aksika.github.io/abtars/)**
116
+
117
+ ## Numbers
118
+
119
+ - 1794 tests (abtars 1016 + abmind 778)
120
+ - 5 agent types (professor, dreamy, browsie, coding, cron)
121
+ - 5-layer supervision stack
122
+ - 3 platform adapters + OpenAI-compatible API
123
+ - 12-step nightly memory maintenance
124
+
71
125
  ## Development
72
126
 
73
127
  ```bash
@@ -76,6 +130,11 @@ cd abtars && npm install && npm run build
76
130
  npm test
77
131
  ```
78
132
 
133
+ ## Community
134
+
135
+ - **Discord:** [Join](https://discord.gg/pj2qbWJT8)
136
+ - **GitHub:** [aksika/abtars](https://github.com/aksika/abtars) · [aksika/abmind](https://github.com/aksika/abmind)
137
+
79
138
  ## License
80
139
 
81
140
  Apache-2.0
@@ -1,26 +1,27 @@
1
1
  #!/usr/bin/env node
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
- import {
4
- sleep_exports
5
- } from "./chunk-7I5C2U3C.js";
6
3
  import {
7
4
  browser_exports
8
- } from "./chunk-VYR25H37.js";
9
- import "./chunk-LDKSCXGL.js";
5
+ } from "./chunk-UBQJA7N4.js";
6
+ import "./chunk-4IQ2HVXR.js";
10
7
  import {
11
8
  hotskills_exports
12
9
  } from "./chunk-RE3F3CFW.js";
13
- import "./chunk-HEHD3GG5.js";
10
+ import {
11
+ sleep_exports
12
+ } from "./chunk-DWCCYHRT.js";
13
+ import "./chunk-UUOUTFBM.js";
14
14
  import "./chunk-JAJ3DUQ2.js";
15
15
  import "./chunk-BYDUMHXT.js";
16
16
  import "./chunk-UDZIZB5F.js";
17
17
  import "./chunk-TBLYGCPQ.js";
18
18
  import "./chunk-GPL57SRN.js";
19
19
  import "./chunk-MZWMYN4O.js";
20
- import "./chunk-KSEIWT4T.js";
21
- import "./chunk-EX2SRTUE.js";
20
+ import "./chunk-ZAUTS7MH.js";
22
21
  import "./chunk-PZE3J7ER.js";
22
+ import "./chunk-EX2SRTUE.js";
23
23
  import "./chunk-2BY6I4P5.js";
24
+ import "./chunk-DGS7J4P6.js";
24
25
  import "./chunk-MJ6PHMOK.js";
25
26
  import "./chunk-7K2YZTLD.js";
26
27
 
@@ -33,4 +34,4 @@ var capabilities = [
33
34
  export {
34
35
  capabilities
35
36
  };
36
- //# sourceMappingURL=_registry.generated-N74SMTUJ.js.map
37
+ //# sourceMappingURL=_registry.generated-AJRCDWPQ.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/capabilities/_registry.generated.ts"],
4
4
  "sourcesContent": ["// AUTO-GENERATED by esbuild.config.js \u2014 do not edit\n// Static capability registry for bundled builds\n\nimport * as cap0 from \"./browser/index.js\";\nimport * as cap1 from \"./hotskills/index.js\";\nimport * as cap2 from \"./sleep/index.js\";\n\nexport const capabilities = [\n { name: \"browser\", module: cap0 },\n { name: \"hotskills\", module: cap1 },\n { name: \"sleep\", module: cap2 },\n];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,IAAM,eAAe;AAAA,EAC1B,EAAE,MAAM,WAAW,QAAQ,gBAAK;AAAA,EAChC,EAAE,MAAM,aAAa,QAAQ,kBAAK;AAAA,EAClC,EAAE,MAAM,SAAS,QAAQ,cAAK;AAChC;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,IAAM,eAAe;AAAA,EAC1B,EAAE,MAAM,WAAW,QAAQ,gBAAK;AAAA,EAChC,EAAE,MAAM,aAAa,QAAQ,kBAAK;AAAA,EAClC,EAAE,MAAM,SAAS,QAAQ,cAAK;AAChC;",
6
6
  "names": []
7
7
  }
@@ -5,9 +5,9 @@ import {
5
5
  BrowserTool,
6
6
  DomainAllowlist,
7
7
  getDefaultSocketPath
8
- } from "./chunk-KSEIWT4T.js";
9
- import "./chunk-EX2SRTUE.js";
8
+ } from "./chunk-ZAUTS7MH.js";
10
9
  import "./chunk-PZE3J7ER.js";
10
+ import "./chunk-EX2SRTUE.js";
11
11
  import "./chunk-2BY6I4P5.js";
12
12
  import "./chunk-MJ6PHMOK.js";
13
13
  import "./chunk-7K2YZTLD.js";
@@ -2,10 +2,10 @@
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-VREI2GUO.js";
5
+ } from "./chunk-4NZGCLOX.js";
6
6
  import {
7
7
  rollback
8
- } from "./chunk-EZZBO2QK.js";
8
+ } from "./chunk-2SH2U57T.js";
9
9
  import {
10
10
  acquireLock,
11
11
  atomicSwap,
@@ -19,7 +19,7 @@ import {
19
19
  readSentinel,
20
20
  writeManifest,
21
21
  writeSentinel
22
- } from "./chunk-JRK3UFBS.js";
22
+ } from "./chunk-WMWI3SJ7.js";
23
23
  import {
24
24
  restart
25
25
  } from "./chunk-URAQLQ2U.js";
@@ -314,10 +314,14 @@ var ABTARS_EXCLUDE = [
314
314
  "current",
315
315
  "bin",
316
316
  "app",
317
+ "app.prev*",
318
+ "app.staging",
319
+ "app.broken",
317
320
  "logs",
318
321
  "node_modules",
319
322
  "overflow",
320
323
  "browser-socket",
324
+ "src",
321
325
  "bridge.lock",
322
326
  "watchdog.lock",
323
327
  "browse-spawn.sock",
@@ -578,7 +582,7 @@ async function runInteractive(existing) {
578
582
  const { intro, outro, text, select, confirm: confirm2, isCancel, cancel } = await import("./dist-J3T4XVKX.js");
579
583
  intro("abtars onboard \u2014 first-time setup");
580
584
  const noteEmpty = "press Enter to skip";
581
- const { packagePaths: pp, readManifest: rm3 } = await import("./deploy-lib-import-PJXUADPS.js");
585
+ const { packagePaths: pp, readManifest: rm3 } = await import("./deploy-lib-import-6VJTYXEG.js");
582
586
  const mfPaths = pp("abtars");
583
587
  const mf = await rm3(mfPaths.manifest);
584
588
  const installMode = mf?.installMode ?? "supervised";
@@ -1014,7 +1018,7 @@ async function onboard(opts) {
1014
1018
  }
1015
1019
  if (secrets.length > 0) process.stdout.write(`\u2713 ${secrets.length} secrets \u2192 ${secretDirPath}
1016
1020
  `);
1017
- const { writeManifest: writeManifest2 } = await import("./deploy-lib-import-PJXUADPS.js");
1021
+ const { writeManifest: writeManifest2 } = await import("./deploy-lib-import-6VJTYXEG.js");
1018
1022
  const mf = await readManifest(paths.manifest);
1019
1023
  if (mf) await writeManifest2(paths.manifest, { ...mf, installMode: answers.installMode });
1020
1024
  process.stdout.write(`\u2713 install mode: ${answers.installMode}
@@ -1600,7 +1604,7 @@ Use --source local (default) or --source npm.
1600
1604
  previousVersion: prior?.version ?? null,
1601
1605
  previousCommit: prior?.commit ?? null,
1602
1606
  installMode: prior?.installMode ?? "supervised",
1603
- repoRoot: opts.fromLocal && existsSync8(join10(repoRoot, ".git")) ? repoRoot : prior?.repoRoot ?? null
1607
+ repoRoot
1604
1608
  });
1605
1609
  process.stdout.write(`\u2713 manifest updated
1606
1610
  `);
@@ -1695,7 +1699,7 @@ async function postSwapHousekeeping(paths, repoRoot, _staged) {
1695
1699
  }
1696
1700
  process.stdout.write(`\u2713 scripts refreshed (${scriptFiles.length} files)
1697
1701
  `);
1698
- const { writeWrapper } = await import("./install-6H3APAIJ.js");
1702
+ const { writeWrapper } = await import("./install-EBD7J27R.js");
1699
1703
  await mkdir4(paths.bin, { recursive: true });
1700
1704
  for (const name of installManifest.cliWrappers) {
1701
1705
  await writeWrapper(paths.bin, name, paths.app, false);