auxiora 1.3.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 (91) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +37 -0
  3. package/dist/commands/ambient.d.ts +3 -0
  4. package/dist/commands/ambient.d.ts.map +1 -0
  5. package/dist/commands/ambient.js +86 -0
  6. package/dist/commands/ambient.js.map +1 -0
  7. package/dist/commands/audit.d.ts +3 -0
  8. package/dist/commands/audit.d.ts.map +1 -0
  9. package/dist/commands/audit.js +57 -0
  10. package/dist/commands/audit.js.map +1 -0
  11. package/dist/commands/auth.d.ts +3 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +130 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/commands/cloud.d.ts +3 -0
  16. package/dist/commands/cloud.d.ts.map +1 -0
  17. package/dist/commands/cloud.js +102 -0
  18. package/dist/commands/cloud.js.map +1 -0
  19. package/dist/commands/connect.d.ts +3 -0
  20. package/dist/commands/connect.d.ts.map +1 -0
  21. package/dist/commands/connect.js +103 -0
  22. package/dist/commands/connect.js.map +1 -0
  23. package/dist/commands/daemon.d.ts +3 -0
  24. package/dist/commands/daemon.d.ts.map +1 -0
  25. package/dist/commands/daemon.js +190 -0
  26. package/dist/commands/daemon.js.map +1 -0
  27. package/dist/commands/desktop.d.ts +3 -0
  28. package/dist/commands/desktop.d.ts.map +1 -0
  29. package/dist/commands/desktop.js +111 -0
  30. package/dist/commands/desktop.js.map +1 -0
  31. package/dist/commands/doctor.d.ts +12 -0
  32. package/dist/commands/doctor.d.ts.map +1 -0
  33. package/dist/commands/doctor.js +531 -0
  34. package/dist/commands/doctor.js.map +1 -0
  35. package/dist/commands/init.d.ts +3 -0
  36. package/dist/commands/init.d.ts.map +1 -0
  37. package/dist/commands/init.js +89 -0
  38. package/dist/commands/init.js.map +1 -0
  39. package/dist/commands/memory.d.ts +3 -0
  40. package/dist/commands/memory.d.ts.map +1 -0
  41. package/dist/commands/memory.js +194 -0
  42. package/dist/commands/memory.js.map +1 -0
  43. package/dist/commands/models.d.ts +3 -0
  44. package/dist/commands/models.d.ts.map +1 -0
  45. package/dist/commands/models.js +157 -0
  46. package/dist/commands/models.js.map +1 -0
  47. package/dist/commands/orchestration.d.ts +3 -0
  48. package/dist/commands/orchestration.d.ts.map +1 -0
  49. package/dist/commands/orchestration.js +50 -0
  50. package/dist/commands/orchestration.js.map +1 -0
  51. package/dist/commands/paths.d.ts +3 -0
  52. package/dist/commands/paths.d.ts.map +1 -0
  53. package/dist/commands/paths.js +27 -0
  54. package/dist/commands/paths.js.map +1 -0
  55. package/dist/commands/personality.d.ts +3 -0
  56. package/dist/commands/personality.d.ts.map +1 -0
  57. package/dist/commands/personality.js +315 -0
  58. package/dist/commands/personality.js.map +1 -0
  59. package/dist/commands/plugin.d.ts +3 -0
  60. package/dist/commands/plugin.d.ts.map +1 -0
  61. package/dist/commands/plugin.js +198 -0
  62. package/dist/commands/plugin.js.map +1 -0
  63. package/dist/commands/start.d.ts +3 -0
  64. package/dist/commands/start.d.ts.map +1 -0
  65. package/dist/commands/start.js +71 -0
  66. package/dist/commands/start.js.map +1 -0
  67. package/dist/commands/team.d.ts +3 -0
  68. package/dist/commands/team.d.ts.map +1 -0
  69. package/dist/commands/team.js +90 -0
  70. package/dist/commands/team.js.map +1 -0
  71. package/dist/commands/trust.d.ts +3 -0
  72. package/dist/commands/trust.d.ts.map +1 -0
  73. package/dist/commands/trust.js +107 -0
  74. package/dist/commands/trust.js.map +1 -0
  75. package/dist/commands/vault.d.ts +3 -0
  76. package/dist/commands/vault.d.ts.map +1 -0
  77. package/dist/commands/vault.js +295 -0
  78. package/dist/commands/vault.js.map +1 -0
  79. package/dist/commands/workflow.d.ts +3 -0
  80. package/dist/commands/workflow.d.ts.map +1 -0
  81. package/dist/commands/workflow.js +116 -0
  82. package/dist/commands/workflow.js.map +1 -0
  83. package/dist/index.d.ts +3 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +62 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/process-guard.d.ts +7 -0
  88. package/dist/process-guard.d.ts.map +1 -0
  89. package/dist/process-guard.js +114 -0
  90. package/dist/process-guard.js.map +1 -0
  91. package/package.json +77 -0
@@ -0,0 +1,315 @@
1
+ import { Command } from 'commander';
2
+ import { input, select } from '@inquirer/prompts';
3
+ import { PersonalityManager } from '@auxiora/personality';
4
+ import { loadConfig, saveConfig } from '@auxiora/config';
5
+ import { getWorkspacePath, getSoulPath, getPluginsDir } from '@auxiora/core';
6
+ import { RegistryClient } from '@auxiora/marketplace';
7
+ import * as path from 'node:path';
8
+ function createRegistryFromConfig(config) {
9
+ const mktConfig = {
10
+ registryUrl: config.plugins.marketplace.registryUrl,
11
+ autoUpdate: config.plugins.marketplace.autoUpdate,
12
+ installDir: getPluginsDir(),
13
+ };
14
+ return new RegistryClient(mktConfig);
15
+ }
16
+ function getManager() {
17
+ const workspaceDir = getWorkspacePath();
18
+ const templatesDir = path.join(path.dirname(new URL(import.meta.url).pathname), '..', '..', '..', 'personality', 'templates');
19
+ return new PersonalityManager(templatesDir, workspaceDir);
20
+ }
21
+ export function createPersonalityCommand() {
22
+ const cmd = new Command('personality')
23
+ .description('Manage agent personality');
24
+ cmd.command('list')
25
+ .description('List available personality templates')
26
+ .action(async () => {
27
+ const manager = getManager();
28
+ const templates = await manager.listTemplates();
29
+ if (templates.length === 0) {
30
+ console.log('No personality templates found.');
31
+ return;
32
+ }
33
+ console.log('\nAvailable Personality Templates\n');
34
+ for (const t of templates) {
35
+ console.log(` ${t.id}`);
36
+ console.log(` Name: ${t.name}`);
37
+ if (t.description)
38
+ console.log(` Description: ${t.description}`);
39
+ if (t.preview)
40
+ console.log(` Preview: "${t.preview}"`);
41
+ console.log('');
42
+ }
43
+ });
44
+ cmd.command('show')
45
+ .description('Show current personality')
46
+ .action(async () => {
47
+ const manager = getManager();
48
+ const personality = await manager.getCurrentPersonality();
49
+ const config = await loadConfig();
50
+ if (!personality) {
51
+ console.log('No personality configured. Run `auxiora init` or `auxiora personality set <template>`.');
52
+ return;
53
+ }
54
+ console.log('\nCurrent Personality\n');
55
+ console.log(` Name: ${personality.name}`);
56
+ console.log(` Pronouns: ${personality.pronouns}`);
57
+ console.log(` Template: ${config.agent.personality}`);
58
+ console.log(` Error Style: ${personality.errorStyle}`);
59
+ console.log(` Tone:`);
60
+ console.log(` Warmth: ${personality.tone.warmth}`);
61
+ console.log(` Directness: ${personality.tone.directness}`);
62
+ console.log(` Humor: ${personality.tone.humor}`);
63
+ console.log(` Formality: ${personality.tone.formality}`);
64
+ if (personality.expertise.length > 0) {
65
+ console.log(` Expertise: ${personality.expertise.join(', ')}`);
66
+ }
67
+ const catchphraseEntries = Object.entries(personality.catchphrases);
68
+ if (catchphraseEntries.length > 0) {
69
+ console.log(' Catchphrases:');
70
+ for (const [key, value] of catchphraseEntries) {
71
+ console.log(` ${key}: "${value}"`);
72
+ }
73
+ }
74
+ console.log('');
75
+ });
76
+ cmd.command('set <template>')
77
+ .description('Switch to a personality template')
78
+ .action(async (template) => {
79
+ const manager = getManager();
80
+ // Verify the template exists
81
+ const tmpl = await manager.getTemplate(template);
82
+ if (!tmpl) {
83
+ const available = await manager.listTemplates();
84
+ console.error(`Template "${template}" not found.`);
85
+ if (available.length > 0) {
86
+ console.error(`Available templates: ${available.map((t) => t.id).join(', ')}`);
87
+ }
88
+ process.exit(1);
89
+ }
90
+ await manager.applyTemplate(template);
91
+ // Update config to track which template is active
92
+ const config = await loadConfig();
93
+ config.agent.personality = template;
94
+ await saveConfig(config);
95
+ console.log(`\nPersonality switched to "${tmpl.name}".`);
96
+ if (tmpl.preview) {
97
+ console.log(`Preview: "${tmpl.preview}"`);
98
+ }
99
+ console.log('');
100
+ });
101
+ cmd.command('build')
102
+ .description('Build a custom personality interactively')
103
+ .action(async () => {
104
+ console.log('\nCustom Personality Builder\n');
105
+ const name = await input({
106
+ message: 'Agent name:',
107
+ default: 'Auxiora',
108
+ });
109
+ const pronouns = await select({
110
+ message: 'Pronouns:',
111
+ choices: [
112
+ { name: 'she/her', value: 'she/her' },
113
+ { name: 'he/him', value: 'he/him' },
114
+ { name: 'they/them', value: 'they/them' },
115
+ { name: 'it/its', value: 'it/its' },
116
+ ],
117
+ default: 'they/them',
118
+ });
119
+ const warmth = await select({
120
+ message: 'Warmth level:',
121
+ choices: [
122
+ { name: 'Cool (0.2)', value: '0.2' },
123
+ { name: 'Balanced (0.5)', value: '0.5' },
124
+ { name: 'Warm (0.8)', value: '0.8' },
125
+ { name: 'Very warm (1.0)', value: '1.0' },
126
+ ],
127
+ default: '0.5',
128
+ });
129
+ const directness = await select({
130
+ message: 'Directness level:',
131
+ choices: [
132
+ { name: 'Gentle (0.2)', value: '0.2' },
133
+ { name: 'Balanced (0.5)', value: '0.5' },
134
+ { name: 'Direct (0.8)', value: '0.8' },
135
+ { name: 'Very direct (1.0)', value: '1.0' },
136
+ ],
137
+ default: '0.5',
138
+ });
139
+ const humor = await select({
140
+ message: 'Humor level:',
141
+ choices: [
142
+ { name: 'Serious (0.0)', value: '0.0' },
143
+ { name: 'Occasional (0.3)', value: '0.3' },
144
+ { name: 'Playful (0.6)', value: '0.6' },
145
+ { name: 'Very humorous (0.9)', value: '0.9' },
146
+ ],
147
+ default: '0.3',
148
+ });
149
+ const formality = await select({
150
+ message: 'Formality level:',
151
+ choices: [
152
+ { name: 'Casual (0.2)', value: '0.2' },
153
+ { name: 'Balanced (0.5)', value: '0.5' },
154
+ { name: 'Formal (0.8)', value: '0.8' },
155
+ { name: 'Very formal (1.0)', value: '1.0' },
156
+ ],
157
+ default: '0.5',
158
+ });
159
+ const errorStyle = await select({
160
+ message: 'Error communication style:',
161
+ choices: [
162
+ { name: 'Professional', value: 'professional' },
163
+ { name: 'Apologetic', value: 'apologetic' },
164
+ { name: 'Matter of fact', value: 'matter_of_fact' },
165
+ { name: 'Self-deprecating', value: 'self_deprecating' },
166
+ ],
167
+ default: 'professional',
168
+ });
169
+ const expertiseRaw = await input({
170
+ message: 'Areas of expertise (comma-separated, or leave empty):',
171
+ default: '',
172
+ });
173
+ const greeting = await input({
174
+ message: 'Greeting catchphrase (or leave empty):',
175
+ default: '',
176
+ });
177
+ const soulConfig = {
178
+ name,
179
+ pronouns,
180
+ tone: {
181
+ warmth: Number(warmth),
182
+ directness: Number(directness),
183
+ humor: Number(humor),
184
+ formality: Number(formality),
185
+ },
186
+ expertise: expertiseRaw
187
+ ? expertiseRaw.split(',').map((s) => s.trim()).filter(Boolean)
188
+ : [],
189
+ errorStyle,
190
+ catchphrases: greeting ? { greeting } : {},
191
+ boundaries: { neverJokeAbout: [], neverAdviseOn: [] },
192
+ };
193
+ const manager = getManager();
194
+ await manager.buildCustom(soulConfig);
195
+ // Update config
196
+ const config = await loadConfig();
197
+ config.agent.name = name;
198
+ config.agent.pronouns = pronouns;
199
+ config.agent.personality = 'custom';
200
+ config.agent.tone = soulConfig.tone;
201
+ config.agent.errorStyle = errorStyle;
202
+ config.agent.expertise = soulConfig.expertise;
203
+ if (greeting) {
204
+ config.agent.catchphrases.greeting = greeting;
205
+ }
206
+ await saveConfig(config);
207
+ console.log(`\nCustom personality for "${name}" saved to SOUL.md.`);
208
+ console.log('Run `auxiora personality show` to review.\n');
209
+ });
210
+ cmd.command('search [query]')
211
+ .description('Search the personality marketplace')
212
+ .option('-a, --author <author>', 'Filter by author')
213
+ .option('-s, --sort <sort>', 'Sort by: downloads, rating, updated, name', 'downloads')
214
+ .option('-l, --limit <limit>', 'Number of results', '10')
215
+ .action(async (query, opts) => {
216
+ const config = await loadConfig();
217
+ const registry = createRegistryFromConfig(config);
218
+ try {
219
+ const result = await registry.searchPersonalities({
220
+ query,
221
+ author: opts.author,
222
+ sortBy: opts.sort ?? 'downloads',
223
+ limit: parseInt(opts.limit ?? '10', 10),
224
+ });
225
+ if (result.personalities.length === 0) {
226
+ console.log('No personalities found.');
227
+ return;
228
+ }
229
+ console.log(`\nPersonality Marketplace (${result.total} total)\n`);
230
+ for (const p of result.personalities) {
231
+ console.log(` ${p.name} v${p.version} by ${p.author}`);
232
+ console.log(` ${p.description}`);
233
+ console.log(` Preview: "${p.preview}"`);
234
+ console.log(` Downloads: ${p.downloads} | Rating: ${p.rating}/5`);
235
+ console.log('');
236
+ }
237
+ }
238
+ catch (error) {
239
+ console.error('Failed to search marketplace:', error instanceof Error ? error.message : error);
240
+ process.exit(1);
241
+ }
242
+ });
243
+ cmd.command('install <name>')
244
+ .description('Install a personality from the marketplace')
245
+ .option('-v, --version <version>', 'Specific version to install')
246
+ .action(async (name, opts) => {
247
+ const config = await loadConfig();
248
+ const registry = createRegistryFromConfig(config);
249
+ try {
250
+ console.log(`Installing personality "${name}"...`);
251
+ const result = await registry.installPersonality(name, opts.version);
252
+ if (!result.success) {
253
+ console.error(`Installation failed: ${result.error}`);
254
+ process.exit(1);
255
+ }
256
+ console.log(`\nPersonality "${result.name}" v${result.version} installed successfully.`);
257
+ console.log('Run `auxiora personality set <name>` to activate it.\n');
258
+ }
259
+ catch (error) {
260
+ console.error('Failed to install personality:', error instanceof Error ? error.message : error);
261
+ process.exit(1);
262
+ }
263
+ });
264
+ cmd.command('publish [path]')
265
+ .description('Publish your SOUL.md personality to the marketplace')
266
+ .action(async (soulPath) => {
267
+ const config = await loadConfig();
268
+ const registry = createRegistryFromConfig(config);
269
+ const filePath = soulPath ?? getSoulPath();
270
+ try {
271
+ console.log(`Publishing personality from ${filePath}...`);
272
+ const result = await registry.publishPersonality(filePath);
273
+ if (!result.success) {
274
+ console.error(`Publish failed: ${result.error}`);
275
+ process.exit(1);
276
+ }
277
+ console.log(`\nPersonality "${result.name}" v${result.version} published successfully.`);
278
+ }
279
+ catch (error) {
280
+ console.error('Failed to publish personality:', error instanceof Error ? error.message : error);
281
+ process.exit(1);
282
+ }
283
+ });
284
+ cmd.command('preview <name>')
285
+ .description('Preview a personality from the marketplace')
286
+ .action(async (name) => {
287
+ const config = await loadConfig();
288
+ const registry = createRegistryFromConfig(config);
289
+ try {
290
+ const listing = await registry.getPersonality(name);
291
+ if (!listing) {
292
+ console.error(`Personality "${name}" not found in marketplace.`);
293
+ process.exit(1);
294
+ }
295
+ console.log(`\nPersonality: ${listing.name} v${listing.version}\n`);
296
+ console.log(` Author: ${listing.author}`);
297
+ console.log(` Description: ${listing.description}`);
298
+ console.log(` Preview: "${listing.preview}"`);
299
+ console.log(` Tone:`);
300
+ console.log(` Warmth: ${listing.tone.warmth}`);
301
+ console.log(` Humor: ${listing.tone.humor}`);
302
+ console.log(` Formality: ${listing.tone.formality}`);
303
+ console.log(` Keywords: ${listing.keywords.join(', ')}`);
304
+ console.log(` Downloads: ${listing.downloads} | Rating: ${listing.rating}/5`);
305
+ console.log(` Updated: ${listing.updatedAt}`);
306
+ console.log('');
307
+ }
308
+ catch (error) {
309
+ console.error('Failed to preview personality:', error instanceof Error ? error.message : error);
310
+ process.exit(1);
311
+ }
312
+ });
313
+ return cmd;
314
+ }
315
+ //# sourceMappingURL=personality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personality.js","sourceRoot":"","sources":["../../src/commands/personality.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createPluginCommand(): Command;
3
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,mBAAmB,IAAI,OAAO,CA0M7C"}
@@ -0,0 +1,198 @@
1
+ import { Command } from 'commander';
2
+ import { loadConfig } from '@auxiora/config';
3
+ import { PluginLoader } from '@auxiora/plugins';
4
+ import { RegistryClient } from '@auxiora/marketplace';
5
+ import { getPluginsDir } from '@auxiora/core';
6
+ export function createPluginCommand() {
7
+ const cmd = new Command('plugin').description('Manage plugins');
8
+ cmd
9
+ .command('list')
10
+ .description('List installed plugins')
11
+ .action(async () => {
12
+ const config = await loadConfig();
13
+ const loader = new PluginLoader({
14
+ pluginsDir: config.plugins.dir ?? getPluginsDir(),
15
+ pluginConfigs: config.plugins.pluginConfigs,
16
+ approvedPermissions: config.plugins.approvedPermissions,
17
+ });
18
+ const plugins = await loader.loadAll();
19
+ if (plugins.length === 0) {
20
+ console.log('No plugins installed.');
21
+ return;
22
+ }
23
+ console.log('\nInstalled Plugins:\n');
24
+ console.log(' Name | Version | Status | Tools');
25
+ console.log(' --------------------+----------+---------+------');
26
+ for (const plugin of plugins) {
27
+ const name = plugin.name.padEnd(18);
28
+ const version = plugin.version.padEnd(8);
29
+ const status = plugin.status === 'loaded' ? 'loaded ' : 'FAILED ';
30
+ const tools = plugin.toolNames.join(', ') || '-';
31
+ console.log(` ${name} | ${version} | ${status} | ${tools}`);
32
+ if (plugin.error) {
33
+ console.log(` Error: ${plugin.error}`);
34
+ }
35
+ if (plugin.permissions.length > 0) {
36
+ console.log(` Permissions: ${plugin.permissions.join(', ')}`);
37
+ }
38
+ }
39
+ console.log('');
40
+ await loader.shutdownAll();
41
+ });
42
+ cmd
43
+ .command('search <query>')
44
+ .description('Search the plugin marketplace')
45
+ .option('--limit <n>', 'Max results', '20')
46
+ .action(async (query, options) => {
47
+ const config = await loadConfig();
48
+ const client = createRegistryClient(config);
49
+ try {
50
+ const result = await client.search({
51
+ query,
52
+ limit: parseInt(options.limit, 10),
53
+ });
54
+ if (result.plugins.length === 0) {
55
+ console.log('No plugins found.');
56
+ return;
57
+ }
58
+ console.log(`\nFound ${result.total} plugins:\n`);
59
+ for (const plugin of result.plugins) {
60
+ console.log(` ${plugin.name} v${plugin.version}`);
61
+ console.log(` ${plugin.description}`);
62
+ console.log(` by ${plugin.author} | ${plugin.downloads} downloads | rating: ${plugin.rating}`);
63
+ if (plugin.permissions.length > 0) {
64
+ console.log(` permissions: ${plugin.permissions.join(', ')}`);
65
+ }
66
+ console.log('');
67
+ }
68
+ }
69
+ catch (error) {
70
+ const msg = error instanceof Error ? error.message : String(error);
71
+ console.error(`Search failed: ${msg}`);
72
+ process.exit(1);
73
+ }
74
+ });
75
+ cmd
76
+ .command('install <name>')
77
+ .description('Install a plugin from the marketplace')
78
+ .option('--version <version>', 'Specific version to install')
79
+ .action(async (name, options) => {
80
+ const config = await loadConfig();
81
+ const client = createRegistryClient(config);
82
+ console.log(`Installing ${name}${options.version ? `@${options.version}` : ''}...`);
83
+ try {
84
+ const result = await client.install(name, options.version);
85
+ if (result.success) {
86
+ console.log(`Installed ${result.name} v${result.version}`);
87
+ if (result.dependencies.length > 0) {
88
+ console.log(` Dependencies: ${result.dependencies.join(', ')}`);
89
+ }
90
+ }
91
+ else {
92
+ console.error(`Installation failed: ${result.error}`);
93
+ process.exit(1);
94
+ }
95
+ }
96
+ catch (error) {
97
+ const msg = error instanceof Error ? error.message : String(error);
98
+ console.error(`Install failed: ${msg}`);
99
+ process.exit(1);
100
+ }
101
+ });
102
+ cmd
103
+ .command('uninstall <name>')
104
+ .description('Uninstall a plugin')
105
+ .action(async (name) => {
106
+ const config = await loadConfig();
107
+ const client = createRegistryClient(config);
108
+ const removed = await client.uninstall(name);
109
+ if (removed) {
110
+ console.log(`Uninstalled: ${name}`);
111
+ }
112
+ else {
113
+ console.error(`Plugin "${name}" is not installed.`);
114
+ process.exit(1);
115
+ }
116
+ });
117
+ cmd
118
+ .command('create <name>')
119
+ .description('Create a new plugin from template')
120
+ .action(async (name) => {
121
+ console.log(`Creating plugin: ${name}`);
122
+ console.log('');
123
+ console.log('Plugin template:');
124
+ console.log('');
125
+ console.log(` // ${name}/plugin.js`);
126
+ console.log(` export const plugin = {`);
127
+ console.log(` name: '${name}',`);
128
+ console.log(` version: '1.0.0',`);
129
+ console.log(` permissions: [],`);
130
+ console.log(` tools: [{`);
131
+ console.log(` name: '${name.replace(/-/g, '_')}_action',`);
132
+ console.log(` description: 'My custom tool',`);
133
+ console.log(` parameters: {`);
134
+ console.log(` type: 'object',`);
135
+ console.log(` properties: {`);
136
+ console.log(` input: { type: 'string', description: 'Input value' }`);
137
+ console.log(` },`);
138
+ console.log(` required: ['input']`);
139
+ console.log(` },`);
140
+ console.log(` execute: async ({ input }) => ({ success: true, output: input })`);
141
+ console.log(` }]`);
142
+ console.log(` };`);
143
+ console.log('');
144
+ console.log(`Place the plugin file in your plugins directory.`);
145
+ });
146
+ cmd
147
+ .command('dev <path>')
148
+ .description('Load a plugin in development mode')
149
+ .action(async (pluginPath) => {
150
+ console.log(`Loading plugin from: ${pluginPath}`);
151
+ console.log('Development mode: plugin will be reloaded on file changes');
152
+ console.log('Press Ctrl+C to stop.');
153
+ });
154
+ cmd
155
+ .command('test <path>')
156
+ .description('Test a plugin')
157
+ .action(async (pluginPath) => {
158
+ console.log(`Testing plugin at: ${pluginPath}`);
159
+ console.log('Validation checks:');
160
+ console.log(' - Plugin exports valid');
161
+ console.log(' - Tool names valid');
162
+ console.log(' - Permissions declared');
163
+ console.log(' - Initialize/shutdown hooks');
164
+ });
165
+ cmd
166
+ .command('publish <path>')
167
+ .description('Publish a plugin to the marketplace')
168
+ .action(async (pluginPath) => {
169
+ const config = await loadConfig();
170
+ const client = createRegistryClient(config);
171
+ console.log(`Publishing plugin from: ${pluginPath}...`);
172
+ try {
173
+ const result = await client.publish(pluginPath);
174
+ if (result.success) {
175
+ console.log(`Published ${result.name} v${result.version}`);
176
+ }
177
+ else {
178
+ console.error(`Publish failed: ${result.error}`);
179
+ process.exit(1);
180
+ }
181
+ }
182
+ catch (error) {
183
+ const msg = error instanceof Error ? error.message : String(error);
184
+ console.error(`Publish failed: ${msg}`);
185
+ process.exit(1);
186
+ }
187
+ });
188
+ return cmd;
189
+ }
190
+ function createRegistryClient(config) {
191
+ const marketplaceConfig = {
192
+ registryUrl: config.plugins.marketplace.registryUrl,
193
+ autoUpdate: config.plugins.marketplace.autoUpdate,
194
+ installDir: getPluginsDir(),
195
+ };
196
+ return new RegistryClient(marketplaceConfig);
197
+ }
198
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createStartCommand(): Command;
3
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,kBAAkB,IAAI,OAAO,CAmE5C"}
@@ -0,0 +1,71 @@
1
+ import { Command } from 'commander';
2
+ import { password as passwordPrompt } from '@inquirer/prompts';
3
+ import open from 'open';
4
+ import { startAuxiora } from '@auxiora/runtime';
5
+ import { setupProcessGuard } from '../process-guard.js';
6
+ let auxiora = null;
7
+ export function createStartCommand() {
8
+ return new Command('start')
9
+ .description('Start the Auxiora gateway')
10
+ .option('-p, --password <password>', 'Vault password (or set AUXIORA_VAULT_PASSWORD env var)')
11
+ .option('--no-vault', 'Start without unlocking the vault')
12
+ .option('--no-browser', 'Do not auto-open browser')
13
+ .action(async (options) => {
14
+ let vaultPassword;
15
+ if (options.vault !== false) {
16
+ vaultPassword = options.password || process.env.AUXIORA_VAULT_PASSWORD;
17
+ if (!vaultPassword) {
18
+ if (!process.stdin.isTTY) {
19
+ // Setup mode: start without vault, setup wizard handles initialization
20
+ console.log('No vault password found. Starting in setup mode...');
21
+ console.log('Open the dashboard in your browser to complete setup.');
22
+ // vaultPassword stays undefined — runtime starts with vault locked
23
+ }
24
+ else {
25
+ try {
26
+ vaultPassword = await passwordPrompt({
27
+ message: 'Enter vault password:',
28
+ });
29
+ }
30
+ catch {
31
+ console.log('Vault password required. Use --no-vault to skip.');
32
+ process.exit(1);
33
+ }
34
+ }
35
+ }
36
+ }
37
+ // Install process-level error handling with intelligent classification
38
+ setupProcessGuard(async () => {
39
+ if (auxiora) {
40
+ await auxiora.stop();
41
+ }
42
+ });
43
+ try {
44
+ auxiora = await startAuxiora({ vaultPassword });
45
+ const port = process.env.AUXIORA_GATEWAY_PORT || '18800';
46
+ const dashboardUrl = `http://localhost:${port}/dashboard`;
47
+ console.log('');
48
+ console.log(' ╔══════════════════════════════════════════════╗');
49
+ console.log(` ║ Auxiora is running! ║`);
50
+ console.log(` ║ Dashboard: ${dashboardUrl.padEnd(33)}║`);
51
+ console.log(' ╚══════════════════════════════════════════════╝');
52
+ console.log('');
53
+ // Auto-open browser if interactive TTY and not explicitly disabled
54
+ if (process.stdin.isTTY && !process.env.AUXIORA_NO_BROWSER && options.browser !== false) {
55
+ try {
56
+ await open(dashboardUrl);
57
+ }
58
+ catch {
59
+ // Non-fatal — user can open manually
60
+ }
61
+ }
62
+ // Keep process running
63
+ process.stdin.resume();
64
+ }
65
+ catch (error) {
66
+ console.error('Failed to start:', error instanceof Error ? error.message : error);
67
+ process.exit(1);
68
+ }
69
+ });
70
+ }
71
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAgB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,IAAI,OAAO,GAAmB,IAAI,CAAC;AAEnC,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,2BAA2B,EAAE,wDAAwD,CAAC;SAC7F,MAAM,CAAC,YAAY,EAAE,mCAAmC,CAAC;SACzD,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,aAAiC,CAAC;QAEtC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC5B,aAAa,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YAEvE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACzB,uEAAuE;oBACvE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;oBAClE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;oBACrE,mEAAmE;gBACrE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,aAAa,GAAG,MAAM,cAAc,CAAC;4BACnC,OAAO,EAAE,uBAAuB;yBACjC,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;wBAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,iBAAiB,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;YAEhD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC;YACzD,MAAM,YAAY,GAAG,oBAAoB,IAAI,YAAY,CAAC;YAE1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,mEAAmE;YACnE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACxF,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamCommand(): Command;
3
+ //# sourceMappingURL=team.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,iBAAiB,IAAI,OAAO,CAsG3C"}