weave-typescript 0.37.0 → 0.39.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.
- package/dist/weaveapi/auth/v1/auth.pb.d.ts +42 -0
- package/dist/weaveapi/auth/v1/service.pb.d.ts +22 -0
- package/dist/weaveapi/auth/v1/service.pb.js +28 -2
- package/dist/weaveapi/consolidation/v1/consolidation.pb.d.ts +1 -0
- package/dist/weaveapi/consolidation/v1/consolidation.pb.js +6 -0
- package/dist/weaveapi/ingestion/v1/ingestion.pb.d.ts +92 -0
- package/dist/weaveapi/ingestion/v1/ingestion.pb.js +1512 -127
- package/dist/weaveapi/ingestion/v1/service.pb.d.ts +71 -1
- package/dist/weaveapi/ingestion/v1/service.pb.js +410 -0
- package/dist/weaveapi/retrieval/v1/retrieval.pb.d.ts +3 -1
- package/dist/weaveapi/retrieval/v1/retrieval.pb.js +62 -16
- package/dist/weavesql/weavedb/auth_identity_sql.d.ts +23 -2
- package/dist/weavesql/weavedb/auth_identity_sql.js +60 -11
- package/dist/weavesql/weavedb/consolidation_sql.d.ts +2 -2
- package/dist/weavesql/weavedb/consolidation_sql.js +15 -5
- package/dist/weavesql/weavedb/document_security_sql.d.ts +197 -46
- package/dist/weavesql/weavedb/document_security_sql.js +432 -134
- package/dist/weavesql/weavedb/ingestion_sql.d.ts +9 -18
- package/dist/weavesql/weavedb/ingestion_sql.js +124 -101
- package/dist/weavesql/weavedb/retrieval_sql.d.ts +6 -7
- package/dist/weavesql/weavedb/retrieval_sql.js +136 -51
- package/package.json +2 -2
|
@@ -28,7 +28,7 @@ export interface SearchApprovedThreadsSemanticRow {
|
|
|
28
28
|
conceptCluster: string;
|
|
29
29
|
}
|
|
30
30
|
export declare function searchApprovedThreadsSemantic(client: Client, args: SearchApprovedThreadsSemanticArgs): Promise<SearchApprovedThreadsSemanticRow[]>;
|
|
31
|
-
export declare const searchApprovedThreadsSemanticByUserPermissionsQuery = "-- name: SearchApprovedThreadsSemanticByUserPermissions :many\nSELECT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n similarity.score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n COALESCE(cc.name, '') AS concept_cluster\nFROM weave.threads t\nJOIN weave.documents d ON d.id = t.document_id\nCROSS JOIN LATERAL (\n SELECT CAST(\n 1.0::double precision\n - (t.embedding <=> $1::vector)::double precision\n AS double precision\n ) AS score\n) similarity\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN weave.concept_clusters cc ON cc.id = t.cluster_id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e.canonical ORDER BY e.canonical) AS entities\n FROM weave.thread_entities te\n JOIN weave.entities e ON e.id = te.entity_id\n WHERE te.thread_id = t.id\n) entity_data ON TRUE\nWHERE t.organization_id = $2\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND t.embedding IS NOT NULL\n AND similarity.score >= $3::double precision\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $4)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND EXISTS (\n SELECT 1\n FROM weave.
|
|
31
|
+
export declare const searchApprovedThreadsSemanticByUserPermissionsQuery = "-- name: SearchApprovedThreadsSemanticByUserPermissions :many\nSELECT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n similarity.score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n COALESCE(cc.name, '') AS concept_cluster\nFROM weave.threads t\nJOIN weave.documents d ON d.id = t.document_id\nCROSS JOIN LATERAL (\n SELECT CAST(\n 1.0::double precision\n - (t.embedding <=> $1::vector)::double precision\n AS double precision\n ) AS score\n) similarity\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN weave.concept_clusters cc ON cc.id = t.cluster_id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e.canonical ORDER BY e.canonical) AS entities\n FROM weave.thread_entities te\n JOIN weave.entities e ON e.id = te.entity_id\n WHERE te.thread_id = t.id\n) entity_data ON TRUE\nWHERE t.organization_id = $2\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND t.embedding IS NOT NULL\n AND similarity.score >= $3::double precision\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $4)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND (\n EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_user_memberships rgum\n ON rgum.organization_id = drg.organization_id\n AND rgum.restricted_group_id = drg.restricted_group_id\n AND rgum.user_id = $4\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )\n OR EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_team_memberships rgtm\n ON rgtm.organization_id = drg.organization_id\n AND rgtm.restricted_group_id = drg.restricted_group_id\n JOIN weave.org_team_memberships otm\n ON otm.organization_id = rgtm.organization_id\n AND otm.org_team_id = rgtm.org_team_id\n AND otm.user_id = $4\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )))\n )\nORDER BY score DESC, t.approved_at DESC\nLIMIT $5";
|
|
32
32
|
export interface SearchApprovedThreadsSemanticByUserPermissionsArgs {
|
|
33
33
|
queryEmbedding: string;
|
|
34
34
|
organizationId: string;
|
|
@@ -53,7 +53,7 @@ export interface SearchApprovedThreadsSemanticByUserPermissionsRow {
|
|
|
53
53
|
conceptCluster: string;
|
|
54
54
|
}
|
|
55
55
|
export declare function searchApprovedThreadsSemanticByUserPermissions(client: Client, args: SearchApprovedThreadsSemanticByUserPermissionsArgs): Promise<SearchApprovedThreadsSemanticByUserPermissionsRow[]>;
|
|
56
|
-
export declare const searchAccessibleDocumentsSemanticQuery = "-- name: SearchAccessibleDocumentsSemantic :many\nWITH tag_data AS (\n SELECT\n dt.document_id,\n array_agg(dt.tag ORDER BY dt.tag ASC) AS tags,\n array_agg(dt.confidence ORDER BY dt.tag ASC) AS tag_confidences\n FROM weave.document_tags dt\n JOIN weave.documents d ON d.id = dt.document_id\n WHERE d.organization_id = $4\n GROUP BY dt.document_id\n),\nmatches AS (\n SELECT\n t.id AS thread_id,\n t.text,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n d.mime_type,\n d.scope,\n d.
|
|
56
|
+
export declare const searchAccessibleDocumentsSemanticQuery = "-- name: SearchAccessibleDocumentsSemantic :many\nWITH tag_data AS (\n SELECT\n dt.document_id,\n array_agg(dt.tag ORDER BY dt.tag ASC) AS tags,\n array_agg(dt.confidence ORDER BY dt.tag ASC) AS tag_confidences\n FROM weave.document_tags dt\n JOIN weave.documents d ON d.id = dt.document_id\n WHERE d.organization_id = $4\n GROUP BY dt.document_id\n),\nmatches AS (\n SELECT\n t.id AS thread_id,\n t.text,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n d.mime_type,\n d.scope,\n d.uploaded_at,\n COALESCE(tag_data.tags, '{}'::text[]) AS tags,\n COALESCE(tag_data.tag_confidences, '{}'::real[]) AS tag_confidences,\n t.source_location,\n t.approved_at,\n CAST(\n 1.0::double precision\n - (t.embedding <=> $5::vector)::double precision\n AS double precision\n ) AS score\n FROM weave.threads t\n JOIN weave.documents d ON d.id = t.document_id\n LEFT JOIN tag_data ON tag_data.document_id = d.id\n WHERE t.organization_id = $4\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND t.embedding IS NOT NULL\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $6)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND (\n EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_user_memberships rgum\n ON rgum.organization_id = drg.organization_id\n AND rgum.restricted_group_id = drg.restricted_group_id\n AND rgum.user_id = $6\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )\n OR EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_team_memberships rgtm\n ON rgtm.organization_id = drg.organization_id\n AND rgtm.restricted_group_id = drg.restricted_group_id\n JOIN weave.org_team_memberships otm\n ON otm.organization_id = rgtm.organization_id\n AND otm.org_team_id = rgtm.org_team_id\n AND otm.user_id = $6\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )))\n )\n AND (cardinality($7::text[]) = 0 OR tag_data.tags && $7::text[])\n AND (\n cardinality($8::uuid[]) = 0\n OR EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n AND drg.restricted_group_id = ANY($8::uuid[])\n )\n )\n AND (cardinality($9::text[]) = 0 OR d.scope = ANY($9::text[]))\n AND ($10::timestamptz IS NULL OR d.uploaded_at >= $10::timestamptz)\n AND ($11::timestamptz IS NULL OR d.uploaded_at <= $11::timestamptz)\n)\nSELECT\n document_id,\n document_name,\n mime_type,\n scope,\n tags,\n tag_confidences,\n uploaded_at,\n MAX(score)::double precision AS score,\n COUNT(*)::int AS matched_thread_count,\n (array_agg(thread_id ORDER BY score DESC, approved_at DESC))[1] AS best_thread_id,\n (array_agg(text ORDER BY score DESC, approved_at DESC))[1] AS best_text,\n (array_agg(classification ORDER BY score DESC, approved_at DESC))[1] AS best_classification,\n (array_agg(source_location ORDER BY score DESC, approved_at DESC))[1] AS best_source_location\nFROM matches\nWHERE score >= $1::double precision\nGROUP BY\n document_id,\n document_name,\n mime_type,\n scope,\n tags,\n tag_confidences,\n uploaded_at\nORDER BY score DESC, uploaded_at DESC\nLIMIT $3 OFFSET $2";
|
|
57
57
|
export interface SearchAccessibleDocumentsSemanticArgs {
|
|
58
58
|
minSimilarity: number;
|
|
59
59
|
pageOffset: string;
|
|
@@ -62,7 +62,7 @@ export interface SearchAccessibleDocumentsSemanticArgs {
|
|
|
62
62
|
queryEmbedding: string;
|
|
63
63
|
actingUserId: string;
|
|
64
64
|
tags: string[];
|
|
65
|
-
|
|
65
|
+
restrictedGroupIds: string[];
|
|
66
66
|
scopes: string[];
|
|
67
67
|
uploadedAfter: Date | null;
|
|
68
68
|
uploadedBefore: Date | null;
|
|
@@ -72,7 +72,6 @@ export interface SearchAccessibleDocumentsSemanticRow {
|
|
|
72
72
|
documentName: string;
|
|
73
73
|
mimeType: string;
|
|
74
74
|
scope: string;
|
|
75
|
-
sensitivityTags: string[];
|
|
76
75
|
tags: string;
|
|
77
76
|
tagConfidences: string;
|
|
78
77
|
uploadedAt: Date;
|
|
@@ -109,7 +108,7 @@ export interface SearchApprovedThreadsSemanticByKnowledgeTypesRow {
|
|
|
109
108
|
conceptCluster: string;
|
|
110
109
|
}
|
|
111
110
|
export declare function searchApprovedThreadsSemanticByKnowledgeTypes(client: Client, args: SearchApprovedThreadsSemanticByKnowledgeTypesArgs): Promise<SearchApprovedThreadsSemanticByKnowledgeTypesRow[]>;
|
|
112
|
-
export declare const searchApprovedThreadsSemanticByKnowledgeTypesAndUserPermissionsQuery = "-- name: SearchApprovedThreadsSemanticByKnowledgeTypesAndUserPermissions :many\nSELECT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n similarity.score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n COALESCE(cc.name, '') AS concept_cluster\nFROM weave.threads t\nJOIN weave.documents d ON d.id = t.document_id\nCROSS JOIN LATERAL (\n SELECT CAST(\n 1.0::double precision\n - (t.embedding <=> $1::vector)::double precision\n AS double precision\n ) AS score\n) similarity\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN weave.concept_clusters cc ON cc.id = t.cluster_id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e.canonical ORDER BY e.canonical) AS entities\n FROM weave.thread_entities te\n JOIN weave.entities e ON e.id = te.entity_id\n WHERE te.thread_id = t.id\n) entity_data ON TRUE\nWHERE t.organization_id = $2\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND t.embedding IS NOT NULL\n AND t.knowledge_type = ANY($3::text[])\n AND similarity.score >= $4::double precision\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $5)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND EXISTS (\n SELECT 1\n FROM weave.
|
|
111
|
+
export declare const searchApprovedThreadsSemanticByKnowledgeTypesAndUserPermissionsQuery = "-- name: SearchApprovedThreadsSemanticByKnowledgeTypesAndUserPermissions :many\nSELECT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n similarity.score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n COALESCE(cc.name, '') AS concept_cluster\nFROM weave.threads t\nJOIN weave.documents d ON d.id = t.document_id\nCROSS JOIN LATERAL (\n SELECT CAST(\n 1.0::double precision\n - (t.embedding <=> $1::vector)::double precision\n AS double precision\n ) AS score\n) similarity\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN weave.concept_clusters cc ON cc.id = t.cluster_id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e.canonical ORDER BY e.canonical) AS entities\n FROM weave.thread_entities te\n JOIN weave.entities e ON e.id = te.entity_id\n WHERE te.thread_id = t.id\n) entity_data ON TRUE\nWHERE t.organization_id = $2\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND t.embedding IS NOT NULL\n AND t.knowledge_type = ANY($3::text[])\n AND similarity.score >= $4::double precision\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $5)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND (\n EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_user_memberships rgum\n ON rgum.organization_id = drg.organization_id\n AND rgum.restricted_group_id = drg.restricted_group_id\n AND rgum.user_id = $5\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )\n OR EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_team_memberships rgtm\n ON rgtm.organization_id = drg.organization_id\n AND rgtm.restricted_group_id = drg.restricted_group_id\n JOIN weave.org_team_memberships otm\n ON otm.organization_id = rgtm.organization_id\n AND otm.org_team_id = rgtm.org_team_id\n AND otm.user_id = $5\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )))\n )\nORDER BY score DESC, t.approved_at DESC\nLIMIT $6";
|
|
113
112
|
export interface SearchApprovedThreadsSemanticByKnowledgeTypesAndUserPermissionsArgs {
|
|
114
113
|
queryEmbedding: string;
|
|
115
114
|
organizationId: string;
|
|
@@ -158,7 +157,7 @@ export interface SearchApprovedThreadsByEntitiesRow {
|
|
|
158
157
|
conceptCluster: string;
|
|
159
158
|
}
|
|
160
159
|
export declare function searchApprovedThreadsByEntities(client: Client, args: SearchApprovedThreadsByEntitiesArgs): Promise<SearchApprovedThreadsByEntitiesRow[]>;
|
|
161
|
-
export declare const searchApprovedThreadsByEntitiesAndUserPermissionsQuery = "-- name: SearchApprovedThreadsByEntitiesAndUserPermissions :many\nSELECT DISTINCT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n te.confidence::double precision AS score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n COALESCE(cc.name, '') AS concept_cluster\nFROM weave.threads t\nJOIN weave.documents d ON d.id = t.document_id\nJOIN weave.thread_entities te ON te.thread_id = t.id\nJOIN weave.entities e ON e.id = te.entity_id\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN weave.concept_clusters cc ON cc.id = t.cluster_id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e2.canonical ORDER BY e2.canonical) AS entities\n FROM weave.thread_entities te2\n JOIN weave.entities e2 ON e2.id = te2.entity_id\n WHERE te2.thread_id = t.id\n) entity_data ON TRUE\nWHERE t.organization_id = $1\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND e.canonical = ANY($2::text[])\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $3)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND EXISTS (\n SELECT 1\n FROM weave.
|
|
160
|
+
export declare const searchApprovedThreadsByEntitiesAndUserPermissionsQuery = "-- name: SearchApprovedThreadsByEntitiesAndUserPermissions :many\nSELECT DISTINCT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n te.confidence::double precision AS score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n COALESCE(cc.name, '') AS concept_cluster\nFROM weave.threads t\nJOIN weave.documents d ON d.id = t.document_id\nJOIN weave.thread_entities te ON te.thread_id = t.id\nJOIN weave.entities e ON e.id = te.entity_id\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN weave.concept_clusters cc ON cc.id = t.cluster_id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e2.canonical ORDER BY e2.canonical) AS entities\n FROM weave.thread_entities te2\n JOIN weave.entities e2 ON e2.id = te2.entity_id\n WHERE te2.thread_id = t.id\n) entity_data ON TRUE\nWHERE t.organization_id = $1\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND e.canonical = ANY($2::text[])\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $3)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND (\n EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_user_memberships rgum\n ON rgum.organization_id = drg.organization_id\n AND rgum.restricted_group_id = drg.restricted_group_id\n AND rgum.user_id = $3\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )\n OR EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_team_memberships rgtm\n ON rgtm.organization_id = drg.organization_id\n AND rgtm.restricted_group_id = drg.restricted_group_id\n JOIN weave.org_team_memberships otm\n ON otm.organization_id = rgtm.organization_id\n AND otm.org_team_id = rgtm.org_team_id\n AND otm.user_id = $3\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )))\n )\nORDER BY score DESC, t.approved_at DESC\nLIMIT $4";
|
|
162
161
|
export interface SearchApprovedThreadsByEntitiesAndUserPermissionsArgs {
|
|
163
162
|
organizationId: string;
|
|
164
163
|
entityCanonicals: string[];
|
|
@@ -234,7 +233,7 @@ export interface SearchConceptClusterThreadsBySimilarityRow {
|
|
|
234
233
|
conceptCluster: string;
|
|
235
234
|
}
|
|
236
235
|
export declare function searchConceptClusterThreadsBySimilarity(client: Client, args: SearchConceptClusterThreadsBySimilarityArgs): Promise<SearchConceptClusterThreadsBySimilarityRow[]>;
|
|
237
|
-
export declare const searchConceptClusterThreadsBySimilarityAndUserPermissionsQuery = "-- name: SearchConceptClusterThreadsBySimilarityAndUserPermissions :many\nSELECT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n similarity.score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n cc.name AS concept_cluster\nFROM weave.concept_clusters cc\nCROSS JOIN LATERAL (\n SELECT CAST(\n 1.0::double precision\n - (cc.embedding <=> $1::vector)::double precision\n AS double precision\n ) AS score\n) similarity\nJOIN weave.threads t ON t.cluster_id = cc.id\nJOIN weave.documents d ON d.id = t.document_id\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e.canonical ORDER BY e.canonical) AS entities\n FROM weave.thread_entities te\n JOIN weave.entities e ON e.id = te.entity_id\n WHERE te.thread_id = t.id\n) entity_data ON TRUE\nWHERE cc.organization_id = $2\n AND cc.realm_kind = $3\n AND cc.realm_key = $4\n AND cc.level = 0\n AND cc.embedding IS NOT NULL\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND similarity.score >= $5::double precision\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $6)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND EXISTS (\n SELECT 1\n FROM weave.
|
|
236
|
+
export declare const searchConceptClusterThreadsBySimilarityAndUserPermissionsQuery = "-- name: SearchConceptClusterThreadsBySimilarityAndUserPermissions :many\nSELECT\n t.id AS thread_id,\n t.text,\n t.knowledge_type,\n t.facet_fields,\n similarity.score,\n t.classification,\n t.document_id,\n d.filename AS document_name,\n t.source_location,\n t.approved_at,\n t.temporal_validity,\n COALESCE(entity_data.entities, '{}'::text[]) AS entities,\n COALESCE(rs.reinforcement_count, 0) AS reinforcement_count,\n cc.name AS concept_cluster\nFROM weave.concept_clusters cc\nCROSS JOIN LATERAL (\n SELECT CAST(\n 1.0::double precision\n - (cc.embedding <=> $1::vector)::double precision\n AS double precision\n ) AS score\n) similarity\nJOIN weave.threads t ON t.cluster_id = cc.id\nJOIN weave.documents d ON d.id = t.document_id\nLEFT JOIN weave.thread_reinforcement_scores rs ON rs.thread_id = t.id\nLEFT JOIN LATERAL (\n SELECT array_agg(DISTINCT e.canonical ORDER BY e.canonical) AS entities\n FROM weave.thread_entities te\n JOIN weave.entities e ON e.id = te.entity_id\n WHERE te.thread_id = t.id\n) entity_data ON TRUE\nWHERE cc.organization_id = $2\n AND cc.realm_kind = $3\n AND cc.realm_key = $4\n AND cc.level = 0\n AND cc.embedding IS NOT NULL\n AND t.retrieval_status = 'THREAD_RETRIEVAL_STATUS_APPROVED'\n AND similarity.score >= $5::double precision\n AND (\n d.scope = 'DOCUMENT_SCOPE_ORG'\n OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'\n AND d.uploaded_by_user_id = $6)\n OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'\n AND (\n EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_user_memberships rgum\n ON rgum.organization_id = drg.organization_id\n AND rgum.restricted_group_id = drg.restricted_group_id\n AND rgum.user_id = $6\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )\n OR EXISTS (\n SELECT 1\n FROM weave.document_restricted_groups drg\n JOIN weave.restricted_group_team_memberships rgtm\n ON rgtm.organization_id = drg.organization_id\n AND rgtm.restricted_group_id = drg.restricted_group_id\n JOIN weave.org_team_memberships otm\n ON otm.organization_id = rgtm.organization_id\n AND otm.org_team_id = rgtm.org_team_id\n AND otm.user_id = $6\n WHERE drg.organization_id = d.organization_id\n AND drg.document_id = d.id\n )))\n )\nORDER BY score DESC, t.approved_at DESC\nLIMIT $7";
|
|
238
237
|
export interface SearchConceptClusterThreadsBySimilarityAndUserPermissionsArgs {
|
|
239
238
|
queryEmbedding: string;
|
|
240
239
|
organizationId: string;
|
|
@@ -131,14 +131,30 @@ WHERE t.organization_id = $2
|
|
|
131
131
|
OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'
|
|
132
132
|
AND d.uploaded_by_user_id = $4)
|
|
133
133
|
OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'
|
|
134
|
-
AND
|
|
134
|
+
AND (
|
|
135
|
+
EXISTS (
|
|
135
136
|
SELECT 1
|
|
136
|
-
FROM weave.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
137
|
+
FROM weave.document_restricted_groups drg
|
|
138
|
+
JOIN weave.restricted_group_user_memberships rgum
|
|
139
|
+
ON rgum.organization_id = drg.organization_id
|
|
140
|
+
AND rgum.restricted_group_id = drg.restricted_group_id
|
|
141
|
+
AND rgum.user_id = $4
|
|
142
|
+
WHERE drg.organization_id = d.organization_id
|
|
143
|
+
AND drg.document_id = d.id
|
|
144
|
+
)
|
|
145
|
+
OR EXISTS (
|
|
146
|
+
SELECT 1
|
|
147
|
+
FROM weave.document_restricted_groups drg
|
|
148
|
+
JOIN weave.restricted_group_team_memberships rgtm
|
|
149
|
+
ON rgtm.organization_id = drg.organization_id
|
|
150
|
+
AND rgtm.restricted_group_id = drg.restricted_group_id
|
|
151
|
+
JOIN weave.org_team_memberships otm
|
|
152
|
+
ON otm.organization_id = rgtm.organization_id
|
|
153
|
+
AND otm.org_team_id = rgtm.org_team_id
|
|
154
|
+
AND otm.user_id = $4
|
|
155
|
+
WHERE drg.organization_id = d.organization_id
|
|
156
|
+
AND drg.document_id = d.id
|
|
157
|
+
)))
|
|
142
158
|
)
|
|
143
159
|
ORDER BY score DESC, t.approved_at DESC
|
|
144
160
|
LIMIT $5`;
|
|
@@ -187,7 +203,6 @@ matches AS (
|
|
|
187
203
|
d.filename AS document_name,
|
|
188
204
|
d.mime_type,
|
|
189
205
|
d.scope,
|
|
190
|
-
d.sensitivity_tags,
|
|
191
206
|
d.uploaded_at,
|
|
192
207
|
COALESCE(tag_data.tags, '{}'::text[]) AS tags,
|
|
193
208
|
COALESCE(tag_data.tag_confidences, '{}'::real[]) AS tag_confidences,
|
|
@@ -209,17 +224,42 @@ matches AS (
|
|
|
209
224
|
OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'
|
|
210
225
|
AND d.uploaded_by_user_id = $6)
|
|
211
226
|
OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'
|
|
212
|
-
AND
|
|
227
|
+
AND (
|
|
228
|
+
EXISTS (
|
|
229
|
+
SELECT 1
|
|
230
|
+
FROM weave.document_restricted_groups drg
|
|
231
|
+
JOIN weave.restricted_group_user_memberships rgum
|
|
232
|
+
ON rgum.organization_id = drg.organization_id
|
|
233
|
+
AND rgum.restricted_group_id = drg.restricted_group_id
|
|
234
|
+
AND rgum.user_id = $6
|
|
235
|
+
WHERE drg.organization_id = d.organization_id
|
|
236
|
+
AND drg.document_id = d.id
|
|
237
|
+
)
|
|
238
|
+
OR EXISTS (
|
|
213
239
|
SELECT 1
|
|
214
|
-
FROM weave.
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
240
|
+
FROM weave.document_restricted_groups drg
|
|
241
|
+
JOIN weave.restricted_group_team_memberships rgtm
|
|
242
|
+
ON rgtm.organization_id = drg.organization_id
|
|
243
|
+
AND rgtm.restricted_group_id = drg.restricted_group_id
|
|
244
|
+
JOIN weave.org_team_memberships otm
|
|
245
|
+
ON otm.organization_id = rgtm.organization_id
|
|
246
|
+
AND otm.org_team_id = rgtm.org_team_id
|
|
247
|
+
AND otm.user_id = $6
|
|
248
|
+
WHERE drg.organization_id = d.organization_id
|
|
249
|
+
AND drg.document_id = d.id
|
|
250
|
+
)))
|
|
251
|
+
)
|
|
252
|
+
AND (cardinality($7::text[]) = 0 OR tag_data.tags && $7::text[])
|
|
253
|
+
AND (
|
|
254
|
+
cardinality($8::uuid[]) = 0
|
|
255
|
+
OR EXISTS (
|
|
256
|
+
SELECT 1
|
|
257
|
+
FROM weave.document_restricted_groups drg
|
|
258
|
+
WHERE drg.organization_id = d.organization_id
|
|
259
|
+
AND drg.document_id = d.id
|
|
260
|
+
AND drg.restricted_group_id = ANY($8::uuid[])
|
|
261
|
+
)
|
|
220
262
|
)
|
|
221
|
-
AND (cardinality($7::text[]) = 0 OR tag_data.tags && $7::text[] OR d.sensitivity_tags && $7::text[])
|
|
222
|
-
AND (cardinality($8::text[]) = 0 OR d.sensitivity_tags && $8::text[])
|
|
223
263
|
AND (cardinality($9::text[]) = 0 OR d.scope = ANY($9::text[]))
|
|
224
264
|
AND ($10::timestamptz IS NULL OR d.uploaded_at >= $10::timestamptz)
|
|
225
265
|
AND ($11::timestamptz IS NULL OR d.uploaded_at <= $11::timestamptz)
|
|
@@ -229,7 +269,6 @@ SELECT
|
|
|
229
269
|
document_name,
|
|
230
270
|
mime_type,
|
|
231
271
|
scope,
|
|
232
|
-
sensitivity_tags,
|
|
233
272
|
tags,
|
|
234
273
|
tag_confidences,
|
|
235
274
|
uploaded_at,
|
|
@@ -246,7 +285,6 @@ GROUP BY
|
|
|
246
285
|
document_name,
|
|
247
286
|
mime_type,
|
|
248
287
|
scope,
|
|
249
|
-
sensitivity_tags,
|
|
250
288
|
tags,
|
|
251
289
|
tag_confidences,
|
|
252
290
|
uploaded_at
|
|
@@ -255,7 +293,7 @@ LIMIT $3 OFFSET $2`;
|
|
|
255
293
|
async function searchAccessibleDocumentsSemantic(client, args) {
|
|
256
294
|
const result = await client.query({
|
|
257
295
|
text: exports.searchAccessibleDocumentsSemanticQuery,
|
|
258
|
-
values: [args.minSimilarity, args.pageOffset, args.resultLimit, args.organizationId, args.queryEmbedding, args.actingUserId, args.tags, args.
|
|
296
|
+
values: [args.minSimilarity, args.pageOffset, args.resultLimit, args.organizationId, args.queryEmbedding, args.actingUserId, args.tags, args.restrictedGroupIds, args.scopes, args.uploadedAfter, args.uploadedBefore],
|
|
259
297
|
rowMode: "array"
|
|
260
298
|
});
|
|
261
299
|
return result.rows.map(row => {
|
|
@@ -264,16 +302,15 @@ async function searchAccessibleDocumentsSemantic(client, args) {
|
|
|
264
302
|
documentName: row[1],
|
|
265
303
|
mimeType: row[2],
|
|
266
304
|
scope: row[3],
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
bestSourceLocation: row[13]
|
|
305
|
+
tags: row[4],
|
|
306
|
+
tagConfidences: row[5],
|
|
307
|
+
uploadedAt: row[6],
|
|
308
|
+
score: row[7],
|
|
309
|
+
matchedThreadCount: row[8],
|
|
310
|
+
bestThreadId: row[9],
|
|
311
|
+
bestText: row[10],
|
|
312
|
+
bestClassification: row[11],
|
|
313
|
+
bestSourceLocation: row[12]
|
|
277
314
|
};
|
|
278
315
|
});
|
|
279
316
|
}
|
|
@@ -385,14 +422,30 @@ WHERE t.organization_id = $2
|
|
|
385
422
|
OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'
|
|
386
423
|
AND d.uploaded_by_user_id = $5)
|
|
387
424
|
OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'
|
|
388
|
-
AND
|
|
425
|
+
AND (
|
|
426
|
+
EXISTS (
|
|
427
|
+
SELECT 1
|
|
428
|
+
FROM weave.document_restricted_groups drg
|
|
429
|
+
JOIN weave.restricted_group_user_memberships rgum
|
|
430
|
+
ON rgum.organization_id = drg.organization_id
|
|
431
|
+
AND rgum.restricted_group_id = drg.restricted_group_id
|
|
432
|
+
AND rgum.user_id = $5
|
|
433
|
+
WHERE drg.organization_id = d.organization_id
|
|
434
|
+
AND drg.document_id = d.id
|
|
435
|
+
)
|
|
436
|
+
OR EXISTS (
|
|
389
437
|
SELECT 1
|
|
390
|
-
FROM weave.
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
438
|
+
FROM weave.document_restricted_groups drg
|
|
439
|
+
JOIN weave.restricted_group_team_memberships rgtm
|
|
440
|
+
ON rgtm.organization_id = drg.organization_id
|
|
441
|
+
AND rgtm.restricted_group_id = drg.restricted_group_id
|
|
442
|
+
JOIN weave.org_team_memberships otm
|
|
443
|
+
ON otm.organization_id = rgtm.organization_id
|
|
444
|
+
AND otm.org_team_id = rgtm.org_team_id
|
|
445
|
+
AND otm.user_id = $5
|
|
446
|
+
WHERE drg.organization_id = d.organization_id
|
|
447
|
+
AND drg.document_id = d.id
|
|
448
|
+
)))
|
|
396
449
|
)
|
|
397
450
|
ORDER BY score DESC, t.approved_at DESC
|
|
398
451
|
LIMIT $6`;
|
|
@@ -515,14 +568,30 @@ WHERE t.organization_id = $1
|
|
|
515
568
|
OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'
|
|
516
569
|
AND d.uploaded_by_user_id = $3)
|
|
517
570
|
OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'
|
|
518
|
-
AND
|
|
571
|
+
AND (
|
|
572
|
+
EXISTS (
|
|
519
573
|
SELECT 1
|
|
520
|
-
FROM weave.
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
574
|
+
FROM weave.document_restricted_groups drg
|
|
575
|
+
JOIN weave.restricted_group_user_memberships rgum
|
|
576
|
+
ON rgum.organization_id = drg.organization_id
|
|
577
|
+
AND rgum.restricted_group_id = drg.restricted_group_id
|
|
578
|
+
AND rgum.user_id = $3
|
|
579
|
+
WHERE drg.organization_id = d.organization_id
|
|
580
|
+
AND drg.document_id = d.id
|
|
581
|
+
)
|
|
582
|
+
OR EXISTS (
|
|
583
|
+
SELECT 1
|
|
584
|
+
FROM weave.document_restricted_groups drg
|
|
585
|
+
JOIN weave.restricted_group_team_memberships rgtm
|
|
586
|
+
ON rgtm.organization_id = drg.organization_id
|
|
587
|
+
AND rgtm.restricted_group_id = drg.restricted_group_id
|
|
588
|
+
JOIN weave.org_team_memberships otm
|
|
589
|
+
ON otm.organization_id = rgtm.organization_id
|
|
590
|
+
AND otm.org_team_id = rgtm.org_team_id
|
|
591
|
+
AND otm.user_id = $3
|
|
592
|
+
WHERE drg.organization_id = d.organization_id
|
|
593
|
+
AND drg.document_id = d.id
|
|
594
|
+
)))
|
|
526
595
|
)
|
|
527
596
|
ORDER BY score DESC, t.approved_at DESC
|
|
528
597
|
LIMIT $4`;
|
|
@@ -720,14 +789,30 @@ WHERE cc.organization_id = $2
|
|
|
720
789
|
OR (d.scope = 'DOCUMENT_SCOPE_PRIVATE'
|
|
721
790
|
AND d.uploaded_by_user_id = $6)
|
|
722
791
|
OR (d.scope = 'DOCUMENT_SCOPE_RESTRICTED'
|
|
723
|
-
AND
|
|
792
|
+
AND (
|
|
793
|
+
EXISTS (
|
|
794
|
+
SELECT 1
|
|
795
|
+
FROM weave.document_restricted_groups drg
|
|
796
|
+
JOIN weave.restricted_group_user_memberships rgum
|
|
797
|
+
ON rgum.organization_id = drg.organization_id
|
|
798
|
+
AND rgum.restricted_group_id = drg.restricted_group_id
|
|
799
|
+
AND rgum.user_id = $6
|
|
800
|
+
WHERE drg.organization_id = d.organization_id
|
|
801
|
+
AND drg.document_id = d.id
|
|
802
|
+
)
|
|
803
|
+
OR EXISTS (
|
|
724
804
|
SELECT 1
|
|
725
|
-
FROM weave.
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
805
|
+
FROM weave.document_restricted_groups drg
|
|
806
|
+
JOIN weave.restricted_group_team_memberships rgtm
|
|
807
|
+
ON rgtm.organization_id = drg.organization_id
|
|
808
|
+
AND rgtm.restricted_group_id = drg.restricted_group_id
|
|
809
|
+
JOIN weave.org_team_memberships otm
|
|
810
|
+
ON otm.organization_id = rgtm.organization_id
|
|
811
|
+
AND otm.org_team_id = rgtm.org_team_id
|
|
812
|
+
AND otm.user_id = $6
|
|
813
|
+
WHERE drg.organization_id = d.organization_id
|
|
814
|
+
AND drg.document_id = d.id
|
|
815
|
+
)))
|
|
731
816
|
)
|
|
732
817
|
ORDER BY score DESC, t.approved_at DESC
|
|
733
818
|
LIMIT $7`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weave-typescript",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "^25.2.0",
|
|
33
33
|
"@types/pg": "^8.15.5",
|
|
34
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
34
|
+
"@typescript/native-preview": "7.0.0-dev.20260510.1"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"test": "node tools/sqlcgen.test.js",
|