@inkeep/agents-core 0.65.0 → 0.65.2

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 (61) hide show
  1. package/dist/auth/auth-schema.d.ts +108 -108
  2. package/dist/auth/auth-validation-schemas.d.ts +154 -154
  3. package/dist/auth/permissions.d.ts +9 -9
  4. package/dist/client-exports.d.ts +3 -3
  5. package/dist/client-exports.js +3 -3
  6. package/dist/constants/otel-attributes.d.ts +1 -0
  7. package/dist/constants/otel-attributes.js +1 -0
  8. package/dist/data-access/index.d.ts +2 -1
  9. package/dist/data-access/index.js +2 -1
  10. package/dist/data-access/manage/agents.d.ts +25 -25
  11. package/dist/data-access/manage/artifactComponents.d.ts +10 -10
  12. package/dist/data-access/manage/contextConfigs.d.ts +12 -12
  13. package/dist/data-access/manage/dataComponents.d.ts +4 -4
  14. package/dist/data-access/manage/dataComponents.js +1 -1
  15. package/dist/data-access/manage/functionTools.d.ts +10 -10
  16. package/dist/data-access/manage/skills.d.ts +12 -12
  17. package/dist/data-access/manage/subAgentExternalAgentRelations.d.ts +12 -12
  18. package/dist/data-access/manage/subAgentRelations.d.ts +20 -20
  19. package/dist/data-access/manage/subAgentTeamAgentRelations.d.ts +12 -12
  20. package/dist/data-access/manage/subAgents.d.ts +15 -15
  21. package/dist/data-access/manage/tools.d.ts +27 -27
  22. package/dist/data-access/manage/triggers.d.ts +2 -2
  23. package/dist/data-access/runtime/apiKeys.d.ts +12 -12
  24. package/dist/data-access/runtime/apps.d.ts +10 -10
  25. package/dist/data-access/runtime/conversations.d.ts +16 -16
  26. package/dist/data-access/runtime/feedback.d.ts +101 -0
  27. package/dist/data-access/runtime/feedback.js +83 -0
  28. package/dist/data-access/runtime/messages.d.ts +12 -12
  29. package/dist/data-access/runtime/scheduledTriggerInvocations.d.ts +4 -4
  30. package/dist/data-access/runtime/scheduledTriggerUsers.d.ts +1 -1
  31. package/dist/data-access/runtime/tasks.d.ts +3 -3
  32. package/dist/db/manage/dolt-safe-jsonb.d.ts +2 -2
  33. package/dist/db/manage/manage-client.js +15 -3
  34. package/dist/db/manage/manage-schema.d.ts +449 -449
  35. package/dist/db/runtime/runtime-client.js +7 -1
  36. package/dist/db/runtime/runtime-schema.d.ts +543 -365
  37. package/dist/db/runtime/runtime-schema.js +73 -2
  38. package/dist/dolt/merge.js +7 -9
  39. package/dist/dolt/ref-scope.js +9 -3
  40. package/dist/index.d.ts +8 -7
  41. package/dist/index.js +7 -6
  42. package/dist/types/entities.d.ts +5 -2
  43. package/dist/types/index.d.ts +2 -2
  44. package/dist/utils/error.d.ts +7 -1
  45. package/dist/utils/error.js +63 -21
  46. package/dist/utils/index.d.ts +3 -3
  47. package/dist/utils/index.js +3 -3
  48. package/dist/utils/logger.d.ts +21 -2
  49. package/dist/utils/logger.js +67 -11
  50. package/dist/validation/drizzle-schema-helpers.d.ts +3 -3
  51. package/dist/validation/index.d.ts +3 -3
  52. package/dist/validation/index.js +3 -3
  53. package/dist/validation/schemas/shared.d.ts +3 -1
  54. package/dist/validation/schemas/shared.js +6 -1
  55. package/dist/validation/schemas/skills.d.ts +41 -41
  56. package/dist/validation/schemas.d.ts +2567 -2139
  57. package/dist/validation/schemas.js +29 -6
  58. package/drizzle/runtime/0034_simple_sphinx.sql +17 -0
  59. package/drizzle/runtime/meta/0034_snapshot.json +5288 -0
  60. package/drizzle/runtime/meta/_journal.json +8 -1
  61. package/package.json +1 -1
@@ -0,0 +1,83 @@
1
+ import { conversations, feedback } from "../../db/runtime/runtime-schema.js";
2
+ import { projectScopedWhere } from "../manage/scope-helpers.js";
3
+ import { and, count, desc, eq, gte, lte } from "drizzle-orm";
4
+
5
+ //#region src/data-access/runtime/feedback.ts
6
+ const getFeedbackById = (db) => async (params) => {
7
+ const [result] = await db.select({
8
+ id: feedback.id,
9
+ conversationId: feedback.conversationId,
10
+ messageId: feedback.messageId,
11
+ type: feedback.type,
12
+ details: feedback.details,
13
+ createdAt: feedback.createdAt,
14
+ updatedAt: feedback.updatedAt
15
+ }).from(feedback).where(and(projectScopedWhere(feedback, params.scopes), eq(feedback.id, params.feedbackId))).limit(1);
16
+ return result;
17
+ };
18
+ const listFeedbackByConversation = (db) => async (params) => {
19
+ return listFeedback(db)({
20
+ scopes: params.scopes,
21
+ conversationId: params.conversationId,
22
+ messageId: params.messageId,
23
+ pagination: params.pagination
24
+ });
25
+ };
26
+ const listFeedback = (db) => async (params) => {
27
+ const page = params.pagination?.page || 1;
28
+ const limit = Math.min(params.pagination?.limit || 10, 100);
29
+ const offset = (page - 1) * limit;
30
+ const conditions = [projectScopedWhere(feedback, params.scopes)];
31
+ if (params.conversationId) conditions.push(eq(feedback.conversationId, params.conversationId));
32
+ if (params.messageId) conditions.push(eq(feedback.messageId, params.messageId));
33
+ if (params.type) conditions.push(eq(feedback.type, params.type));
34
+ if (params.startDate) conditions.push(gte(feedback.createdAt, `${params.startDate}T00:00:00.000Z`));
35
+ if (params.endDate) conditions.push(lte(feedback.createdAt, `${params.endDate}T23:59:59.999Z`));
36
+ if (params.agentId) conditions.push(eq(conversations.agentId, params.agentId));
37
+ const whereClause = and(...conditions);
38
+ const conversationsJoin = [
39
+ eq(feedback.tenantId, conversations.tenantId),
40
+ eq(feedback.projectId, conversations.projectId),
41
+ eq(feedback.conversationId, conversations.id)
42
+ ];
43
+ const countQuery = db.select({ count: count() }).from(feedback);
44
+ if (params.agentId) countQuery.leftJoin(conversations, and(...conversationsJoin));
45
+ const [items, total] = await Promise.all([db.select({
46
+ id: feedback.id,
47
+ conversationId: feedback.conversationId,
48
+ messageId: feedback.messageId,
49
+ type: feedback.type,
50
+ details: feedback.details,
51
+ createdAt: feedback.createdAt,
52
+ updatedAt: feedback.updatedAt,
53
+ agentId: conversations.agentId
54
+ }).from(feedback).leftJoin(conversations, and(...conversationsJoin)).where(whereClause).limit(limit).offset(offset).orderBy(desc(feedback.createdAt)), countQuery.where(whereClause)]);
55
+ return {
56
+ feedback: items,
57
+ total: typeof total[0]?.count === "string" ? Number.parseInt(total[0].count, 10) : total[0]?.count ?? 0
58
+ };
59
+ };
60
+ const createFeedback = (db) => async (params) => {
61
+ const now = (/* @__PURE__ */ new Date()).toISOString();
62
+ const [created] = await db.insert(feedback).values({
63
+ ...params,
64
+ createdAt: now,
65
+ updatedAt: now
66
+ }).returning();
67
+ return created;
68
+ };
69
+ const updateFeedback = (db) => async (params) => {
70
+ const now = (/* @__PURE__ */ new Date()).toISOString();
71
+ const [updated] = await db.update(feedback).set({
72
+ ...params.data,
73
+ updatedAt: now
74
+ }).where(and(projectScopedWhere(feedback, params.scopes), eq(feedback.id, params.feedbackId))).returning();
75
+ return updated;
76
+ };
77
+ const deleteFeedback = (db) => async (params) => {
78
+ const [deleted] = await db.delete(feedback).where(and(projectScopedWhere(feedback, params.scopes), eq(feedback.id, params.feedbackId))).returning();
79
+ return deleted;
80
+ };
81
+
82
+ //#endregion
83
+ export { createFeedback, deleteFeedback, getFeedbackById, listFeedback, listFeedbackByConversation, updateFeedback };
@@ -10,15 +10,15 @@ declare const getMessageById: (db: AgentsRunDatabaseClient) => (params: {
10
10
  scopes: ProjectScopeConfig;
11
11
  messageId: string;
12
12
  }) => Promise<{
13
+ tenantId: string;
14
+ projectId: string;
13
15
  id: string;
14
16
  createdAt: string;
15
17
  updatedAt: string;
16
- tenantId: string;
17
- projectId: string;
18
- content: MessageContent;
19
18
  metadata: MessageMetadata | null;
20
- conversationId: string;
19
+ content: MessageContent;
21
20
  role: string;
21
+ conversationId: string;
22
22
  fromSubAgentId: string | null;
23
23
  toSubAgentId: string | null;
24
24
  fromExternalAgentId: string | null;
@@ -144,15 +144,15 @@ declare const createMessage: (db: AgentsRunDatabaseClient) => (params: {
144
144
  scopes: ProjectScopeConfig;
145
145
  data: Omit<MessageInsert, "tenantId" | "projectId">;
146
146
  }) => Promise<{
147
+ tenantId: string;
148
+ projectId: string;
147
149
  id: string;
148
150
  createdAt: string;
149
151
  updatedAt: string;
150
- tenantId: string;
151
- projectId: string;
152
- content: MessageContent;
153
152
  metadata: MessageMetadata | null;
154
- conversationId: string;
153
+ content: MessageContent;
155
154
  role: string;
155
+ conversationId: string;
156
156
  fromSubAgentId: string | null;
157
157
  toSubAgentId: string | null;
158
158
  fromExternalAgentId: string | null;
@@ -197,15 +197,15 @@ declare const deleteMessage: (db: AgentsRunDatabaseClient) => (params: {
197
197
  scopes: ProjectScopeConfig;
198
198
  messageId: string;
199
199
  }) => Promise<{
200
+ tenantId: string;
201
+ projectId: string;
200
202
  id: string;
201
203
  createdAt: string;
202
204
  updatedAt: string;
203
- tenantId: string;
204
- projectId: string;
205
- content: MessageContent;
206
205
  metadata: MessageMetadata | null;
207
- conversationId: string;
206
+ content: MessageContent;
208
207
  role: string;
208
+ conversationId: string;
209
209
  fromSubAgentId: string | null;
210
210
  toSubAgentId: string | null;
211
211
  fromExternalAgentId: string | null;
@@ -40,7 +40,7 @@ declare const listScheduledTriggerInvocationsPaginated: (db: AgentsRunDatabaseCl
40
40
  name: string;
41
41
  hash: string;
42
42
  } | null;
43
- status: "running" | "completed" | "failed" | "pending" | "cancelled";
43
+ status: "pending" | "failed" | "running" | "completed" | "cancelled";
44
44
  scheduledFor: string;
45
45
  startedAt: string | null;
46
46
  completedAt: string | null;
@@ -199,7 +199,7 @@ declare const listUpcomingInvocationsForAgentPaginated: (db: AgentsRunDatabaseCl
199
199
  name: string;
200
200
  hash: string;
201
201
  } | null;
202
- status: "running" | "completed" | "failed" | "pending" | "cancelled";
202
+ status: "pending" | "failed" | "running" | "completed" | "cancelled";
203
203
  scheduledFor: string;
204
204
  startedAt: string | null;
205
205
  completedAt: string | null;
@@ -239,7 +239,7 @@ declare const listProjectScheduledTriggerInvocationsPaginated: (db: AgentsRunDat
239
239
  name: string;
240
240
  hash: string;
241
241
  } | null;
242
- status: "running" | "completed" | "failed" | "pending" | "cancelled";
242
+ status: "pending" | "failed" | "running" | "completed" | "cancelled";
243
243
  scheduledFor: string;
244
244
  startedAt: string | null;
245
245
  completedAt: string | null;
@@ -292,7 +292,7 @@ declare const listScheduledTriggerInvocationsByTriggerId: (db: AgentsRunDatabase
292
292
  name: string;
293
293
  hash: string;
294
294
  } | null;
295
- status: "running" | "completed" | "failed" | "pending" | "cancelled";
295
+ status: "pending" | "failed" | "running" | "completed" | "cancelled";
296
296
  scheduledFor: string;
297
297
  startedAt: string | null;
298
298
  completedAt: string | null;
@@ -15,8 +15,8 @@ declare const createScheduledTriggerUser: (db: AgentsRunDatabaseClient) => (para
15
15
  scheduledTriggerId: string;
16
16
  userId: string;
17
17
  }) => Promise<{
18
- createdAt: string;
19
18
  tenantId: string;
19
+ createdAt: string;
20
20
  userId: string;
21
21
  scheduledTriggerId: string;
22
22
  }>;
@@ -7,6 +7,8 @@ import { TaskInsert, TaskSelect } from "../../types/entities.js";
7
7
 
8
8
  //#region src/data-access/runtime/tasks.d.ts
9
9
  declare const createTask: (db: AgentsRunDatabaseClient) => (params: TaskInsert) => Promise<{
10
+ tenantId: string;
11
+ projectId: string;
10
12
  id: string;
11
13
  ref: {
12
14
  type: "commit" | "tag" | "branch";
@@ -15,10 +17,8 @@ declare const createTask: (db: AgentsRunDatabaseClient) => (params: TaskInsert)
15
17
  } | null;
16
18
  createdAt: string;
17
19
  updatedAt: string;
18
- tenantId: string;
19
- projectId: string;
20
- agentId: string;
21
20
  metadata: TaskMetadataConfig | null;
21
+ agentId: string;
22
22
  subAgentId: string;
23
23
  status: string;
24
24
  contextId: string;
@@ -1,4 +1,4 @@
1
- import * as drizzle_orm_pg_core0 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_core0.jsonb>;
10
+ declare function jsonb(name: string): ReturnType<typeof drizzle_orm_pg_core220.jsonb>;
11
11
  //#endregion
12
12
  export { decodeBackslashes, encodeBackslashes, jsonb };
@@ -1,11 +1,14 @@
1
1
  import { manage_schema_exports } from "./manage-schema.js";
2
2
  import { env, loadEnvironmentFiles } from "../../env.js";
3
+ import { getLogger } from "../../utils/logger.js";
4
+ import { getDatabaseErrorLogContext } from "../../utils/error.js";
3
5
  import { createTestManageDatabaseClientNoMigrations } from "./test-manage-client.js";
4
6
  import { drizzle } from "drizzle-orm/node-postgres";
5
7
  import { Pool } from "pg";
6
8
 
7
9
  //#region src/db/manage/manage-client.ts
8
10
  loadEnvironmentFiles();
11
+ const managePoolLogger = getLogger("manage-db-pool");
9
12
  function createAgentsManageDatabasePool(config) {
10
13
  const connectionString = config.connectionString || env.INKEEP_AGENTS_MANAGE_DATABASE_URL;
11
14
  if (!connectionString) throw new Error("INKEEP_AGENTS_MANAGE_DATABASE_URL environment variable is required. Please set it to your PostgreSQL connection string.");
@@ -18,7 +21,10 @@ function createAgentsManageDatabasePool(config) {
18
21
  idleTimeoutMillis: 3e4
19
22
  });
20
23
  pool.on("error", (err) => {
21
- console.error("Unexpected PostgreSQL pool error:", err);
24
+ managePoolLogger.error({
25
+ error: err,
26
+ ...getDatabaseErrorLogContext(err)
27
+ }, "Unexpected error on agents manage database pool (Doltgres)");
22
28
  });
23
29
  return pool;
24
30
  }
@@ -38,7 +44,10 @@ function createAgentsManageDatabaseClient(config) {
38
44
  idleTimeoutMillis: 3e4
39
45
  });
40
46
  pool.on("error", (err) => {
41
- console.error("Unexpected PostgreSQL pool error:", err);
47
+ managePoolLogger.error({
48
+ error: err,
49
+ ...getDatabaseErrorLogContext(err)
50
+ }, "Unexpected error on agents manage database pool (Doltgres)");
42
51
  });
43
52
  return drizzle(pool, {
44
53
  schema: manage_schema_exports,
@@ -57,7 +66,10 @@ function createAgentManageDatabaseConnection(config) {
57
66
  connectionTimeoutMillis: 1e4
58
67
  });
59
68
  pool.on("error", (err) => {
60
- console.error("Unexpected PostgreSQL pool error:", err);
69
+ managePoolLogger.error({
70
+ error: err,
71
+ ...getDatabaseErrorLogContext(err)
72
+ }, "Unexpected error on agents manage database pool (Doltgres)");
61
73
  });
62
74
  return pool.connect().then((connection) => {
63
75
  const db = drizzle(connection, {