aman-intelligence 0.1.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 (197) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +116 -0
  3. package/dist/bin/aman.d.ts +2 -0
  4. package/dist/bin/aman.js +165 -0
  5. package/dist/cli/global-install.d.ts +7 -0
  6. package/dist/cli/global-install.js +36 -0
  7. package/dist/cli/help-text.d.ts +1 -0
  8. package/dist/cli/help-text.js +62 -0
  9. package/dist/cli/version.d.ts +1 -0
  10. package/dist/cli/version.js +6 -0
  11. package/dist/commands/backup.d.ts +11 -0
  12. package/dist/commands/backup.js +262 -0
  13. package/dist/commands/browse.d.ts +11 -0
  14. package/dist/commands/browse.js +641 -0
  15. package/dist/commands/cache.d.ts +1 -0
  16. package/dist/commands/cache.js +38 -0
  17. package/dist/commands/config.d.ts +4 -0
  18. package/dist/commands/config.js +146 -0
  19. package/dist/commands/dashboard.d.ts +1 -0
  20. package/dist/commands/dashboard.js +1004 -0
  21. package/dist/commands/doctor.d.ts +4 -0
  22. package/dist/commands/doctor.js +54 -0
  23. package/dist/commands/export.d.ts +1 -0
  24. package/dist/commands/export.js +137 -0
  25. package/dist/commands/help.d.ts +1 -0
  26. package/dist/commands/help.js +47 -0
  27. package/dist/commands/import-wizard.d.ts +7 -0
  28. package/dist/commands/import-wizard.js +374 -0
  29. package/dist/commands/import.d.ts +9 -0
  30. package/dist/commands/import.js +351 -0
  31. package/dist/commands/info.d.ts +1 -0
  32. package/dist/commands/info.js +174 -0
  33. package/dist/commands/init.d.ts +20 -0
  34. package/dist/commands/init.js +146 -0
  35. package/dist/commands/install.d.ts +10 -0
  36. package/dist/commands/install.js +342 -0
  37. package/dist/commands/pack.d.ts +23 -0
  38. package/dist/commands/pack.js +331 -0
  39. package/dist/commands/registry.d.ts +6 -0
  40. package/dist/commands/registry.js +218 -0
  41. package/dist/commands/remove.d.ts +1 -0
  42. package/dist/commands/remove.js +76 -0
  43. package/dist/commands/search.d.ts +7 -0
  44. package/dist/commands/search.js +295 -0
  45. package/dist/commands/stack.d.ts +18 -0
  46. package/dist/commands/stack.js +327 -0
  47. package/dist/commands/sync.d.ts +9 -0
  48. package/dist/commands/sync.js +428 -0
  49. package/dist/commands/update.d.ts +1 -0
  50. package/dist/commands/update.js +97 -0
  51. package/dist/config/features.d.ts +2 -0
  52. package/dist/config/features.js +2 -0
  53. package/dist/config/index.d.ts +13 -0
  54. package/dist/config/index.js +80 -0
  55. package/dist/config/paths.d.ts +23 -0
  56. package/dist/config/paths.js +45 -0
  57. package/dist/import/adapters.d.ts +14 -0
  58. package/dist/import/adapters.js +580 -0
  59. package/dist/import/discovery.service.d.ts +8 -0
  60. package/dist/import/discovery.service.js +26 -0
  61. package/dist/import/import.service.d.ts +7 -0
  62. package/dist/import/import.service.js +259 -0
  63. package/dist/import/types.d.ts +71 -0
  64. package/dist/import/types.js +1 -0
  65. package/dist/import/utils.d.ts +36 -0
  66. package/dist/import/utils.js +428 -0
  67. package/dist/marketplace/cache.d.ts +18 -0
  68. package/dist/marketplace/cache.js +141 -0
  69. package/dist/marketplace/github-search.d.ts +17 -0
  70. package/dist/marketplace/github-search.js +268 -0
  71. package/dist/marketplace/install-from-candidate.d.ts +6 -0
  72. package/dist/marketplace/install-from-candidate.js +14 -0
  73. package/dist/marketplace/install.d.ts +15 -0
  74. package/dist/marketplace/install.js +54 -0
  75. package/dist/marketplace/metadata-validator.d.ts +8 -0
  76. package/dist/marketplace/metadata-validator.js +79 -0
  77. package/dist/marketplace/types.d.ts +34 -0
  78. package/dist/marketplace/types.js +1 -0
  79. package/dist/providers/local.provider.d.ts +9 -0
  80. package/dist/providers/local.provider.js +51 -0
  81. package/dist/providers/provider.interface.d.ts +7 -0
  82. package/dist/providers/provider.interface.js +1 -0
  83. package/dist/providers/registry.provider.d.ts +2 -0
  84. package/dist/providers/registry.provider.js +42 -0
  85. package/dist/providers/skills-sh.provider.d.ts +11 -0
  86. package/dist/providers/skills-sh.provider.js +56 -0
  87. package/dist/registry/adapter.interface.d.ts +16 -0
  88. package/dist/registry/adapter.interface.js +1 -0
  89. package/dist/registry/errors.d.ts +5 -0
  90. package/dist/registry/errors.js +8 -0
  91. package/dist/registry/filesystem-registry.adapter.d.ts +25 -0
  92. package/dist/registry/filesystem-registry.adapter.js +288 -0
  93. package/dist/registry/github-registry.adapter.d.ts +11 -0
  94. package/dist/registry/github-registry.adapter.js +32 -0
  95. package/dist/registry/index.d.ts +8 -0
  96. package/dist/registry/index.js +8 -0
  97. package/dist/registry/local-registry.adapter.d.ts +6 -0
  98. package/dist/registry/local-registry.adapter.js +9 -0
  99. package/dist/registry/registry.service.d.ts +44 -0
  100. package/dist/registry/registry.service.js +163 -0
  101. package/dist/registry/slug-utils.d.ts +12 -0
  102. package/dist/registry/slug-utils.js +51 -0
  103. package/dist/registry/types.d.ts +160 -0
  104. package/dist/registry/types.js +1 -0
  105. package/dist/services/asset.service.d.ts +12 -0
  106. package/dist/services/asset.service.js +142 -0
  107. package/dist/services/backup.service.d.ts +8 -0
  108. package/dist/services/backup.service.js +169 -0
  109. package/dist/services/classification.service.d.ts +31 -0
  110. package/dist/services/classification.service.js +271 -0
  111. package/dist/services/config.service.d.ts +9 -0
  112. package/dist/services/config.service.js +20 -0
  113. package/dist/services/doctor.service.d.ts +5 -0
  114. package/dist/services/doctor.service.js +186 -0
  115. package/dist/services/environment.service.d.ts +42 -0
  116. package/dist/services/environment.service.js +227 -0
  117. package/dist/services/github.service.d.ts +7 -0
  118. package/dist/services/github.service.js +42 -0
  119. package/dist/services/lock.service.d.ts +12 -0
  120. package/dist/services/lock.service.js +71 -0
  121. package/dist/services/marketplace.service.d.ts +40 -0
  122. package/dist/services/marketplace.service.js +225 -0
  123. package/dist/services/pack.service.d.ts +9 -0
  124. package/dist/services/pack.service.js +193 -0
  125. package/dist/services/stack.service.d.ts +9 -0
  126. package/dist/services/stack.service.js +94 -0
  127. package/dist/storage/asset-layout.d.ts +46 -0
  128. package/dist/storage/asset-layout.js +277 -0
  129. package/dist/storage/filesystem.d.ts +12 -0
  130. package/dist/storage/filesystem.js +113 -0
  131. package/dist/storage/scan-by-type.d.ts +2 -0
  132. package/dist/storage/scan-by-type.js +8 -0
  133. package/dist/storage/scanner.d.ts +11 -0
  134. package/dist/storage/scanner.js +188 -0
  135. package/dist/types/asset-metadata.d.ts +84 -0
  136. package/dist/types/asset-metadata.js +104 -0
  137. package/dist/types/index.d.ts +212 -0
  138. package/dist/types/index.js +1 -0
  139. package/dist/ui/animations/ErrorIndicator.d.ts +5 -0
  140. package/dist/ui/animations/ErrorIndicator.js +6 -0
  141. package/dist/ui/animations/GithubIndicator.d.ts +6 -0
  142. package/dist/ui/animations/GithubIndicator.js +9 -0
  143. package/dist/ui/animations/ProgressBar.d.ts +5 -0
  144. package/dist/ui/animations/ProgressBar.js +15 -0
  145. package/dist/ui/animations/Spinner.d.ts +5 -0
  146. package/dist/ui/animations/Spinner.js +21 -0
  147. package/dist/ui/animations/SuccessIndicator.d.ts +5 -0
  148. package/dist/ui/animations/SuccessIndicator.js +6 -0
  149. package/dist/ui/animations/SyncActivity.d.ts +5 -0
  150. package/dist/ui/animations/SyncActivity.js +21 -0
  151. package/dist/ui/animations/TransitionScreen.d.ts +7 -0
  152. package/dist/ui/animations/TransitionScreen.js +25 -0
  153. package/dist/ui/animations/useAnimationMode.d.ts +1 -0
  154. package/dist/ui/animations/useAnimationMode.js +16 -0
  155. package/dist/ui/assetDisplay.d.ts +19 -0
  156. package/dist/ui/assetDisplay.js +59 -0
  157. package/dist/ui/components/Confirm.d.ts +8 -0
  158. package/dist/ui/components/Confirm.js +14 -0
  159. package/dist/ui/components/CustomSelect.d.ts +19 -0
  160. package/dist/ui/components/CustomSelect.js +13 -0
  161. package/dist/ui/components/Header.d.ts +6 -0
  162. package/dist/ui/components/Header.js +9 -0
  163. package/dist/ui/components/HealthReport.d.ts +7 -0
  164. package/dist/ui/components/HealthReport.js +13 -0
  165. package/dist/ui/components/MarketplaceInstallConfirm.d.ts +19 -0
  166. package/dist/ui/components/MarketplaceInstallConfirm.js +23 -0
  167. package/dist/ui/components/Narrator.d.ts +9 -0
  168. package/dist/ui/components/Narrator.js +26 -0
  169. package/dist/ui/components/ScopePrompt.d.ts +8 -0
  170. package/dist/ui/components/ScopePrompt.js +23 -0
  171. package/dist/ui/components/TooSmallScreen.d.ts +8 -0
  172. package/dist/ui/components/TooSmallScreen.js +6 -0
  173. package/dist/ui/date.d.ts +2 -0
  174. package/dist/ui/date.js +33 -0
  175. package/dist/ui/layout.d.ts +23 -0
  176. package/dist/ui/layout.js +44 -0
  177. package/dist/ui/list-item.d.ts +12 -0
  178. package/dist/ui/list-item.js +1 -0
  179. package/dist/ui/marketplaceDisplay.d.ts +10 -0
  180. package/dist/ui/marketplaceDisplay.js +36 -0
  181. package/dist/ui/theme.d.ts +42 -0
  182. package/dist/ui/theme.js +47 -0
  183. package/dist/utils/asset-list-fields.d.ts +11 -0
  184. package/dist/utils/asset-list-fields.js +28 -0
  185. package/dist/utils/error-message.d.ts +2 -0
  186. package/dist/utils/error-message.js +6 -0
  187. package/dist/utils/integrity.d.ts +9 -0
  188. package/dist/utils/integrity.js +23 -0
  189. package/dist/utils/lock-migrate.d.ts +25 -0
  190. package/dist/utils/lock-migrate.js +93 -0
  191. package/dist/utils/mcp-local.d.ts +15 -0
  192. package/dist/utils/mcp-local.js +129 -0
  193. package/dist/utils/slug.d.ts +6 -0
  194. package/dist/utils/slug.js +13 -0
  195. package/dist/utils/stack-normalize.d.ts +3 -0
  196. package/dist/utils/stack-normalize.js +43 -0
  197. package/package.json +77 -0
@@ -0,0 +1,262 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { render, Box, Text, useApp, useInput } from 'ink';
4
+ import { backupService } from '../services/backup.service.js';
5
+ import { environmentService } from '../services/environment.service.js';
6
+ import { exists, listFiles } from '../storage/filesystem.js';
7
+ import { Confirm } from '../ui/components/Confirm.js';
8
+ import { Narrator } from '../ui/components/Narrator.js';
9
+ import { theme } from '../ui/theme.js';
10
+ import { getBackupLabel } from '../ui/date.js';
11
+ import path from 'path';
12
+ import { ProgressBar } from '../ui/animations/ProgressBar.js';
13
+ import { TransitionScreen } from '../ui/animations/TransitionScreen.js';
14
+ export const BackupApp = ({ subcmd, idOrName, bypassConfirm, onBack }) => {
15
+ const { exit } = useApp();
16
+ const handleExit = () => {
17
+ if (onBack)
18
+ onBack();
19
+ else
20
+ exit();
21
+ };
22
+ const [mode, setMode] = useState(bypassConfirm ? 'loading' : 'loading');
23
+ const [mochiState, setMochiState] = useState('searching');
24
+ const [message, setMessage] = useState('');
25
+ const [list, setList] = useState([]);
26
+ const [progress, setProgress] = useState(0);
27
+ useEffect(() => {
28
+ async function run() {
29
+ try {
30
+ if (subcmd === 'save') {
31
+ setMochiState('searching');
32
+ setMessage('Saving backup...');
33
+ const actualId = await backupService.save(idOrName);
34
+ setMochiState('success');
35
+ setMessage(`Saved backup: ${actualId}`);
36
+ setMode('done');
37
+ setTimeout(() => exit(), 1000);
38
+ }
39
+ else if (subcmd === 'list') {
40
+ setMochiState('searching');
41
+ setMessage('Listing backups...');
42
+ const ids = await backupService.list();
43
+ const infos = [];
44
+ const baseDir = environmentService.getActiveEnvironmentDir();
45
+ for (const id of ids) {
46
+ const backupDir = path.join(baseDir, 'backups', id);
47
+ const skills = exists(path.join(backupDir, 'skills')) ? (await listFiles(path.join(backupDir, 'skills'))).length : 0;
48
+ const prompts = exists(path.join(backupDir, 'prompts')) ? (await listFiles(path.join(backupDir, 'prompts'))).length : 0;
49
+ const mcps = exists(path.join(backupDir, 'mcps')) ? (await listFiles(path.join(backupDir, 'mcps'))).length : 0;
50
+ const stacks = exists(path.join(backupDir, 'stacks')) ? (await listFiles(path.join(backupDir, 'stacks'))).length : 0;
51
+ infos.push({ id, skills, prompts, mcps, stacks });
52
+ }
53
+ setList(infos);
54
+ setMode('done');
55
+ }
56
+ else if (subcmd === 'restore') {
57
+ if (!idOrName) {
58
+ setMochiState('error');
59
+ setMochiState('error');
60
+ setMessage('Please provide a backup ID to restore.');
61
+ setMode('done');
62
+ setTimeout(() => handleExit(), 1500);
63
+ return;
64
+ }
65
+ const baseDir = environmentService.getActiveEnvironmentDir();
66
+ const backupDir = path.join(baseDir, 'backups', idOrName);
67
+ if (!exists(backupDir)) {
68
+ setMochiState('error');
69
+ setMessage(`Backup not found: ${idOrName}`);
70
+ setMode('done');
71
+ setTimeout(() => handleExit(), 1500);
72
+ return;
73
+ }
74
+ if (bypassConfirm) {
75
+ setMochiState('installing');
76
+ setMessage(`Restoring from ${idOrName}...`);
77
+ await backupService.restore(idOrName, (p) => setProgress(p));
78
+ setMochiState('success');
79
+ setMessage(`Restored from ${idOrName}`);
80
+ setMode('done');
81
+ setTimeout(() => handleExit(), 1200);
82
+ }
83
+ else {
84
+ setMode('confirm_restore');
85
+ }
86
+ }
87
+ else if (subcmd === 'delete') {
88
+ if (!idOrName) {
89
+ setMochiState('error');
90
+ setMessage('Please provide a backup ID to delete.');
91
+ setMode('done');
92
+ setTimeout(() => handleExit(), 1500);
93
+ return;
94
+ }
95
+ const baseDir = environmentService.getActiveEnvironmentDir();
96
+ const backupDir = path.join(baseDir, 'backups', idOrName);
97
+ if (!exists(backupDir)) {
98
+ setMochiState('error');
99
+ setMessage(`Backup not found: ${idOrName}`);
100
+ setMode('done');
101
+ setTimeout(() => handleExit(), 1500);
102
+ return;
103
+ }
104
+ if (bypassConfirm) {
105
+ setMochiState('installing');
106
+ setMessage(`Deleting backup ${idOrName}...`);
107
+ await backupService.delete(idOrName);
108
+ setMochiState('success');
109
+ setMessage(`Backup deleted: ${idOrName}`);
110
+ setMode('done');
111
+ setTimeout(() => handleExit(), 1200);
112
+ }
113
+ else {
114
+ setMode('confirm_delete');
115
+ }
116
+ }
117
+ else {
118
+ setMochiState('error');
119
+ setMessage('Unknown backup command. Use save, list, restore, delete.');
120
+ setMode('done');
121
+ setTimeout(() => handleExit(), 1500);
122
+ }
123
+ }
124
+ catch (err) {
125
+ setMochiState('error');
126
+ setMessage(`Error: ${err.message}`);
127
+ setMode('done');
128
+ setTimeout(() => handleExit(), 1500);
129
+ }
130
+ }
131
+ if (mode === 'loading') {
132
+ run();
133
+ }
134
+ }, [mode, subcmd, idOrName, handleExit, bypassConfirm]);
135
+ useInput((input, key) => {
136
+ if (key.escape || input === 'q') {
137
+ handleExit();
138
+ }
139
+ });
140
+ async function handleConfirmRestore() {
141
+ setMode('loading');
142
+ setMochiState('installing');
143
+ setMessage(`Restoring from ${idOrName}...`);
144
+ try {
145
+ await backupService.restore(idOrName, (p) => setProgress(p));
146
+ setMochiState('success');
147
+ setMessage(`Restored from ${idOrName}`);
148
+ }
149
+ catch (err) {
150
+ setMochiState('error');
151
+ setMessage(`Error: ${err.message}`);
152
+ }
153
+ setMode('done');
154
+ setTimeout(() => handleExit(), 1200);
155
+ }
156
+ async function handleConfirmDelete() {
157
+ setMode('loading');
158
+ setMochiState('installing');
159
+ setMessage(`Deleting backup ${idOrName}...`);
160
+ try {
161
+ await backupService.delete(idOrName);
162
+ setMochiState('success');
163
+ setMessage(`Backup deleted: ${idOrName}`);
164
+ }
165
+ catch (err) {
166
+ setMochiState('error');
167
+ setMessage(`Error: ${err.message}`);
168
+ }
169
+ setMode('done');
170
+ setTimeout(() => handleExit(), 1200);
171
+ }
172
+ if (mode === 'loading') {
173
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Narrator, { state: mochiState, message: message }), subcmd === 'restore' && mochiState === 'installing' && (_jsx(Box, { marginTop: 1, children: _jsx(ProgressBar, { progress: progress }) }))] }));
174
+ }
175
+ if (mode === 'confirm_restore') {
176
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(Confirm, { message: `Restore will replace your current environment. Continue?`, onConfirm: handleConfirmRestore, onCancel: () => handleExit() }) }));
177
+ }
178
+ if (mode === 'confirm_delete') {
179
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(Confirm, { message: `Delete backup ${idOrName}?`, onConfirm: handleConfirmDelete, onCancel: () => handleExit() }) }));
180
+ }
181
+ // Done or list view
182
+ if (subcmd === 'list') {
183
+ if (list.length === 0) {
184
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(Text, { color: theme.dim, children: "No backups found." }) }));
185
+ }
186
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: theme.accent, children: "Backups:" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: list.map((b) => {
187
+ const parts = [];
188
+ if (b.skills > 0)
189
+ parts.push(`${b.skills} skill${b.skills > 1 ? 's' : ''}`);
190
+ if (b.prompts > 0)
191
+ parts.push(`${b.prompts} prompt${b.prompts > 1 ? 's' : ''}`);
192
+ if (b.mcps > 0)
193
+ parts.push(`${b.mcps} mcp${b.mcps > 1 ? 's' : ''}`);
194
+ if (b.stacks > 0)
195
+ parts.push(`${b.stacks} stack${b.stacks > 1 ? 's' : ''}`);
196
+ const detailStr = parts.length > 0 ? parts.join(', ') : 'empty';
197
+ return (_jsxs(Box, { justifyContent: "space-between", width: 60, children: [_jsx(Text, { color: theme.primary, children: getBackupLabel(b.id) }), _jsx(Text, { color: theme.dim, children: detailStr })] }, b.id));
198
+ }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.dim, children: "Press esc or q to go back" }) })] }));
199
+ }
200
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(Narrator, { state: mochiState, message: message }) }));
201
+ };
202
+ export async function backupCommand(args, options) {
203
+ const subcmd = args[0] || 'list';
204
+ const idOrName = args[1];
205
+ const yes = Boolean(options?.yes || options?.y);
206
+ if (!process.stdin.isTTY) {
207
+ if (subcmd === 'list') {
208
+ console.log(' Backups:');
209
+ const ids = await backupService.list();
210
+ if (ids.length === 0)
211
+ console.log(' (none)');
212
+ for (const id of ids) {
213
+ console.log(` - ${id}`);
214
+ }
215
+ return;
216
+ }
217
+ if (subcmd === 'save') {
218
+ console.log(' ◌ Saving backup...');
219
+ const id = await backupService.save(idOrName);
220
+ console.log(` ✓ Saved backup: ${id}`);
221
+ return;
222
+ }
223
+ if (subcmd === 'restore') {
224
+ if (!idOrName) {
225
+ console.log(' ERROR: Please provide a backup ID to restore.');
226
+ process.exit(1);
227
+ }
228
+ if (!yes) {
229
+ console.log(' ERROR: Non-interactive TTY mode. Confirmation required. Run with --yes flag to bypass.');
230
+ process.exit(1);
231
+ }
232
+ console.log(` ◌ Restoring environment from ${idOrName}...`);
233
+ await backupService.restore(idOrName);
234
+ console.log(` ✓ Restored environment from ${idOrName}`);
235
+ return;
236
+ }
237
+ if (subcmd === 'delete') {
238
+ if (!idOrName) {
239
+ console.log(' ERROR: Please provide a backup ID to delete.');
240
+ process.exit(1);
241
+ }
242
+ if (!yes) {
243
+ console.log(' ERROR: Non-interactive TTY mode. Confirmation required. Run with --yes flag to bypass.');
244
+ process.exit(1);
245
+ }
246
+ console.log(` ◌ Deleting backup ${idOrName}...`);
247
+ await backupService.delete(idOrName);
248
+ console.log(` ✓ Deleted backup ${idOrName}`);
249
+ return;
250
+ }
251
+ console.log(' Unknown backup command. Use save, list, restore, delete.');
252
+ return;
253
+ }
254
+ if (subcmd === 'save' || subcmd === 'restore') {
255
+ const { waitUntilExit } = render(_jsx(TransitionScreen, { message: `Preparing backup operation (${subcmd})...`, children: _jsx(BackupApp, { subcmd: subcmd, idOrName: idOrName, bypassConfirm: yes }) }));
256
+ await waitUntilExit();
257
+ }
258
+ else {
259
+ const { waitUntilExit } = render(_jsx(BackupApp, { subcmd: subcmd, idOrName: idOrName, bypassConfirm: yes }));
260
+ await waitUntilExit();
261
+ }
262
+ }
@@ -0,0 +1,11 @@
1
+ import { AssetType } from '../types/index.js';
2
+ export declare const BrowseApp: ({ onBack, initialAssetType, initialView, }: {
3
+ onBack?: () => void;
4
+ initialAssetType?: AssetType;
5
+ initialView?: "installed" | "local" | "marketplace";
6
+ }) => import("react/jsx-runtime").JSX.Element;
7
+ export declare function browseCommand(args?: string[], options?: {
8
+ list?: boolean;
9
+ l?: boolean;
10
+ json?: boolean;
11
+ }): Promise<void>;