@wayai/cli 0.3.70 → 0.3.72

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/index.js CHANGED
@@ -7855,6 +7855,24 @@ var init_layout = __esm({
7855
7855
  });
7856
7856
 
7857
7857
  // src/lib/workspace.ts
7858
+ var workspace_exports = {};
7859
+ __export(workspace_exports, {
7860
+ autoRenameHubFolder: () => autoRenameHubFolder,
7861
+ detectWorkspace: () => detectWorkspace,
7862
+ findEnclosingHubFolder: () => findEnclosingHubFolder,
7863
+ findGitRoot: () => findGitRoot,
7864
+ findHubByFolderName: () => findHubByFolderName,
7865
+ findLocalHubFolder: () => findLocalHubFolder,
7866
+ findRepoRootSync: () => findRepoRootSync,
7867
+ getChangedHubs: () => getChangedHubs,
7868
+ getHubFolderSlug: () => getHubFolderSlug,
7869
+ resolveActiveHubId: () => resolveActiveHubId,
7870
+ resolveExplicitHubPath: () => resolveExplicitHubPath,
7871
+ resolveHubFolder: () => resolveHubFolder,
7872
+ resolveHubFolderBySelector: () => resolveHubFolderBySelector,
7873
+ scanNewHubs: () => scanNewHubs,
7874
+ scanWorkspaceHubs: () => scanWorkspaceHubs
7875
+ });
7858
7876
  import { execFileSync } from "child_process";
7859
7877
  import * as fs2 from "fs";
7860
7878
  import * as path2 from "path";
@@ -7957,6 +7975,79 @@ function findLocalHubFolder(hubId) {
7957
7975
  const match = scanWorkspaceHubs(workspaceDir).find((h) => h.hubId === hubId);
7958
7976
  return match ? match.hubFolder : null;
7959
7977
  }
7978
+ function getChangedHubs(workspaceDir) {
7979
+ const gitRoot = findGitRoot();
7980
+ if (!gitRoot) return [];
7981
+ const relWorkspace = path2.relative(gitRoot, workspaceDir);
7982
+ const normalizedRel = path2.normalize(relWorkspace);
7983
+ if (normalizedRel.startsWith("..") || path2.isAbsolute(normalizedRel)) {
7984
+ return [];
7985
+ }
7986
+ let statusOutput;
7987
+ try {
7988
+ statusOutput = execFileSync("git", ["status", "--porcelain", "-u", "--", `${relWorkspace}/`], {
7989
+ encoding: "utf-8",
7990
+ cwd: gitRoot,
7991
+ stdio: ["pipe", "pipe", "pipe"]
7992
+ });
7993
+ } catch {
7994
+ return [];
7995
+ }
7996
+ const lines = statusOutput.split("\n").filter((l) => l.length > 0);
7997
+ const changedFiles = lines.map((line) => {
7998
+ const filePart = line.slice(3);
7999
+ const arrowIdx = filePart.indexOf(" -> ");
8000
+ return arrowIdx >= 0 ? filePart.slice(arrowIdx + 4) : filePart;
8001
+ });
8002
+ const hubFiles = changedFiles.filter((file) => {
8003
+ return file.endsWith("/hub.yaml") || file.endsWith("hub.yaml") || file.endsWith("/wayai.yaml") || file.endsWith("wayai.yaml") || /\/agents\/[^/]+\.(md|yaml)$/.test(file);
8004
+ });
8005
+ if (hubFiles.length === 0) return [];
8006
+ const hubFolders = /* @__PURE__ */ new Set();
8007
+ for (const file of hubFiles) {
8008
+ const absFile = path2.resolve(gitRoot, file);
8009
+ if (file.endsWith("hub.yaml") || file.endsWith("wayai.yaml")) {
8010
+ hubFolders.add(path2.dirname(absFile));
8011
+ } else if (file.includes("/agents/")) {
8012
+ const agentsIndex = absFile.lastIndexOf("/agents/");
8013
+ hubFolders.add(absFile.substring(0, agentsIndex));
8014
+ }
8015
+ }
8016
+ const hubs = [];
8017
+ for (const hubFolder of hubFolders) {
8018
+ const meta = readHubYaml(path2.join(hubFolder, "hub.yaml")) || readHubYaml(path2.join(hubFolder, "wayai.yaml"));
8019
+ if (meta) {
8020
+ hubs.push({ hubFolder, hubId: meta.hubId, hubEnvironment: meta.hubEnvironment });
8021
+ }
8022
+ }
8023
+ return hubs;
8024
+ }
8025
+ function resolveExplicitHubPath(hubPath) {
8026
+ const parts = hubPath.split("/");
8027
+ let hubSegment;
8028
+ let orgPrefix;
8029
+ if (parts.length === 1) {
8030
+ hubSegment = parts[0];
8031
+ } else if (parts.length === 2) {
8032
+ [orgPrefix, hubSegment] = parts;
8033
+ } else {
8034
+ throw new Error("Hub path must be hub or org/hub");
8035
+ }
8036
+ const workspace = detectWorkspace();
8037
+ if (workspace) {
8038
+ const local = findHubByFolderName(workspace.workspaceDir, hubSegment);
8039
+ if (local) {
8040
+ return {
8041
+ resolved: {
8042
+ hubId: local.hubId,
8043
+ hubFolder: local.hubFolder,
8044
+ hubEnvironment: local.hubEnvironment
8045
+ }
8046
+ };
8047
+ }
8048
+ }
8049
+ return { segments: { orgPrefix, hub: hubSegment } };
8050
+ }
7960
8051
  function findHubByFolderName(workspaceDir, hubFolderName) {
7961
8052
  const all = scanWorkspaceHubs(workspaceDir);
7962
8053
  return all.find((h) => path2.basename(h.hubFolder) === hubFolderName) ?? null;
@@ -9013,6 +9104,51 @@ var init_auth = __esm({
9013
9104
  }
9014
9105
  });
9015
9106
 
9107
+ // src/lib/skill-symlink.ts
9108
+ var skill_symlink_exports = {};
9109
+ __export(skill_symlink_exports, {
9110
+ healClaudeSkillLink: () => healClaudeSkillLink,
9111
+ healSkillLinkForCommand: () => healSkillLinkForCommand
9112
+ });
9113
+ import { existsSync as existsSync8, lstatSync, mkdirSync as mkdirSync4, rmSync, symlinkSync } from "fs";
9114
+ import { join as join10 } from "path";
9115
+ function healClaudeSkillLink(root) {
9116
+ try {
9117
+ const source = join10(root, ".agents", "skills", SKILL_NAME);
9118
+ if (!existsSync8(join10(source, SKILL_FILENAME))) return false;
9119
+ const link = join10(root, ".claude", "skills", SKILL_NAME);
9120
+ if (existsSync8(join10(link, SKILL_FILENAME))) return false;
9121
+ let entry = null;
9122
+ try {
9123
+ entry = lstatSync(link);
9124
+ } catch {
9125
+ entry = null;
9126
+ }
9127
+ if (entry) {
9128
+ if (!entry.isSymbolicLink()) return false;
9129
+ rmSync(link, { force: true });
9130
+ }
9131
+ mkdirSync4(join10(root, ".claude", "skills"), { recursive: true });
9132
+ symlinkSync(join10("..", "..", ".agents", "skills", SKILL_NAME), link, "dir");
9133
+ return true;
9134
+ } catch {
9135
+ return false;
9136
+ }
9137
+ }
9138
+ function healSkillLinkForCommand(command2, root) {
9139
+ if (!command2 || HEAL_SKIP_COMMANDS.has(command2)) return false;
9140
+ return healClaudeSkillLink(root);
9141
+ }
9142
+ var SKILL_NAME, HEAL_SKIP_COMMANDS;
9143
+ var init_skill_symlink = __esm({
9144
+ "src/lib/skill-symlink.ts"() {
9145
+ "use strict";
9146
+ init_skill_version();
9147
+ SKILL_NAME = "wayai";
9148
+ HEAL_SKIP_COMMANDS = /* @__PURE__ */ new Set(["help", "--help", "-h", "--version", "-v"]);
9149
+ }
9150
+ });
9151
+
9016
9152
  // src/lib/report-inbox.ts
9017
9153
  async function nudgeReportActions(apiUrl, accessToken) {
9018
9154
  if (!process.stdout.isTTY || process.env.CI) return;
@@ -9373,41 +9509,6 @@ var init_hub_binding = __esm({
9373
9509
  }
9374
9510
  });
9375
9511
 
9376
- // src/lib/skill-symlink.ts
9377
- import { existsSync as existsSync8, lstatSync, mkdirSync as mkdirSync4, rmSync, symlinkSync } from "fs";
9378
- import { join as join11 } from "path";
9379
- function healClaudeSkillLink(root) {
9380
- try {
9381
- const source = join11(root, ".agents", "skills", SKILL_NAME);
9382
- if (!existsSync8(join11(source, SKILL_FILENAME))) return false;
9383
- const link = join11(root, ".claude", "skills", SKILL_NAME);
9384
- if (existsSync8(join11(link, SKILL_FILENAME))) return false;
9385
- let entry = null;
9386
- try {
9387
- entry = lstatSync(link);
9388
- } catch {
9389
- entry = null;
9390
- }
9391
- if (entry) {
9392
- if (!entry.isSymbolicLink()) return false;
9393
- rmSync(link, { force: true });
9394
- }
9395
- mkdirSync4(join11(root, ".claude", "skills"), { recursive: true });
9396
- symlinkSync(join11("..", "..", ".agents", "skills", SKILL_NAME), link, "dir");
9397
- return true;
9398
- } catch {
9399
- return false;
9400
- }
9401
- }
9402
- var SKILL_NAME;
9403
- var init_skill_symlink = __esm({
9404
- "src/lib/skill-symlink.ts"() {
9405
- "use strict";
9406
- init_skill_version();
9407
- SKILL_NAME = "wayai";
9408
- }
9409
- });
9410
-
9411
9512
  // src/commands/status.ts
9412
9513
  var status_exports = {};
9413
9514
  __export(status_exports, {
@@ -9418,7 +9519,8 @@ import * as path8 from "path";
9418
9519
  function parseArgs(args2) {
9419
9520
  return { json: args2.includes("--json") };
9420
9521
  }
9421
- function buildSkillState(projectRoot) {
9522
+ function buildSkillState() {
9523
+ const projectRoot = findGitRoot() ?? process.cwd();
9422
9524
  const installs = findInstalledSkills(projectRoot);
9423
9525
  if (installs.length === 0) {
9424
9526
  return { installed: false, version: null, latest: null, paths: [] };
@@ -9448,13 +9550,7 @@ async function statusCommand(args2, pkg2) {
9448
9550
  const workspace = buildWorkspaceState(repoConfig);
9449
9551
  const cachedCliLatest = readCachedLatest(CLI_CACHE_FILE);
9450
9552
  const cliLatest = cachedCliLatest && isNewerVersion(cachedCliLatest, pkg2.version) ? cachedCliLatest : null;
9451
- const projectRoot = findGitRoot() ?? process.cwd();
9452
- if (healClaudeSkillLink(projectRoot)) {
9453
- console.error(
9454
- "Linked .claude/skills/wayai \u2192 .agents/skills/wayai so Claude Code can load the WayAI skill."
9455
- );
9456
- }
9457
- const skill = buildSkillState(projectRoot);
9553
+ const skill = buildSkillState();
9458
9554
  let boundHubId = null;
9459
9555
  try {
9460
9556
  boundHubId = readBinding();
@@ -9577,7 +9673,6 @@ var init_status = __esm({
9577
9673
  init_api_client();
9578
9674
  init_version_cache();
9579
9675
  init_skill_version();
9580
- init_skill_symlink();
9581
9676
  init_utils();
9582
9677
  init_report_inbox();
9583
9678
  }
@@ -9617,6 +9712,44 @@ var init_whoami = __esm({
9617
9712
  }
9618
9713
  });
9619
9714
 
9715
+ // ../../packages/core/dist/constants.js
9716
+ var AUTH_TYPE2, ORG_CREDENTIAL_AUTH_TYPES2, AUTH_TYPE_DISPLAY2, LEGACY_AUTH_TYPE_MAP2, VALID_AUTH_TYPES2, SKILL_INSTALL_COMMAND;
9717
+ var init_constants = __esm({
9718
+ "../../packages/core/dist/constants.js"() {
9719
+ "use strict";
9720
+ AUTH_TYPE2 = {
9721
+ OAUTH: "oauth",
9722
+ API_KEY: "api_key",
9723
+ BASIC_AUTH: "basic_auth",
9724
+ BEARER: "bearer",
9725
+ NONE: "none"
9726
+ };
9727
+ ORG_CREDENTIAL_AUTH_TYPES2 = [
9728
+ AUTH_TYPE2.API_KEY,
9729
+ AUTH_TYPE2.BEARER,
9730
+ AUTH_TYPE2.BASIC_AUTH
9731
+ ];
9732
+ AUTH_TYPE_DISPLAY2 = {
9733
+ [AUTH_TYPE2.OAUTH]: "OAuth",
9734
+ [AUTH_TYPE2.API_KEY]: "API Key",
9735
+ [AUTH_TYPE2.BASIC_AUTH]: "Basic Auth",
9736
+ [AUTH_TYPE2.BEARER]: "Bearer Token",
9737
+ [AUTH_TYPE2.NONE]: "No Authentication"
9738
+ };
9739
+ LEGACY_AUTH_TYPE_MAP2 = {
9740
+ "OAuth": AUTH_TYPE2.OAUTH,
9741
+ "API Key": AUTH_TYPE2.API_KEY,
9742
+ "Basic Auth": AUTH_TYPE2.BASIC_AUTH,
9743
+ "Bearer Token": AUTH_TYPE2.BEARER,
9744
+ "No authentication": AUTH_TYPE2.NONE,
9745
+ // Also handle the old DISPLAY_TO_CODE bug where 'basic' was used instead of 'basic_auth'
9746
+ "basic": AUTH_TYPE2.BASIC_AUTH
9747
+ };
9748
+ VALID_AUTH_TYPES2 = new Set(Object.values(AUTH_TYPE2));
9749
+ SKILL_INSTALL_COMMAND = "mkdir -p .claude && npx skills add wayai-pro/wayai-skill -y";
9750
+ }
9751
+ });
9752
+
9620
9753
  // src/commands/init.ts
9621
9754
  var init_exports = {};
9622
9755
  __export(init_exports, {
@@ -9755,7 +9888,8 @@ var init_init = __esm({
9755
9888
  init_workspace();
9756
9889
  init_layout();
9757
9890
  init_utils();
9758
- SKILL_INSTALL_CMD = "mkdir -p .claude && npx skills add wayai-pro/wayai-skill -y";
9891
+ init_constants();
9892
+ SKILL_INSTALL_CMD = SKILL_INSTALL_COMMAND;
9759
9893
  }
9760
9894
  });
9761
9895
 
@@ -12940,8 +13074,8 @@ var init_eval = __esm({
12940
13074
 
12941
13075
  // ../../packages/core/dist/contracts/index.js
12942
13076
  function normalizeAuthType2(raw) {
12943
- if (VALID_AUTH_TYPES2.has(raw)) return raw;
12944
- return LEGACY_AUTH_TYPE_MAP2[raw] ?? raw;
13077
+ if (VALID_AUTH_TYPES3.has(raw)) return raw;
13078
+ return LEGACY_AUTH_TYPE_MAP3[raw] ?? raw;
12945
13079
  }
12946
13080
  function visibleLength2(s) {
12947
13081
  return s.replace(INVISIBLE_NAME_CHARS2, "").length;
@@ -13315,7 +13449,7 @@ function isSanitizableSliceFile(path22) {
13315
13449
  function distinctUsesBackends(uses) {
13316
13450
  return [...new Set((uses ?? []).map((u) => u.backend))];
13317
13451
  }
13318
- var uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, AUTH_TYPE2, ORG_CREDENTIAL_AUTH_TYPES2, AUTH_TYPE_DISPLAY2, LEGACY_AUTH_TYPE_MAP2, VALID_AUTH_TYPES2, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, summarizationThresholdField2, monitorConfigField2, agentIdParam2, listAgentsQuery2, agentConnectionsQuery2, createAgentBody2, updateAgentBody2, AGENT_PARAMETER_TYPES2, AGENT_PARAMETER_NAME_REGEX2, agentParameterCreateSchema2, MAX_AGENT_PARAMETERS_PER_REQUEST2, createAgentParametersBody2, SLUG_REGEX2, slugSchema2, INVISIBLE_NAME_CHARS2, MAX_KANBAN_STATUSES2, MAX_FOLLOWUPS_PER_STATUS2, MAX_LANES2, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2, RESERVED_TEMPLATE_DUMP_NAME2, kanbanStatusSlugSchema2, followupSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, orgResourceIdParam2, orgResourceFileIdParam2, orgResourceFolderIdParam2, hubOrgResourceParam2, listOrgResourcesQuery2, orgIdQuery2, createOrgResourceBody2, updateOrgResourceBody2, createOrgResourceFolderBody2, updateOrgResourceFolderBody2, uploadOrgResourceFileBody2, updateOrgResourceFileBody2, uploadOrgSkillZipBody2, linkOrgResourceBody2, resourceIdParam2, listResourcesQuery2, createResourceBody2, updateResourceBody2, syncSkillsBody2, resourceFileIdParam2, listResourceFilesQuery2, createResourceFileBody2, updateResourceFileBody2, uploadResourceFileBody2, uploadSkillZipBody2, resourceFolderIdParam2, listResourceFoldersQuery2, createResourceFolderBody2, updateResourceFolderBody2, agentResourceQuery2, hubResourceQuery2, linkAgentResourceBody2, updateAgentResourceBody2, unlinkAgentResourceQuery2, navItemSchema2, hubCountResetBody2, navItemCountResetBody2, typingBody2, analyticsHubIdParam2, analyticsVariableIdParam2, updateVariablePinBody2, updateAnalyticsViewBody2, NUMERIC_FILTER_OPS2, TEXT_FILTER_OPS2, CATEGORICAL_FILTER_OPS2, VARIABLE_FILTER_OPS2, STRUCTURED_QUERY_OPS2, STRUCTURED_QUERY_AGGREGATIONS2, filterValueSchema2, conversationsBody2, analyticsConversationIdParam2, messagesQuery2, conversationDetailDataQuery2, analyticsDataBody2, structuredQueryBody2, analyticsSqlBody2, analyticsSqlSchemaQuery2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, sendMessageBody2, listConversationsQuery2, getConversationDetailParams2, getConversationDetailQuery2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, downloadBody2, uploadQuery2, signUrlBody2, completionsBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, uuidPattern2, ciUuidSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysQuery2, dataExplorerKvKeyParam2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteQuery2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, discordTier2, discordBillingCycle2, discordMetadata2, discordOAuthStartResponse2, discordOAuthFinalizeBody2, discordOAuthFinalizeResponse2, discordDisconnectResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2;
13452
+ var uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, AUTH_TYPE3, ORG_CREDENTIAL_AUTH_TYPES3, AUTH_TYPE_DISPLAY3, LEGACY_AUTH_TYPE_MAP3, VALID_AUTH_TYPES3, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, summarizationThresholdField2, monitorConfigField2, agentIdParam2, listAgentsQuery2, agentConnectionsQuery2, createAgentBody2, updateAgentBody2, AGENT_PARAMETER_TYPES2, AGENT_PARAMETER_NAME_REGEX2, agentParameterCreateSchema2, MAX_AGENT_PARAMETERS_PER_REQUEST2, createAgentParametersBody2, SLUG_REGEX2, slugSchema2, INVISIBLE_NAME_CHARS2, MAX_KANBAN_STATUSES2, MAX_FOLLOWUPS_PER_STATUS2, MAX_LANES2, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2, RESERVED_TEMPLATE_DUMP_NAME2, kanbanStatusSlugSchema2, followupSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, orgResourceIdParam2, orgResourceFileIdParam2, orgResourceFolderIdParam2, hubOrgResourceParam2, listOrgResourcesQuery2, orgIdQuery2, createOrgResourceBody2, updateOrgResourceBody2, createOrgResourceFolderBody2, updateOrgResourceFolderBody2, uploadOrgResourceFileBody2, updateOrgResourceFileBody2, uploadOrgSkillZipBody2, linkOrgResourceBody2, resourceIdParam2, listResourcesQuery2, createResourceBody2, updateResourceBody2, syncSkillsBody2, resourceFileIdParam2, listResourceFilesQuery2, createResourceFileBody2, updateResourceFileBody2, uploadResourceFileBody2, uploadSkillZipBody2, resourceFolderIdParam2, listResourceFoldersQuery2, createResourceFolderBody2, updateResourceFolderBody2, agentResourceQuery2, hubResourceQuery2, linkAgentResourceBody2, updateAgentResourceBody2, unlinkAgentResourceQuery2, navItemSchema2, hubCountResetBody2, navItemCountResetBody2, typingBody2, analyticsHubIdParam2, analyticsVariableIdParam2, updateVariablePinBody2, updateAnalyticsViewBody2, NUMERIC_FILTER_OPS2, TEXT_FILTER_OPS2, CATEGORICAL_FILTER_OPS2, VARIABLE_FILTER_OPS2, STRUCTURED_QUERY_OPS2, STRUCTURED_QUERY_AGGREGATIONS2, filterValueSchema2, conversationsBody2, analyticsConversationIdParam2, messagesQuery2, conversationDetailDataQuery2, analyticsDataBody2, structuredQueryBody2, analyticsSqlBody2, analyticsSqlSchemaQuery2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, sendMessageBody2, listConversationsQuery2, getConversationDetailParams2, getConversationDetailQuery2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, downloadBody2, uploadQuery2, signUrlBody2, completionsBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, uuidPattern2, ciUuidSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysQuery2, dataExplorerKvKeyParam2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteQuery2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, discordTier2, discordBillingCycle2, discordMetadata2, discordOAuthStartResponse2, discordOAuthFinalizeBody2, discordOAuthFinalizeResponse2, discordDisconnectResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2;
13319
13453
  var init_contracts = __esm({
13320
13454
  "../../packages/core/dist/contracts/index.js"() {
13321
13455
  "use strict";
@@ -13415,35 +13549,35 @@ var init_contracts = __esm({
13415
13549
  addOrgAdminBody2 = external_exports.object({
13416
13550
  user_email: external_exports.string().email("valid email is required")
13417
13551
  });
13418
- AUTH_TYPE2 = {
13552
+ AUTH_TYPE3 = {
13419
13553
  OAUTH: "oauth",
13420
13554
  API_KEY: "api_key",
13421
13555
  BASIC_AUTH: "basic_auth",
13422
13556
  BEARER: "bearer",
13423
13557
  NONE: "none"
13424
13558
  };
13425
- ORG_CREDENTIAL_AUTH_TYPES2 = [
13426
- AUTH_TYPE2.API_KEY,
13427
- AUTH_TYPE2.BEARER,
13428
- AUTH_TYPE2.BASIC_AUTH
13559
+ ORG_CREDENTIAL_AUTH_TYPES3 = [
13560
+ AUTH_TYPE3.API_KEY,
13561
+ AUTH_TYPE3.BEARER,
13562
+ AUTH_TYPE3.BASIC_AUTH
13429
13563
  ];
13430
- AUTH_TYPE_DISPLAY2 = {
13431
- [AUTH_TYPE2.OAUTH]: "OAuth",
13432
- [AUTH_TYPE2.API_KEY]: "API Key",
13433
- [AUTH_TYPE2.BASIC_AUTH]: "Basic Auth",
13434
- [AUTH_TYPE2.BEARER]: "Bearer Token",
13435
- [AUTH_TYPE2.NONE]: "No Authentication"
13564
+ AUTH_TYPE_DISPLAY3 = {
13565
+ [AUTH_TYPE3.OAUTH]: "OAuth",
13566
+ [AUTH_TYPE3.API_KEY]: "API Key",
13567
+ [AUTH_TYPE3.BASIC_AUTH]: "Basic Auth",
13568
+ [AUTH_TYPE3.BEARER]: "Bearer Token",
13569
+ [AUTH_TYPE3.NONE]: "No Authentication"
13436
13570
  };
13437
- LEGACY_AUTH_TYPE_MAP2 = {
13438
- "OAuth": AUTH_TYPE2.OAUTH,
13439
- "API Key": AUTH_TYPE2.API_KEY,
13440
- "Basic Auth": AUTH_TYPE2.BASIC_AUTH,
13441
- "Bearer Token": AUTH_TYPE2.BEARER,
13442
- "No authentication": AUTH_TYPE2.NONE,
13571
+ LEGACY_AUTH_TYPE_MAP3 = {
13572
+ "OAuth": AUTH_TYPE3.OAUTH,
13573
+ "API Key": AUTH_TYPE3.API_KEY,
13574
+ "Basic Auth": AUTH_TYPE3.BASIC_AUTH,
13575
+ "Bearer Token": AUTH_TYPE3.BEARER,
13576
+ "No authentication": AUTH_TYPE3.NONE,
13443
13577
  // Also handle the old DISPLAY_TO_CODE bug where 'basic' was used instead of 'basic_auth'
13444
- "basic": AUTH_TYPE2.BASIC_AUTH
13578
+ "basic": AUTH_TYPE3.BASIC_AUTH
13445
13579
  };
13446
- VALID_AUTH_TYPES2 = new Set(Object.values(AUTH_TYPE2));
13580
+ VALID_AUTH_TYPES3 = new Set(Object.values(AUTH_TYPE3));
13447
13581
  AGENT_ROLES2 = [
13448
13582
  "pilot",
13449
13583
  "copilot",
@@ -16316,8 +16450,8 @@ var init_analytics = __esm({
16316
16450
 
16317
16451
  // src/lib/credential-utils.ts
16318
16452
  function normalizeCliAuthType(type) {
16319
- const normalized = LEGACY_AUTH_TYPE_MAP3[type] ?? type;
16320
- return VALID_AUTH_TYPES3.includes(normalized) ? normalized : null;
16453
+ const normalized = LEGACY_AUTH_TYPE_MAP4[type] ?? type;
16454
+ return VALID_AUTH_TYPES4.includes(normalized) ? normalized : null;
16321
16455
  }
16322
16456
  function normalizeCliEnvironment(env) {
16323
16457
  return VALID_ENVIRONMENTS.includes(env) ? env : null;
@@ -16368,12 +16502,12 @@ function resolveTagIds(tagRefs, orgTags) {
16368
16502
  function splitTagRefs(rawValues) {
16369
16503
  return rawValues.flatMap((v) => v.split(",")).map((v) => v.trim()).filter((v) => v.length > 0);
16370
16504
  }
16371
- var VALID_AUTH_TYPES3, LEGACY_AUTH_TYPE_MAP3, VALID_ENVIRONMENTS;
16505
+ var VALID_AUTH_TYPES4, LEGACY_AUTH_TYPE_MAP4, VALID_ENVIRONMENTS;
16372
16506
  var init_credential_utils = __esm({
16373
16507
  "src/lib/credential-utils.ts"() {
16374
16508
  "use strict";
16375
- VALID_AUTH_TYPES3 = ["api_key", "bearer", "basic_auth"];
16376
- LEGACY_AUTH_TYPE_MAP3 = {
16509
+ VALID_AUTH_TYPES4 = ["api_key", "bearer", "basic_auth"];
16510
+ LEGACY_AUTH_TYPE_MAP4 = {
16377
16511
  "API Key": "api_key",
16378
16512
  "Bearer Token": "bearer",
16379
16513
  "Basic Auth": "basic_auth"
@@ -16424,13 +16558,13 @@ async function createCredentialCommand(args2) {
16424
16558
  }
16425
16559
  if (!parsed.type) {
16426
16560
  console.error("Missing required flag: --type <auth-type>");
16427
- console.error(`Supported types: ${VALID_AUTH_TYPES3.join(", ")}`);
16561
+ console.error(`Supported types: ${VALID_AUTH_TYPES4.join(", ")}`);
16428
16562
  process.exit(1);
16429
16563
  }
16430
16564
  const authType = normalizeCliAuthType(parsed.type);
16431
16565
  if (!authType) {
16432
16566
  console.error(`Invalid authentication type: "${parsed.type}"`);
16433
- console.error(`Supported types: ${VALID_AUTH_TYPES3.join(", ")}`);
16567
+ console.error(`Supported types: ${VALID_AUTH_TYPES4.join(", ")}`);
16434
16568
  process.exit(1);
16435
16569
  }
16436
16570
  if (parsed.environment && !normalizeCliEnvironment(parsed.environment)) {
@@ -19070,6 +19204,15 @@ async function main() {
19070
19204
  printHelp3();
19071
19205
  return;
19072
19206
  }
19207
+ if (command && !wantsHelp(args)) {
19208
+ const { findGitRoot: findGitRoot2 } = await Promise.resolve().then(() => (init_workspace(), workspace_exports));
19209
+ const { healSkillLinkForCommand: healSkillLinkForCommand2 } = await Promise.resolve().then(() => (init_skill_symlink(), skill_symlink_exports));
19210
+ if (healSkillLinkForCommand2(command, findGitRoot2() ?? process.cwd())) {
19211
+ console.error(
19212
+ "Linked .claude/skills/wayai \u2192 .agents/skills/wayai so Claude Code can load the WayAI skill."
19213
+ );
19214
+ }
19215
+ }
19073
19216
  switch (command) {
19074
19217
  case "login": {
19075
19218
  const { loginCommand: loginCommand2 } = await Promise.resolve().then(() => (init_login(), login_exports));