@agentuity/cli 0.1.20 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cmd/auth/index.d.ts.map +1 -1
- package/dist/cmd/auth/index.js +2 -0
- package/dist/cmd/auth/index.js.map +1 -1
- package/dist/cmd/auth/machine/index.d.ts +2 -0
- package/dist/cmd/auth/machine/index.d.ts.map +1 -0
- package/dist/cmd/auth/machine/index.js +16 -0
- package/dist/cmd/auth/machine/index.js.map +1 -0
- package/dist/cmd/auth/machine/setup.d.ts +2 -0
- package/dist/cmd/auth/machine/setup.d.ts.map +1 -0
- package/dist/cmd/auth/machine/setup.js +87 -0
- package/dist/cmd/auth/machine/setup.js.map +1 -0
- package/dist/cmd/cloud/db/index.js +1 -1
- package/dist/cmd/cloud/db/index.js.map +1 -1
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +2 -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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/keys.js +2 -1
- 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 +2 -1
- package/dist/cmd/cloud/keyvalue/list-namespaces.js.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 +2 -1
- 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 +2 -1
- 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 +2 -1
- package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.d.ts +5 -6
- package/dist/cmd/cloud/keyvalue/util.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.js +8 -4
- package/dist/cmd/cloud/keyvalue/util.js.map +1 -1
- package/dist/cmd/cloud/machine/delete.d.ts +2 -0
- package/dist/cmd/cloud/machine/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/machine/delete.js +84 -0
- package/dist/cmd/cloud/machine/delete.js.map +1 -0
- package/dist/cmd/cloud/machine/deployments.d.ts +2 -0
- package/dist/cmd/cloud/machine/deployments.d.ts.map +1 -0
- package/dist/cmd/cloud/machine/deployments.js +86 -0
- package/dist/cmd/cloud/machine/deployments.js.map +1 -0
- package/dist/cmd/cloud/machine/get.d.ts +2 -0
- package/dist/cmd/cloud/machine/get.d.ts.map +1 -0
- package/dist/cmd/cloud/machine/get.js +104 -0
- package/dist/cmd/cloud/machine/get.js.map +1 -0
- package/dist/cmd/cloud/machine/index.d.ts +2 -0
- package/dist/cmd/cloud/machine/index.d.ts.map +1 -0
- package/dist/cmd/cloud/machine/index.js +22 -0
- package/dist/cmd/cloud/machine/index.js.map +1 -0
- package/dist/cmd/cloud/machine/list.d.ts +2 -0
- package/dist/cmd/cloud/machine/list.d.ts.map +1 -0
- package/dist/cmd/cloud/machine/list.js +73 -0
- package/dist/cmd/cloud/machine/list.js.map +1 -0
- package/dist/cmd/cloud/queue/index.js +1 -1
- package/dist/cmd/cloud/queue/index.js.map +1 -1
- package/dist/cmd/cloud/redis/index.js +1 -1
- package/dist/cmd/cloud/redis/index.js.map +1 -1
- package/dist/cmd/cloud/sandbox/index.js +1 -1
- package/dist/cmd/cloud/sandbox/index.js.map +1 -1
- package/dist/cmd/cloud/storage/index.js +1 -1
- package/dist/cmd/cloud/storage/index.js.map +1 -1
- package/dist/cmd/cloud/stream/index.js +1 -1
- package/dist/cmd/cloud/stream/index.js.map +1 -1
- package/dist/cmd/cloud/vector/delete-namespace.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/delete-namespace.js +2 -1
- package/dist/cmd/cloud/vector/delete-namespace.js.map +1 -1
- package/dist/cmd/cloud/vector/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/delete.js +2 -1
- 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 +2 -1
- package/dist/cmd/cloud/vector/get.js.map +1 -1
- package/dist/cmd/cloud/vector/index.js +1 -1
- package/dist/cmd/cloud/vector/index.js.map +1 -1
- package/dist/cmd/cloud/vector/list-namespaces.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/list-namespaces.js +2 -1
- package/dist/cmd/cloud/vector/list-namespaces.js.map +1 -1
- package/dist/cmd/cloud/vector/search.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/search.js +2 -1
- package/dist/cmd/cloud/vector/search.js.map +1 -1
- package/dist/cmd/cloud/vector/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/stats.js +2 -1
- package/dist/cmd/cloud/vector/stats.js.map +1 -1
- package/dist/cmd/cloud/vector/upsert.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/upsert.js +2 -1
- package/dist/cmd/cloud/vector/upsert.js.map +1 -1
- package/dist/cmd/cloud/vector/util.d.ts +7 -8
- package/dist/cmd/cloud/vector/util.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/util.js +7 -7
- package/dist/cmd/cloud/vector/util.js.map +1 -1
- package/dist/cmd/setup/index.d.ts.map +1 -1
- package/dist/cmd/setup/index.js +7 -2
- package/dist/cmd/setup/index.js.map +1 -1
- package/dist/config.d.ts +7 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -4
- package/dist/config.js.map +1 -1
- package/dist/env-util.d.ts +1 -1
- package/dist/env-util.d.ts.map +1 -1
- package/dist/env-util.js +1 -1
- package/dist/env-util.js.map +1 -1
- package/package.json +6 -6
- package/src/cmd/auth/index.ts +2 -0
- package/src/cmd/auth/machine/index.ts +16 -0
- package/src/cmd/auth/machine/setup.ts +104 -0
- package/src/cmd/cloud/db/index.ts +1 -1
- package/src/cmd/cloud/index.ts +2 -0
- package/src/cmd/cloud/keyvalue/create-namespace.ts +2 -1
- package/src/cmd/cloud/keyvalue/delete-namespace.ts +2 -1
- package/src/cmd/cloud/keyvalue/delete.ts +2 -1
- package/src/cmd/cloud/keyvalue/get.ts +2 -1
- package/src/cmd/cloud/keyvalue/keys.ts +2 -1
- package/src/cmd/cloud/keyvalue/list-namespaces.ts +2 -1
- package/src/cmd/cloud/keyvalue/repl.ts +1 -1
- package/src/cmd/cloud/keyvalue/search.ts +2 -1
- package/src/cmd/cloud/keyvalue/set.ts +2 -1
- package/src/cmd/cloud/keyvalue/stats.ts +2 -1
- package/src/cmd/cloud/keyvalue/util.ts +15 -7
- package/src/cmd/cloud/machine/delete.ts +91 -0
- package/src/cmd/cloud/machine/deployments.ts +94 -0
- package/src/cmd/cloud/machine/get.ts +110 -0
- package/src/cmd/cloud/machine/index.ts +22 -0
- package/src/cmd/cloud/machine/list.ts +80 -0
- package/src/cmd/cloud/queue/index.ts +1 -1
- package/src/cmd/cloud/redis/index.ts +1 -1
- package/src/cmd/cloud/sandbox/index.ts +1 -1
- package/src/cmd/cloud/storage/index.ts +1 -1
- package/src/cmd/cloud/stream/index.ts +1 -1
- package/src/cmd/cloud/vector/delete-namespace.ts +2 -1
- package/src/cmd/cloud/vector/delete.ts +2 -1
- package/src/cmd/cloud/vector/get.ts +2 -1
- package/src/cmd/cloud/vector/index.ts +1 -1
- package/src/cmd/cloud/vector/list-namespaces.ts +2 -1
- package/src/cmd/cloud/vector/search.ts +2 -1
- package/src/cmd/cloud/vector/stats.ts +2 -1
- package/src/cmd/cloud/vector/upsert.ts +2 -1
- package/src/cmd/cloud/vector/util.ts +15 -12
- package/src/cmd/setup/index.ts +7 -2
- package/src/config.ts +19 -4
- package/src/env-util.ts +1 -1
package/dist/env-util.js
CHANGED
|
@@ -10,7 +10,7 @@ export const PUBLIC_VAR_PREFIXES = ['VITE_', 'AGENTUITY_PUBLIC_', 'PUBLIC_'];
|
|
|
10
10
|
* Specific AGENTUITY_ keys that are allowed to be set by users.
|
|
11
11
|
* Note: There is also a whitelist in the API that must be kept in sync.
|
|
12
12
|
*/
|
|
13
|
-
export const AGENTUITY_ALLOWED_KEYS = ['AGENTUITY_AUTH_SECRET'];
|
|
13
|
+
export const AGENTUITY_ALLOWED_KEYS = ['AGENTUITY_AUTH_SECRET', 'AGENTUITY_CLOUD_BASE_URL'];
|
|
14
14
|
/**
|
|
15
15
|
* Check if a key is a public variable (exposed to frontend)
|
|
16
16
|
*/
|
package/dist/env-util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-util.js","sourceRoot":"","sources":["../src/env-util.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAU,CAAC;AAEtF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,uBAAuB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"env-util.js","sourceRoot":"","sources":["../src/env-util.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAU,CAAC;AAEtF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,uBAAuB,EAAE,0BAA0B,CAAU,CAAC;AAErG;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,GAA8C,CAAC,EAAE,CAAC;QACrF,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IACnD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACvD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACpD,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC9B,GAAW,EACX,OAAwD;IAExD,MAAM,EAAE,UAAU,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAErD,MAAM,KAAK,GAAa,YAAY;QACnC,CAAC,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAC7B,CAAC,CAAC,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAEhC,IAAI,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,OAAO,CAAC,QAAQ,UAAU,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE5B,gCAAgC;IAChC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjD,uCAAuC;IACvC,IACC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC7C,CAAC;QACF,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,GAAG,GAAY,EAAE,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAChC,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,IAAY,EACZ,IAAa,EACb,OAGC;IAED,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kCAAkC;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAE5C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,SAAS;QACV,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAExB,0BAA0B;QAC1B,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,kBAAkB;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC3B,IAAa,EACb,OAAgB,EAChB,OAEC;IAED,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,4CAA4C;QAC5C,IAAI,YAAY,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAClD,SAAS;QACV,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAc;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAY,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAI/C,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,MAAM,OAAO,GAAY,EAAE,CAAC;IAE5B,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAE9E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,oEAAoE;QACpE,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,SAAS;QACV,CAAC;QAED,8CAA8C;QAC9C,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,SAAS;QACV,CAAC;QAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/E,IAAI,oBAAoB,IAAI,gBAAgB,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAClB,CAAC;IACF,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,uDAAuD;QACvD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,UAAU,GAAG,EAAE,CAAC;YAEpB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,4CAA4C;gBAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAChC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oBACd,UAAU,GAAG,KAAK,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACP,UAAU,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,CAAC;YACF,CAAC;YAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,4CAA4C;gBAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAChC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oBACd,UAAU,IAAI,MAAM,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACP,UAAU,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,CAAC;YACF,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACzB,2BAA2B;gBAC3B,UAAU,IAAI,MAAM,CAAC;YACtB,CAAC;YAED,0CAA0C;YAC1C,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACtG,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,mDAAmD;IACpD,CAAC;IAED,0EAA0E;IAC1E,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,KAAa;IACzD,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG;QACzB,WAAW;QACX,QAAQ;QACR,UAAU;QACV,aAAa;QACb,YAAY;QACZ,SAAS;QACT,gBAAgB;QAChB,WAAW;QACX,YAAY;QACZ,OAAO;QACP,WAAW;QACX,aAAa;QACb,YAAY;KACZ,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,IAAI,wDAAwD,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uBAAuB;IACvB,IAAI,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,kCAAkC;IAClC,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,iBAAiB;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,wBAAwB;IACxB,IAAI,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sDAAsD;IACtD,gEAAgE;IAChE,MAAM,MAAM,GAAG,iEAAiE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2CAA2C;IAC3C,IACC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EACtC,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAgB;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3C,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW,EAAE,IAAc;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YACrB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;IACF,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"prepublishOnly": "bun run clean && bun run build"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@agentuity/auth": "0.1.
|
|
44
|
-
"@agentuity/core": "0.1.
|
|
45
|
-
"@agentuity/server": "0.1.
|
|
43
|
+
"@agentuity/auth": "0.1.21",
|
|
44
|
+
"@agentuity/core": "0.1.21",
|
|
45
|
+
"@agentuity/server": "0.1.21",
|
|
46
46
|
"@datasert/cronjs-parser": "^1.4.0",
|
|
47
47
|
"@terascope/fetch-github-release": "^2.2.1",
|
|
48
48
|
"@vitejs/plugin-react": "^5.1.2",
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
"typescript": "^5.9.0",
|
|
61
61
|
"vite": "^7.2.7",
|
|
62
62
|
"zod": "^4.3.5",
|
|
63
|
-
"@agentuity/frontend": "0.1.
|
|
63
|
+
"@agentuity/frontend": "0.1.21"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@agentuity/test-utils": "0.1.
|
|
66
|
+
"@agentuity/test-utils": "0.1.21",
|
|
67
67
|
"@types/adm-zip": "^0.5.7",
|
|
68
68
|
"@types/bun": "latest",
|
|
69
69
|
"@types/tar-fs": "^2.0.4",
|
package/src/cmd/auth/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { signupCommand } from './signup';
|
|
|
6
6
|
import { whoamiCommand } from './whoami';
|
|
7
7
|
import { sshSubcommand } from './ssh';
|
|
8
8
|
import { orgSubcommand } from './org';
|
|
9
|
+
import { machineSubcommand } from './machine';
|
|
9
10
|
import { getCommand } from '../../command-prefix';
|
|
10
11
|
|
|
11
12
|
export const command = createCommand({
|
|
@@ -25,5 +26,6 @@ export const command = createCommand({
|
|
|
25
26
|
whoamiCommand,
|
|
26
27
|
sshSubcommand,
|
|
27
28
|
orgSubcommand,
|
|
29
|
+
machineSubcommand,
|
|
28
30
|
],
|
|
29
31
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createCommand } from '../../../types';
|
|
2
|
+
import { setupSubcommand } from './setup';
|
|
3
|
+
import { getCommand } from '../../../command-prefix';
|
|
4
|
+
|
|
5
|
+
export const machineSubcommand = createCommand({
|
|
6
|
+
name: 'machine',
|
|
7
|
+
description: 'Manage machine authentication for self-hosted infrastructure',
|
|
8
|
+
tags: ['fast', 'requires-auth'],
|
|
9
|
+
examples: [
|
|
10
|
+
{
|
|
11
|
+
command: getCommand('auth machine setup --file ./public-key.pem'),
|
|
12
|
+
description: 'Set up machine authentication with a public key',
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
subcommands: [setupSubcommand],
|
|
16
|
+
});
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createSubcommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
|
+
import { machineAuthSetup } from '@agentuity/server';
|
|
5
|
+
import { getCommand } from '../../../command-prefix';
|
|
6
|
+
import { ErrorCode } from '../../../errors';
|
|
7
|
+
import { readFileSync } from 'fs';
|
|
8
|
+
|
|
9
|
+
const MachineSetupResponseSchema = z.object({
|
|
10
|
+
success: z.boolean().describe('Whether the setup succeeded'),
|
|
11
|
+
orgId: z.string().describe('The organization ID'),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export const setupSubcommand = createSubcommand({
|
|
15
|
+
name: 'setup',
|
|
16
|
+
description:
|
|
17
|
+
'Set up machine authentication by uploading a public key for self-hosted infrastructure',
|
|
18
|
+
tags: ['mutating', 'slow', 'requires-auth'],
|
|
19
|
+
examples: [
|
|
20
|
+
{
|
|
21
|
+
command: `${getCommand('auth machine setup')} --file ./public-key.pem`,
|
|
22
|
+
description: 'Upload ECDSA P-256 public key from file',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
command: `cat public-key.pem | ${getCommand('auth machine setup')}`,
|
|
26
|
+
description: 'Upload public key from stdin',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
requires: { auth: true, apiClient: true, org: true },
|
|
30
|
+
idempotent: true,
|
|
31
|
+
schema: {
|
|
32
|
+
options: z.object({
|
|
33
|
+
file: z.string().optional().describe('Path to the public key file (PEM format)'),
|
|
34
|
+
}),
|
|
35
|
+
response: MachineSetupResponseSchema,
|
|
36
|
+
},
|
|
37
|
+
async handler(ctx) {
|
|
38
|
+
const { apiClient, opts, options, logger, orgId } = ctx;
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
let publicKey: string = '';
|
|
42
|
+
|
|
43
|
+
if (opts.file) {
|
|
44
|
+
try {
|
|
45
|
+
publicKey = readFileSync(opts.file, 'utf-8').trim();
|
|
46
|
+
} catch (error) {
|
|
47
|
+
return logger.fatal(
|
|
48
|
+
`Error reading file: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
49
|
+
ErrorCode.FILE_NOT_FOUND
|
|
50
|
+
) as never;
|
|
51
|
+
}
|
|
52
|
+
} else if (!process.stdin.isTTY) {
|
|
53
|
+
try {
|
|
54
|
+
const stdin = await Promise.race([
|
|
55
|
+
Bun.stdin.text(),
|
|
56
|
+
new Promise<null>((resolve) => setTimeout(() => resolve(null), 5000)),
|
|
57
|
+
]);
|
|
58
|
+
|
|
59
|
+
if (stdin && stdin.trim().length > 0) {
|
|
60
|
+
publicKey = stdin.trim();
|
|
61
|
+
}
|
|
62
|
+
} catch {
|
|
63
|
+
// Ignore stdin read errors
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (!publicKey) {
|
|
68
|
+
return logger.fatal(
|
|
69
|
+
'No public key provided. Use --file to specify a file or pipe the key via stdin.\n\n' +
|
|
70
|
+
'Generate a key with:\n' +
|
|
71
|
+
' openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve -out private.pem\n' +
|
|
72
|
+
' openssl pkey -in private.pem -pubout -out public.pem',
|
|
73
|
+
ErrorCode.INVALID_ARGUMENT
|
|
74
|
+
) as never;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (!publicKey.includes('-----BEGIN PUBLIC KEY-----')) {
|
|
78
|
+
return logger.fatal(
|
|
79
|
+
'Invalid public key format. Expected PEM format starting with "-----BEGIN PUBLIC KEY-----"',
|
|
80
|
+
ErrorCode.INVALID_ARGUMENT
|
|
81
|
+
) as never;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const result = await tui.spinner({
|
|
85
|
+
type: 'simple',
|
|
86
|
+
message: 'Setting up machine authentication...',
|
|
87
|
+
callback: () => machineAuthSetup(apiClient, orgId, publicKey),
|
|
88
|
+
clearOnSuccess: true,
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
if (!options.json) {
|
|
92
|
+
tui.success(`Machine authentication configured for organization ${result.orgId}`);
|
|
93
|
+
tui.newline();
|
|
94
|
+
tui.info(
|
|
95
|
+
'Your self-hosted machines can now authenticate using the corresponding private key.'
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return { success: true, orgId: result.orgId };
|
|
100
|
+
} catch (ex) {
|
|
101
|
+
tui.fatal(`Failed to set up machine authentication: ${ex}`, ErrorCode.API_ERROR);
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
});
|
|
@@ -10,7 +10,7 @@ import { getCommand } from '../../../command-prefix';
|
|
|
10
10
|
export const dbCommand = createCommand({
|
|
11
11
|
name: 'db',
|
|
12
12
|
aliases: ['database'],
|
|
13
|
-
description: 'Manage database resources',
|
|
13
|
+
description: 'Manage Postgres managed database resources',
|
|
14
14
|
tags: ['slow', 'requires-auth', 'requires-deployment'],
|
|
15
15
|
examples: [
|
|
16
16
|
{ command: getCommand('cloud db list'), description: 'List all databases' },
|
package/src/cmd/cloud/index.ts
CHANGED
|
@@ -17,6 +17,7 @@ import streamCommand from './stream';
|
|
|
17
17
|
import vectorCommand from './vector';
|
|
18
18
|
import sandboxCommand from './sandbox';
|
|
19
19
|
import { regionSubcommand } from './region';
|
|
20
|
+
import { machineCommand } from './machine';
|
|
20
21
|
import { getCommand } from '../../command-prefix';
|
|
21
22
|
|
|
22
23
|
export const command = createCommand({
|
|
@@ -47,5 +48,6 @@ export const command = createCommand({
|
|
|
47
48
|
scpSubcommand,
|
|
48
49
|
deploymentCommand,
|
|
49
50
|
regionSubcommand,
|
|
51
|
+
machineCommand,
|
|
50
52
|
],
|
|
51
53
|
});
|
|
@@ -9,7 +9,8 @@ export const createNamespaceSubcommand = createCommand({
|
|
|
9
9
|
description: 'Create a new keyvalue namespace',
|
|
10
10
|
tags: ['mutating', 'creates-resource', 'slow', 'requires-auth'],
|
|
11
11
|
idempotent: false,
|
|
12
|
-
requires: { auth: true },
|
|
12
|
+
requires: { auth: true, region: true },
|
|
13
|
+
optional: { project: true },
|
|
13
14
|
examples: [
|
|
14
15
|
{
|
|
15
16
|
command: getCommand('kv create-namespace production'),
|
|
@@ -10,7 +10,8 @@ export const deleteNamespaceSubcommand = createCommand({
|
|
|
10
10
|
description: 'Delete a keyvalue namespace and all its keys',
|
|
11
11
|
tags: ['destructive', 'deletes-resource', 'slow', 'requires-auth'],
|
|
12
12
|
idempotent: true,
|
|
13
|
-
requires: { auth: true },
|
|
13
|
+
requires: { auth: true, region: true },
|
|
14
|
+
optional: { project: true },
|
|
14
15
|
examples: [
|
|
15
16
|
{
|
|
16
17
|
command: getCommand('kv delete-namespace staging'),
|
|
@@ -16,7 +16,8 @@ export const deleteSubcommand = createCommand({
|
|
|
16
16
|
description: 'Delete a key from the keyvalue storage',
|
|
17
17
|
tags: ['destructive', 'deletes-resource', 'slow', 'requires-auth'],
|
|
18
18
|
idempotent: true,
|
|
19
|
-
requires: { auth: true },
|
|
19
|
+
requires: { auth: true, region: true },
|
|
20
|
+
optional: { project: true },
|
|
20
21
|
examples: [
|
|
21
22
|
{ command: getCommand('kv delete production user:123'), description: 'Delete user data' },
|
|
22
23
|
{ command: getCommand('kv delete cache session:abc'), description: 'Delete cached session' },
|
|
@@ -14,7 +14,8 @@ export const getSubcommand = createCommand({
|
|
|
14
14
|
name: 'get',
|
|
15
15
|
description: 'Get a value from the keyvalue storage',
|
|
16
16
|
tags: ['read-only', 'fast', 'requires-auth'],
|
|
17
|
-
requires: { auth: true },
|
|
17
|
+
requires: { auth: true, region: true },
|
|
18
|
+
optional: { project: true },
|
|
18
19
|
examples: [
|
|
19
20
|
{ command: getCommand('kv get production user:123'), description: 'Get user data' },
|
|
20
21
|
{ command: getCommand('kv get cache session:abc'), description: 'Get cached session' },
|
|
@@ -13,7 +13,8 @@ export const keysSubcommand = createCommand({
|
|
|
13
13
|
aliases: ['ls', 'list'],
|
|
14
14
|
description: 'List all keys in a keyvalue namespace',
|
|
15
15
|
tags: ['read-only', 'slow', 'requires-auth'],
|
|
16
|
-
requires: { auth: true },
|
|
16
|
+
requires: { auth: true, region: true },
|
|
17
|
+
optional: { project: true },
|
|
17
18
|
idempotent: true,
|
|
18
19
|
examples: [
|
|
19
20
|
{ command: getCommand('kv keys production'), description: 'List all keys in production' },
|
|
@@ -10,7 +10,8 @@ export const listNamespacesSubcommand = createCommand({
|
|
|
10
10
|
aliases: ['namespaces', 'ns'],
|
|
11
11
|
description: 'List all keyvalue namespaces',
|
|
12
12
|
tags: ['read-only', 'fast', 'requires-auth'],
|
|
13
|
-
requires: { auth: true },
|
|
13
|
+
requires: { auth: true, region: true },
|
|
14
|
+
optional: { project: true },
|
|
14
15
|
examples: [
|
|
15
16
|
{ command: getCommand('kv list-namespaces'), description: 'List all namespaces' },
|
|
16
17
|
{ command: getCommand('kv namespaces'), description: 'List namespaces (using alias)' },
|
|
@@ -11,7 +11,7 @@ export const replSubcommand = createCommand({
|
|
|
11
11
|
description: 'Start an interactive repl for working with keyvalue database',
|
|
12
12
|
tags: ['slow', 'requires-auth'],
|
|
13
13
|
idempotent: false,
|
|
14
|
-
requires: { auth: true },
|
|
14
|
+
requires: { auth: true, region: true },
|
|
15
15
|
optional: { project: true },
|
|
16
16
|
examples: [{ command: getCommand('kv repl'), description: 'Start interactive KV session' }],
|
|
17
17
|
|
|
@@ -20,7 +20,8 @@ export const searchSubcommand = createCommand({
|
|
|
20
20
|
name: 'search',
|
|
21
21
|
description: 'Search for keys matching a keyword in a keyvalue namespace',
|
|
22
22
|
tags: ['read-only', 'slow', 'requires-auth'],
|
|
23
|
-
requires: { auth: true },
|
|
23
|
+
requires: { auth: true, region: true },
|
|
24
|
+
optional: { project: true },
|
|
24
25
|
idempotent: true,
|
|
25
26
|
examples: [
|
|
26
27
|
{
|
|
@@ -19,7 +19,8 @@ export const setSubcommand = createCommand({
|
|
|
19
19
|
description: 'Set a key and value in the keyvalue storage',
|
|
20
20
|
tags: ['mutating', 'updates-resource', 'slow', 'requires-auth'],
|
|
21
21
|
idempotent: true,
|
|
22
|
-
requires: { auth: true },
|
|
22
|
+
requires: { auth: true, region: true },
|
|
23
|
+
optional: { project: true },
|
|
23
24
|
examples: [
|
|
24
25
|
{
|
|
25
26
|
command: getCommand(
|
|
@@ -26,7 +26,8 @@ export const statsSubcommand = createCommand({
|
|
|
26
26
|
name: 'stats',
|
|
27
27
|
description: 'Get statistics for keyvalue storage',
|
|
28
28
|
tags: ['read-only', 'fast', 'requires-auth'],
|
|
29
|
-
requires: { auth: true },
|
|
29
|
+
requires: { auth: true, region: true },
|
|
30
|
+
optional: { project: true },
|
|
30
31
|
idempotent: true,
|
|
31
32
|
examples: [
|
|
32
33
|
{ command: getCommand('kv stats'), description: 'Show stats for all namespaces' },
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
import { KeyValueStorageService, type Logger } from '@agentuity/core';
|
|
2
2
|
import { createServerFetchAdapter, getServiceUrls } from '@agentuity/server';
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
3
|
+
import type { AuthData, GlobalOptions, ProjectConfig } from '../../../types';
|
|
4
|
+
import * as tui from '../../../tui';
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export function createStorageAdapter(ctx: {
|
|
7
7
|
logger: Logger;
|
|
8
|
-
config: Config | null;
|
|
9
8
|
auth: AuthData;
|
|
10
|
-
|
|
9
|
+
region: string;
|
|
10
|
+
project?: ProjectConfig;
|
|
11
|
+
options: GlobalOptions;
|
|
11
12
|
}) {
|
|
13
|
+
const orgId = ctx.project?.orgId ?? ctx.options.orgId;
|
|
14
|
+
if (!orgId) {
|
|
15
|
+
tui.fatal(
|
|
16
|
+
'Organization ID is required. Either run from a project directory or use --org-id flag.'
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
12
20
|
const adapter = createServerFetchAdapter(
|
|
13
21
|
{
|
|
14
22
|
headers: {
|
|
15
23
|
Authorization: `Bearer ${ctx.auth.apiKey}`,
|
|
24
|
+
'x-agentuity-orgid': orgId,
|
|
16
25
|
},
|
|
17
26
|
},
|
|
18
27
|
ctx.logger
|
|
19
28
|
);
|
|
20
29
|
|
|
21
|
-
const
|
|
22
|
-
const urls = getServiceUrls(region);
|
|
30
|
+
const urls = getServiceUrls(ctx.region);
|
|
23
31
|
const baseUrl = urls.catalyst;
|
|
24
32
|
return new KeyValueStorageService(baseUrl, adapter);
|
|
25
33
|
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createSubcommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
|
+
import { machineDelete, machineGet } from '@agentuity/server';
|
|
5
|
+
import { getCommand } from '../../../command-prefix';
|
|
6
|
+
import { ErrorCode } from '../../../errors';
|
|
7
|
+
import { getGlobalCatalystAPIClient } from '../../../config';
|
|
8
|
+
import enquirer from 'enquirer';
|
|
9
|
+
|
|
10
|
+
const MachineDeleteResponseSchema = z.object({
|
|
11
|
+
success: z.boolean().describe('Whether the deletion succeeded'),
|
|
12
|
+
machineId: z.string().describe('The deleted machine ID'),
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export const deleteSubcommand = createSubcommand({
|
|
16
|
+
name: 'delete',
|
|
17
|
+
description: 'Delete an organization managed machine',
|
|
18
|
+
tags: ['mutating', 'destructive', 'slow', 'requires-auth'],
|
|
19
|
+
examples: [
|
|
20
|
+
{
|
|
21
|
+
command: `${getCommand('cloud machine delete')} mach_abc123xyz`,
|
|
22
|
+
description: 'Delete a machine (with confirmation)',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
command: `${getCommand('cloud machine delete')} mach_abc123xyz --confirm`,
|
|
26
|
+
description: 'Delete a machine without confirmation',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
aliases: ['rm', 'remove'],
|
|
30
|
+
requires: { auth: true, org: true },
|
|
31
|
+
idempotent: false,
|
|
32
|
+
schema: {
|
|
33
|
+
args: z.object({
|
|
34
|
+
machine_id: z.string().describe('Machine ID'),
|
|
35
|
+
}),
|
|
36
|
+
options: z.object({
|
|
37
|
+
confirm: z.boolean().optional().default(false).describe('Skip confirmation prompt'),
|
|
38
|
+
}),
|
|
39
|
+
response: MachineDeleteResponseSchema,
|
|
40
|
+
},
|
|
41
|
+
async handler(ctx) {
|
|
42
|
+
const { args, opts, options, logger, auth, config, orgId } = ctx;
|
|
43
|
+
|
|
44
|
+
const catalystClient = await getGlobalCatalystAPIClient(logger, auth, config?.name, orgId);
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const machine = await machineGet(catalystClient, args.machine_id);
|
|
48
|
+
|
|
49
|
+
if (!opts.confirm) {
|
|
50
|
+
if (process.stdin.isTTY) {
|
|
51
|
+
tui.newline();
|
|
52
|
+
tui.warn(`You are about to delete machine ${tui.bold(machine.id)}`);
|
|
53
|
+
if (machine.orgName) {
|
|
54
|
+
tui.info(`Organization: ${machine.orgName}`);
|
|
55
|
+
}
|
|
56
|
+
tui.newline();
|
|
57
|
+
|
|
58
|
+
const response = await enquirer.prompt<{ confirm: boolean }>({
|
|
59
|
+
type: 'confirm',
|
|
60
|
+
name: 'confirm',
|
|
61
|
+
message: 'Are you sure you want to delete this machine?',
|
|
62
|
+
initial: false,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
if (!response.confirm) {
|
|
66
|
+
tui.info('Deletion cancelled.');
|
|
67
|
+
return { success: false, machineId: args.machine_id };
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
tui.error('Non-interactive sessions require --confirm flag to delete a machine.');
|
|
71
|
+
return { success: false, machineId: args.machine_id };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
await tui.spinner({
|
|
76
|
+
type: 'simple',
|
|
77
|
+
message: 'Deleting machine...',
|
|
78
|
+
callback: () => machineDelete(catalystClient, args.machine_id),
|
|
79
|
+
clearOnSuccess: true,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
if (!options.json) {
|
|
83
|
+
tui.success(`Machine ${args.machine_id} deleted successfully.`);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return { success: true, machineId: args.machine_id };
|
|
87
|
+
} catch (ex) {
|
|
88
|
+
tui.fatal(`Failed to delete machine: ${ex}`, ErrorCode.API_ERROR);
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
});
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createSubcommand } from '../../../types';
|
|
3
|
+
import * as tui from '../../../tui';
|
|
4
|
+
import { machineDeployments } from '@agentuity/server';
|
|
5
|
+
import { getCommand } from '../../../command-prefix';
|
|
6
|
+
import { ErrorCode } from '../../../errors';
|
|
7
|
+
import { getGlobalCatalystAPIClient } from '../../../config';
|
|
8
|
+
|
|
9
|
+
const MachineDeploymentResponseSchema = z.array(
|
|
10
|
+
z.object({
|
|
11
|
+
id: z.string().describe('Deployment ID'),
|
|
12
|
+
identifier: z.string().optional().describe('Deployment identifier'),
|
|
13
|
+
state: z.string().optional().describe('Deployment state'),
|
|
14
|
+
projectName: z.string().optional().describe('Project name'),
|
|
15
|
+
projectId: z.string().optional().describe('Project ID'),
|
|
16
|
+
paused: z.boolean().describe('Whether the deployment is paused'),
|
|
17
|
+
domainSuffix: z.string().describe('Domain suffix'),
|
|
18
|
+
url: z.string().describe('URL to the deployment'),
|
|
19
|
+
})
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
export const deploymentsSubcommand = createSubcommand({
|
|
23
|
+
name: 'deployments',
|
|
24
|
+
description: 'List deployments running on a specific organization managed machine',
|
|
25
|
+
tags: ['read-only', 'slow', 'requires-auth'],
|
|
26
|
+
examples: [
|
|
27
|
+
{
|
|
28
|
+
command: `${getCommand('cloud machine deployments')} machine_abc123xyz`,
|
|
29
|
+
description: 'List deployments on a machine',
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
aliases: ['deps', 'deployment'],
|
|
33
|
+
requires: { auth: true, org: true },
|
|
34
|
+
idempotent: true,
|
|
35
|
+
schema: {
|
|
36
|
+
args: z.object({
|
|
37
|
+
machine_id: z.string().describe('Machine ID'),
|
|
38
|
+
}),
|
|
39
|
+
response: MachineDeploymentResponseSchema,
|
|
40
|
+
},
|
|
41
|
+
async handler(ctx) {
|
|
42
|
+
const { args, options, logger, auth, config, orgId } = ctx;
|
|
43
|
+
|
|
44
|
+
const catalystClient = await getGlobalCatalystAPIClient(logger, auth, config?.name, orgId);
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const deployments = await machineDeployments(catalystClient, args.machine_id);
|
|
48
|
+
|
|
49
|
+
const result = deployments.map((d) => ({
|
|
50
|
+
id: d.id,
|
|
51
|
+
identifier: d.identifier,
|
|
52
|
+
state: d.state,
|
|
53
|
+
projectName: d.project?.name,
|
|
54
|
+
projectId: d.project?.id,
|
|
55
|
+
paused: d.paused,
|
|
56
|
+
domainSuffix: d.domainSuffix,
|
|
57
|
+
url:
|
|
58
|
+
d.customDomains?.length > 0
|
|
59
|
+
? d.customDomains.map((domain) => `https://${domain}`).join(',')
|
|
60
|
+
: d.identifier
|
|
61
|
+
? `https://d${d.identifier}.${d.domainSuffix}`
|
|
62
|
+
: d.project?.identifier
|
|
63
|
+
? `https://p${d.project?.identifier}.${d.domainSuffix}`
|
|
64
|
+
: '',
|
|
65
|
+
}));
|
|
66
|
+
|
|
67
|
+
if (!options.json) {
|
|
68
|
+
if (deployments.length === 0) {
|
|
69
|
+
tui.info('No deployments found on this machine.');
|
|
70
|
+
} else {
|
|
71
|
+
const tableData = result.map((d) => ({
|
|
72
|
+
ID: d.id,
|
|
73
|
+
State: d.state || 'unknown',
|
|
74
|
+
Project: d.projectName ? `${d.projectName} (${d.projectId})` : '-',
|
|
75
|
+
Paused: d.paused ? 'Yes' : 'No',
|
|
76
|
+
URL: d.url,
|
|
77
|
+
}));
|
|
78
|
+
|
|
79
|
+
tui.table(tableData, [
|
|
80
|
+
{ name: 'ID', alignment: 'left' },
|
|
81
|
+
{ name: 'State', alignment: 'left' },
|
|
82
|
+
{ name: 'Project', alignment: 'left' },
|
|
83
|
+
{ name: 'Paused', alignment: 'center' },
|
|
84
|
+
{ name: 'URL', alignment: 'left' },
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return result;
|
|
90
|
+
} catch (ex) {
|
|
91
|
+
tui.fatal(`Failed to get machine deployments: ${ex}`, ErrorCode.API_ERROR);
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
});
|