@agent-team-foundation/first-tree-hub 0.12.4 → 0.12.5

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.
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import "../observability-BAScT_5S-BcW9HgkG.mjs";
3
- import { $ as formatStaleReason, A as checkDocker, B as isServiceSupported, C as createApiNameResolver, D as checkBackgroundService, E as checkAgentConfigs, F as checkWebSocket, H as restartClientService, I as printResults, J as stopPostgres, L as reconcileAgentConfigs, M as checkServerConfig, N as checkServerHealth, O as checkClientConfig, P as checkServerReachable, Q as findStaleAliases, R as getClientServiceStatus, S as runHomeMigration, T as runMigrations, U as startClientService, W as stopClientService, X as handleClientOrgMismatch, Y as ClientRuntime, _ as formatCheckReport, a as declineUpdate, at as success, b as onboardCreate, c as detectInstallMode, ct as FirstTreeHubSDK, d as startServer, dt as cleanWorkspaces, et as removeLocalAgent, f as reconcileLocalRuntimeProviders, ft as probeCapabilities, g as promptMissingFields, h as promptAddAgent, i as createExecuteUpdate, it as fail, j as checkNodeVersion, k as checkDatabase, l as fetchLatestVersion, lt as SdkError, m as isInteractive, mt as configureClientLoggerForService, o as promptUpdate, ot as ClientOrgMismatchError, p as uploadClientCapabilities, pt as applyClientLoggerConfig, r as registerSaaSConnectCommand, rt as resolveReplyToFromEnv, s as PACKAGE_NAME, st as ClientUserMismatchError, tt as createOwner, u as installGlobalLatest, ut as SessionRegistry, v as loadOnboardState, w as migrateLocalAgentDirs, x as saveOnboardState, y as onboardCheck, z as installClientService } from "../saas-connect-S71rG182.mjs";
3
+ import { $ as formatStaleReason, A as checkDocker, B as isServiceSupported, C as createApiNameResolver, D as checkBackgroundService, E as checkAgentConfigs, F as checkWebSocket, H as restartClientService, I as printResults, J as stopPostgres, L as reconcileAgentConfigs, M as checkServerConfig, N as checkServerHealth, O as checkClientConfig, P as checkServerReachable, Q as findStaleAliases, R as getClientServiceStatus, S as runHomeMigration, T as runMigrations, U as startClientService, W as stopClientService, X as handleClientOrgMismatch, Y as ClientRuntime, _ as formatCheckReport, a as declineUpdate, at as fail, b as onboardCreate, c as detectInstallMode, ct as ClientUserMismatchError, d as startServer, dt as SessionRegistry, et as removeLocalAgent, f as reconcileLocalRuntimeProviders, ft as cleanWorkspaces, g as promptMissingFields, h as promptAddAgent, ht as configureClientLoggerForService, i as createExecuteUpdate, it as resolveSenderName, j as checkNodeVersion, k as checkDatabase, l as fetchLatestVersion, lt as FirstTreeHubSDK, m as isInteractive, mt as applyClientLoggerConfig, o as promptUpdate, ot as success, p as uploadClientCapabilities, pt as probeCapabilities, r as registerSaaSConnectCommand, rt as resolveReplyToFromEnv, s as PACKAGE_NAME, st as ClientOrgMismatchError, tt as createOwner, u as installGlobalLatest, ut as SdkError, v as loadOnboardState, w as migrateLocalAgentDirs, x as saveOnboardState, y as onboardCheck, z as installClientService } from "../saas-connect-DYjvx5yr.mjs";
4
4
  import "../logger-core-BTmvdflj-DjW8FM4T.mjs";
5
5
  import { C as resetConfigMeta, E as setConfigValue, S as resetConfig, T as serverConfigSchema, _ as getConfigValue, a as ensureFreshAdminToken, c as resolveServerUrl, d as DEFAULT_CONFIG_DIR, f as DEFAULT_DATA_DIR, h as clientConfigSchema, i as ensureFreshAccessToken, l as saveAgentConfig, m as agentConfigSchema, o as loadCredentials, p as DEFAULT_HOME_DIR, u as saveCredentials, v as initConfig, w as resolveConfigReadonly, x as readConfigFile, y as loadAgents } from "../bootstrap-C_K2CKXC.mjs";
6
6
  import { a as print, n as CLI_USER_AGENT, o as setJsonMode, r as COMMAND_VERSION, t as cliFetch } from "../cli-fetch--tiwKm5S.mjs";
7
- import "../dist-CMhywpXB.mjs";
8
- import { n as bindFeishuUser, t as bindFeishuBot } from "../feishu-tkZS0vvL.mjs";
7
+ import "../dist-BwPlBZWi.mjs";
8
+ import { n as bindFeishuUser, t as bindFeishuBot } from "../feishu-CKGzIamp.mjs";
9
9
  import "../errors-CF5evtJt-B0NTIVPt.mjs";
10
10
  import "../src-DNBS5Yjj.mjs";
11
- import "../client-D1TDiik_-NV_lkhfI.mjs";
11
+ import "../client-DL5vHhvQ-CnYGq2x-.mjs";
12
12
  import "../invitation-Bg0TRiyx-BsZH4GCS.mjs";
13
13
  import { join } from "node:path";
14
14
  import { existsSync, mkdirSync, readFileSync, readdirSync } from "node:fs";
@@ -215,14 +215,16 @@ function resolveLocalAgent(agentName) {
215
215
  schema: agentConfigSchema,
216
216
  agentsDir
217
217
  });
218
- if (agents.size === 0) fail("MISSING_AGENT", "No agent configured. Run `first-tree-hub agent add` first.", 2);
218
+ const resolution = resolveSenderName({
219
+ override: agentName,
220
+ envAgentId: process.env.FIRST_TREE_HUB_AGENT_ID,
221
+ agents
222
+ });
219
223
  let resolvedName;
220
- if (agentName) resolvedName = agentName;
221
- else if (agents.size === 1) {
222
- const [only] = [...agents.keys()];
223
- if (!only) fail("MISSING_AGENT", "No agent configured. Run `first-tree-hub agent add` first.", 2);
224
- resolvedName = only;
225
- } else fail("AMBIGUOUS_AGENT", `Multiple agents configured — specify --agent <name>. Available: ${[...agents.keys()].join(", ")}`, 2);
224
+ if (resolution.kind === "ok") resolvedName = resolution.name;
225
+ else if (resolution.kind === "none") fail("MISSING_AGENT", "No agent configured. Run `first-tree-hub agent add` first.", 2);
226
+ else if (resolution.kind === "envMismatch") fail("ENV_AGENT_NOT_LOCAL", `FIRST_TREE_HUB_AGENT_ID="${resolution.envAgentId}" is not configured on this machine. Available local agents: ${resolution.available.join(", ")}. Pick one explicitly: \`first-tree-hub agent send --agent <senderName> <recipientName> "..."\`.`, 2);
227
+ else fail("AMBIGUOUS_AGENT", `Multiple agents are configured on this machine (${resolution.available.join(", ")}) and FIRST_TREE_HUB_AGENT_ID is not set, so the CLI can't tell which one is the sender. Specify it explicitly: \`first-tree-hub agent send --agent <senderName> <recipientName> "..."\` (--agent picks the SENDER; the recipient is the next positional argument).`, 2);
226
228
  const cfg = agents.get(resolvedName);
227
229
  if (!cfg) fail("UNKNOWN_AGENT", `Agent "${resolvedName}" not found in ${agentsDir}`, 2);
228
230
  let serverUrl;
@@ -1,10 +1,10 @@
1
1
  import { O as withSpan, f as messageAttrs, s as createLogger } from "./observability-BAScT_5S-BcW9HgkG.mjs";
2
- import { A as extractMentions, X as questionMessageContentSchema, Y as questionAnswerMessageContentSchema, a as AGENT_VISIBILITY, g as clientCapabilitiesSchema, i as AGENT_STATUSES, tt as scanMentionTokens } from "./dist-CMhywpXB.mjs";
2
+ import { X as questionAnswerMessageContentSchema, Z as questionMessageContentSchema, _ as clientCapabilitiesSchema, a as AGENT_VISIBILITY, i as AGENT_STATUSES, j as extractMentions, nt as scanMentionTokens } from "./dist-BwPlBZWi.mjs";
3
3
  import { a as ConflictError, i as ClientUserMismatchError, l as organizations, n as BadRequestError, o as ForbiddenError, s as NotFoundError, u as users } from "./errors-CF5evtJt-B0NTIVPt.mjs";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { and, desc, eq, inArray, isNotNull, lt, ne, or, sql } from "drizzle-orm";
6
6
  import { bigserial, boolean, index, integer, jsonb, pgTable, primaryKey, text, timestamp, unique } from "drizzle-orm/pg-core";
7
- //#region ../server/dist/client-D1TDiik_.mjs
7
+ //#region ../server/dist/client-DL5vHhvQ.mjs
8
8
  /**
9
9
  * Client connections. A client is a single SDK process (AgentRuntime) that may
10
10
  * host multiple agents. From the unified-user-token milestone on, a client is
@@ -518,6 +518,15 @@ async function assertParticipant(db, chatId, agentId) {
518
518
  const [row] = await db.select({ chatId: chatParticipants.chatId }).from(chatParticipants).where(and(eq(chatParticipants.chatId, chatId), eq(chatParticipants.agentId, agentId))).limit(1);
519
519
  if (!row) throw new ForbiddenError("Not a participant of this chat");
520
520
  }
521
+ /**
522
+ * Non-throwing membership check. Used by routing logic that needs to fall
523
+ * back to a different chat when the candidate target isn't a member of the
524
+ * caller's current chat (see `sendToAgent`'s current-chat routing branch).
525
+ */
526
+ async function isParticipant(db, chatId, agentId) {
527
+ const [row] = await db.select({ chatId: chatParticipants.chatId }).from(chatParticipants).where(and(eq(chatParticipants.chatId, chatId), eq(chatParticipants.agentId, agentId))).limit(1);
528
+ return Boolean(row);
529
+ }
521
530
  /** Ensure an agent is a participant of a chat. Silently adds them if not already. */
522
531
  async function ensureParticipant(db, chatId, agentId) {
523
532
  const [existing] = await db.select({ agentId: chatParticipants.agentId }).from(chatParticipants).where(and(eq(chatParticipants.chatId, chatId), eq(chatParticipants.agentId, agentId))).limit(1);
@@ -1684,7 +1693,6 @@ async function sendToAgent(db, senderUuid, targetName, data) {
1684
1693
  if (!sender) throw new NotFoundError(`Agent "${senderUuid}" not found`);
1685
1694
  const [target] = await db.select({ uuid: agents.uuid }).from(agents).where(and(eq(agents.organizationId, sender.organizationId), eq(agents.name, targetName), ne(agents.status, "deleted"))).limit(1);
1686
1695
  if (!target) throw new NotFoundError(`Agent "${targetName}" not found${/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(targetName) ? " — `agent send` expects an agent NAME, not a uuid. Run `first-tree-hub agent list` to see available names." : ""}`);
1687
- const chat = await findOrCreateDirectChat(db, senderUuid, target.uuid);
1688
1696
  const incomingMeta = data.metadata ?? {};
1689
1697
  const existingMentionsRaw = incomingMeta.mentions;
1690
1698
  const existingMentions = Array.isArray(existingMentionsRaw) ? existingMentionsRaw.filter((m) => typeof m === "string") : [];
@@ -1693,7 +1701,18 @@ async function sendToAgent(db, senderUuid, targetName, data) {
1693
1701
  ...incomingMeta,
1694
1702
  mentions: mergedMentions
1695
1703
  };
1696
- return sendMessage(db, chat.id, senderUuid, {
1704
+ if (data.replyToChat) {
1705
+ const [targetIsMember, senderIsMember] = await Promise.all([isParticipant(db, data.replyToChat, target.uuid), isParticipant(db, data.replyToChat, senderUuid)]);
1706
+ if (targetIsMember && senderIsMember) return sendMessage(db, data.replyToChat, senderUuid, {
1707
+ format: data.format,
1708
+ content: data.content,
1709
+ metadata,
1710
+ replyToInbox: void 0,
1711
+ replyToChat: void 0,
1712
+ source: data.source
1713
+ }, { normalizeMentionsInContent: true });
1714
+ }
1715
+ return sendMessage(db, (await findOrCreateDirectChat(db, senderUuid, target.uuid)).id, senderUuid, {
1697
1716
  format: data.format,
1698
1717
  content: data.content,
1699
1718
  metadata,
@@ -1,7 +1,7 @@
1
1
  import "./observability-BAScT_5S-BcW9HgkG.mjs";
2
2
  import "./logger-core-BTmvdflj-DjW8FM4T.mjs";
3
- import "./dist-CMhywpXB.mjs";
3
+ import "./dist-BwPlBZWi.mjs";
4
4
  import "./errors-CF5evtJt-B0NTIVPt.mjs";
5
5
  import "./src-DNBS5Yjj.mjs";
6
- import { q as listMyPinnedAgents } from "./client-D1TDiik_-NV_lkhfI.mjs";
6
+ import { q as listMyPinnedAgents } from "./client-DL5vHhvQ-CnYGq2x-.mjs";
7
7
  export { listMyPinnedAgents };
@@ -565,6 +565,30 @@ z.object({
565
565
  expiresIn: z.number(),
566
566
  command: z.string()
567
567
  });
568
+ const githubEntityTypeSchema = z.enum([
569
+ "issue",
570
+ "pull_request",
571
+ "discussion",
572
+ "commit"
573
+ ]);
574
+ const githubChatMetadataSchema = z.object({
575
+ source: z.literal("github"),
576
+ entityType: githubEntityTypeSchema,
577
+ entityKey: z.string().min(1),
578
+ entityUrl: z.string().url().optional()
579
+ });
580
+ const feishuChatMetadataSchema = z.object({
581
+ source: z.literal("feishu"),
582
+ externalChannelId: z.string().min(1)
583
+ });
584
+ const chatMetadataSchema = z.discriminatedUnion("source", [githubChatMetadataSchema, feishuChatMetadataSchema]);
585
+ /**
586
+ * `createChat` callers may not set metadata at all (admin-created group chats,
587
+ * me-chats, …), so the input schema accepts either an empty object or one of
588
+ * the typed variants. The empty `{}` arm is `.strict()` so a caller cannot
589
+ * sneak through `{ source: "github" }` without the required fields.
590
+ */
591
+ const optionalChatMetadataSchema = z.union([z.object({}).strict(), chatMetadataSchema]);
568
592
  const chatTypeSchema = z.enum([
569
593
  "direct",
570
594
  "group",
@@ -574,7 +598,7 @@ const createChatSchema = z.object({
574
598
  type: chatTypeSchema,
575
599
  topic: z.string().max(500).optional(),
576
600
  participantIds: z.array(z.string()).min(1),
577
- metadata: z.record(z.string(), z.unknown()).optional()
601
+ metadata: optionalChatMetadataSchema.optional()
578
602
  });
579
603
  const chatParticipantSchema = z.object({
580
604
  agentId: z.string(),
@@ -1582,4 +1606,4 @@ z.object({
1582
1606
  capabilities: serverCapabilitiesSchema.optional()
1583
1607
  }).passthrough();
1584
1608
  //#endregion
1585
- export { runtimeStateMessageSchema as $, extractMentions as A, isReservedAgentName as B, createChatSchema as C, defaultRuntimeConfigPayload as D, createOrgFromMeSchema as E, inboxAckFrameSchema as F, notificationQuerySchema as G, listMeChatsQuerySchema as H, inboxDeliverFrameSchema as I, patchOnboardingSchema as J, onboardingEventSchema as K, inboxPollQuerySchema as L, githubDevCallbackQuerySchema as M, githubStartQuerySchema as N, delegateFeishuUserSchema as O, imageInlineContentSchema as P, refreshTokenSchema as Q, isOrgSettingNamespace as R, createAgentSchema as S, createMemberSchema as T, loginSchema as U, joinByInvitationSchema as V, messageSourceSchema as W, questionMessageContentSchema as X, questionAnswerMessageContentSchema as Y, rebindAgentSchema as Z, clientRegisterSchema as _, updateMemberSchema as _t, AGENT_VISIBILITY as a, sessionCompletionMessageSchema as at, createAdapterConfigSchema as b, ORG_SETTINGS_NAMESPACES as c, sessionReconcileRequestSchema as ct, addParticipantSchema as d, submitQuestionAnswerSchema as dt, safeRedirectPath as et, agentBindRequestSchema as f, updateAdapterConfigSchema as ft, clientCapabilitiesSchema as g, updateClientCapabilitiesSchema as gt, agentTypeSchema as h, updateChatSchema as ht, AGENT_STATUSES as i, sendToAgentSchema as it, githubCallbackQuerySchema as j, dryRunAgentRuntimeConfigSchema as k, WS_AUTH_FRAME_TIMEOUT_MS as l, sessionStateMessageSchema as lt, agentRuntimeConfigPayloadSchema as m, updateAgentSchema as mt, AGENT_NAME_REGEX as n, selfServiceFeishuBotSchema as nt, DEFAULT_RUNTIME_PROVIDER as o, sessionEventMessageSchema as ot, agentPinnedMessageSchema as p, updateAgentRuntimeConfigSchema as pt, paginationQuerySchema as q, AGENT_SELECTOR_HEADER as r, sendMessageSchema as rt, MENTION_REGEX as s, sessionEventSchema as st, AGENT_BIND_REJECT_REASONS as t, scanMentionTokens as tt, addMeChatParticipantsSchema as u, stripCode as ut, connectTokenExchangeSchema as v, updateOrganizationSchema as vt, createMeChatSchema as w, createAdapterMappingSchema as x, contextTreeSnapshotSchema as y, wsAuthFrameSchema as yt, isRedactedEnvValue as z };
1609
+ export { refreshTokenSchema as $, dryRunAgentRuntimeConfigSchema as A, isRedactedEnvValue as B, createAgentSchema as C, createOrgFromMeSchema as D, createMemberSchema as E, imageInlineContentSchema as F, messageSourceSchema as G, joinByInvitationSchema as H, inboxAckFrameSchema as I, paginationQuerySchema as J, notificationQuerySchema as K, inboxDeliverFrameSchema as L, githubCallbackQuerySchema as M, githubDevCallbackQuerySchema as N, defaultRuntimeConfigPayload as O, githubStartQuerySchema as P, rebindAgentSchema as Q, inboxPollQuerySchema as R, createAdapterMappingSchema as S, createMeChatSchema as T, listMeChatsQuerySchema as U, isReservedAgentName as V, loginSchema as W, questionAnswerMessageContentSchema as X, patchOnboardingSchema as Y, questionMessageContentSchema as Z, clientCapabilitiesSchema as _, updateClientCapabilitiesSchema as _t, AGENT_VISIBILITY as a, sendToAgentSchema as at, contextTreeSnapshotSchema as b, wsAuthFrameSchema as bt, ORG_SETTINGS_NAMESPACES as c, sessionEventSchema as ct, addParticipantSchema as d, stripCode as dt, runtimeStateMessageSchema as et, agentBindRequestSchema as f, submitQuestionAnswerSchema as ft, chatMetadataSchema as g, updateChatSchema as gt, agentTypeSchema as h, updateAgentSchema as ht, AGENT_STATUSES as i, sendMessageSchema as it, extractMentions as j, delegateFeishuUserSchema as k, WS_AUTH_FRAME_TIMEOUT_MS as l, sessionReconcileRequestSchema as lt, agentRuntimeConfigPayloadSchema as m, updateAgentRuntimeConfigSchema as mt, AGENT_NAME_REGEX as n, scanMentionTokens as nt, DEFAULT_RUNTIME_PROVIDER as o, sessionCompletionMessageSchema as ot, agentPinnedMessageSchema as p, updateAdapterConfigSchema as pt, onboardingEventSchema as q, AGENT_SELECTOR_HEADER as r, selfServiceFeishuBotSchema as rt, MENTION_REGEX as s, sessionEventMessageSchema as st, AGENT_BIND_REJECT_REASONS as t, safeRedirectPath as tt, addMeChatParticipantsSchema as u, sessionStateMessageSchema as ut, clientRegisterSchema as v, updateMemberSchema as vt, createChatSchema as w, createAdapterConfigSchema as x, connectTokenExchangeSchema as y, updateOrganizationSchema as yt, isOrgSettingNamespace as z };
@@ -0,0 +1,47 @@
1
+ -- GitHub webhook → chat clustering (Phase 0).
2
+ -- Maps every (organization, human_agent, delegate_agent, entity) tuple to a
3
+ -- single chat. Replaces the legacy "one (human, delegate) chat absorbs every
4
+ -- GitHub event" behaviour — see docs webhook-routing-design.md §4 for the
5
+ -- background and §4.3 for the data-model decision.
6
+ --
7
+ -- The composite primary key is also the uniqueness constraint we rely on for
8
+ -- concurrent webhook safety: two near-simultaneous events for a brand-new
9
+ -- entity hit ON CONFLICT DO NOTHING and the second deliverer falls back to a
10
+ -- re-SELECT, so the pair never spawns duplicate chats.
11
+ --
12
+ -- ON DELETE CASCADE on agent / chat columns: a deleted agent or chat must
13
+ -- drop its mapping rows. We do NOT cascade from organizations because that
14
+ -- relationship is enforced via the agent FKs already.
15
+ --
16
+ -- This table is GitHub-specific. Future external sources (Linear, Slack
17
+ -- channel events, …) get their own table — their entity models differ
18
+ -- enough that a generic table would slide back into untyped jsonb.
19
+ --
20
+ -- Migration 0036 is hand-written to match the team's recent migration
21
+ -- workflow — drizzle-kit generate's snapshot metadata is incomplete pre-0019
22
+ -- and refuses to diff (same constraint that 0032's commit message called out).
23
+
24
+ CREATE TABLE IF NOT EXISTS "github_entity_chat_mappings" (
25
+ "organization_id" text NOT NULL,
26
+ "human_agent_id" text NOT NULL,
27
+ "delegate_agent_id" text NOT NULL,
28
+ "entity_type" text NOT NULL,
29
+ "entity_key" text NOT NULL,
30
+ "chat_id" text NOT NULL,
31
+ "bound_at" timestamp with time zone NOT NULL DEFAULT now(),
32
+ "bound_via" text NOT NULL,
33
+ CONSTRAINT "github_entity_chat_mappings_pkey"
34
+ PRIMARY KEY ("organization_id", "human_agent_id", "delegate_agent_id", "entity_type", "entity_key"),
35
+ CONSTRAINT "github_entity_chat_mappings_organization_id_organizations_id_fk"
36
+ FOREIGN KEY ("organization_id") REFERENCES "organizations"("id"),
37
+ CONSTRAINT "github_entity_chat_mappings_human_agent_id_agents_uuid_fk"
38
+ FOREIGN KEY ("human_agent_id") REFERENCES "agents"("uuid") ON DELETE CASCADE,
39
+ CONSTRAINT "github_entity_chat_mappings_delegate_agent_id_agents_uuid_fk"
40
+ FOREIGN KEY ("delegate_agent_id") REFERENCES "agents"("uuid") ON DELETE CASCADE,
41
+ CONSTRAINT "github_entity_chat_mappings_chat_id_chats_id_fk"
42
+ FOREIGN KEY ("chat_id") REFERENCES "chats"("id") ON DELETE CASCADE
43
+ );
44
+
45
+ --> statement-breakpoint
46
+ CREATE INDEX IF NOT EXISTS "idx_github_entity_chat_mappings_chat"
47
+ ON "github_entity_chat_mappings" ("chat_id");
@@ -253,6 +253,13 @@
253
253
  "when": 1778457600000,
254
254
  "tag": "0035_drop_hub_tasks",
255
255
  "breakpoints": true
256
+ },
257
+ {
258
+ "idx": 36,
259
+ "version": "7",
260
+ "when": 1778544000000,
261
+ "tag": "0036_github_entity_chat_mappings",
262
+ "breakpoints": true
256
263
  }
257
264
  ]
258
265
  }
@@ -1,6 +1,6 @@
1
1
  import { r as __exportAll } from "./chunk-BSw8zbkd.mjs";
2
2
  import { t as cliFetch } from "./cli-fetch--tiwKm5S.mjs";
3
- import { r as AGENT_SELECTOR_HEADER } from "./dist-CMhywpXB.mjs";
3
+ import { r as AGENT_SELECTOR_HEADER } from "./dist-BwPlBZWi.mjs";
4
4
  //#region src/core/feishu.ts
5
5
  var feishu_exports = /* @__PURE__ */ __exportAll({
6
6
  bindFeishuBot: () => bindFeishuBot,
package/dist/index.mjs CHANGED
@@ -1,12 +1,12 @@
1
1
  import "./observability-BAScT_5S-BcW9HgkG.mjs";
2
- import { A as checkDocker, B as isServiceSupported, E as checkAgentConfigs, F as checkWebSocket, G as uninstallClientService, H as restartClientService, I as printResults, J as stopPostgres, K as ensurePostgres, M as checkServerConfig, N as checkServerHealth, O as checkClientConfig, P as checkServerReachable, R as getClientServiceStatus, S as runHomeMigration, T as runMigrations, U as startClientService, V as resolveCliInvocation, W as stopClientService, X as handleClientOrgMismatch, Y as ClientRuntime, Z as rotateClientIdWithBackup, _ as formatCheckReport, b as onboardCreate, ct as FirstTreeHubSDK, d as startServer, g as promptMissingFields, h as promptAddAgent, j as checkNodeVersion, k as checkDatabase, lt as SdkError, m as isInteractive, n as deriveHubUrlFromToken, nt as hasUser, q as isDockerAvailable, t as HubUrlDerivationError, tt as createOwner, y as onboardCheck, z as installClientService } from "./saas-connect-S71rG182.mjs";
2
+ import { A as checkDocker, B as isServiceSupported, E as checkAgentConfigs, F as checkWebSocket, G as uninstallClientService, H as restartClientService, I as printResults, J as stopPostgres, K as ensurePostgres, M as checkServerConfig, N as checkServerHealth, O as checkClientConfig, P as checkServerReachable, R as getClientServiceStatus, S as runHomeMigration, T as runMigrations, U as startClientService, V as resolveCliInvocation, W as stopClientService, X as handleClientOrgMismatch, Y as ClientRuntime, Z as rotateClientIdWithBackup, _ as formatCheckReport, b as onboardCreate, d as startServer, g as promptMissingFields, h as promptAddAgent, j as checkNodeVersion, k as checkDatabase, lt as FirstTreeHubSDK, m as isInteractive, n as deriveHubUrlFromToken, nt as hasUser, q as isDockerAvailable, t as HubUrlDerivationError, tt as createOwner, ut as SdkError, y as onboardCheck, z as installClientService } from "./saas-connect-DYjvx5yr.mjs";
3
3
  import "./logger-core-BTmvdflj-DjW8FM4T.mjs";
4
4
  import { a as ensureFreshAdminToken, c as resolveServerUrl, i as ensureFreshAccessToken, n as AuthRefreshRateLimitedError, s as resolveAccessToken, t as AuthRefreshFailedError } from "./bootstrap-C_K2CKXC.mjs";
5
5
  import { i as blank, s as status } from "./cli-fetch--tiwKm5S.mjs";
6
- import "./dist-CMhywpXB.mjs";
7
- import { n as bindFeishuUser, t as bindFeishuBot } from "./feishu-tkZS0vvL.mjs";
6
+ import "./dist-BwPlBZWi.mjs";
7
+ import { n as bindFeishuUser, t as bindFeishuBot } from "./feishu-CKGzIamp.mjs";
8
8
  import "./errors-CF5evtJt-B0NTIVPt.mjs";
9
9
  import "./src-DNBS5Yjj.mjs";
10
- import "./client-D1TDiik_-NV_lkhfI.mjs";
10
+ import "./client-DL5vHhvQ-CnYGq2x-.mjs";
11
11
  import "./invitation-Bg0TRiyx-BsZH4GCS.mjs";
12
12
  export { AuthRefreshFailedError, AuthRefreshRateLimitedError, ClientRuntime, FirstTreeHubSDK, HubUrlDerivationError, SdkError, bindFeishuBot, bindFeishuUser, blank, checkAgentConfigs, checkClientConfig, checkDatabase, checkDocker, checkNodeVersion, checkServerConfig, checkServerHealth, checkServerReachable, checkWebSocket, createOwner, deriveHubUrlFromToken, ensureFreshAccessToken, ensureFreshAdminToken, ensurePostgres, formatCheckReport, getClientServiceStatus, handleClientOrgMismatch, hasUser, installClientService, isDockerAvailable, isInteractive, isServiceSupported, onboardCheck, onboardCreate, printResults, promptAddAgent, promptMissingFields, resolveAccessToken, resolveCliInvocation, resolveServerUrl, restartClientService, rotateClientIdWithBackup, runHomeMigration, runMigrations, startClientService, startServer, status, stopClientService, stopPostgres, uninstallClientService };
@@ -1,4 +1,4 @@
1
- import "./dist-CMhywpXB.mjs";
1
+ import "./dist-BwPlBZWi.mjs";
2
2
  import "./errors-CF5evtJt-B0NTIVPt.mjs";
3
3
  import { s as previewInvitation } from "./invitation-Bg0TRiyx-BsZH4GCS.mjs";
4
4
  export { previewInvitation };