@inkeep/agents-core 0.0.0-dev-20260409191739 → 0.0.0-dev-20260409192310

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 (45) hide show
  1. package/dist/auth/auth-schema.d.ts +108 -108
  2. package/dist/auth/auth-validation-schemas.d.ts +137 -137
  3. package/dist/client-exports.d.ts +2 -2
  4. package/dist/client-exports.js +2 -2
  5. package/dist/constants/otel-attributes.d.ts +2 -0
  6. package/dist/constants/otel-attributes.js +2 -0
  7. package/dist/data-access/index.d.ts +2 -2
  8. package/dist/data-access/index.js +2 -2
  9. package/dist/data-access/manage/agentFull.js +23 -3
  10. package/dist/data-access/manage/agents.d.ts +5 -5
  11. package/dist/data-access/manage/agents.js +12 -1
  12. package/dist/data-access/manage/contextConfigs.d.ts +4 -4
  13. package/dist/data-access/manage/skills.d.ts +3 -3
  14. package/dist/data-access/manage/subAgentExternalAgentRelations.d.ts +6 -6
  15. package/dist/data-access/manage/subAgentRelations.d.ts +4 -4
  16. package/dist/data-access/manage/subAgentTeamAgentRelations.d.ts +6 -6
  17. package/dist/data-access/manage/subAgents.d.ts +3 -3
  18. package/dist/data-access/manage/tools.d.ts +9 -9
  19. package/dist/data-access/manage/triggerCleanup.js +6 -1
  20. package/dist/data-access/manage/triggers.d.ts +62 -3
  21. package/dist/data-access/manage/triggers.js +88 -3
  22. package/dist/data-access/runtime/apps.d.ts +4 -4
  23. package/dist/data-access/runtime/messages.d.ts +3 -3
  24. package/dist/data-access/runtime/triggerInvocations.d.ts +2 -0
  25. package/dist/db/manage/dolt-safe-jsonb.d.ts +2 -2
  26. package/dist/db/manage/manage-schema.d.ts +587 -451
  27. package/dist/db/manage/manage-schema.js +43 -2
  28. package/dist/db/runtime/runtime-schema.d.ts +443 -405
  29. package/dist/db/runtime/runtime-schema.js +4 -1
  30. package/dist/index.d.ts +4 -4
  31. package/dist/index.js +4 -4
  32. package/dist/middleware/no-auth.d.ts +2 -2
  33. package/dist/validation/drizzle-schema-helpers.d.ts +3 -3
  34. package/dist/validation/index.d.ts +2 -2
  35. package/dist/validation/index.js +2 -2
  36. package/dist/validation/schemas/skills.d.ts +21 -21
  37. package/dist/validation/schemas.d.ts +1588 -1394
  38. package/dist/validation/schemas.js +35 -13
  39. package/drizzle/manage/0018_gorgeous_captain_america.sql +14 -0
  40. package/drizzle/manage/meta/0018_snapshot.json +3884 -0
  41. package/drizzle/manage/meta/_journal.json +7 -0
  42. package/drizzle/runtime/0035_many_steel_serpent.sql +3 -0
  43. package/drizzle/runtime/meta/0035_snapshot.json +5321 -0
  44. package/drizzle/runtime/meta/_journal.json +7 -0
  45. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { triggers } from "../../db/manage/manage-schema.js";
1
+ import { triggerUsers, triggers } from "../../db/manage/manage-schema.js";
2
2
  import { agentScopedWhere, projectScopedWhere } from "./scope-helpers.js";
3
- import { and, count, desc, eq } from "drizzle-orm";
3
+ import { and, asc, count, desc, eq, inArray } from "drizzle-orm";
4
4
 
5
5
  //#region src/data-access/manage/triggers.ts
6
6
  /**
@@ -42,6 +42,19 @@ const listTriggersPaginated = (db) => async (params) => {
42
42
  const createTrigger = (db) => async (params) => {
43
43
  return (await db.insert(triggers).values(params).returning())[0];
44
44
  };
45
+ const createTriggerWithUsers = (db) => async (params) => {
46
+ return db.transaction(async (tx) => {
47
+ const trigger = await createTrigger(tx)(params.trigger);
48
+ if (params.userIds.length > 0) await tx.insert(triggerUsers).values(params.userIds.map((userId) => ({
49
+ tenantId: trigger.tenantId,
50
+ projectId: trigger.projectId,
51
+ agentId: trigger.agentId,
52
+ triggerId: trigger.id,
53
+ userId
54
+ })));
55
+ return trigger;
56
+ });
57
+ };
45
58
  /**
46
59
  * Update a trigger (agent-scoped)
47
60
  */
@@ -68,6 +81,78 @@ const deleteTriggersByRunAsUserId = (db) => async (params) => {
68
81
  projectId: params.projectId
69
82
  }), eq(triggers.runAsUserId, params.runAsUserId)));
70
83
  };
84
+ const getTriggerUsers = (db) => async (params) => {
85
+ return db.select().from(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId))).orderBy(asc(triggerUsers.createdAt));
86
+ };
87
+ const getTriggerUsersBatch = (db) => async (params) => {
88
+ if (params.triggerIds.length === 0) return /* @__PURE__ */ new Map();
89
+ const rows = await db.select().from(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), inArray(triggerUsers.triggerId, params.triggerIds))).orderBy(asc(triggerUsers.createdAt));
90
+ const result = /* @__PURE__ */ new Map();
91
+ for (const triggerId of params.triggerIds) result.set(triggerId, []);
92
+ for (const row of rows) {
93
+ const userIds = result.get(row.triggerId);
94
+ if (userIds) userIds.push(row.userId);
95
+ }
96
+ return result;
97
+ };
98
+ const createTriggerUser = (db) => async (params) => {
99
+ return (await db.insert(triggerUsers).values({
100
+ tenantId: params.scopes.tenantId,
101
+ projectId: params.scopes.projectId,
102
+ agentId: params.scopes.agentId,
103
+ triggerId: params.triggerId,
104
+ userId: params.userId
105
+ }).onConflictDoNothing().returning())[0];
106
+ };
107
+ const deleteTriggerUser = (db) => async (params) => {
108
+ await db.delete(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId), eq(triggerUsers.userId, params.userId)));
109
+ };
110
+ const setTriggerUsers = (db) => async (params) => {
111
+ await db.delete(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId)));
112
+ if (params.userIds.length > 0) await db.insert(triggerUsers).values(params.userIds.map((userId) => ({
113
+ tenantId: params.scopes.tenantId,
114
+ projectId: params.scopes.projectId,
115
+ agentId: params.scopes.agentId,
116
+ triggerId: params.triggerId,
117
+ userId
118
+ })));
119
+ };
120
+ const getTriggerUserCount = (db) => async (params) => {
121
+ return (await db.select({ count: count() }).from(triggerUsers).where(and(agentScopedWhere(triggerUsers, params.scopes), eq(triggerUsers.triggerId, params.triggerId))))[0]?.count ?? 0;
122
+ };
123
+ const getWebhookTriggerIdsWithUser = (db) => async (params) => {
124
+ return db.select({
125
+ agentId: triggers.agentId,
126
+ id: triggers.id
127
+ }).from(triggers).innerJoin(triggerUsers, and(eq(triggerUsers.tenantId, triggers.tenantId), eq(triggerUsers.projectId, triggers.projectId), eq(triggerUsers.agentId, triggers.agentId), eq(triggerUsers.triggerId, triggers.id))).where(and(projectScopedWhere(triggers, {
128
+ tenantId: params.tenantId,
129
+ projectId: params.projectId
130
+ }), eq(triggerUsers.userId, params.userId)));
131
+ };
132
+ const removeUserFromProjectTriggerUsers = (db) => async (params) => {
133
+ await db.transaction(async (tx) => {
134
+ const triggerRows = await getWebhookTriggerIdsWithUser(tx)(params);
135
+ if (triggerRows.length === 0) return;
136
+ const triggerIds = triggerRows.map((row) => row.id);
137
+ await tx.delete(triggerUsers).where(and(projectScopedWhere(triggerUsers, {
138
+ tenantId: params.tenantId,
139
+ projectId: params.projectId
140
+ }), inArray(triggerUsers.triggerId, triggerIds), eq(triggerUsers.userId, params.userId)));
141
+ const triggersWithRemainingUsers = await tx.select({ triggerId: triggerUsers.triggerId }).from(triggerUsers).where(and(projectScopedWhere(triggerUsers, {
142
+ tenantId: params.tenantId,
143
+ projectId: params.projectId
144
+ }), inArray(triggerUsers.triggerId, triggerIds))).groupBy(triggerUsers.triggerId);
145
+ const triggerIdsWithRemainingUsers = new Set(triggersWithRemainingUsers.map((row) => row.triggerId));
146
+ const emptyTriggerIds = triggerIds.filter((id) => !triggerIdsWithRemainingUsers.has(id));
147
+ if (emptyTriggerIds.length > 0) await tx.update(triggers).set({
148
+ enabled: false,
149
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
150
+ }).where(and(projectScopedWhere(triggers, {
151
+ tenantId: params.tenantId,
152
+ projectId: params.projectId
153
+ }), inArray(triggers.id, emptyTriggerIds), eq(triggers.enabled, true)));
154
+ });
155
+ };
71
156
  /**
72
157
  * Upsert a trigger (create or update based on existence)
73
158
  */
@@ -89,4 +174,4 @@ const upsertTrigger = (db) => async (params) => {
89
174
  };
90
175
 
91
176
  //#endregion
92
- export { createTrigger, deleteTrigger, deleteTriggersByRunAsUserId, getTriggerById, listTriggers, listTriggersPaginated, updateTrigger, upsertTrigger };
177
+ export { createTrigger, createTriggerUser, createTriggerWithUsers, deleteTrigger, deleteTriggerUser, deleteTriggersByRunAsUserId, getTriggerById, getTriggerUserCount, getTriggerUsers, getTriggerUsersBatch, getWebhookTriggerIdsWithUser, listTriggers, listTriggersPaginated, removeUserFromProjectTriggerUsers, setTriggerUsers, updateTrigger, upsertTrigger };
@@ -11,10 +11,10 @@ declare const getAppById: (db: AgentsRunDatabaseClient) => (id: string) => Promi
11
11
  createdAt: string;
12
12
  updatedAt: string;
13
13
  description: string | null;
14
- tenantId: string | null;
15
14
  enabled: boolean;
16
- prompt: string | null;
15
+ tenantId: string | null;
17
16
  projectId: string | null;
17
+ prompt: string | null;
18
18
  config: {
19
19
  type: "web_client";
20
20
  webClient: {
@@ -67,10 +67,10 @@ declare const createApp: (db: AgentsRunDatabaseClient) => (params: AppInsert) =>
67
67
  createdAt: string;
68
68
  updatedAt: string;
69
69
  description: string | null;
70
- tenantId: string | null;
71
70
  enabled: boolean;
72
- prompt: string | null;
71
+ tenantId: string | null;
73
72
  projectId: string | null;
73
+ prompt: string | null;
74
74
  config: {
75
75
  type: "web_client";
76
76
  webClient: {
@@ -16,8 +16,8 @@ declare const getMessageById: (db: AgentsRunDatabaseClient) => (params: {
16
16
  metadata: MessageMetadata | null;
17
17
  role: string;
18
18
  tenantId: string;
19
- projectId: string;
20
19
  content: MessageContent;
20
+ projectId: string;
21
21
  conversationId: string;
22
22
  fromSubAgentId: string | null;
23
23
  toSubAgentId: string | null;
@@ -150,8 +150,8 @@ declare const createMessage: (db: AgentsRunDatabaseClient) => (params: {
150
150
  metadata: MessageMetadata | null;
151
151
  role: string;
152
152
  tenantId: string;
153
- projectId: string;
154
153
  content: MessageContent;
154
+ projectId: string;
155
155
  conversationId: string;
156
156
  fromSubAgentId: string | null;
157
157
  toSubAgentId: string | null;
@@ -203,8 +203,8 @@ declare const deleteMessage: (db: AgentsRunDatabaseClient) => (params: {
203
203
  metadata: MessageMetadata | null;
204
204
  role: string;
205
205
  tenantId: string;
206
- projectId: string;
207
206
  content: MessageContent;
207
+ projectId: string;
208
208
  conversationId: string;
209
209
  fromSubAgentId: string | null;
210
210
  toSubAgentId: string | null;
@@ -28,6 +28,8 @@ declare const listTriggerInvocationsPaginated: (db: AgentsRunDatabaseClient) =>
28
28
  data: {
29
29
  triggerId: string;
30
30
  conversationId: string | null;
31
+ runAsUserId: string | null;
32
+ batchId: string | null;
31
33
  ref: {
32
34
  type: "commit" | "tag" | "branch";
33
35
  name: string;
@@ -1,4 +1,4 @@
1
- import * as drizzle_orm_pg_core484 from "drizzle-orm/pg-core";
1
+ import * as drizzle_orm_pg_core220 from "drizzle-orm/pg-core";
2
2
 
3
3
  //#region src/db/manage/dolt-safe-jsonb.d.ts
4
4
  declare function encodeBackslashes(value: unknown): unknown;
@@ -7,6 +7,6 @@ declare function decodeBackslashes(value: unknown): unknown;
7
7
  * Drop-in replacement for drizzle-orm's `jsonb()`.
8
8
  * Encodes backslashes on write and decodes on read to work around the Doltgres bug.
9
9
  */
10
- declare function jsonb(name: string): ReturnType<typeof drizzle_orm_pg_core484.jsonb>;
10
+ declare function jsonb(name: string): ReturnType<typeof drizzle_orm_pg_core220.jsonb>;
11
11
  //#endregion
12
12
  export { decodeBackslashes, encodeBackslashes, jsonb };