@agentuity/cli 0.0.60 → 0.0.62
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/bin/cli.ts +15 -4
- package/dist/banner.d.ts +1 -0
- package/dist/banner.d.ts.map +1 -1
- package/dist/banner.js +28 -13
- package/dist/banner.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +85 -9
- package/dist/cli.js.map +1 -1
- package/dist/cmd/ai/capabilities/index.d.ts.map +1 -1
- package/dist/cmd/ai/capabilities/index.js +4 -0
- package/dist/cmd/ai/capabilities/index.js.map +1 -1
- package/dist/cmd/ai/capabilities/show.d.ts.map +1 -1
- package/dist/cmd/ai/capabilities/show.js +13 -2
- package/dist/cmd/ai/capabilities/show.js.map +1 -1
- package/dist/cmd/ai/index.d.ts.map +1 -1
- package/dist/cmd/ai/index.js +11 -0
- package/dist/cmd/ai/index.js.map +1 -1
- package/dist/cmd/ai/prompt/agent.d.ts +3 -0
- package/dist/cmd/ai/prompt/agent.d.ts.map +1 -0
- package/dist/cmd/ai/prompt/agent.js +340 -0
- package/dist/cmd/ai/prompt/agent.js.map +1 -0
- package/dist/cmd/ai/prompt/api.d.ts +3 -0
- package/dist/cmd/ai/prompt/api.d.ts.map +1 -0
- package/dist/cmd/ai/prompt/api.js +272 -0
- package/dist/cmd/ai/prompt/api.js.map +1 -0
- package/dist/cmd/ai/prompt/index.d.ts +1 -2
- package/dist/cmd/ai/prompt/index.d.ts.map +1 -1
- package/dist/cmd/ai/prompt/index.js +17 -1
- package/dist/cmd/ai/prompt/index.js.map +1 -1
- package/dist/cmd/ai/prompt/llm.d.ts +1 -0
- package/dist/cmd/ai/prompt/llm.d.ts.map +1 -1
- package/dist/cmd/ai/prompt/llm.js +2 -2
- package/dist/cmd/ai/prompt/llm.js.map +1 -1
- package/dist/cmd/ai/prompt/web.d.ts +3 -0
- package/dist/cmd/ai/prompt/web.d.ts.map +1 -0
- package/dist/cmd/ai/prompt/web.js +299 -0
- package/dist/cmd/ai/prompt/web.js.map +1 -0
- package/dist/cmd/ai/schema/generate.js +1 -1
- package/dist/cmd/ai/schema/generate.js.map +1 -1
- package/dist/cmd/ai/schema/index.d.ts.map +1 -1
- package/dist/cmd/ai/schema/index.js +2 -0
- package/dist/cmd/ai/schema/index.js.map +1 -1
- package/dist/cmd/ai/schema/show.d.ts.map +1 -1
- package/dist/cmd/ai/schema/show.js +4 -1
- package/dist/cmd/ai/schema/show.js.map +1 -1
- package/dist/cmd/auth/api.d.ts.map +1 -1
- package/dist/cmd/auth/api.js +12 -6
- package/dist/cmd/auth/api.js.map +1 -1
- package/dist/cmd/auth/index.d.ts.map +1 -1
- package/dist/cmd/auth/index.js +5 -0
- package/dist/cmd/auth/index.js.map +1 -1
- package/dist/cmd/auth/login.d.ts.map +1 -1
- package/dist/cmd/auth/login.js +5 -22
- package/dist/cmd/auth/login.js.map +1 -1
- package/dist/cmd/auth/logout.d.ts.map +1 -1
- package/dist/cmd/auth/logout.js +4 -1
- package/dist/cmd/auth/logout.js.map +1 -1
- package/dist/cmd/auth/signup.d.ts.map +1 -1
- package/dist/cmd/auth/signup.js +4 -1
- package/dist/cmd/auth/signup.js.map +1 -1
- package/dist/cmd/auth/ssh/add.d.ts.map +1 -1
- package/dist/cmd/auth/ssh/add.js +13 -4
- package/dist/cmd/auth/ssh/add.js.map +1 -1
- package/dist/cmd/auth/ssh/api.d.ts.map +1 -1
- package/dist/cmd/auth/ssh/api.js +11 -5
- package/dist/cmd/auth/ssh/api.js.map +1 -1
- package/dist/cmd/auth/ssh/delete.js +4 -4
- package/dist/cmd/auth/ssh/delete.js.map +1 -1
- package/dist/cmd/auth/ssh/index.d.ts.map +1 -1
- package/dist/cmd/auth/ssh/index.js +5 -0
- package/dist/cmd/auth/ssh/index.js.map +1 -1
- package/dist/cmd/auth/ssh/list.js +3 -3
- package/dist/cmd/auth/ssh/list.js.map +1 -1
- package/dist/cmd/auth/whoami.d.ts.map +1 -1
- package/dist/cmd/auth/whoami.js +4 -4
- package/dist/cmd/auth/whoami.js.map +1 -1
- package/dist/cmd/build/ast.d.ts +24 -1
- package/dist/cmd/build/ast.d.ts.map +1 -1
- package/dist/cmd/build/ast.js +558 -21
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/bundler.d.ts +3 -1
- package/dist/cmd/build/bundler.d.ts.map +1 -1
- package/dist/cmd/build/bundler.js +89 -38
- package/dist/cmd/build/bundler.js.map +1 -1
- package/dist/cmd/build/file.js +1 -1
- package/dist/cmd/build/file.js.map +1 -1
- package/dist/cmd/build/fix-duplicate-exports.d.ts.map +1 -1
- package/dist/cmd/build/fix-duplicate-exports.js +4 -1
- package/dist/cmd/build/fix-duplicate-exports.js.map +1 -1
- package/dist/cmd/build/index.d.ts.map +1 -1
- package/dist/cmd/build/index.js +55 -13
- package/dist/cmd/build/index.js.map +1 -1
- package/dist/cmd/build/plugin.d.ts.map +1 -1
- package/dist/cmd/build/plugin.js +183 -38
- package/dist/cmd/build/plugin.js.map +1 -1
- package/dist/cmd/cloud/agent/get.d.ts.map +1 -1
- package/dist/cmd/cloud/agent/get.js +5 -2
- package/dist/cmd/cloud/agent/get.js.map +1 -1
- package/dist/cmd/cloud/agent/index.d.ts.map +1 -1
- package/dist/cmd/cloud/agent/index.js +5 -0
- package/dist/cmd/cloud/agent/index.js.map +1 -1
- package/dist/cmd/cloud/agent/list.js +3 -3
- package/dist/cmd/cloud/agent/list.js.map +1 -1
- package/dist/cmd/cloud/apikey/create.d.ts.map +1 -1
- package/dist/cmd/cloud/apikey/create.js +12 -3
- package/dist/cmd/cloud/apikey/create.js.map +1 -1
- package/dist/cmd/cloud/apikey/delete.js +3 -3
- package/dist/cmd/cloud/apikey/delete.js.map +1 -1
- package/dist/cmd/cloud/apikey/get.js +1 -1
- package/dist/cmd/cloud/apikey/get.js.map +1 -1
- package/dist/cmd/cloud/apikey/index.d.ts.map +1 -1
- package/dist/cmd/cloud/apikey/index.js +8 -0
- package/dist/cmd/cloud/apikey/index.js.map +1 -1
- package/dist/cmd/cloud/apikey/list.d.ts.map +1 -1
- package/dist/cmd/cloud/apikey/list.js +4 -1
- package/dist/cmd/cloud/apikey/list.js.map +1 -1
- package/dist/cmd/cloud/db/create.d.ts.map +1 -1
- package/dist/cmd/cloud/db/create.js +35 -21
- package/dist/cmd/cloud/db/create.js.map +1 -1
- package/dist/cmd/cloud/db/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/db/delete.js +34 -21
- 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 +9 -3
- package/dist/cmd/cloud/db/get.js.map +1 -1
- package/dist/cmd/cloud/db/index.d.ts.map +1 -1
- package/dist/cmd/cloud/db/index.js +5 -0
- package/dist/cmd/cloud/db/index.js.map +1 -1
- package/dist/cmd/cloud/db/list.d.ts.map +1 -1
- package/dist/cmd/cloud/db/list.js +16 -6
- package/dist/cmd/cloud/db/list.js.map +1 -1
- package/dist/cmd/cloud/db/sql.d.ts.map +1 -1
- package/dist/cmd/cloud/db/sql.js +12 -3
- package/dist/cmd/cloud/db/sql.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +9 -3
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/deployment/index.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/index.js +5 -0
- package/dist/cmd/cloud/deployment/index.js.map +1 -1
- package/dist/cmd/cloud/deployment/list.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/list.js +12 -3
- package/dist/cmd/cloud/deployment/list.js.map +1 -1
- package/dist/cmd/cloud/deployment/logs.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/logs.js +16 -4
- package/dist/cmd/cloud/deployment/logs.js.map +1 -1
- package/dist/cmd/cloud/deployment/remove.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/remove.js +12 -3
- package/dist/cmd/cloud/deployment/remove.js.map +1 -1
- package/dist/cmd/cloud/deployment/rollback.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/rollback.js +8 -2
- package/dist/cmd/cloud/deployment/rollback.js.map +1 -1
- package/dist/cmd/cloud/deployment/show.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/show.js +8 -2
- package/dist/cmd/cloud/deployment/show.js.map +1 -1
- package/dist/cmd/cloud/deployment/undeploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/undeploy.js +12 -3
- package/dist/cmd/cloud/deployment/undeploy.js.map +1 -1
- package/dist/cmd/cloud/deployment/utils.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/utils.js +3 -1
- package/dist/cmd/cloud/deployment/utils.js.map +1 -1
- package/dist/cmd/cloud/domain.d.ts.map +1 -1
- package/dist/cmd/cloud/domain.js +4 -2
- package/dist/cmd/cloud/domain.js.map +1 -1
- package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/env/delete.js +4 -1
- package/dist/cmd/cloud/env/delete.js.map +1 -1
- package/dist/cmd/cloud/env/get.d.ts.map +1 -1
- package/dist/cmd/cloud/env/get.js +4 -1
- package/dist/cmd/cloud/env/get.js.map +1 -1
- package/dist/cmd/cloud/env/import.d.ts.map +1 -1
- package/dist/cmd/cloud/env/import.js +10 -0
- package/dist/cmd/cloud/env/import.js.map +1 -1
- package/dist/cmd/cloud/env/index.d.ts.map +1 -1
- package/dist/cmd/cloud/env/index.js +8 -0
- package/dist/cmd/cloud/env/index.js.map +1 -1
- package/dist/cmd/cloud/env/list.d.ts.map +1 -1
- package/dist/cmd/cloud/env/list.js +4 -1
- package/dist/cmd/cloud/env/list.js.map +1 -1
- package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
- package/dist/cmd/cloud/env/pull.js +4 -1
- package/dist/cmd/cloud/env/pull.js.map +1 -1
- package/dist/cmd/cloud/env/push.js +1 -1
- package/dist/cmd/cloud/env/push.js.map +1 -1
- package/dist/cmd/cloud/env/set.js +3 -3
- package/dist/cmd/cloud/env/set.js.map +1 -1
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +7 -0
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/create-namespace.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/create-namespace.js +9 -3
- package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/delete-namespace.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/delete-namespace.js +12 -3
- package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/delete.js +6 -3
- package/dist/cmd/cloud/keyvalue/delete.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/get.js +3 -3
- package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/index.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/index.js +8 -0
- package/dist/cmd/cloud/keyvalue/index.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/keys.js +3 -3
- package/dist/cmd/cloud/keyvalue/keys.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/list-namespaces.js +3 -3
- package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/repl.js +1 -1
- package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.js +9 -3
- package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/set.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/set.js +12 -3
- package/dist/cmd/cloud/keyvalue/set.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/stats.js +6 -3
- package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
- package/dist/cmd/cloud/objectstore/delete-bucket.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/delete-bucket.js +8 -2
- package/dist/cmd/cloud/objectstore/delete-bucket.js.map +1 -1
- package/dist/cmd/cloud/objectstore/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/delete.js +12 -3
- package/dist/cmd/cloud/objectstore/delete.js.map +1 -1
- package/dist/cmd/cloud/objectstore/get.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/get.js +12 -3
- package/dist/cmd/cloud/objectstore/get.js.map +1 -1
- package/dist/cmd/cloud/objectstore/index.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/index.js +8 -0
- package/dist/cmd/cloud/objectstore/index.js.map +1 -1
- package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/list-buckets.js +6 -1
- package/dist/cmd/cloud/objectstore/list-buckets.js.map +1 -1
- package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/list-keys.js +6 -3
- package/dist/cmd/cloud/objectstore/list-keys.js.map +1 -1
- package/dist/cmd/cloud/objectstore/put.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/put.js +12 -3
- package/dist/cmd/cloud/objectstore/put.js.map +1 -1
- package/dist/cmd/cloud/objectstore/repl.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/repl.js +6 -1
- package/dist/cmd/cloud/objectstore/repl.js.map +1 -1
- package/dist/cmd/cloud/objectstore/url.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/url.js +12 -3
- package/dist/cmd/cloud/objectstore/url.js.map +1 -1
- package/dist/cmd/cloud/scp/download.d.ts.map +1 -1
- package/dist/cmd/cloud/scp/download.js +16 -4
- package/dist/cmd/cloud/scp/download.js.map +1 -1
- package/dist/cmd/cloud/scp/index.d.ts.map +1 -1
- package/dist/cmd/cloud/scp/index.js +11 -0
- package/dist/cmd/cloud/scp/index.js.map +1 -1
- package/dist/cmd/cloud/scp/upload.d.ts.map +1 -1
- package/dist/cmd/cloud/scp/upload.js +16 -4
- package/dist/cmd/cloud/scp/upload.js.map +1 -1
- package/dist/cmd/cloud/secret/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/delete.js +4 -1
- package/dist/cmd/cloud/secret/delete.js.map +1 -1
- package/dist/cmd/cloud/secret/get.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/get.js +5 -2
- package/dist/cmd/cloud/secret/get.js.map +1 -1
- package/dist/cmd/cloud/secret/import.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/import.js +5 -2
- package/dist/cmd/cloud/secret/import.js.map +1 -1
- package/dist/cmd/cloud/secret/index.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/index.js +8 -0
- package/dist/cmd/cloud/secret/index.js.map +1 -1
- package/dist/cmd/cloud/secret/list.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/list.js +4 -1
- package/dist/cmd/cloud/secret/list.js.map +1 -1
- package/dist/cmd/cloud/secret/pull.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/pull.js +4 -1
- package/dist/cmd/cloud/secret/pull.js.map +1 -1
- package/dist/cmd/cloud/secret/push.js +1 -1
- package/dist/cmd/cloud/secret/push.js.map +1 -1
- package/dist/cmd/cloud/secret/set.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/set.js +8 -2
- package/dist/cmd/cloud/secret/set.js.map +1 -1
- package/dist/cmd/cloud/session/get.d.ts.map +1 -1
- package/dist/cmd/cloud/session/get.js +10 -2
- package/dist/cmd/cloud/session/get.js.map +1 -1
- package/dist/cmd/cloud/session/index.d.ts.map +1 -1
- package/dist/cmd/cloud/session/index.js +5 -0
- package/dist/cmd/cloud/session/index.js.map +1 -1
- package/dist/cmd/cloud/session/list.d.ts.map +1 -1
- package/dist/cmd/cloud/session/list.js +29 -8
- package/dist/cmd/cloud/session/list.js.map +1 -1
- package/dist/cmd/cloud/session/logs.d.ts.map +1 -1
- package/dist/cmd/cloud/session/logs.js +8 -2
- package/dist/cmd/cloud/session/logs.js.map +1 -1
- package/dist/cmd/cloud/ssh.d.ts.map +1 -1
- package/dist/cmd/cloud/ssh.js +15 -6
- package/dist/cmd/cloud/ssh.js.map +1 -1
- package/dist/cmd/cloud/storage/create.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/create.js +12 -3
- package/dist/cmd/cloud/storage/create.js.map +1 -1
- package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/delete.js +16 -4
- package/dist/cmd/cloud/storage/delete.js.map +1 -1
- package/dist/cmd/cloud/storage/download.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/download.js +16 -4
- package/dist/cmd/cloud/storage/download.js.map +1 -1
- package/dist/cmd/cloud/storage/get.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/get.js +12 -3
- package/dist/cmd/cloud/storage/get.js.map +1 -1
- package/dist/cmd/cloud/storage/index.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/index.js +8 -0
- package/dist/cmd/cloud/storage/index.js.map +1 -1
- package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/list.js +35 -12
- package/dist/cmd/cloud/storage/list.js.map +1 -1
- package/dist/cmd/cloud/storage/upload.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/upload.js +21 -9
- package/dist/cmd/cloud/storage/upload.js.map +1 -1
- package/dist/cmd/cloud/stream/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/delete.js +9 -3
- 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 +10 -4
- package/dist/cmd/cloud/stream/get.js.map +1 -1
- package/dist/cmd/cloud/stream/index.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/index.js +5 -0
- package/dist/cmd/cloud/stream/index.js.map +1 -1
- package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/list.js +11 -5
- package/dist/cmd/cloud/stream/list.js.map +1 -1
- package/dist/cmd/cloud/thread/delete.d.ts +2 -0
- package/dist/cmd/cloud/thread/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/thread/delete.js +41 -0
- package/dist/cmd/cloud/thread/delete.js.map +1 -0
- package/dist/cmd/cloud/thread/get.d.ts +2 -0
- package/dist/cmd/cloud/thread/get.d.ts.map +1 -0
- package/dist/cmd/cloud/thread/get.js +80 -0
- package/dist/cmd/cloud/thread/get.js.map +1 -0
- package/dist/cmd/cloud/thread/index.d.ts +2 -0
- package/dist/cmd/cloud/thread/index.d.ts.map +1 -0
- package/dist/cmd/cloud/thread/index.js +17 -0
- package/dist/cmd/cloud/thread/index.js.map +1 -0
- package/dist/cmd/cloud/thread/list.d.ts +2 -0
- package/dist/cmd/cloud/thread/list.d.ts.map +1 -0
- package/dist/cmd/cloud/thread/list.js +112 -0
- package/dist/cmd/cloud/thread/list.js.map +1 -0
- package/dist/cmd/cloud/vector/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/delete.js +12 -3
- package/dist/cmd/cloud/vector/delete.js.map +1 -1
- package/dist/cmd/cloud/vector/get.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/get.js +12 -3
- package/dist/cmd/cloud/vector/get.js.map +1 -1
- package/dist/cmd/cloud/vector/index.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/index.js +8 -0
- package/dist/cmd/cloud/vector/index.js.map +1 -1
- package/dist/cmd/cloud/vector/search.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/search.js +20 -5
- package/dist/cmd/cloud/vector/search.js.map +1 -1
- package/dist/cmd/dev/agents.d.ts.map +1 -1
- package/dist/cmd/dev/agents.js +7 -2
- package/dist/cmd/dev/agents.js.map +1 -1
- package/dist/cmd/dev/api.d.ts.map +1 -1
- package/dist/cmd/dev/api.js +3 -1
- package/dist/cmd/dev/api.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +13 -5
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/help/index.d.ts +2 -0
- package/dist/cmd/help/index.d.ts.map +1 -0
- package/dist/cmd/help/index.js +35 -0
- package/dist/cmd/help/index.js.map +1 -0
- package/dist/cmd/index.d.ts.map +1 -1
- package/dist/cmd/index.js +1 -0
- package/dist/cmd/index.js.map +1 -1
- package/dist/cmd/profile/create.js +3 -3
- package/dist/cmd/profile/create.js.map +1 -1
- package/dist/cmd/profile/delete.d.ts.map +1 -1
- package/dist/cmd/profile/delete.js +6 -3
- package/dist/cmd/profile/delete.js.map +1 -1
- package/dist/cmd/profile/index.d.ts.map +1 -1
- package/dist/cmd/profile/index.js +8 -0
- package/dist/cmd/profile/index.js.map +1 -1
- package/dist/cmd/profile/list.d.ts.map +1 -1
- package/dist/cmd/profile/list.js +4 -1
- package/dist/cmd/profile/list.js.map +1 -1
- package/dist/cmd/profile/show.d.ts.map +1 -1
- package/dist/cmd/profile/show.js +6 -3
- package/dist/cmd/profile/show.js.map +1 -1
- package/dist/cmd/profile/use.d.ts.map +1 -1
- package/dist/cmd/profile/use.js +12 -3
- package/dist/cmd/profile/use.js.map +1 -1
- package/dist/cmd/project/create.d.ts.map +1 -1
- package/dist/cmd/project/create.js +11 -5
- package/dist/cmd/project/create.js.map +1 -1
- package/dist/cmd/project/delete.d.ts.map +1 -1
- package/dist/cmd/project/delete.js +15 -6
- package/dist/cmd/project/delete.js.map +1 -1
- package/dist/cmd/project/download.d.ts +1 -1
- package/dist/cmd/project/download.d.ts.map +1 -1
- package/dist/cmd/project/download.js +37 -2
- package/dist/cmd/project/download.js.map +1 -1
- package/dist/cmd/project/index.d.ts.map +1 -1
- package/dist/cmd/project/index.js +5 -0
- package/dist/cmd/project/index.js.map +1 -1
- package/dist/cmd/project/list.d.ts.map +1 -1
- package/dist/cmd/project/list.js +6 -3
- package/dist/cmd/project/list.js.map +1 -1
- package/dist/cmd/project/show.d.ts.map +1 -1
- package/dist/cmd/project/show.js +6 -3
- package/dist/cmd/project/show.js.map +1 -1
- package/dist/cmd/project/templates.d.ts.map +1 -1
- package/dist/cmd/project/templates.js +10 -2
- package/dist/cmd/project/templates.js.map +1 -1
- package/dist/cmd/repl/index.js +1 -1
- package/dist/cmd/repl/index.js.map +1 -1
- package/dist/cmd/version/index.d.ts.map +1 -1
- package/dist/cmd/version/index.js +7 -1
- package/dist/cmd/version/index.js.map +1 -1
- package/dist/command-prefix.d.ts.map +1 -1
- package/dist/command-prefix.js +5 -3
- package/dist/command-prefix.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/crypto/box.d.ts.map +1 -1
- package/dist/crypto/box.js +31 -17
- package/dist/crypto/box.js.map +1 -1
- package/dist/download.d.ts.map +1 -1
- package/dist/download.js +7 -1
- package/dist/download.js.map +1 -1
- package/dist/env-util.d.ts +3 -0
- package/dist/env-util.d.ts.map +1 -1
- package/dist/env-util.js +43 -2
- package/dist/env-util.js.map +1 -1
- package/dist/errors.d.ts +4 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schema-generator.d.ts +5 -1
- package/dist/schema-generator.d.ts.map +1 -1
- package/dist/schema-generator.js +1 -0
- package/dist/schema-generator.js.map +1 -1
- package/dist/steps.js +17 -13
- package/dist/steps.js.map +1 -1
- package/dist/tui.d.ts +2 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +21 -14
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +10 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +7 -2
- package/dist/utils/date.js.map +1 -1
- package/package.json +4 -3
- package/src/banner.ts +29 -13
- package/src/cli.ts +109 -13
- package/src/cmd/ai/capabilities/index.ts +4 -0
- package/src/cmd/ai/capabilities/show.ts +13 -2
- package/src/cmd/ai/index.ts +11 -0
- package/src/cmd/ai/prompt/agent.ts +342 -0
- package/src/cmd/ai/prompt/api.ts +274 -0
- package/src/cmd/ai/prompt/index.ts +18 -3
- package/src/cmd/ai/prompt/llm.ts +2 -2
- package/src/cmd/ai/prompt/web.ts +301 -0
- package/src/cmd/ai/schema/generate.ts +1 -1
- package/src/cmd/ai/schema/index.ts +2 -0
- package/src/cmd/ai/schema/show.ts +4 -1
- package/src/cmd/auth/api.ts +28 -6
- package/src/cmd/auth/index.ts +5 -0
- package/src/cmd/auth/login.ts +5 -22
- package/src/cmd/auth/logout.ts +4 -1
- package/src/cmd/auth/signup.ts +4 -1
- package/src/cmd/auth/ssh/add.ts +13 -4
- package/src/cmd/auth/ssh/api.ts +21 -5
- package/src/cmd/auth/ssh/delete.ts +4 -4
- package/src/cmd/auth/ssh/index.ts +5 -0
- package/src/cmd/auth/ssh/list.ts +3 -3
- package/src/cmd/auth/whoami.ts +4 -7
- package/src/cmd/build/ast.ts +636 -38
- package/src/cmd/build/bundler.ts +110 -37
- package/src/cmd/build/file.ts +1 -1
- package/src/cmd/build/fix-duplicate-exports.ts +4 -1
- package/src/cmd/build/index.ts +58 -13
- package/src/cmd/build/plugin.ts +210 -46
- package/src/cmd/cloud/agent/get.ts +5 -2
- package/src/cmd/cloud/agent/index.ts +5 -0
- package/src/cmd/cloud/agent/list.ts +3 -3
- package/src/cmd/cloud/apikey/create.ts +14 -5
- package/src/cmd/cloud/apikey/delete.ts +3 -3
- package/src/cmd/cloud/apikey/get.ts +1 -1
- package/src/cmd/cloud/apikey/index.ts +8 -0
- package/src/cmd/cloud/apikey/list.ts +4 -1
- package/src/cmd/cloud/db/create.ts +37 -22
- package/src/cmd/cloud/db/delete.ts +36 -21
- package/src/cmd/cloud/db/get.ts +12 -4
- package/src/cmd/cloud/db/index.ts +5 -0
- package/src/cmd/cloud/db/list.ts +19 -7
- package/src/cmd/cloud/db/sql.ts +12 -3
- package/src/cmd/cloud/deploy.ts +9 -3
- package/src/cmd/cloud/deployment/index.ts +5 -0
- package/src/cmd/cloud/deployment/list.ts +12 -3
- package/src/cmd/cloud/deployment/logs.ts +16 -4
- package/src/cmd/cloud/deployment/remove.ts +14 -4
- package/src/cmd/cloud/deployment/rollback.ts +8 -3
- package/src/cmd/cloud/deployment/show.ts +8 -2
- package/src/cmd/cloud/deployment/undeploy.ts +12 -4
- package/src/cmd/cloud/deployment/utils.ts +7 -1
- package/src/cmd/cloud/domain.ts +9 -2
- package/src/cmd/cloud/env/delete.ts +4 -1
- package/src/cmd/cloud/env/get.ts +4 -1
- package/src/cmd/cloud/env/import.ts +10 -0
- package/src/cmd/cloud/env/index.ts +8 -0
- package/src/cmd/cloud/env/list.ts +4 -1
- package/src/cmd/cloud/env/pull.ts +4 -1
- package/src/cmd/cloud/env/push.ts +1 -1
- package/src/cmd/cloud/env/set.ts +3 -3
- package/src/cmd/cloud/index.ts +7 -1
- package/src/cmd/cloud/keyvalue/create-namespace.ts +9 -4
- package/src/cmd/cloud/keyvalue/delete-namespace.ts +12 -4
- package/src/cmd/cloud/keyvalue/delete.ts +6 -4
- package/src/cmd/cloud/keyvalue/get.ts +3 -4
- package/src/cmd/cloud/keyvalue/index.ts +8 -0
- package/src/cmd/cloud/keyvalue/keys.ts +3 -4
- package/src/cmd/cloud/keyvalue/list-namespaces.ts +3 -4
- package/src/cmd/cloud/keyvalue/repl.ts +1 -2
- package/src/cmd/cloud/keyvalue/search.ts +9 -4
- package/src/cmd/cloud/keyvalue/set.ts +14 -4
- package/src/cmd/cloud/keyvalue/stats.ts +6 -4
- package/src/cmd/cloud/objectstore/delete-bucket.ts +8 -3
- package/src/cmd/cloud/objectstore/delete.ts +12 -4
- package/src/cmd/cloud/objectstore/get.ts +12 -4
- package/src/cmd/cloud/objectstore/index.ts +8 -0
- package/src/cmd/cloud/objectstore/list-buckets.ts +6 -2
- package/src/cmd/cloud/objectstore/list-keys.ts +6 -4
- package/src/cmd/cloud/objectstore/put.ts +16 -4
- package/src/cmd/cloud/objectstore/repl.ts +6 -2
- package/src/cmd/cloud/objectstore/url.ts +12 -4
- package/src/cmd/cloud/scp/download.ts +16 -5
- package/src/cmd/cloud/scp/index.ts +11 -0
- package/src/cmd/cloud/scp/upload.ts +16 -5
- package/src/cmd/cloud/secret/delete.ts +4 -1
- package/src/cmd/cloud/secret/get.ts +5 -2
- package/src/cmd/cloud/secret/import.ts +5 -2
- package/src/cmd/cloud/secret/index.ts +8 -0
- package/src/cmd/cloud/secret/list.ts +4 -1
- package/src/cmd/cloud/secret/pull.ts +4 -1
- package/src/cmd/cloud/secret/push.ts +1 -1
- package/src/cmd/cloud/secret/set.ts +8 -2
- package/src/cmd/cloud/session/get.ts +16 -2
- package/src/cmd/cloud/session/index.ts +5 -0
- package/src/cmd/cloud/session/list.ts +29 -8
- package/src/cmd/cloud/session/logs.ts +8 -2
- package/src/cmd/cloud/ssh.ts +15 -7
- package/src/cmd/cloud/storage/create.ts +12 -3
- package/src/cmd/cloud/storage/delete.ts +16 -4
- package/src/cmd/cloud/storage/download.ts +16 -4
- package/src/cmd/cloud/storage/get.ts +12 -3
- package/src/cmd/cloud/storage/index.ts +8 -0
- package/src/cmd/cloud/storage/list.ts +39 -15
- package/src/cmd/cloud/storage/upload.ts +24 -9
- package/src/cmd/cloud/stream/delete.ts +9 -4
- package/src/cmd/cloud/stream/get.ts +10 -5
- package/src/cmd/cloud/stream/index.ts +5 -0
- package/src/cmd/cloud/stream/list.ts +11 -6
- package/src/cmd/cloud/thread/delete.ts +44 -0
- package/src/cmd/cloud/thread/get.ts +88 -0
- package/src/cmd/cloud/thread/index.ts +17 -0
- package/src/cmd/cloud/thread/list.ts +125 -0
- package/src/cmd/cloud/vector/delete.ts +17 -6
- package/src/cmd/cloud/vector/get.ts +12 -4
- package/src/cmd/cloud/vector/index.ts +8 -0
- package/src/cmd/cloud/vector/search.ts +20 -6
- package/src/cmd/dev/agents.ts +7 -2
- package/src/cmd/dev/api.ts +4 -1
- package/src/cmd/dev/index.ts +16 -5
- package/src/cmd/help/index.ts +40 -0
- package/src/cmd/index.ts +1 -0
- package/src/cmd/profile/create.ts +3 -3
- package/src/cmd/profile/delete.ts +6 -3
- package/src/cmd/profile/index.ts +8 -0
- package/src/cmd/profile/list.ts +4 -1
- package/src/cmd/profile/show.ts +6 -3
- package/src/cmd/profile/use.ts +12 -3
- package/src/cmd/project/create.ts +11 -5
- package/src/cmd/project/delete.ts +15 -6
- package/src/cmd/project/download.ts +44 -3
- package/src/cmd/project/index.ts +5 -0
- package/src/cmd/project/list.ts +6 -3
- package/src/cmd/project/show.ts +6 -3
- package/src/cmd/project/templates.ts +12 -2
- package/src/cmd/repl/index.ts +1 -1
- package/src/cmd/version/index.ts +7 -1
- package/src/command-prefix.ts +5 -3
- package/src/config.ts +4 -2
- package/src/crypto/box.ts +69 -17
- package/src/download.ts +7 -1
- package/src/env-util.ts +44 -2
- package/src/errors.ts +9 -1
- package/src/index.ts +6 -1
- package/src/schema-generator.ts +7 -1
- package/src/steps.ts +22 -13
- package/src/tui.ts +28 -16
- package/src/types.ts +11 -6
- package/src/utils/date.ts +9 -4
package/src/cmd/build/plugin.ts
CHANGED
|
@@ -8,8 +8,10 @@ import {
|
|
|
8
8
|
parseEvalMetadata,
|
|
9
9
|
analyzeWorkbench,
|
|
10
10
|
checkRouteConflicts,
|
|
11
|
+
generateLifecycleTypes,
|
|
12
|
+
findCreateAppEndPosition,
|
|
11
13
|
} from './ast';
|
|
12
|
-
import type
|
|
14
|
+
import { StructuredError, type WorkbenchConfig } from '@agentuity/core';
|
|
13
15
|
import { applyPatch, generatePatches } from './patch';
|
|
14
16
|
import { detectSubagent } from '../../utils/detectSubagent';
|
|
15
17
|
import { createLogger } from '@agentuity/server';
|
|
@@ -26,6 +28,37 @@ function toPascalCase(str: string): string {
|
|
|
26
28
|
return camel.charAt(0).toUpperCase() + camel.slice(1);
|
|
27
29
|
}
|
|
28
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Setup lifecycle types by analyzing app.ts for setup() function
|
|
33
|
+
*/
|
|
34
|
+
async function setupLifecycleTypes(
|
|
35
|
+
rootDir: string,
|
|
36
|
+
outDir: string,
|
|
37
|
+
srcDir: string,
|
|
38
|
+
logger: ReturnType<typeof createLogger>
|
|
39
|
+
): Promise<boolean> {
|
|
40
|
+
// Look for app.ts in both root and src directories
|
|
41
|
+
const rootAppFile = join(dirname(srcDir), 'app.ts');
|
|
42
|
+
const srcAppFile = join(srcDir, 'app.ts');
|
|
43
|
+
|
|
44
|
+
let appFile = '';
|
|
45
|
+
if (await Bun.file(rootAppFile).exists()) {
|
|
46
|
+
appFile = rootAppFile;
|
|
47
|
+
} else if (await Bun.file(srcAppFile).exists()) {
|
|
48
|
+
appFile = srcAppFile;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (!appFile || !(await Bun.file(appFile).exists())) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
try {
|
|
56
|
+
return await generateLifecycleTypes(rootDir, outDir, appFile);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
logger.fatal('Failed to generate lifecycle types:', error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
29
62
|
/**
|
|
30
63
|
* Setup workbench configuration by analyzing app.ts file
|
|
31
64
|
*/
|
|
@@ -70,6 +103,9 @@ async function setupWorkbench(srcDir: string): Promise<WorkbenchConfig | null> {
|
|
|
70
103
|
return workbenchConfig;
|
|
71
104
|
}
|
|
72
105
|
|
|
106
|
+
const AgentIdentifierCollisionError = StructuredError('AgentIdentifierCollisionError');
|
|
107
|
+
const SubAgentNameCollisionError = StructuredError('SubAgentNameCollisionError');
|
|
108
|
+
|
|
73
109
|
function generateAgentRegistry(srcDir: string, agentInfo: Array<Record<string, string>>) {
|
|
74
110
|
// Separate parent agents and subagents
|
|
75
111
|
const parentAgents = agentInfo.filter((a) => !a.parent);
|
|
@@ -103,11 +139,12 @@ function generateAgentRegistry(srcDir: string, agentInfo: Array<Record<string, s
|
|
|
103
139
|
}
|
|
104
140
|
|
|
105
141
|
if (collisions.length > 0) {
|
|
106
|
-
throw new
|
|
107
|
-
|
|
142
|
+
throw new AgentIdentifierCollisionError({
|
|
143
|
+
message:
|
|
144
|
+
`Agent identifier naming collisions detected:\n${collisions.join('\n')}\n\n` +
|
|
108
145
|
`This occurs when different agent names produce the same camelCase identifier.\n` +
|
|
109
|
-
`Please rename your agents to avoid this collision
|
|
110
|
-
);
|
|
146
|
+
`Please rename your agents to avoid this collision.`,
|
|
147
|
+
});
|
|
111
148
|
}
|
|
112
149
|
|
|
113
150
|
// Generate imports for all agents
|
|
@@ -133,11 +170,12 @@ function generateAgentRegistry(srcDir: string, agentInfo: Array<Record<string, s
|
|
|
133
170
|
|
|
134
171
|
// Check for collision with reserved agent properties
|
|
135
172
|
if (reservedAgentProperties.includes(childPropertyName)) {
|
|
136
|
-
throw new
|
|
137
|
-
|
|
173
|
+
throw new SubAgentNameCollisionError({
|
|
174
|
+
message:
|
|
175
|
+
`Subagent property name collision detected: "${childPropertyName}" in parent "${parentAgent.name}"\n` +
|
|
138
176
|
`The child name "${child.name}" conflicts with a reserved agent property (${reservedAgentProperties.join(', ')}).\n` +
|
|
139
|
-
`Please rename the subagent to avoid this collision
|
|
140
|
-
);
|
|
177
|
+
`Please rename the subagent to avoid this collision.`,
|
|
178
|
+
});
|
|
141
179
|
}
|
|
142
180
|
}
|
|
143
181
|
}
|
|
@@ -263,6 +301,11 @@ import type { AgentRunner, Logger } from '@agentuity/runtime';
|
|
|
263
301
|
import type { KeyValueStorage, ObjectStorage, StreamStorage, VectorStorage } from '@agentuity/core';
|
|
264
302
|
import type { Agent } from '@agentuity/react';
|
|
265
303
|
|
|
304
|
+
/**
|
|
305
|
+
* Registry of all agents in this application.
|
|
306
|
+
* Provides strongly-typed access to agent metadata and runner functions.
|
|
307
|
+
* Auto-generated from your agent files during build.
|
|
308
|
+
*/
|
|
266
309
|
export const agentRegistry = {
|
|
267
310
|
${registry}
|
|
268
311
|
} as const;
|
|
@@ -330,11 +373,22 @@ export function getBuildMetadata(): Partial<BuildMetadata> {
|
|
|
330
373
|
return metadata;
|
|
331
374
|
}
|
|
332
375
|
|
|
376
|
+
const AgentNameDuplicateError = StructuredError('AgentNameDuplicateError');
|
|
377
|
+
const MetadataMissingError = StructuredError('MetadataMissingError');
|
|
378
|
+
const MetadataPropertyMissingError = StructuredError('MetadataPropertyMissingError')<{
|
|
379
|
+
name: string;
|
|
380
|
+
}>();
|
|
381
|
+
const SubAgentMissingError = StructuredError('SubAgentMissingError');
|
|
382
|
+
|
|
333
383
|
const AgentuityBundler: BunPlugin = {
|
|
334
384
|
name: 'Agentuity Bundler',
|
|
335
385
|
setup(build) {
|
|
336
386
|
const rootDir = resolve(build.config.root ?? '.');
|
|
337
387
|
const srcDir = join(rootDir, 'src');
|
|
388
|
+
const outDir = build.config.outdir;
|
|
389
|
+
if (!outDir) {
|
|
390
|
+
throw new Error('missing outdir must be set');
|
|
391
|
+
}
|
|
338
392
|
const projectId = build.config.define?.['process.env.AGENTUITY_CLOUD_PROJECT_ID']
|
|
339
393
|
? JSON.parse(build.config.define['process.env.AGENTUITY_CLOUD_PROJECT_ID'])
|
|
340
394
|
: '';
|
|
@@ -401,9 +455,9 @@ const AgentuityBundler: BunPlugin = {
|
|
|
401
455
|
for (const [, kv] of agentMetadata) {
|
|
402
456
|
const found = kv.get('name');
|
|
403
457
|
if (newAgentName === found) {
|
|
404
|
-
throw new
|
|
405
|
-
`The agent in ${kv.get('filename')} and the agent in ${md.get('filename')} have the same name (${found}). Agent Names must be unique within a project
|
|
406
|
-
);
|
|
458
|
+
throw new AgentNameDuplicateError({
|
|
459
|
+
message: `The agent in ${kv.get('filename')} and the agent in ${md.get('filename')} have the same name (${found}). Agent Names must be unique within a project.`,
|
|
460
|
+
});
|
|
407
461
|
}
|
|
408
462
|
}
|
|
409
463
|
|
|
@@ -499,7 +553,9 @@ const AgentuityBundler: BunPlugin = {
|
|
|
499
553
|
if (hasAgent) {
|
|
500
554
|
const md = agentMetadata.get(name);
|
|
501
555
|
if (!md) {
|
|
502
|
-
throw new
|
|
556
|
+
throw new MetadataMissingError({
|
|
557
|
+
message: `Couldn't find agent metadata for ${route}`,
|
|
558
|
+
});
|
|
503
559
|
}
|
|
504
560
|
agentDetail = {
|
|
505
561
|
name,
|
|
@@ -550,13 +606,47 @@ const AgentuityBundler: BunPlugin = {
|
|
|
550
606
|
}
|
|
551
607
|
}
|
|
552
608
|
|
|
609
|
+
// Register standalone agents (agents without routes)
|
|
610
|
+
const routeAgentNames = new Set(
|
|
611
|
+
agentInfo
|
|
612
|
+
.filter((a) => {
|
|
613
|
+
// Check if this agent was added via a route (has a corresponding route file)
|
|
614
|
+
const agentPath = a.path.replace(/^\./, '').replace(/\/agent$/, '/route');
|
|
615
|
+
return routes.has(agentPath.replace(/^\/src\//, './'));
|
|
616
|
+
})
|
|
617
|
+
.map((a) => a.name)
|
|
618
|
+
);
|
|
619
|
+
|
|
620
|
+
for (const agentDetail of agentInfo) {
|
|
621
|
+
if (!routeAgentNames.has(agentDetail.name)) {
|
|
622
|
+
// This is a standalone agent - register it without a route
|
|
623
|
+
const agentPath = agentDetail.path;
|
|
624
|
+
const agentDirPath = agentPath.replace(/\/agent$/, '');
|
|
625
|
+
const evalsPath = join(srcDir, agentDirPath.replace(/^\./, ''), 'eval.ts');
|
|
626
|
+
const evalsImport = existsSync(evalsPath)
|
|
627
|
+
? `\n require('./src/${agentDirPath.replace(/^\.\//, '')}/eval');`
|
|
628
|
+
: '';
|
|
629
|
+
const isSubagent = !!agentDetail.parent;
|
|
630
|
+
const agentRegistrationName = isSubagent
|
|
631
|
+
? `${agentDetail.parent}.${agentDetail.name}`
|
|
632
|
+
: agentDetail.name;
|
|
633
|
+
|
|
634
|
+
const buffer = `await (async() => {
|
|
635
|
+
const { registerAgent } = await import('@agentuity/runtime');
|
|
636
|
+
const agent = require('./src${agentPath}').default;
|
|
637
|
+
registerAgent("${agentRegistrationName}", agent);${evalsImport}
|
|
638
|
+
})();`;
|
|
639
|
+
inserts.push(buffer);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
|
|
553
643
|
const indexFile = join(srcDir, 'web', 'index.html');
|
|
554
644
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
const workbenchConfig = await setupWorkbench(srcDir);
|
|
645
|
+
// Setup workbench configuration - evaluate fresh each time during builds
|
|
646
|
+
const workbenchConfig = await setupWorkbench(srcDir);
|
|
558
647
|
|
|
559
|
-
|
|
648
|
+
if (existsSync(indexFile)) {
|
|
649
|
+
inserts.push(`await (async () => {
|
|
560
650
|
const { serveStatic } = require('hono/bun');
|
|
561
651
|
const { getRouter, registerDevModeRoutes } = await import('@agentuity/runtime');
|
|
562
652
|
const router = getRouter()!;
|
|
@@ -600,6 +690,42 @@ const AgentuityBundler: BunPlugin = {
|
|
|
600
690
|
})();`);
|
|
601
691
|
}
|
|
602
692
|
|
|
693
|
+
// Add standalone agents (agents without routes) to agentInfo
|
|
694
|
+
// These agents can still be called by other agents or routes via ctx.agent
|
|
695
|
+
const registeredIdentifiers = new Set(agentInfo.map((a) => a.identifier));
|
|
696
|
+
for (const [identifier, md] of agentMetadata) {
|
|
697
|
+
if (!registeredIdentifiers.has(identifier)) {
|
|
698
|
+
// md.get('filename') can be either absolute or relative to rootDir
|
|
699
|
+
const filename = md.get('filename')!;
|
|
700
|
+
const absolutePath = filename.startsWith('/')
|
|
701
|
+
? filename
|
|
702
|
+
: join(rootDir, filename);
|
|
703
|
+
|
|
704
|
+
// Convert to path relative to srcDir like route-based agents
|
|
705
|
+
// e.g., /path/to/src/agents/lifecycle/agent.ts -> ./agents/lifecycle/agent
|
|
706
|
+
const agentPath = absolutePath.replace(srcDir, '.').replace('.ts', '');
|
|
707
|
+
|
|
708
|
+
// Extract folder name as agent name (same as route-based logic)
|
|
709
|
+
const folderName = basename(dirname(absolutePath));
|
|
710
|
+
|
|
711
|
+
const { isSubagent, parentName } = detectSubagent(absolutePath, srcDir);
|
|
712
|
+
|
|
713
|
+
const agentDetail: Record<string, string> = {
|
|
714
|
+
name: folderName,
|
|
715
|
+
id: md.get('id')!,
|
|
716
|
+
path: agentPath,
|
|
717
|
+
filename: absolutePath,
|
|
718
|
+
identifier: md.get('identifier')!,
|
|
719
|
+
description: md.get('description') ?? '',
|
|
720
|
+
agentId: md.get('agentId')!,
|
|
721
|
+
};
|
|
722
|
+
if (isSubagent && parentName) {
|
|
723
|
+
agentDetail.parent = parentName;
|
|
724
|
+
}
|
|
725
|
+
agentInfo.push(agentDetail);
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
|
|
603
729
|
// Only generate registry if there are agents
|
|
604
730
|
// Note: We don't import the registry here because:
|
|
605
731
|
// 1. Evals are already imported when agents are registered (see line 421-422)
|
|
@@ -607,34 +733,53 @@ const AgentuityBundler: BunPlugin = {
|
|
|
607
733
|
// 3. Importing it causes bundler resolution issues since it's generated during build
|
|
608
734
|
generateAgentRegistry(srcDir, agentInfo);
|
|
609
735
|
|
|
610
|
-
//
|
|
611
|
-
|
|
736
|
+
// Generate lifecycle types if setup() is present in app.ts
|
|
737
|
+
await setupLifecycleTypes(rootDir, outDir, srcDir, logger);
|
|
738
|
+
|
|
739
|
+
// Only create the workbench metadata route if workbench is actually configured
|
|
740
|
+
if (workbenchConfig) {
|
|
741
|
+
inserts.push(`await (async() => {
|
|
612
742
|
const { createWorkbenchMetadataRoute, getRouter } = await import('@agentuity/runtime');
|
|
613
743
|
const router = getRouter()!;
|
|
614
744
|
router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
|
|
615
745
|
})();`);
|
|
746
|
+
}
|
|
616
747
|
|
|
617
748
|
const file = Bun.file(args.path);
|
|
618
749
|
let contents = await file.text();
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
750
|
+
// Use AST-based parsing to reliably find createApp statement end
|
|
751
|
+
const insertPos = findCreateAppEndPosition(contents);
|
|
752
|
+
|
|
753
|
+
// Add initialization call after all agent registrations
|
|
754
|
+
const setupCall = `
|
|
755
|
+
// Initialize providers and run agent setup callbacks after all agents are registered
|
|
756
|
+
await (async() => {
|
|
757
|
+
const { runAgentSetups, getThreadProvider, getSessionProvider, getAppState } = await import('@agentuity/runtime');
|
|
758
|
+
|
|
759
|
+
const threadProvider = getThreadProvider();
|
|
760
|
+
const sessionProvider = getSessionProvider();
|
|
761
|
+
|
|
762
|
+
const state = getAppState();
|
|
763
|
+
|
|
764
|
+
// Initialize providers first
|
|
765
|
+
await threadProvider.initialize(state);
|
|
766
|
+
await sessionProvider.initialize(state);
|
|
767
|
+
|
|
768
|
+
// Then run agent setups
|
|
769
|
+
await runAgentSetups(state);
|
|
770
|
+
})();`;
|
|
771
|
+
|
|
772
|
+
if (insertPos > 0) {
|
|
629
773
|
contents =
|
|
630
|
-
contents.slice(0,
|
|
774
|
+
contents.slice(0, insertPos) +
|
|
631
775
|
'\n\n' +
|
|
632
776
|
inserts.join('\n') +
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
|
|
777
|
+
setupCall +
|
|
778
|
+
contents.slice(insertPos);
|
|
779
|
+
} else {
|
|
780
|
+
// Fallback: append to end if AST parsing fails
|
|
781
|
+
logger.warn('Could not find createApp in AST, appending code to end of file');
|
|
782
|
+
contents += `\n${inserts.join('\n')}${setupCall}`;
|
|
638
783
|
}
|
|
639
784
|
|
|
640
785
|
// generate the build metadata
|
|
@@ -649,22 +794,40 @@ const AgentuityBundler: BunPlugin = {
|
|
|
649
794
|
|
|
650
795
|
for (const [, v] of agentMetadata) {
|
|
651
796
|
if (!v.has('filename')) {
|
|
652
|
-
throw new
|
|
797
|
+
throw new MetadataPropertyMissingError({
|
|
798
|
+
name: 'filename',
|
|
799
|
+
message: 'agent metadata is missing expected filename property',
|
|
800
|
+
});
|
|
653
801
|
}
|
|
654
802
|
if (!v.has('id')) {
|
|
655
|
-
throw new
|
|
803
|
+
throw new MetadataPropertyMissingError({
|
|
804
|
+
name: 'id',
|
|
805
|
+
message: 'agent metadata is missing expected id property',
|
|
806
|
+
});
|
|
656
807
|
}
|
|
657
808
|
if (!v.has('identifier')) {
|
|
658
|
-
throw new
|
|
809
|
+
throw new MetadataPropertyMissingError({
|
|
810
|
+
name: 'identifier',
|
|
811
|
+
message: 'agent metadata is missing expected identifier property',
|
|
812
|
+
});
|
|
659
813
|
}
|
|
660
814
|
if (!v.has('version')) {
|
|
661
|
-
throw new
|
|
815
|
+
throw new MetadataPropertyMissingError({
|
|
816
|
+
name: 'version',
|
|
817
|
+
message: 'agent metadata is missing expected version property',
|
|
818
|
+
});
|
|
662
819
|
}
|
|
663
820
|
if (!v.has('name')) {
|
|
664
|
-
throw new
|
|
821
|
+
throw new MetadataPropertyMissingError({
|
|
822
|
+
name: 'name',
|
|
823
|
+
message: 'agent metadata is missing expected name property',
|
|
824
|
+
});
|
|
665
825
|
}
|
|
666
826
|
if (!v.has('agentId')) {
|
|
667
|
-
throw new
|
|
827
|
+
throw new MetadataPropertyMissingError({
|
|
828
|
+
name: 'agentId',
|
|
829
|
+
message: 'agent metadata is missing expected agentId property',
|
|
830
|
+
});
|
|
668
831
|
}
|
|
669
832
|
|
|
670
833
|
const parentName = v.get('parent');
|
|
@@ -687,10 +850,11 @@ const AgentuityBundler: BunPlugin = {
|
|
|
687
850
|
);
|
|
688
851
|
if (!parentExists) {
|
|
689
852
|
const subagentPaths = subagents.map((s) => s.get('filename')).join(', ');
|
|
690
|
-
throw new
|
|
691
|
-
|
|
692
|
-
`
|
|
693
|
-
|
|
853
|
+
throw new SubAgentMissingError({
|
|
854
|
+
message:
|
|
855
|
+
`Subagent(s) [${subagentPaths}] reference parent "${parentName}" which does not exist. ` +
|
|
856
|
+
`Ensure the parent agent is defined.`,
|
|
857
|
+
});
|
|
694
858
|
}
|
|
695
859
|
}
|
|
696
860
|
|
|
@@ -794,7 +958,7 @@ const AgentuityBundler: BunPlugin = {
|
|
|
794
958
|
metadata.agents!.push(agentData);
|
|
795
959
|
}
|
|
796
960
|
|
|
797
|
-
const routeMappingJSFile = Bun.file(join(
|
|
961
|
+
const routeMappingJSFile = Bun.file(join(outDir, '.routemapping.json'));
|
|
798
962
|
await routeMappingJSFile.write(JSON.stringify(routeMapping));
|
|
799
963
|
|
|
800
964
|
return {
|
|
@@ -11,8 +11,11 @@ export const getSubcommand = createSubcommand({
|
|
|
11
11
|
description: 'Get details about a specific agent',
|
|
12
12
|
requires: { auth: true, apiClient: true, project: true },
|
|
13
13
|
examples: [
|
|
14
|
-
getCommand('cloud agent get agent_abc123'),
|
|
15
|
-
|
|
14
|
+
{ command: getCommand('cloud agent get agent_abc123'), description: 'Get item details' },
|
|
15
|
+
{
|
|
16
|
+
command: getCommand('--json cloud agent get agent_abc123'),
|
|
17
|
+
description: 'Show output in JSON format',
|
|
18
|
+
},
|
|
16
19
|
],
|
|
17
20
|
schema: {
|
|
18
21
|
args: z.object({
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { createCommand } from '../../../types';
|
|
2
2
|
import { listSubcommand } from './list';
|
|
3
3
|
import { getSubcommand } from './get';
|
|
4
|
+
import { getCommand } from '../../../command-prefix';
|
|
4
5
|
|
|
5
6
|
export const agentCommand = createCommand({
|
|
6
7
|
name: 'agent',
|
|
7
8
|
description: 'Manage agents',
|
|
8
9
|
aliases: ['agents'],
|
|
9
10
|
tags: ['read-only', 'fast', 'requires-auth'],
|
|
11
|
+
examples: [
|
|
12
|
+
{ command: getCommand('cloud agent list'), description: 'List all agents' },
|
|
13
|
+
{ command: getCommand('cloud agent get <id>'), description: 'Get agent details' },
|
|
14
|
+
],
|
|
10
15
|
subcommands: [listSubcommand, getSubcommand],
|
|
11
16
|
});
|
|
@@ -13,9 +13,9 @@ export const listSubcommand = createSubcommand({
|
|
|
13
13
|
aliases: ['ls'],
|
|
14
14
|
requires: { auth: true, apiClient: true, project: true },
|
|
15
15
|
examples: [
|
|
16
|
-
getCommand('cloud agent list'),
|
|
17
|
-
getCommand('cloud agent list --verbose'),
|
|
18
|
-
getCommand('--json cloud agent list'),
|
|
16
|
+
{ command: getCommand('cloud agent list'), description: 'List items' },
|
|
17
|
+
{ command: getCommand('cloud agent list --verbose'), description: 'Use verbose option' },
|
|
18
|
+
{ command: getCommand('--json cloud agent list'), description: 'Show output in JSON format' },
|
|
19
19
|
],
|
|
20
20
|
schema: {
|
|
21
21
|
options: z.object({
|
|
@@ -16,11 +16,20 @@ export const createSubcommand = createSubcommandHelper({
|
|
|
16
16
|
description: 'Create a new API key',
|
|
17
17
|
tags: ['destructive', 'creates-resource', 'slow', 'requires-auth'],
|
|
18
18
|
examples: [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
{
|
|
20
|
+
command: getCommand('cloud apikey create --name "My API Key" --expires-at 1y'),
|
|
21
|
+
description: 'Create API key with 1 year expiration',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
command: getCommand('cloud apikey create --name "Short-lived Key" --expires-at 30d'),
|
|
25
|
+
description: 'Create API key with 30 day expiration',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
command: getCommand(
|
|
29
|
+
'cloud apikey create --name "Production Key" --expires-at 2026-01-01T00:00:00Z --confirm'
|
|
30
|
+
),
|
|
31
|
+
description: 'Create API key with specific date and skip confirmation',
|
|
32
|
+
},
|
|
24
33
|
],
|
|
25
34
|
requires: { auth: true, apiClient: true, org: true },
|
|
26
35
|
optional: { project: true },
|
|
@@ -17,9 +17,9 @@ export const deleteSubcommand = createSubcommand({
|
|
|
17
17
|
tags: ['destructive', 'deletes-resource', 'slow', 'requires-auth'],
|
|
18
18
|
idempotent: true,
|
|
19
19
|
examples: [
|
|
20
|
-
getCommand('cloud apikey delete <id>'),
|
|
21
|
-
getCommand('cloud apikey del <id>'),
|
|
22
|
-
getCommand('cloud apikey rm <id>'),
|
|
20
|
+
{ command: getCommand('cloud apikey delete <id>'), description: 'Delete item' },
|
|
21
|
+
{ command: getCommand('cloud apikey del <id>'), description: 'Run <id> command' },
|
|
22
|
+
{ command: getCommand('cloud apikey rm <id>'), description: 'Delete item' },
|
|
23
23
|
],
|
|
24
24
|
requires: { auth: true, apiClient: true },
|
|
25
25
|
schema: {
|
|
@@ -9,7 +9,7 @@ export const getSubcommand = createSubcommand({
|
|
|
9
9
|
name: 'get',
|
|
10
10
|
description: 'Get a specific API key by id',
|
|
11
11
|
tags: ['read-only', 'fast', 'requires-auth'],
|
|
12
|
-
examples: [getCommand('cloud apikey get <id>')],
|
|
12
|
+
examples: [{ command: getCommand('cloud apikey get <id>'), description: 'Get item details' }],
|
|
13
13
|
requires: { auth: true, apiClient: true },
|
|
14
14
|
idempotent: true,
|
|
15
15
|
schema: {
|
|
@@ -3,11 +3,19 @@ import { createSubcommand } from './create';
|
|
|
3
3
|
import { listSubcommand } from './list';
|
|
4
4
|
import { getSubcommand } from './get';
|
|
5
5
|
import { deleteSubcommand } from './delete';
|
|
6
|
+
import { getCommand } from '../../../command-prefix';
|
|
6
7
|
|
|
7
8
|
export const command = createCommand({
|
|
8
9
|
name: 'apikey',
|
|
9
10
|
description: 'Manage API keys',
|
|
10
11
|
tags: ['fast', 'requires-auth'],
|
|
12
|
+
examples: [
|
|
13
|
+
{ command: getCommand('cloud apikey list'), description: 'List all API keys' },
|
|
14
|
+
{
|
|
15
|
+
command: getCommand('cloud apikey create --name "My Key" --expires-at 1y'),
|
|
16
|
+
description: 'Create new API key',
|
|
17
|
+
},
|
|
18
|
+
],
|
|
11
19
|
subcommands: [createSubcommand, listSubcommand, getSubcommand, deleteSubcommand],
|
|
12
20
|
});
|
|
13
21
|
export default command;
|
|
@@ -9,7 +9,10 @@ export const listSubcommand = createSubcommand({
|
|
|
9
9
|
aliases: ['ls'],
|
|
10
10
|
description: 'List all API keys',
|
|
11
11
|
tags: ['read-only', 'fast', 'requires-auth'],
|
|
12
|
-
examples: [
|
|
12
|
+
examples: [
|
|
13
|
+
{ command: getCommand('cloud apikey list'), description: 'List items' },
|
|
14
|
+
{ command: getCommand('cloud apikey ls'), description: 'List items' },
|
|
15
|
+
],
|
|
13
16
|
requires: { auth: true, apiClient: true },
|
|
14
17
|
idempotent: true,
|
|
15
18
|
schema: {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { createResources } from '@agentuity/server';
|
|
2
|
+
import { createResources, APIError } from '@agentuity/server';
|
|
3
3
|
import { createSubcommand as defineSubcommand } from '../../../types';
|
|
4
4
|
import * as tui from '../../../tui';
|
|
5
5
|
import { getCatalystAPIClient } from '../../../config';
|
|
6
6
|
import { getCommand } from '../../../command-prefix';
|
|
7
7
|
import { isDryRunMode, outputDryRun } from '../../../explain';
|
|
8
|
+
import { ErrorCode } from '../../../errors';
|
|
8
9
|
|
|
9
10
|
export const createSubcommand = defineSubcommand({
|
|
10
11
|
name: 'create',
|
|
@@ -14,9 +15,10 @@ export const createSubcommand = defineSubcommand({
|
|
|
14
15
|
idempotent: false,
|
|
15
16
|
requires: { auth: true, org: true, region: true },
|
|
16
17
|
examples: [
|
|
17
|
-
getCommand('cloud db create'),
|
|
18
|
-
getCommand('cloud db new'),
|
|
19
|
-
getCommand('
|
|
18
|
+
{ command: getCommand('cloud db create'), description: 'Create new item' },
|
|
19
|
+
{ command: getCommand('cloud db new'), description: 'Run new command' },
|
|
20
|
+
{ command: getCommand('cloud db create --name my-db'), description: 'Create new item' },
|
|
21
|
+
{ command: getCommand('--dry-run cloud db create'), description: 'Create new item' },
|
|
20
22
|
],
|
|
21
23
|
schema: {
|
|
22
24
|
options: z.object({
|
|
@@ -49,24 +51,37 @@ export const createSubcommand = defineSubcommand({
|
|
|
49
51
|
|
|
50
52
|
const catalystClient = getCatalystAPIClient(config, logger, auth);
|
|
51
53
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
54
|
+
try {
|
|
55
|
+
const created = await tui.spinner({
|
|
56
|
+
message: `Creating database in ${region}`,
|
|
57
|
+
clearOnSuccess: true,
|
|
58
|
+
callback: async () => {
|
|
59
|
+
return await createResources(catalystClient, orgId, region!, [
|
|
60
|
+
{ type: 'db', name: opts.name },
|
|
61
|
+
]);
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
if (created.length > 0) {
|
|
65
|
+
if (!options.json) {
|
|
66
|
+
tui.success(`Created database: ${tui.bold(created[0].name)}`);
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
success: true,
|
|
70
|
+
name: created[0].name,
|
|
71
|
+
};
|
|
72
|
+
} else {
|
|
73
|
+
tui.fatal('Failed to create database');
|
|
74
|
+
}
|
|
75
|
+
} catch (ex) {
|
|
76
|
+
if (ex instanceof APIError) {
|
|
77
|
+
if (ex.status === 409) {
|
|
78
|
+
tui.fatal(
|
|
79
|
+
`database with the name "${opts.name}" already exists. Use another name or don't specify --name for a unique name to be generated automatically.`,
|
|
80
|
+
ErrorCode.INVALID_ARGUMENT
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
throw ex;
|
|
70
85
|
}
|
|
71
86
|
},
|
|
72
87
|
});
|