@agentuity/cli 0.0.49 → 0.0.51
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 +17 -4
- package/README.md +26 -8
- package/dist/cli.d.ts.map +1 -1
- package/dist/cmd/{capabilities → ai/capabilities}/index.d.ts +1 -1
- package/dist/cmd/ai/capabilities/index.d.ts.map +1 -0
- package/dist/cmd/{capabilities → ai/capabilities}/show.d.ts +1 -1
- package/dist/cmd/ai/capabilities/show.d.ts.map +1 -0
- package/dist/cmd/ai/index.d.ts.map +1 -0
- package/dist/cmd/ai/prompt/index.d.ts +4 -0
- package/dist/cmd/ai/prompt/index.d.ts.map +1 -0
- package/dist/cmd/ai/prompt/llm.d.ts +3 -0
- package/dist/cmd/ai/prompt/llm.d.ts.map +1 -0
- package/dist/cmd/ai/schema/index.d.ts +4 -0
- package/dist/cmd/ai/schema/index.d.ts.map +1 -0
- package/dist/cmd/ai/schema/show.d.ts +3 -0
- package/dist/cmd/ai/schema/show.d.ts.map +1 -0
- package/dist/cmd/auth/ssh/list.d.ts.map +1 -1
- package/dist/cmd/{bundle → build}/ast.d.ts +3 -1
- package/dist/cmd/build/ast.d.ts.map +1 -0
- package/dist/cmd/{bundle → build}/ast.test.d.ts.map +1 -1
- package/dist/cmd/build/bundler.d.ts.map +1 -0
- package/dist/cmd/build/file.d.ts.map +1 -0
- package/dist/cmd/build/fix-duplicate-exports.d.ts.map +1 -0
- package/dist/cmd/build/fix-duplicate-exports.test.d.ts.map +1 -0
- package/dist/cmd/build/index.d.ts.map +1 -0
- package/dist/cmd/build/patch/_util.d.ts.map +1 -0
- package/dist/cmd/build/patch/aisdk.d.ts.map +1 -0
- package/dist/cmd/build/patch/index.d.ts.map +1 -0
- package/dist/cmd/build/patch/llm.d.ts.map +1 -0
- package/dist/cmd/build/plugin.d.ts.map +1 -0
- package/dist/cmd/cloud/agents/index.d.ts +3 -0
- package/dist/cmd/cloud/agents/index.d.ts.map +1 -0
- package/dist/cmd/cloud/deployment/list.d.ts.map +1 -1
- package/dist/cmd/cloud/env/delete.d.ts +2 -0
- package/dist/cmd/cloud/env/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/env/get.d.ts +2 -0
- package/dist/cmd/cloud/env/get.d.ts.map +1 -0
- package/dist/cmd/cloud/env/import.d.ts +2 -0
- package/dist/cmd/cloud/env/import.d.ts.map +1 -0
- package/dist/cmd/cloud/env/index.d.ts +3 -0
- package/dist/cmd/cloud/env/index.d.ts.map +1 -0
- package/dist/cmd/cloud/env/list.d.ts +2 -0
- package/dist/cmd/cloud/env/list.d.ts.map +1 -0
- package/dist/cmd/cloud/env/pull.d.ts +2 -0
- package/dist/cmd/cloud/env/pull.d.ts.map +1 -0
- package/dist/cmd/cloud/env/push.d.ts +2 -0
- package/dist/cmd/cloud/env/push.d.ts.map +1 -0
- package/dist/cmd/cloud/env/set.d.ts +2 -0
- package/dist/cmd/cloud/env/set.d.ts.map +1 -0
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/create-namespace.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/create-namespace.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/delete-namespace.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/delete-namespace.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/delete.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/get.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/index.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/index.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/keys.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/repl.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/search.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/set.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/set.d.ts.map +1 -0
- package/dist/cmd/cloud/keyvalue/stats.d.ts +3 -0
- package/dist/cmd/cloud/keyvalue/stats.d.ts.map +1 -0
- package/dist/cmd/{kv → cloud/keyvalue}/util.d.ts +1 -1
- package/dist/cmd/cloud/keyvalue/util.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/delete-bucket.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/delete-bucket.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/delete.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/get.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/get.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/index.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/index.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/list-buckets.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/list-keys.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/put.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/put.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/repl.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/repl.d.ts.map +1 -0
- package/dist/cmd/cloud/objectstore/url.d.ts +3 -0
- package/dist/cmd/cloud/objectstore/url.d.ts.map +1 -0
- package/dist/cmd/{objectstore → cloud/objectstore}/util.d.ts +1 -1
- package/dist/cmd/cloud/objectstore/util.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/delete.d.ts +2 -0
- package/dist/cmd/cloud/secret/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/get.d.ts +2 -0
- package/dist/cmd/cloud/secret/get.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/import.d.ts +2 -0
- package/dist/cmd/cloud/secret/import.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/index.d.ts +3 -0
- package/dist/cmd/cloud/secret/index.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/list.d.ts +2 -0
- package/dist/cmd/cloud/secret/list.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/pull.d.ts +2 -0
- package/dist/cmd/cloud/secret/pull.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/push.d.ts +2 -0
- package/dist/cmd/cloud/secret/push.d.ts.map +1 -0
- package/dist/cmd/cloud/secret/set.d.ts +2 -0
- package/dist/cmd/cloud/secret/set.d.ts.map +1 -0
- package/dist/cmd/cloud/session/get.d.ts +2 -0
- package/dist/cmd/cloud/session/get.d.ts.map +1 -0
- package/dist/cmd/cloud/session/index.d.ts +2 -0
- package/dist/cmd/cloud/session/index.d.ts.map +1 -0
- package/dist/cmd/cloud/session/list.d.ts +2 -0
- package/dist/cmd/cloud/session/list.d.ts.map +1 -0
- package/dist/cmd/cloud/session/logs.d.ts +2 -0
- package/dist/cmd/cloud/session/logs.d.ts.map +1 -0
- package/dist/cmd/dev/agents.d.ts +2 -0
- package/dist/cmd/dev/agents.d.ts.map +1 -0
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/sync.d.ts +12 -0
- package/dist/cmd/dev/sync.d.ts.map +1 -0
- package/dist/cmd/profile/index.d.ts.map +1 -1
- package/dist/repl.d.ts +2 -6
- package/dist/repl.d.ts.map +1 -1
- package/dist/tui.d.ts +24 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/format.d.ts +9 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/package.json +6 -3
- package/src/cli.ts +13 -6
- package/src/cmd/{capabilities → ai/capabilities}/index.ts +2 -2
- package/src/cmd/{capabilities → ai/capabilities}/show.ts +6 -6
- package/src/cmd/ai/index.ts +11 -0
- package/src/cmd/{prompt → ai/prompt}/index.ts +2 -2
- package/src/cmd/{prompt → ai/prompt}/llm.ts +6 -6
- package/src/cmd/{schema → ai/schema}/index.ts +2 -2
- package/src/cmd/{schema → ai/schema}/show.ts +3 -3
- package/src/cmd/auth/ssh/list.ts +10 -16
- package/src/cmd/{bundle → build}/ast.test.ts +2 -2
- package/src/cmd/{bundle → build}/ast.ts +85 -17
- package/src/cmd/build/index.ts +89 -0
- package/src/cmd/{bundle → build}/plugin.ts +24 -2
- package/src/cmd/cloud/agents/index.ts +148 -0
- package/src/cmd/cloud/deploy.ts +1 -1
- package/src/cmd/cloud/deployment/list.ts +16 -22
- package/src/cmd/{env → cloud/env}/delete.ts +4 -4
- package/src/cmd/{env → cloud/env}/get.ts +5 -5
- package/src/cmd/{env → cloud/env}/import.ts +4 -4
- package/src/cmd/{env → cloud/env}/index.ts +2 -1
- package/src/cmd/{env → cloud/env}/list.ts +4 -4
- package/src/cmd/{env → cloud/env}/pull.ts +4 -4
- package/src/cmd/{env → cloud/env}/push.ts +4 -4
- package/src/cmd/{env → cloud/env}/set.ts +4 -4
- package/src/cmd/cloud/index.ts +12 -0
- package/src/cmd/{kv → cloud/keyvalue}/create-namespace.ts +3 -3
- package/src/cmd/{kv → cloud/keyvalue}/delete-namespace.ts +4 -4
- package/src/cmd/{kv → cloud/keyvalue}/delete.ts +3 -3
- package/src/cmd/{kv → cloud/keyvalue}/get.ts +4 -4
- package/src/cmd/{kv → cloud/keyvalue}/index.ts +2 -1
- package/src/cmd/{kv → cloud/keyvalue}/keys.ts +3 -3
- package/src/cmd/{kv → cloud/keyvalue}/list-namespaces.ts +3 -3
- package/src/cmd/{kv → cloud/keyvalue}/repl.ts +6 -6
- package/src/cmd/{kv → cloud/keyvalue}/search.ts +3 -3
- package/src/cmd/{kv → cloud/keyvalue}/set.ts +4 -4
- package/src/cmd/{kv → cloud/keyvalue}/stats.ts +3 -3
- package/src/cmd/{kv → cloud/keyvalue}/util.ts +4 -4
- package/src/cmd/{objectstore → cloud/objectstore}/delete-bucket.ts +3 -3
- package/src/cmd/{objectstore → cloud/objectstore}/delete.ts +3 -3
- package/src/cmd/{objectstore → cloud/objectstore}/get.ts +4 -4
- package/src/cmd/{objectstore → cloud/objectstore}/index.ts +2 -1
- package/src/cmd/{objectstore → cloud/objectstore}/list-buckets.ts +3 -3
- package/src/cmd/{objectstore → cloud/objectstore}/list-keys.ts +3 -3
- package/src/cmd/{objectstore → cloud/objectstore}/put.ts +4 -4
- package/src/cmd/{objectstore → cloud/objectstore}/repl.ts +6 -6
- package/src/cmd/{objectstore → cloud/objectstore}/url.ts +3 -3
- package/src/cmd/{objectstore → cloud/objectstore}/util.ts +3 -3
- package/src/cmd/{secret → cloud/secret}/delete.ts +4 -4
- package/src/cmd/{secret → cloud/secret}/get.ts +5 -5
- package/src/cmd/{secret → cloud/secret}/import.ts +4 -4
- package/src/cmd/{secret → cloud/secret}/index.ts +2 -1
- package/src/cmd/{secret → cloud/secret}/list.ts +4 -4
- package/src/cmd/{secret → cloud/secret}/pull.ts +4 -4
- package/src/cmd/{secret → cloud/secret}/push.ts +4 -4
- package/src/cmd/{secret → cloud/secret}/set.ts +4 -4
- package/src/cmd/cloud/session/get.ts +164 -0
- package/src/cmd/cloud/session/index.ts +11 -0
- package/src/cmd/cloud/session/list.ts +145 -0
- package/src/cmd/cloud/session/logs.ts +68 -0
- package/src/cmd/dev/agents.ts +122 -0
- package/src/cmd/dev/index.ts +103 -9
- package/src/cmd/dev/sync.ts +414 -0
- package/src/cmd/profile/index.ts +1 -0
- package/src/cmd/project/create.ts +1 -1
- package/src/cmd/project/index.ts +1 -1
- package/src/cmd/project/list.ts +1 -1
- package/src/cmd/project/show.ts +1 -1
- package/src/repl.ts +2 -12
- package/src/tui.ts +94 -0
- package/src/types.ts +13 -10
- package/src/utils/format.ts +17 -0
- package/dist/cmd/bundle/ast.d.ts.map +0 -1
- package/dist/cmd/bundle/bundler.d.ts.map +0 -1
- package/dist/cmd/bundle/file.d.ts.map +0 -1
- package/dist/cmd/bundle/fix-duplicate-exports.d.ts.map +0 -1
- package/dist/cmd/bundle/fix-duplicate-exports.test.d.ts.map +0 -1
- package/dist/cmd/bundle/index.d.ts.map +0 -1
- package/dist/cmd/bundle/patch/_util.d.ts.map +0 -1
- package/dist/cmd/bundle/patch/aisdk.d.ts.map +0 -1
- package/dist/cmd/bundle/patch/index.d.ts.map +0 -1
- package/dist/cmd/bundle/patch/llm.d.ts.map +0 -1
- package/dist/cmd/bundle/plugin.d.ts.map +0 -1
- package/dist/cmd/capabilities/index.d.ts.map +0 -1
- package/dist/cmd/capabilities/show.d.ts.map +0 -1
- package/dist/cmd/env/delete.d.ts +0 -2
- package/dist/cmd/env/delete.d.ts.map +0 -1
- package/dist/cmd/env/get.d.ts +0 -2
- package/dist/cmd/env/get.d.ts.map +0 -1
- package/dist/cmd/env/import.d.ts +0 -2
- package/dist/cmd/env/import.d.ts.map +0 -1
- package/dist/cmd/env/index.d.ts.map +0 -1
- package/dist/cmd/env/list.d.ts +0 -2
- package/dist/cmd/env/list.d.ts.map +0 -1
- package/dist/cmd/env/pull.d.ts +0 -2
- package/dist/cmd/env/pull.d.ts.map +0 -1
- package/dist/cmd/env/push.d.ts +0 -2
- package/dist/cmd/env/push.d.ts.map +0 -1
- package/dist/cmd/env/set.d.ts +0 -2
- package/dist/cmd/env/set.d.ts.map +0 -1
- package/dist/cmd/kv/create-namespace.d.ts +0 -3
- package/dist/cmd/kv/create-namespace.d.ts.map +0 -1
- package/dist/cmd/kv/delete-namespace.d.ts +0 -3
- package/dist/cmd/kv/delete-namespace.d.ts.map +0 -1
- package/dist/cmd/kv/delete.d.ts +0 -3
- package/dist/cmd/kv/delete.d.ts.map +0 -1
- package/dist/cmd/kv/get.d.ts +0 -3
- package/dist/cmd/kv/get.d.ts.map +0 -1
- package/dist/cmd/kv/index.d.ts +0 -2
- package/dist/cmd/kv/index.d.ts.map +0 -1
- package/dist/cmd/kv/keys.d.ts +0 -3
- package/dist/cmd/kv/keys.d.ts.map +0 -1
- package/dist/cmd/kv/list-namespaces.d.ts +0 -3
- package/dist/cmd/kv/list-namespaces.d.ts.map +0 -1
- package/dist/cmd/kv/repl.d.ts +0 -3
- package/dist/cmd/kv/repl.d.ts.map +0 -1
- package/dist/cmd/kv/search.d.ts +0 -3
- package/dist/cmd/kv/search.d.ts.map +0 -1
- package/dist/cmd/kv/set.d.ts +0 -3
- package/dist/cmd/kv/set.d.ts.map +0 -1
- package/dist/cmd/kv/stats.d.ts +0 -3
- package/dist/cmd/kv/stats.d.ts.map +0 -1
- package/dist/cmd/kv/util.d.ts.map +0 -1
- package/dist/cmd/objectstore/delete-bucket.d.ts +0 -3
- package/dist/cmd/objectstore/delete-bucket.d.ts.map +0 -1
- package/dist/cmd/objectstore/delete.d.ts +0 -3
- package/dist/cmd/objectstore/delete.d.ts.map +0 -1
- package/dist/cmd/objectstore/get.d.ts +0 -3
- package/dist/cmd/objectstore/get.d.ts.map +0 -1
- package/dist/cmd/objectstore/index.d.ts +0 -2
- package/dist/cmd/objectstore/index.d.ts.map +0 -1
- package/dist/cmd/objectstore/list-buckets.d.ts +0 -3
- package/dist/cmd/objectstore/list-buckets.d.ts.map +0 -1
- package/dist/cmd/objectstore/list-keys.d.ts +0 -3
- package/dist/cmd/objectstore/list-keys.d.ts.map +0 -1
- package/dist/cmd/objectstore/put.d.ts +0 -3
- package/dist/cmd/objectstore/put.d.ts.map +0 -1
- package/dist/cmd/objectstore/repl.d.ts +0 -3
- package/dist/cmd/objectstore/repl.d.ts.map +0 -1
- package/dist/cmd/objectstore/url.d.ts +0 -3
- package/dist/cmd/objectstore/url.d.ts.map +0 -1
- package/dist/cmd/objectstore/util.d.ts.map +0 -1
- package/dist/cmd/prompt/index.d.ts +0 -4
- package/dist/cmd/prompt/index.d.ts.map +0 -1
- package/dist/cmd/prompt/llm.d.ts +0 -3
- package/dist/cmd/prompt/llm.d.ts.map +0 -1
- package/dist/cmd/schema/index.d.ts +0 -4
- package/dist/cmd/schema/index.d.ts.map +0 -1
- package/dist/cmd/schema/show.d.ts +0 -3
- package/dist/cmd/schema/show.d.ts.map +0 -1
- package/dist/cmd/secret/delete.d.ts +0 -2
- package/dist/cmd/secret/delete.d.ts.map +0 -1
- package/dist/cmd/secret/get.d.ts +0 -2
- package/dist/cmd/secret/get.d.ts.map +0 -1
- package/dist/cmd/secret/import.d.ts +0 -2
- package/dist/cmd/secret/import.d.ts.map +0 -1
- package/dist/cmd/secret/index.d.ts +0 -2
- package/dist/cmd/secret/index.d.ts.map +0 -1
- package/dist/cmd/secret/list.d.ts +0 -2
- package/dist/cmd/secret/list.d.ts.map +0 -1
- package/dist/cmd/secret/pull.d.ts +0 -2
- package/dist/cmd/secret/pull.d.ts.map +0 -1
- package/dist/cmd/secret/push.d.ts +0 -2
- package/dist/cmd/secret/push.d.ts.map +0 -1
- package/dist/cmd/secret/set.d.ts +0 -2
- package/dist/cmd/secret/set.d.ts.map +0 -1
- package/src/cmd/bundle/index.ts +0 -58
- /package/dist/cmd/{bundle → ai}/index.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/ast.test.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/bundler.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/file.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/fix-duplicate-exports.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/fix-duplicate-exports.test.d.ts +0 -0
- /package/dist/cmd/{env → build}/index.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/patch/_util.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/patch/aisdk.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/patch/index.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/patch/llm.d.ts +0 -0
- /package/dist/cmd/{bundle → build}/plugin.d.ts +0 -0
- /package/src/cmd/{bundle → build}/bundler.ts +0 -0
- /package/src/cmd/{bundle → build}/file.ts +0 -0
- /package/src/cmd/{bundle → build}/fix-duplicate-exports.test.ts +0 -0
- /package/src/cmd/{bundle → build}/fix-duplicate-exports.ts +0 -0
- /package/src/cmd/{bundle → build}/patch/_util.ts +0 -0
- /package/src/cmd/{bundle → build}/patch/aisdk.ts +0 -0
- /package/src/cmd/{bundle → build}/patch/index.ts +0 -0
- /package/src/cmd/{bundle → build}/patch/llm.ts +0 -0
|
@@ -116,6 +116,10 @@ function hashSHA1(...val: string[]): string {
|
|
|
116
116
|
return hasher.digest().toHex();
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
export function getDevmodeDeploymentId(projectId: string, endpointId: string): string {
|
|
120
|
+
return `devmode_${hashSHA1(projectId, endpointId)}`;
|
|
121
|
+
}
|
|
122
|
+
|
|
119
123
|
function getAgentId(
|
|
120
124
|
projectId: string,
|
|
121
125
|
deploymentId: string,
|
|
@@ -151,6 +155,10 @@ function generateStableAgentId(projectId: string, name: string): string {
|
|
|
151
155
|
return `agentid_${hashSHA1(projectId, name)}`.substring(0, 64);
|
|
152
156
|
}
|
|
153
157
|
|
|
158
|
+
function generateStableEvalId(projectId: string, agentId: string, name: string): string {
|
|
159
|
+
return `evalid_${hashSHA1(projectId, agentId, name)}`.substring(0, 64);
|
|
160
|
+
}
|
|
161
|
+
|
|
154
162
|
type AcornParseResultType = ReturnType<typeof acornLoose.parse>;
|
|
155
163
|
|
|
156
164
|
function augmentAgentMetadataNode(
|
|
@@ -242,14 +250,29 @@ function setLiteralValue(literal: ASTLiteral, value: string) {
|
|
|
242
250
|
}
|
|
243
251
|
|
|
244
252
|
function augmentEvalMetadataNode(
|
|
253
|
+
projectId: string,
|
|
254
|
+
agentId: string,
|
|
245
255
|
id: string,
|
|
246
256
|
name: string,
|
|
247
257
|
rel: string,
|
|
248
258
|
version: string,
|
|
249
|
-
|
|
250
|
-
metadataObj: ASTObjectExpression
|
|
259
|
+
_ast: AcornParseResultType,
|
|
260
|
+
metadataObj: ASTObjectExpression,
|
|
261
|
+
_filename: string
|
|
251
262
|
): void {
|
|
252
|
-
|
|
263
|
+
const metadata = parseObjectExpressionToMap(metadataObj);
|
|
264
|
+
// Name can come from metadata.name or variable name (already resolved in caller)
|
|
265
|
+
// If metadata doesn't have name, we'll add it from the resolved name
|
|
266
|
+
if (!metadata.has('name')) {
|
|
267
|
+
metadataObj.properties.push(createObjectPropertyNode('name', name));
|
|
268
|
+
}
|
|
269
|
+
const descriptionNode = metadataObj.properties.find((x) => x.key.name === 'description')?.value;
|
|
270
|
+
const description = descriptionNode ? (descriptionNode as ASTLiteral).value : '';
|
|
271
|
+
const effectiveAgentId = agentId || '';
|
|
272
|
+
const _evalId = getEvalId(projectId, effectiveAgentId, rel, name, version); // Deployment-specific ID (not used, kept for potential future use)
|
|
273
|
+
const stableEvalId = generateStableEvalId(projectId, effectiveAgentId, name);
|
|
274
|
+
|
|
275
|
+
// Check if id, version, identifier, filename, evalId already exist
|
|
253
276
|
const existingKeys = new Set<string>();
|
|
254
277
|
for (const prop of metadataObj.properties) {
|
|
255
278
|
if (prop.key.type === 'Identifier') {
|
|
@@ -286,12 +309,12 @@ function augmentEvalMetadataNode(
|
|
|
286
309
|
}
|
|
287
310
|
|
|
288
311
|
if (!existingKeys.has('identifier')) {
|
|
289
|
-
metadataObj.properties.push(createObjectPropertyNode('identifier',
|
|
312
|
+
metadataObj.properties.push(createObjectPropertyNode('identifier', name));
|
|
290
313
|
} else {
|
|
291
314
|
for (const prop of metadataObj.properties) {
|
|
292
315
|
if (prop.key.type === 'Identifier' && prop.key.name === 'identifier') {
|
|
293
316
|
if (prop.value.type === 'Literal') {
|
|
294
|
-
setLiteralValue(prop.value as ASTLiteral,
|
|
317
|
+
setLiteralValue(prop.value as ASTLiteral, name);
|
|
295
318
|
}
|
|
296
319
|
break;
|
|
297
320
|
}
|
|
@@ -310,6 +333,32 @@ function augmentEvalMetadataNode(
|
|
|
310
333
|
}
|
|
311
334
|
}
|
|
312
335
|
}
|
|
336
|
+
|
|
337
|
+
if (!existingKeys.has('evalId')) {
|
|
338
|
+
metadataObj.properties.push(createObjectPropertyNode('evalId', stableEvalId));
|
|
339
|
+
} else {
|
|
340
|
+
for (const prop of metadataObj.properties) {
|
|
341
|
+
if (prop.key.type === 'Identifier' && prop.key.name === 'evalId') {
|
|
342
|
+
if (prop.value.type === 'Literal') {
|
|
343
|
+
setLiteralValue(prop.value as ASTLiteral, stableEvalId);
|
|
344
|
+
}
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (!existingKeys.has('description')) {
|
|
351
|
+
metadataObj.properties.push(createObjectPropertyNode('description', description));
|
|
352
|
+
} else {
|
|
353
|
+
for (const prop of metadataObj.properties) {
|
|
354
|
+
if (prop.key.type === 'Identifier' && prop.key.name === 'description') {
|
|
355
|
+
if (prop.value.type === 'Literal') {
|
|
356
|
+
setLiteralValue(prop.value as ASTLiteral, description);
|
|
357
|
+
}
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
313
362
|
}
|
|
314
363
|
|
|
315
364
|
export function parseEvalMetadata(
|
|
@@ -317,7 +366,8 @@ export function parseEvalMetadata(
|
|
|
317
366
|
filename: string,
|
|
318
367
|
contents: string,
|
|
319
368
|
projectId: string,
|
|
320
|
-
deploymentId: string
|
|
369
|
+
deploymentId: string,
|
|
370
|
+
agentId?: string
|
|
321
371
|
): [
|
|
322
372
|
string,
|
|
323
373
|
Array<{
|
|
@@ -326,6 +376,7 @@ export function parseEvalMetadata(
|
|
|
326
376
|
version: string;
|
|
327
377
|
identifier: string;
|
|
328
378
|
name: string;
|
|
379
|
+
evalId: string;
|
|
329
380
|
description?: string;
|
|
330
381
|
}>,
|
|
331
382
|
] {
|
|
@@ -339,8 +390,6 @@ export function parseEvalMetadata(
|
|
|
339
390
|
logger.trace(`Parsing evals from ${filename}`);
|
|
340
391
|
const ast = acornLoose.parse(contents, { ecmaVersion: 'latest', sourceType: 'module' });
|
|
341
392
|
const rel = relative(rootDir, filename);
|
|
342
|
-
const dir = dirname(filename);
|
|
343
|
-
const identifier = basename(dir);
|
|
344
393
|
const version = hash(contents);
|
|
345
394
|
const evals: Array<{
|
|
346
395
|
filename: string;
|
|
@@ -348,17 +397,16 @@ export function parseEvalMetadata(
|
|
|
348
397
|
version: string;
|
|
349
398
|
identifier: string;
|
|
350
399
|
name: string;
|
|
400
|
+
evalId: string;
|
|
351
401
|
description?: string;
|
|
352
402
|
}> = [];
|
|
353
403
|
|
|
354
|
-
// Find all agent.createEval() calls
|
|
404
|
+
// Find all exported agent.createEval() calls
|
|
355
405
|
for (const body of ast.body) {
|
|
356
406
|
let variableDeclaration: { declarations: Array<ASTVariableDeclarator> } | undefined;
|
|
357
407
|
|
|
358
|
-
//
|
|
359
|
-
if (body.type === '
|
|
360
|
-
variableDeclaration = body as { declarations: Array<ASTVariableDeclarator> };
|
|
361
|
-
} else if (body.type === 'ExportNamedDeclaration') {
|
|
408
|
+
// Only process exported VariableDeclarations
|
|
409
|
+
if (body.type === 'ExportNamedDeclaration') {
|
|
362
410
|
const exportDecl = body as {
|
|
363
411
|
declaration?: { type: string; declarations?: Array<ASTVariableDeclarator> };
|
|
364
412
|
};
|
|
@@ -447,14 +495,31 @@ export function parseEvalMetadata(
|
|
|
447
495
|
);
|
|
448
496
|
|
|
449
497
|
// Inject metadata into AST if metadata object exists
|
|
498
|
+
let stableEvalId: string;
|
|
499
|
+
const effectiveAgentId = agentId || '';
|
|
450
500
|
if (metadataObj) {
|
|
451
501
|
augmentEvalMetadataNode(
|
|
502
|
+
projectId,
|
|
503
|
+
effectiveAgentId,
|
|
452
504
|
evalId,
|
|
453
505
|
finalName,
|
|
454
506
|
rel,
|
|
455
507
|
version,
|
|
456
|
-
|
|
457
|
-
metadataObj
|
|
508
|
+
ast,
|
|
509
|
+
metadataObj,
|
|
510
|
+
filename
|
|
511
|
+
);
|
|
512
|
+
// Extract evalId from metadata after augmentation
|
|
513
|
+
const metadata = parseObjectExpressionToMap(metadataObj);
|
|
514
|
+
stableEvalId =
|
|
515
|
+
metadata.get('evalId') ||
|
|
516
|
+
generateStableEvalId(projectId, effectiveAgentId, finalName);
|
|
517
|
+
} else {
|
|
518
|
+
// If no metadata object, generate stable evalId
|
|
519
|
+
stableEvalId = generateStableEvalId(
|
|
520
|
+
projectId,
|
|
521
|
+
effectiveAgentId,
|
|
522
|
+
finalName
|
|
458
523
|
);
|
|
459
524
|
}
|
|
460
525
|
|
|
@@ -462,8 +527,9 @@ export function parseEvalMetadata(
|
|
|
462
527
|
filename: rel,
|
|
463
528
|
id: evalId,
|
|
464
529
|
version,
|
|
465
|
-
identifier,
|
|
530
|
+
identifier: finalName,
|
|
466
531
|
name: finalName,
|
|
532
|
+
evalId: stableEvalId,
|
|
467
533
|
description: evalDescription,
|
|
468
534
|
});
|
|
469
535
|
}
|
|
@@ -639,12 +705,14 @@ export async function parseAgentMetadata(
|
|
|
639
705
|
const evalsSource = await evalsFile.text();
|
|
640
706
|
const transpiler = new Bun.Transpiler({ loader: 'ts', target: 'bun' });
|
|
641
707
|
const evalsContents = transpiler.transformSync(evalsSource);
|
|
708
|
+
const agentId = result[1].get('agentId') || '';
|
|
642
709
|
const [, evals] = parseEvalMetadata(
|
|
643
710
|
rootDir,
|
|
644
711
|
evalsPath,
|
|
645
712
|
evalsContents,
|
|
646
713
|
projectId,
|
|
647
|
-
deploymentId
|
|
714
|
+
deploymentId,
|
|
715
|
+
agentId
|
|
648
716
|
);
|
|
649
717
|
if (evals.length > 0) {
|
|
650
718
|
logger.trace(`Adding ${evals.length} eval(s) to agent metadata for ${name}`);
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { createCommand } from '../../types';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { bundle } from './bundler';
|
|
4
|
+
import * as tui from '../../tui';
|
|
5
|
+
import { getCommand } from '../../command-prefix';
|
|
6
|
+
|
|
7
|
+
const BuildResponseSchema = z.object({
|
|
8
|
+
success: z.boolean().describe('Whether the build succeeded'),
|
|
9
|
+
bundlePath: z.string().describe('Path to the build directory'),
|
|
10
|
+
projectName: z.string().describe('Project name'),
|
|
11
|
+
dev: z.boolean().describe('Whether dev mode was enabled'),
|
|
12
|
+
size: z.number().optional().describe('Build size in bytes'),
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export const command = createCommand({
|
|
16
|
+
name: 'build',
|
|
17
|
+
description: 'Build Agentuity application for deployment',
|
|
18
|
+
tags: ['read-only', 'slow', 'requires-project'],
|
|
19
|
+
aliases: ['bundle'],
|
|
20
|
+
optional: { project: true },
|
|
21
|
+
idempotent: false,
|
|
22
|
+
examples: [getCommand('build'), getCommand('build --dev'), getCommand('bundle')],
|
|
23
|
+
schema: {
|
|
24
|
+
options: z.object({
|
|
25
|
+
dev: z.boolean().optional().describe('Enable development mode'),
|
|
26
|
+
}),
|
|
27
|
+
response: BuildResponseSchema,
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
async handler(ctx) {
|
|
31
|
+
const { opts, projectDir, project } = ctx;
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
tui.info(`Bundling project at: ${projectDir}`);
|
|
35
|
+
|
|
36
|
+
// Run TypeScript type checking before bundling (skip in dev mode)
|
|
37
|
+
if (!opts.dev) {
|
|
38
|
+
try {
|
|
39
|
+
tui.info('Running type check...');
|
|
40
|
+
const { resolve } = await import('node:path');
|
|
41
|
+
const absoluteProjectDir = resolve(projectDir);
|
|
42
|
+
const result = await Bun.$`bunx tsc --noEmit --skipLibCheck`.cwd(absoluteProjectDir).nothrow();
|
|
43
|
+
if (result.exitCode !== 0) {
|
|
44
|
+
const errorOutput = result.stderr.toString();
|
|
45
|
+
// Filter out errors from node_modules - only show user code errors
|
|
46
|
+
const lines = errorOutput.split('\n');
|
|
47
|
+
const userErrorLines = lines.filter((line) => !line.includes('node_modules/'));
|
|
48
|
+
|
|
49
|
+
if (userErrorLines.length > 0 && userErrorLines.some(line => line.trim())) {
|
|
50
|
+
tui.error('Type check failed:\n');
|
|
51
|
+
console.error(userErrorLines.join('\n'));
|
|
52
|
+
tui.fatal('Fix type errors before building');
|
|
53
|
+
}
|
|
54
|
+
// If only node_modules errors, pass with info
|
|
55
|
+
tui.info('Type check passed (ignoring dependency type errors)');
|
|
56
|
+
} else {
|
|
57
|
+
tui.success('Type check passed');
|
|
58
|
+
}
|
|
59
|
+
} catch (error) {
|
|
60
|
+
// If tsc fails to run, show error and fail
|
|
61
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
62
|
+
tui.error(`Type check failed to run: ${errorMsg}`);
|
|
63
|
+
tui.fatal('Unable to run TypeScript type checking. Ensure TypeScript is installed.');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
await bundle({
|
|
68
|
+
rootDir: projectDir,
|
|
69
|
+
dev: opts.dev || false,
|
|
70
|
+
project,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
tui.success('Bundle complete');
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
success: true,
|
|
77
|
+
bundlePath: `${projectDir}/.agentuity`,
|
|
78
|
+
projectName: project?.projectId || 'unknown',
|
|
79
|
+
dev: opts.dev || false,
|
|
80
|
+
};
|
|
81
|
+
} catch (error) {
|
|
82
|
+
if (error instanceof Error) {
|
|
83
|
+
tui.fatal(`Bundle failed: ${error.message}`);
|
|
84
|
+
} else {
|
|
85
|
+
tui.fatal('Bundle failed');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
});
|
|
@@ -578,6 +578,7 @@ const AgentuityBundler: BunPlugin = {
|
|
|
578
578
|
version: v.get('version')!,
|
|
579
579
|
name: v.get('name')!,
|
|
580
580
|
description: v.get('description') ?? '<no description provided>',
|
|
581
|
+
projectId,
|
|
581
582
|
};
|
|
582
583
|
|
|
583
584
|
const evalsStr = v.get('evals');
|
|
@@ -586,7 +587,17 @@ const AgentuityBundler: BunPlugin = {
|
|
|
586
587
|
`[plugin] Found evals string for agent ${agentData.name}, parsing...`
|
|
587
588
|
);
|
|
588
589
|
try {
|
|
589
|
-
|
|
590
|
+
const parsedEvals = JSON.parse(evalsStr) as Array<
|
|
591
|
+
Omit<
|
|
592
|
+
NonNullable<BuildMetadata['agents'][number]['evals']>[number],
|
|
593
|
+
'agentIdentifier' | 'projectId'
|
|
594
|
+
>
|
|
595
|
+
>;
|
|
596
|
+
agentData.evals = parsedEvals.map((evalItem) => ({
|
|
597
|
+
...evalItem,
|
|
598
|
+
agentIdentifier: agentData.agentId,
|
|
599
|
+
projectId,
|
|
600
|
+
}));
|
|
590
601
|
logger.trace(
|
|
591
602
|
`[plugin] Successfully parsed ${agentData.evals?.length ?? 0} eval(s) for agent ${agentData.name}`
|
|
592
603
|
);
|
|
@@ -614,6 +625,7 @@ const AgentuityBundler: BunPlugin = {
|
|
|
614
625
|
version: sub.get('version')!,
|
|
615
626
|
name: sub.get('name')!,
|
|
616
627
|
description: sub.get('description') ?? '<no description provided>',
|
|
628
|
+
projectId,
|
|
617
629
|
};
|
|
618
630
|
|
|
619
631
|
// Add evals for subagents if any
|
|
@@ -623,7 +635,17 @@ const AgentuityBundler: BunPlugin = {
|
|
|
623
635
|
`[plugin] Found evals string for subagent ${subagentData.name}, parsing...`
|
|
624
636
|
);
|
|
625
637
|
try {
|
|
626
|
-
|
|
638
|
+
const parsedSubEvals = JSON.parse(subEvalsStr) as Array<
|
|
639
|
+
Omit<
|
|
640
|
+
NonNullable<BuildMetadata['agents'][number]['evals']>[number],
|
|
641
|
+
'agentIdentifier' | 'projectId'
|
|
642
|
+
>
|
|
643
|
+
>;
|
|
644
|
+
subagentData.evals = parsedSubEvals.map((evalItem) => ({
|
|
645
|
+
...evalItem,
|
|
646
|
+
agentIdentifier: subagentData.agentId,
|
|
647
|
+
projectId,
|
|
648
|
+
}));
|
|
627
649
|
logger.trace(
|
|
628
650
|
`[plugin] Successfully parsed ${subagentData.evals?.length ?? 0} eval(s) for subagent ${subagentData.name}`
|
|
629
651
|
);
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createCommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
|
+
import { APIResponseSchema } from '@agentuity/server';
|
|
5
|
+
import { Table } from 'console-table-printer';
|
|
6
|
+
import { abbreviate, abbreviateDescription } from '../../../utils/format';
|
|
7
|
+
|
|
8
|
+
const AgentSchema = z.object({
|
|
9
|
+
id: z.string(),
|
|
10
|
+
name: z.string(),
|
|
11
|
+
description: z.string().nullable(),
|
|
12
|
+
identifier: z.string(),
|
|
13
|
+
version: z.string().nullable(),
|
|
14
|
+
deploymentId: z.string().nullable(),
|
|
15
|
+
devmode: z.boolean(),
|
|
16
|
+
metadata: z.record(z.string(), z.unknown()).nullable(),
|
|
17
|
+
createdAt: z.string(),
|
|
18
|
+
updatedAt: z.string(),
|
|
19
|
+
evals: z.array(
|
|
20
|
+
z.object({
|
|
21
|
+
id: z.string(),
|
|
22
|
+
name: z.string(),
|
|
23
|
+
description: z.string().nullable(),
|
|
24
|
+
identifier: z.string().nullable(),
|
|
25
|
+
deploymentId: z.string().nullable(),
|
|
26
|
+
version: z.string().nullable(),
|
|
27
|
+
devmode: z.boolean(),
|
|
28
|
+
createdAt: z.string(),
|
|
29
|
+
updatedAt: z.string(),
|
|
30
|
+
})
|
|
31
|
+
),
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const AgentsResponseSchema = APIResponseSchema(z.array(AgentSchema));
|
|
35
|
+
|
|
36
|
+
export const command = createCommand({
|
|
37
|
+
name: 'agents',
|
|
38
|
+
description: 'Show devmode agent results',
|
|
39
|
+
requires: { auth: true, apiClient: true, project: true },
|
|
40
|
+
schema: {
|
|
41
|
+
options: z.object({
|
|
42
|
+
deploymentId: z.string().optional().describe('Filter by deployment ID'),
|
|
43
|
+
format: z
|
|
44
|
+
.enum(['json', 'table'])
|
|
45
|
+
.optional()
|
|
46
|
+
.default('table')
|
|
47
|
+
.describe('Output format: json or table'),
|
|
48
|
+
verbose: z.boolean().optional().default(false).describe('Show full IDs and descriptions'),
|
|
49
|
+
}),
|
|
50
|
+
},
|
|
51
|
+
async handler(ctx) {
|
|
52
|
+
const { opts, apiClient, project } = ctx;
|
|
53
|
+
const projectId = project.projectId;
|
|
54
|
+
const format = opts?.format ?? 'table';
|
|
55
|
+
const verbose = opts?.verbose ?? false;
|
|
56
|
+
|
|
57
|
+
const deploymentId = opts?.deploymentId;
|
|
58
|
+
const queryParams = deploymentId ? `?deploymentId=${deploymentId}` : '';
|
|
59
|
+
const response = await tui.spinner('Fetching agents', async () => {
|
|
60
|
+
return apiClient.request(
|
|
61
|
+
'GET',
|
|
62
|
+
`/cli/agent/${projectId}${queryParams}`,
|
|
63
|
+
AgentsResponseSchema
|
|
64
|
+
);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
if (!response.success) {
|
|
68
|
+
tui.fatal(`Failed to fetch agents: ${response.message ?? 'Unknown error'}`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const agents = response.data;
|
|
72
|
+
|
|
73
|
+
if (format === 'json') {
|
|
74
|
+
console.log(JSON.stringify(agents, null, 2));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
tui.info(`Agents (${agents.length})`);
|
|
79
|
+
if (agents.length === 0) {
|
|
80
|
+
tui.muted('No agents found');
|
|
81
|
+
} else {
|
|
82
|
+
const table = new Table({
|
|
83
|
+
columns: [
|
|
84
|
+
{ name: 'Name', alignment: 'left' },
|
|
85
|
+
{ name: 'ID', alignment: 'left' },
|
|
86
|
+
{ name: 'Identifier', alignment: 'left' },
|
|
87
|
+
{ name: 'Deployment', alignment: 'left' },
|
|
88
|
+
{ name: 'Version', alignment: 'left' },
|
|
89
|
+
{ name: 'Evals', alignment: 'center' },
|
|
90
|
+
{ name: 'Created', alignment: 'left' },
|
|
91
|
+
],
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
for (const agent of agents) {
|
|
95
|
+
table.addRow({
|
|
96
|
+
Name: agent.name,
|
|
97
|
+
ID: verbose ? agent.id : abbreviate(agent.id, 20),
|
|
98
|
+
Identifier: verbose ? agent.identifier : abbreviate(agent.identifier, 20),
|
|
99
|
+
Deployment: abbreviate(agent.deploymentId, 20),
|
|
100
|
+
Version: verbose
|
|
101
|
+
? (agent.version ?? 'N/A')
|
|
102
|
+
: (abbreviate(agent.version, 20) ?? 'N/A'),
|
|
103
|
+
Evals: agent.evals.length,
|
|
104
|
+
Created: new Date(agent.createdAt).toLocaleString(),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
table.printTable();
|
|
108
|
+
|
|
109
|
+
// Show evals for each agent
|
|
110
|
+
for (const agent of agents) {
|
|
111
|
+
if (agent.evals.length > 0) {
|
|
112
|
+
console.log(`\n Evals for ${agent.name}:`);
|
|
113
|
+
const evalTable = new Table({
|
|
114
|
+
columns: [
|
|
115
|
+
{ name: 'Name', alignment: 'left' },
|
|
116
|
+
{ name: 'ID', alignment: 'left' },
|
|
117
|
+
{ name: 'Identifier', alignment: 'left' },
|
|
118
|
+
{ name: 'Deployment', alignment: 'left' },
|
|
119
|
+
{ name: 'Version', alignment: 'left' },
|
|
120
|
+
{ name: 'Description', alignment: 'left' },
|
|
121
|
+
{ name: 'Created', alignment: 'left' },
|
|
122
|
+
],
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
for (const evalItem of agent.evals) {
|
|
126
|
+
evalTable.addRow({
|
|
127
|
+
Name: evalItem.name,
|
|
128
|
+
ID: verbose ? evalItem.id : abbreviate(evalItem.id, 20),
|
|
129
|
+
Identifier: verbose
|
|
130
|
+
? (evalItem.identifier ?? 'N/A')
|
|
131
|
+
: (abbreviate(evalItem.identifier, 20) ?? 'N/A'),
|
|
132
|
+
Deployment: abbreviate(evalItem.deploymentId, 20),
|
|
133
|
+
Version: verbose
|
|
134
|
+
? (evalItem.version ?? 'N/A')
|
|
135
|
+
: (abbreviate(evalItem.version, 20) ?? 'N/A'),
|
|
136
|
+
Description: verbose
|
|
137
|
+
? (evalItem.description ?? 'N/A')
|
|
138
|
+
: abbreviateDescription(evalItem.description),
|
|
139
|
+
Created: new Date(evalItem.createdAt).toLocaleString(),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
evalTable.printTable();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
export default command;
|
package/src/cmd/cloud/deploy.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { createSubcommand } from '../../types';
|
|
|
6
6
|
import * as tui from '../../tui';
|
|
7
7
|
import { saveProjectDir } from '../../config';
|
|
8
8
|
import { runSteps, stepSuccess, stepSkipped, stepError, Step, ProgressCallback } from '../../steps';
|
|
9
|
-
import { bundle } from '../
|
|
9
|
+
import { bundle } from '../build/bundler';
|
|
10
10
|
import { loadBuildMetadata } from '../../config';
|
|
11
11
|
import {
|
|
12
12
|
projectEnvUpdate,
|
|
@@ -3,7 +3,6 @@ import { createSubcommand } from '../../../types';
|
|
|
3
3
|
import * as tui from '../../../tui';
|
|
4
4
|
import { projectDeploymentList } from '@agentuity/server';
|
|
5
5
|
import { resolveProjectId } from './utils';
|
|
6
|
-
import { Table } from 'console-table-printer';
|
|
7
6
|
import { getCommand } from '../../../command-prefix';
|
|
8
7
|
import { ErrorCode } from '../../../errors';
|
|
9
8
|
|
|
@@ -64,28 +63,23 @@ export const listSubcommand = createSubcommand({
|
|
|
64
63
|
return [];
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
],
|
|
76
|
-
});
|
|
66
|
+
const tableData = deployments.map((d) => ({
|
|
67
|
+
ID: d.id,
|
|
68
|
+
State: d.state || 'unknown',
|
|
69
|
+
Active: d.active ? 'Yes' : '',
|
|
70
|
+
Created: new Date(d.createdAt).toLocaleString(),
|
|
71
|
+
Message: d.message || '',
|
|
72
|
+
Tags: d.tags.join(', '),
|
|
73
|
+
}));
|
|
77
74
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
table.printTable();
|
|
75
|
+
tui.table(tableData, [
|
|
76
|
+
{ name: 'ID', alignment: 'left' },
|
|
77
|
+
{ name: 'State', alignment: 'left' },
|
|
78
|
+
{ name: 'Active', alignment: 'center' },
|
|
79
|
+
{ name: 'Created', alignment: 'left' },
|
|
80
|
+
{ name: 'Message', alignment: 'left' },
|
|
81
|
+
{ name: 'Tags', alignment: 'left' },
|
|
82
|
+
]);
|
|
89
83
|
|
|
90
84
|
return deployments.map((d) => ({
|
|
91
85
|
id: d.id,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { createSubcommand } from '
|
|
3
|
-
import * as tui from '
|
|
2
|
+
import { createSubcommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
4
|
import { projectEnvDelete } from '@agentuity/server';
|
|
5
5
|
import {
|
|
6
6
|
findExistingEnvFile,
|
|
7
7
|
readEnvFile,
|
|
8
8
|
writeEnvFile,
|
|
9
9
|
filterAgentuitySdkKeys,
|
|
10
|
-
} from '
|
|
11
|
-
import { getCommand } from '
|
|
10
|
+
} from '../../../env-util';
|
|
11
|
+
import { getCommand } from '../../../command-prefix';
|
|
12
12
|
|
|
13
13
|
const EnvDeleteResponseSchema = z.object({
|
|
14
14
|
success: z.boolean().describe('Whether the operation succeeded'),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { createSubcommand } from '
|
|
3
|
-
import * as tui from '
|
|
2
|
+
import { createSubcommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
4
|
import { projectGet } from '@agentuity/server';
|
|
5
|
-
import { maskSecret } from '
|
|
6
|
-
import { getCommand } from '
|
|
7
|
-
import { ErrorCode } from '
|
|
5
|
+
import { maskSecret } from '../../../env-util';
|
|
6
|
+
import { getCommand } from '../../../command-prefix';
|
|
7
|
+
import { ErrorCode } from '../../../errors';
|
|
8
8
|
|
|
9
9
|
const EnvGetResponseSchema = z.object({
|
|
10
10
|
key: z.string().describe('Environment variable key name'),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { createSubcommand } from '
|
|
3
|
-
import * as tui from '
|
|
2
|
+
import { createSubcommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
4
|
import { projectEnvUpdate } from '@agentuity/server';
|
|
5
5
|
import {
|
|
6
6
|
findEnvFile,
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
mergeEnvVars,
|
|
11
11
|
splitEnvAndSecrets,
|
|
12
12
|
looksLikeSecret,
|
|
13
|
-
} from '
|
|
14
|
-
import { getCommand } from '
|
|
13
|
+
} from '../../../env-util';
|
|
14
|
+
import { getCommand } from '../../../command-prefix';
|
|
15
15
|
|
|
16
16
|
const EnvImportResponseSchema = z.object({
|
|
17
17
|
success: z.boolean().describe('Whether import succeeded'),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createCommand } from '
|
|
1
|
+
import { createCommand } from '../../../types';
|
|
2
2
|
import { pullSubcommand } from './pull';
|
|
3
3
|
import { pushSubcommand } from './push';
|
|
4
4
|
import { setSubcommand } from './set';
|
|
@@ -21,3 +21,4 @@ export const command = createCommand({
|
|
|
21
21
|
importSubcommand,
|
|
22
22
|
],
|
|
23
23
|
});
|
|
24
|
+
export default command;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { createSubcommand } from '
|
|
3
|
-
import * as tui from '
|
|
2
|
+
import { createSubcommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
4
|
import { projectGet } from '@agentuity/server';
|
|
5
|
-
import { maskSecret } from '
|
|
6
|
-
import { getCommand } from '
|
|
5
|
+
import { maskSecret } from '../../../env-util';
|
|
6
|
+
import { getCommand } from '../../../command-prefix';
|
|
7
7
|
|
|
8
8
|
const EnvListResponseSchema = z.record(
|
|
9
9
|
z.string(),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import { createSubcommand } from '
|
|
4
|
-
import * as tui from '
|
|
3
|
+
import { createSubcommand } from '../../../types';
|
|
4
|
+
import * as tui from '../../../tui';
|
|
5
5
|
import { projectGet } from '@agentuity/server';
|
|
6
6
|
import {
|
|
7
7
|
findEnvFile,
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
readEnvFile,
|
|
10
10
|
writeEnvFile,
|
|
11
11
|
mergeEnvVars,
|
|
12
|
-
} from '
|
|
13
|
-
import { getCommand } from '
|
|
12
|
+
} from '../../../env-util';
|
|
13
|
+
import { getCommand } from '../../../command-prefix';
|
|
14
14
|
|
|
15
15
|
const EnvPullResponseSchema = z.object({
|
|
16
16
|
success: z.boolean().describe('Whether pull succeeded'),
|