@agent-team-foundation/first-tree-hub 0.14.5 → 0.14.6
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/bootstrap-BmeaRhRp.mjs +3 -0
- package/dist/{bootstrap-CQQGgIx1.mjs → bootstrap-CmkHQsnS.mjs} +24 -16
- package/dist/cli/index.mjs +6 -94
- package/dist/{dist-CrdnqZjv.mjs → feishu-BE7QRxnE.mjs} +170 -379
- package/dist/feishu-De9_bA91.mjs +3 -0
- package/dist/index.mjs +5 -12
- package/dist/saas-connect-CNY9Ve5V.mjs +13748 -0
- package/package.json +4 -12
- package/dist/chunk-BSw8zbkd.mjs +0 -37
- package/dist/client-BPRIfrOT-CoV_2o7e.mjs +0 -4230
- package/dist/client-CEdYVnoj-BGiGcJbH.mjs +0 -7
- package/dist/dist-LgF7LHpE.mjs +0 -430
- package/dist/drizzle/0000_shocking_darkhawk.sql +0 -92
- package/dist/drizzle/0001_v2_schema_updates.sql +0 -26
- package/dist/drizzle/0002_adapter_tables.sql +0 -64
- package/dist/drizzle/0003_feishu_adapter.sql +0 -21
- package/dist/drizzle/0004_adapter_refactor.sql +0 -13
- package/dist/drizzle/0005_delegate_mention.sql +0 -1
- package/dist/drizzle/0006_agent_tree_path.sql +0 -1
- package/dist/drizzle/0007_decouple_context_tree.sql +0 -2
- package/dist/drizzle/0008_uuid_identity.sql +0 -12
- package/dist/drizzle/0009_agent_runtime_m1.sql +0 -31
- package/dist/drizzle/0010_cloud_multi_tenancy.sql +0 -34
- package/dist/drizzle/0011_org_uuid_pk.sql +0 -22
- package/dist/drizzle/0012_session_level_state.sql +0 -19
- package/dist/drizzle/0013_hub_tasks.sql +0 -38
- package/dist/drizzle/0014_drop_task_fks.sql +0 -9
- package/dist/drizzle/0015_member_system.sql +0 -34
- package/dist/drizzle/0016_strange_havok.sql +0 -25
- package/dist/drizzle/0017_session_outputs_unique.sql +0 -1
- package/dist/drizzle/0018_agent_visibility.sql +0 -13
- package/dist/drizzle/0019_agent_configs.sql +0 -30
- package/dist/drizzle/0020_unified_user_token.sql +0 -154
- package/dist/drizzle/0021_drop_agents_profile.sql +0 -10
- package/dist/drizzle/0022_session_events.sql +0 -32
- package/dist/drizzle/0023_clients_org_scoping.sql +0 -40
- package/dist/drizzle/0024_display_name_not_null.sql +0 -31
- package/dist/drizzle/0025_inbox_silent_entries.sql +0 -53
- package/dist/drizzle/0026_saas_onboarding.sql +0 -153
- package/dist/drizzle/0027_runtime_provider.sql +0 -10
- package/dist/drizzle/0028_auth_identity_user_github_unique.sql +0 -12
- package/dist/drizzle/0029_direct_agent_only_mention_only.sql +0 -28
- package/dist/drizzle/0030_chat_first_workspace.sql +0 -129
- package/dist/drizzle/0031_drop_system_configs.sql +0 -11
- package/dist/drizzle/0032_organization_settings.sql +0 -36
- package/dist/drizzle/0033_onboarding_dismissed_at.sql +0 -13
- package/dist/drizzle/0034_pending_questions.sql +0 -34
- package/dist/drizzle/0035_drop_hub_tasks.sql +0 -7
- package/dist/drizzle/0036_github_entity_chat_mappings.sql +0 -47
- package/dist/drizzle/0037_github_app_installations.sql +0 -52
- package/dist/drizzle/0038_chat_membership_user_state.sql +0 -223
- package/dist/drizzle/0039_drop_chat_participants_subscriptions.sql +0 -26
- package/dist/drizzle/0040_chat_user_state_engagement.sql +0 -24
- package/dist/drizzle/0041_notifications_dedup_key.sql +0 -29
- package/dist/drizzle/0042_notifications_drop_legacy_types.sql +0 -36
- package/dist/drizzle/0043_onboarding_completed_at.sql +0 -32
- package/dist/drizzle/0044_agent_avatar_color.sql +0 -11
- package/dist/drizzle/0045_agent_avatar_image.sql +0 -17
- package/dist/drizzle/meta/0000_snapshot.json +0 -687
- package/dist/drizzle/meta/0001_snapshot.json +0 -687
- package/dist/drizzle/meta/0012_snapshot.json +0 -1451
- package/dist/drizzle/meta/0013_snapshot.json +0 -1771
- package/dist/drizzle/meta/0014_snapshot.json +0 -1717
- package/dist/drizzle/meta/0016_snapshot.json +0 -1917
- package/dist/drizzle/meta/0018_snapshot.json +0 -1938
- package/dist/drizzle/meta/_journal.json +0 -328
- package/dist/esm-iadMkGbV.mjs +0 -1516
- package/dist/execAsync-DUfRkc4a.mjs +0 -10
- package/dist/execAsync-YbEZSOYd.mjs +0 -10
- package/dist/feishu-DNoBroKK.mjs +0 -53
- package/dist/from-DQ7eNRwu.mjs +0 -3840
- package/dist/getMachineId-bsd-BmasEOJr.mjs +0 -27
- package/dist/getMachineId-bsd-Dh3h0DDE.mjs +0 -27
- package/dist/getMachineId-darwin-CuhM3hfZ.mjs +0 -24
- package/dist/getMachineId-darwin-D9wR0SLj.mjs +0 -24
- package/dist/getMachineId-linux-CYfb0oxZ.mjs +0 -20
- package/dist/getMachineId-linux-D8ZaSjAC.mjs +0 -20
- package/dist/getMachineId-unsupported-Cu3iisaD.mjs +0 -15
- package/dist/getMachineId-unsupported-DZqI4ZT5.mjs +0 -15
- package/dist/getMachineId-win-8ZJbtrdf.mjs +0 -26
- package/dist/getMachineId-win-DT-hqwVp.mjs +0 -26
- package/dist/invitation-C9m2gQx4-C_4f5VTs.mjs +0 -4
- package/dist/invitation-D_ENPHyj-5ETiae5r.mjs +0 -167
- package/dist/logger-core-BTmvdflj-DjW8FM4T.mjs +0 -146
- package/dist/multipart-parser-QRu3OKK4.mjs +0 -294
- package/dist/observability-BAScT_5S-BcW9HgkG.mjs +0 -96129
- package/dist/observability-eLA9iNK_.mjs +0 -5
- package/dist/saas-connect-CYp9TOB5.mjs +0 -21918
- package/dist/src-DFlbpJfU.mjs +0 -1176
- package/dist/src-DNBS5Yjj.mjs +0 -735
- package/dist/uuid-DbS_4vFh-iFghv4zA.mjs +0 -129
- package/dist/web/assets/index-9wK0udbH.js +0 -416
- package/dist/web/assets/index-C7x7O7dG.js +0 -11
- package/dist/web/assets/index-DE7Q3QWE.css +0 -1
- package/dist/web/favicon.svg +0 -9
- package/dist/web/fonts/inter-latin-ext.woff2 +0 -0
- package/dist/web/fonts/inter-latin.woff2 +0 -0
- package/dist/web/fonts/jetbrains-mono-latin-ext.woff2 +0 -0
- package/dist/web/fonts/jetbrains-mono-latin.woff2 +0 -0
- package/dist/web/index.html +0 -39
- /package/dist/{cli-fetch--tiwKm5S.mjs → cli-fetch-BGVItZxo.mjs} +0 -0
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { randomBytes } from "node:crypto";
|
|
2
|
-
import { integer, jsonb, pgTable, text, timestamp } from "drizzle-orm/pg-core";
|
|
3
|
-
//#region ../server/dist/uuid-DbS_4vFh.mjs
|
|
4
|
-
/** Organization entity. Agents and chats belong to exactly one organization. */
|
|
5
|
-
const organizations = pgTable("organizations", {
|
|
6
|
-
id: text("id").primaryKey(),
|
|
7
|
-
name: text("name").unique().notNull(),
|
|
8
|
-
displayName: text("display_name").notNull(),
|
|
9
|
-
maxAgents: integer("max_agents").notNull().default(0),
|
|
10
|
-
maxMessagesPerMinute: integer("max_messages_per_minute").notNull().default(0),
|
|
11
|
-
features: jsonb("features").$type().notNull().default({}),
|
|
12
|
-
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
13
|
-
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
|
|
14
|
-
});
|
|
15
|
-
/** User accounts. Passwords are stored as bcrypt hashes. */
|
|
16
|
-
const users = pgTable("users", {
|
|
17
|
-
id: text("id").primaryKey(),
|
|
18
|
-
username: text("username").unique().notNull(),
|
|
19
|
-
passwordHash: text("password_hash").notNull(),
|
|
20
|
-
displayName: text("display_name").notNull(),
|
|
21
|
-
avatarUrl: text("avatar_url"),
|
|
22
|
-
status: text("status").notNull().default("active"),
|
|
23
|
-
onboardingDismissedAt: timestamp("onboarding_dismissed_at", { withTimezone: true }),
|
|
24
|
-
onboardingCompletedAt: timestamp("onboarding_completed_at", { withTimezone: true }),
|
|
25
|
-
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
26
|
-
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
|
|
27
|
-
});
|
|
28
|
-
var AppError = class extends Error {
|
|
29
|
-
constructor(statusCode, message, attrs) {
|
|
30
|
-
super(message);
|
|
31
|
-
this.statusCode = statusCode;
|
|
32
|
-
this.attrs = attrs;
|
|
33
|
-
this.name = "AppError";
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var NotFoundError = class extends AppError {
|
|
37
|
-
constructor(message = "Not found", attrs) {
|
|
38
|
-
super(404, message, attrs);
|
|
39
|
-
this.name = "NotFoundError";
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
var UnauthorizedError = class extends AppError {
|
|
43
|
-
constructor(message = "Unauthorized", attrs) {
|
|
44
|
-
super(401, message, attrs);
|
|
45
|
-
this.name = "UnauthorizedError";
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
var ForbiddenError = class extends AppError {
|
|
49
|
-
constructor(message = "Forbidden", attrs) {
|
|
50
|
-
super(403, message, attrs);
|
|
51
|
-
this.name = "ForbiddenError";
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
var ConflictError = class extends AppError {
|
|
55
|
-
constructor(message = "Conflict", attrs) {
|
|
56
|
-
super(409, message, attrs);
|
|
57
|
-
this.name = "ConflictError";
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
var BadRequestError = class extends AppError {
|
|
61
|
-
constructor(message = "Bad request", attrs) {
|
|
62
|
-
super(400, message, attrs);
|
|
63
|
-
this.name = "BadRequestError";
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Thrown when an operation targets a client whose organization does not match
|
|
68
|
-
* the caller's authenticated organization. Retained for wire compatibility:
|
|
69
|
-
* the read paths that produced this error were retired in
|
|
70
|
-
* decouple-client-from-identity §4.1, so the server itself no longer raises
|
|
71
|
-
* it. SDK consumers may still pattern-match the `code` field on legacy
|
|
72
|
-
* payloads.
|
|
73
|
-
*/
|
|
74
|
-
var ClientOrgMismatchError = class extends AppError {
|
|
75
|
-
code = "CLIENT_ORG_MISMATCH";
|
|
76
|
-
constructor(message = "Client belongs to a different organization", attrs) {
|
|
77
|
-
super(403, message, attrs);
|
|
78
|
-
this.name = "ClientOrgMismatchError";
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* Thrown when a client.yaml is presented with a JWT whose user_id does not
|
|
83
|
-
* match the row's owner. The CLI responds by guiding the operator through
|
|
84
|
-
* `first-tree-hub client claim --confirm` to take over ownership, which
|
|
85
|
-
* unpins the previous owner's agents from this machine.
|
|
86
|
-
*/
|
|
87
|
-
var ClientUserMismatchError = class extends AppError {
|
|
88
|
-
code = "CLIENT_USER_MISMATCH";
|
|
89
|
-
constructor(message = "Client belongs to a different user", attrs) {
|
|
90
|
-
super(403, message, attrs);
|
|
91
|
-
this.name = "ClientUserMismatchError";
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* v1 §四 改造 1: `chat send <name>` was implicitly opening a direct chat
|
|
96
|
-
* whenever the target wasn't a member of the caller's current chat (issue
|
|
97
|
-
* #311). That auto-routing now requires `--direct`; otherwise the call
|
|
98
|
-
* fails with this error and a hint pointing at both the `--direct` escape
|
|
99
|
-
* hatch and the "ask a human in this chat to add the agent" workflow.
|
|
100
|
-
*/
|
|
101
|
-
var AgentSendNonMemberError = class extends AppError {
|
|
102
|
-
code = "AGENT_SEND_NON_MEMBER";
|
|
103
|
-
constructor(message, attrs) {
|
|
104
|
-
super(400, message, attrs);
|
|
105
|
-
this.name = "AgentSendNonMemberError";
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
/** Generate a UUID v7 (time-ordered). No external dependency. */
|
|
109
|
-
function uuidv7() {
|
|
110
|
-
const now = BigInt(Date.now());
|
|
111
|
-
const bytes = new Uint8Array(16);
|
|
112
|
-
bytes[0] = Number(now >> 40n & 255n);
|
|
113
|
-
bytes[1] = Number(now >> 32n & 255n);
|
|
114
|
-
bytes[2] = Number(now >> 24n & 255n);
|
|
115
|
-
bytes[3] = Number(now >> 16n & 255n);
|
|
116
|
-
bytes[4] = Number(now >> 8n & 255n);
|
|
117
|
-
bytes[5] = Number(now & 255n);
|
|
118
|
-
const rand = randomBytes(10);
|
|
119
|
-
for (let i = 0; i < 10; i++) {
|
|
120
|
-
const b = rand[i];
|
|
121
|
-
if (b !== void 0) bytes[6 + i] = b;
|
|
122
|
-
}
|
|
123
|
-
bytes[6] = (bytes[6] ?? 0) & 15 | 112;
|
|
124
|
-
bytes[8] = (bytes[8] ?? 0) & 63 | 128;
|
|
125
|
-
const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
126
|
-
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
127
|
-
}
|
|
128
|
-
//#endregion
|
|
129
|
-
export { ClientUserMismatchError as a, NotFoundError as c, users as d, uuidv7 as f, ClientOrgMismatchError as i, UnauthorizedError as l, AppError as n, ConflictError as o, BadRequestError as r, ForbiddenError as s, AgentSendNonMemberError as t, organizations as u };
|