@agentuity/cli 0.0.51 → 0.0.53
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/dist/api.js +68 -0
- package/dist/api.js.map +1 -0
- package/dist/auth.js +225 -0
- package/dist/auth.js.map +1 -0
- package/dist/banner.js +35 -0
- package/dist/banner.js.map +1 -0
- package/dist/cli-logger.js +72 -0
- package/dist/cli-logger.js.map +1 -0
- package/dist/cli.js +822 -0
- package/dist/cli.js.map +1 -0
- package/dist/cmd/ai/capabilities/index.js +10 -0
- package/dist/cmd/ai/capabilities/index.js.map +1 -0
- package/dist/cmd/ai/capabilities/show.js +221 -0
- package/dist/cmd/ai/capabilities/show.js.map +1 -0
- package/dist/cmd/ai/index.js +11 -0
- package/dist/cmd/ai/index.js.map +1 -0
- package/dist/cmd/ai/prompt/index.js +10 -0
- package/dist/cmd/ai/prompt/index.js.map +1 -0
- package/dist/cmd/ai/prompt/llm.js +365 -0
- package/dist/cmd/ai/prompt/llm.js.map +1 -0
- package/dist/cmd/ai/schema/index.js +10 -0
- package/dist/cmd/ai/schema/index.js.map +1 -0
- package/dist/cmd/ai/schema/show.js +23 -0
- package/dist/cmd/ai/schema/show.js.map +1 -0
- package/dist/cmd/auth/api.js +85 -0
- package/dist/cmd/auth/api.js.map +1 -0
- package/dist/cmd/auth/index.js +13 -0
- package/dist/cmd/auth/index.js.map +1 -0
- package/dist/cmd/auth/login.js +84 -0
- package/dist/cmd/auth/login.js.map +1 -0
- package/dist/cmd/auth/logout.js +17 -0
- package/dist/cmd/auth/logout.js.map +1 -0
- package/dist/cmd/auth/signup.js +55 -0
- package/dist/cmd/auth/signup.js.map +1 -0
- package/dist/cmd/auth/ssh/add.js +239 -0
- package/dist/cmd/auth/ssh/add.js.map +1 -0
- package/dist/cmd/auth/ssh/api.js +53 -0
- package/dist/cmd/auth/ssh/api.js.map +1 -0
- package/dist/cmd/auth/ssh/delete.js +126 -0
- package/dist/cmd/auth/ssh/delete.js.map +1 -0
- package/dist/cmd/auth/ssh/index.js +11 -0
- package/dist/cmd/auth/ssh/index.js.map +1 -0
- package/dist/cmd/auth/ssh/list.js +70 -0
- package/dist/cmd/auth/ssh/list.js.map +1 -0
- package/dist/cmd/auth/whoami.js +68 -0
- package/dist/cmd/auth/whoami.js.map +1 -0
- package/dist/cmd/build/ast.js +608 -0
- package/dist/cmd/build/ast.js.map +1 -0
- package/dist/cmd/build/ast.test.js +389 -0
- package/dist/cmd/build/ast.test.js.map +1 -0
- package/dist/cmd/build/bundler.js +304 -0
- package/dist/cmd/build/bundler.js.map +1 -0
- package/dist/cmd/build/file.js +10 -0
- package/dist/cmd/build/file.js.map +1 -0
- package/dist/cmd/build/fix-duplicate-exports.js +167 -0
- package/dist/cmd/build/fix-duplicate-exports.js.map +1 -0
- package/dist/cmd/build/fix-duplicate-exports.test.js +300 -0
- package/dist/cmd/build/fix-duplicate-exports.test.js.map +1 -0
- package/dist/cmd/build/index.d.ts.map +1 -1
- package/dist/cmd/build/index.js +81 -0
- package/dist/cmd/build/index.js.map +1 -0
- package/dist/cmd/build/patch/_util.js +42 -0
- package/dist/cmd/build/patch/_util.js.map +1 -0
- package/dist/cmd/build/patch/aisdk.js +65 -0
- package/dist/cmd/build/patch/aisdk.js.map +1 -0
- package/dist/cmd/build/patch/index.js +97 -0
- package/dist/cmd/build/patch/index.js.map +1 -0
- package/dist/cmd/build/patch/llm.js +18 -0
- package/dist/cmd/build/patch/llm.js.map +1 -0
- package/dist/cmd/build/plugin.d.ts.map +1 -1
- package/dist/cmd/build/plugin.js +581 -0
- package/dist/cmd/build/plugin.js.map +1 -0
- package/dist/cmd/cloud/agents/index.js +133 -0
- package/dist/cmd/cloud/agents/index.js.map +1 -0
- package/dist/cmd/cloud/deploy.js +341 -0
- package/dist/cmd/cloud/deploy.js.map +1 -0
- package/dist/cmd/cloud/deployment/index.js +20 -0
- package/dist/cmd/cloud/deployment/index.js.map +1 -0
- package/dist/cmd/cloud/deployment/list.js +89 -0
- package/dist/cmd/cloud/deployment/list.js.map +1 -0
- package/dist/cmd/cloud/deployment/remove.js +60 -0
- package/dist/cmd/cloud/deployment/remove.js.map +1 -0
- package/dist/cmd/cloud/deployment/rollback.js +80 -0
- package/dist/cmd/cloud/deployment/rollback.js.map +1 -0
- package/dist/cmd/cloud/deployment/show.js +106 -0
- package/dist/cmd/cloud/deployment/show.js.map +1 -0
- package/dist/cmd/cloud/deployment/undeploy.js +45 -0
- package/dist/cmd/cloud/deployment/undeploy.js.map +1 -0
- package/dist/cmd/cloud/deployment/utils.js +10 -0
- package/dist/cmd/cloud/deployment/utils.js.map +1 -0
- package/dist/cmd/cloud/domain.js +77 -0
- package/dist/cmd/cloud/domain.js.map +1 -0
- package/dist/cmd/cloud/env/delete.js +50 -0
- package/dist/cmd/cloud/env/delete.js.map +1 -0
- package/dist/cmd/cloud/env/get.js +65 -0
- package/dist/cmd/cloud/env/get.js.map +1 -0
- package/dist/cmd/cloud/env/import.js +113 -0
- package/dist/cmd/cloud/env/import.js.map +1 -0
- package/dist/cmd/cloud/env/index.js +24 -0
- package/dist/cmd/cloud/env/index.js.map +1 -0
- package/dist/cmd/cloud/env/list.js +58 -0
- package/dist/cmd/cloud/env/list.js.map +1 -0
- package/dist/cmd/cloud/env/pull.js +81 -0
- package/dist/cmd/cloud/env/pull.js.map +1 -0
- package/dist/cmd/cloud/env/push.js +61 -0
- package/dist/cmd/cloud/env/push.js.map +1 -0
- package/dist/cmd/cloud/env/set.js +73 -0
- package/dist/cmd/cloud/env/set.js.map +1 -0
- package/dist/cmd/cloud/index.js +31 -0
- package/dist/cmd/cloud/index.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/create-namespace.js +41 -0
- package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/delete-namespace.js +64 -0
- package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/delete.js +47 -0
- package/dist/cmd/cloud/keyvalue/delete.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/get.js +65 -0
- package/dist/cmd/cloud/keyvalue/get.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/index.js +32 -0
- package/dist/cmd/cloud/keyvalue/index.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/keys.js +50 -0
- package/dist/cmd/cloud/keyvalue/keys.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/list-namespaces.js +37 -0
- package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/repl.js +277 -0
- package/dist/cmd/cloud/keyvalue/repl.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/search.js +72 -0
- package/dist/cmd/cloud/keyvalue/search.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/set.js +59 -0
- package/dist/cmd/cloud/keyvalue/set.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/stats.js +82 -0
- package/dist/cmd/cloud/keyvalue/stats.js.map +1 -0
- package/dist/cmd/cloud/keyvalue/util.js +19 -0
- package/dist/cmd/cloud/keyvalue/util.js.map +1 -0
- package/dist/cmd/cloud/objectstore/delete-bucket.js +66 -0
- package/dist/cmd/cloud/objectstore/delete-bucket.js.map +1 -0
- package/dist/cmd/cloud/objectstore/delete.js +56 -0
- package/dist/cmd/cloud/objectstore/delete.js.map +1 -0
- package/dist/cmd/cloud/objectstore/get.js +64 -0
- package/dist/cmd/cloud/objectstore/get.js.map +1 -0
- package/dist/cmd/cloud/objectstore/index.js +28 -0
- package/dist/cmd/cloud/objectstore/index.js.map +1 -0
- package/dist/cmd/cloud/objectstore/list-buckets.js +37 -0
- package/dist/cmd/cloud/objectstore/list-buckets.js.map +1 -0
- package/dist/cmd/cloud/objectstore/list-keys.js +52 -0
- package/dist/cmd/cloud/objectstore/list-keys.js.map +1 -0
- package/dist/cmd/cloud/objectstore/put.js +57 -0
- package/dist/cmd/cloud/objectstore/put.js.map +1 -0
- package/dist/cmd/cloud/objectstore/repl.js +219 -0
- package/dist/cmd/cloud/objectstore/repl.js.map +1 -0
- package/dist/cmd/cloud/objectstore/url.js +55 -0
- package/dist/cmd/cloud/objectstore/url.js.map +1 -0
- package/dist/cmd/cloud/objectstore/util.js +18 -0
- package/dist/cmd/cloud/objectstore/util.js.map +1 -0
- package/dist/cmd/cloud/resource/add.js +70 -0
- package/dist/cmd/cloud/resource/add.js.map +1 -0
- package/dist/cmd/cloud/resource/delete.js +126 -0
- package/dist/cmd/cloud/resource/delete.js.map +1 -0
- package/dist/cmd/cloud/resource/index.js +12 -0
- package/dist/cmd/cloud/resource/index.js.map +1 -0
- package/dist/cmd/cloud/resource/list.js +89 -0
- package/dist/cmd/cloud/resource/list.js.map +1 -0
- package/dist/cmd/cloud/scp/download.js +72 -0
- package/dist/cmd/cloud/scp/download.js.map +1 -0
- package/dist/cmd/cloud/scp/index.js +10 -0
- package/dist/cmd/cloud/scp/index.js.map +1 -0
- package/dist/cmd/cloud/scp/upload.js +75 -0
- package/dist/cmd/cloud/scp/upload.js.map +1 -0
- package/dist/cmd/cloud/secret/delete.js +50 -0
- package/dist/cmd/cloud/secret/delete.js.map +1 -0
- package/dist/cmd/cloud/secret/get.js +69 -0
- package/dist/cmd/cloud/secret/get.js.map +1 -0
- package/dist/cmd/cloud/secret/import.js +88 -0
- package/dist/cmd/cloud/secret/import.js.map +1 -0
- package/dist/cmd/cloud/secret/index.js +24 -0
- package/dist/cmd/cloud/secret/index.js.map +1 -0
- package/dist/cmd/cloud/secret/list.js +58 -0
- package/dist/cmd/cloud/secret/list.js.map +1 -0
- package/dist/cmd/cloud/secret/pull.js +81 -0
- package/dist/cmd/cloud/secret/pull.js.map +1 -0
- package/dist/cmd/cloud/secret/push.js +61 -0
- package/dist/cmd/cloud/secret/push.js.map +1 -0
- package/dist/cmd/cloud/secret/set.js +57 -0
- package/dist/cmd/cloud/secret/set.js.map +1 -0
- package/dist/cmd/cloud/session/get.d.ts.map +1 -1
- package/dist/cmd/cloud/session/get.js +155 -0
- package/dist/cmd/cloud/session/get.js.map +1 -0
- package/dist/cmd/cloud/session/index.js +11 -0
- package/dist/cmd/cloud/session/index.js.map +1 -0
- package/dist/cmd/cloud/session/list.js +132 -0
- package/dist/cmd/cloud/session/list.js.map +1 -0
- package/dist/cmd/cloud/session/logs.js +56 -0
- package/dist/cmd/cloud/session/logs.js.map +1 -0
- package/dist/cmd/cloud/ssh.js +67 -0
- package/dist/cmd/cloud/ssh.js.map +1 -0
- package/dist/cmd/dev/agents.js +103 -0
- package/dist/cmd/dev/agents.js.map +1 -0
- package/dist/cmd/dev/api.js +26 -0
- package/dist/cmd/dev/api.js.map +1 -0
- package/dist/cmd/dev/download.js +77 -0
- package/dist/cmd/dev/download.js.map +1 -0
- package/dist/cmd/dev/index.js +745 -0
- package/dist/cmd/dev/index.js.map +1 -0
- package/dist/cmd/dev/sync.js +229 -0
- package/dist/cmd/dev/sync.js.map +1 -0
- package/dist/cmd/dev/templates.js +75 -0
- package/dist/cmd/dev/templates.js.map +1 -0
- package/dist/cmd/index.js +49 -0
- package/dist/cmd/index.js.map +1 -0
- package/dist/cmd/profile/create.js +89 -0
- package/dist/cmd/profile/create.js.map +1 -0
- package/dist/cmd/profile/delete.js +63 -0
- package/dist/cmd/profile/delete.js.map +1 -0
- package/dist/cmd/profile/index.js +14 -0
- package/dist/cmd/profile/index.js.map +1 -0
- package/dist/cmd/profile/list.js +28 -0
- package/dist/cmd/profile/list.js.map +1 -0
- package/dist/cmd/profile/show.js +68 -0
- package/dist/cmd/profile/show.js.map +1 -0
- package/dist/cmd/profile/use.js +37 -0
- package/dist/cmd/profile/use.js.map +1 -0
- package/dist/cmd/project/create.js +92 -0
- package/dist/cmd/project/create.js.map +1 -0
- package/dist/cmd/project/delete.js +117 -0
- package/dist/cmd/project/delete.js.map +1 -0
- package/dist/cmd/project/download.js +217 -0
- package/dist/cmd/project/download.js.map +1 -0
- package/dist/cmd/project/index.js +12 -0
- package/dist/cmd/project/index.js.map +1 -0
- package/dist/cmd/project/list.js +51 -0
- package/dist/cmd/project/list.js.map +1 -0
- package/dist/cmd/project/show.js +54 -0
- package/dist/cmd/project/show.js.map +1 -0
- package/dist/cmd/project/template-flow.js +315 -0
- package/dist/cmd/project/template-flow.js.map +1 -0
- package/dist/cmd/project/templates.js +31 -0
- package/dist/cmd/project/templates.js.map +1 -0
- package/dist/cmd/repl/index.js +444 -0
- package/dist/cmd/repl/index.js.map +1 -0
- package/dist/cmd/version/index.js +29 -0
- package/dist/cmd/version/index.js.map +1 -0
- package/dist/command-prefix.js +37 -0
- package/dist/command-prefix.js.map +1 -0
- package/dist/config.js +536 -0
- package/dist/config.js.map +1 -0
- package/dist/crypto/box.js +382 -0
- package/dist/crypto/box.js.map +1 -0
- package/dist/crypto/box.test.js +317 -0
- package/dist/crypto/box.test.js.map +1 -0
- package/dist/download.js +64 -0
- package/dist/download.js.map +1 -0
- package/dist/env-util.js +219 -0
- package/dist/env-util.js.map +1 -0
- package/dist/env-util.test.js +146 -0
- package/dist/env-util.test.js.map +1 -0
- package/dist/errors.js +177 -0
- package/dist/errors.js.map +1 -0
- package/dist/explain.js +90 -0
- package/dist/explain.js.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/json.js +29 -0
- package/dist/json.js.map +1 -0
- package/dist/legacy-check.js +104 -0
- package/dist/legacy-check.js.map +1 -0
- package/dist/output.js +207 -0
- package/dist/output.js.map +1 -0
- package/dist/repl.js +1176 -0
- package/dist/repl.js.map +1 -0
- package/dist/runtime.js +19 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema-generator.js +289 -0
- package/dist/schema-generator.js.map +1 -0
- package/dist/schema-parser.js +145 -0
- package/dist/schema-parser.js.map +1 -0
- package/dist/sound.js +44 -0
- package/dist/sound.js.map +1 -0
- package/dist/steps.js +293 -0
- package/dist/steps.js.map +1 -0
- package/dist/terminal.js +130 -0
- package/dist/terminal.js.map +1 -0
- package/dist/tui.js +1124 -0
- package/dist/tui.js.map +1 -0
- package/dist/types.js +163 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/detectSubagent.js +25 -0
- package/dist/utils/detectSubagent.js.map +1 -0
- package/dist/utils/format.js +21 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/zip.js +33 -0
- package/dist/utils/zip.js.map +1 -0
- package/dist/version.js +24 -0
- package/dist/version.js.map +1 -0
- package/package.json +6 -6
- package/src/banner.ts +1 -1
- package/src/cmd/build/index.ts +18 -22
- package/src/cmd/build/plugin.ts +95 -64
- package/src/cmd/cloud/session/get.ts +20 -14
- package/src/cmd/cloud/session/list.ts +1 -1
package/dist/api.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI-specific API client wrapper
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from @agentuity/server with CLI-specific configuration
|
|
5
|
+
*/
|
|
6
|
+
import { getVersion, getRevision } from './version';
|
|
7
|
+
import { APIClient as BaseAPIClient, getAPIBaseURL as baseGetAPIBaseURL, getAppBaseURL as baseGetAppBaseURL, } from '@agentuity/server';
|
|
8
|
+
function getUserAgent(config) {
|
|
9
|
+
// If we're skipping version check, send "dev" to signal the server to skip too
|
|
10
|
+
let version = getVersion();
|
|
11
|
+
if (shouldSkipVersionCheck(config)) {
|
|
12
|
+
version = 'dev';
|
|
13
|
+
}
|
|
14
|
+
const revision = getRevision();
|
|
15
|
+
return `Agentuity CLI/${version} (${revision})`;
|
|
16
|
+
}
|
|
17
|
+
function shouldSkipVersionCheck(config) {
|
|
18
|
+
// Priority order:
|
|
19
|
+
// 1. CLI flag (set via env var in cli.ts)
|
|
20
|
+
// 2. Environment variable
|
|
21
|
+
// 3. Config override
|
|
22
|
+
// 4. Auto-detection (dev/0.0.x versions)
|
|
23
|
+
// Skip if environment variable is set (includes CLI flag)
|
|
24
|
+
if (process.env.AGENTUITY_SKIP_VERSION_CHECK === '1' ||
|
|
25
|
+
process.env.AGENTUITY_SKIP_VERSION_CHECK === 'true') {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
// Check config overrides
|
|
29
|
+
const overrides = config?.overrides;
|
|
30
|
+
if (overrides?.skip_version_check === true) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
// Skip if version is 'dev' or starts with '0.0.' (pre-release/local development)
|
|
34
|
+
const version = getVersion();
|
|
35
|
+
if (version === 'dev' || version.startsWith('0.0.')) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
// CLI-specific wrapper around the base APIClient
|
|
41
|
+
export class APIClient extends BaseAPIClient {
|
|
42
|
+
constructor(baseUrl, logger, apiKeyOrConfig, config) {
|
|
43
|
+
const clientConfig = {
|
|
44
|
+
skipVersionCheck: shouldSkipVersionCheck(typeof apiKeyOrConfig === 'string' ? config : apiKeyOrConfig),
|
|
45
|
+
userAgent: getUserAgent(typeof apiKeyOrConfig === 'string' ? config : apiKeyOrConfig),
|
|
46
|
+
};
|
|
47
|
+
if (typeof apiKeyOrConfig === 'string') {
|
|
48
|
+
super(baseUrl, logger, apiKeyOrConfig, clientConfig);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
if (apiKeyOrConfig?.auth?.api_key) {
|
|
52
|
+
super(baseUrl, logger, apiKeyOrConfig.auth.api_key, clientConfig);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
super(baseUrl, logger, clientConfig);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function getAPIBaseURL(config) {
|
|
61
|
+
const overrides = config?.overrides;
|
|
62
|
+
return baseGetAPIBaseURL(overrides);
|
|
63
|
+
}
|
|
64
|
+
export function getAppBaseURL(config) {
|
|
65
|
+
const overrides = config?.overrides;
|
|
66
|
+
return baseGetAppBaseURL(overrides);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EACN,SAAS,IAAI,aAAa,EAC1B,aAAa,IAAI,iBAAiB,EAClC,aAAa,IAAI,iBAAiB,GAElC,MAAM,mBAAmB,CAAC;AAE3B,SAAS,YAAY,CAAC,MAAsB;IAC3C,+EAA+E;IAC/E,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;IAC3B,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,OAAO,iBAAiB,OAAO,KAAK,QAAQ,GAAG,CAAC;AACjD,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAsB;IACrD,kBAAkB;IAClB,0CAA0C;IAC1C,0BAA0B;IAC1B,qBAAqB;IACrB,yCAAyC;IAEzC,0DAA0D;IAC1D,IACC,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,GAAG;QAChD,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,MAAM,EAClD,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yBAAyB;IACzB,MAAM,SAAS,GAAG,MAAM,EAAE,SAAyD,CAAC;IACpF,IAAI,SAAS,EAAE,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iFAAiF;IACjF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,iDAAiD;AACjD,MAAM,OAAO,SAAU,SAAQ,aAAa;IAG3C,YACC,OAAe,EACf,MAAc,EACd,cAAuC,EACvC,MAAsB;QAEtB,MAAM,YAAY,GAAoB;YACrC,gBAAgB,EAAE,sBAAsB,CACvC,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAC5D;YACD,SAAS,EAAE,YAAY,CAAC,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;SACrF,CAAC;QAEF,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACP,IAAI,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBACnC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;CACD;AAED,MAAM,UAAU,aAAa,CAAC,MAAsB;IACnD,MAAM,SAAS,GAAG,MAAM,EAAE,SAA6C,CAAC;IACxE,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAsB;IACnD,MAAM,SAAS,GAAG,MAAM,EAAE,SAA6C,CAAC;IACxE,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import enquirer from 'enquirer';
|
|
3
|
+
import { getDefaultConfigDir, getAuth, saveConfig, loadConfig, saveOrgId } from './config';
|
|
4
|
+
import { getCommand } from './command-prefix';
|
|
5
|
+
import * as tui from './tui';
|
|
6
|
+
import { defaultProfileName } from './config';
|
|
7
|
+
import { listOrganizations } from '@agentuity/server';
|
|
8
|
+
import { APIClient, getAPIBaseURL } from './api';
|
|
9
|
+
export function isTTY() {
|
|
10
|
+
return process.stdin.isTTY === true && process.stdout.isTTY === true;
|
|
11
|
+
}
|
|
12
|
+
export function hasLoggedInBefore() {
|
|
13
|
+
const configDir = getDefaultConfigDir();
|
|
14
|
+
return existsSync(configDir);
|
|
15
|
+
}
|
|
16
|
+
export async function isAuthenticated() {
|
|
17
|
+
const auth = await getAuth();
|
|
18
|
+
if (!auth) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return auth.expires > new Date();
|
|
22
|
+
}
|
|
23
|
+
export async function requireAuth(ctx) {
|
|
24
|
+
const { logger } = ctx;
|
|
25
|
+
const auth = await getAuth();
|
|
26
|
+
if (auth && auth.expires > new Date()) {
|
|
27
|
+
return auth;
|
|
28
|
+
}
|
|
29
|
+
const loginCmd = getCommand('auth login');
|
|
30
|
+
const hasConfig = hasLoggedInBefore();
|
|
31
|
+
if (!isTTY()) {
|
|
32
|
+
if (hasConfig) {
|
|
33
|
+
logger.fatal(`You are not currently logged in or your session has expired.\n` +
|
|
34
|
+
`Use "${loginCmd}" to login to Agentuity`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
logger.fatal(`Authentication required.\n` + `Use "${loginCmd}" to create an account or login`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Show signup benefits box
|
|
41
|
+
tui.showSignupBenefits();
|
|
42
|
+
// Interactive mode - show warning and confirm
|
|
43
|
+
tui.warning(hasConfig
|
|
44
|
+
? 'You are not currently logged in or your session has expired.'
|
|
45
|
+
: 'Authentication required to continue.');
|
|
46
|
+
tui.newline();
|
|
47
|
+
const shouldLogin = await tui.confirm(hasConfig ? 'Would you like to login now?' : 'Would you like to create an account or login?', true);
|
|
48
|
+
if (!shouldLogin) {
|
|
49
|
+
return tui.fatal(`Authentication required. Run "${loginCmd}" when you're ready to continue.`);
|
|
50
|
+
}
|
|
51
|
+
tui.newline();
|
|
52
|
+
// Import and run login flow
|
|
53
|
+
const { loginCommand } = await import('./cmd/auth/login');
|
|
54
|
+
// Ensure apiClient is available for login handler
|
|
55
|
+
const loginCtx = ctx;
|
|
56
|
+
if (!loginCtx.apiClient) {
|
|
57
|
+
const apiUrl = getAPIBaseURL(ctx.config ?? null);
|
|
58
|
+
loginCtx.apiClient = new APIClient(apiUrl, ctx.logger, ctx.config ?? null);
|
|
59
|
+
}
|
|
60
|
+
if (loginCommand.handler) {
|
|
61
|
+
await loginCommand.handler(loginCtx);
|
|
62
|
+
}
|
|
63
|
+
// After login completes, verify we have auth
|
|
64
|
+
const newAuth = await getAuth();
|
|
65
|
+
if (!newAuth || newAuth.expires <= new Date()) {
|
|
66
|
+
return tui.fatal('Login was not completed successfully.');
|
|
67
|
+
}
|
|
68
|
+
tui.newline();
|
|
69
|
+
return newAuth;
|
|
70
|
+
}
|
|
71
|
+
export async function optionalAuth(ctx, continueText) {
|
|
72
|
+
const auth = await getAuth();
|
|
73
|
+
if (auth && auth.expires > new Date()) {
|
|
74
|
+
return auth;
|
|
75
|
+
}
|
|
76
|
+
// Show signup benefits but don't block - just return null
|
|
77
|
+
if (isTTY()) {
|
|
78
|
+
const config = await loadConfig();
|
|
79
|
+
// check to see if we've shown the banner or logged in before
|
|
80
|
+
const benefitsShown = config?.preferences?.signup_banner_shown === true;
|
|
81
|
+
const hasLoggedIn = hasLoggedInBefore();
|
|
82
|
+
// if we haven't shown it, show it once and then remember that we've shown it
|
|
83
|
+
if (!benefitsShown && hasLoggedIn) {
|
|
84
|
+
tui.showSignupBenefits();
|
|
85
|
+
if (!config) {
|
|
86
|
+
ctx.config = { name: defaultProfileName };
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
ctx.config = config;
|
|
90
|
+
}
|
|
91
|
+
if (!ctx.config.preferences) {
|
|
92
|
+
ctx.config.preferences = {};
|
|
93
|
+
}
|
|
94
|
+
ctx.config.preferences.signup_banner_shown = true;
|
|
95
|
+
await saveConfig(ctx.config);
|
|
96
|
+
// Show select menu with custom or default text
|
|
97
|
+
const defaultContinueText = 'Start without an account (run locally)';
|
|
98
|
+
const response = await enquirer.prompt({
|
|
99
|
+
type: 'select',
|
|
100
|
+
name: 'action',
|
|
101
|
+
message: 'How would you like to continue?',
|
|
102
|
+
choices: [
|
|
103
|
+
{
|
|
104
|
+
name: 'login',
|
|
105
|
+
message: 'Create an account or login',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'local',
|
|
109
|
+
message: continueText || defaultContinueText,
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
});
|
|
113
|
+
if (response.action === 'local') {
|
|
114
|
+
tui.showLoggedOutMessage();
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
tui.newline();
|
|
118
|
+
// Import and run login flow
|
|
119
|
+
const { loginCommand } = await import('./cmd/auth/login');
|
|
120
|
+
// Ensure apiClient is available for login handler
|
|
121
|
+
const loginCtx1 = ctx;
|
|
122
|
+
if (!loginCtx1.apiClient) {
|
|
123
|
+
const apiUrl = getAPIBaseURL(ctx.config ?? null);
|
|
124
|
+
loginCtx1.apiClient = new APIClient(apiUrl, ctx.logger, ctx.config ?? null);
|
|
125
|
+
}
|
|
126
|
+
if (loginCommand.handler) {
|
|
127
|
+
await loginCommand.handler(loginCtx1);
|
|
128
|
+
}
|
|
129
|
+
return getAuth();
|
|
130
|
+
}
|
|
131
|
+
if (hasLoggedIn) {
|
|
132
|
+
tui.warning('You are not currently logged in');
|
|
133
|
+
tui.newline();
|
|
134
|
+
const response = await enquirer.prompt({
|
|
135
|
+
type: 'select',
|
|
136
|
+
name: 'action',
|
|
137
|
+
message: 'How would you like to continue?',
|
|
138
|
+
choices: [
|
|
139
|
+
{
|
|
140
|
+
name: 'local',
|
|
141
|
+
message: 'Continue without login',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: 'login',
|
|
145
|
+
message: 'Login',
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
});
|
|
149
|
+
if (response.action === 'local') {
|
|
150
|
+
tui.showLoggedOutMessage();
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
tui.newline();
|
|
154
|
+
// Import and run login flow
|
|
155
|
+
const { loginCommand } = await import('./cmd/auth/login');
|
|
156
|
+
// Ensure apiClient is available for login handler
|
|
157
|
+
const loginCtx2 = ctx;
|
|
158
|
+
if (!loginCtx2.apiClient) {
|
|
159
|
+
const apiUrl = getAPIBaseURL(ctx.config ?? null);
|
|
160
|
+
loginCtx2.apiClient = new APIClient(apiUrl, ctx.logger, ctx.config ?? null);
|
|
161
|
+
}
|
|
162
|
+
if (loginCommand.handler) {
|
|
163
|
+
await loginCommand.handler(loginCtx2);
|
|
164
|
+
}
|
|
165
|
+
return getAuth();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
export async function requireOrg(ctx) {
|
|
171
|
+
const { options, config, apiClient } = ctx;
|
|
172
|
+
// Check if org is provided via --org-id flag
|
|
173
|
+
if (options.orgId) {
|
|
174
|
+
return options.orgId;
|
|
175
|
+
}
|
|
176
|
+
// Check if org is saved in config preferences
|
|
177
|
+
if (config?.preferences?.orgId) {
|
|
178
|
+
return config.preferences.orgId;
|
|
179
|
+
}
|
|
180
|
+
// Fetch organizations
|
|
181
|
+
const orgs = await tui.spinner('Fetching organizations', async () => {
|
|
182
|
+
return listOrganizations(apiClient);
|
|
183
|
+
});
|
|
184
|
+
if (orgs.length === 0) {
|
|
185
|
+
tui.fatal('No organizations found for your account');
|
|
186
|
+
}
|
|
187
|
+
// Use selectOrganization which handles single org and prompting
|
|
188
|
+
// Pass the saved preference as initial selection
|
|
189
|
+
const orgId = await tui.selectOrganization(orgs, config?.preferences?.orgId);
|
|
190
|
+
// Save selected org to config if different
|
|
191
|
+
if (orgId !== config?.preferences?.orgId) {
|
|
192
|
+
await saveOrgId(orgId);
|
|
193
|
+
}
|
|
194
|
+
return orgId;
|
|
195
|
+
}
|
|
196
|
+
export async function optionalOrg(ctx) {
|
|
197
|
+
const { options, config, apiClient, auth } = ctx;
|
|
198
|
+
// If not authenticated or no API client, skip org selection
|
|
199
|
+
if (!auth || !apiClient) {
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
// Check if org is provided via --org-id flag
|
|
203
|
+
if (options.orgId) {
|
|
204
|
+
return options.orgId;
|
|
205
|
+
}
|
|
206
|
+
// Check if org is saved in config preferences
|
|
207
|
+
if (config?.preferences?.orgId) {
|
|
208
|
+
return config.preferences.orgId;
|
|
209
|
+
}
|
|
210
|
+
// Fetch organizations
|
|
211
|
+
const orgs = await tui.spinner('Fetching organizations', async () => {
|
|
212
|
+
return listOrganizations(apiClient);
|
|
213
|
+
});
|
|
214
|
+
if (orgs.length === 0) {
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
// Use selectOrganization which handles single org and prompting
|
|
218
|
+
const orgId = await tui.selectOrganization(orgs, config?.preferences?.orgId);
|
|
219
|
+
// Save selected org to config if different
|
|
220
|
+
if (orgId !== config?.preferences?.orgId) {
|
|
221
|
+
await saveOrgId(orgId);
|
|
222
|
+
}
|
|
223
|
+
return orgId;
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/banner.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getVersion } from './version';
|
|
2
|
+
import { shouldUseColors, isDarkMode } from './tui';
|
|
3
|
+
export function showBanner(version, compact) {
|
|
4
|
+
const _version = version ?? getVersion();
|
|
5
|
+
const USE_COLORS = shouldUseColors();
|
|
6
|
+
const dark = isDarkMode();
|
|
7
|
+
const CYAN = USE_COLORS
|
|
8
|
+
? dark
|
|
9
|
+
? Bun.color('cyan', 'ansi-16m')
|
|
10
|
+
: Bun.color('#008B8B', 'ansi-16m')
|
|
11
|
+
: '';
|
|
12
|
+
const WHITE = USE_COLORS
|
|
13
|
+
? dark
|
|
14
|
+
? Bun.color('white', 'ansi-16m')
|
|
15
|
+
: Bun.color('black', 'ansi-16m')
|
|
16
|
+
: '';
|
|
17
|
+
const RESET = USE_COLORS ? '\x1b[0m' : '';
|
|
18
|
+
const width = 52; // Content width between pipes
|
|
19
|
+
const versionLabel = ' Version: '; // Include leading space
|
|
20
|
+
const versionPadding = width - versionLabel.length - 1; // Subtract 1 for the space before closing pipe
|
|
21
|
+
const lines = [
|
|
22
|
+
'╭────────────────────────────────────────────────────╮',
|
|
23
|
+
`│ ⨺ Agentuity ${WHITE}The full-stack platform for AI agents${CYAN} │`,
|
|
24
|
+
compact ? undefined : '│ │',
|
|
25
|
+
compact ? undefined : `│${versionLabel}${_version.padEnd(versionPadding)} │`,
|
|
26
|
+
compact ? undefined : '│ Docs: https://agentuity.dev │',
|
|
27
|
+
compact ? undefined : '│ Community: https://discord.gg/agentuity │',
|
|
28
|
+
compact ? undefined : '│ Dashboard: https://app.agentuity.com │',
|
|
29
|
+
'╰────────────────────────────────────────────────────╯',
|
|
30
|
+
].filter(Boolean);
|
|
31
|
+
console.log('');
|
|
32
|
+
lines.forEach((line) => console.log(CYAN + line + RESET));
|
|
33
|
+
console.log('');
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,OAAc;IAC1D,MAAM,QAAQ,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,UAAU;QACtB,CAAC,CAAC,IAAI;YACL,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;YAC/B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,KAAK,GAAG,UAAU;QACvB,CAAC,CAAC,IAAI;YACL,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,8BAA8B;IAChD,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,wBAAwB;IAClE,MAAM,cAAc,GAAG,KAAK,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,+CAA+C;IAEvG,MAAM,KAAK,GAAG;QACb,wDAAwD;QACxD,kBAAkB,KAAK,wCAAwC,IAAI,IAAI;QACvE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wDAAwD;QAC9E,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI;QAC5E,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wDAAwD;QAC9E,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wDAAwD;QAC9E,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wDAAwD;QAC9E,wDAAwD;KACxD,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { exitWithError, createError, getExitCode } from './errors';
|
|
2
|
+
/**
|
|
3
|
+
* Enhanced logger wrapper that supports structured errors
|
|
4
|
+
*/
|
|
5
|
+
export class CLILogger {
|
|
6
|
+
logger;
|
|
7
|
+
options;
|
|
8
|
+
constructor(logger, options) {
|
|
9
|
+
this.logger = logger;
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Exit with a structured error (supports --error-format=json)
|
|
14
|
+
*/
|
|
15
|
+
fatalWithError(error) {
|
|
16
|
+
const errorFormat = this.options.errorFormat ?? 'text';
|
|
17
|
+
return exitWithError(error, this.logger, errorFormat);
|
|
18
|
+
}
|
|
19
|
+
// Delegate all other logger methods
|
|
20
|
+
trace(message, ...args) {
|
|
21
|
+
this.logger.trace(message, ...args);
|
|
22
|
+
}
|
|
23
|
+
debug(message, ...args) {
|
|
24
|
+
this.logger.debug(message, ...args);
|
|
25
|
+
}
|
|
26
|
+
info(message, ...args) {
|
|
27
|
+
this.logger.info(message, ...args);
|
|
28
|
+
}
|
|
29
|
+
warn(message, ...args) {
|
|
30
|
+
this.logger.warn(message, ...args);
|
|
31
|
+
}
|
|
32
|
+
error(message, ...args) {
|
|
33
|
+
this.logger.error(message, ...args);
|
|
34
|
+
}
|
|
35
|
+
fatal(message, errorCode, ...args) {
|
|
36
|
+
if (errorCode) {
|
|
37
|
+
// Use structured error with proper exit code
|
|
38
|
+
const formattedMessage = args.length > 0 ? this.formatMessage(message, ...args) : message;
|
|
39
|
+
const error = createError(errorCode, formattedMessage);
|
|
40
|
+
const exitCode = getExitCode(errorCode);
|
|
41
|
+
if (this.options.errorFormat === 'json') {
|
|
42
|
+
exitWithError(error, this.logger, 'json');
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.logger.error(formattedMessage);
|
|
46
|
+
process.exit(exitCode);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Fallback to default behavior (exit code 1)
|
|
51
|
+
this.logger.fatal(message, ...args);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
formatMessage(message, ...args) {
|
|
55
|
+
// Simple sprintf-style formatting
|
|
56
|
+
let formatted = message;
|
|
57
|
+
for (const arg of args) {
|
|
58
|
+
formatted = formatted.replace(/%[sd]/, String(arg));
|
|
59
|
+
}
|
|
60
|
+
return formatted;
|
|
61
|
+
}
|
|
62
|
+
child(opts) {
|
|
63
|
+
return this.logger.child(opts);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Wrap a logger with CLI error handling capabilities
|
|
68
|
+
*/
|
|
69
|
+
export function wrapLogger(logger, options) {
|
|
70
|
+
return new CLILogger(logger, options);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=cli-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-logger.js","sourceRoot":"","sources":["../src/cli-logger.ts"],"names":[],"mappings":"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"}
|