@agentuity/cli 0.1.15 → 0.1.16
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/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -1
- package/dist/cli.js.map +1 -1
- package/dist/cmd/ai/opencode/install.js +1 -1
- package/dist/cmd/ai/opencode/install.js.map +1 -1
- package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/env/delete.js +87 -34
- 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 +50 -16
- 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 +76 -32
- 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 +6 -2
- 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 +94 -23
- package/dist/cmd/cloud/env/list.js.map +1 -1
- package/dist/cmd/cloud/env/org-util.d.ts +16 -0
- package/dist/cmd/cloud/env/org-util.d.ts.map +1 -0
- package/dist/cmd/cloud/env/org-util.js +28 -0
- package/dist/cmd/cloud/env/org-util.js.map +1 -0
- package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
- package/dist/cmd/cloud/env/pull.js +61 -29
- package/dist/cmd/cloud/env/pull.js.map +1 -1
- package/dist/cmd/cloud/env/push.d.ts.map +1 -1
- package/dist/cmd/cloud/env/push.js +69 -23
- package/dist/cmd/cloud/env/push.js.map +1 -1
- package/dist/cmd/cloud/env/set.d.ts.map +1 -1
- package/dist/cmd/cloud/env/set.js +69 -26
- package/dist/cmd/cloud/env/set.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/create-namespace.js +1 -1
- package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/delete-namespace.js +2 -2
- package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/delete.js +1 -1
- package/dist/cmd/cloud/keyvalue/delete.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/get.js +1 -1
- package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/index.js +1 -1
- package/dist/cmd/cloud/keyvalue/index.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/keys.js +1 -1
- package/dist/cmd/cloud/keyvalue/keys.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/list-namespaces.js +1 -1
- 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 +8 -5
- package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.js +1 -1
- package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/set.js +1 -1
- package/dist/cmd/cloud/keyvalue/set.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/stats.js +1 -1
- package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.d.ts +4 -4
- package/dist/cmd/cloud/keyvalue/util.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.js +4 -9
- package/dist/cmd/cloud/keyvalue/util.js.map +1 -1
- package/dist/cmd/project/create.d.ts.map +1 -1
- package/dist/cmd/project/create.js +12 -0
- package/dist/cmd/project/create.js.map +1 -1
- package/dist/cmd/project/template-flow.d.ts +3 -0
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +157 -68
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/cmd/setup/index.d.ts.map +1 -1
- package/dist/cmd/setup/index.js +2 -1
- package/dist/cmd/setup/index.js.map +1 -1
- package/dist/onboarding/agentPrompt.d.ts +8 -0
- package/dist/onboarding/agentPrompt.d.ts.map +1 -0
- package/dist/onboarding/agentPrompt.js +263 -0
- package/dist/onboarding/agentPrompt.js.map +1 -0
- package/dist/schema-generator.d.ts +1 -1
- package/dist/schema-generator.d.ts.map +1 -1
- package/dist/schema-parser.d.ts +1 -1
- package/dist/schema-parser.d.ts.map +1 -1
- package/dist/schema-parser.js +36 -1
- package/dist/schema-parser.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +17 -7
- package/dist/tui.js.map +1 -1
- package/package.json +6 -6
- package/src/cli.ts +14 -1
- package/src/cmd/ai/opencode/install.ts +1 -1
- package/src/cmd/cloud/env/delete.ts +100 -41
- package/src/cmd/cloud/env/get.ts +53 -16
- package/src/cmd/cloud/env/import.ts +86 -37
- package/src/cmd/cloud/env/index.ts +6 -2
- package/src/cmd/cloud/env/list.ts +102 -27
- package/src/cmd/cloud/env/org-util.ts +37 -0
- package/src/cmd/cloud/env/pull.ts +67 -31
- package/src/cmd/cloud/env/push.ts +81 -28
- package/src/cmd/cloud/env/set.ts +82 -33
- package/src/cmd/cloud/keyvalue/create-namespace.ts +1 -1
- package/src/cmd/cloud/keyvalue/delete-namespace.ts +2 -2
- package/src/cmd/cloud/keyvalue/delete.ts +1 -1
- package/src/cmd/cloud/keyvalue/get.ts +1 -1
- package/src/cmd/cloud/keyvalue/index.ts +1 -1
- package/src/cmd/cloud/keyvalue/keys.ts +1 -1
- package/src/cmd/cloud/keyvalue/list-namespaces.ts +1 -1
- package/src/cmd/cloud/keyvalue/repl.ts +8 -5
- package/src/cmd/cloud/keyvalue/search.ts +1 -1
- package/src/cmd/cloud/keyvalue/set.ts +1 -1
- package/src/cmd/cloud/keyvalue/stats.ts +1 -1
- package/src/cmd/cloud/keyvalue/util.ts +8 -17
- package/src/cmd/project/create.ts +12 -0
- package/src/cmd/project/template-flow.ts +183 -69
- package/src/cmd/setup/index.ts +2 -1
- package/src/onboarding/agentPrompt.ts +263 -0
- package/src/schema-generator.ts +1 -1
- package/src/schema-parser.ts +42 -3
- package/src/tui.ts +19 -9
package/src/schema-parser.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface ParsedArgs {
|
|
|
13
13
|
export interface ParsedOption {
|
|
14
14
|
name: string;
|
|
15
15
|
description?: string;
|
|
16
|
-
type: 'string' | 'number' | 'boolean' | 'array';
|
|
16
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'optionalString';
|
|
17
17
|
hasDefault?: boolean;
|
|
18
18
|
defaultValue?: unknown;
|
|
19
19
|
enumValues?: string[];
|
|
@@ -57,6 +57,42 @@ function unwrapSchema(schema: unknown): unknown {
|
|
|
57
57
|
return current;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Check if a schema is a union of boolean and string (for optional string flags like --org [value])
|
|
62
|
+
* This pattern is used when a flag can be used as a boolean (--org) or with a value (--org=myOrgId)
|
|
63
|
+
*/
|
|
64
|
+
function isBooleanStringUnion(schema: unknown): boolean {
|
|
65
|
+
const unwrapped = unwrapSchema(schema) as ZodTypeInternal;
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
+
const def = unwrapped?._def as any;
|
|
68
|
+
// Zod 3 uses typeName, Zod 4 uses type
|
|
69
|
+
const typeId = def?.typeName || def?.type;
|
|
70
|
+
|
|
71
|
+
if (typeId !== 'ZodUnion' && typeId !== 'union') {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Zod 3 uses _def.options, Zod 4 uses .options directly on the schema or _def.options
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
77
|
+
const options = def?.options || (unwrapped as any)?.options;
|
|
78
|
+
if (!Array.isArray(options) || options.length !== 2) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const types = new Set<string>();
|
|
83
|
+
for (const opt of options) {
|
|
84
|
+
// Zod 4: type is directly on the object as .type
|
|
85
|
+
// Zod 3: type is _def.typeName
|
|
86
|
+
const optUnknown = opt as unknown as Record<string, unknown>;
|
|
87
|
+
const optDef = optUnknown?._def as Record<string, unknown> | undefined;
|
|
88
|
+
const optType = (optUnknown?.type as string) || (optDef?.typeName as string) || (optDef?.type as string);
|
|
89
|
+
types.add(optType);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return (types.has('boolean') || types.has('ZodBoolean')) &&
|
|
93
|
+
(types.has('string') || types.has('ZodString'));
|
|
94
|
+
}
|
|
95
|
+
|
|
60
96
|
function getShape(schema: ZodType): Record<string, unknown> {
|
|
61
97
|
const unwrapped = unwrapSchema(schema) as ZodTypeInternal;
|
|
62
98
|
const typeId = unwrapped?._def?.typeName || unwrapped?._def?.type;
|
|
@@ -182,9 +218,12 @@ export function parseOptionsSchema(schema: ZodType): ParsedOption[] {
|
|
|
182
218
|
}
|
|
183
219
|
}
|
|
184
220
|
|
|
185
|
-
let type: 'string' | 'number' | 'boolean' | 'array' = 'string';
|
|
221
|
+
let type: 'string' | 'number' | 'boolean' | 'array' | 'optionalString' = 'string';
|
|
186
222
|
let enumValues: string[] | undefined;
|
|
187
|
-
if (
|
|
223
|
+
if (isBooleanStringUnion(value)) {
|
|
224
|
+
// z.union([z.boolean(), z.string()]) - flag can be used as --flag or --flag=value
|
|
225
|
+
type = 'optionalString';
|
|
226
|
+
} else if (typeId === 'ZodNumber' || typeId === 'number') {
|
|
188
227
|
type = 'number';
|
|
189
228
|
} else if (typeId === 'ZodBoolean' || typeId === 'boolean') {
|
|
190
229
|
type = 'boolean';
|
package/src/tui.ts
CHANGED
|
@@ -1759,23 +1759,33 @@ export async function selectOrganization(
|
|
|
1759
1759
|
return orgs[0].id;
|
|
1760
1760
|
}
|
|
1761
1761
|
|
|
1762
|
-
if (
|
|
1763
|
-
|
|
1764
|
-
|
|
1762
|
+
// Use saved preference if available (regardless of TTY mode)
|
|
1763
|
+
// This allows consistent behavior without prompting on every command
|
|
1764
|
+
if (initial) {
|
|
1765
|
+
const initialOrg = orgs.find((o) => o.id === initial);
|
|
1766
|
+
if (initialOrg) {
|
|
1767
|
+
return initialOrg.id;
|
|
1765
1768
|
}
|
|
1766
|
-
fatal(
|
|
1767
|
-
'Organization selection required but cannot prompt in non-interactive environment. Set AGENTUITY_CLOUD_ORG_ID or provide a default organization using --org-id'
|
|
1768
|
-
);
|
|
1769
1769
|
}
|
|
1770
1770
|
|
|
1771
|
-
//
|
|
1772
|
-
const
|
|
1771
|
+
// Check for non-interactive environment (check both stdin and stdout)
|
|
1772
|
+
const isNonInteractive = !process.stdin.isTTY || !process.stdout.isTTY;
|
|
1773
|
+
if (isNonInteractive) {
|
|
1774
|
+
// In non-interactive mode with multiple orgs, auto-select first org
|
|
1775
|
+
// This allows scripts and CI/CD to work without explicit org selection
|
|
1776
|
+
warning(
|
|
1777
|
+
`Multiple organizations found. Auto-selecting first org: ${orgs[0].name}. ` +
|
|
1778
|
+
`Set AGENTUITY_CLOUD_ORG_ID or use --org-id to specify a different org.`
|
|
1779
|
+
);
|
|
1780
|
+
return orgs[0].id;
|
|
1781
|
+
}
|
|
1773
1782
|
|
|
1783
|
+
// Interactive mode with no saved preference - prompt user
|
|
1774
1784
|
const response = await enquirer.prompt<{ action: string }>({
|
|
1775
1785
|
type: 'select',
|
|
1776
1786
|
name: 'action',
|
|
1777
1787
|
message: 'Select an organization',
|
|
1778
|
-
initial:
|
|
1788
|
+
initial: 0,
|
|
1779
1789
|
choices: orgs.map((o) => ({ message: o.name, name: o.id })),
|
|
1780
1790
|
});
|
|
1781
1791
|
|