agentvault 1.0.1 → 1.0.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 (292) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/dist/cli/commands/approve.js +5 -5
  3. package/dist/cli/commands/archive.js +5 -5
  4. package/dist/cli/commands/backup.js +5 -5
  5. package/dist/cli/commands/cloud-backup.js +12 -12
  6. package/dist/cli/commands/decrypt.js +2 -2
  7. package/dist/cli/commands/deploy.js +1 -1
  8. package/dist/cli/commands/exec.js +2 -2
  9. package/dist/cli/commands/fetch.js +4 -4
  10. package/dist/cli/commands/inference.js +5 -5
  11. package/dist/cli/commands/init.d.ts +1 -1
  12. package/dist/cli/commands/init.js +16 -16
  13. package/dist/cli/commands/list.js +4 -4
  14. package/dist/cli/commands/package.js +2 -2
  15. package/dist/cli/commands/profile.js +1 -1
  16. package/dist/cli/commands/rebuild.js +2 -2
  17. package/dist/cli/commands/show.js +1 -1
  18. package/dist/cli/commands/status.d.ts +1 -1
  19. package/dist/cli/commands/status.js +8 -8
  20. package/dist/cli/commands/trace.js +1 -1
  21. package/dist/cli/commands/wallet-export.js +1 -1
  22. package/dist/cli/commands/wallet-sign.js +1 -1
  23. package/dist/cli/commands/wallet.d.ts +1 -1
  24. package/dist/cli/commands/wallet.js +1 -1
  25. package/dist/cli/index.d.ts +2 -2
  26. package/dist/cli/index.js +3 -3
  27. package/dist/src/archival/archive-manager.d.ts +85 -0
  28. package/dist/src/archival/archive-manager.js +294 -0
  29. package/dist/src/archival/arweave-client.d.ts +88 -0
  30. package/dist/src/archival/arweave-client.js +223 -0
  31. package/dist/src/archival/index.d.ts +8 -0
  32. package/{src/archival/index.ts → dist/src/archival/index.js} +1 -1
  33. package/dist/src/backup/backup.d.ts +67 -0
  34. package/dist/src/backup/backup.js +231 -0
  35. package/dist/src/backup/index.d.ts +7 -0
  36. package/{src/backup/index.ts → dist/src/backup/index.js} +1 -1
  37. package/dist/src/cloud-storage/cloud-sync.d.ts +49 -0
  38. package/dist/src/cloud-storage/cloud-sync.js +372 -0
  39. package/dist/src/cloud-storage/index.d.ts +11 -0
  40. package/{src/cloud-storage/index.ts → dist/src/cloud-storage/index.js} +1 -1
  41. package/dist/src/cloud-storage/provider-detector.d.ts +34 -0
  42. package/dist/src/cloud-storage/provider-detector.js +158 -0
  43. package/{src/cloud-storage/types.ts → dist/src/cloud-storage/types.d.ts} +40 -53
  44. package/dist/src/cloud-storage/types.js +10 -0
  45. package/dist/src/debugging/index.d.ts +6 -0
  46. package/{src/debugging/index.ts → dist/src/debugging/index.js} +1 -1
  47. package/dist/src/debugging/logs.d.ts +32 -0
  48. package/dist/src/debugging/logs.js +158 -0
  49. package/dist/src/debugging/types.d.ts +91 -0
  50. package/dist/src/debugging/types.js +5 -0
  51. package/dist/src/deployment/deployer.d.ts +52 -0
  52. package/dist/src/deployment/deployer.js +211 -0
  53. package/dist/src/deployment/icpClient.d.ts +144 -0
  54. package/dist/src/deployment/icpClient.js +545 -0
  55. package/dist/src/deployment/index.d.ts +11 -0
  56. package/dist/src/deployment/index.js +14 -0
  57. package/dist/src/deployment/promotion.d.ts +32 -0
  58. package/dist/src/deployment/promotion.js +114 -0
  59. package/dist/src/deployment/types.d.ts +101 -0
  60. package/dist/src/deployment/types.js +5 -0
  61. package/dist/src/icp/batch.d.ts +112 -0
  62. package/dist/src/icp/batch.js +273 -0
  63. package/dist/src/icp/cycles.d.ts +29 -0
  64. package/{src/icp/cycles.ts → dist/src/icp/cycles.js} +8 -22
  65. package/dist/src/icp/environment.d.ts +60 -0
  66. package/dist/src/icp/environment.js +183 -0
  67. package/dist/src/icp/icpcli.d.ts +204 -0
  68. package/dist/src/icp/icpcli.js +374 -0
  69. package/dist/src/icp/icwasm.d.ts +94 -0
  70. package/dist/src/icp/icwasm.js +197 -0
  71. package/dist/src/icp/identity.d.ts +50 -0
  72. package/{src/icp/identity.ts → dist/src/icp/identity.js} +15 -28
  73. package/dist/src/icp/index.d.ts +16 -0
  74. package/dist/src/icp/index.js +20 -0
  75. package/dist/src/icp/optimization.d.ts +16 -0
  76. package/dist/src/icp/optimization.js +225 -0
  77. package/dist/src/icp/tokens.d.ts +24 -0
  78. package/{src/icp/tokens.ts → dist/src/icp/tokens.js} +5 -12
  79. package/dist/src/icp/tool-detector.d.ts +31 -0
  80. package/dist/src/icp/tool-detector.js +104 -0
  81. package/dist/src/icp/types.d.ts +493 -0
  82. package/dist/src/icp/types.js +7 -0
  83. package/dist/src/index.d.ts +12 -0
  84. package/dist/src/index.js +18 -0
  85. package/dist/src/inference/bittensor-client.d.ts +108 -0
  86. package/dist/src/inference/bittensor-client.js +224 -0
  87. package/dist/src/inference/index.d.ts +8 -0
  88. package/{src/inference/index.ts → dist/src/inference/index.js} +1 -1
  89. package/dist/src/inference/inference-manager.d.ts +76 -0
  90. package/dist/src/inference/inference-manager.js +228 -0
  91. package/dist/src/metrics/index.d.ts +7 -0
  92. package/{src/metrics/index.ts → dist/src/metrics/index.js} +1 -1
  93. package/dist/src/metrics/metrics.d.ts +39 -0
  94. package/dist/src/metrics/metrics.js +129 -0
  95. package/dist/src/monitoring/alerting.d.ts +51 -0
  96. package/dist/src/monitoring/alerting.js +169 -0
  97. package/dist/src/monitoring/health.d.ts +40 -0
  98. package/dist/src/monitoring/health.js +164 -0
  99. package/dist/src/monitoring/index.d.ts +10 -0
  100. package/dist/src/monitoring/index.js +12 -0
  101. package/dist/src/monitoring/info.d.ts +15 -0
  102. package/dist/src/monitoring/info.js +109 -0
  103. package/dist/src/monitoring/types.d.ts +93 -0
  104. package/dist/src/monitoring/types.js +7 -0
  105. package/dist/src/network/index.d.ts +5 -0
  106. package/{src/network/index.ts → dist/src/network/index.js} +1 -1
  107. package/dist/src/network/network-config.d.ts +31 -0
  108. package/dist/src/network/network-config.js +109 -0
  109. package/dist/src/packaging/compiler.d.ts +61 -0
  110. package/dist/src/packaging/compiler.js +562 -0
  111. package/dist/src/packaging/config-persistence.d.ts +46 -0
  112. package/dist/src/packaging/config-persistence.js +108 -0
  113. package/dist/src/packaging/config-schemas.d.ts +115 -0
  114. package/dist/src/packaging/config-schemas.js +43 -0
  115. package/dist/src/packaging/detector.d.ts +26 -0
  116. package/dist/src/packaging/detector.js +193 -0
  117. package/dist/src/packaging/index.d.ts +16 -0
  118. package/dist/src/packaging/index.js +22 -0
  119. package/dist/src/packaging/packager.d.ts +31 -0
  120. package/dist/src/packaging/packager.js +90 -0
  121. package/dist/src/packaging/parsers/clawdbot.d.ts +19 -0
  122. package/dist/src/packaging/parsers/clawdbot.js +231 -0
  123. package/dist/src/packaging/parsers/cline.d.ts +26 -0
  124. package/dist/src/packaging/parsers/cline.js +185 -0
  125. package/dist/src/packaging/parsers/generic.d.ts +27 -0
  126. package/dist/src/packaging/parsers/generic.js +228 -0
  127. package/dist/src/packaging/parsers/goose.d.ts +26 -0
  128. package/dist/src/packaging/parsers/goose.js +175 -0
  129. package/dist/src/packaging/parsers/index.d.ts +11 -0
  130. package/{src/packaging/parsers/index.ts → dist/src/packaging/parsers/index.js} +1 -1
  131. package/dist/src/packaging/serializer.d.ts +108 -0
  132. package/dist/src/packaging/serializer.js +153 -0
  133. package/dist/src/packaging/types.d.ts +131 -0
  134. package/dist/src/packaging/types.js +5 -0
  135. package/dist/src/packaging/wasmedge-compiler.d.ts +76 -0
  136. package/dist/src/packaging/wasmedge-compiler.js +349 -0
  137. package/dist/src/security/index.d.ts +11 -0
  138. package/{src/security/index.ts → dist/src/security/index.js} +1 -4
  139. package/dist/src/security/multisig.d.ts +102 -0
  140. package/dist/src/security/multisig.js +283 -0
  141. package/dist/src/security/types.d.ts +207 -0
  142. package/dist/src/security/types.js +217 -0
  143. package/dist/src/security/vetkeys.d.ts +179 -0
  144. package/dist/src/security/vetkeys.js +499 -0
  145. package/dist/src/testing/index.d.ts +6 -0
  146. package/{src/testing/index.ts → dist/src/testing/index.js} +1 -1
  147. package/dist/src/testing/local-runner.d.ts +23 -0
  148. package/dist/src/testing/local-runner.js +226 -0
  149. package/dist/src/testing/types.d.ts +98 -0
  150. package/dist/src/testing/types.js +5 -0
  151. package/dist/src/wallet/cbor-serializer.d.ts +82 -0
  152. package/dist/src/wallet/cbor-serializer.js +282 -0
  153. package/dist/src/wallet/chain-dispatcher.d.ts +112 -0
  154. package/dist/src/wallet/chain-dispatcher.js +241 -0
  155. package/dist/src/wallet/cross-chain-aggregator.d.ts +119 -0
  156. package/dist/src/wallet/cross-chain-aggregator.js +235 -0
  157. package/dist/src/wallet/index.d.ts +16 -0
  158. package/dist/src/wallet/index.js +22 -0
  159. package/dist/src/wallet/key-derivation.d.ts +117 -0
  160. package/dist/src/wallet/key-derivation.js +325 -0
  161. package/dist/src/wallet/providers/base-provider.d.ts +111 -0
  162. package/dist/src/wallet/providers/base-provider.js +58 -0
  163. package/dist/src/wallet/providers/cketh-provider.d.ts +104 -0
  164. package/dist/src/wallet/providers/cketh-provider.js +343 -0
  165. package/dist/src/wallet/providers/polkadot-provider.d.ts +115 -0
  166. package/dist/src/wallet/providers/polkadot-provider.js +407 -0
  167. package/dist/src/wallet/providers/solana-provider.d.ts +102 -0
  168. package/dist/src/wallet/providers/solana-provider.js +393 -0
  169. package/dist/src/wallet/transaction-queue.d.ts +133 -0
  170. package/dist/src/wallet/transaction-queue.js +195 -0
  171. package/dist/src/wallet/types.d.ts +167 -0
  172. package/dist/src/wallet/types.js +5 -0
  173. package/dist/src/wallet/vetkeys-adapter.d.ts +134 -0
  174. package/dist/src/wallet/vetkeys-adapter.js +313 -0
  175. package/dist/src/wallet/wallet-manager.d.ts +202 -0
  176. package/dist/src/wallet/wallet-manager.js +451 -0
  177. package/dist/src/wallet/wallet-storage.d.ts +131 -0
  178. package/dist/src/wallet/wallet-storage.js +274 -0
  179. package/macos-wallet-app/AgentVaultWallet/App/AgentVaultWalletApp.swift +54 -0
  180. package/macos-wallet-app/AgentVaultWallet/Models/AppState.swift +102 -0
  181. package/macos-wallet-app/AgentVaultWallet/Models/Chain.swift +121 -0
  182. package/macos-wallet-app/AgentVaultWallet/Models/Wallet.swift +98 -0
  183. package/macos-wallet-app/AgentVaultWallet/Resources/AgentVaultWallet.entitlements +27 -0
  184. package/macos-wallet-app/AgentVaultWallet/Resources/Info.plist +69 -0
  185. package/macos-wallet-app/AgentVaultWallet/Services/BackupService.swift +270 -0
  186. package/macos-wallet-app/AgentVaultWallet/Services/CLIBridge.swift +367 -0
  187. package/macos-wallet-app/AgentVaultWallet/Services/CryptoService.swift +157 -0
  188. package/macos-wallet-app/AgentVaultWallet/Services/FileService.swift +120 -0
  189. package/macos-wallet-app/AgentVaultWallet/Services/KeychainService.swift +219 -0
  190. package/macos-wallet-app/AgentVaultWallet/Utilities/Constants.swift +44 -0
  191. package/macos-wallet-app/AgentVaultWallet/Utilities/Extensions.swift +115 -0
  192. package/macos-wallet-app/AgentVaultWallet/ViewModels/BackupViewModel.swift +237 -0
  193. package/macos-wallet-app/AgentVaultWallet/ViewModels/CreateWalletViewModel.swift +137 -0
  194. package/macos-wallet-app/AgentVaultWallet/ViewModels/ImportWalletViewModel.swift +179 -0
  195. package/macos-wallet-app/AgentVaultWallet/ViewModels/WalletStore.swift +286 -0
  196. package/macos-wallet-app/AgentVaultWallet/Views/Backup/BackupView.swift +235 -0
  197. package/macos-wallet-app/AgentVaultWallet/Views/Backup/RestoreView.swift +316 -0
  198. package/macos-wallet-app/AgentVaultWallet/Views/Create/CreateWalletFlow.swift +438 -0
  199. package/macos-wallet-app/AgentVaultWallet/Views/Import/ImportWalletFlow.swift +399 -0
  200. package/macos-wallet-app/AgentVaultWallet/Views/MainView.swift +134 -0
  201. package/macos-wallet-app/AgentVaultWallet/Views/Settings/SettingsView.swift +276 -0
  202. package/macos-wallet-app/AgentVaultWallet/Views/Sidebar/SidebarView.swift +133 -0
  203. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/DashboardView.swift +233 -0
  204. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletDetailView.swift +281 -0
  205. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletListView.swift +280 -0
  206. package/macos-wallet-app/AgentVaultWallet/Views/Welcome/WelcomeView.swift +176 -0
  207. package/macos-wallet-app/Makefile +47 -0
  208. package/macos-wallet-app/project.yml +40 -0
  209. package/macos-wallet-app/setup.sh +73 -0
  210. package/package.json +10 -2
  211. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-28-967Z.json +0 -28
  212. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-29-032Z.backup +0 -1
  213. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-373Z.json +0 -28
  214. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-428Z.backup +0 -1
  215. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-132Z.json +0 -28
  216. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-247Z.backup +0 -1
  217. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-216Z.json +0 -28
  218. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-283Z.backup +0 -1
  219. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-772Z.backup +0 -1
  220. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-793Z.json +0 -28
  221. package/backups/test-backup.json +0 -28
  222. package/scripts/dev-dashboard.mjs +0 -84
  223. package/site/README.md +0 -63
  224. package/site/docusaurus.config.ts +0 -148
  225. package/site/package-lock.json +0 -18383
  226. package/site/package.json +0 -47
  227. package/site/sidebars.ts +0 -86
  228. package/site/static/.gitkeep +0 -0
  229. package/site/static/img/logo.svg +0 -28
  230. package/site/static/img/og-image.svg +0 -35
  231. package/src/archival/archive-manager.ts +0 -372
  232. package/src/archival/arweave-client.ts +0 -289
  233. package/src/backup/backup.ts +0 -315
  234. package/src/cloud-storage/cloud-sync.ts +0 -461
  235. package/src/cloud-storage/provider-detector.ts +0 -198
  236. package/src/debugging/logs.ts +0 -193
  237. package/src/debugging/types.ts +0 -100
  238. package/src/deployment/deployer.ts +0 -274
  239. package/src/deployment/icpClient.ts +0 -620
  240. package/src/deployment/index.ts +0 -46
  241. package/src/deployment/promotion.ts +0 -161
  242. package/src/deployment/types.ts +0 -111
  243. package/src/icp/batch.ts +0 -374
  244. package/src/icp/environment.ts +0 -215
  245. package/src/icp/icpcli.ts +0 -438
  246. package/src/icp/icwasm.ts +0 -222
  247. package/src/icp/index.ts +0 -94
  248. package/src/icp/optimization.ts +0 -242
  249. package/src/icp/tool-detector.ts +0 -110
  250. package/src/icp/types.ts +0 -574
  251. package/src/index.ts +0 -25
  252. package/src/inference/bittensor-client.ts +0 -304
  253. package/src/inference/inference-manager.ts +0 -327
  254. package/src/metrics/metrics.ts +0 -186
  255. package/src/monitoring/alerting.ts +0 -190
  256. package/src/monitoring/health.ts +0 -197
  257. package/src/monitoring/index.ts +0 -38
  258. package/src/monitoring/info.ts +0 -114
  259. package/src/monitoring/types.ts +0 -99
  260. package/src/network/network-config.ts +0 -129
  261. package/src/packaging/compiler.ts +0 -647
  262. package/src/packaging/config-persistence.ts +0 -135
  263. package/src/packaging/config-schemas.ts +0 -156
  264. package/src/packaging/detector.ts +0 -220
  265. package/src/packaging/index.ts +0 -90
  266. package/src/packaging/packager.ts +0 -118
  267. package/src/packaging/parsers/clawdbot.ts +0 -278
  268. package/src/packaging/parsers/cline.ts +0 -223
  269. package/src/packaging/parsers/generic.ts +0 -266
  270. package/src/packaging/parsers/goose.ts +0 -214
  271. package/src/packaging/serializer.ts +0 -260
  272. package/src/packaging/types.ts +0 -144
  273. package/src/packaging/wasmedge-compiler.ts +0 -406
  274. package/src/security/multisig.ts +0 -415
  275. package/src/security/types.ts +0 -416
  276. package/src/security/vetkeys.ts +0 -655
  277. package/src/testing/local-runner.ts +0 -264
  278. package/src/testing/types.ts +0 -104
  279. package/src/wallet/cbor-serializer.ts +0 -323
  280. package/src/wallet/chain-dispatcher.ts +0 -313
  281. package/src/wallet/cross-chain-aggregator.ts +0 -346
  282. package/src/wallet/index.ts +0 -76
  283. package/src/wallet/key-derivation.ts +0 -425
  284. package/src/wallet/providers/base-provider.ts +0 -154
  285. package/src/wallet/providers/cketh-provider.ts +0 -434
  286. package/src/wallet/providers/polkadot-provider.ts +0 -503
  287. package/src/wallet/providers/solana-provider.ts +0 -490
  288. package/src/wallet/transaction-queue.ts +0 -284
  289. package/src/wallet/types.ts +0 -178
  290. package/src/wallet/vetkeys-adapter.ts +0 -431
  291. package/src/wallet/wallet-manager.ts +0 -597
  292. package/src/wallet/wallet-storage.ts +0 -380
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Config Persistence Module
3
+ *
4
+ * Manages agent configuration storage in ~/.agentvault/agents/<agent-id>/
5
+ * Supports reading, writing, and listing agent configurations.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import * as os from 'node:os';
10
+ /**
11
+ * Base agent vault directory
12
+ */
13
+ const AGENT_VAULT_DIR = path.join(os.homedir(), '.agentvault');
14
+ /**
15
+ * Agents directory within agent vault
16
+ */
17
+ const AGENTS_DIR = path.join(AGENT_VAULT_DIR, 'agents');
18
+ /**
19
+ * Get config file path for an agent
20
+ *
21
+ * @param agentId - Agent identifier
22
+ * @param fileName - Name of the config file (default: 'agent.json')
23
+ */
24
+ export function getConfigPath(agentId, fileName = 'agent.json') {
25
+ const agentDir = path.join(AGENTS_DIR, agentId);
26
+ return path.join(agentDir, fileName);
27
+ }
28
+ /**
29
+ * Ensure agent vault directories exist
30
+ */
31
+ export function ensureVaultStructure() {
32
+ if (!fs.existsSync(AGENT_VAULT_DIR)) {
33
+ fs.mkdirSync(AGENT_VAULT_DIR, { recursive: true, mode: 0o700 });
34
+ }
35
+ if (!fs.existsSync(AGENTS_DIR)) {
36
+ fs.mkdirSync(AGENTS_DIR, { recursive: true, mode: 0o700 });
37
+ }
38
+ }
39
+ /**
40
+ * Write agent configuration to vault
41
+ *
42
+ * @param agentId - Agent identifier
43
+ * @param config - Parsed agent configuration
44
+ * @param fileName - Name of the config file (default: 'agent.json')
45
+ */
46
+ export function writeAgentConfig(agentId, config, fileName = 'agent.json') {
47
+ ensureVaultStructure();
48
+ const agentDir = path.join(AGENTS_DIR, agentId);
49
+ if (!fs.existsSync(agentDir)) {
50
+ fs.mkdirSync(agentDir, { recursive: true, mode: 0o700 });
51
+ }
52
+ const configPath = path.join(agentDir, fileName);
53
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
54
+ }
55
+ /**
56
+ * Read agent configuration from vault
57
+ *
58
+ * @param agentId - Agent identifier
59
+ * @param fileName - Name of the config file (default: 'agent.json')
60
+ */
61
+ export function readAgentConfig(agentId, fileName = 'agent.json') {
62
+ ensureVaultStructure();
63
+ const agentDir = path.join(AGENTS_DIR, agentId);
64
+ const configPath = path.join(agentDir, fileName);
65
+ if (!fs.existsSync(configPath)) {
66
+ return null;
67
+ }
68
+ try {
69
+ const content = fs.readFileSync(configPath, 'utf-8');
70
+ return JSON.parse(content);
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ }
76
+ /**
77
+ * List all agents in vault
78
+ *
79
+ * @returns Array of agent IDs
80
+ */
81
+ export function listAgents() {
82
+ ensureVaultStructure();
83
+ if (!fs.existsSync(AGENTS_DIR)) {
84
+ return [];
85
+ }
86
+ const entries = fs.readdirSync(AGENTS_DIR, { withFileTypes: true });
87
+ const agentIds = [];
88
+ for (const entry of entries) {
89
+ const entryPath = path.join(AGENTS_DIR, entry.name);
90
+ const stats = fs.statSync(entryPath);
91
+ if (stats.isDirectory() && fs.existsSync(path.join(entryPath, 'agent.json'))) {
92
+ agentIds.push(entry.name);
93
+ }
94
+ }
95
+ return agentIds;
96
+ }
97
+ /**
98
+ * Delete an agent's configuration from vault
99
+ *
100
+ * @param agentId - Agent identifier to remove
101
+ */
102
+ export function deleteAgentConfig(agentId) {
103
+ const agentDir = path.join(AGENTS_DIR, agentId);
104
+ if (fs.existsSync(agentDir)) {
105
+ fs.rmSync(agentDir, { recursive: true, force: true });
106
+ }
107
+ }
108
+ //# sourceMappingURL=config-persistence.js.map
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Agent Configuration Schemas
3
+ *
4
+ * Defines types and schemas for different agent configurations.
5
+ * Supports Clawdbot, Goose, Cline, and Generic agents.
6
+ */
7
+ /**
8
+ * Base agent configuration interface
9
+ */
10
+ export interface BaseAgentConfig {
11
+ name: string;
12
+ version?: string;
13
+ description?: string;
14
+ }
15
+ /**
16
+ * Clawdbot configuration interface
17
+ * Clawdbot uses a .clawdbot directory with JSON files
18
+ */
19
+ export interface ClawdbotConfig extends BaseAgentConfig {
20
+ type: 'clawdbot';
21
+ projects?: ClawdbotProject[];
22
+ tasks?: ClawdbotTask[];
23
+ context?: Record<string, unknown>;
24
+ settings?: ClawdbotSettings;
25
+ }
26
+ export interface ClawdbotProject {
27
+ id: string;
28
+ name: string;
29
+ path?: string;
30
+ description?: string;
31
+ }
32
+ export interface ClawdbotTask {
33
+ id: string;
34
+ name: string;
35
+ description?: string;
36
+ prompt?: string;
37
+ systemPrompt?: string;
38
+ }
39
+ export interface ClawdbotSettings {
40
+ model?: string;
41
+ temperature?: number;
42
+ maxTokens?: number;
43
+ systemPrompt?: string;
44
+ tools?: string[];
45
+ }
46
+ /**
47
+ * Goose configuration interface
48
+ * Goose uses YAML configuration files
49
+ */
50
+ export interface GooseConfig extends BaseAgentConfig {
51
+ type: 'goose';
52
+ model: string;
53
+ temperature?: number;
54
+ maxTokens?: number;
55
+ systemPrompt?: string;
56
+ tools?: string[];
57
+ workingDirectory?: string;
58
+ }
59
+ /**
60
+ * Cline configuration interface
61
+ * Cline uses JSON configuration
62
+ */
63
+ export interface ClineConfig extends BaseAgentConfig {
64
+ type: 'cline';
65
+ mode?: 'auto' | 'request';
66
+ claudeVersion?: string;
67
+ workingDirectory?: string;
68
+ autoConfirm?: boolean;
69
+ useReadline?: boolean;
70
+ allowedCommands?: string[];
71
+ }
72
+ /**
73
+ * Generic agent configuration interface
74
+ * Generic agents use agent.json or agent.yaml
75
+ */
76
+ export interface GenericConfig extends BaseAgentConfig {
77
+ type: 'generic';
78
+ entryPoint?: string;
79
+ workingDirectory?: string;
80
+ environment?: Record<string, string>;
81
+ allowedFiles?: string[];
82
+ maxFileSize?: number;
83
+ }
84
+ /**
85
+ * Union type for all agent configurations
86
+ */
87
+ export type ParsedAgentConfig = ClawdbotConfig | GooseConfig | ClineConfig | GenericConfig;
88
+ /**
89
+ * Validation result for agent configuration
90
+ */
91
+ export interface ConfigValidationResult {
92
+ valid: boolean;
93
+ errors: string[];
94
+ warnings: string[];
95
+ }
96
+ /**
97
+ * Config file location
98
+ */
99
+ export interface ConfigLocation {
100
+ path: string;
101
+ type: 'json' | 'yaml' | 'directory';
102
+ }
103
+ /**
104
+ * Default values for Clawdbot settings
105
+ */
106
+ export declare const DEFAULT_CLAWDBOT_SETTINGS: ClawdbotSettings;
107
+ /**
108
+ * Default values for Goose configuration
109
+ */
110
+ export declare const DEFAULT_GOOSE_CONFIG: Omit<GooseConfig, 'type'>;
111
+ /**
112
+ * Default values for Cline configuration
113
+ */
114
+ export declare const DEFAULT_CLINE_CONFIG: Omit<ClineConfig, 'type'>;
115
+ //# sourceMappingURL=config-schemas.d.ts.map
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Agent Configuration Schemas
3
+ *
4
+ * Defines types and schemas for different agent configurations.
5
+ * Supports Clawdbot, Goose, Cline, and Generic agents.
6
+ */
7
+ /**
8
+ * Default values for Clawdbot settings
9
+ */
10
+ export const DEFAULT_CLAWDBOT_SETTINGS = {
11
+ model: 'claude-3-5-sonnet-20240229',
12
+ temperature: 0.7,
13
+ maxTokens: 4096,
14
+ systemPrompt: '',
15
+ tools: [],
16
+ };
17
+ /**
18
+ * Default values for Goose configuration
19
+ */
20
+ export const DEFAULT_GOOSE_CONFIG = {
21
+ model: 'gpt-4',
22
+ temperature: 0.7,
23
+ maxTokens: 2048,
24
+ systemPrompt: '',
25
+ tools: [],
26
+ workingDirectory: '.',
27
+ name: 'Agent',
28
+ version: '1.0.0',
29
+ description: '',
30
+ };
31
+ /**
32
+ * Default values for Cline configuration
33
+ */
34
+ export const DEFAULT_CLINE_CONFIG = {
35
+ mode: 'auto',
36
+ autoConfirm: false,
37
+ useReadline: true,
38
+ workingDirectory: '.',
39
+ name: 'Agent',
40
+ version: '1.0.0',
41
+ description: '',
42
+ };
43
+ //# sourceMappingURL=config-schemas.js.map
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Agent type detection logic
3
+ *
4
+ * Detects what type of agent is in a given directory based on
5
+ * configuration files and directory structure.
6
+ */
7
+ import type { AgentType, AgentConfig } from './types.js';
8
+ /**
9
+ * Detect agent type from a source directory
10
+ */
11
+ export declare function detectAgentType(sourcePath: string): AgentType;
12
+ /**
13
+ * Detect agent configuration from a source directory
14
+ *
15
+ * @param sourcePath - Path to agent directory
16
+ * @returns Agent configuration with basic detection
17
+ */
18
+ export declare function detectAgent(sourcePath: string): AgentConfig;
19
+ /**
20
+ * Validate that the source path exists and is a directory
21
+ */
22
+ export declare function validateSourcePath(sourcePath: string): {
23
+ valid: boolean;
24
+ error?: string;
25
+ };
26
+ //# sourceMappingURL=detector.d.ts.map
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Agent type detection logic
3
+ *
4
+ * Detects what type of agent is in a given directory based on
5
+ * configuration files and directory structure.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import * as yaml from 'yaml';
10
+ /**
11
+ * Configuration file patterns for each agent type
12
+ */
13
+ const AGENT_PATTERNS = {
14
+ clawdbot: {
15
+ files: ['clawdbot.json', 'clawdbot.config.json', '.clawdbot'],
16
+ dirs: ['.clawdbot'],
17
+ },
18
+ goose: {
19
+ files: ['goose.yaml', 'goose.yml', 'goose.config.yaml', '.gooserc'],
20
+ dirs: ['.goose'],
21
+ },
22
+ cline: {
23
+ files: ['cline.json', 'cline.config.json', '.cline'],
24
+ dirs: ['.cline'],
25
+ },
26
+ generic: {
27
+ files: ['agent.json', 'agent.yaml', 'agent.yml', 'agentvault.json'],
28
+ dirs: [],
29
+ },
30
+ };
31
+ /**
32
+ * Check if a file exists at the given path
33
+ */
34
+ function fileExists(filePath) {
35
+ try {
36
+ return fs.existsSync(filePath) && fs.statSync(filePath).isFile();
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ /**
43
+ * Check if a directory exists at the given path
44
+ */
45
+ function directoryExists(dirPath) {
46
+ try {
47
+ return fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ }
53
+ /**
54
+ * Detect agent type from a source directory
55
+ */
56
+ export function detectAgentType(sourcePath) {
57
+ const absolutePath = path.resolve(sourcePath);
58
+ for (const agentType of ['clawdbot', 'goose', 'cline']) {
59
+ const patterns = AGENT_PATTERNS[agentType];
60
+ for (const file of patterns.files) {
61
+ const filePath = path.join(absolutePath, file);
62
+ if (fileExists(filePath)) {
63
+ return agentType;
64
+ }
65
+ }
66
+ for (const dir of patterns.dirs) {
67
+ const dirPath = path.join(absolutePath, dir);
68
+ if (directoryExists(dirPath)) {
69
+ return agentType;
70
+ }
71
+ }
72
+ }
73
+ return 'generic';
74
+ }
75
+ /**
76
+ * Extract agent name from the source path or config
77
+ */
78
+ function extractAgentName(sourcePath, config) {
79
+ if (config && typeof config.name === 'string' && config.name.trim()) {
80
+ return config.name.trim();
81
+ }
82
+ const dirName = path.basename(path.resolve(sourcePath));
83
+ const sanitizedName = dirName.toLowerCase().replace(/[^a-z0-9-]/g, '-');
84
+ return sanitizedName;
85
+ }
86
+ /**
87
+ * Find configuration file for a detected agent type
88
+ */
89
+ function findConfigFile(sourcePath, agentType) {
90
+ const absolutePath = path.resolve(sourcePath);
91
+ const patterns = AGENT_PATTERNS[agentType];
92
+ for (const file of patterns.files) {
93
+ const filePath = path.join(absolutePath, file);
94
+ if (fileExists(filePath)) {
95
+ return filePath;
96
+ }
97
+ }
98
+ return null;
99
+ }
100
+ /**
101
+ * Detect entry point for an agent
102
+ */
103
+ function detectEntryPoint(sourcePath, agentType) {
104
+ const absolutePath = path.resolve(sourcePath);
105
+ const entryPoints = [
106
+ 'index.ts',
107
+ 'index.js',
108
+ 'main.ts',
109
+ 'main.js',
110
+ 'agent.ts',
111
+ 'agent.js',
112
+ 'src/index.ts',
113
+ 'src/index.js',
114
+ 'src/main.ts',
115
+ 'src/main.js',
116
+ ];
117
+ if (agentType === 'clawdbot') {
118
+ entryPoints.unshift('clawdbot.ts', 'clawdbot.js');
119
+ }
120
+ else if (agentType === 'goose') {
121
+ entryPoints.unshift('goose.ts', 'goose.js');
122
+ }
123
+ else if (agentType === 'cline') {
124
+ entryPoints.unshift('cline.ts', 'cline.js');
125
+ }
126
+ for (const entry of entryPoints) {
127
+ const entryPath = path.join(absolutePath, entry);
128
+ if (fileExists(entryPath)) {
129
+ return entry;
130
+ }
131
+ }
132
+ return undefined;
133
+ }
134
+ /**
135
+ * Detect agent configuration from a source directory
136
+ *
137
+ * @param sourcePath - Path to agent directory
138
+ * @returns Agent configuration with basic detection
139
+ */
140
+ export function detectAgent(sourcePath) {
141
+ const absolutePath = path.resolve(sourcePath);
142
+ const agentType = detectAgentType(sourcePath);
143
+ const configFile = findConfigFile(sourcePath, agentType);
144
+ const config = configFile ? tryReadConfig(configFile) : null;
145
+ const name = extractAgentName(sourcePath, config);
146
+ const entryPoint = detectEntryPoint(sourcePath, agentType);
147
+ return {
148
+ name,
149
+ type: agentType,
150
+ sourcePath: absolutePath,
151
+ entryPoint,
152
+ version: config?.version,
153
+ };
154
+ }
155
+ /**
156
+ * Validate that the source path exists and is a directory
157
+ */
158
+ export function validateSourcePath(sourcePath) {
159
+ const absolutePath = path.resolve(sourcePath);
160
+ if (!fs.existsSync(absolutePath)) {
161
+ return {
162
+ valid: false,
163
+ error: `Source path does not exist: ${absolutePath}`,
164
+ };
165
+ }
166
+ if (!fs.statSync(absolutePath).isDirectory()) {
167
+ return {
168
+ valid: false,
169
+ error: `Source path is not a directory: ${absolutePath}`,
170
+ };
171
+ }
172
+ return { valid: true };
173
+ }
174
+ /**
175
+ * Try to read configuration file (JSON or YAML)
176
+ */
177
+ function tryReadConfig(filePath) {
178
+ try {
179
+ const content = fs.readFileSync(filePath, 'utf-8');
180
+ // Check file extension to determine format
181
+ if (filePath.endsWith('.json')) {
182
+ return JSON.parse(content);
183
+ }
184
+ else if (filePath.endsWith('.yaml') || filePath.endsWith('.yml') || filePath.endsWith('.gooserc')) {
185
+ return yaml.parse(content);
186
+ }
187
+ return null;
188
+ }
189
+ catch {
190
+ return null;
191
+ }
192
+ }
193
+ //# sourceMappingURL=detector.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Agent Packaging Module
3
+ *
4
+ * Exports all packaging-related functionality.
5
+ */
6
+ export type { AgentType, AgentConfig, PackageOptions, PackageResult, ValidationError, ValidationResult, } from './types.js';
7
+ export { detectAgent, detectAgentType, validateSourcePath } from './detector.js';
8
+ export { compileToWasm, generateWasm, generateWat, generateStateJson, validateWasmFile, } from './compiler.js';
9
+ export { generateWasmEdgeWrapper, validateWasmEdgeModule, generateWasmEdgeConfig, generateWasmEdgeManifest, type WasmEdgeOptions, DEFAULT_WASMEDGE_OPTIONS, } from './wasmedge-compiler.js';
10
+ export { serializeState, deserializeState, writeStateFile, readStateFile, createEmptyState, mergeStates, validateState, } from './serializer.js';
11
+ export { parseClawdbotConfig, findClawdbotConfigs, parseGooseConfig, findGooseConfigs, parseClineConfig, findClineConfigs, parseGenericConfig, findGenericConfigs, } from './parsers/index.js';
12
+ export { getConfigPath, writeAgentConfig, readAgentConfig, listAgents, deleteAgentConfig, } from './config-persistence.js';
13
+ export { DEFAULT_CLAWDBOT_SETTINGS, DEFAULT_GOOSE_CONFIG, DEFAULT_CLINE_CONFIG, } from './config-schemas.js';
14
+ export { getPackageSummary, packageAgent, } from './packager.js';
15
+ export type { Memory, Task, AgentState, SerializedAgentState, SerializationOptions, } from './serializer.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Agent Packaging Module
3
+ *
4
+ * Exports all packaging-related functionality.
5
+ */
6
+ // Detection
7
+ export { detectAgent, detectAgentType, validateSourcePath } from './detector.js';
8
+ // Compilation
9
+ export { compileToWasm, generateWasm, generateWat, generateStateJson, validateWasmFile, } from './compiler.js';
10
+ // WasmEdge Compiler
11
+ export { generateWasmEdgeWrapper, validateWasmEdgeModule, generateWasmEdgeConfig, generateWasmEdgeManifest, DEFAULT_WASMEDGE_OPTIONS, } from './wasmedge-compiler.js';
12
+ // Serialization
13
+ export { serializeState, deserializeState, writeStateFile, readStateFile, createEmptyState, mergeStates, validateState, } from './serializer.js';
14
+ // Parsers
15
+ export { parseClawdbotConfig, findClawdbotConfigs, parseGooseConfig, findGooseConfigs, parseClineConfig, findClineConfigs, parseGenericConfig, findGenericConfigs, } from './parsers/index.js';
16
+ // Config Persistence
17
+ export { getConfigPath, writeAgentConfig, readAgentConfig, listAgents, deleteAgentConfig, } from './config-persistence.js';
18
+ // Config Schemas
19
+ export { DEFAULT_CLAWDBOT_SETTINGS, DEFAULT_GOOSE_CONFIG, DEFAULT_CLINE_CONFIG, } from './config-schemas.js';
20
+ // Summary - used by package command
21
+ export { getPackageSummary, packageAgent, } from './packager.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Agent Packager
3
+ *
4
+ * Main orchestrator for the agent packaging pipeline.
5
+ * Coordinates detection, validation, and compilation.
6
+ */
7
+ import type { PackageOptions, PackageResult, ValidationResult } from './types.js';
8
+ import { detectAgent } from './detector.js';
9
+ /**
10
+ * Validate agent before packaging
11
+ */
12
+ export declare function validateAgent(sourcePath: string): ValidationResult;
13
+ /**
14
+ * Package an agent for deployment
15
+ *
16
+ * This is the main entry point for the packaging pipeline.
17
+ *
18
+ * @param options - Packaging options
19
+ * @returns Package result with paths to generated files
20
+ */
21
+ export declare function packageAgent(options: PackageOptions): Promise<PackageResult>;
22
+ /**
23
+ * Get a summary of what will be packaged
24
+ *
25
+ * Useful for preview/dry-run functionality
26
+ */
27
+ export declare function getPackageSummary(sourcePath: string): {
28
+ config: ReturnType<typeof detectAgent>;
29
+ validation: ValidationResult;
30
+ };
31
+ //# sourceMappingURL=packager.d.ts.map
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Agent Packager
3
+ *
4
+ * Main orchestrator for the agent packaging pipeline.
5
+ * Coordinates detection, validation, and compilation.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import { detectAgent, validateSourcePath } from './detector.js';
10
+ import { compileToWasm } from './compiler.js';
11
+ /**
12
+ * Default output directory name
13
+ */
14
+ const DEFAULT_OUTPUT_DIR = 'dist';
15
+ /**
16
+ * Validate agent before packaging
17
+ */
18
+ export function validateAgent(sourcePath) {
19
+ const errors = [];
20
+ const warnings = [];
21
+ // Validate source path exists
22
+ const pathValidation = validateSourcePath(sourcePath);
23
+ if (!pathValidation.valid) {
24
+ errors.push({
25
+ code: 'INVALID_SOURCE_PATH',
26
+ message: pathValidation.error,
27
+ filePath: sourcePath,
28
+ });
29
+ return { valid: false, errors, warnings };
30
+ }
31
+ // Detect agent to check for basic configuration
32
+ const config = detectAgent(sourcePath);
33
+ // Warn if no entry point detected
34
+ if (!config.entryPoint) {
35
+ warnings.push(`No entry point detected for agent '${config.name}'. Consider adding an index.ts or agent.ts file.`);
36
+ }
37
+ if (config.type === 'goose' && !config.entryPoint) {
38
+ const pythonCandidates = ['goose.py', 'main.py'];
39
+ const hasPythonEntrypoint = pythonCandidates.some((candidate) => fs.existsSync(path.join(path.resolve(sourcePath), candidate)));
40
+ if (hasPythonEntrypoint) {
41
+ warnings.push('Goose Python entrypoints are not supported by the bundler. Use a JS/TS entrypoint instead.');
42
+ }
43
+ }
44
+ // Warn if using generic type
45
+ if (config.type === 'generic') {
46
+ warnings.push(`Agent type detected as 'generic'. For better support, add a config file for clawdbot, goose, or cline.`);
47
+ }
48
+ return {
49
+ valid: errors.length === 0,
50
+ errors,
51
+ warnings,
52
+ };
53
+ }
54
+ /**
55
+ * Package an agent for deployment
56
+ *
57
+ * This is the main entry point for the packaging pipeline.
58
+ *
59
+ * @param options - Packaging options
60
+ * @returns Package result with paths to generated files
61
+ */
62
+ export async function packageAgent(options) {
63
+ const { sourcePath, outputPath, skipValidation = false } = options;
64
+ // Validate unless skipped
65
+ if (!skipValidation) {
66
+ const validation = validateAgent(sourcePath);
67
+ if (!validation.valid) {
68
+ const errorMessages = validation.errors.map((e) => e.message).join('; ');
69
+ throw new Error(`Validation failed: ${errorMessages}`);
70
+ }
71
+ }
72
+ // Detect agent configuration
73
+ const config = detectAgent(sourcePath);
74
+ // Determine output directory
75
+ const outputDir = outputPath ?? path.join(path.resolve(sourcePath), DEFAULT_OUTPUT_DIR);
76
+ // Compile to WASM (includes ic-wasm optimization pipeline)
77
+ const result = await compileToWasm(config, options, outputDir);
78
+ return result;
79
+ }
80
+ /**
81
+ * Get a summary of what will be packaged
82
+ *
83
+ * Useful for preview/dry-run functionality
84
+ */
85
+ export function getPackageSummary(sourcePath) {
86
+ const config = detectAgent(sourcePath);
87
+ const validation = validateAgent(sourcePath);
88
+ return { config, validation };
89
+ }
90
+ //# sourceMappingURL=packager.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Clawdbot Configuration Parser
3
+ *
4
+ * Parses Clawdbot agent configuration from .clawdbot directory.
5
+ * Reads JSON files and constructs full configuration object.
6
+ */
7
+ import type { ClawdbotConfig } from '../config-schemas.js';
8
+ /**
9
+ * Parse Clawdbot agent configuration
10
+ *
11
+ * This function reads .clawdbot directory or clawdbot.json file
12
+ * and returns a fully validated configuration object.
13
+ */
14
+ export declare function parseClawdbotConfig(sourcePath: string, verbose?: boolean): Promise<ClawdbotConfig>;
15
+ /**
16
+ * Find all Clawdbot configurations in a directory
17
+ */
18
+ export declare function findClawdbotConfigs(dir: string): Promise<string[]>;
19
+ //# sourceMappingURL=clawdbot.d.ts.map