@knowzai/api-client 0.1.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/LICENSE +21 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/chat.d.ts +21 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +147 -0
- package/dist/chat.js.map +1 -0
- package/dist/client.d.ts +33 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +198 -0
- package/dist/client.js.map +1 -0
- package/dist/contracts.d.ts +24 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +2 -0
- package/dist/contracts.js.map +1 -0
- package/dist/envelope.d.ts +27 -0
- package/dist/envelope.d.ts.map +1 -0
- package/dist/envelope.js +16 -0
- package/dist/envelope.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/ask.d.ts +14 -0
- package/dist/resources/ask.d.ts.map +1 -0
- package/dist/resources/ask.js +22 -0
- package/dist/resources/ask.js.map +1 -0
- package/dist/resources/auth.d.ts +15 -0
- package/dist/resources/auth.d.ts.map +1 -0
- package/dist/resources/auth.js +35 -0
- package/dist/resources/auth.js.map +1 -0
- package/dist/resources/extras.d.ts +157 -0
- package/dist/resources/extras.d.ts.map +1 -0
- package/dist/resources/extras.js +150 -0
- package/dist/resources/extras.js.map +1 -0
- package/dist/resources/index.d.ts +6 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +6 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/knowledge.d.ts +13 -0
- package/dist/resources/knowledge.d.ts.map +1 -0
- package/dist/resources/knowledge.js +92 -0
- package/dist/resources/knowledge.js.map +1 -0
- package/dist/resources/paging.d.ts +15 -0
- package/dist/resources/paging.d.ts.map +1 -0
- package/dist/resources/paging.js +16 -0
- package/dist/resources/paging.js.map +1 -0
- package/dist/resources/schemas.d.ts +322 -0
- package/dist/resources/schemas.d.ts.map +1 -0
- package/dist/resources/schemas.js +172 -0
- package/dist/resources/schemas.js.map +1 -0
- package/dist/resources/search.d.ts +14 -0
- package/dist/resources/search.d.ts.map +1 -0
- package/dist/resources/search.js +21 -0
- package/dist/resources/search.js.map +1 -0
- package/dist/resources/vaults.d.ts +14 -0
- package/dist/resources/vaults.d.ts.map +1 -0
- package/dist/resources/vaults.js +41 -0
- package/dist/resources/vaults.js.map +1 -0
- package/dist/tls.d.ts +7 -0
- package/dist/tls.d.ts.map +1 -0
- package/dist/tls.js +22 -0
- package/dist/tls.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { KnowledgeDetailSchema, KnowledgeStatusSchema, KnowledgeSummarySchema, KnowledgeCreatedSchema, KnowledgeMutationSchema, pagedSchema, } from './schemas.js';
|
|
3
|
+
import { toPaged } from './paging.js';
|
|
4
|
+
export class KnowledgeApi {
|
|
5
|
+
core;
|
|
6
|
+
constructor(core) {
|
|
7
|
+
this.core = core;
|
|
8
|
+
}
|
|
9
|
+
async list(q = {}) {
|
|
10
|
+
const data = await this.core.request({
|
|
11
|
+
method: 'GET',
|
|
12
|
+
path: '/api/v1/knowledge',
|
|
13
|
+
query: {
|
|
14
|
+
vaultId: q.vaultId,
|
|
15
|
+
type: q.type,
|
|
16
|
+
tags: q.tags,
|
|
17
|
+
page: q.page ?? 1,
|
|
18
|
+
pageSize: q.pageSize ?? 20,
|
|
19
|
+
title: q.titlePattern,
|
|
20
|
+
fileName: q.fileNamePattern,
|
|
21
|
+
},
|
|
22
|
+
schema: pagedSchema(KnowledgeSummarySchema),
|
|
23
|
+
});
|
|
24
|
+
return toPaged(data, { page: q.page, pageSize: q.pageSize });
|
|
25
|
+
}
|
|
26
|
+
async create(req) {
|
|
27
|
+
// The create endpoint returns a minimal ack ({id,title,aiStatus,createdAt,…}),
|
|
28
|
+
// not a full detail — compose a KnowledgeDetail from the request + ack.
|
|
29
|
+
const ack = await this.core.request({
|
|
30
|
+
method: 'POST',
|
|
31
|
+
path: '/api/v1/knowledge',
|
|
32
|
+
body: req,
|
|
33
|
+
schema: KnowledgeCreatedSchema,
|
|
34
|
+
});
|
|
35
|
+
const now = ack.createdAt ?? '';
|
|
36
|
+
return {
|
|
37
|
+
id: ack.id,
|
|
38
|
+
vaultId: req.vaultId ?? '',
|
|
39
|
+
title: ack.title ?? req.title,
|
|
40
|
+
type: req.type ?? 'Note',
|
|
41
|
+
tags: req.tags ?? [],
|
|
42
|
+
createdAt: now,
|
|
43
|
+
updatedAt: now,
|
|
44
|
+
enrichmentStatus: ack.aiStatus ?? undefined,
|
|
45
|
+
content: req.content,
|
|
46
|
+
version: 0,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
get(id) {
|
|
50
|
+
return this.core.request({
|
|
51
|
+
method: 'GET',
|
|
52
|
+
path: `/api/v1/knowledge/${encodeURIComponent(id)}`,
|
|
53
|
+
schema: KnowledgeDetailSchema,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async update(id, req) {
|
|
57
|
+
// PUT returns a mutation result without vaultId/createdAt/tags — compose a detail.
|
|
58
|
+
const res = await this.core.request({
|
|
59
|
+
method: 'PUT',
|
|
60
|
+
path: `/api/v1/knowledge/${encodeURIComponent(id)}`,
|
|
61
|
+
body: req,
|
|
62
|
+
schema: KnowledgeMutationSchema,
|
|
63
|
+
});
|
|
64
|
+
const ts = res.updatedAt ?? '';
|
|
65
|
+
return {
|
|
66
|
+
id: res.id ?? id,
|
|
67
|
+
vaultId: req.vaultId ?? '',
|
|
68
|
+
title: res.title ?? req.title ?? '',
|
|
69
|
+
type: res.type ?? 'Note',
|
|
70
|
+
tags: req.tags ?? [],
|
|
71
|
+
createdAt: ts,
|
|
72
|
+
updatedAt: ts,
|
|
73
|
+
content: res.content ?? req.content,
|
|
74
|
+
version: res.version ?? 0,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async remove(id) {
|
|
78
|
+
await this.core.request({
|
|
79
|
+
method: 'DELETE',
|
|
80
|
+
path: `/api/v1/knowledge/${encodeURIComponent(id)}`,
|
|
81
|
+
schema: z.unknown(),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
status(id) {
|
|
85
|
+
return this.core.request({
|
|
86
|
+
method: 'GET',
|
|
87
|
+
path: `/api/v1/knowledge/${encodeURIComponent(id)}/status`,
|
|
88
|
+
schema: KnowledgeStatusSchema,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=knowledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/resources/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Paged } from '@knowzai/types';
|
|
2
|
+
type PageLike<T> = T[] | {
|
|
3
|
+
items: T[];
|
|
4
|
+
page?: number;
|
|
5
|
+
pageSize?: number;
|
|
6
|
+
total?: number;
|
|
7
|
+
};
|
|
8
|
+
/** Normalize an array-or-page-object response into a `Paged<T>`. */
|
|
9
|
+
export declare function toPaged<T>(data: PageLike<T>, q?: {
|
|
10
|
+
page?: number;
|
|
11
|
+
pageSize?: number;
|
|
12
|
+
}): Paged<T>;
|
|
13
|
+
export declare function toArray<T>(data: PageLike<T>): T[];
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=paging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paging.d.ts","sourceRoot":"","sources":["../../src/resources/paging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F,oEAAoE;AACpE,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAUpG;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAEjD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Normalize an array-or-page-object response into a `Paged<T>`. */
|
|
2
|
+
export function toPaged(data, q = {}) {
|
|
3
|
+
if (Array.isArray(data)) {
|
|
4
|
+
return { items: data, page: q.page ?? 1, pageSize: q.pageSize ?? data.length, total: data.length };
|
|
5
|
+
}
|
|
6
|
+
return {
|
|
7
|
+
items: data.items,
|
|
8
|
+
page: data.page ?? q.page ?? 1,
|
|
9
|
+
pageSize: data.pageSize ?? q.pageSize ?? data.items.length,
|
|
10
|
+
total: data.total ?? data.items.length,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function toArray(data) {
|
|
14
|
+
return Array.isArray(data) ? data : data.items;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=paging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paging.js","sourceRoot":"","sources":["../../src/resources/paging.ts"],"names":[],"mappings":"AAIA,oEAAoE;AACpE,MAAM,UAAU,OAAO,CAAI,IAAiB,EAAE,IAA0C,EAAE;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrG,CAAC;IACD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;QAC1D,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,IAAiB;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Optional string that tolerates `null` from the API and normalizes it to `undefined`. */
|
|
3
|
+
export declare const optStr: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
4
|
+
/** Tags arrive as a string[] from some endpoints and a (possibly empty) comma string from others. */
|
|
5
|
+
export declare const tagsSchema: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], unknown>>;
|
|
6
|
+
export declare const RegisterResultSchema: z.ZodObject<{
|
|
7
|
+
tenantId: z.ZodString;
|
|
8
|
+
apiKey: z.ZodString;
|
|
9
|
+
userApiKey: z.ZodString;
|
|
10
|
+
createdAt: z.ZodString;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
tenantId: string;
|
|
13
|
+
apiKey: string;
|
|
14
|
+
userApiKey: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
}, {
|
|
17
|
+
tenantId: string;
|
|
18
|
+
apiKey: string;
|
|
19
|
+
userApiKey: string;
|
|
20
|
+
createdAt: string;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const VerifyResultSchema: z.ZodEffects<z.ZodObject<{
|
|
23
|
+
isValid: z.ZodBoolean;
|
|
24
|
+
status: z.ZodOptional<z.ZodString>;
|
|
25
|
+
tenant: z.ZodOptional<z.ZodObject<{
|
|
26
|
+
id: z.ZodString;
|
|
27
|
+
name: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
id: string;
|
|
30
|
+
name?: string | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
id: string;
|
|
33
|
+
name?: string | undefined;
|
|
34
|
+
}>>;
|
|
35
|
+
user: z.ZodOptional<z.ZodObject<{
|
|
36
|
+
id: z.ZodString;
|
|
37
|
+
email: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
id: string;
|
|
40
|
+
email?: string | undefined;
|
|
41
|
+
}, {
|
|
42
|
+
id: string;
|
|
43
|
+
email?: string | undefined;
|
|
44
|
+
}>>;
|
|
45
|
+
}, "strip", z.ZodTypeAny, {
|
|
46
|
+
isValid: boolean;
|
|
47
|
+
status?: string | undefined;
|
|
48
|
+
tenant?: {
|
|
49
|
+
id: string;
|
|
50
|
+
name?: string | undefined;
|
|
51
|
+
} | undefined;
|
|
52
|
+
user?: {
|
|
53
|
+
id: string;
|
|
54
|
+
email?: string | undefined;
|
|
55
|
+
} | undefined;
|
|
56
|
+
}, {
|
|
57
|
+
isValid: boolean;
|
|
58
|
+
status?: string | undefined;
|
|
59
|
+
tenant?: {
|
|
60
|
+
id: string;
|
|
61
|
+
name?: string | undefined;
|
|
62
|
+
} | undefined;
|
|
63
|
+
user?: {
|
|
64
|
+
id: string;
|
|
65
|
+
email?: string | undefined;
|
|
66
|
+
} | undefined;
|
|
67
|
+
}>, {
|
|
68
|
+
isValid: boolean;
|
|
69
|
+
status?: string | undefined;
|
|
70
|
+
tenant?: {
|
|
71
|
+
id: string;
|
|
72
|
+
name?: string | undefined;
|
|
73
|
+
} | undefined;
|
|
74
|
+
user?: {
|
|
75
|
+
id: string;
|
|
76
|
+
email?: string | undefined;
|
|
77
|
+
} | undefined;
|
|
78
|
+
}, unknown>;
|
|
79
|
+
export declare const KnowledgeSummarySchema: z.ZodObject<{
|
|
80
|
+
id: z.ZodString;
|
|
81
|
+
vaultId: z.ZodString;
|
|
82
|
+
title: z.ZodString;
|
|
83
|
+
type: z.ZodString;
|
|
84
|
+
tags: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], unknown>>;
|
|
85
|
+
createdAt: z.ZodString;
|
|
86
|
+
updatedAt: z.ZodString;
|
|
87
|
+
enrichmentStatus: z.ZodOptional<z.ZodString>;
|
|
88
|
+
}, "strip", z.ZodTypeAny, {
|
|
89
|
+
type: string;
|
|
90
|
+
createdAt: string;
|
|
91
|
+
id: string;
|
|
92
|
+
vaultId: string;
|
|
93
|
+
title: string;
|
|
94
|
+
tags: string[];
|
|
95
|
+
updatedAt: string;
|
|
96
|
+
enrichmentStatus?: string | undefined;
|
|
97
|
+
}, {
|
|
98
|
+
type: string;
|
|
99
|
+
createdAt: string;
|
|
100
|
+
id: string;
|
|
101
|
+
vaultId: string;
|
|
102
|
+
title: string;
|
|
103
|
+
updatedAt: string;
|
|
104
|
+
tags?: unknown;
|
|
105
|
+
enrichmentStatus?: string | undefined;
|
|
106
|
+
}>;
|
|
107
|
+
export declare const KnowledgeDetailSchema: z.ZodObject<{
|
|
108
|
+
id: z.ZodString;
|
|
109
|
+
vaultId: z.ZodString;
|
|
110
|
+
title: z.ZodString;
|
|
111
|
+
type: z.ZodString;
|
|
112
|
+
tags: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], unknown>>;
|
|
113
|
+
createdAt: z.ZodString;
|
|
114
|
+
updatedAt: z.ZodString;
|
|
115
|
+
enrichmentStatus: z.ZodOptional<z.ZodString>;
|
|
116
|
+
} & {
|
|
117
|
+
content: z.ZodOptional<z.ZodString>;
|
|
118
|
+
aiSummary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
119
|
+
summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
120
|
+
filePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
121
|
+
version: z.ZodDefault<z.ZodNumber>;
|
|
122
|
+
}, "strip", z.ZodTypeAny, {
|
|
123
|
+
type: string;
|
|
124
|
+
createdAt: string;
|
|
125
|
+
id: string;
|
|
126
|
+
vaultId: string;
|
|
127
|
+
title: string;
|
|
128
|
+
tags: string[];
|
|
129
|
+
updatedAt: string;
|
|
130
|
+
version: number;
|
|
131
|
+
enrichmentStatus?: string | undefined;
|
|
132
|
+
content?: string | undefined;
|
|
133
|
+
aiSummary?: string | null | undefined;
|
|
134
|
+
summary?: string | null | undefined;
|
|
135
|
+
filePath?: string | null | undefined;
|
|
136
|
+
}, {
|
|
137
|
+
type: string;
|
|
138
|
+
createdAt: string;
|
|
139
|
+
id: string;
|
|
140
|
+
vaultId: string;
|
|
141
|
+
title: string;
|
|
142
|
+
updatedAt: string;
|
|
143
|
+
tags?: unknown;
|
|
144
|
+
enrichmentStatus?: string | undefined;
|
|
145
|
+
content?: string | undefined;
|
|
146
|
+
aiSummary?: string | null | undefined;
|
|
147
|
+
summary?: string | null | undefined;
|
|
148
|
+
filePath?: string | null | undefined;
|
|
149
|
+
version?: number | undefined;
|
|
150
|
+
}>;
|
|
151
|
+
export declare const KnowledgeStatusSchema: z.ZodEffects<z.ZodObject<{
|
|
152
|
+
id: z.ZodString;
|
|
153
|
+
enrichmentStatus: z.ZodString;
|
|
154
|
+
chunkCount: z.ZodOptional<z.ZodNumber>;
|
|
155
|
+
characterCount: z.ZodOptional<z.ZodNumber>;
|
|
156
|
+
error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
157
|
+
}, "strip", z.ZodTypeAny, {
|
|
158
|
+
id: string;
|
|
159
|
+
enrichmentStatus: string;
|
|
160
|
+
error?: string | null | undefined;
|
|
161
|
+
chunkCount?: number | undefined;
|
|
162
|
+
characterCount?: number | undefined;
|
|
163
|
+
}, {
|
|
164
|
+
id: string;
|
|
165
|
+
enrichmentStatus: string;
|
|
166
|
+
error?: string | null | undefined;
|
|
167
|
+
chunkCount?: number | undefined;
|
|
168
|
+
characterCount?: number | undefined;
|
|
169
|
+
}>, {
|
|
170
|
+
id: string;
|
|
171
|
+
enrichmentStatus: string;
|
|
172
|
+
error?: string | null | undefined;
|
|
173
|
+
chunkCount?: number | undefined;
|
|
174
|
+
characterCount?: number | undefined;
|
|
175
|
+
}, unknown>;
|
|
176
|
+
export declare const KnowledgeCreatedSchema: z.ZodObject<{
|
|
177
|
+
id: z.ZodString;
|
|
178
|
+
title: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
179
|
+
createdAt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
180
|
+
aiStatus: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
181
|
+
aiProcessingQueued: z.ZodOptional<z.ZodBoolean>;
|
|
182
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
183
|
+
id: z.ZodString;
|
|
184
|
+
title: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
185
|
+
createdAt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
186
|
+
aiStatus: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
187
|
+
aiProcessingQueued: z.ZodOptional<z.ZodBoolean>;
|
|
188
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
189
|
+
id: z.ZodString;
|
|
190
|
+
title: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
191
|
+
createdAt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
192
|
+
aiStatus: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
193
|
+
aiProcessingQueued: z.ZodOptional<z.ZodBoolean>;
|
|
194
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
195
|
+
export declare const KnowledgeMutationSchema: z.ZodObject<{
|
|
196
|
+
id: z.ZodString;
|
|
197
|
+
title: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
198
|
+
content: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
199
|
+
type: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
200
|
+
updatedAt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
201
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
202
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
203
|
+
id: z.ZodString;
|
|
204
|
+
title: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
205
|
+
content: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
206
|
+
type: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
207
|
+
updatedAt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
208
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
209
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
210
|
+
id: z.ZodString;
|
|
211
|
+
title: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
212
|
+
content: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
213
|
+
type: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
214
|
+
updatedAt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
215
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
216
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
217
|
+
export declare const VaultSummarySchema: z.ZodObject<{
|
|
218
|
+
id: z.ZodString;
|
|
219
|
+
name: z.ZodString;
|
|
220
|
+
description: z.ZodOptional<z.ZodString>;
|
|
221
|
+
vaultType: z.ZodOptional<z.ZodString>;
|
|
222
|
+
parentVaultId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
223
|
+
itemCount: z.ZodOptional<z.ZodNumber>;
|
|
224
|
+
}, "strip", z.ZodTypeAny, {
|
|
225
|
+
id: string;
|
|
226
|
+
name: string;
|
|
227
|
+
description?: string | undefined;
|
|
228
|
+
vaultType?: string | undefined;
|
|
229
|
+
parentVaultId?: string | null | undefined;
|
|
230
|
+
itemCount?: number | undefined;
|
|
231
|
+
}, {
|
|
232
|
+
id: string;
|
|
233
|
+
name: string;
|
|
234
|
+
description?: string | undefined;
|
|
235
|
+
vaultType?: string | undefined;
|
|
236
|
+
parentVaultId?: string | null | undefined;
|
|
237
|
+
itemCount?: number | undefined;
|
|
238
|
+
}>;
|
|
239
|
+
export declare const SearchResultSchema: z.ZodEffects<z.ZodObject<{
|
|
240
|
+
knowledgeId: z.ZodString;
|
|
241
|
+
title: z.ZodString;
|
|
242
|
+
snippet: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
243
|
+
relevance: z.ZodNumber;
|
|
244
|
+
vaultId: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
|
|
245
|
+
}, "strip", z.ZodTypeAny, {
|
|
246
|
+
title: string;
|
|
247
|
+
knowledgeId: string;
|
|
248
|
+
relevance: number;
|
|
249
|
+
vaultId?: string | undefined;
|
|
250
|
+
snippet?: string | undefined;
|
|
251
|
+
}, {
|
|
252
|
+
title: string;
|
|
253
|
+
knowledgeId: string;
|
|
254
|
+
relevance: number;
|
|
255
|
+
vaultId?: string | null | undefined;
|
|
256
|
+
snippet?: string | null | undefined;
|
|
257
|
+
}>, {
|
|
258
|
+
title: string;
|
|
259
|
+
knowledgeId: string;
|
|
260
|
+
relevance: number;
|
|
261
|
+
vaultId?: string | undefined;
|
|
262
|
+
snippet?: string | undefined;
|
|
263
|
+
}, unknown>;
|
|
264
|
+
export declare const AskResultSchema: z.ZodEffects<z.ZodObject<{
|
|
265
|
+
answer: z.ZodString;
|
|
266
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
267
|
+
knowledgeId: z.ZodOptional<z.ZodString>;
|
|
268
|
+
title: z.ZodString;
|
|
269
|
+
relevance: z.ZodNumber;
|
|
270
|
+
}, "strip", z.ZodTypeAny, {
|
|
271
|
+
title: string;
|
|
272
|
+
relevance: number;
|
|
273
|
+
knowledgeId?: string | undefined;
|
|
274
|
+
}, {
|
|
275
|
+
title: string;
|
|
276
|
+
relevance: number;
|
|
277
|
+
knowledgeId?: string | undefined;
|
|
278
|
+
}>, "many">>;
|
|
279
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
280
|
+
}, "strip", z.ZodTypeAny, {
|
|
281
|
+
sources: {
|
|
282
|
+
title: string;
|
|
283
|
+
relevance: number;
|
|
284
|
+
knowledgeId?: string | undefined;
|
|
285
|
+
}[];
|
|
286
|
+
answer: string;
|
|
287
|
+
confidence?: number | undefined;
|
|
288
|
+
}, {
|
|
289
|
+
answer: string;
|
|
290
|
+
sources?: {
|
|
291
|
+
title: string;
|
|
292
|
+
relevance: number;
|
|
293
|
+
knowledgeId?: string | undefined;
|
|
294
|
+
}[] | undefined;
|
|
295
|
+
confidence?: number | undefined;
|
|
296
|
+
}>, {
|
|
297
|
+
sources: {
|
|
298
|
+
title: string;
|
|
299
|
+
relevance: number;
|
|
300
|
+
knowledgeId?: string | undefined;
|
|
301
|
+
}[];
|
|
302
|
+
answer: string;
|
|
303
|
+
confidence?: number | undefined;
|
|
304
|
+
}, unknown>;
|
|
305
|
+
/** Accepts either a bare array or a `{items,page,pageSize,total}` page object. */
|
|
306
|
+
export declare const pagedSchema: <T>(item: z.ZodType<T>) => z.ZodUnion<[z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">, z.ZodObject<{
|
|
307
|
+
items: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
|
|
308
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
309
|
+
pageSize: z.ZodOptional<z.ZodNumber>;
|
|
310
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
311
|
+
}, "strip", z.ZodTypeAny, {
|
|
312
|
+
items: T[];
|
|
313
|
+
page?: number | undefined;
|
|
314
|
+
pageSize?: number | undefined;
|
|
315
|
+
total?: number | undefined;
|
|
316
|
+
}, {
|
|
317
|
+
items: T[];
|
|
318
|
+
page?: number | undefined;
|
|
319
|
+
pageSize?: number | undefined;
|
|
320
|
+
total?: number | undefined;
|
|
321
|
+
}>]>;
|
|
322
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/resources/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2FAA2F;AAC3F,eAAO,MAAM,MAAM,wGAAwD,CAAC;AAE5E,qGAAqG;AACrG,eAAO,MAAM,UAAU,gFAOT,CAAC;AAEf,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAMH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAqB9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAIH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;WAgBjC,CAAC;AAGF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;gCAQnB,CAAC;AAGjB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;gCASpB,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAKH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;WAoB9B,CAAC;AAUF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6B3B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;IAS7C,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Optional string that tolerates `null` from the API and normalizes it to `undefined`. */
|
|
3
|
+
export const optStr = z.string().nullish().transform((v) => v ?? undefined);
|
|
4
|
+
/** Tags arrive as a string[] from some endpoints and a (possibly empty) comma string from others. */
|
|
5
|
+
export const tagsSchema = z
|
|
6
|
+
.preprocess((v) => {
|
|
7
|
+
if (Array.isArray(v))
|
|
8
|
+
return v;
|
|
9
|
+
if (typeof v === 'string')
|
|
10
|
+
return v.length ? v.split(',').map((s) => s.trim()).filter(Boolean) : [];
|
|
11
|
+
return v;
|
|
12
|
+
}, z.array(z.string()))
|
|
13
|
+
.default([]);
|
|
14
|
+
export const RegisterResultSchema = z.object({
|
|
15
|
+
tenantId: z.string(),
|
|
16
|
+
apiKey: z.string(),
|
|
17
|
+
userApiKey: z.string(),
|
|
18
|
+
createdAt: z.string(),
|
|
19
|
+
});
|
|
20
|
+
// The live API returns tenant/user identifiers as `tenantId`/`userId` (not `id`).
|
|
21
|
+
// Normalize to `id` (via preprocess, so the schema's INPUT stays `unknown` and the
|
|
22
|
+
// OUTPUT matches `VerifyResult`) before validating, so downstream code that reads
|
|
23
|
+
// `tenant.id` / `user.id` works regardless of the server's field name.
|
|
24
|
+
export const VerifyResultSchema = z.preprocess((raw) => {
|
|
25
|
+
if (!raw || typeof raw !== 'object')
|
|
26
|
+
return raw;
|
|
27
|
+
const r = raw;
|
|
28
|
+
const norm = (v, altKey) => {
|
|
29
|
+
if (!v || typeof v !== 'object')
|
|
30
|
+
return v;
|
|
31
|
+
const o = v;
|
|
32
|
+
return o.id != null ? o : { ...o, id: o[altKey] };
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
...r,
|
|
36
|
+
tenant: norm(r.tenant, 'tenantId'),
|
|
37
|
+
user: norm(r.user, 'userId'),
|
|
38
|
+
};
|
|
39
|
+
}, z.object({
|
|
40
|
+
isValid: z.boolean(),
|
|
41
|
+
status: z.string().optional(),
|
|
42
|
+
tenant: z.object({ id: z.string(), name: z.string().optional() }).optional(),
|
|
43
|
+
user: z.object({ id: z.string(), email: z.string().optional() }).optional(),
|
|
44
|
+
}));
|
|
45
|
+
export const KnowledgeSummarySchema = z.object({
|
|
46
|
+
id: z.string(),
|
|
47
|
+
vaultId: z.string(),
|
|
48
|
+
title: z.string(),
|
|
49
|
+
type: z.string(),
|
|
50
|
+
tags: tagsSchema,
|
|
51
|
+
createdAt: z.string(),
|
|
52
|
+
updatedAt: z.string(),
|
|
53
|
+
enrichmentStatus: z.string().optional(),
|
|
54
|
+
});
|
|
55
|
+
export const KnowledgeDetailSchema = KnowledgeSummarySchema.extend({
|
|
56
|
+
content: z.string().optional(),
|
|
57
|
+
aiSummary: z.string().nullable().optional(),
|
|
58
|
+
summary: z.string().nullable().optional(),
|
|
59
|
+
filePath: z.string().nullable().optional(),
|
|
60
|
+
version: z.number().default(0),
|
|
61
|
+
});
|
|
62
|
+
// The live status endpoint returns the processing state as `aiStatus` (with
|
|
63
|
+
// `status` as a fallback on some shapes). Normalize to `enrichmentStatus`.
|
|
64
|
+
export const KnowledgeStatusSchema = z.preprocess((raw) => {
|
|
65
|
+
if (!raw || typeof raw !== 'object')
|
|
66
|
+
return raw;
|
|
67
|
+
const o = raw;
|
|
68
|
+
return {
|
|
69
|
+
...o,
|
|
70
|
+
enrichmentStatus: o.enrichmentStatus ?? o.aiStatus ?? o.status ?? 'unknown',
|
|
71
|
+
};
|
|
72
|
+
}, z.object({
|
|
73
|
+
id: z.string(),
|
|
74
|
+
enrichmentStatus: z.string(),
|
|
75
|
+
chunkCount: z.number().optional(),
|
|
76
|
+
characterCount: z.number().optional(),
|
|
77
|
+
error: z.string().nullable().optional(),
|
|
78
|
+
}));
|
|
79
|
+
// POST /api/v1/knowledge returns a minimal creation ack, not a full detail.
|
|
80
|
+
export const KnowledgeCreatedSchema = z
|
|
81
|
+
.object({
|
|
82
|
+
id: z.string(),
|
|
83
|
+
title: optStr,
|
|
84
|
+
createdAt: optStr,
|
|
85
|
+
aiStatus: optStr,
|
|
86
|
+
aiProcessingQueued: z.boolean().optional(),
|
|
87
|
+
})
|
|
88
|
+
.passthrough();
|
|
89
|
+
// PUT /api/v1/knowledge/{id} returns a mutation result (no vaultId/createdAt/tags).
|
|
90
|
+
export const KnowledgeMutationSchema = z
|
|
91
|
+
.object({
|
|
92
|
+
id: z.string(),
|
|
93
|
+
title: optStr,
|
|
94
|
+
content: optStr,
|
|
95
|
+
type: optStr,
|
|
96
|
+
updatedAt: optStr,
|
|
97
|
+
version: z.number().optional(),
|
|
98
|
+
})
|
|
99
|
+
.passthrough();
|
|
100
|
+
export const VaultSummarySchema = z.object({
|
|
101
|
+
id: z.string(),
|
|
102
|
+
name: z.string(),
|
|
103
|
+
description: z.string().optional(),
|
|
104
|
+
vaultType: z.string().optional(),
|
|
105
|
+
parentVaultId: z.string().nullable().optional(),
|
|
106
|
+
itemCount: z.number().optional(),
|
|
107
|
+
});
|
|
108
|
+
// The live search endpoint returns knowledge DTOs ({id,title,summary,vaultId,...}),
|
|
109
|
+
// not a purpose-built search-result shape. Map id→knowledgeId, summary→snippet,
|
|
110
|
+
// and default relevance (the keyword/repo search has no score) to 0.
|
|
111
|
+
export const SearchResultSchema = z.preprocess((raw) => {
|
|
112
|
+
if (!raw || typeof raw !== 'object')
|
|
113
|
+
return raw;
|
|
114
|
+
const o = raw;
|
|
115
|
+
const num = (v) => (typeof v === 'number' ? v : undefined);
|
|
116
|
+
return {
|
|
117
|
+
knowledgeId: o.knowledgeId ?? o.id,
|
|
118
|
+
title: o.title,
|
|
119
|
+
snippet: o.snippet ?? o.summary ?? o.aiSummary ?? undefined,
|
|
120
|
+
relevance: num(o.relevance) ?? num(o.score) ?? 0,
|
|
121
|
+
vaultId: o.vaultId,
|
|
122
|
+
};
|
|
123
|
+
}, z.object({
|
|
124
|
+
knowledgeId: z.string(),
|
|
125
|
+
title: z.string(),
|
|
126
|
+
snippet: optStr,
|
|
127
|
+
relevance: z.number(),
|
|
128
|
+
vaultId: optStr,
|
|
129
|
+
}));
|
|
130
|
+
// All-zeros GUID the backend serializes for an unset `Guid` (System.Guid.Empty).
|
|
131
|
+
const ZERO_GUID = '00000000-0000-0000-0000-000000000000';
|
|
132
|
+
// The live /knowledge/query response returns sources as {id,title,relevanceScore,…};
|
|
133
|
+
// map relevanceScore→relevance and id→knowledgeId. The Quick-Answer path builds
|
|
134
|
+
// SourceReference without assigning Id, so the wire value is the all-zeros GUID —
|
|
135
|
+
// treat that (and any missing id) as "no id" and OMIT knowledgeId instead of
|
|
136
|
+
// surfacing a placeholder. `relevance` IS a real backend field and is kept as-is.
|
|
137
|
+
export const AskResultSchema = z.preprocess((raw) => {
|
|
138
|
+
if (!raw || typeof raw !== 'object')
|
|
139
|
+
return raw;
|
|
140
|
+
const o = raw;
|
|
141
|
+
const num = (v) => (typeof v === 'number' ? v : undefined);
|
|
142
|
+
const realId = (v) => typeof v === 'string' && v.length > 0 && v !== ZERO_GUID ? v : undefined;
|
|
143
|
+
const sources = Array.isArray(o.sources)
|
|
144
|
+
? o.sources.map((s) => {
|
|
145
|
+
const r = (s ?? {});
|
|
146
|
+
const knowledgeId = realId(r.knowledgeId) ?? realId(r.id);
|
|
147
|
+
return {
|
|
148
|
+
...(knowledgeId ? { knowledgeId } : {}),
|
|
149
|
+
title: r.title ?? '',
|
|
150
|
+
relevance: num(r.relevance) ?? num(r.relevanceScore) ?? 0,
|
|
151
|
+
};
|
|
152
|
+
})
|
|
153
|
+
: o.sources;
|
|
154
|
+
return { ...o, sources };
|
|
155
|
+
}, z.object({
|
|
156
|
+
answer: z.string(),
|
|
157
|
+
sources: z
|
|
158
|
+
.array(z.object({ knowledgeId: z.string().optional(), title: z.string(), relevance: z.number() }))
|
|
159
|
+
.default([]),
|
|
160
|
+
confidence: z.number().optional(),
|
|
161
|
+
}));
|
|
162
|
+
/** Accepts either a bare array or a `{items,page,pageSize,total}` page object. */
|
|
163
|
+
export const pagedSchema = (item) => z.union([
|
|
164
|
+
z.array(item),
|
|
165
|
+
z.object({
|
|
166
|
+
items: z.array(item),
|
|
167
|
+
page: z.number().optional(),
|
|
168
|
+
pageSize: z.number().optional(),
|
|
169
|
+
total: z.number().optional(),
|
|
170
|
+
}),
|
|
171
|
+
]);
|
|
172
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/resources/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CoreClient } from '../contracts.js';
|
|
2
|
+
import type { SearchResult } from '@knowzai/types';
|
|
3
|
+
export interface SearchQuery {
|
|
4
|
+
q: string;
|
|
5
|
+
limit?: number;
|
|
6
|
+
vaultId?: string;
|
|
7
|
+
includeChildren?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class SearchApi {
|
|
10
|
+
private readonly core;
|
|
11
|
+
constructor(core: CoreClient);
|
|
12
|
+
search(query: SearchQuery): Promise<SearchResult[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/resources/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEvC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAY1D"}
|