@agentuity/cli 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.
- package/AGENTS.md +40 -24
- package/bin/cli.ts +47 -22
- package/dist/agent-detection.d.ts +23 -38
- package/dist/agent-detection.d.ts.map +1 -1
- package/dist/agent-detection.js +412 -153
- package/dist/agent-detection.js.map +1 -1
- package/dist/ai-help.d.ts +23 -0
- package/dist/ai-help.d.ts.map +1 -0
- package/dist/ai-help.js +328 -0
- package/dist/ai-help.js.map +1 -0
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/auth.d.ts +10 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +176 -16
- package/dist/auth.js.map +1 -1
- package/dist/banner.d.ts.map +1 -1
- package/dist/banner.js +5 -0
- package/dist/banner.js.map +1 -1
- package/dist/cache/agent-intro.d.ts +13 -0
- package/dist/cache/agent-intro.d.ts.map +1 -0
- package/dist/cache/agent-intro.js +54 -0
- package/dist/cache/agent-intro.js.map +1 -0
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +1 -0
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/resource-region.d.ts +3 -2
- package/dist/cache/resource-region.d.ts.map +1 -1
- package/dist/cache/resource-region.js +13 -4
- package/dist/cache/resource-region.js.map +1 -1
- package/dist/catalyst.d.ts +7 -0
- package/dist/catalyst.d.ts.map +1 -0
- package/dist/catalyst.js +15 -0
- package/dist/catalyst.js.map +1 -0
- package/dist/cli.d.ts +12 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +290 -67
- package/dist/cli.js.map +1 -1
- package/dist/cmd/ai/detect.d.ts +3 -0
- package/dist/cmd/ai/detect.d.ts.map +1 -0
- package/dist/cmd/ai/detect.js +49 -0
- package/dist/cmd/ai/detect.js.map +1 -0
- package/dist/cmd/ai/index.d.ts.map +1 -1
- package/dist/cmd/ai/index.js +11 -1
- package/dist/cmd/ai/index.js.map +1 -1
- package/dist/cmd/ai/intro.d.ts +7 -0
- package/dist/cmd/ai/intro.d.ts.map +1 -0
- package/dist/cmd/ai/intro.js +141 -0
- package/dist/cmd/ai/intro.js.map +1 -0
- package/dist/cmd/ai/opencode/run.d.ts.map +1 -1
- package/dist/cmd/ai/opencode/run.js +5 -0
- package/dist/cmd/ai/opencode/run.js.map +1 -1
- package/dist/cmd/build/ast.d.ts.map +1 -1
- package/dist/cmd/build/ast.js +79 -0
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.js +2 -0
- package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
- package/dist/cmd/build/vite/docs-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/docs-generator.js +15 -1
- package/dist/cmd/build/vite/docs-generator.js.map +1 -1
- package/dist/cmd/build/vite/env-types-generator.d.ts +26 -0
- package/dist/cmd/build/vite/env-types-generator.d.ts.map +1 -0
- package/dist/cmd/build/vite/env-types-generator.js +110 -0
- package/dist/cmd/build/vite/env-types-generator.js.map +1 -0
- package/dist/cmd/build/vite/index.d.ts +2 -0
- package/dist/cmd/build/vite/index.d.ts.map +1 -1
- package/dist/cmd/build/vite/index.js +12 -1
- package/dist/cmd/build/vite/index.js.map +1 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +1 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.d.ts +2 -0
- package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +10 -1
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/cloud/db/create.js.map +1 -1
- package/dist/cmd/cloud/db/delete.js.map +1 -1
- package/dist/cmd/cloud/db/get.d.ts.map +1 -1
- package/dist/cmd/cloud/db/get.js +27 -12
- package/dist/cmd/cloud/db/get.js.map +1 -1
- package/dist/cmd/cloud/deploy-fork.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy-fork.js +2 -0
- package/dist/cmd/cloud/deploy-fork.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +17 -0
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/env/import.js.map +1 -1
- package/dist/cmd/cloud/env/list.js.map +1 -1
- package/dist/cmd/cloud/env/push.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.js +3 -3
- package/dist/cmd/cloud/keyvalue/util.js.map +1 -1
- package/dist/cmd/cloud/machine/list.js +3 -3
- package/dist/cmd/cloud/machine/list.js.map +1 -1
- package/dist/cmd/cloud/region/index.js.map +1 -1
- package/dist/cmd/cloud/region-lookup.d.ts +7 -4
- package/dist/cmd/cloud/region-lookup.d.ts.map +1 -1
- package/dist/cmd/cloud/region-lookup.js +59 -14
- package/dist/cmd/cloud/region-lookup.js.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.js +7 -5
- package/dist/cmd/cloud/sandbox/cp.js.map +1 -1
- package/dist/cmd/cloud/sandbox/create.js +1 -1
- package/dist/cmd/cloud/sandbox/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.js +8 -7
- package/dist/cmd/cloud/sandbox/delete.js.map +1 -1
- package/dist/cmd/cloud/sandbox/download.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/download.js +7 -5
- package/dist/cmd/cloud/sandbox/download.js.map +1 -1
- package/dist/cmd/cloud/sandbox/env.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/env.js +7 -5
- package/dist/cmd/cloud/sandbox/env.js.map +1 -1
- package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/exec.js +7 -5
- package/dist/cmd/cloud/sandbox/exec.js.map +1 -1
- package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/get.js +12 -7
- package/dist/cmd/cloud/sandbox/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/list.js +40 -63
- package/dist/cmd/cloud/sandbox/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/ls.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/ls.js +7 -5
- package/dist/cmd/cloud/sandbox/ls.js.map +1 -1
- package/dist/cmd/cloud/sandbox/mkdir.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/mkdir.js +7 -5
- package/dist/cmd/cloud/sandbox/mkdir.js.map +1 -1
- package/dist/cmd/cloud/sandbox/rm.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/rm.js +7 -5
- package/dist/cmd/cloud/sandbox/rm.js.map +1 -1
- package/dist/cmd/cloud/sandbox/rmdir.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/rmdir.js +7 -5
- package/dist/cmd/cloud/sandbox/rmdir.js.map +1 -1
- package/dist/cmd/cloud/sandbox/run.js +1 -1
- package/dist/cmd/cloud/sandbox/run.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/upload.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/upload.js +7 -5
- package/dist/cmd/cloud/sandbox/upload.js.map +1 -1
- package/dist/cmd/cloud/sandbox/util.d.ts +2 -2
- package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/util.js +14 -13
- package/dist/cmd/cloud/sandbox/util.js.map +1 -1
- package/dist/cmd/cloud/ssh.d.ts.map +1 -1
- package/dist/cmd/cloud/ssh.js +3 -3
- package/dist/cmd/cloud/ssh.js.map +1 -1
- package/dist/cmd/cloud/storage/create.js.map +1 -1
- package/dist/cmd/cloud/storage/delete.js.map +1 -1
- package/dist/cmd/cloud/storage/get.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/get.js +5 -11
- package/dist/cmd/cloud/storage/get.js.map +1 -1
- package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/list.js +6 -6
- package/dist/cmd/cloud/storage/list.js.map +1 -1
- package/dist/cmd/cloud/stream/create.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/create.js +7 -4
- package/dist/cmd/cloud/stream/create.js.map +1 -1
- package/dist/cmd/cloud/stream/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/delete.js +25 -4
- package/dist/cmd/cloud/stream/delete.js.map +1 -1
- package/dist/cmd/cloud/stream/get.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/get.js +91 -62
- package/dist/cmd/cloud/stream/get.js.map +1 -1
- package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/list.js +66 -38
- package/dist/cmd/cloud/stream/list.js.map +1 -1
- package/dist/cmd/cloud/stream/util.d.ts +20 -0
- package/dist/cmd/cloud/stream/util.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/util.js +27 -3
- package/dist/cmd/cloud/stream/util.js.map +1 -1
- package/dist/cmd/cloud/vector/util.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/util.js +3 -3
- package/dist/cmd/cloud/vector/util.js.map +1 -1
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/git/account/add.js.map +1 -1
- package/dist/cmd/git/list.js.map +1 -1
- package/dist/cmd/project/add/database.d.ts +2 -0
- package/dist/cmd/project/add/database.d.ts.map +1 -0
- package/dist/cmd/project/add/database.js +123 -0
- package/dist/cmd/project/add/database.js.map +1 -0
- package/dist/cmd/project/add/domain.d.ts +2 -0
- package/dist/cmd/project/add/domain.d.ts.map +1 -0
- package/dist/cmd/project/add/domain.js +152 -0
- package/dist/cmd/project/add/domain.js.map +1 -0
- package/dist/cmd/project/add/index.d.ts +2 -0
- package/dist/cmd/project/add/index.d.ts.map +1 -0
- package/dist/cmd/project/add/index.js +35 -0
- package/dist/cmd/project/add/index.js.map +1 -0
- package/dist/cmd/project/add/storage.d.ts +2 -0
- package/dist/cmd/project/add/storage.d.ts.map +1 -0
- package/dist/cmd/project/add/storage.js +123 -0
- package/dist/cmd/project/add/storage.js.map +1 -0
- package/dist/cmd/project/auth/init.js.map +1 -1
- package/dist/cmd/project/index.d.ts.map +1 -1
- package/dist/cmd/project/index.js +7 -0
- package/dist/cmd/project/index.js.map +1 -1
- package/dist/cmd/project/reconcile.d.ts.map +1 -1
- package/dist/cmd/project/reconcile.js +32 -0
- package/dist/cmd/project/reconcile.js.map +1 -1
- package/dist/cmd/support/report.js.map +1 -1
- package/dist/cmd/support/system.js +2 -2
- package/dist/cmd/support/system.js.map +1 -1
- package/dist/config.d.ts +6 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +31 -7
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/repl.js +2 -1
- package/dist/repl.js.map +1 -1
- package/dist/tui/box.d.ts +3 -1
- package/dist/tui/box.d.ts.map +1 -1
- package/dist/tui/box.js +22 -7
- package/dist/tui/box.js.map +1 -1
- package/dist/tui/colors.d.ts +0 -3
- package/dist/tui/colors.d.ts.map +1 -1
- package/dist/tui/colors.js +76 -23
- package/dist/tui/colors.js.map +1 -1
- package/dist/tui/prompt.d.ts +2 -0
- package/dist/tui/prompt.d.ts.map +1 -1
- package/dist/tui/prompt.js +44 -3
- package/dist/tui/prompt.js.map +1 -1
- package/dist/tui/symbols.d.ts +0 -4
- package/dist/tui/symbols.d.ts.map +1 -1
- package/dist/tui/symbols.js +5 -0
- package/dist/tui/symbols.js.map +1 -1
- package/dist/tui.d.ts +8 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +54 -9
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +37 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +5 -0
- package/dist/version-check.js.map +1 -1
- package/package.json +6 -6
- package/src/agent-detection.ts +457 -160
- package/src/ai-help.ts +391 -0
- package/src/api.ts +1 -1
- package/src/auth.ts +226 -17
- package/src/banner.ts +5 -0
- package/src/cache/agent-intro.ts +61 -0
- package/src/cache/index.ts +2 -0
- package/src/cache/resource-region.ts +28 -7
- package/src/catalyst.ts +16 -0
- package/src/cli.ts +375 -93
- package/src/cmd/ai/detect.ts +52 -0
- package/src/cmd/ai/index.ts +11 -1
- package/src/cmd/ai/intro.ts +154 -0
- package/src/cmd/ai/opencode/run.ts +5 -0
- package/src/cmd/build/ast.ts +97 -0
- package/src/cmd/build/vite/bun-dev-server.ts +2 -0
- package/src/cmd/build/vite/docs-generator.ts +15 -1
- package/src/cmd/build/vite/env-types-generator.ts +145 -0
- package/src/cmd/build/vite/index.ts +15 -0
- package/src/cmd/build/vite/public-asset-path-plugin.ts +8 -2
- package/src/cmd/build/vite/vite-builder.ts +31 -11
- package/src/cmd/cloud/db/create.ts +16 -16
- package/src/cmd/cloud/db/delete.ts +19 -19
- package/src/cmd/cloud/db/get.ts +32 -17
- package/src/cmd/cloud/deploy-fork.ts +2 -0
- package/src/cmd/cloud/deploy.ts +17 -0
- package/src/cmd/cloud/env/import.ts +6 -6
- package/src/cmd/cloud/env/list.ts +11 -11
- package/src/cmd/cloud/env/push.ts +6 -6
- package/src/cmd/cloud/keyvalue/util.ts +3 -3
- package/src/cmd/cloud/machine/list.ts +3 -3
- package/src/cmd/cloud/region/index.ts +3 -3
- package/src/cmd/cloud/region-lookup.ts +82 -22
- package/src/cmd/cloud/sandbox/cp.ts +9 -4
- package/src/cmd/cloud/sandbox/create.ts +1 -1
- package/src/cmd/cloud/sandbox/delete.ts +10 -7
- package/src/cmd/cloud/sandbox/download.ts +8 -5
- package/src/cmd/cloud/sandbox/env.ts +8 -5
- package/src/cmd/cloud/sandbox/exec.ts +10 -5
- package/src/cmd/cloud/sandbox/get.ts +13 -7
- package/src/cmd/cloud/sandbox/list.ts +47 -73
- package/src/cmd/cloud/sandbox/ls.ts +9 -5
- package/src/cmd/cloud/sandbox/mkdir.ts +9 -5
- package/src/cmd/cloud/sandbox/rm.ts +9 -5
- package/src/cmd/cloud/sandbox/rmdir.ts +9 -5
- package/src/cmd/cloud/sandbox/run.ts +1 -1
- package/src/cmd/cloud/sandbox/snapshot/build.ts +31 -31
- package/src/cmd/cloud/sandbox/snapshot/get.ts +17 -17
- package/src/cmd/cloud/sandbox/upload.ts +8 -5
- package/src/cmd/cloud/sandbox/util.ts +15 -14
- package/src/cmd/cloud/ssh.ts +2 -4
- package/src/cmd/cloud/storage/create.ts +16 -16
- package/src/cmd/cloud/storage/delete.ts +19 -19
- package/src/cmd/cloud/storage/get.ts +5 -16
- package/src/cmd/cloud/storage/list.ts +12 -6
- package/src/cmd/cloud/stream/create.ts +8 -4
- package/src/cmd/cloud/stream/delete.ts +28 -4
- package/src/cmd/cloud/stream/get.ts +102 -64
- package/src/cmd/cloud/stream/list.ts +76 -44
- package/src/cmd/cloud/stream/util.ts +39 -3
- package/src/cmd/cloud/vector/util.ts +3 -3
- package/src/cmd/dev/index.ts +4 -4
- package/src/cmd/git/account/add.ts +5 -5
- package/src/cmd/git/list.ts +7 -7
- package/src/cmd/project/add/database.ts +145 -0
- package/src/cmd/project/add/domain.ts +181 -0
- package/src/cmd/project/add/index.ts +35 -0
- package/src/cmd/project/add/storage.ts +147 -0
- package/src/cmd/project/auth/init.ts +6 -6
- package/src/cmd/project/index.ts +7 -0
- package/src/cmd/project/reconcile.ts +40 -0
- package/src/cmd/support/report.ts +5 -5
- package/src/cmd/support/system.ts +2 -2
- package/src/config.ts +40 -12
- package/src/errors.ts +7 -0
- package/src/index.ts +11 -0
- package/src/repl.ts +4 -1
- package/src/tui/box.ts +24 -9
- package/src/tui/colors.ts +83 -26
- package/src/tui/prompt.ts +55 -3
- package/src/tui/symbols.ts +6 -0
- package/src/tui.ts +55 -9
- package/src/types.ts +46 -2
- package/src/version-check.ts +6 -0
package/AGENTS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Package Overview
|
|
4
4
|
|
|
5
|
-
Bun-native CLI framework for Agentuity applications. Provides command structure, auto-discovery, configuration management, and type-safe command options.
|
|
5
|
+
Bun-native CLI framework for Agentuity applications. Provides command structure, auto-discovery, configuration management, TUI helpers, and type-safe command options.
|
|
6
6
|
|
|
7
7
|
## Commands
|
|
8
8
|
|
|
@@ -22,45 +22,61 @@ Bun-native CLI framework for Agentuity applications. Provides command structure,
|
|
|
22
22
|
|
|
23
23
|
- **Command structure**: Each command is a directory in `src/cmd/` with `index.ts`
|
|
24
24
|
- **Type safety**: Always define interfaces for command options (never `any`)
|
|
25
|
-
- **TUI output**: Use `tui.*` helpers for formatted output (
|
|
25
|
+
- **TUI output**: Use `tui.*` helpers for formatted output (header, info, success, warning, error, table, progress)
|
|
26
26
|
- **Logging**: Use `ctx.logger`; `logger.fatal()` logs and exits with code 1
|
|
27
27
|
- **Bun APIs**: Use `Bun.file(f).exists()` not `existsSync(f)`
|
|
28
|
+
- **JSON mode**: Always check `isJSONMode()` for machine-readable output
|
|
29
|
+
- **Auth**: Use `requireAuth(ctx)` or `optionalAuth(ctx)` for authenticated commands
|
|
28
30
|
|
|
29
|
-
##
|
|
31
|
+
## Key Patterns
|
|
32
|
+
|
|
33
|
+
### Creating Commands
|
|
30
34
|
|
|
31
35
|
```typescript
|
|
32
36
|
// src/cmd/deploy/index.ts
|
|
33
|
-
import
|
|
34
|
-
import {
|
|
35
|
-
|
|
36
|
-
interface DeployOptions {
|
|
37
|
-
force: boolean;
|
|
38
|
-
dryRun: boolean;
|
|
39
|
-
}
|
|
37
|
+
import { z } from 'zod';
|
|
38
|
+
import { createCommand, type CommandContext } from '@agentuity/cli';
|
|
40
39
|
|
|
41
|
-
export
|
|
40
|
+
export default createCommand({
|
|
42
41
|
name: 'deploy',
|
|
43
42
|
description: 'Deploy to an environment',
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
.
|
|
47
|
-
.
|
|
48
|
-
|
|
49
|
-
.action(async (environment: string, options: DeployOptions) => {
|
|
50
|
-
ctx.logger.info(`Deploying to: ${environment}`);
|
|
51
|
-
});
|
|
43
|
+
schema: {
|
|
44
|
+
options: z.object({
|
|
45
|
+
force: z.boolean().optional().describe('Force deployment'),
|
|
46
|
+
dryRun: z.boolean().optional().describe('Dry run mode'),
|
|
47
|
+
}),
|
|
52
48
|
},
|
|
53
|
-
|
|
49
|
+
async handler(ctx: CommandContext) {
|
|
50
|
+
const { opts, logger } = ctx;
|
|
51
|
+
logger.info(`Deploying with force=${opts.force}, dryRun=${opts.dryRun}`);
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
```
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
### Output Modes
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
import { isJSONMode, outputJSON, outputSuccess, createSuccessResponse } from '@agentuity/cli';
|
|
60
|
+
|
|
61
|
+
if (isJSONMode()) {
|
|
62
|
+
outputJSON(createSuccessResponse({ data }));
|
|
63
|
+
} else {
|
|
64
|
+
outputSuccess('Operation completed');
|
|
65
|
+
}
|
|
56
66
|
```
|
|
57
67
|
|
|
58
|
-
##
|
|
68
|
+
## Important Exports
|
|
69
|
+
|
|
70
|
+
- **CLI**: `createCLI`, `registerCommands`, `discoverCommands`
|
|
71
|
+
- **Output**: `isJSONMode`, `outputJSON`, `outputSuccess`, `outputInfo`, `outputWarning`, `tui.*`
|
|
72
|
+
- **Config**: `loadConfig`, `saveConfig`, `saveAuth`, `getAuth`, `clearAuth`
|
|
73
|
+
- **Auth**: `requireAuth`, `optionalAuth`, `APIClient`
|
|
74
|
+
- **Utils**: `runSteps`, `downloadGitHubTarball`, `createRepl`, `showBanner`
|
|
59
75
|
|
|
60
|
-
See
|
|
76
|
+
See `src/index.ts` for complete exports.
|
|
61
77
|
|
|
62
78
|
## Publishing
|
|
63
79
|
|
|
64
80
|
1. Run `bun run build`
|
|
65
81
|
2. Test CLI with `bun bin/cli.ts`
|
|
66
|
-
3. Depends on `@agentuity/core
|
|
82
|
+
3. Depends on `@agentuity/core`, `@agentuity/server`, and `commander`
|
package/bin/cli.ts
CHANGED
|
@@ -8,7 +8,7 @@ if (versionArgs.length === 1 && ['version', '-v', '--version', '-V'].includes(ve
|
|
|
8
8
|
process.exit(0);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
import { ConsoleLogger } from '@agentuity/server';
|
|
11
|
+
import { ConsoleLogger, getAppBaseURL } from '@agentuity/server';
|
|
12
12
|
import { isStructuredError } from '@agentuity/core';
|
|
13
13
|
import { createCLI, registerCommands } from '../src/cli';
|
|
14
14
|
import { validateRuntime } from '../src/runtime';
|
|
@@ -20,6 +20,7 @@ import { getVersion, getPackageName } from '../src/version';
|
|
|
20
20
|
|
|
21
21
|
import type { CommandContext, LogLevel } from '../src/types';
|
|
22
22
|
import { generateCLISchema } from '../src/schema-generator';
|
|
23
|
+
import { generateAIHelp } from '../src/ai-help';
|
|
23
24
|
import { setOutputOptions } from '../src/output';
|
|
24
25
|
import type { GlobalOptions } from '../src/types';
|
|
25
26
|
import { ensureBunOnPath } from '../src/bun-path';
|
|
@@ -28,12 +29,7 @@ import { closeDatabase } from '../src/cache';
|
|
|
28
29
|
import { createInternalLogger } from '../src/internal-logger';
|
|
29
30
|
import { createCompositeLogger } from '../src/composite-logger';
|
|
30
31
|
import { getAuth } from '../src/config';
|
|
31
|
-
import {
|
|
32
|
-
startAgentDetection,
|
|
33
|
-
isExecutingFromAgent,
|
|
34
|
-
onAgentDetected,
|
|
35
|
-
flushAgentDetection,
|
|
36
|
-
} from '../src/agent-detection';
|
|
32
|
+
import { getExecutingAgent } from '../src/agent-detection';
|
|
37
33
|
|
|
38
34
|
/**
|
|
39
35
|
* Extract --dir flag from process.argv before command parsing
|
|
@@ -95,10 +91,6 @@ process.on('SIGTERM', () => {
|
|
|
95
91
|
validateRuntime();
|
|
96
92
|
await ensureBunOnPath();
|
|
97
93
|
|
|
98
|
-
// Start agent detection early (non-blocking) so it runs in the background
|
|
99
|
-
// while the rest of CLI initialization happens
|
|
100
|
-
startAgentDetection();
|
|
101
|
-
|
|
102
94
|
// Preprocess arguments to convert --help=json to --help json
|
|
103
95
|
// Commander.js doesn't support --option=value syntax for optional values
|
|
104
96
|
const preprocessedArgs = process.argv.slice(2).flatMap((arg) => {
|
|
@@ -132,6 +124,21 @@ if (
|
|
|
132
124
|
exit(0);
|
|
133
125
|
}
|
|
134
126
|
|
|
127
|
+
// Check for --ai-help early (dashdash format for AI agents)
|
|
128
|
+
// This runs before auth/validation per dashdash spec "eager" requirement
|
|
129
|
+
if (preprocessedArgs.includes('--ai-help')) {
|
|
130
|
+
const version = getVersion();
|
|
131
|
+
const program = await createCLI(version);
|
|
132
|
+
const commands = await discoverCommands();
|
|
133
|
+
const cliSchema = generateCLISchema(program, commands, version);
|
|
134
|
+
const aiHelp = generateAIHelp(cliSchema);
|
|
135
|
+
console.log(aiHelp);
|
|
136
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
137
|
+
const exit = (globalThis as any).AGENTUITY_PROCESS_EXIT || process.exit;
|
|
138
|
+
closeDatabase();
|
|
139
|
+
exit(0);
|
|
140
|
+
}
|
|
141
|
+
|
|
135
142
|
const version = getVersion();
|
|
136
143
|
const program = await createCLI(version);
|
|
137
144
|
|
|
@@ -228,12 +235,11 @@ if (shouldSkipInternalLogging) {
|
|
|
228
235
|
// Set session ID in environment so forked child processes can share the same log file
|
|
229
236
|
process.env.AGENTUITY_INTERNAL_SESSION_ID = internalLogger.getSessionId();
|
|
230
237
|
|
|
231
|
-
//
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
});
|
|
238
|
+
// Set detected agent in session logs
|
|
239
|
+
const detectedAgent = getExecutingAgent();
|
|
240
|
+
if (detectedAgent) {
|
|
241
|
+
internalLogger.setDetectedAgent(detectedAgent);
|
|
242
|
+
}
|
|
237
243
|
}
|
|
238
244
|
|
|
239
245
|
// Create composite logger that writes to both console and internal log
|
|
@@ -244,7 +250,7 @@ if (earlyOpts.skipVersionCheck) {
|
|
|
244
250
|
process.env.AGENTUITY_SKIP_VERSION_CHECK = '1';
|
|
245
251
|
}
|
|
246
252
|
|
|
247
|
-
const config = await loadConfig(earlyOpts.config);
|
|
253
|
+
const config = await loadConfig(earlyOpts.config, false, earlyOpts.profile);
|
|
248
254
|
|
|
249
255
|
// Update internal logger with userId if available from auth (keychain or config)
|
|
250
256
|
try {
|
|
@@ -260,7 +266,7 @@ const ctx = {
|
|
|
260
266
|
config,
|
|
261
267
|
logger,
|
|
262
268
|
options: earlyOpts,
|
|
263
|
-
|
|
269
|
+
getExecutingAgent,
|
|
264
270
|
};
|
|
265
271
|
|
|
266
272
|
// Set global output options for utilities to use
|
|
@@ -293,8 +299,6 @@ await registerCommands(program, commands, ctx as unknown as CommandContext);
|
|
|
293
299
|
|
|
294
300
|
try {
|
|
295
301
|
await program.parseAsync(process.argv);
|
|
296
|
-
// Flush agent detection to ensure it's written to session logs before exit
|
|
297
|
-
await flushAgentDetection();
|
|
298
302
|
} catch (error) {
|
|
299
303
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
300
304
|
const exit = (globalThis as any).AGENTUITY_PROCESS_EXIT || process.exit;
|
|
@@ -322,7 +326,28 @@ try {
|
|
|
322
326
|
closeDatabase();
|
|
323
327
|
exit(0);
|
|
324
328
|
}
|
|
325
|
-
const errorWithMessage = error as { message?: string };
|
|
329
|
+
const errorWithMessage = error as { message?: string; statusCode?: number; _tag?: string };
|
|
330
|
+
|
|
331
|
+
// Handle payment required (402) errors with a friendly TUI message
|
|
332
|
+
if (
|
|
333
|
+
isStructuredError(error) &&
|
|
334
|
+
((errorWithMessage._tag === 'ServiceException' && errorWithMessage.statusCode === 402) ||
|
|
335
|
+
errorWithMessage._tag === 'PaymentRequiredError')
|
|
336
|
+
) {
|
|
337
|
+
const { errorBox, link, newline } = await import('../src/tui');
|
|
338
|
+
const overrides = config?.overrides as { app_url?: string } | undefined;
|
|
339
|
+
const appBaseUrl = getAppBaseURL(undefined, overrides);
|
|
340
|
+
const billingUrl = `${appBaseUrl}/billing`;
|
|
341
|
+
newline();
|
|
342
|
+
errorBox(
|
|
343
|
+
'Out of Credit',
|
|
344
|
+
`Your organization is out of credit.\n\nPlease add more here:\n${link(billingUrl)}`,
|
|
345
|
+
false // standalone box, not connected to a guide
|
|
346
|
+
);
|
|
347
|
+
closeDatabase();
|
|
348
|
+
exit(1);
|
|
349
|
+
}
|
|
350
|
+
|
|
326
351
|
if (isStructuredError(error)) {
|
|
327
352
|
logger.error(error);
|
|
328
353
|
} else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Map of process names to internal agent short names.
|
|
3
|
-
* The key is the process name (or substring) that appears in the parent process command line.
|
|
3
|
+
* The key is the process name (or substring) that appears in the parent process path or command line.
|
|
4
4
|
* The value is the internal short name used to identify the agent.
|
|
5
5
|
*
|
|
6
6
|
* Process names verified via `agentuity cloud sandbox run --runtime <agent>:latest`:
|
|
@@ -18,54 +18,39 @@
|
|
|
18
18
|
export declare const KNOWN_AGENTS: [string, string][];
|
|
19
19
|
export type KnownAgent = (typeof KNOWN_AGENTS)[number][1];
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* Call this early in CLI startup to begin detection in the background.
|
|
21
|
+
* Display names for known agents (human-friendly names)
|
|
23
22
|
*/
|
|
24
|
-
export declare
|
|
23
|
+
export declare const AGENT_DISPLAY_NAMES: Record<string, string>;
|
|
25
24
|
/**
|
|
26
|
-
*
|
|
27
|
-
* If detection has already completed, the callback is invoked immediately.
|
|
28
|
-
* This is non-blocking and does not return a promise.
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* onAgentDetected((agent) => {
|
|
33
|
-
* if (agent) {
|
|
34
|
-
* console.log(`Detected agent: ${agent}`);
|
|
35
|
-
* }
|
|
36
|
-
* });
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export declare function onAgentDetected(callback: (agent: string | undefined) => void): void;
|
|
40
|
-
/**
|
|
41
|
-
* Get the cached detection result synchronously.
|
|
42
|
-
* Returns undefined if detection hasn't completed yet or no agent was detected.
|
|
43
|
-
* Returns null if detection hasn't started or completed yet.
|
|
44
|
-
*
|
|
45
|
-
* Use this for synchronous access when you don't want to wait for detection.
|
|
46
|
-
*/
|
|
47
|
-
export declare function getDetectedAgent(): string | undefined | null;
|
|
48
|
-
/**
|
|
49
|
-
* Wait for agent detection to complete and ensure all callbacks have been invoked.
|
|
50
|
-
* Call this before CLI exit to ensure the detected agent is written to session logs.
|
|
51
|
-
*
|
|
52
|
-
* This is a no-op if detection hasn't started or has already completed.
|
|
25
|
+
* Get the display name for an agent ID
|
|
53
26
|
*/
|
|
54
|
-
export declare function
|
|
27
|
+
export declare function getAgentDisplayName(agentId: string): string;
|
|
55
28
|
/**
|
|
56
|
-
*
|
|
57
|
-
* Returns the agent
|
|
29
|
+
* Get the executing agent if the CLI is being run from a known coding agent.
|
|
30
|
+
* Returns the agent ID if detected, undefined otherwise.
|
|
58
31
|
*
|
|
59
|
-
* This function
|
|
60
|
-
*
|
|
32
|
+
* This function runs synchronously using FFI for fast process path resolution.
|
|
33
|
+
* Results are cached after the first call.
|
|
61
34
|
*
|
|
62
35
|
* @example
|
|
63
36
|
* ```typescript
|
|
64
|
-
* const agent =
|
|
37
|
+
* const agent = getExecutingAgent();
|
|
65
38
|
* if (agent) {
|
|
66
39
|
* logger.debug(`Running from agent: ${agent}`);
|
|
67
40
|
* }
|
|
68
41
|
* ```
|
|
69
42
|
*/
|
|
70
|
-
export declare function
|
|
43
|
+
export declare function getExecutingAgent(): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Get environment variables to pass to subprocesses for agent detection.
|
|
46
|
+
* This allows child processes to skip re-detection by using the cached result.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const proc = Bun.spawn(['bun', 'run', 'dev'], {
|
|
51
|
+
* env: { ...process.env, ...getAgentEnv() },
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function getAgentEnv(): Record<string, string>;
|
|
71
56
|
//# sourceMappingURL=agent-detection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-detection.d.ts","sourceRoot":"","sources":["../src/agent-detection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-detection.d.ts","sourceRoot":"","sources":["../src/agent-detection.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAiB1C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAatD,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AA4cD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAStD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpD"}
|