weave-typescript 0.51.2 → 0.52.0

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 (185) hide show
  1. package/dist/google/protobuf/duration.pb.d.ts +99 -0
  2. package/dist/google/protobuf/duration.pb.js +93 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +2 -1
  5. package/dist/weave/authz/v1/index.d.ts +1 -0
  6. package/dist/weave/authz/v1/index.js +38 -0
  7. package/dist/weave/authz/v1/options.pb.d.ts +52 -0
  8. package/dist/weave/authz/v1/options.pb.js +403 -0
  9. package/dist/weave/filter/v1/index.d.ts +1 -0
  10. package/dist/weave/filter/v1/index.js +38 -0
  11. package/dist/{weaveapi/atc/v1/message.pb.d.ts → weave/filter/v1/options.pb.d.ts} +33 -21
  12. package/dist/weave/filter/v1/options.pb.js +417 -0
  13. package/dist/weave/index.d.ts +2 -0
  14. package/dist/weave/index.js +39 -0
  15. package/dist/weaveapi/agent/v1/agent.pb.d.ts +137 -188
  16. package/dist/weaveapi/agent/v1/agent.pb.js +891 -2151
  17. package/dist/weaveapi/agent/v1/index.d.ts +1 -1
  18. package/dist/weaveapi/agent/v1/index.js +2 -2
  19. package/dist/weaveapi/agent/v1/run.pb.d.ts +289 -0
  20. package/dist/weaveapi/agent/v1/run.pb.js +2763 -0
  21. package/dist/weaveapi/auth/v1/auth.pb.d.ts +67 -14
  22. package/dist/weaveapi/auth/v1/auth.pb.js +829 -89
  23. package/dist/weaveapi/auth/v1/index.d.ts +4 -1
  24. package/dist/weaveapi/auth/v1/index.js +5 -2
  25. package/dist/weaveapi/auth/v1/{service.pb.d.ts → organization_admin.pb.d.ts} +39 -530
  26. package/dist/weaveapi/auth/v1/{service.pb.js → organization_admin.pb.js} +2978 -5812
  27. package/dist/weaveapi/auth/v1/personal_access_token.pb.d.ts +114 -0
  28. package/dist/weaveapi/auth/v1/personal_access_token.pb.js +750 -0
  29. package/dist/weaveapi/auth/v1/profile.pb.d.ts +161 -0
  30. package/dist/weaveapi/auth/v1/profile.pb.js +1007 -0
  31. package/dist/weaveapi/auth/v1/session.pb.d.ts +460 -0
  32. package/dist/weaveapi/auth/v1/session.pb.js +3544 -0
  33. package/dist/weaveapi/chat/v1/chat.pb.d.ts +377 -149
  34. package/dist/weaveapi/chat/v1/chat.pb.js +3492 -1614
  35. package/dist/weaveapi/chat/v1/index.d.ts +0 -1
  36. package/dist/weaveapi/chat/v1/index.js +1 -2
  37. package/dist/weaveapi/consolidation/v1/consolidation.pb.d.ts +95 -0
  38. package/dist/weaveapi/consolidation/v1/consolidation.pb.js +770 -1
  39. package/dist/weaveapi/consolidation/v1/index.d.ts +0 -1
  40. package/dist/weaveapi/consolidation/v1/index.js +1 -2
  41. package/dist/weaveapi/content/v1/content.pb.d.ts +63 -0
  42. package/dist/weaveapi/content/v1/content.pb.js +470 -0
  43. package/dist/weaveapi/content/v1/index.d.ts +1 -0
  44. package/dist/weaveapi/content/v1/index.js +38 -0
  45. package/dist/weaveapi/gateway/v1/gateway.pb.d.ts +247 -523
  46. package/dist/weaveapi/gateway/v1/gateway.pb.js +1648 -5783
  47. package/dist/weaveapi/gateway/v1/index.d.ts +0 -1
  48. package/dist/weaveapi/gateway/v1/index.js +1 -2
  49. package/dist/weaveapi/index.d.ts +5 -5
  50. package/dist/weaveapi/index.js +6 -6
  51. package/dist/weaveapi/inference/v1/generate.pb.d.ts +120 -0
  52. package/dist/weaveapi/inference/v1/generate.pb.js +1159 -0
  53. package/dist/weaveapi/inference/v1/index.d.ts +4 -0
  54. package/dist/weaveapi/{provider → inference}/v1/index.js +4 -2
  55. package/dist/weaveapi/{model → inference}/v1/model.pb.d.ts +52 -15
  56. package/dist/weaveapi/{model → inference}/v1/model.pb.js +529 -116
  57. package/dist/weaveapi/{model/v1/service.pb.d.ts → inference/v1/model_route.pb.d.ts} +182 -110
  58. package/dist/weaveapi/{model/v1/service.pb.js → inference/v1/model_route.pb.js} +2197 -1061
  59. package/dist/weaveapi/inference/v1/provider.pb.d.ts +264 -0
  60. package/dist/weaveapi/inference/v1/provider.pb.js +2590 -0
  61. package/dist/weaveapi/ingestion/v1/index.d.ts +0 -2
  62. package/dist/weaveapi/ingestion/v1/index.js +1 -3
  63. package/dist/weaveapi/ingestion/v1/ingestion.pb.d.ts +543 -0
  64. package/dist/weaveapi/ingestion/v1/ingestion.pb.js +5550 -16
  65. package/dist/weaveapi/initialization/v1/index.d.ts +1 -0
  66. package/dist/weaveapi/initialization/v1/index.js +38 -0
  67. package/dist/weaveapi/initialization/v1/initialization.pb.d.ts +99 -0
  68. package/dist/weaveapi/initialization/v1/initialization.pb.js +510 -0
  69. package/dist/weaveapi/organization/v1/index.d.ts +0 -1
  70. package/dist/weaveapi/organization/v1/index.js +1 -2
  71. package/dist/weaveapi/organization/v1/organization.pb.d.ts +241 -0
  72. package/dist/weaveapi/organization/v1/organization.pb.js +1838 -1
  73. package/dist/weaveapi/reporting/index.d.ts +1 -0
  74. package/dist/weaveapi/reporting/index.js +38 -0
  75. package/dist/weaveapi/{task → reporting}/v1/index.d.ts +1 -1
  76. package/dist/weaveapi/{model → reporting}/v1/index.js +2 -2
  77. package/dist/weaveapi/reporting/v1/service.pb.d.ts +38 -0
  78. package/dist/weaveapi/reporting/v1/service.pb.js +167 -0
  79. package/dist/weaveapi/reporting/v1/usage.pb.d.ts +150 -0
  80. package/dist/weaveapi/reporting/v1/usage.pb.js +1837 -0
  81. package/dist/weaveapi/retrieval/v1/index.d.ts +0 -1
  82. package/dist/weaveapi/retrieval/v1/index.js +1 -2
  83. package/dist/weaveapi/retrieval/v1/retrieval.pb.d.ts +96 -2
  84. package/dist/weaveapi/retrieval/v1/retrieval.pb.js +690 -10
  85. package/dist/weaveapi/tool/index.d.ts +1 -0
  86. package/dist/weaveapi/tool/index.js +38 -0
  87. package/dist/weaveapi/tool/v1/index.d.ts +1 -0
  88. package/dist/weaveapi/tool/v1/index.js +38 -0
  89. package/dist/weaveapi/tool/v1/tool.pb.d.ts +370 -0
  90. package/dist/weaveapi/tool/v1/tool.pb.js +2717 -0
  91. package/dist/weaveapi/workflow/v1/index.d.ts +1 -1
  92. package/dist/weaveapi/workflow/v1/index.js +2 -2
  93. package/dist/weaveapi/workflow/v1/run.pb.d.ts +244 -0
  94. package/dist/weaveapi/workflow/v1/run.pb.js +2084 -0
  95. package/dist/weaveapi/workflow/v1/workflow.pb.d.ts +122 -275
  96. package/dist/weaveapi/workflow/v1/workflow.pb.js +790 -3261
  97. package/dist/weavesql/weavedb/agent_sql.d.ts +173 -477
  98. package/dist/weavesql/weavedb/agent_sql.js +281 -758
  99. package/dist/weavesql/weavedb/authorization_outbox_sql.d.ts +261 -0
  100. package/dist/weavesql/weavedb/authorization_outbox_sql.js +445 -0
  101. package/dist/weavesql/weavedb/chat_sql.d.ts +103 -345
  102. package/dist/weavesql/weavedb/chat_sql.js +312 -597
  103. package/dist/weavesql/weavedb/document_consolidation_sql.d.ts +217 -0
  104. package/dist/weavesql/weavedb/document_consolidation_sql.js +486 -0
  105. package/dist/weavesql/weavedb/document_ingestion_sql.d.ts +1433 -0
  106. package/dist/weavesql/weavedb/document_ingestion_sql.js +3488 -0
  107. package/dist/weavesql/weavedb/document_retrieval_sql.d.ts +314 -0
  108. package/dist/weavesql/weavedb/document_retrieval_sql.js +965 -0
  109. package/dist/weavesql/weavedb/document_table_sql.d.ts +6 -6
  110. package/dist/weavesql/weavedb/document_table_sql.js +12 -12
  111. package/dist/weavesql/weavedb/identity_sql.d.ts +1014 -0
  112. package/dist/weavesql/weavedb/identity_sql.js +1811 -0
  113. package/dist/weavesql/weavedb/inference_model_route_sql.d.ts +161 -0
  114. package/dist/weavesql/weavedb/inference_model_route_sql.js +408 -0
  115. package/dist/weavesql/weavedb/inference_provider_sql.d.ts +125 -0
  116. package/dist/weavesql/weavedb/inference_provider_sql.js +228 -0
  117. package/dist/weavesql/weavedb/initialization_sql.d.ts +15 -0
  118. package/dist/weavesql/weavedb/initialization_sql.js +33 -0
  119. package/dist/weavesql/weavedb/model_catalog_sql.d.ts +6 -6
  120. package/dist/weavesql/weavedb/model_catalog_sql.js +6 -6
  121. package/dist/weavesql/weavedb/organization_sql.d.ts +22 -102
  122. package/dist/weavesql/weavedb/organization_sql.js +54 -262
  123. package/dist/weavesql/weavedb/tool_sql.d.ts +209 -0
  124. package/dist/weavesql/weavedb/tool_sql.js +407 -0
  125. package/dist/weavesql/weavedb/usage_sql.d.ts +356 -0
  126. package/dist/weavesql/weavedb/usage_sql.js +568 -0
  127. package/dist/weavesql/weavedb/workflow_sql.d.ts +159 -546
  128. package/dist/weavesql/weavedb/workflow_sql.js +281 -909
  129. package/package.json +2 -2
  130. package/dist/weaveapi/agent/v1/service.pb.d.ts +0 -397
  131. package/dist/weaveapi/agent/v1/service.pb.js +0 -3152
  132. package/dist/weaveapi/atc/v1/event.pb.d.ts +0 -134
  133. package/dist/weaveapi/atc/v1/event.pb.js +0 -1124
  134. package/dist/weaveapi/atc/v1/index.d.ts +0 -5
  135. package/dist/weaveapi/atc/v1/index.js +0 -42
  136. package/dist/weaveapi/atc/v1/message.pb.js +0 -287
  137. package/dist/weaveapi/atc/v1/process.pb.d.ts +0 -91
  138. package/dist/weaveapi/atc/v1/process.pb.js +0 -658
  139. package/dist/weaveapi/atc/v1/run.pb.d.ts +0 -71
  140. package/dist/weaveapi/atc/v1/run.pb.js +0 -525
  141. package/dist/weaveapi/atc/v1/service.pb.d.ts +0 -472
  142. package/dist/weaveapi/atc/v1/service.pb.js +0 -3093
  143. package/dist/weaveapi/chat/v1/service.pb.d.ts +0 -345
  144. package/dist/weaveapi/chat/v1/service.pb.js +0 -2545
  145. package/dist/weaveapi/consolidation/v1/service.pb.d.ts +0 -93
  146. package/dist/weaveapi/consolidation/v1/service.pb.js +0 -427
  147. package/dist/weaveapi/gateway/v1/service.pb.d.ts +0 -235
  148. package/dist/weaveapi/gateway/v1/service.pb.js +0 -651
  149. package/dist/weaveapi/ingestion/v1/service.pb.d.ts +0 -420
  150. package/dist/weaveapi/ingestion/v1/service.pb.js +0 -2311
  151. package/dist/weaveapi/ingestion/v1/table.pb.d.ts +0 -121
  152. package/dist/weaveapi/ingestion/v1/table.pb.js +0 -1478
  153. package/dist/weaveapi/model/v1/index.d.ts +0 -2
  154. package/dist/weaveapi/organization/v1/service.pb.d.ts +0 -261
  155. package/dist/weaveapi/organization/v1/service.pb.js +0 -1561
  156. package/dist/weaveapi/project/v1/index.d.ts +0 -2
  157. package/dist/weaveapi/project/v1/index.js +0 -39
  158. package/dist/weaveapi/project/v1/project.pb.d.ts +0 -105
  159. package/dist/weaveapi/project/v1/project.pb.js +0 -1004
  160. package/dist/weaveapi/project/v1/service.pb.d.ts +0 -247
  161. package/dist/weaveapi/project/v1/service.pb.js +0 -1994
  162. package/dist/weaveapi/provider/v1/index.d.ts +0 -2
  163. package/dist/weaveapi/provider/v1/provider.pb.d.ts +0 -137
  164. package/dist/weaveapi/provider/v1/provider.pb.js +0 -1000
  165. package/dist/weaveapi/provider/v1/service.pb.d.ts +0 -223
  166. package/dist/weaveapi/provider/v1/service.pb.js +0 -1888
  167. package/dist/weaveapi/retrieval/v1/service.pb.d.ts +0 -93
  168. package/dist/weaveapi/retrieval/v1/service.pb.js +0 -385
  169. package/dist/weaveapi/task/v1/index.js +0 -39
  170. package/dist/weaveapi/task/v1/service.pb.d.ts +0 -172
  171. package/dist/weaveapi/task/v1/service.pb.js +0 -1436
  172. package/dist/weaveapi/task/v1/task.pb.d.ts +0 -85
  173. package/dist/weaveapi/task/v1/task.pb.js +0 -802
  174. package/dist/weaveapi/workflow/v1/service.pb.d.ts +0 -392
  175. package/dist/weaveapi/workflow/v1/service.pb.js +0 -3146
  176. /package/dist/{weaveapi/atc → weave/authz}/index.d.ts +0 -0
  177. /package/dist/{weaveapi/atc → weave/authz}/index.js +0 -0
  178. /package/dist/{weaveapi/model → weave/filter}/index.d.ts +0 -0
  179. /package/dist/{weaveapi/model → weave/filter}/index.js +0 -0
  180. /package/dist/weaveapi/{project → content}/index.d.ts +0 -0
  181. /package/dist/weaveapi/{project → content}/index.js +0 -0
  182. /package/dist/weaveapi/{provider → inference}/index.d.ts +0 -0
  183. /package/dist/weaveapi/{provider → inference}/index.js +0 -0
  184. /package/dist/weaveapi/{task → initialization}/index.d.ts +0 -0
  185. /package/dist/weaveapi/{task → initialization}/index.js +0 -0
@@ -1,49 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listChatArtifactVersionsQuery = exports.getChatArtifactVersionQuery = exports.insertChatArtifactVersionWithDocumentReferencesQuery = exports.insertChatArtifactVersionQuery = exports.getChatArtifactQuery = exports.listChatArtifactsForSessionQuery = exports.bumpChatArtifactVersionQuery = exports.createChatArtifactQuery = exports.clearOrganizationChatSettingsDefaultIfMatchesQuery = exports.getOrganizationChatSettingsQuery = exports.upsertOrganizationChatSettingsQuery = exports.getOrganizationApprovedModelQuery = exports.listOrganizationApprovedModelsQuery = exports.deleteOrganizationApprovedModelQuery = exports.createOrganizationApprovedModelQuery = exports.completeChatMessageQuery = exports.updateChatMessageToolCallStateQuery = exports.listChatMessagesForSessionQuery = exports.getChatMessageQuery = exports.insertChatMessageQuery = exports.listProjectsForChatSessionQuery = exports.detachProjectFromChatSessionQuery = exports.attachProjectToChatSessionQuery = exports.softDeleteChatSessionQuery = exports.touchChatSessionLastMessageQuery = exports.updateChatSessionTitleQuery = exports.updateChatSessionModelQuery = exports.listChatSessionsForUserByProjectQuery = exports.listChatSessionsForUserQuery = exports.getChatSessionQuery = exports.createChatSessionQuery = void 0;
3
+ exports.getCurrentChatArtifactVersionQuery = exports.getChatArtifactVersionQuery = exports.createChatArtifactVersionQuery = exports.listChatArtifactsQuery = exports.getChatArtifactQuery = exports.bumpChatArtifactVersionQuery = exports.createChatArtifactQuery = exports.listChatMessagesQuery = exports.createChatMessageQuery = exports.updateChatSessionTitleQuery = exports.listChatSessionsByUserQuery = exports.getChatSessionQuery = exports.createChatSessionQuery = void 0;
4
4
  exports.createChatSession = createChatSession;
5
5
  exports.getChatSession = getChatSession;
6
- exports.listChatSessionsForUser = listChatSessionsForUser;
7
- exports.listChatSessionsForUserByProject = listChatSessionsForUserByProject;
8
- exports.updateChatSessionModel = updateChatSessionModel;
6
+ exports.listChatSessionsByUser = listChatSessionsByUser;
9
7
  exports.updateChatSessionTitle = updateChatSessionTitle;
10
- exports.touchChatSessionLastMessage = touchChatSessionLastMessage;
11
- exports.softDeleteChatSession = softDeleteChatSession;
12
- exports.attachProjectToChatSession = attachProjectToChatSession;
13
- exports.detachProjectFromChatSession = detachProjectFromChatSession;
14
- exports.listProjectsForChatSession = listProjectsForChatSession;
15
- exports.insertChatMessage = insertChatMessage;
16
- exports.getChatMessage = getChatMessage;
17
- exports.listChatMessagesForSession = listChatMessagesForSession;
18
- exports.updateChatMessageToolCallState = updateChatMessageToolCallState;
19
- exports.completeChatMessage = completeChatMessage;
20
- exports.createOrganizationApprovedModel = createOrganizationApprovedModel;
21
- exports.deleteOrganizationApprovedModel = deleteOrganizationApprovedModel;
22
- exports.listOrganizationApprovedModels = listOrganizationApprovedModels;
23
- exports.getOrganizationApprovedModel = getOrganizationApprovedModel;
24
- exports.upsertOrganizationChatSettings = upsertOrganizationChatSettings;
25
- exports.getOrganizationChatSettings = getOrganizationChatSettings;
26
- exports.clearOrganizationChatSettingsDefaultIfMatches = clearOrganizationChatSettingsDefaultIfMatches;
8
+ exports.createChatMessage = createChatMessage;
9
+ exports.listChatMessages = listChatMessages;
27
10
  exports.createChatArtifact = createChatArtifact;
28
11
  exports.bumpChatArtifactVersion = bumpChatArtifactVersion;
29
- exports.listChatArtifactsForSession = listChatArtifactsForSession;
30
12
  exports.getChatArtifact = getChatArtifact;
31
- exports.insertChatArtifactVersion = insertChatArtifactVersion;
32
- exports.insertChatArtifactVersionWithDocumentReferences = insertChatArtifactVersionWithDocumentReferences;
13
+ exports.listChatArtifacts = listChatArtifacts;
14
+ exports.createChatArtifactVersion = createChatArtifactVersion;
33
15
  exports.getChatArtifactVersion = getChatArtifactVersion;
34
- exports.listChatArtifactVersions = listChatArtifactVersions;
16
+ exports.getCurrentChatArtifactVersion = getCurrentChatArtifactVersion;
35
17
  exports.createChatSessionQuery = `-- name: CreateChatSession :one
36
- INSERT INTO weave.chat_sessions (
37
- id, organization_id, created_by_user_id, title,
38
- model_id, provider_configuration_id
39
- ) VALUES (
40
- $1, $2, $3, $4, $5, $6
18
+ WITH resolved_agent AS (
19
+ SELECT COALESCE($4::uuid, o.default_chat_agent_id) AS root_agent_id
20
+ FROM weave.organization o
21
+ WHERE o.id = $1
22
+ ),
23
+ valid_agent AS (
24
+ SELECT r.root_agent_id
25
+ FROM resolved_agent r
26
+ JOIN weave.agent a
27
+ ON a.organization_id = $1
28
+ AND a.id = r.root_agent_id
41
29
  )
42
- RETURNING id, organization_id, created_by_user_id, title, model_id, provider_configuration_id, created_at, updated_at, last_message_at, deleted_at`;
30
+ INSERT INTO weave.chat_session (
31
+ organization_id,
32
+ created_by_user_id,
33
+ root_agent_id,
34
+ title
35
+ ) SELECT
36
+ $1,
37
+ $2,
38
+ valid_agent.root_agent_id,
39
+ COALESCE($3::text, '')
40
+ FROM valid_agent
41
+ RETURNING id, organization_id, created_by_user_id, root_agent_id, title, last_message_at, created_at, updated_at`;
43
42
  async function createChatSession(client, args) {
44
43
  const result = await client.query({
45
44
  text: exports.createChatSessionQuery,
46
- values: [args.id, args.organizationId, args.createdByUserId, args.title, args.modelId, args.providerConfigurationId],
45
+ values: [args.organizationId, args.createdByUserId, args.title, args.rootAgentId],
47
46
  rowMode: "array"
48
47
  });
49
48
  if (result.rows.length !== 1) {
@@ -54,22 +53,23 @@ async function createChatSession(client, args) {
54
53
  id: row[0],
55
54
  organizationId: row[1],
56
55
  createdByUserId: row[2],
57
- title: row[3],
58
- modelId: row[4],
59
- providerConfigurationId: row[5],
56
+ rootAgentId: row[3],
57
+ title: row[4],
58
+ lastMessageAt: row[5],
60
59
  createdAt: row[6],
61
- updatedAt: row[7],
62
- lastMessageAt: row[8],
63
- deletedAt: row[9]
60
+ updatedAt: row[7]
64
61
  };
65
62
  }
66
63
  exports.getChatSessionQuery = `-- name: GetChatSession :one
67
- SELECT id, organization_id, created_by_user_id, title, model_id, provider_configuration_id, created_at, updated_at, last_message_at, deleted_at FROM weave.chat_sessions
68
- WHERE id = $1 AND deleted_at IS NULL`;
64
+ SELECT id, organization_id, created_by_user_id, root_agent_id, title, last_message_at, created_at, updated_at
65
+ FROM weave.chat_session
66
+ WHERE organization_id = $1
67
+ AND id = $2
68
+ AND created_by_user_id = $3`;
69
69
  async function getChatSession(client, args) {
70
70
  const result = await client.query({
71
71
  text: exports.getChatSessionQuery,
72
- values: [args.id],
72
+ values: [args.organizationId, args.sessionId, args.createdByUserId],
73
73
  rowMode: "array"
74
74
  });
75
75
  if (result.rows.length !== 1) {
@@ -80,56 +80,25 @@ async function getChatSession(client, args) {
80
80
  id: row[0],
81
81
  organizationId: row[1],
82
82
  createdByUserId: row[2],
83
- title: row[3],
84
- modelId: row[4],
85
- providerConfigurationId: row[5],
83
+ rootAgentId: row[3],
84
+ title: row[4],
85
+ lastMessageAt: row[5],
86
86
  createdAt: row[6],
87
- updatedAt: row[7],
88
- lastMessageAt: row[8],
89
- deletedAt: row[9]
87
+ updatedAt: row[7]
90
88
  };
91
89
  }
92
- exports.listChatSessionsForUserQuery = `-- name: ListChatSessionsForUser :many
93
- SELECT id, organization_id, created_by_user_id, title, model_id, provider_configuration_id, created_at, updated_at, last_message_at, deleted_at FROM weave.chat_sessions
90
+ exports.listChatSessionsByUserQuery = `-- name: ListChatSessionsByUser :many
91
+ SELECT id, organization_id, created_by_user_id, root_agent_id, title, last_message_at, created_at, updated_at
92
+ FROM weave.chat_session
94
93
  WHERE organization_id = $1
95
94
  AND created_by_user_id = $2
96
- AND deleted_at IS NULL
97
- ORDER BY last_message_at DESC
98
- LIMIT $3 OFFSET $4`;
99
- async function listChatSessionsForUser(client, args) {
100
- const result = await client.query({
101
- text: exports.listChatSessionsForUserQuery,
102
- values: [args.organizationId, args.createdByUserId, args.limit, args.offset],
103
- rowMode: "array"
104
- });
105
- return result.rows.map(row => {
106
- return {
107
- id: row[0],
108
- organizationId: row[1],
109
- createdByUserId: row[2],
110
- title: row[3],
111
- modelId: row[4],
112
- providerConfigurationId: row[5],
113
- createdAt: row[6],
114
- updatedAt: row[7],
115
- lastMessageAt: row[8],
116
- deletedAt: row[9]
117
- };
118
- });
119
- }
120
- exports.listChatSessionsForUserByProjectQuery = `-- name: ListChatSessionsForUserByProject :many
121
- SELECT s.id, s.organization_id, s.created_by_user_id, s.title, s.model_id, s.provider_configuration_id, s.created_at, s.updated_at, s.last_message_at, s.deleted_at FROM weave.chat_sessions s
122
- JOIN weave.chat_session_projects p ON p.session_id = s.id
123
- WHERE s.organization_id = $1
124
- AND s.created_by_user_id = $2
125
- AND p.project_id = $3
126
- AND s.deleted_at IS NULL
127
- ORDER BY s.last_message_at DESC
128
- LIMIT $4 OFFSET $5`;
129
- async function listChatSessionsForUserByProject(client, args) {
95
+ ORDER BY last_message_at DESC, created_at DESC
96
+ LIMIT $4::integer
97
+ OFFSET $3::integer`;
98
+ async function listChatSessionsByUser(client, args) {
130
99
  const result = await client.query({
131
- text: exports.listChatSessionsForUserByProjectQuery,
132
- values: [args.organizationId, args.createdByUserId, args.projectId, args.limit, args.offset],
100
+ text: exports.listChatSessionsByUserQuery,
101
+ values: [args.organizationId, args.createdByUserId, args.offsetCount, args.limitCount],
133
102
  rowMode: "array"
134
103
  });
135
104
  return result.rows.map(row => {
@@ -137,55 +106,25 @@ async function listChatSessionsForUserByProject(client, args) {
137
106
  id: row[0],
138
107
  organizationId: row[1],
139
108
  createdByUserId: row[2],
140
- title: row[3],
141
- modelId: row[4],
142
- providerConfigurationId: row[5],
109
+ rootAgentId: row[3],
110
+ title: row[4],
111
+ lastMessageAt: row[5],
143
112
  createdAt: row[6],
144
- updatedAt: row[7],
145
- lastMessageAt: row[8],
146
- deletedAt: row[9]
113
+ updatedAt: row[7]
147
114
  };
148
115
  });
149
116
  }
150
- exports.updateChatSessionModelQuery = `-- name: UpdateChatSessionModel :one
151
- UPDATE weave.chat_sessions
152
- SET model_id = $2,
153
- provider_configuration_id = $3,
154
- updated_at = now()
155
- WHERE id = $1
156
- RETURNING id, organization_id, created_by_user_id, title, model_id, provider_configuration_id, created_at, updated_at, last_message_at, deleted_at`;
157
- async function updateChatSessionModel(client, args) {
158
- const result = await client.query({
159
- text: exports.updateChatSessionModelQuery,
160
- values: [args.id, args.modelId, args.providerConfigurationId],
161
- rowMode: "array"
162
- });
163
- if (result.rows.length !== 1) {
164
- return null;
165
- }
166
- const row = result.rows[0];
167
- return {
168
- id: row[0],
169
- organizationId: row[1],
170
- createdByUserId: row[2],
171
- title: row[3],
172
- modelId: row[4],
173
- providerConfigurationId: row[5],
174
- createdAt: row[6],
175
- updatedAt: row[7],
176
- lastMessageAt: row[8],
177
- deletedAt: row[9]
178
- };
179
- }
180
117
  exports.updateChatSessionTitleQuery = `-- name: UpdateChatSessionTitle :one
181
- UPDATE weave.chat_sessions
182
- SET title = $2, updated_at = now()
183
- WHERE id = $1
184
- RETURNING id, organization_id, created_by_user_id, title, model_id, provider_configuration_id, created_at, updated_at, last_message_at, deleted_at`;
118
+ UPDATE weave.chat_session
119
+ SET title = $1
120
+ WHERE organization_id = $2
121
+ AND id = $3
122
+ AND created_by_user_id = $4
123
+ RETURNING id, organization_id, created_by_user_id, root_agent_id, title, last_message_at, created_at, updated_at`;
185
124
  async function updateChatSessionTitle(client, args) {
186
125
  const result = await client.query({
187
126
  text: exports.updateChatSessionTitleQuery,
188
- values: [args.id, args.title],
127
+ values: [args.title, args.organizationId, args.sessionId, args.createdByUserId],
189
128
  rowMode: "array"
190
129
  });
191
130
  if (result.rows.length !== 1) {
@@ -196,254 +135,51 @@ async function updateChatSessionTitle(client, args) {
196
135
  id: row[0],
197
136
  organizationId: row[1],
198
137
  createdByUserId: row[2],
199
- title: row[3],
200
- modelId: row[4],
201
- providerConfigurationId: row[5],
138
+ rootAgentId: row[3],
139
+ title: row[4],
140
+ lastMessageAt: row[5],
202
141
  createdAt: row[6],
203
- updatedAt: row[7],
204
- lastMessageAt: row[8],
205
- deletedAt: row[9]
206
- };
207
- }
208
- exports.touchChatSessionLastMessageQuery = `-- name: TouchChatSessionLastMessage :exec
209
- UPDATE weave.chat_sessions
210
- SET last_message_at = $2, updated_at = $2
211
- WHERE id = $1`;
212
- async function touchChatSessionLastMessage(client, args) {
213
- await client.query({
214
- text: exports.touchChatSessionLastMessageQuery,
215
- values: [args.id, args.lastMessageAt],
216
- rowMode: "array"
217
- });
218
- }
219
- exports.softDeleteChatSessionQuery = `-- name: SoftDeleteChatSession :exec
220
- UPDATE weave.chat_sessions
221
- SET deleted_at = now(), updated_at = now()
222
- WHERE id = $1`;
223
- async function softDeleteChatSession(client, args) {
224
- await client.query({
225
- text: exports.softDeleteChatSessionQuery,
226
- values: [args.id],
227
- rowMode: "array"
228
- });
229
- }
230
- exports.attachProjectToChatSessionQuery = `-- name: AttachProjectToChatSession :exec
231
- INSERT INTO weave.chat_session_projects (
232
- session_id, project_id, attached_by_user_id
233
- ) VALUES ($1, $2, $3)
234
- ON CONFLICT DO NOTHING`;
235
- async function attachProjectToChatSession(client, args) {
236
- await client.query({
237
- text: exports.attachProjectToChatSessionQuery,
238
- values: [args.sessionId, args.projectId, args.attachedByUserId],
239
- rowMode: "array"
240
- });
241
- }
242
- exports.detachProjectFromChatSessionQuery = `-- name: DetachProjectFromChatSession :exec
243
- DELETE FROM weave.chat_session_projects
244
- WHERE session_id = $1 AND project_id = $2`;
245
- async function detachProjectFromChatSession(client, args) {
246
- await client.query({
247
- text: exports.detachProjectFromChatSessionQuery,
248
- values: [args.sessionId, args.projectId],
249
- rowMode: "array"
250
- });
251
- }
252
- exports.listProjectsForChatSessionQuery = `-- name: ListProjectsForChatSession :many
253
- SELECT project_id FROM weave.chat_session_projects
254
- WHERE session_id = $1`;
255
- async function listProjectsForChatSession(client, args) {
256
- const result = await client.query({
257
- text: exports.listProjectsForChatSessionQuery,
258
- values: [args.sessionId],
259
- rowMode: "array"
260
- });
261
- return result.rows.map(row => {
262
- return {
263
- projectId: row[0]
264
- };
265
- });
266
- }
267
- exports.insertChatMessageQuery = `-- name: InsertChatMessage :one
268
- INSERT INTO weave.chat_messages (
269
- id, session_id, role, content,
270
- reasoning_content,
271
- parent_message_id, tool_call_id, tool_call_state,
272
- model_id, ephemeral_attachment_count, ephemeral_attachment_mime_types,
273
- token_usage, stream_state
274
- ) VALUES (
275
- $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13
276
- )
277
- RETURNING id, session_id, role, content, parent_message_id, tool_call_id, tool_call_state, model_id, ephemeral_attachment_count, ephemeral_attachment_mime_types, token_usage, stream_state, created_at, completed_at, reasoning_content`;
278
- async function insertChatMessage(client, args) {
279
- const result = await client.query({
280
- text: exports.insertChatMessageQuery,
281
- values: [args.id, args.sessionId, args.role, args.content, args.reasoningContent, args.parentMessageId, args.toolCallId, args.toolCallState, args.modelId, args.ephemeralAttachmentCount, args.ephemeralAttachmentMimeTypes, args.tokenUsage, args.streamState],
282
- rowMode: "array"
283
- });
284
- if (result.rows.length !== 1) {
285
- return null;
286
- }
287
- const row = result.rows[0];
288
- return {
289
- id: row[0],
290
- sessionId: row[1],
291
- role: row[2],
292
- content: row[3],
293
- parentMessageId: row[4],
294
- toolCallId: row[5],
295
- toolCallState: row[6],
296
- modelId: row[7],
297
- ephemeralAttachmentCount: row[8],
298
- ephemeralAttachmentMimeTypes: row[9],
299
- tokenUsage: row[10],
300
- streamState: row[11],
301
- createdAt: row[12],
302
- completedAt: row[13],
303
- reasoningContent: row[14]
304
- };
305
- }
306
- exports.getChatMessageQuery = `-- name: GetChatMessage :one
307
- SELECT id, session_id, role, content, parent_message_id, tool_call_id, tool_call_state, model_id, ephemeral_attachment_count, ephemeral_attachment_mime_types, token_usage, stream_state, created_at, completed_at, reasoning_content FROM weave.chat_messages WHERE id = $1`;
308
- async function getChatMessage(client, args) {
309
- const result = await client.query({
310
- text: exports.getChatMessageQuery,
311
- values: [args.id],
312
- rowMode: "array"
313
- });
314
- if (result.rows.length !== 1) {
315
- return null;
316
- }
317
- const row = result.rows[0];
318
- return {
319
- id: row[0],
320
- sessionId: row[1],
321
- role: row[2],
322
- content: row[3],
323
- parentMessageId: row[4],
324
- toolCallId: row[5],
325
- toolCallState: row[6],
326
- modelId: row[7],
327
- ephemeralAttachmentCount: row[8],
328
- ephemeralAttachmentMimeTypes: row[9],
329
- tokenUsage: row[10],
330
- streamState: row[11],
331
- createdAt: row[12],
332
- completedAt: row[13],
333
- reasoningContent: row[14]
334
- };
335
- }
336
- exports.listChatMessagesForSessionQuery = `-- name: ListChatMessagesForSession :many
337
- SELECT id, session_id, role, content, parent_message_id, tool_call_id, tool_call_state, model_id, ephemeral_attachment_count, ephemeral_attachment_mime_types, token_usage, stream_state, created_at, completed_at, reasoning_content FROM weave.chat_messages
338
- WHERE session_id = $1
339
- ORDER BY created_at`;
340
- async function listChatMessagesForSession(client, args) {
341
- const result = await client.query({
342
- text: exports.listChatMessagesForSessionQuery,
343
- values: [args.sessionId],
344
- rowMode: "array"
345
- });
346
- return result.rows.map(row => {
347
- return {
348
- id: row[0],
349
- sessionId: row[1],
350
- role: row[2],
351
- content: row[3],
352
- parentMessageId: row[4],
353
- toolCallId: row[5],
354
- toolCallState: row[6],
355
- modelId: row[7],
356
- ephemeralAttachmentCount: row[8],
357
- ephemeralAttachmentMimeTypes: row[9],
358
- tokenUsage: row[10],
359
- streamState: row[11],
360
- createdAt: row[12],
361
- completedAt: row[13],
362
- reasoningContent: row[14]
363
- };
364
- });
365
- }
366
- exports.updateChatMessageToolCallStateQuery = `-- name: UpdateChatMessageToolCallState :one
367
- UPDATE weave.chat_messages
368
- SET tool_call_state = $2
369
- WHERE id = $1
370
- RETURNING id, session_id, role, content, parent_message_id, tool_call_id, tool_call_state, model_id, ephemeral_attachment_count, ephemeral_attachment_mime_types, token_usage, stream_state, created_at, completed_at, reasoning_content`;
371
- async function updateChatMessageToolCallState(client, args) {
372
- const result = await client.query({
373
- text: exports.updateChatMessageToolCallStateQuery,
374
- values: [args.id, args.toolCallState],
375
- rowMode: "array"
376
- });
377
- if (result.rows.length !== 1) {
378
- return null;
379
- }
380
- const row = result.rows[0];
381
- return {
382
- id: row[0],
383
- sessionId: row[1],
384
- role: row[2],
385
- content: row[3],
386
- parentMessageId: row[4],
387
- toolCallId: row[5],
388
- toolCallState: row[6],
389
- modelId: row[7],
390
- ephemeralAttachmentCount: row[8],
391
- ephemeralAttachmentMimeTypes: row[9],
392
- tokenUsage: row[10],
393
- streamState: row[11],
394
- createdAt: row[12],
395
- completedAt: row[13],
396
- reasoningContent: row[14]
397
- };
398
- }
399
- exports.completeChatMessageQuery = `-- name: CompleteChatMessage :one
400
- UPDATE weave.chat_messages
401
- SET stream_state = $2,
402
- content = $3,
403
- reasoning_content = $4,
404
- token_usage = $5,
405
- completed_at = now()
406
- WHERE id = $1
407
- RETURNING id, session_id, role, content, parent_message_id, tool_call_id, tool_call_state, model_id, ephemeral_attachment_count, ephemeral_attachment_mime_types, token_usage, stream_state, created_at, completed_at, reasoning_content`;
408
- async function completeChatMessage(client, args) {
409
- const result = await client.query({
410
- text: exports.completeChatMessageQuery,
411
- values: [args.id, args.streamState, args.content, args.reasoningContent, args.tokenUsage],
412
- rowMode: "array"
413
- });
414
- if (result.rows.length !== 1) {
415
- return null;
416
- }
417
- const row = result.rows[0];
418
- return {
419
- id: row[0],
420
- sessionId: row[1],
421
- role: row[2],
422
- content: row[3],
423
- parentMessageId: row[4],
424
- toolCallId: row[5],
425
- toolCallState: row[6],
426
- modelId: row[7],
427
- ephemeralAttachmentCount: row[8],
428
- ephemeralAttachmentMimeTypes: row[9],
429
- tokenUsage: row[10],
430
- streamState: row[11],
431
- createdAt: row[12],
432
- completedAt: row[13],
433
- reasoningContent: row[14]
142
+ updatedAt: row[7]
434
143
  };
435
144
  }
436
- exports.createOrganizationApprovedModelQuery = `-- name: CreateOrganizationApprovedModel :one
437
- INSERT INTO weave.organization_approved_models (
438
- id, organization_id, provider_configuration_id, model_id, approved_by_user_id
439
- ) VALUES (
440
- $1, $2, $3, $4, $5
145
+ exports.createChatMessageQuery = `-- name: CreateChatMessage :one
146
+ WITH created_message AS (
147
+ INSERT INTO weave.chat_message (
148
+ organization_id,
149
+ session_id,
150
+ agent_run_id,
151
+ role,
152
+ parts
153
+ )
154
+ SELECT
155
+ $1,
156
+ $2,
157
+ $3::uuid,
158
+ $4,
159
+ COALESCE($5::jsonb, '[]'::jsonb)
160
+ WHERE EXISTS (
161
+ SELECT 1
162
+ FROM weave.chat_session s
163
+ WHERE s.organization_id = $1
164
+ AND s.id = $2
165
+ AND s.created_by_user_id = $6
166
+ )
167
+ RETURNING id, organization_id, session_id, agent_run_id, role, parts, created_at
168
+ ),
169
+ touched_session AS (
170
+ UPDATE weave.chat_session
171
+ SET last_message_at = created_message.created_at
172
+ FROM created_message
173
+ WHERE weave.chat_session.organization_id = created_message.organization_id
174
+ AND weave.chat_session.id = created_message.session_id
175
+ RETURNING weave.chat_session.id
441
176
  )
442
- RETURNING id, organization_id, provider_configuration_id, model_id, approved_by_user_id, approved_at`;
443
- async function createOrganizationApprovedModel(client, args) {
177
+ SELECT id, organization_id, session_id, agent_run_id, role, parts, created_at
178
+ FROM created_message`;
179
+ async function createChatMessage(client, args) {
444
180
  const result = await client.query({
445
- text: exports.createOrganizationApprovedModelQuery,
446
- values: [args.id, args.organizationId, args.providerConfigurationId, args.modelId, args.approvedByUserId],
181
+ text: exports.createChatMessageQuery,
182
+ values: [args.organizationId, args.sessionId, args.agentRunId, args.role, args.parts, args.createdByUserId],
447
183
  rowMode: "array"
448
184
  });
449
185
  if (result.rows.length !== 1) {
@@ -453,52 +189,70 @@ async function createOrganizationApprovedModel(client, args) {
453
189
  return {
454
190
  id: row[0],
455
191
  organizationId: row[1],
456
- providerConfigurationId: row[2],
457
- modelId: row[3],
458
- approvedByUserId: row[4],
459
- approvedAt: row[5]
192
+ sessionId: row[2],
193
+ agentRunId: row[3],
194
+ role: row[4],
195
+ parts: row[5],
196
+ createdAt: row[6]
460
197
  };
461
198
  }
462
- exports.deleteOrganizationApprovedModelQuery = `-- name: DeleteOrganizationApprovedModel :exec
463
- DELETE FROM weave.organization_approved_models
464
- WHERE id = $1 AND organization_id = $2`;
465
- async function deleteOrganizationApprovedModel(client, args) {
466
- await client.query({
467
- text: exports.deleteOrganizationApprovedModelQuery,
468
- values: [args.id, args.organizationId],
469
- rowMode: "array"
470
- });
471
- }
472
- exports.listOrganizationApprovedModelsQuery = `-- name: ListOrganizationApprovedModels :many
473
- SELECT id, organization_id, provider_configuration_id, model_id, approved_by_user_id, approved_at FROM weave.organization_approved_models
474
- WHERE organization_id = $1
475
- ORDER BY approved_at DESC`;
476
- async function listOrganizationApprovedModels(client, args) {
199
+ exports.listChatMessagesQuery = `-- name: ListChatMessages :many
200
+ SELECT m.id, m.organization_id, m.session_id, m.agent_run_id, m.role, m.parts, m.created_at
201
+ FROM weave.chat_message m
202
+ JOIN weave.chat_session s
203
+ ON s.organization_id = m.organization_id
204
+ AND s.id = m.session_id
205
+ WHERE m.organization_id = $1
206
+ AND m.session_id = $2
207
+ AND s.created_by_user_id = $3
208
+ ORDER BY m.created_at ASC, m.id ASC
209
+ LIMIT $5::integer
210
+ OFFSET $4::integer`;
211
+ async function listChatMessages(client, args) {
477
212
  const result = await client.query({
478
- text: exports.listOrganizationApprovedModelsQuery,
479
- values: [args.organizationId],
213
+ text: exports.listChatMessagesQuery,
214
+ values: [args.organizationId, args.sessionId, args.createdByUserId, args.offsetCount, args.limitCount],
480
215
  rowMode: "array"
481
216
  });
482
217
  return result.rows.map(row => {
483
218
  return {
484
219
  id: row[0],
485
220
  organizationId: row[1],
486
- providerConfigurationId: row[2],
487
- modelId: row[3],
488
- approvedByUserId: row[4],
489
- approvedAt: row[5]
221
+ sessionId: row[2],
222
+ agentRunId: row[3],
223
+ role: row[4],
224
+ parts: row[5],
225
+ createdAt: row[6]
490
226
  };
491
227
  });
492
228
  }
493
- exports.getOrganizationApprovedModelQuery = `-- name: GetOrganizationApprovedModel :one
494
- SELECT id, organization_id, provider_configuration_id, model_id, approved_by_user_id, approved_at FROM weave.organization_approved_models
495
- WHERE organization_id = $1
496
- AND provider_configuration_id = $2
497
- AND model_id = $3`;
498
- async function getOrganizationApprovedModel(client, args) {
229
+ exports.createChatArtifactQuery = `-- name: CreateChatArtifact :one
230
+ WITH visible_session AS (
231
+ SELECT s.id
232
+ FROM weave.chat_session s
233
+ WHERE s.organization_id = $1
234
+ AND s.id = $5
235
+ AND s.created_by_user_id = $6
236
+ )
237
+ INSERT INTO weave.chat_artifact (
238
+ organization_id,
239
+ session_id,
240
+ title,
241
+ kind,
242
+ language
243
+ )
244
+ SELECT
245
+ $1,
246
+ visible_session.id,
247
+ $2,
248
+ $3,
249
+ $4::text
250
+ FROM visible_session
251
+ RETURNING id, organization_id, session_id, title, kind, language, current_version, created_at, updated_at`;
252
+ async function createChatArtifact(client, args) {
499
253
  const result = await client.query({
500
- text: exports.getOrganizationApprovedModelQuery,
501
- values: [args.organizationId, args.providerConfigurationId, args.modelId],
254
+ text: exports.createChatArtifactQuery,
255
+ values: [args.organizationId, args.title, args.kind, args.language, args.sessionId, args.createdByUserId],
502
256
  rowMode: "array"
503
257
  });
504
258
  if (result.rows.length !== 1) {
@@ -508,82 +262,34 @@ async function getOrganizationApprovedModel(client, args) {
508
262
  return {
509
263
  id: row[0],
510
264
  organizationId: row[1],
511
- providerConfigurationId: row[2],
512
- modelId: row[3],
513
- approvedByUserId: row[4],
514
- approvedAt: row[5]
515
- };
516
- }
517
- exports.upsertOrganizationChatSettingsQuery = `-- name: UpsertOrganizationChatSettings :one
518
- INSERT INTO weave.organization_chat_settings (
519
- organization_id, default_chat_model_id, default_provider_configuration_id
520
- ) VALUES ($1, $2, $3)
521
- ON CONFLICT (organization_id) DO UPDATE
522
- SET default_chat_model_id = EXCLUDED.default_chat_model_id,
523
- default_provider_configuration_id = EXCLUDED.default_provider_configuration_id,
524
- updated_at = now()
525
- RETURNING organization_id, default_chat_model_id, default_provider_configuration_id, updated_at`;
526
- async function upsertOrganizationChatSettings(client, args) {
527
- const result = await client.query({
528
- text: exports.upsertOrganizationChatSettingsQuery,
529
- values: [args.organizationId, args.defaultChatModelId, args.defaultProviderConfigurationId],
530
- rowMode: "array"
531
- });
532
- if (result.rows.length !== 1) {
533
- return null;
534
- }
535
- const row = result.rows[0];
536
- return {
537
- organizationId: row[0],
538
- defaultChatModelId: row[1],
539
- defaultProviderConfigurationId: row[2],
540
- updatedAt: row[3]
541
- };
542
- }
543
- exports.getOrganizationChatSettingsQuery = `-- name: GetOrganizationChatSettings :one
544
- SELECT organization_id, default_chat_model_id, default_provider_configuration_id, updated_at FROM weave.organization_chat_settings
545
- WHERE organization_id = $1`;
546
- async function getOrganizationChatSettings(client, args) {
547
- const result = await client.query({
548
- text: exports.getOrganizationChatSettingsQuery,
549
- values: [args.organizationId],
550
- rowMode: "array"
551
- });
552
- if (result.rows.length !== 1) {
553
- return null;
554
- }
555
- const row = result.rows[0];
556
- return {
557
- organizationId: row[0],
558
- defaultChatModelId: row[1],
559
- defaultProviderConfigurationId: row[2],
560
- updatedAt: row[3]
265
+ sessionId: row[2],
266
+ title: row[3],
267
+ kind: row[4],
268
+ language: row[5],
269
+ currentVersion: row[6],
270
+ createdAt: row[7],
271
+ updatedAt: row[8]
561
272
  };
562
273
  }
563
- exports.clearOrganizationChatSettingsDefaultIfMatchesQuery = `-- name: ClearOrganizationChatSettingsDefaultIfMatches :exec
564
- UPDATE weave.organization_chat_settings
565
- SET default_chat_model_id = NULL,
566
- default_provider_configuration_id = NULL,
567
- updated_at = now()
568
- WHERE organization_id = $1
569
- AND default_chat_model_id = $2
570
- AND default_provider_configuration_id = $3`;
571
- async function clearOrganizationChatSettingsDefaultIfMatches(client, args) {
572
- await client.query({
573
- text: exports.clearOrganizationChatSettingsDefaultIfMatchesQuery,
574
- values: [args.organizationId, args.defaultChatModelId, args.defaultProviderConfigurationId],
575
- rowMode: "array"
576
- });
577
- }
578
- exports.createChatArtifactQuery = `-- name: CreateChatArtifact :one
579
- INSERT INTO weave.chat_artifacts (
580
- id, session_id, title, kind, language, current_version
581
- ) VALUES ($1, $2, $3, $4, $5, 1)
582
- RETURNING id, session_id, title, kind, language, current_version, created_at, updated_at`;
583
- async function createChatArtifact(client, args) {
274
+ exports.bumpChatArtifactVersionQuery = `-- name: BumpChatArtifactVersion :one
275
+ WITH visible_session AS (
276
+ SELECT s.id
277
+ FROM weave.chat_session s
278
+ WHERE s.organization_id = $1
279
+ AND s.id = $3
280
+ AND s.created_by_user_id = $4
281
+ )
282
+ UPDATE weave.chat_artifact
283
+ SET current_version = current_version + 1
284
+ FROM visible_session
285
+ WHERE chat_artifact.organization_id = $1
286
+ AND chat_artifact.session_id = visible_session.id
287
+ AND chat_artifact.id = $2
288
+ RETURNING chat_artifact.id, chat_artifact.organization_id, chat_artifact.session_id, chat_artifact.title, chat_artifact.kind, chat_artifact.language, chat_artifact.current_version, chat_artifact.created_at, chat_artifact.updated_at`;
289
+ async function bumpChatArtifactVersion(client, args) {
584
290
  const result = await client.query({
585
- text: exports.createChatArtifactQuery,
586
- values: [args.id, args.sessionId, args.title, args.kind, args.language],
291
+ text: exports.bumpChatArtifactVersionQuery,
292
+ values: [args.organizationId, args.artifactId, args.sessionId, args.createdByUserId],
587
293
  rowMode: "array"
588
294
  });
589
295
  if (result.rows.length !== 1) {
@@ -592,25 +298,30 @@ async function createChatArtifact(client, args) {
592
298
  const row = result.rows[0];
593
299
  return {
594
300
  id: row[0],
595
- sessionId: row[1],
596
- title: row[2],
597
- kind: row[3],
598
- language: row[4],
599
- currentVersion: row[5],
600
- createdAt: row[6],
601
- updatedAt: row[7]
301
+ organizationId: row[1],
302
+ sessionId: row[2],
303
+ title: row[3],
304
+ kind: row[4],
305
+ language: row[5],
306
+ currentVersion: row[6],
307
+ createdAt: row[7],
308
+ updatedAt: row[8]
602
309
  };
603
310
  }
604
- exports.bumpChatArtifactVersionQuery = `-- name: BumpChatArtifactVersion :one
605
- UPDATE weave.chat_artifacts
606
- SET current_version = current_version + 1,
607
- updated_at = now()
608
- WHERE id = $1
609
- RETURNING id, session_id, title, kind, language, current_version, created_at, updated_at`;
610
- async function bumpChatArtifactVersion(client, args) {
311
+ exports.getChatArtifactQuery = `-- name: GetChatArtifact :one
312
+ SELECT a.id, a.organization_id, a.session_id, a.title, a.kind, a.language, a.current_version, a.created_at, a.updated_at
313
+ FROM weave.chat_artifact a
314
+ JOIN weave.chat_session s
315
+ ON s.organization_id = a.organization_id
316
+ AND s.id = a.session_id
317
+ WHERE a.organization_id = $1
318
+ AND a.session_id = $2
319
+ AND a.id = $3
320
+ AND s.created_by_user_id = $4`;
321
+ async function getChatArtifact(client, args) {
611
322
  const result = await client.query({
612
- text: exports.bumpChatArtifactVersionQuery,
613
- values: [args.id],
323
+ text: exports.getChatArtifactQuery,
324
+ values: [args.organizationId, args.sessionId, args.artifactId, args.createdByUserId],
614
325
  rowMode: "array"
615
326
  });
616
327
  if (result.rows.length !== 1) {
@@ -619,70 +330,70 @@ async function bumpChatArtifactVersion(client, args) {
619
330
  const row = result.rows[0];
620
331
  return {
621
332
  id: row[0],
622
- sessionId: row[1],
623
- title: row[2],
624
- kind: row[3],
625
- language: row[4],
626
- currentVersion: row[5],
627
- createdAt: row[6],
628
- updatedAt: row[7]
333
+ organizationId: row[1],
334
+ sessionId: row[2],
335
+ title: row[3],
336
+ kind: row[4],
337
+ language: row[5],
338
+ currentVersion: row[6],
339
+ createdAt: row[7],
340
+ updatedAt: row[8]
629
341
  };
630
342
  }
631
- exports.listChatArtifactsForSessionQuery = `-- name: ListChatArtifactsForSession :many
632
- SELECT id, session_id, title, kind, language, current_version, created_at, updated_at FROM weave.chat_artifacts
633
- WHERE session_id = $1
634
- ORDER BY created_at`;
635
- async function listChatArtifactsForSession(client, args) {
343
+ exports.listChatArtifactsQuery = `-- name: ListChatArtifacts :many
344
+ SELECT a.id, a.organization_id, a.session_id, a.title, a.kind, a.language, a.current_version, a.created_at, a.updated_at
345
+ FROM weave.chat_artifact a
346
+ JOIN weave.chat_session s
347
+ ON s.organization_id = a.organization_id
348
+ AND s.id = a.session_id
349
+ WHERE a.organization_id = $1
350
+ AND a.session_id = $2
351
+ AND s.created_by_user_id = $3
352
+ ORDER BY a.created_at ASC, a.id ASC`;
353
+ async function listChatArtifacts(client, args) {
636
354
  const result = await client.query({
637
- text: exports.listChatArtifactsForSessionQuery,
638
- values: [args.sessionId],
355
+ text: exports.listChatArtifactsQuery,
356
+ values: [args.organizationId, args.sessionId, args.createdByUserId],
639
357
  rowMode: "array"
640
358
  });
641
359
  return result.rows.map(row => {
642
360
  return {
643
361
  id: row[0],
644
- sessionId: row[1],
645
- title: row[2],
646
- kind: row[3],
647
- language: row[4],
648
- currentVersion: row[5],
649
- createdAt: row[6],
650
- updatedAt: row[7]
362
+ organizationId: row[1],
363
+ sessionId: row[2],
364
+ title: row[3],
365
+ kind: row[4],
366
+ language: row[5],
367
+ currentVersion: row[6],
368
+ createdAt: row[7],
369
+ updatedAt: row[8]
651
370
  };
652
371
  });
653
372
  }
654
- exports.getChatArtifactQuery = `-- name: GetChatArtifact :one
655
- SELECT id, session_id, title, kind, language, current_version, created_at, updated_at FROM weave.chat_artifacts WHERE id = $1`;
656
- async function getChatArtifact(client, args) {
657
- const result = await client.query({
658
- text: exports.getChatArtifactQuery,
659
- values: [args.id],
660
- rowMode: "array"
661
- });
662
- if (result.rows.length !== 1) {
663
- return null;
664
- }
665
- const row = result.rows[0];
666
- return {
667
- id: row[0],
668
- sessionId: row[1],
669
- title: row[2],
670
- kind: row[3],
671
- language: row[4],
672
- currentVersion: row[5],
673
- createdAt: row[6],
674
- updatedAt: row[7]
675
- };
676
- }
677
- exports.insertChatArtifactVersionQuery = `-- name: InsertChatArtifactVersion :one
678
- INSERT INTO weave.chat_artifact_versions (
679
- id, artifact_id, version, content, created_by_message_id
680
- ) VALUES ($1, $2, $3, $4, $5)
681
- RETURNING id, artifact_id, version, content, created_by_message_id, created_at, document_references`;
682
- async function insertChatArtifactVersion(client, args) {
373
+ exports.createChatArtifactVersionQuery = `-- name: CreateChatArtifactVersion :one
374
+ INSERT INTO weave.chat_artifact_version (
375
+ organization_id,
376
+ artifact_id,
377
+ version,
378
+ content,
379
+ created_by_agent_run_id,
380
+ tool_call_id,
381
+ document_references
382
+ )
383
+ VALUES (
384
+ $1,
385
+ $2,
386
+ $3,
387
+ $4,
388
+ $5::uuid,
389
+ COALESCE($6::text, ''),
390
+ COALESCE($7::jsonb, '[]'::jsonb)
391
+ )
392
+ RETURNING id, organization_id, artifact_id, version, content, created_by_agent_run_id, tool_call_id, document_references, created_at`;
393
+ async function createChatArtifactVersion(client, args) {
683
394
  const result = await client.query({
684
- text: exports.insertChatArtifactVersionQuery,
685
- values: [args.id, args.artifactId, args.version, args.content, args.createdByMessageId],
395
+ text: exports.createChatArtifactVersionQuery,
396
+ values: [args.organizationId, args.artifactId, args.version, args.content, args.createdByAgentRunId, args.toolCallId, args.documentReferences],
686
397
  rowMode: "array"
687
398
  });
688
399
  if (result.rows.length !== 1) {
@@ -691,23 +402,34 @@ async function insertChatArtifactVersion(client, args) {
691
402
  const row = result.rows[0];
692
403
  return {
693
404
  id: row[0],
694
- artifactId: row[1],
695
- version: row[2],
696
- content: row[3],
697
- createdByMessageId: row[4],
698
- createdAt: row[5],
699
- documentReferences: row[6]
405
+ organizationId: row[1],
406
+ artifactId: row[2],
407
+ version: row[3],
408
+ content: row[4],
409
+ createdByAgentRunId: row[5],
410
+ toolCallId: row[6],
411
+ documentReferences: row[7],
412
+ createdAt: row[8]
700
413
  };
701
414
  }
702
- exports.insertChatArtifactVersionWithDocumentReferencesQuery = `-- name: InsertChatArtifactVersionWithDocumentReferences :one
703
- INSERT INTO weave.chat_artifact_versions (
704
- id, artifact_id, version, content, created_by_message_id, document_references
705
- ) VALUES ($1, $2, $3, $4, $5, $6)
706
- RETURNING id, artifact_id, version, content, created_by_message_id, created_at, document_references`;
707
- async function insertChatArtifactVersionWithDocumentReferences(client, args) {
415
+ exports.getChatArtifactVersionQuery = `-- name: GetChatArtifactVersion :one
416
+ SELECT v.id, v.organization_id, v.artifact_id, v.version, v.content, v.created_by_agent_run_id, v.tool_call_id, v.document_references, v.created_at
417
+ FROM weave.chat_artifact_version v
418
+ JOIN weave.chat_artifact a
419
+ ON a.organization_id = v.organization_id
420
+ AND a.id = v.artifact_id
421
+ JOIN weave.chat_session s
422
+ ON s.organization_id = a.organization_id
423
+ AND s.id = a.session_id
424
+ WHERE v.organization_id = $1
425
+ AND a.session_id = $2
426
+ AND v.artifact_id = $3
427
+ AND v.version = $4
428
+ AND s.created_by_user_id = $5`;
429
+ async function getChatArtifactVersion(client, args) {
708
430
  const result = await client.query({
709
- text: exports.insertChatArtifactVersionWithDocumentReferencesQuery,
710
- values: [args.id, args.artifactId, args.version, args.content, args.createdByMessageId, args.documentReferences],
431
+ text: exports.getChatArtifactVersionQuery,
432
+ values: [args.organizationId, args.sessionId, args.artifactId, args.version, args.createdByUserId],
711
433
  rowMode: "array"
712
434
  });
713
435
  if (result.rows.length !== 1) {
@@ -716,21 +438,34 @@ async function insertChatArtifactVersionWithDocumentReferences(client, args) {
716
438
  const row = result.rows[0];
717
439
  return {
718
440
  id: row[0],
719
- artifactId: row[1],
720
- version: row[2],
721
- content: row[3],
722
- createdByMessageId: row[4],
723
- createdAt: row[5],
724
- documentReferences: row[6]
441
+ organizationId: row[1],
442
+ artifactId: row[2],
443
+ version: row[3],
444
+ content: row[4],
445
+ createdByAgentRunId: row[5],
446
+ toolCallId: row[6],
447
+ documentReferences: row[7],
448
+ createdAt: row[8]
725
449
  };
726
450
  }
727
- exports.getChatArtifactVersionQuery = `-- name: GetChatArtifactVersion :one
728
- SELECT id, artifact_id, version, content, created_by_message_id, created_at, document_references FROM weave.chat_artifact_versions
729
- WHERE artifact_id = $1 AND version = $2`;
730
- async function getChatArtifactVersion(client, args) {
451
+ exports.getCurrentChatArtifactVersionQuery = `-- name: GetCurrentChatArtifactVersion :one
452
+ SELECT v.id, v.organization_id, v.artifact_id, v.version, v.content, v.created_by_agent_run_id, v.tool_call_id, v.document_references, v.created_at
453
+ FROM weave.chat_artifact_version v
454
+ JOIN weave.chat_artifact a
455
+ ON a.organization_id = v.organization_id
456
+ AND a.id = v.artifact_id
457
+ JOIN weave.chat_session s
458
+ ON s.organization_id = a.organization_id
459
+ AND s.id = a.session_id
460
+ WHERE v.organization_id = $1
461
+ AND a.session_id = $2
462
+ AND v.artifact_id = $3
463
+ AND v.version = a.current_version
464
+ AND s.created_by_user_id = $4`;
465
+ async function getCurrentChatArtifactVersion(client, args) {
731
466
  const result = await client.query({
732
- text: exports.getChatArtifactVersionQuery,
733
- values: [args.artifactId, args.version],
467
+ text: exports.getCurrentChatArtifactVersionQuery,
468
+ values: [args.organizationId, args.sessionId, args.artifactId, args.createdByUserId],
734
469
  rowMode: "array"
735
470
  });
736
471
  if (result.rows.length !== 1) {
@@ -739,33 +474,13 @@ async function getChatArtifactVersion(client, args) {
739
474
  const row = result.rows[0];
740
475
  return {
741
476
  id: row[0],
742
- artifactId: row[1],
743
- version: row[2],
744
- content: row[3],
745
- createdByMessageId: row[4],
746
- createdAt: row[5],
747
- documentReferences: row[6]
477
+ organizationId: row[1],
478
+ artifactId: row[2],
479
+ version: row[3],
480
+ content: row[4],
481
+ createdByAgentRunId: row[5],
482
+ toolCallId: row[6],
483
+ documentReferences: row[7],
484
+ createdAt: row[8]
748
485
  };
749
486
  }
750
- exports.listChatArtifactVersionsQuery = `-- name: ListChatArtifactVersions :many
751
- SELECT id, artifact_id, version, content, created_by_message_id, created_at, document_references FROM weave.chat_artifact_versions
752
- WHERE artifact_id = $1
753
- ORDER BY version`;
754
- async function listChatArtifactVersions(client, args) {
755
- const result = await client.query({
756
- text: exports.listChatArtifactVersionsQuery,
757
- values: [args.artifactId],
758
- rowMode: "array"
759
- });
760
- return result.rows.map(row => {
761
- return {
762
- id: row[0],
763
- artifactId: row[1],
764
- version: row[2],
765
- content: row[3],
766
- createdByMessageId: row[4],
767
- createdAt: row[5],
768
- documentReferences: row[6]
769
- };
770
- });
771
- }