@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
|
@@ -13,12 +13,21 @@ export const deleteSubcommand = createSubcommand({
|
|
|
13
13
|
requires: { auth: true, apiClient: true },
|
|
14
14
|
idempotent: false,
|
|
15
15
|
examples: [
|
|
16
|
-
getCommand('project delete'),
|
|
17
|
-
getCommand('project delete proj_abc123def456'),
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
{ command: getCommand('project delete'), description: 'Delete item' },
|
|
17
|
+
{ command: getCommand('project delete proj_abc123def456'), description: 'Delete item' },
|
|
18
|
+
{
|
|
19
|
+
command: getCommand('project delete proj_abc123def456 --confirm'),
|
|
20
|
+
description: 'Use confirm option',
|
|
21
|
+
},
|
|
22
|
+
{ command: getCommand('project rm proj_abc123def456'), description: 'Delete item' },
|
|
23
|
+
{
|
|
24
|
+
command: getCommand('--explain project delete proj_abc123def456'),
|
|
25
|
+
description: 'Delete item',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
command: getCommand('--dry-run project delete proj_abc123def456'),
|
|
29
|
+
description: 'Delete item',
|
|
30
|
+
},
|
|
22
31
|
],
|
|
23
32
|
schema: {
|
|
24
33
|
args: z.object({
|
|
@@ -13,9 +13,13 @@ import { tmpdir } from 'node:os';
|
|
|
13
13
|
import { finished } from 'node:stream/promises';
|
|
14
14
|
import { createGunzip } from 'node:zlib';
|
|
15
15
|
import { extract, type Headers } from 'tar-fs';
|
|
16
|
-
import type
|
|
16
|
+
import { StructuredError, type Logger } from '@agentuity/core';
|
|
17
17
|
import * as tui from '../../tui';
|
|
18
18
|
import { downloadWithSpinner } from '../../download';
|
|
19
|
+
import { generateLLMPrompt as generateCLIPrompt } from '../ai/prompt/llm';
|
|
20
|
+
import { generateLLMPrompt as generateAgentPrompt } from '../ai/prompt/agent';
|
|
21
|
+
import { generateLLMPrompt as generateWebPrompt } from '../ai/prompt/web';
|
|
22
|
+
import { generateLLMPrompt as generateAPIPrompt } from '../ai/prompt/api';
|
|
19
23
|
import type { TemplateInfo } from './templates';
|
|
20
24
|
|
|
21
25
|
const GITHUB_REPO = 'agentuity/sdk';
|
|
@@ -38,9 +42,16 @@ interface SetupOptions {
|
|
|
38
42
|
logger: Logger;
|
|
39
43
|
}
|
|
40
44
|
|
|
45
|
+
const TemplateDirectoryNotFoundError = StructuredError('TemplateDirectoryNotFoundError')<{
|
|
46
|
+
directory: string;
|
|
47
|
+
}>();
|
|
48
|
+
|
|
41
49
|
async function cleanup(sourceDir: string, dest: string) {
|
|
42
50
|
if (!existsSync(sourceDir)) {
|
|
43
|
-
throw new
|
|
51
|
+
throw new TemplateDirectoryNotFoundError({
|
|
52
|
+
directory: sourceDir,
|
|
53
|
+
message: `Template directory not found: ${sourceDir}`,
|
|
54
|
+
});
|
|
44
55
|
}
|
|
45
56
|
|
|
46
57
|
tui.spinner(`📦 Copying template files...`, async () => {
|
|
@@ -68,7 +79,10 @@ export async function downloadTemplate(options: DownloadOptions): Promise<void>
|
|
|
68
79
|
const sourceDir = resolve(join(templateDir, template.directory));
|
|
69
80
|
|
|
70
81
|
if (!existsSync(sourceDir)) {
|
|
71
|
-
throw new
|
|
82
|
+
throw new TemplateDirectoryNotFoundError({
|
|
83
|
+
directory: sourceDir,
|
|
84
|
+
message: `Template directory not found: ${sourceDir}`,
|
|
85
|
+
});
|
|
72
86
|
}
|
|
73
87
|
|
|
74
88
|
return cleanup(sourceDir, dest);
|
|
@@ -258,6 +272,33 @@ export async function setupProject(options: SetupOptions): Promise<void> {
|
|
|
258
272
|
clearOnSuccess: true,
|
|
259
273
|
});
|
|
260
274
|
}
|
|
275
|
+
|
|
276
|
+
// generate and write the AGENTS.md for the cli
|
|
277
|
+
const cliDir = join(dest, 'node_modules', '@agentuity', 'cli');
|
|
278
|
+
if (existsSync(cliDir)) {
|
|
279
|
+
const agentFile = join(cliDir, 'AGENTS.md');
|
|
280
|
+
const prompt = generateCLIPrompt();
|
|
281
|
+
await Bun.write(agentFile, prompt);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// generate and write AGENTS.md for each of the main folders
|
|
285
|
+
const agentsDir = join(dest, 'src', 'agents');
|
|
286
|
+
if (existsSync(agentsDir)) {
|
|
287
|
+
const agentsAPIFile = join(agentsDir, 'AGENTS.md');
|
|
288
|
+
await Bun.write(agentsAPIFile, generateAgentPrompt());
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const apisDir = join(dest, 'src', 'apis');
|
|
292
|
+
if (existsSync(apisDir)) {
|
|
293
|
+
const agentsAPIsFile = join(apisDir, 'AGENTS.md');
|
|
294
|
+
await Bun.write(agentsAPIsFile, generateAPIPrompt());
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
const webDir = join(dest, 'src', 'web');
|
|
298
|
+
if (existsSync(webDir)) {
|
|
299
|
+
const agentsWebFile = join(webDir, 'AGENTS.md');
|
|
300
|
+
await Bun.write(agentsWebFile, generateWebPrompt());
|
|
301
|
+
}
|
|
261
302
|
}
|
|
262
303
|
|
|
263
304
|
async function replaceInFiles(dir: string, projectName: string, dirName: string): Promise<void> {
|
package/src/cmd/project/index.ts
CHANGED
|
@@ -3,10 +3,15 @@ import { createProjectSubcommand } from './create';
|
|
|
3
3
|
import { listSubcommand } from './list';
|
|
4
4
|
import { deleteSubcommand } from './delete';
|
|
5
5
|
import { showSubcommand } from './show';
|
|
6
|
+
import { getCommand } from '../../command-prefix';
|
|
6
7
|
|
|
7
8
|
export const command = createCommand({
|
|
8
9
|
name: 'project',
|
|
9
10
|
description: 'Project related commands',
|
|
10
11
|
tags: ['fast', 'requires-auth'],
|
|
12
|
+
examples: [
|
|
13
|
+
{ command: getCommand('project create my-agent'), description: 'Create a new project' },
|
|
14
|
+
{ command: getCommand('project list'), description: 'List all projects' },
|
|
15
|
+
],
|
|
11
16
|
subcommands: [createProjectSubcommand, listSubcommand, deleteSubcommand, showSubcommand],
|
|
12
17
|
});
|
package/src/cmd/project/list.ts
CHANGED
|
@@ -24,9 +24,12 @@ export const listSubcommand = createSubcommand({
|
|
|
24
24
|
response: ProjectListResponseSchema,
|
|
25
25
|
},
|
|
26
26
|
examples: [
|
|
27
|
-
getCommand('project list'),
|
|
28
|
-
getCommand('--json project list'),
|
|
29
|
-
|
|
27
|
+
{ command: getCommand('project list'), description: 'List projects (human-readable)' },
|
|
28
|
+
{ command: getCommand('--json project list'), description: 'List projects in JSON format' },
|
|
29
|
+
{
|
|
30
|
+
command: getCommand('project ls'),
|
|
31
|
+
description: 'Alias for "project list" — list projects (human-readable)',
|
|
32
|
+
},
|
|
30
33
|
],
|
|
31
34
|
|
|
32
35
|
async handler(ctx) {
|
package/src/cmd/project/show.ts
CHANGED
|
@@ -19,9 +19,12 @@ export const showSubcommand = createSubcommand({
|
|
|
19
19
|
tags: ['read-only', 'fast', 'requires-auth', 'requires-project'],
|
|
20
20
|
requires: { auth: true, apiClient: true },
|
|
21
21
|
examples: [
|
|
22
|
-
getCommand('project show proj_abc123def456'),
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
{ command: getCommand('project show proj_abc123def456'), description: 'Show details' },
|
|
23
|
+
{
|
|
24
|
+
command: getCommand('--json project show proj_abc123def456'),
|
|
25
|
+
description: 'Show output in JSON format',
|
|
26
|
+
},
|
|
27
|
+
{ command: getCommand('project get proj_abc123def456'), description: 'Get item details' },
|
|
25
28
|
],
|
|
26
29
|
schema: {
|
|
27
30
|
args: z.object({
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { StructuredError } from '@agentuity/core';
|
|
2
|
+
|
|
1
3
|
const GITHUB_REPO = 'agentuity/sdk';
|
|
2
4
|
const GITHUB_BRANCH = 'main';
|
|
3
5
|
const TEMPLATES_JSON_PATH = 'templates/templates.json';
|
|
@@ -13,6 +15,9 @@ interface TemplatesManifest {
|
|
|
13
15
|
templates: TemplateInfo[];
|
|
14
16
|
}
|
|
15
17
|
|
|
18
|
+
const TemplateMissingConfigurationError = StructuredError('TemplateMissingConfigurationError');
|
|
19
|
+
const TemplateDownloadError = StructuredError('TemplateDownloadError')<{ status: number }>();
|
|
20
|
+
|
|
16
21
|
export async function fetchTemplates(localDir?: string, branch?: string): Promise<TemplateInfo[]> {
|
|
17
22
|
// Load from local directory if provided
|
|
18
23
|
if (localDir) {
|
|
@@ -22,7 +27,9 @@ export async function fetchTemplates(localDir?: string, branch?: string): Promis
|
|
|
22
27
|
const file = Bun.file(manifestPath);
|
|
23
28
|
|
|
24
29
|
if (!(await file.exists())) {
|
|
25
|
-
throw new
|
|
30
|
+
throw new TemplateMissingConfigurationError({
|
|
31
|
+
message: `templates.json not found at ${manifestPath}`,
|
|
32
|
+
});
|
|
26
33
|
}
|
|
27
34
|
|
|
28
35
|
const manifest = (await file.json()) as TemplatesManifest;
|
|
@@ -40,7 +47,10 @@ export async function fetchTemplates(localDir?: string, branch?: string): Promis
|
|
|
40
47
|
|
|
41
48
|
const response = await fetch(url, { headers });
|
|
42
49
|
if (!response.ok) {
|
|
43
|
-
throw new
|
|
50
|
+
throw new TemplateDownloadError({
|
|
51
|
+
status: response.status,
|
|
52
|
+
message: `Failed to fetch templates: ${response.statusText}`,
|
|
53
|
+
});
|
|
44
54
|
}
|
|
45
55
|
|
|
46
56
|
const manifest = (await response.json()) as TemplatesManifest;
|
package/src/cmd/repl/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ export const command = createCommand({
|
|
|
9
9
|
description: 'interactive REPL for testing',
|
|
10
10
|
tags: ['slow'],
|
|
11
11
|
idempotent: false,
|
|
12
|
-
examples: [getCommand('repl')],
|
|
12
|
+
examples: [{ command: getCommand('repl'), description: 'Run repl command' }],
|
|
13
13
|
|
|
14
14
|
async handler() {
|
|
15
15
|
// Define test commands
|
package/src/cmd/version/index.ts
CHANGED
|
@@ -11,7 +11,13 @@ export const command = createCommand({
|
|
|
11
11
|
name: 'version',
|
|
12
12
|
description: 'Display version information',
|
|
13
13
|
tags: ['read-only', 'fast'],
|
|
14
|
-
examples: [
|
|
14
|
+
examples: [
|
|
15
|
+
{ command: getCommand('version'), description: 'Show the CLI semantic version' },
|
|
16
|
+
{
|
|
17
|
+
command: getCommand('--version'),
|
|
18
|
+
description: 'Display the current installed CLI version and build metadata',
|
|
19
|
+
},
|
|
20
|
+
],
|
|
15
21
|
schema: {
|
|
16
22
|
response: VersionResponseSchema,
|
|
17
23
|
},
|
package/src/command-prefix.ts
CHANGED
|
@@ -17,11 +17,13 @@ export function getCommandPrefix(): string {
|
|
|
17
17
|
const scriptPath = process.argv[1] || '';
|
|
18
18
|
const normalized = path.normalize(scriptPath);
|
|
19
19
|
|
|
20
|
+
// If we have AGENTUITY_CLI_VERSION set we are running from compiled binary OR
|
|
20
21
|
// If the script is in node_modules/.bin or a global bin directory, it's likely global
|
|
21
22
|
const isGlobal =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
process.env.AGENTUITY_CLI_VERSION ||
|
|
24
|
+
(normalized.includes(`${path.sep}bin${path.sep}`) &&
|
|
25
|
+
!normalized.includes(`${path.sep}node_modules${path.sep}`) &&
|
|
26
|
+
!normalized.includes(path.join('packages', 'cli', 'bin')));
|
|
25
27
|
|
|
26
28
|
if (isGlobal) {
|
|
27
29
|
cachedPrefix = 'agentuity';
|
package/src/config.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { existsSync, mkdirSync } from 'node:fs';
|
|
3
|
-
import type
|
|
3
|
+
import { StructuredError, type Logger } from '@agentuity/core';
|
|
4
4
|
import {
|
|
5
5
|
BuildMetadataSchema,
|
|
6
6
|
type BuildMetadata,
|
|
@@ -609,11 +609,13 @@ export async function createProjectConfig(dir: string, config: InitialProjectCon
|
|
|
609
609
|
await Bun.write(join(vscodeDir, 'settings.json'), JSON.stringify(settings, null, 2));
|
|
610
610
|
}
|
|
611
611
|
|
|
612
|
+
const BuildMetadataNotFoundError = StructuredError('BuildMetadataNotFoundError');
|
|
613
|
+
|
|
612
614
|
export async function loadBuildMetadata(dir: string): Promise<BuildMetadata> {
|
|
613
615
|
const filename = join(dir, 'agentuity.metadata.json');
|
|
614
616
|
const file = Bun.file(filename);
|
|
615
617
|
if (!(await file.exists())) {
|
|
616
|
-
throw new
|
|
618
|
+
throw new BuildMetadataNotFoundError({ message: `couldn't find ${filename}` });
|
|
617
619
|
}
|
|
618
620
|
const buffer = await file.text();
|
|
619
621
|
const config = JSON.parse(buffer);
|
package/src/crypto/box.ts
CHANGED
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
import { createCipheriv, createDecipheriv, createECDH, randomBytes, KeyObject } from 'node:crypto';
|
|
63
63
|
import { Readable, Writable } from 'node:stream';
|
|
64
64
|
import { createHash } from 'node:crypto';
|
|
65
|
+
import { StructuredError } from '@agentuity/core';
|
|
65
66
|
|
|
66
67
|
const FRAME = 65519;
|
|
67
68
|
const DEK_SIZE = 32;
|
|
@@ -87,13 +88,64 @@ function concatKDFSHA256(z: Buffer, keyDataLen: number, ...otherInfo: Buffer[]):
|
|
|
87
88
|
return h.digest();
|
|
88
89
|
}
|
|
89
90
|
|
|
91
|
+
const InvalidECPublicKeyError = StructuredError('InvalidECPublicKeyError', 'Invalid EC public key');
|
|
92
|
+
const InvalidECPrivateKeyError = StructuredError(
|
|
93
|
+
'InvalidECPrivateKeyError',
|
|
94
|
+
'Invalid EC private key'
|
|
95
|
+
);
|
|
96
|
+
const InvalidDEKTooShortError = StructuredError(
|
|
97
|
+
'InvalidDEKTooShortError',
|
|
98
|
+
'Invalid DEK too short (wrapped)'
|
|
99
|
+
);
|
|
100
|
+
const InvalidDEKFormatError = StructuredError(
|
|
101
|
+
'InvalidDEKFormatError',
|
|
102
|
+
'Invalid DEK format (wrapped)'
|
|
103
|
+
);
|
|
104
|
+
const DEKUnwrappedFailedError = StructuredError('DEKUnwrappedFailedError', 'DEK unwrap failed');
|
|
105
|
+
|
|
106
|
+
const InvalidKeyECOnlyError = StructuredError(
|
|
107
|
+
'InvalidKeyECOnlyError',
|
|
108
|
+
'Invalid Key: only EC keys supported'
|
|
109
|
+
);
|
|
110
|
+
const InvalidKeyP256OnlyError = StructuredError(
|
|
111
|
+
'InvalidKeyP256OnlyError',
|
|
112
|
+
'Invalid Key: only P-256 keys supported'
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
const InvalidCipherTextLengthError = StructuredError(
|
|
116
|
+
'InvalidCipherTextLengthError',
|
|
117
|
+
'ciphertext length exceeds uint16 limit'
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
const InvalidWrappedDEKLengthError = StructuredError(
|
|
121
|
+
'InvalidWrappedDEKLengthError',
|
|
122
|
+
'invalid wrapped DEK length'
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
const UnexpectedEOFChunkLengthError = StructuredError(
|
|
126
|
+
'UnexpectedEOFChunkLengthError',
|
|
127
|
+
'unexpected EOF reading chunk length'
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
const UnexpectedChunkTooLargeError = StructuredError(
|
|
131
|
+
'UnexpectedChunkTooLargeError',
|
|
132
|
+
'chunk too large'
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
const UnexpectedChunkTooShortError = StructuredError(
|
|
136
|
+
'UnexpectedChunkTooShortError',
|
|
137
|
+
'chunk too short for auth tag'
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
const UnexpectedEOFError = StructuredError('UnexpectedEOFError', 'unexpected EOF');
|
|
141
|
+
|
|
90
142
|
function wrapDEKWithECDH(dek: Buffer, recipientPub: KeyObject): Buffer {
|
|
91
143
|
const ephemeral = createECDH('prime256v1');
|
|
92
144
|
ephemeral.generateKeys();
|
|
93
145
|
|
|
94
146
|
const jwk = recipientPub.export({ format: 'jwk' });
|
|
95
147
|
if (!jwk.x || !jwk.y) {
|
|
96
|
-
throw new
|
|
148
|
+
throw new InvalidECPublicKeyError();
|
|
97
149
|
}
|
|
98
150
|
|
|
99
151
|
const xBuf = Buffer.from(jwk.x, 'base64url');
|
|
@@ -116,7 +168,7 @@ function wrapDEKWithECDH(dek: Buffer, recipientPub: KeyObject): Buffer {
|
|
|
116
168
|
|
|
117
169
|
function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
|
|
118
170
|
if (wrapped.length < PUBKEY_LEN + 12 + DEK_SIZE + GCM_TAG) {
|
|
119
|
-
throw new
|
|
171
|
+
throw new InvalidDEKTooShortError();
|
|
120
172
|
}
|
|
121
173
|
|
|
122
174
|
const ephemeralPubBytes = wrapped.subarray(0, PUBKEY_LEN);
|
|
@@ -124,7 +176,7 @@ function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
|
|
|
124
176
|
|
|
125
177
|
const jwk = recipientPriv.export({ format: 'jwk' });
|
|
126
178
|
if (!jwk.d) {
|
|
127
|
-
throw new
|
|
179
|
+
throw new InvalidECPrivateKeyError();
|
|
128
180
|
}
|
|
129
181
|
|
|
130
182
|
const ecdh = createECDH('prime256v1');
|
|
@@ -139,14 +191,14 @@ function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
|
|
|
139
191
|
|
|
140
192
|
const nonceSize = 12;
|
|
141
193
|
if (remaining.length < nonceSize) {
|
|
142
|
-
throw new
|
|
194
|
+
throw new InvalidDEKFormatError();
|
|
143
195
|
}
|
|
144
196
|
|
|
145
197
|
const nonce = remaining.subarray(0, nonceSize);
|
|
146
198
|
const ciphertextAndTag = remaining.subarray(nonceSize);
|
|
147
199
|
|
|
148
200
|
if (ciphertextAndTag.length < GCM_TAG) {
|
|
149
|
-
throw new
|
|
201
|
+
throw new InvalidDEKFormatError();
|
|
150
202
|
}
|
|
151
203
|
|
|
152
204
|
const ciphertext = ciphertextAndTag.subarray(0, ciphertextAndTag.length - GCM_TAG);
|
|
@@ -158,8 +210,8 @@ function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
|
|
|
158
210
|
let plaintext: Buffer;
|
|
159
211
|
try {
|
|
160
212
|
plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
161
|
-
} catch (
|
|
162
|
-
throw new
|
|
213
|
+
} catch (err) {
|
|
214
|
+
throw new DEKUnwrappedFailedError({ cause: err });
|
|
163
215
|
}
|
|
164
216
|
|
|
165
217
|
kek.fill(0);
|
|
@@ -182,11 +234,11 @@ export async function encryptFIPSKEMDEMStream(
|
|
|
182
234
|
dst: Writable
|
|
183
235
|
): Promise<number> {
|
|
184
236
|
if (pub.asymmetricKeyType !== 'ec') {
|
|
185
|
-
throw new
|
|
237
|
+
throw new InvalidKeyECOnlyError();
|
|
186
238
|
}
|
|
187
239
|
const keyDetails = pub.asymmetricKeyDetails;
|
|
188
240
|
if (!keyDetails || keyDetails.namedCurve !== 'prime256v1') {
|
|
189
|
-
throw new
|
|
241
|
+
throw new InvalidKeyP256OnlyError();
|
|
190
242
|
}
|
|
191
243
|
|
|
192
244
|
const dek = randomBytes(DEK_SIZE);
|
|
@@ -234,7 +286,7 @@ export async function encryptFIPSKEMDEMStream(
|
|
|
234
286
|
const ct = Buffer.concat([ciphertext, tag]);
|
|
235
287
|
|
|
236
288
|
if (ct.length > 0xffff) {
|
|
237
|
-
throw new
|
|
289
|
+
throw new InvalidCipherTextLengthError();
|
|
238
290
|
}
|
|
239
291
|
|
|
240
292
|
const ctLenBuf = Buffer.alloc(2);
|
|
@@ -264,11 +316,11 @@ export async function decryptFIPSKEMDEMStream(
|
|
|
264
316
|
dst: Writable
|
|
265
317
|
): Promise<number> {
|
|
266
318
|
if (priv.asymmetricKeyType !== 'ec') {
|
|
267
|
-
throw new
|
|
319
|
+
throw new InvalidKeyECOnlyError();
|
|
268
320
|
}
|
|
269
321
|
const keyDetails = priv.asymmetricKeyDetails;
|
|
270
322
|
if (!keyDetails || keyDetails.namedCurve !== 'prime256v1') {
|
|
271
|
-
throw new
|
|
323
|
+
throw new InvalidKeyP256OnlyError();
|
|
272
324
|
}
|
|
273
325
|
|
|
274
326
|
const it = src[Symbol.asyncIterator]();
|
|
@@ -279,7 +331,7 @@ export async function decryptFIPSKEMDEMStream(
|
|
|
279
331
|
const wrappedLen = lenBuf.readUInt16BE(0);
|
|
280
332
|
|
|
281
333
|
if (wrappedLen === 0 || wrappedLen > 200) {
|
|
282
|
-
throw new
|
|
334
|
+
throw new InvalidWrappedDEKLengthError();
|
|
283
335
|
}
|
|
284
336
|
|
|
285
337
|
const wrapped = Buffer.alloc(wrappedLen);
|
|
@@ -305,19 +357,19 @@ export async function decryptFIPSKEMDEMStream(
|
|
|
305
357
|
break;
|
|
306
358
|
}
|
|
307
359
|
if (chunkLenRead < 2) {
|
|
308
|
-
throw new
|
|
360
|
+
throw new UnexpectedEOFChunkLengthError();
|
|
309
361
|
}
|
|
310
362
|
|
|
311
363
|
const chunkLen = chunkLenBuf.readUInt16BE(0);
|
|
312
364
|
if (chunkLen > FRAME + GCM_TAG) {
|
|
313
|
-
throw new
|
|
365
|
+
throw new UnexpectedChunkTooLargeError();
|
|
314
366
|
}
|
|
315
367
|
|
|
316
368
|
const cipherBuf = Buffer.alloc(chunkLen);
|
|
317
369
|
await readExact(it, src, cipherBuf);
|
|
318
370
|
|
|
319
371
|
if (cipherBuf.length < GCM_TAG) {
|
|
320
|
-
throw new
|
|
372
|
+
throw new UnexpectedChunkTooShortError();
|
|
321
373
|
}
|
|
322
374
|
|
|
323
375
|
const ciphertext = cipherBuf.subarray(0, cipherBuf.length - GCM_TAG);
|
|
@@ -438,7 +490,7 @@ async function readExact(
|
|
|
438
490
|
while (offset < buf.length) {
|
|
439
491
|
const result = await iterator.next();
|
|
440
492
|
if (result.done) {
|
|
441
|
-
throw new
|
|
493
|
+
throw new UnexpectedEOFError();
|
|
442
494
|
}
|
|
443
495
|
|
|
444
496
|
const chunk = result.value;
|
package/src/download.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Transform, Readable } from 'node:stream';
|
|
2
2
|
import * as tui from './tui';
|
|
3
|
+
import { APIError } from '@agentuity/server';
|
|
3
4
|
|
|
4
5
|
export interface DownloadOptions {
|
|
5
6
|
url: string;
|
|
@@ -25,7 +26,12 @@ export async function downloadWithProgress(
|
|
|
25
26
|
|
|
26
27
|
const response = await fetch(url, { headers: requestHeaders });
|
|
27
28
|
if (!response.ok) {
|
|
28
|
-
throw new
|
|
29
|
+
throw new APIError({
|
|
30
|
+
url,
|
|
31
|
+
status: response.status,
|
|
32
|
+
sessionId: response.headers.get('x-session-id'),
|
|
33
|
+
error: `Download failed: ${response.statusText}`,
|
|
34
|
+
});
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
const contentLength = parseInt(response.headers.get('content-length') || '0', 10);
|
package/src/env-util.ts
CHANGED
|
@@ -204,6 +204,9 @@ export function splitEnvAndSecrets(vars: EnvVars): {
|
|
|
204
204
|
|
|
205
205
|
/**
|
|
206
206
|
* Mask a secret value for display
|
|
207
|
+
* - For URLs with credentials: parses and masks username/password partially
|
|
208
|
+
* - For long strings: shows more context (first 6 and last 6 chars)
|
|
209
|
+
* - For short strings: shows generic masking
|
|
207
210
|
*/
|
|
208
211
|
export function maskSecret(value: string): string {
|
|
209
212
|
if (!value) {
|
|
@@ -214,8 +217,47 @@ export function maskSecret(value: string): string {
|
|
|
214
217
|
return '***';
|
|
215
218
|
}
|
|
216
219
|
|
|
217
|
-
//
|
|
218
|
-
|
|
220
|
+
// Try to parse as URL with credentials
|
|
221
|
+
try {
|
|
222
|
+
const url = new URL(value);
|
|
223
|
+
|
|
224
|
+
// If URL has username or password, mask them partially
|
|
225
|
+
if (url.username || url.password) {
|
|
226
|
+
let maskedAuth = '';
|
|
227
|
+
|
|
228
|
+
if (url.username) {
|
|
229
|
+
// Show first 2 and last 2 chars of username
|
|
230
|
+
const len = url.username.length;
|
|
231
|
+
if (len <= 4) {
|
|
232
|
+
maskedAuth = '***';
|
|
233
|
+
} else {
|
|
234
|
+
maskedAuth = `${url.username.slice(0, 2)}***${url.username.slice(-2)}`;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
if (url.password) {
|
|
239
|
+
// Show first 3 and last 3 chars of password
|
|
240
|
+
const len = url.password.length;
|
|
241
|
+
if (len <= 6) {
|
|
242
|
+
maskedAuth += ':***';
|
|
243
|
+
} else {
|
|
244
|
+
maskedAuth += `:${url.password.slice(0, 3)}***${url.password.slice(-3)}`;
|
|
245
|
+
}
|
|
246
|
+
} else if (url.username) {
|
|
247
|
+
// Username but no password
|
|
248
|
+
maskedAuth += ':***';
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Reconstruct URL with masked credentials
|
|
252
|
+
const maskedUrl = `${url.protocol}//${maskedAuth}@${url.host}${url.pathname}${url.search}${url.hash}`;
|
|
253
|
+
return maskedUrl;
|
|
254
|
+
}
|
|
255
|
+
} catch {
|
|
256
|
+
// Not a valid URL, fall through to regular masking
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// For long strings, show first 6 and last 6 characters for better context
|
|
260
|
+
return `${value.slice(0, 6)}...${value.slice(-6)}`;
|
|
219
261
|
}
|
|
220
262
|
|
|
221
263
|
/**
|
package/src/errors.ts
CHANGED
|
@@ -13,6 +13,7 @@ export enum ExitCode {
|
|
|
13
13
|
NETWORK_ERROR = 6,
|
|
14
14
|
FILE_ERROR = 7,
|
|
15
15
|
USER_CANCELLED = 8,
|
|
16
|
+
BUILD_FAILED = 9,
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -68,6 +69,9 @@ export enum ErrorCode {
|
|
|
68
69
|
|
|
69
70
|
// User cancellation
|
|
70
71
|
USER_CANCELLED = 'USER_CANCELLED',
|
|
72
|
+
|
|
73
|
+
// Build failed error
|
|
74
|
+
BUILD_FAILED = 'BUILD_FAILED',
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
/**
|
|
@@ -121,6 +125,10 @@ export function getExitCode(errorCode: ErrorCode): ExitCode {
|
|
|
121
125
|
case ErrorCode.USER_CANCELLED:
|
|
122
126
|
return ExitCode.USER_CANCELLED;
|
|
123
127
|
|
|
128
|
+
// Build errors
|
|
129
|
+
case ErrorCode.BUILD_FAILED:
|
|
130
|
+
return ExitCode.BUILD_FAILED;
|
|
131
|
+
|
|
124
132
|
// Resource conflicts and other errors
|
|
125
133
|
case ErrorCode.RESOURCE_ALREADY_EXISTS:
|
|
126
134
|
case ErrorCode.RESOURCE_CONFLICT:
|
|
@@ -203,7 +211,7 @@ export function exitWithError(
|
|
|
203
211
|
if (errorFormat === 'json') {
|
|
204
212
|
console.error(formatErrorJSON(error));
|
|
205
213
|
} else {
|
|
206
|
-
|
|
214
|
+
logger.error(formatErrorHuman(error));
|
|
207
215
|
}
|
|
208
216
|
const exitCode = error.exitCode ?? getExitCode(error.code);
|
|
209
217
|
process.exit(exitCode);
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export { createCLI, registerCommands } from './cli';
|
|
2
2
|
export { validateRuntime, isBun } from './runtime';
|
|
3
|
-
export {
|
|
3
|
+
export {
|
|
4
|
+
generateCLISchema,
|
|
5
|
+
type CLISchema,
|
|
6
|
+
type SchemaCommand,
|
|
7
|
+
type SchemaExample,
|
|
8
|
+
} from './schema-generator';
|
|
4
9
|
export {
|
|
5
10
|
ErrorCode,
|
|
6
11
|
createError,
|
package/src/schema-generator.ts
CHANGED
|
@@ -31,13 +31,18 @@ export interface SchemaPagination {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
export interface SchemaExample {
|
|
35
|
+
command: string;
|
|
36
|
+
description: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
34
39
|
export interface SchemaCommand {
|
|
35
40
|
name: string;
|
|
36
41
|
description: string;
|
|
37
42
|
aliases?: string[];
|
|
38
43
|
arguments?: SchemaArgument[];
|
|
39
44
|
options?: SchemaOption[];
|
|
40
|
-
examples?:
|
|
45
|
+
examples?: SchemaExample[];
|
|
41
46
|
response?: unknown;
|
|
42
47
|
idempotent?: boolean;
|
|
43
48
|
prerequisites?: string[];
|
|
@@ -280,6 +285,7 @@ export function generateCLISchema(
|
|
|
280
285
|
6: 'Network error (API unreachable or timeout)',
|
|
281
286
|
7: 'File system error (file read/write failed)',
|
|
282
287
|
8: 'User cancelled (operation aborted by user)',
|
|
288
|
+
9: 'Build failed',
|
|
283
289
|
},
|
|
284
290
|
globalOptions: [
|
|
285
291
|
{
|