@agentuity/cli 1.0.21 → 1.0.23
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/auth.d.ts.map +1 -1
- package/dist/auth.js +7 -0
- package/dist/auth.js.map +1 -1
- package/dist/cache/resource-region.d.ts +1 -1
- package/dist/cache/resource-region.d.ts.map +1 -1
- package/dist/cache/resource-region.js.map +1 -1
- package/dist/cmd/ai/claude-code/install.d.ts.map +1 -1
- package/dist/cmd/ai/claude-code/install.js +0 -1
- package/dist/cmd/ai/claude-code/install.js.map +1 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +4 -2
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +1 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.js +18 -4
- package/dist/cmd/build/vite/public-asset-path-plugin.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +1 -1
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/email/create.d.ts +3 -0
- package/dist/cmd/cloud/email/create.d.ts.map +1 -0
- package/dist/cmd/cloud/email/create.js +58 -0
- package/dist/cmd/cloud/email/create.js.map +1 -0
- package/dist/cmd/cloud/email/delete.d.ts +3 -0
- package/dist/cmd/cloud/email/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/email/delete.js +47 -0
- package/dist/cmd/cloud/email/delete.js.map +1 -0
- package/dist/cmd/cloud/email/destination/delete.d.ts +3 -0
- package/dist/cmd/cloud/email/destination/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/email/destination/delete.js +54 -0
- package/dist/cmd/cloud/email/destination/delete.js.map +1 -0
- package/dist/cmd/cloud/email/destination/index.d.ts +3 -0
- package/dist/cmd/cloud/email/destination/index.d.ts.map +1 -0
- package/dist/cmd/cloud/email/destination/index.js +14 -0
- package/dist/cmd/cloud/email/destination/index.js.map +1 -0
- package/dist/cmd/cloud/email/destination/list.d.ts +3 -0
- package/dist/cmd/cloud/email/destination/list.d.ts.map +1 -0
- package/dist/cmd/cloud/email/destination/list.js +39 -0
- package/dist/cmd/cloud/email/destination/list.js.map +1 -0
- package/dist/cmd/cloud/email/destination/schemas.d.ts +9 -0
- package/dist/cmd/cloud/email/destination/schemas.d.ts.map +1 -0
- package/dist/cmd/cloud/email/destination/schemas.js +9 -0
- package/dist/cmd/cloud/email/destination/schemas.js.map +1 -0
- package/dist/cmd/cloud/email/destination/url.d.ts +3 -0
- package/dist/cmd/cloud/email/destination/url.d.ts.map +1 -0
- package/dist/cmd/cloud/email/destination/url.js +64 -0
- package/dist/cmd/cloud/email/destination/url.js.map +1 -0
- package/dist/cmd/cloud/email/get.d.ts +3 -0
- package/dist/cmd/cloud/email/get.d.ts.map +1 -0
- package/dist/cmd/cloud/email/get.js +43 -0
- package/dist/cmd/cloud/email/get.js.map +1 -0
- package/dist/cmd/cloud/email/inbound/get.d.ts +3 -0
- package/dist/cmd/cloud/email/inbound/get.d.ts.map +1 -0
- package/dist/cmd/cloud/email/inbound/get.js +44 -0
- package/dist/cmd/cloud/email/inbound/get.js.map +1 -0
- package/dist/cmd/cloud/email/inbound/index.d.ts +3 -0
- package/dist/cmd/cloud/email/inbound/index.d.ts.map +1 -0
- package/dist/cmd/cloud/email/inbound/index.js +12 -0
- package/dist/cmd/cloud/email/inbound/index.js.map +1 -0
- package/dist/cmd/cloud/email/inbound/list.d.ts +3 -0
- package/dist/cmd/cloud/email/inbound/list.d.ts.map +1 -0
- package/dist/cmd/cloud/email/inbound/list.js +43 -0
- package/dist/cmd/cloud/email/inbound/list.js.map +1 -0
- package/dist/cmd/cloud/email/inbound/schemas.d.ts +11 -0
- package/dist/cmd/cloud/email/inbound/schemas.d.ts.map +1 -0
- package/dist/cmd/cloud/email/inbound/schemas.js +11 -0
- package/dist/cmd/cloud/email/inbound/schemas.js.map +1 -0
- package/dist/cmd/cloud/email/index.d.ts +3 -0
- package/dist/cmd/cloud/email/index.d.ts.map +1 -0
- package/dist/cmd/cloud/email/index.js +28 -0
- package/dist/cmd/cloud/email/index.js.map +1 -0
- package/dist/cmd/cloud/email/list.d.ts +3 -0
- package/dist/cmd/cloud/email/list.d.ts.map +1 -0
- package/dist/cmd/cloud/email/list.js +37 -0
- package/dist/cmd/cloud/email/list.js.map +1 -0
- package/dist/cmd/cloud/email/outbound/get.d.ts +3 -0
- package/dist/cmd/cloud/email/outbound/get.d.ts.map +1 -0
- package/dist/cmd/cloud/email/outbound/get.js +45 -0
- package/dist/cmd/cloud/email/outbound/get.js.map +1 -0
- package/dist/cmd/cloud/email/outbound/index.d.ts +3 -0
- package/dist/cmd/cloud/email/outbound/index.d.ts.map +1 -0
- package/dist/cmd/cloud/email/outbound/index.js +12 -0
- package/dist/cmd/cloud/email/outbound/index.js.map +1 -0
- package/dist/cmd/cloud/email/outbound/list.d.ts +3 -0
- package/dist/cmd/cloud/email/outbound/list.d.ts.map +1 -0
- package/dist/cmd/cloud/email/outbound/list.js +43 -0
- package/dist/cmd/cloud/email/outbound/list.js.map +1 -0
- package/dist/cmd/cloud/email/outbound/schemas.d.ts +15 -0
- package/dist/cmd/cloud/email/outbound/schemas.d.ts.map +1 -0
- package/dist/cmd/cloud/email/outbound/schemas.js +15 -0
- package/dist/cmd/cloud/email/outbound/schemas.js.map +1 -0
- package/dist/cmd/cloud/email/send.d.ts +3 -0
- package/dist/cmd/cloud/email/send.d.ts.map +1 -0
- package/dist/cmd/cloud/email/send.js +77 -0
- package/dist/cmd/cloud/email/send.js.map +1 -0
- package/dist/cmd/cloud/email/util.d.ts +26 -0
- package/dist/cmd/cloud/email/util.d.ts.map +1 -0
- package/dist/cmd/cloud/email/util.js +57 -0
- package/dist/cmd/cloud/email/util.js.map +1 -0
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +8 -0
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/cloud/region-lookup.d.ts +1 -1
- package/dist/cmd/cloud/region-lookup.d.ts.map +1 -1
- package/dist/cmd/cloud/region-lookup.js +44 -2
- package/dist/cmd/cloud/region-lookup.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.d.ts +7 -0
- package/dist/cmd/cloud/sandbox/snapshot/build.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.js +46 -28
- package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/generate.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/generate.js +5 -1
- package/dist/cmd/cloud/sandbox/snapshot/generate.js.map +1 -1
- package/dist/cmd/cloud/schedule/create.d.ts +3 -0
- package/dist/cmd/cloud/schedule/create.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/create.js +72 -0
- package/dist/cmd/cloud/schedule/create.js.map +1 -0
- package/dist/cmd/cloud/schedule/delete.d.ts +3 -0
- package/dist/cmd/cloud/schedule/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/delete.js +38 -0
- package/dist/cmd/cloud/schedule/delete.js.map +1 -0
- package/dist/cmd/cloud/schedule/delivery/get.d.ts +3 -0
- package/dist/cmd/cloud/schedule/delivery/get.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/delivery/get.js +78 -0
- package/dist/cmd/cloud/schedule/delivery/get.js.map +1 -0
- package/dist/cmd/cloud/schedule/delivery/index.d.ts +3 -0
- package/dist/cmd/cloud/schedule/delivery/index.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/delivery/index.js +23 -0
- package/dist/cmd/cloud/schedule/delivery/index.js.map +1 -0
- package/dist/cmd/cloud/schedule/delivery/list.d.ts +3 -0
- package/dist/cmd/cloud/schedule/delivery/list.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/delivery/list.js +67 -0
- package/dist/cmd/cloud/schedule/delivery/list.js.map +1 -0
- package/dist/cmd/cloud/schedule/destination/create.d.ts +3 -0
- package/dist/cmd/cloud/schedule/destination/create.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/destination/create.js +97 -0
- package/dist/cmd/cloud/schedule/destination/create.js.map +1 -0
- package/dist/cmd/cloud/schedule/destination/delete.d.ts +3 -0
- package/dist/cmd/cloud/schedule/destination/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/destination/delete.js +41 -0
- package/dist/cmd/cloud/schedule/destination/delete.js.map +1 -0
- package/dist/cmd/cloud/schedule/destination/get.d.ts +3 -0
- package/dist/cmd/cloud/schedule/destination/get.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/destination/get.js +57 -0
- package/dist/cmd/cloud/schedule/destination/get.js.map +1 -0
- package/dist/cmd/cloud/schedule/destination/index.d.ts +3 -0
- package/dist/cmd/cloud/schedule/destination/index.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/destination/index.js +26 -0
- package/dist/cmd/cloud/schedule/destination/index.js.map +1 -0
- package/dist/cmd/cloud/schedule/destination/list.d.ts +3 -0
- package/dist/cmd/cloud/schedule/destination/list.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/destination/list.js +58 -0
- package/dist/cmd/cloud/schedule/destination/list.js.map +1 -0
- package/dist/cmd/cloud/schedule/get.d.ts +3 -0
- package/dist/cmd/cloud/schedule/get.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/get.js +76 -0
- package/dist/cmd/cloud/schedule/get.js.map +1 -0
- package/dist/cmd/cloud/schedule/index.d.ts +3 -0
- package/dist/cmd/cloud/schedule/index.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/index.js +35 -0
- package/dist/cmd/cloud/schedule/index.js.map +1 -0
- package/dist/cmd/cloud/schedule/list.d.ts +3 -0
- package/dist/cmd/cloud/schedule/list.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/list.js +60 -0
- package/dist/cmd/cloud/schedule/list.js.map +1 -0
- package/dist/cmd/cloud/schedule/update.d.ts +3 -0
- package/dist/cmd/cloud/schedule/update.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/update.js +65 -0
- package/dist/cmd/cloud/schedule/update.js.map +1 -0
- package/dist/cmd/cloud/schedule/util.d.ts +11 -0
- package/dist/cmd/cloud/schedule/util.d.ts.map +1 -0
- package/dist/cmd/cloud/schedule/util.js +17 -0
- package/dist/cmd/cloud/schedule/util.js.map +1 -0
- package/dist/cmd/cloud/task/create.d.ts +3 -0
- package/dist/cmd/cloud/task/create.d.ts.map +1 -0
- package/dist/cmd/cloud/task/create.js +108 -0
- package/dist/cmd/cloud/task/create.js.map +1 -0
- package/dist/cmd/cloud/task/get.d.ts +3 -0
- package/dist/cmd/cloud/task/get.d.ts.map +1 -0
- package/dist/cmd/cloud/task/get.js +124 -0
- package/dist/cmd/cloud/task/get.js.map +1 -0
- package/dist/cmd/cloud/task/index.d.ts +3 -0
- package/dist/cmd/cloud/task/index.d.ts.map +1 -0
- package/dist/cmd/cloud/task/index.js +33 -0
- package/dist/cmd/cloud/task/index.js.map +1 -0
- package/dist/cmd/cloud/task/list.d.ts +3 -0
- package/dist/cmd/cloud/task/list.d.ts.map +1 -0
- package/dist/cmd/cloud/task/list.js +174 -0
- package/dist/cmd/cloud/task/list.js.map +1 -0
- package/dist/cmd/cloud/task/update.d.ts +3 -0
- package/dist/cmd/cloud/task/update.d.ts.map +1 -0
- package/dist/cmd/cloud/task/update.js +118 -0
- package/dist/cmd/cloud/task/update.js.map +1 -0
- package/dist/cmd/cloud/task/util.d.ts +18 -0
- package/dist/cmd/cloud/task/util.d.ts.map +1 -0
- package/dist/cmd/cloud/task/util.js +45 -0
- package/dist/cmd/cloud/task/util.js.map +1 -0
- package/dist/cmd/cloud/webhook/create.d.ts +3 -0
- package/dist/cmd/cloud/webhook/create.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/create.js +54 -0
- package/dist/cmd/cloud/webhook/create.js.map +1 -0
- package/dist/cmd/cloud/webhook/delete.d.ts +3 -0
- package/dist/cmd/cloud/webhook/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/delete.js +50 -0
- package/dist/cmd/cloud/webhook/delete.js.map +1 -0
- package/dist/cmd/cloud/webhook/deliveries.d.ts +3 -0
- package/dist/cmd/cloud/webhook/deliveries.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/deliveries.js +123 -0
- package/dist/cmd/cloud/webhook/deliveries.js.map +1 -0
- package/dist/cmd/cloud/webhook/destinations.d.ts +3 -0
- package/dist/cmd/cloud/webhook/destinations.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/destinations.js +212 -0
- package/dist/cmd/cloud/webhook/destinations.js.map +1 -0
- package/dist/cmd/cloud/webhook/get.d.ts +3 -0
- package/dist/cmd/cloud/webhook/get.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/get.js +50 -0
- package/dist/cmd/cloud/webhook/get.js.map +1 -0
- package/dist/cmd/cloud/webhook/index.d.ts +3 -0
- package/dist/cmd/cloud/webhook/index.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/index.js +45 -0
- package/dist/cmd/cloud/webhook/index.js.map +1 -0
- package/dist/cmd/cloud/webhook/list.d.ts +3 -0
- package/dist/cmd/cloud/webhook/list.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/list.js +72 -0
- package/dist/cmd/cloud/webhook/list.js.map +1 -0
- package/dist/cmd/cloud/webhook/receipts.d.ts +3 -0
- package/dist/cmd/cloud/webhook/receipts.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/receipts.js +128 -0
- package/dist/cmd/cloud/webhook/receipts.js.map +1 -0
- package/dist/cmd/cloud/webhook/util.d.ts +27 -0
- package/dist/cmd/cloud/webhook/util.d.ts.map +1 -0
- package/dist/cmd/cloud/webhook/util.js +20 -0
- package/dist/cmd/cloud/webhook/util.js.map +1 -0
- package/dist/cmd/project/add/domain.d.ts.map +1 -1
- package/dist/cmd/project/add/domain.js +6 -4
- package/dist/cmd/project/add/domain.js.map +1 -1
- package/dist/cmd/project/domain/check.d.ts.map +1 -1
- package/dist/cmd/project/domain/check.js +10 -5
- package/dist/cmd/project/domain/check.js.map +1 -1
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +2 -1
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/domain.d.ts +3 -2
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +87 -21
- package/dist/domain.js.map +1 -1
- package/dist/types.d.ts +10 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -2
- package/dist/types.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +18 -3
- package/dist/version-check.js.map +1 -1
- package/package.json +6 -6
- package/src/auth.ts +7 -0
- package/src/cache/resource-region.ts +4 -1
- package/src/cmd/ai/claude-code/install.ts +0 -3
- package/src/cmd/build/vite/public-asset-path-plugin.ts +18 -4
- package/src/cmd/cloud/deploy.ts +1 -0
- package/src/cmd/cloud/email/create.ts +70 -0
- package/src/cmd/cloud/email/delete.ts +53 -0
- package/src/cmd/cloud/email/destination/delete.ts +65 -0
- package/src/cmd/cloud/email/destination/index.ts +15 -0
- package/src/cmd/cloud/email/destination/list.ts +46 -0
- package/src/cmd/cloud/email/destination/schemas.ts +9 -0
- package/src/cmd/cloud/email/destination/url.ts +75 -0
- package/src/cmd/cloud/email/get.ts +52 -0
- package/src/cmd/cloud/email/inbound/get.ts +53 -0
- package/src/cmd/cloud/email/inbound/index.ts +13 -0
- package/src/cmd/cloud/email/inbound/list.ts +50 -0
- package/src/cmd/cloud/email/inbound/schemas.ts +11 -0
- package/src/cmd/cloud/email/index.ts +29 -0
- package/src/cmd/cloud/email/list.ts +44 -0
- package/src/cmd/cloud/email/outbound/get.ts +54 -0
- package/src/cmd/cloud/email/outbound/index.ts +13 -0
- package/src/cmd/cloud/email/outbound/list.ts +50 -0
- package/src/cmd/cloud/email/outbound/schemas.ts +15 -0
- package/src/cmd/cloud/email/send.ts +91 -0
- package/src/cmd/cloud/email/util.ts +89 -0
- package/src/cmd/cloud/index.ts +8 -0
- package/src/cmd/cloud/region-lookup.ts +58 -2
- package/src/cmd/cloud/sandbox/snapshot/build.ts +59 -55
- package/src/cmd/cloud/sandbox/snapshot/generate.ts +5 -1
- package/src/cmd/cloud/schedule/create.ts +83 -0
- package/src/cmd/cloud/schedule/delete.ts +43 -0
- package/src/cmd/cloud/schedule/delivery/get.ts +85 -0
- package/src/cmd/cloud/schedule/delivery/index.ts +24 -0
- package/src/cmd/cloud/schedule/delivery/list.ts +82 -0
- package/src/cmd/cloud/schedule/destination/create.ts +110 -0
- package/src/cmd/cloud/schedule/destination/delete.ts +46 -0
- package/src/cmd/cloud/schedule/destination/get.ts +66 -0
- package/src/cmd/cloud/schedule/destination/index.ts +27 -0
- package/src/cmd/cloud/schedule/destination/list.ts +72 -0
- package/src/cmd/cloud/schedule/get.ts +92 -0
- package/src/cmd/cloud/schedule/index.ts +36 -0
- package/src/cmd/cloud/schedule/list.ts +78 -0
- package/src/cmd/cloud/schedule/update.ts +74 -0
- package/src/cmd/cloud/schedule/util.ts +34 -0
- package/src/cmd/cloud/task/create.ts +124 -0
- package/src/cmd/cloud/task/get.ts +138 -0
- package/src/cmd/cloud/task/index.ts +34 -0
- package/src/cmd/cloud/task/list.ts +191 -0
- package/src/cmd/cloud/task/update.ts +123 -0
- package/src/cmd/cloud/task/util.ts +74 -0
- package/src/cmd/cloud/webhook/create.ts +66 -0
- package/src/cmd/cloud/webhook/delete.ts +57 -0
- package/src/cmd/cloud/webhook/deliveries.ts +149 -0
- package/src/cmd/cloud/webhook/destinations.ts +274 -0
- package/src/cmd/cloud/webhook/get.ts +59 -0
- package/src/cmd/cloud/webhook/index.ts +46 -0
- package/src/cmd/cloud/webhook/list.ts +82 -0
- package/src/cmd/cloud/webhook/receipts.ts +157 -0
- package/src/cmd/cloud/webhook/util.ts +35 -0
- package/src/cmd/project/add/domain.ts +10 -4
- package/src/cmd/project/domain/check.ts +16 -5
- package/src/cmd/project/template-flow.ts +2 -1
- package/src/domain.ts +96 -21
- package/src/types.ts +3 -1
- package/src/version-check.ts +22 -3
|
@@ -39,6 +39,7 @@ export const checkSubcommand = createSubcommand({
|
|
|
39
39
|
domain: z.string(),
|
|
40
40
|
recordType: z.string(),
|
|
41
41
|
target: z.string(),
|
|
42
|
+
aRecordTarget: z.string().optional(),
|
|
42
43
|
status: z.string(),
|
|
43
44
|
success: z.boolean(),
|
|
44
45
|
})
|
|
@@ -69,11 +70,17 @@ export const checkSubcommand = createSubcommand({
|
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
const results = jsonMode
|
|
72
|
-
? await checkCustomDomainForDNS(project.projectId, domainsToCheck, config)
|
|
73
|
+
? await checkCustomDomainForDNS(project.projectId, domainsToCheck, project.region, config)
|
|
73
74
|
: await tui.spinner({
|
|
74
75
|
message: `Checking DNS for ${domainsToCheck.length} ${tui.plural(domainsToCheck.length, 'domain', 'domains')}`,
|
|
75
76
|
clearOnSuccess: true,
|
|
76
|
-
callback: () =>
|
|
77
|
+
callback: () =>
|
|
78
|
+
checkCustomDomainForDNS(
|
|
79
|
+
project.projectId,
|
|
80
|
+
domainsToCheck,
|
|
81
|
+
project.region,
|
|
82
|
+
config
|
|
83
|
+
),
|
|
77
84
|
});
|
|
78
85
|
|
|
79
86
|
const domainResults = results.map((r) => {
|
|
@@ -106,6 +113,7 @@ export const checkSubcommand = createSubcommand({
|
|
|
106
113
|
domain: r.domain,
|
|
107
114
|
recordType: r.recordType,
|
|
108
115
|
target: r.target,
|
|
116
|
+
aRecordTarget: r.aRecordTarget,
|
|
109
117
|
status,
|
|
110
118
|
statusRaw,
|
|
111
119
|
success,
|
|
@@ -116,8 +124,10 @@ export const checkSubcommand = createSubcommand({
|
|
|
116
124
|
tui.newline();
|
|
117
125
|
for (const r of domainResults) {
|
|
118
126
|
console.log(` ${tui.colorInfo('Domain:')} ${tui.colorPrimary(r.domain)}`);
|
|
119
|
-
console.log(` ${tui.colorInfo('
|
|
120
|
-
|
|
127
|
+
console.log(` ${tui.colorInfo('CNAME:')} ${tui.colorPrimary(r.target)}`);
|
|
128
|
+
if (r.aRecordTarget) {
|
|
129
|
+
console.log(` ${tui.colorInfo('A:')} ${tui.colorPrimary(r.aRecordTarget)}`);
|
|
130
|
+
}
|
|
121
131
|
console.log(` ${tui.colorInfo('Status:')} ${r.status}`);
|
|
122
132
|
console.log();
|
|
123
133
|
}
|
|
@@ -128,7 +138,7 @@ export const checkSubcommand = createSubcommand({
|
|
|
128
138
|
} else {
|
|
129
139
|
const failCount = domainResults.filter((r) => !r.success).length;
|
|
130
140
|
tui.warning(
|
|
131
|
-
`${failCount} ${tui.plural(failCount, 'domain has', 'domains have')} DNS issues — add a CNAME record pointing to the
|
|
141
|
+
`${failCount} ${tui.plural(failCount, 'domain has', 'domains have')} DNS issues — add a CNAME or A record pointing to one of the targets shown above`
|
|
132
142
|
);
|
|
133
143
|
}
|
|
134
144
|
}
|
|
@@ -138,6 +148,7 @@ export const checkSubcommand = createSubcommand({
|
|
|
138
148
|
domain: r.domain,
|
|
139
149
|
recordType: r.recordType,
|
|
140
150
|
target: r.target,
|
|
151
|
+
aRecordTarget: r.aRecordTarget,
|
|
141
152
|
status: r.statusRaw,
|
|
142
153
|
success: r.success,
|
|
143
154
|
})),
|
|
@@ -768,7 +768,8 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<CreateF
|
|
|
768
768
|
const ok = await tui.confirm('Would you like to configure DNS now?', true);
|
|
769
769
|
if (ok) {
|
|
770
770
|
tui.newline();
|
|
771
|
-
|
|
771
|
+
const cloudRegion = region ?? process.env.AGENTUITY_REGION ?? 'usc';
|
|
772
|
+
await promptForDNS(projectId, _domains, cloudRegion, config);
|
|
772
773
|
}
|
|
773
774
|
}
|
|
774
775
|
|
package/src/domain.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Config } from './types';
|
|
2
2
|
import { StructuredError } from '@agentuity/core';
|
|
3
|
+
import { getIONHost } from './config';
|
|
3
4
|
import * as tui from './tui';
|
|
4
5
|
|
|
5
6
|
interface BaseDNSResult {
|
|
6
7
|
domain: string;
|
|
7
8
|
target: string;
|
|
8
9
|
recordType: string;
|
|
10
|
+
aRecordTarget?: string;
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
interface DNSSuccess extends BaseDNSResult {
|
|
@@ -68,7 +70,7 @@ interface CFRecord {
|
|
|
68
70
|
}[];
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
async function
|
|
73
|
+
async function fetchDNSRecords(name: string, type: string): Promise<string[]> {
|
|
72
74
|
const params = new URLSearchParams();
|
|
73
75
|
params.set('name', name);
|
|
74
76
|
params.set('type', type);
|
|
@@ -82,12 +84,15 @@ async function fetchDNSRecord(name: string, type: string): Promise<string | null
|
|
|
82
84
|
});
|
|
83
85
|
if (res.ok) {
|
|
84
86
|
const result = (await res.json()) as CFRecord;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return firstAnswer.data.replace(/\.$/, ''); // DNS records end with . so we remove that
|
|
88
|
-
}
|
|
87
|
+
// DNS records end with . so we remove that
|
|
88
|
+
return (result?.Answer ?? []).map((a) => a.data.replace(/\.$/, ''));
|
|
89
89
|
}
|
|
90
|
-
return
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
async function fetchDNSRecord(name: string, type: string): Promise<string | null> {
|
|
94
|
+
const records = await fetchDNSRecords(name, type);
|
|
95
|
+
return records[0] ?? null;
|
|
91
96
|
}
|
|
92
97
|
|
|
93
98
|
const LOCAL_DNS = 'agentuity.io';
|
|
@@ -105,12 +110,24 @@ const PRODUCTION_DNS = 'agentuity.run';
|
|
|
105
110
|
export async function checkCustomDomainForDNS(
|
|
106
111
|
projectId: string,
|
|
107
112
|
domains: string[],
|
|
113
|
+
region: string,
|
|
108
114
|
config?: Config | null
|
|
109
115
|
): Promise<DNSResult[]> {
|
|
110
116
|
const suffix = config?.overrides?.api_url?.includes('agentuity.io') ? LOCAL_DNS : PRODUCTION_DNS;
|
|
111
117
|
const id = Bun.hash.xxHash64(projectId).toString(16).padStart(16, '0');
|
|
112
118
|
const proxy = `p${id}.${suffix}`;
|
|
113
119
|
|
|
120
|
+
// Resolve the ION host A record(s) so we can validate A records
|
|
121
|
+
// and show the user what IP to point their A record to
|
|
122
|
+
const ionHost = getIONHost(config ?? null, region);
|
|
123
|
+
let ionIPs: string[] = [];
|
|
124
|
+
try {
|
|
125
|
+
ionIPs = await fetchDNSRecords(ionHost, 'A');
|
|
126
|
+
} catch {
|
|
127
|
+
// If we can't resolve the ION host, A record validation will be skipped
|
|
128
|
+
}
|
|
129
|
+
const aRecordTarget = ionIPs[0] ?? undefined;
|
|
130
|
+
|
|
114
131
|
return Promise.all(
|
|
115
132
|
domains.map(async (domain) => {
|
|
116
133
|
// Detect if user passed a URL instead of a domain name
|
|
@@ -120,6 +137,7 @@ export async function checkCustomDomainForDNS(
|
|
|
120
137
|
return {
|
|
121
138
|
domain,
|
|
122
139
|
target: proxy,
|
|
140
|
+
aRecordTarget,
|
|
123
141
|
recordType: 'CNAME',
|
|
124
142
|
success: false,
|
|
125
143
|
error: `Invalid domain format: "${domain}" appears to be a URL. Use just the domain name: "${url.hostname}"`,
|
|
@@ -128,6 +146,7 @@ export async function checkCustomDomainForDNS(
|
|
|
128
146
|
return {
|
|
129
147
|
domain,
|
|
130
148
|
target: proxy,
|
|
149
|
+
aRecordTarget,
|
|
131
150
|
recordType: 'CNAME',
|
|
132
151
|
success: false,
|
|
133
152
|
error: `Invalid domain format: "${domain}" appears to be a URL. Use just the domain name without the protocol (e.g., "example.com" not "https://example.com")`,
|
|
@@ -135,6 +154,7 @@ export async function checkCustomDomainForDNS(
|
|
|
135
154
|
}
|
|
136
155
|
}
|
|
137
156
|
|
|
157
|
+
// Step 1: Check CNAME record
|
|
138
158
|
try {
|
|
139
159
|
let timeoutId: Timer | undefined;
|
|
140
160
|
|
|
@@ -156,6 +176,7 @@ export async function checkCustomDomainForDNS(
|
|
|
156
176
|
return {
|
|
157
177
|
domain,
|
|
158
178
|
target: proxy,
|
|
179
|
+
aRecordTarget,
|
|
159
180
|
recordType: 'CNAME',
|
|
160
181
|
success: true,
|
|
161
182
|
} as DNSSuccess;
|
|
@@ -163,9 +184,10 @@ export async function checkCustomDomainForDNS(
|
|
|
163
184
|
return {
|
|
164
185
|
domain,
|
|
165
186
|
target: proxy,
|
|
187
|
+
aRecordTarget,
|
|
166
188
|
recordType: 'CNAME',
|
|
167
189
|
success: false,
|
|
168
|
-
misconfigured: `CNAME record
|
|
190
|
+
misconfigured: `CNAME record points to ${result}`,
|
|
169
191
|
} as DNSMisconfigured;
|
|
170
192
|
}
|
|
171
193
|
} catch (ex) {
|
|
@@ -174,6 +196,7 @@ export async function checkCustomDomainForDNS(
|
|
|
174
196
|
return {
|
|
175
197
|
domain,
|
|
176
198
|
target: proxy,
|
|
199
|
+
aRecordTarget,
|
|
177
200
|
recordType: 'CNAME',
|
|
178
201
|
success: false,
|
|
179
202
|
error: `DNS lookup timed out after 5 seconds. Please check your DNS configuration.`,
|
|
@@ -189,16 +212,63 @@ export async function checkCustomDomainForDNS(
|
|
|
189
212
|
return {
|
|
190
213
|
domain,
|
|
191
214
|
target: proxy,
|
|
215
|
+
aRecordTarget,
|
|
192
216
|
recordType: 'CNAME',
|
|
193
217
|
success: false,
|
|
194
218
|
error: errMsg,
|
|
195
219
|
} as DNSError;
|
|
196
220
|
}
|
|
221
|
+
// ENOTFOUND: no CNAME record exists, fall through to A record check
|
|
197
222
|
}
|
|
223
|
+
|
|
224
|
+
// Step 2: Check A record (supports apex domains and ALIAS/ANAME/CNAME-flattening)
|
|
225
|
+
if (ionIPs.length > 0) {
|
|
226
|
+
try {
|
|
227
|
+
let aTimeoutId: Timer | undefined;
|
|
228
|
+
|
|
229
|
+
const aTimeoutPromise = new Promise<never>((_, reject) => {
|
|
230
|
+
aTimeoutId = setTimeout(() => {
|
|
231
|
+
reject(new DNSTimeoutError());
|
|
232
|
+
}, timeoutMs);
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
const domainARecords = await Promise.race([
|
|
236
|
+
fetchDNSRecords(domain, 'A'),
|
|
237
|
+
aTimeoutPromise,
|
|
238
|
+
]).finally(() => {
|
|
239
|
+
if (aTimeoutId) clearTimeout(aTimeoutId);
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
if (domainARecords.length > 0) {
|
|
243
|
+
const matching = domainARecords.some((a) => ionIPs.includes(a));
|
|
244
|
+
if (matching) {
|
|
245
|
+
return {
|
|
246
|
+
domain,
|
|
247
|
+
target: proxy,
|
|
248
|
+
aRecordTarget,
|
|
249
|
+
recordType: 'A',
|
|
250
|
+
success: true,
|
|
251
|
+
} as DNSSuccess;
|
|
252
|
+
}
|
|
253
|
+
return {
|
|
254
|
+
domain,
|
|
255
|
+
target: proxy,
|
|
256
|
+
aRecordTarget,
|
|
257
|
+
recordType: 'A',
|
|
258
|
+
success: false,
|
|
259
|
+
misconfigured: `A record points to ${domainARecords[0]}, expected ${aRecordTarget}`,
|
|
260
|
+
} as DNSMisconfigured;
|
|
261
|
+
}
|
|
262
|
+
} catch {
|
|
263
|
+
// A record check failed, fall through to missing
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
198
267
|
return {
|
|
199
268
|
domain,
|
|
200
269
|
success: false,
|
|
201
270
|
target: proxy,
|
|
271
|
+
aRecordTarget,
|
|
202
272
|
recordType: 'CNAME',
|
|
203
273
|
pending: false,
|
|
204
274
|
} as DNSMissing;
|
|
@@ -209,27 +279,28 @@ export async function checkCustomDomainForDNS(
|
|
|
209
279
|
export async function promptForDNS(
|
|
210
280
|
projectId: string,
|
|
211
281
|
domains: string[],
|
|
282
|
+
region: string,
|
|
212
283
|
config?: Config,
|
|
213
284
|
resumeFn?: () => () => void
|
|
214
285
|
) {
|
|
215
286
|
let paused = false;
|
|
216
287
|
let resume: (() => void) | undefined;
|
|
217
288
|
for (;;) {
|
|
218
|
-
const result = await checkCustomDomainForDNS(projectId, domains, config);
|
|
289
|
+
const result = await checkCustomDomainForDNS(projectId, domains, region, config);
|
|
219
290
|
const failed = result.filter((x): x is DNSFailed => !isSuccess(x));
|
|
220
291
|
if (failed.length) {
|
|
221
292
|
const records: {
|
|
222
293
|
domain: string;
|
|
223
|
-
|
|
224
|
-
|
|
294
|
+
cnameTarget: string;
|
|
295
|
+
aRecordTarget?: string;
|
|
225
296
|
status: string;
|
|
226
297
|
}[] = [];
|
|
227
298
|
result.forEach((r) => {
|
|
228
299
|
if (isSuccess(r)) {
|
|
229
300
|
records.push({
|
|
230
301
|
domain: r.domain,
|
|
231
|
-
|
|
232
|
-
|
|
302
|
+
cnameTarget: r.target,
|
|
303
|
+
aRecordTarget: r.aRecordTarget,
|
|
233
304
|
status: tui.colorSuccess(`${tui.ICONS.success} Configured`),
|
|
234
305
|
});
|
|
235
306
|
}
|
|
@@ -248,22 +319,22 @@ export async function promptForDNS(
|
|
|
248
319
|
} else if (isMisconfigured(r)) {
|
|
249
320
|
records.push({
|
|
250
321
|
domain: r.domain,
|
|
251
|
-
|
|
252
|
-
|
|
322
|
+
cnameTarget: r.target,
|
|
323
|
+
aRecordTarget: r.aRecordTarget,
|
|
253
324
|
status: tui.colorWarning(`${tui.ICONS.error} ${r.misconfigured}`),
|
|
254
325
|
});
|
|
255
326
|
} else if (isPending(r)) {
|
|
256
327
|
records.push({
|
|
257
328
|
domain: r.domain,
|
|
258
|
-
|
|
259
|
-
|
|
329
|
+
cnameTarget: r.target,
|
|
330
|
+
aRecordTarget: r.aRecordTarget,
|
|
260
331
|
status: tui.colorWarning('⌛️ Pending'),
|
|
261
332
|
});
|
|
262
333
|
} else if (isMissing(r)) {
|
|
263
334
|
records.push({
|
|
264
335
|
domain: r.domain,
|
|
265
|
-
|
|
266
|
-
|
|
336
|
+
cnameTarget: r.target,
|
|
337
|
+
aRecordTarget: r.aRecordTarget,
|
|
267
338
|
status: tui.colorError(`${tui.ICONS.error} Missing`),
|
|
268
339
|
});
|
|
269
340
|
}
|
|
@@ -273,11 +344,15 @@ export async function promptForDNS(
|
|
|
273
344
|
for (const record of records) {
|
|
274
345
|
console.log();
|
|
275
346
|
console.log(`${tui.colorInfo('Domain:')} ${tui.colorPrimary(record.domain)}`);
|
|
276
|
-
console.log(`${tui.colorInfo('
|
|
277
|
-
|
|
347
|
+
console.log(`${tui.colorInfo('CNAME:')} ${tui.colorPrimary(record.cnameTarget)}`);
|
|
348
|
+
if (record.aRecordTarget) {
|
|
349
|
+
console.log(
|
|
350
|
+
`${tui.colorInfo('A:')} ${tui.colorPrimary(record.aRecordTarget)}`
|
|
351
|
+
);
|
|
352
|
+
}
|
|
278
353
|
console.log(`${tui.colorInfo('Status:')} ${tui.colorPrimary(record.status)}`);
|
|
279
354
|
console.log();
|
|
280
|
-
linesShown += 6;
|
|
355
|
+
linesShown += record.aRecordTarget ? 6 : 5;
|
|
281
356
|
}
|
|
282
357
|
|
|
283
358
|
// await tui.waitForAnyKey('Press any key to check again or ctrl+c to cancel...');
|
package/src/types.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { Logger } from '@agentuity/core';
|
|
2
2
|
import {
|
|
3
3
|
DeploymentConfig,
|
|
4
|
+
ProjectBuildConfig,
|
|
4
5
|
BuildMetadataSchema as ServerBuildMetadataSchema,
|
|
5
6
|
} from '@agentuity/server';
|
|
6
7
|
import type * as z from 'zod';
|
|
7
8
|
import { z as zod } from 'zod';
|
|
8
9
|
import type { APIClient } from './api';
|
|
9
10
|
|
|
10
|
-
export { DeploymentConfig };
|
|
11
|
+
export { DeploymentConfig, ProjectBuildConfig };
|
|
11
12
|
|
|
12
13
|
export type { Logger };
|
|
13
14
|
|
|
@@ -720,6 +721,7 @@ export const ProjectSchema = zod.object({
|
|
|
720
721
|
orgId: zod.string().describe('the organization id'),
|
|
721
722
|
region: zod.string().describe('the region identifier that the project is deployed into'),
|
|
722
723
|
deployment: DeploymentConfig.optional().describe('the deployment configuration'),
|
|
724
|
+
build: ProjectBuildConfig.optional().describe('the CI/CD build configuration'),
|
|
723
725
|
skipGitSetup: zod
|
|
724
726
|
.boolean()
|
|
725
727
|
.optional()
|
package/src/version-check.ts
CHANGED
|
@@ -215,10 +215,29 @@ async function performUpgrade(logger: Logger, targetVersion: string): Promise<vo
|
|
|
215
215
|
// Exit with the same exit code as the new process
|
|
216
216
|
process.exit(proc.exitCode ?? 0);
|
|
217
217
|
} catch (error) {
|
|
218
|
-
|
|
219
|
-
logger.error('Upgrade failed: %s',
|
|
218
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
219
|
+
logger.error('Upgrade failed: %s', errorMessage);
|
|
220
|
+
|
|
221
|
+
// Check for known bun package manager bug (oven-sh/bun#18354)
|
|
222
|
+
if (errorMessage.includes('BadPathName')) {
|
|
223
|
+
tui.newline();
|
|
224
|
+
tui.warning(
|
|
225
|
+
'This appears to be a known bun package manager issue with stale global packages.'
|
|
226
|
+
);
|
|
227
|
+
tui.info('To fix this, run one of the following:');
|
|
228
|
+
tui.newline();
|
|
229
|
+
tui.info(` ${tui.bold('Option 1:')} Clear stale packages and reinstall`);
|
|
230
|
+
tui.info(` ${tui.muted('$')} rm -rf ~/.bun/install/global`);
|
|
231
|
+
tui.info(` ${tui.muted('$')} bun add -g @agentuity/cli@latest`);
|
|
232
|
+
tui.newline();
|
|
233
|
+
tui.info(` ${tui.bold('Option 2:')} Use the install script`);
|
|
234
|
+
tui.info(` ${tui.muted('$')} curl -fsSL https://agentuity.sh | sh`);
|
|
235
|
+
tui.newline();
|
|
236
|
+
}
|
|
237
|
+
|
|
220
238
|
tui.warning('Continuing with current version...');
|
|
221
|
-
tui.info('');
|
|
239
|
+
tui.info('You can upgrade later by running: agentuity upgrade');
|
|
240
|
+
tui.newline();
|
|
222
241
|
}
|
|
223
242
|
}
|
|
224
243
|
|