@enterpriseai/cli 3.19.1 → 3.19.3

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.
Files changed (89) hide show
  1. package/README.md +28 -0
  2. package/dist/commands/eai-managed-deploy-customer-source.d.ts.map +1 -1
  3. package/dist/commands/eai-managed-deploy-customer-source.js +24 -0
  4. package/dist/commands/eai-managed-deploy-customer-source.js.map +1 -1
  5. package/dist/commands/eai-managed-deploy-github-dispatch.d.ts.map +1 -1
  6. package/dist/commands/eai-managed-deploy-github-dispatch.js +30 -0
  7. package/dist/commands/eai-managed-deploy-github-dispatch.js.map +1 -1
  8. package/dist/commands/init.d.ts +2 -0
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +33 -1
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/provision.js +2 -5
  13. package/dist/commands/provision.js.map +1 -1
  14. package/dist/commands/support.d.ts +18 -0
  15. package/dist/commands/support.d.ts.map +1 -0
  16. package/dist/commands/support.js +110 -0
  17. package/dist/commands/support.js.map +1 -0
  18. package/dist/commands/types.d.ts +5 -1
  19. package/dist/commands/types.d.ts.map +1 -1
  20. package/dist/commands/types.js +55 -12
  21. package/dist/commands/types.js.map +1 -1
  22. package/dist/index.js +34 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/lib/agent-guide.d.ts.map +1 -1
  25. package/dist/lib/agent-guide.js +25 -4
  26. package/dist/lib/agent-guide.js.map +1 -1
  27. package/dist/lib/api.d.ts +4 -2
  28. package/dist/lib/api.d.ts.map +1 -1
  29. package/dist/lib/api.js +17 -5
  30. package/dist/lib/api.js.map +1 -1
  31. package/dist/lib/config.d.ts +2 -0
  32. package/dist/lib/config.d.ts.map +1 -1
  33. package/dist/lib/config.js +8 -0
  34. package/dist/lib/config.js.map +1 -1
  35. package/dist/lib/eai-managed-deploy-contract.d.ts +4 -0
  36. package/dist/lib/eai-managed-deploy-contract.d.ts.map +1 -1
  37. package/dist/lib/eai-managed-deploy-contract.js.map +1 -1
  38. package/dist/lib/eai-managed-deploy-operation.d.ts.map +1 -1
  39. package/dist/lib/eai-managed-deploy-operation.js +14 -0
  40. package/dist/lib/eai-managed-deploy-operation.js.map +1 -1
  41. package/dist/lib/eai-managed-deploy-state.d.ts.map +1 -1
  42. package/dist/lib/eai-managed-deploy-state.js +15 -1
  43. package/dist/lib/eai-managed-deploy-state.js.map +1 -1
  44. package/dist/lib/error-codes.d.ts.map +1 -1
  45. package/dist/lib/error-codes.js +6 -3
  46. package/dist/lib/error-codes.js.map +1 -1
  47. package/dist/lib/output.d.ts +1 -0
  48. package/dist/lib/output.d.ts.map +1 -1
  49. package/dist/lib/output.js +3 -0
  50. package/dist/lib/output.js.map +1 -1
  51. package/dist/lib/profile.d.ts +2 -0
  52. package/dist/lib/profile.d.ts.map +1 -1
  53. package/dist/lib/profile.js.map +1 -1
  54. package/dist/lib/support-context.d.ts +31 -0
  55. package/dist/lib/support-context.d.ts.map +1 -0
  56. package/dist/lib/support-context.js +193 -0
  57. package/dist/lib/support-context.js.map +1 -0
  58. package/dist/lib/support-redaction.d.ts +10 -0
  59. package/dist/lib/support-redaction.d.ts.map +1 -0
  60. package/dist/lib/support-redaction.js +44 -0
  61. package/dist/lib/support-redaction.js.map +1 -0
  62. package/dist/lib/support-report.d.ts +68 -0
  63. package/dist/lib/support-report.d.ts.map +1 -0
  64. package/dist/lib/support-report.js +165 -0
  65. package/dist/lib/support-report.js.map +1 -0
  66. package/package.json +5 -4
  67. package/resources/deploy/eai-app-template/.github/workflows/eai-app.yml +46 -13
  68. package/resources/deploy/eai-app-template/producer-pin.json +8 -8
  69. package/resources/deploy/eai-app-template/scripts/source-unknown-deployment-evidence.mjs +29 -2
  70. package/resources/deploy/eai-app-template/tests/source-unknown-deployment-evidence.test.mjs +2239 -1
  71. package/resources/gofer/agents-skills/eai/SKILL.md +20 -0
  72. package/resources/gofer/claude-commands/eai.md +20 -0
  73. package/resources/gofer/claude-skills/eai/SKILL.md +20 -0
  74. package/resources/gofer/commands/0_gofer_start.md +18 -0
  75. package/resources/gofer/commands/gofer_eai_first_run.md +18 -0
  76. package/resources/gofer/copilot-prompts/eai.prompt.md +20 -0
  77. package/resources/gofer/gemini/commands/gofer/eai.md +20 -0
  78. package/resources/gofer/github-skills/eai/SKILL.md +20 -0
  79. package/resources/gofer/grok-skills/eai/SKILL.md +20 -0
  80. package/resources/gofer/instruction-templates/base/agents-base.md +18 -0
  81. package/resources/gofer/instruction-templates/base/claude-base.md +18 -0
  82. package/resources/gofer/instruction-templates/base/copilot-base.md +18 -0
  83. package/resources/gofer/instruction-templates/gofer/gofer-claude.md +4 -0
  84. package/resources/gofer/node-scripts/generate-commands.mjs +26 -0
  85. package/resources/gofer/references/platform/eai-support.md +19 -0
  86. package/resources/gofer/specify-commands/0_gofer_start.md +18 -0
  87. package/resources/gofer/specify-commands/gofer_eai_first_run.md +18 -0
  88. package/resources/gofer/system-skills/eai/SKILL.md +20 -0
  89. package/resources/linked-sources.json +2 -2
@@ -0,0 +1,110 @@
1
+ import { Command } from 'commander';
2
+ import { execFile } from 'node:child_process';
3
+ import { promisify } from 'node:util';
4
+ import inquirer from 'inquirer';
5
+ import { getBrowserOpenCommand, loadTokens } from '../lib/auth.js';
6
+ import { collectSupportBundle, createSupportDraft, resolveSupportWebsite, SupportRequestError } from '../lib/support-report.js';
7
+ const execFileAsync = promisify(execFile);
8
+ async function openSupportBrowser(url) {
9
+ const { command, args } = getBrowserOpenCommand(url);
10
+ await execFileAsync(command, args, { timeout: 5000 });
11
+ }
12
+ async function confirmSupport() {
13
+ const answers = await inquirer.prompt([{
14
+ type: 'confirm', name: 'consent', default: false,
15
+ message: 'Send this redacted report to EAI Support for a temporary draft?',
16
+ }]);
17
+ return answers.consent;
18
+ }
19
+ /**
20
+ * Previews a locally redacted report; options.yes asserts prior human consent to that report.
21
+ * JSON/noninteractive callers otherwise preview only; interactive text asks before sending.
22
+ * JSON emits consent_required, signed_out, created or failed and never opens a browser.
23
+ * Preparation/request failures set process.exitCode to 1; missing/expired/rejected sessions return a plain support link.
24
+ */
25
+ export async function runSupport(options, dependencies = {}) {
26
+ const json = options.format === 'json';
27
+ let plainUrl;
28
+ const emit = (result) => {
29
+ // The validated capability link is the only token-bearing output; do not serialize the server response.
30
+ if (json)
31
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
32
+ else {
33
+ if (typeof result.message === 'string')
34
+ console.log(result.message);
35
+ if (typeof result.url === 'string')
36
+ console.log(result.url);
37
+ }
38
+ };
39
+ try {
40
+ const website = await resolveSupportWebsite();
41
+ plainUrl = `${website}/support`;
42
+ const session = await loadTokens();
43
+ const bundle = await collectSupportBundle(options, session);
44
+ if (!json) {
45
+ console.log('Redacted support report (review before sending):');
46
+ console.log(JSON.stringify(bundle, null, 2));
47
+ }
48
+ if (!session?.accessToken || !Number.isFinite(session.expiresAt) || session.expiresAt <= Date.now()) {
49
+ emit({ ok: true, status: 'signed_out', bundle, url: plainUrl,
50
+ message: 'No valid eai login session. Open the Support page to report this manually; no draft was created.' });
51
+ return;
52
+ }
53
+ // JSON mode is a preview until the human has approved the report in the harness chat.
54
+ const interactive = dependencies.isInteractive ?? Boolean(process.stdin.isTTY && process.stdout.isTTY);
55
+ if (!options.yes && (json || !interactive)) {
56
+ emit({ ok: true, status: 'consent_required', bundle,
57
+ message: 'Show this bundle to the person and ask for consent. Only after explicit approval, rerun with --yes.' });
58
+ return;
59
+ }
60
+ if (!options.yes && !await (dependencies.confirm ?? confirmSupport)()) {
61
+ emit({ ok: true, status: 'declined', bundle, message: 'No report was sent and no draft was created.' });
62
+ return;
63
+ }
64
+ const draft = await createSupportDraft(website, bundle, session.accessToken);
65
+ if (!draft) {
66
+ emit({ ok: true, status: 'signed_out', bundle, url: plainUrl,
67
+ message: 'The website rejected the login session. Open the Support page to report this manually; no draft was created.' });
68
+ return;
69
+ }
70
+ emit({ ok: true, status: 'created', bundle, url: draft.url, expiresAt: draft.expiresAt,
71
+ message: 'Support draft created. Open the link to review and submit it before it expires.' });
72
+ if (!json && options.open !== false) {
73
+ try {
74
+ await (dependencies.openBrowser ?? openSupportBrowser)(draft.url);
75
+ }
76
+ catch {
77
+ console.error('The browser could not open. Use the Support link printed above.');
78
+ }
79
+ }
80
+ }
81
+ catch (error) {
82
+ const message = error instanceof SupportRequestError ? error.message
83
+ : 'The support report could not be prepared. Check the support options and website configuration.';
84
+ const code = error instanceof SupportRequestError ? error.code : 'invalid_report';
85
+ if (json)
86
+ emit({ ok: false, status: 'failed', error: { code, message }, url: plainUrl });
87
+ else {
88
+ console.error(message);
89
+ if (plainUrl)
90
+ console.log(plainUrl);
91
+ }
92
+ process.exitCode = 1;
93
+ }
94
+ }
95
+ /** CLI support entry point; --yes is reserved for the person's explicit approval of the previewed report. */
96
+ export const supportCommand = new Command('support')
97
+ .description('Review a redacted error report and hand it to the Support page with consent')
98
+ .option('--format <format>', 'Output format (text|json); JSON previews until consent is given', 'text')
99
+ .option('--source <source>', 'Report source (eai-cli|harness)')
100
+ .option('--tool <name>', 'AI harness name; selects harness source unless --source is set')
101
+ .option('--tool-version <version>', 'AI harness version, when known')
102
+ .option('--command <command>', 'Failing command, with credentials omitted')
103
+ .option('--exit-code <code>', 'Failing command exit code')
104
+ .option('--error-code <code-or-reason>', 'Error code or reason from eai errors list')
105
+ .option('--description <text>', 'Optional report description, redacted locally')
106
+ .option('--yes', 'Send only when the person has already explicitly consented to this report', false)
107
+ .option('--no-open', 'Print the Support link without opening the browser')
108
+ .addHelpText('after', '\nWithout --yes, JSON and noninteractive runs only preview the report.\nAfter the person approves the preview, rerun the same command with --yes.\nOnly the draft id and one-time token appear in the link fragment.\n')
109
+ .action(async (options) => { await runSupport(options); });
110
+ //# sourceMappingURL=support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/commands/support.ts"],"names":[],"mappings":"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"}
@@ -130,7 +130,11 @@ export declare function summarizeAppObjectTypePublish(tenantKey: string, tenantI
130
130
  * Publishes through the app manifest and negotiates the receiver's slug shape once.
131
131
  * Falls back to legacy direct writes only when the app-manifest route is unavailable.
132
132
  */
133
- export declare function trySeedViaAppManifestPublish(client: PlatformAPIClient, tenantKey: string, tenantId: string, types: ObjectTypeDefinition[]): Promise<{
133
+ export declare function trySeedViaAppManifestPublish(client: PlatformAPIClient, tenantKey: string, tenantId: string, types: ObjectTypeDefinition[], runtimeTenantId?: string): Promise<{
134
+ result?: TypeSeedResult;
135
+ fallbackReason?: string;
136
+ }>;
137
+ export declare function publishAppObjectTypesForRuntime(appClient: PlatformAPIClient, runtimeClient: PlatformAPIClient, tenantKey: string, appTenantId: string, runtimeTenantId: string, types: ObjectTypeDefinition[]): Promise<{
134
138
  result?: TypeSeedResult;
135
139
  fallbackReason?: string;
136
140
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"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"}
@@ -550,14 +550,14 @@ export async function describeFailedPlatformResponse(response) {
550
550
  const requestId = context.requestId ? ` (request ${context.requestId})` : "";
551
551
  return `${status} - ${code}${truncatedDetail}${requestId}`;
552
552
  }
553
- function appOwnedStoragePublishGuidance(message, tenantKey, tenantId) {
553
+ function appOwnedStoragePublishGuidance(message, tenantKey, tenantId, appTenantId = tenantId) {
554
554
  if (!/databaseAlias|storageBinding|app-owned prefix|not authorized|tableName/i.test(message)) {
555
555
  return "";
556
556
  }
557
557
  return [
558
558
  "",
559
559
  "Why this can happen: workspace app Object Types must use app-owned storage bindings. Shared platform aliases and generic table names are rejected by the platform.",
560
- `Next steps: run eai app provision ${tenantKey} --tenant-id ${tenantId} --select --format json, update src/eai.config/object-types.ts to use tenant-postgres and app-owned table names, then rerun eai types validate --tenant-key ${tenantKey} --tenant-id ${tenantId} and eai types seed --tenant-key ${tenantKey} --tenant-id ${tenantId}.`,
560
+ `Next steps: run eai app provision ${tenantKey} --tenant-id ${appTenantId} --select --format json, update src/eai.config/object-types.ts to use tenant-postgres and app-owned table names, then rerun eai types validate --tenant-key ${tenantKey} --tenant-id ${tenantId} and eai types seed --tenant-key ${tenantKey} --tenant-id ${tenantId}${appTenantId === tenantId ? '' : ` --app-tenant-id ${appTenantId}`}.`,
561
561
  ].join("\n");
562
562
  }
563
563
  async function archiveDuplicateRemoteTypes(client, duplicates) {
@@ -704,11 +704,31 @@ export function summarizeAppObjectTypePublish(tenantKey, tenantId, types, payloa
704
704
  * Publishes through the app manifest and negotiates the receiver's slug shape once.
705
705
  * Falls back to legacy direct writes only when the app-manifest route is unavailable.
706
706
  */
707
- export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId, types) {
707
+ export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId, types, runtimeTenantId = tenantId) {
708
+ const splitTenantScope = runtimeTenantId !== tenantId;
709
+ if (splitTenantScope) {
710
+ const bindingResponse = await client.getBoundAppProvisioningJobs(tenantKey, runtimeTenantId);
711
+ if (!bindingResponse.ok) {
712
+ throw new Error(`app enrollment binding preflight failed: ${await describeFailedPlatformResponse(bindingResponse)}`);
713
+ }
714
+ const binding = await bindingResponse.json();
715
+ const enrollment = isRecord(binding) && isRecord(binding.enrollment) ? binding.enrollment : null;
716
+ const metadata = enrollment && isRecord(enrollment.metadata) ? enrollment.metadata : null;
717
+ const childTenantIds = [enrollment?.childTenantId, metadata?.childTenantId]
718
+ .filter((value) => value !== undefined && value !== null);
719
+ if (!isRecord(binding) || binding.tenantId !== tenantId
720
+ || binding.appKey !== tenantKey || childTenantIds.length === 0
721
+ || childTenantIds.some((value) => value !== runtimeTenantId)) {
722
+ throw new Error('app enrollment binding preflight did not match the exact parent, app, and runtime tenant');
723
+ }
724
+ }
708
725
  let appManifestRequestShape = "explicit-name-and-slug";
709
- let manifestResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types));
726
+ let manifestResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types), splitTenantScope ? runtimeTenantId : undefined);
710
727
  const manifestFallbackReason = await appObjectTypePublishFallbackReason(manifestResponse, "save");
711
728
  if (manifestFallbackReason) {
729
+ if (splitTenantScope) {
730
+ throw new Error(`app manifest save failed for bound runtime tenant: ${manifestFallbackReason}`);
731
+ }
712
732
  return { fallbackReason: manifestFallbackReason };
713
733
  }
714
734
  // INVARIANT: A 422 saves no manifest, so only that response permits the
@@ -725,7 +745,7 @@ export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId,
725
745
  "Run eai errors explain app_manifest_validation_failed --format json.",
726
746
  ].join("\n"));
727
747
  }
728
- const nameDerivedResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types, "name-derived-slug"));
748
+ const nameDerivedResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types, "name-derived-slug"), splitTenantScope ? runtimeTenantId : undefined);
729
749
  if (nameDerivedResponse.ok) {
730
750
  manifestResponse = nameDerivedResponse;
731
751
  appManifestRequestShape = "name-derived-slug";
@@ -742,20 +762,37 @@ export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId,
742
762
  }
743
763
  if (!manifestResponse.ok) {
744
764
  const detail = await describeFailedPlatformResponse(manifestResponse);
745
- throw new Error(`app manifest save failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, tenantId)}`);
765
+ throw new Error(`app manifest save failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, runtimeTenantId, tenantId)}`);
746
766
  }
747
- const publishResponse = await client.publishAppObjectTypes(tenantKey);
767
+ const publishResponse = await client.publishAppObjectTypes(tenantKey, splitTenantScope ? runtimeTenantId : undefined);
748
768
  const publishFallbackReason = await appObjectTypePublishFallbackReason(publishResponse, "publish");
749
769
  if (publishFallbackReason) {
770
+ if (splitTenantScope) {
771
+ throw new Error(`app manifest publish failed for bound runtime tenant: ${publishFallbackReason}`);
772
+ }
750
773
  return { fallbackReason: publishFallbackReason };
751
774
  }
752
775
  if (!publishResponse.ok) {
753
776
  const detail = await describeFailedPlatformResponse(publishResponse);
754
- throw new Error(`app manifest publish failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, tenantId)}`);
777
+ throw new Error(`app manifest publish failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, runtimeTenantId, tenantId)}`);
755
778
  }
756
- const result = summarizeAppObjectTypePublish(tenantKey, tenantId, types, await publishResponse.json(), appManifestRequestShape);
779
+ const publishPayload = await publishResponse.json();
780
+ if (splitTenantScope && (!isRecord(publishPayload)
781
+ || publishPayload.tenantId !== tenantId
782
+ || !isRecord(publishPayload.verification)
783
+ || publishPayload.verification.tenantId !== runtimeTenantId)) {
784
+ throw new Error('app manifest publish did not verify the exact parent and runtime tenant');
785
+ }
786
+ const result = summarizeAppObjectTypePublish(tenantKey, runtimeTenantId, types, publishPayload, appManifestRequestShape);
757
787
  return { result };
758
788
  }
789
+ export async function publishAppObjectTypesForRuntime(appClient, runtimeClient, tenantKey, appTenantId, runtimeTenantId, types) {
790
+ const outcome = await trySeedViaAppManifestPublish(appClient, tenantKey, appTenantId, types, runtimeTenantId);
791
+ if (outcome.result) {
792
+ outcome.result.resourceApiSchemaSync = await waitForResourceApiSchemaVisibility(runtimeClient, runtimeTenantId, types.map((type) => type.name), outcome.result.resourceApiSchemaSync);
793
+ }
794
+ return outcome;
795
+ }
759
796
  const RESOURCEAPI_SYNC_SUCCESS_STATUSES = new Set([
760
797
  "applied",
761
798
  "already_applied",
@@ -1027,6 +1064,7 @@ typesCommand
1027
1064
  .option("--env <label>", "Optional deployment label for compatibility")
1028
1065
  .option("--tenant-key <key>", "Workspace scope key from object-types.ts (current option name)")
1029
1066
  .option("--tenant-id <id>", "Override the resolved workspace ID (use with --tenant-key)")
1067
+ .option("--app-tenant-id <id>", "Parent tenant that owns this app enrollment; --tenant-id remains the runtime child")
1030
1068
  .option("--dry-run", "Show what would be seeded without making changes", false)
1031
1069
  .option("--format <format>", "Output format (text|json)", "text")
1032
1070
  .option("--json", "Output raw JSON (deprecated, use --format json)", false)
@@ -1036,6 +1074,7 @@ Examples:
1036
1074
  $ eai types seed --dry-run
1037
1075
  $ eai types seed --tenant-key trial-portal
1038
1076
  $ eai types seed --tenant-key template --tenant-id 00000000-0000-4000-8000-000000000000
1077
+ $ eai types seed --tenant-key template --tenant-id <runtime-child-id> --app-tenant-id <parent-id>
1039
1078
  $ eai types seed --format json | jq
1040
1079
  `)
1041
1080
  .action(async (options) => {
@@ -1043,6 +1082,9 @@ Examples:
1043
1082
  if (options.json) {
1044
1083
  options.format = "json";
1045
1084
  }
1085
+ if (options.appTenantId && (!options.tenantId || !options.tenantKey)) {
1086
+ exitWithError(ErrorCode.E303, { field: "--app-tenant-id requires --tenant-id and --tenant-key" }, options.format);
1087
+ }
1046
1088
  const ctx = await resolveCommandContext({ tenantId: options.tenantId });
1047
1089
  const { root, publicApiUrl, activeTenant: activeContextTenant } = ctx;
1048
1090
  // Wrap in shape expected by downstream helpers
@@ -1173,14 +1215,15 @@ Examples:
1173
1215
  continue;
1174
1216
  }
1175
1217
  const client = new PlatformAPIClient(publicApiUrl, tenantId);
1218
+ const appClient = options.appTenantId
1219
+ ? new PlatformAPIClient(publicApiUrl, options.appTenantId)
1220
+ : client;
1176
1221
  let created = 0, updated = 0, failed = 0;
1177
1222
  let remoteDocs = [];
1178
1223
  let appManifestFallbackReason;
1179
1224
  try {
1180
- const appPublishOutcome = await trySeedViaAppManifestPublish(client, tenantKey, tenantId, types);
1225
+ const appPublishOutcome = await publishAppObjectTypesForRuntime(appClient, client, tenantKey, options.appTenantId ?? tenantId, tenantId, types);
1181
1226
  if (appPublishOutcome.result) {
1182
- appPublishOutcome.result.resourceApiSchemaSync =
1183
- await waitForResourceApiSchemaVisibility(client, tenantId, types.map((type) => type.name), appPublishOutcome.result.resourceApiSchemaSync);
1184
1227
  if (options.format !== "json") {
1185
1228
  out.success("Published via app object-type manifest");
1186
1229
  out.info(`Result: ${chalk.green(`${appPublishOutcome.result.created} created`)}, ${chalk.cyan(`${appPublishOutcome.result.updated} updated`)}, ${chalk.red(`${appPublishOutcome.result.failed} failed`)}`);