ugly-app 0.1.619 → 0.1.620
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/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/search/server/WebRetriever.d.ts +7 -0
- package/dist/search/server/WebRetriever.d.ts.map +1 -1
- package/dist/search/server/WebRetriever.js +2 -2
- package/dist/search/server/WebRetriever.js.map +1 -1
- package/dist/server/ai/providers/UglyBotWebSearchProvider.d.ts.map +1 -1
- package/dist/server/ai/providers/UglyBotWebSearchProvider.js +11 -8
- package/dist/server/ai/providers/UglyBotWebSearchProvider.js.map +1 -1
- package/dist/server/ai/types.d.ts +7 -0
- package/dist/server/ai/types.d.ts.map +1 -1
- package/dist/server/ai/types.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/search/server/WebRetriever.ts +9 -4
- package/src/server/ai/providers/UglyBotWebSearchProvider.ts +13 -2
- package/src/server/ai/types.ts +7 -0
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.620";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -6,6 +6,7 @@ export interface WebSearchLike {
|
|
|
6
6
|
limit?: number;
|
|
7
7
|
}, options?: {
|
|
8
8
|
userId?: string;
|
|
9
|
+
token?: string;
|
|
9
10
|
}): Promise<{
|
|
10
11
|
items: {
|
|
11
12
|
url: string;
|
|
@@ -18,6 +19,7 @@ export interface WebSearchLike {
|
|
|
18
19
|
text?: string;
|
|
19
20
|
}, options?: {
|
|
20
21
|
userId?: string;
|
|
22
|
+
token?: string;
|
|
21
23
|
}): Promise<{
|
|
22
24
|
output: string;
|
|
23
25
|
}>;
|
|
@@ -25,6 +27,11 @@ export interface WebSearchLike {
|
|
|
25
27
|
export interface WebRetrieverOptions {
|
|
26
28
|
/** Bill the search proxy to this user (charge context). */
|
|
27
29
|
userId?: string;
|
|
30
|
+
/**
|
|
31
|
+
* The end user's ugly.bot session JWT. When set, the search proxy bills the
|
|
32
|
+
* USER (not the app owner). Omit for the default owner-billed behavior.
|
|
33
|
+
*/
|
|
34
|
+
userToken?: string;
|
|
28
35
|
/** Default result count. */
|
|
29
36
|
limit?: number;
|
|
30
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebRetriever.d.ts","sourceRoot":"","sources":["../../../src/search/server/WebRetriever.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1F,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,MAAM,CACJ,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EACzC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,
|
|
1
|
+
{"version":3,"file":"WebRetriever.d.ts","sourceRoot":"","sources":["../../../src/search/server/WebRetriever.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1F,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,MAAM,CACJ,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EACzC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC;QAAE,KAAK,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IACzE,SAAS,CAAC,CACR,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACvC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,qBAAa,YAAa,YAAW,SAAS;IAI1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,QAAQ,CAAC,IAAI,SAAS;gBAGH,QAAQ,GAAE,aAAwC,EAClD,IAAI,GAAE,mBAAwB;IAG3C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBxE,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;CAcrD"}
|
|
@@ -22,7 +22,7 @@ export class WebRetriever {
|
|
|
22
22
|
}
|
|
23
23
|
async retrieve(query, o) {
|
|
24
24
|
const limit = o?.limit ?? this.opts.limit ?? 8;
|
|
25
|
-
const { items } = await this.provider.search({ query, limit }, { userId: this.opts.userId });
|
|
25
|
+
const { items } = await this.provider.search({ query, limit }, { userId: this.opts.userId, token: this.opts.userToken });
|
|
26
26
|
const n = Math.max(items.length, 1);
|
|
27
27
|
return items.map((it, i) => ({
|
|
28
28
|
id: it.url,
|
|
@@ -41,7 +41,7 @@ export class WebRetriever {
|
|
|
41
41
|
async read(result) {
|
|
42
42
|
if (this.provider.summarize && result.source.url) {
|
|
43
43
|
try {
|
|
44
|
-
const { output } = await this.provider.summarize({ url: result.source.url }, { userId: this.opts.userId });
|
|
44
|
+
const { output } = await this.provider.summarize({ url: result.source.url }, { userId: this.opts.userId, token: this.opts.userToken });
|
|
45
45
|
if (output)
|
|
46
46
|
return output;
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebRetriever.js","sourceRoot":"","sources":["../../../src/search/server/WebRetriever.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,yDAAyD;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"WebRetriever.js","sourceRoot":"","sources":["../../../src/search/server/WebRetriever.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,yDAAyD;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AA2BjG,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,OAAO,YAAY;IAIJ;IACA;IAJV,IAAI,GAAG,KAAK,CAAC;IAEtB,YACmB,WAA0B,wBAAwB,EAClD,OAA4B,EAAE;QAD9B,aAAQ,GAAR,QAAQ,CAA0C;QAClD,SAAI,GAAJ,IAAI,CAA0B;IAC9C,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,CAAmB;QAC/C,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC1C,EAAE,KAAK,EAAE,KAAK,EAAE,EAChB,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CACzD,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,EAAE,CAAC,GAAG;YACV,IAAI,EAAE,EAAE,CAAC,OAAO;YAChB,yEAAyE;YACzE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK;gBACX,GAAG,EAAE,EAAE,CAAC,GAAG;gBACX,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;aAC3B;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuB;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAC9C,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAC1B,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CACzD,CAAC;gBACF,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UglyBotWebSearchProvider.d.ts","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"UglyBotWebSearchProvider.d.ts","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAgEvE,eAAO,MAAM,wBAAwB,EAAE,iBAyDtC,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
const DEFAULT_SEARCH_PROXY_URL = 'https://api.ugly.bot/v1/search';
|
|
2
|
-
function resolveSearchEndpoint(op) {
|
|
2
|
+
function resolveSearchEndpoint(op, userToken) {
|
|
3
3
|
const base = process.env['SEARCH_PROXY_URL'] ?? DEFAULT_SEARCH_PROXY_URL;
|
|
4
|
-
|
|
4
|
+
// A user session JWT (when supplied) bills the user via resolveChargePayer;
|
|
5
|
+
// otherwise fall back to the app's owner-billed proxy token.
|
|
6
|
+
const token = userToken ??
|
|
7
|
+
process.env['SEARCH_PROXY_TOKEN'] ??
|
|
5
8
|
process.env['UGLY_BOT_TOKEN'] ??
|
|
6
9
|
'';
|
|
7
10
|
if (!token) {
|
|
@@ -11,8 +14,8 @@ function resolveSearchEndpoint(op) {
|
|
|
11
14
|
}
|
|
12
15
|
return { url: `${base}/${op}`, token };
|
|
13
16
|
}
|
|
14
|
-
async function searchProxyRequest(op, body) {
|
|
15
|
-
const { url, token } = resolveSearchEndpoint(op);
|
|
17
|
+
async function searchProxyRequest(op, body, userToken) {
|
|
18
|
+
const { url, token } = resolveSearchEndpoint(op, userToken);
|
|
16
19
|
const controller = new AbortController();
|
|
17
20
|
const timer = setTimeout(() => controller.abort(), 30_000);
|
|
18
21
|
try {
|
|
@@ -44,20 +47,20 @@ export const uglyBotWebSearchProvider = {
|
|
|
44
47
|
name: 'uglybot',
|
|
45
48
|
apiKeyEnv: 'SEARCH_PROXY_TOKEN',
|
|
46
49
|
async search(params, options) {
|
|
47
|
-
return searchProxyRequest('kagi', withChargeContext({ query: params.query, limit: params.limit }, options?.userId));
|
|
50
|
+
return searchProxyRequest('kagi', withChargeContext({ query: params.query, limit: params.limit }, options?.userId), options?.token);
|
|
48
51
|
},
|
|
49
52
|
async summarize(params, options) {
|
|
50
|
-
const result = await searchProxyRequest('summarize', withChargeContext({ url: params.url, text: params.text }, options?.userId));
|
|
53
|
+
const result = await searchProxyRequest('summarize', withChargeContext({ url: params.url, text: params.text }, options?.userId), options?.token);
|
|
51
54
|
return {
|
|
52
55
|
output: result.summary,
|
|
53
56
|
tokens: Math.ceil(result.summary.length / 4),
|
|
54
57
|
};
|
|
55
58
|
},
|
|
56
59
|
async enrichWeb(params, options) {
|
|
57
|
-
return searchProxyRequest('enrich-web', withChargeContext({ query: params.query }, options?.userId));
|
|
60
|
+
return searchProxyRequest('enrich-web', withChargeContext({ query: params.query }, options?.userId), options?.token);
|
|
58
61
|
},
|
|
59
62
|
async enrichNews(params, options) {
|
|
60
|
-
return searchProxyRequest('enrich-news', withChargeContext({ query: params.query }, options?.userId));
|
|
63
|
+
return searchProxyRequest('enrich-news', withChargeContext({ query: params.query }, options?.userId), options?.token);
|
|
61
64
|
},
|
|
62
65
|
};
|
|
63
66
|
//# sourceMappingURL=UglyBotWebSearchProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UglyBotWebSearchProvider.js","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.ts"],"names":[],"mappings":"AAuBA,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AAElE,SAAS,qBAAqB,
|
|
1
|
+
{"version":3,"file":"UglyBotWebSearchProvider.js","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -179,6 +179,13 @@ export interface ImageGenProvider {
|
|
|
179
179
|
}
|
|
180
180
|
export interface WebSearchOptions {
|
|
181
181
|
userId?: string;
|
|
182
|
+
/**
|
|
183
|
+
* The end user's ugly.bot session JWT. When set, the search proxy is called
|
|
184
|
+
* with THIS token instead of the app's `SEARCH_PROXY_TOKEN`, so ugly.bot bills
|
|
185
|
+
* the user (via `resolveChargePayer`) instead of the app owner. Omit to keep
|
|
186
|
+
* the default owner-billed behavior.
|
|
187
|
+
*/
|
|
188
|
+
token?: string;
|
|
182
189
|
}
|
|
183
190
|
export interface WebSearchProvider {
|
|
184
191
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"AAkPA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEzB;IACA;IAFlB,YACkB,SAAkB,EAClB,WAAmB;QAEnC,KAAK,CAAC,wDAAwD,SAAS,EAAE,CAAC,CAAC;QAH3D,cAAS,GAAT,SAAS,CAAS;QAClB,gBAAW,GAAX,WAAW,CAAQ;QAGnC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugly-app",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.620",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
|
|
6
6
|
"files": [
|
package/src/cli/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated by prebuild — do not edit manually
|
|
2
|
-
export const CLI_VERSION = "0.1.
|
|
2
|
+
export const CLI_VERSION = "0.1.620";
|
|
@@ -11,17 +11,22 @@ import type { Retriever, RetrievalResult, RetrieveOptions } from '../shared/Retr
|
|
|
11
11
|
export interface WebSearchLike {
|
|
12
12
|
search(
|
|
13
13
|
params: { query: string; limit?: number },
|
|
14
|
-
options?: { userId?: string },
|
|
14
|
+
options?: { userId?: string; token?: string },
|
|
15
15
|
): Promise<{ items: { url: string; title: string; snippet: string }[] }>;
|
|
16
16
|
summarize?(
|
|
17
17
|
params: { url?: string; text?: string },
|
|
18
|
-
options?: { userId?: string },
|
|
18
|
+
options?: { userId?: string; token?: string },
|
|
19
19
|
): Promise<{ output: string }>;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export interface WebRetrieverOptions {
|
|
23
23
|
/** Bill the search proxy to this user (charge context). */
|
|
24
24
|
userId?: string;
|
|
25
|
+
/**
|
|
26
|
+
* The end user's ugly.bot session JWT. When set, the search proxy bills the
|
|
27
|
+
* USER (not the app owner). Omit for the default owner-billed behavior.
|
|
28
|
+
*/
|
|
29
|
+
userToken?: string;
|
|
25
30
|
/** Default result count. */
|
|
26
31
|
limit?: number;
|
|
27
32
|
}
|
|
@@ -46,7 +51,7 @@ export class WebRetriever implements Retriever {
|
|
|
46
51
|
const limit = o?.limit ?? this.opts.limit ?? 8;
|
|
47
52
|
const { items } = await this.provider.search(
|
|
48
53
|
{ query, limit },
|
|
49
|
-
{ userId: this.opts.userId },
|
|
54
|
+
{ userId: this.opts.userId, token: this.opts.userToken },
|
|
50
55
|
);
|
|
51
56
|
const n = Math.max(items.length, 1);
|
|
52
57
|
return items.map((it, i) => ({
|
|
@@ -69,7 +74,7 @@ export class WebRetriever implements Retriever {
|
|
|
69
74
|
try {
|
|
70
75
|
const { output } = await this.provider.summarize(
|
|
71
76
|
{ url: result.source.url },
|
|
72
|
-
{ userId: this.opts.userId },
|
|
77
|
+
{ userId: this.opts.userId, token: this.opts.userToken },
|
|
73
78
|
);
|
|
74
79
|
if (output) return output;
|
|
75
80
|
} catch {
|
|
@@ -23,9 +23,15 @@ import type { WebSearchOptions, WebSearchProvider } from '../types.js';
|
|
|
23
23
|
|
|
24
24
|
const DEFAULT_SEARCH_PROXY_URL = 'https://api.ugly.bot/v1/search';
|
|
25
25
|
|
|
26
|
-
function resolveSearchEndpoint(
|
|
26
|
+
function resolveSearchEndpoint(
|
|
27
|
+
op: string,
|
|
28
|
+
userToken?: string,
|
|
29
|
+
): { url: string; token: string } {
|
|
27
30
|
const base = process.env['SEARCH_PROXY_URL'] ?? DEFAULT_SEARCH_PROXY_URL;
|
|
31
|
+
// A user session JWT (when supplied) bills the user via resolveChargePayer;
|
|
32
|
+
// otherwise fall back to the app's owner-billed proxy token.
|
|
28
33
|
const token =
|
|
34
|
+
userToken ??
|
|
29
35
|
process.env['SEARCH_PROXY_TOKEN'] ??
|
|
30
36
|
process.env['UGLY_BOT_TOKEN'] ??
|
|
31
37
|
'';
|
|
@@ -42,8 +48,9 @@ function resolveSearchEndpoint(op: string): { url: string; token: string } {
|
|
|
42
48
|
async function searchProxyRequest<T>(
|
|
43
49
|
op: string,
|
|
44
50
|
body: Record<string, unknown>,
|
|
51
|
+
userToken?: string,
|
|
45
52
|
): Promise<T> {
|
|
46
|
-
const { url, token } = resolveSearchEndpoint(op);
|
|
53
|
+
const { url, token } = resolveSearchEndpoint(op, userToken);
|
|
47
54
|
const controller = new AbortController();
|
|
48
55
|
const timer = setTimeout(() => controller.abort(), 30_000);
|
|
49
56
|
try {
|
|
@@ -90,6 +97,7 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
|
|
|
90
97
|
{ query: params.query, limit: params.limit },
|
|
91
98
|
options?.userId,
|
|
92
99
|
),
|
|
100
|
+
options?.token,
|
|
93
101
|
);
|
|
94
102
|
},
|
|
95
103
|
|
|
@@ -103,6 +111,7 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
|
|
|
103
111
|
{ url: params.url, text: params.text },
|
|
104
112
|
options?.userId,
|
|
105
113
|
),
|
|
114
|
+
options?.token,
|
|
106
115
|
);
|
|
107
116
|
return {
|
|
108
117
|
output: result.summary,
|
|
@@ -117,6 +126,7 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
|
|
|
117
126
|
return searchProxyRequest<WebSearchOutput>(
|
|
118
127
|
'enrich-web',
|
|
119
128
|
withChargeContext({ query: params.query }, options?.userId),
|
|
129
|
+
options?.token,
|
|
120
130
|
);
|
|
121
131
|
},
|
|
122
132
|
|
|
@@ -127,6 +137,7 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
|
|
|
127
137
|
return searchProxyRequest<WebSearchOutput>(
|
|
128
138
|
'enrich-news',
|
|
129
139
|
withChargeContext({ query: params.query }, options?.userId),
|
|
140
|
+
options?.token,
|
|
130
141
|
);
|
|
131
142
|
},
|
|
132
143
|
};
|
package/src/server/ai/types.ts
CHANGED
|
@@ -210,6 +210,13 @@ export interface ImageGenProvider {
|
|
|
210
210
|
|
|
211
211
|
export interface WebSearchOptions {
|
|
212
212
|
userId?: string;
|
|
213
|
+
/**
|
|
214
|
+
* The end user's ugly.bot session JWT. When set, the search proxy is called
|
|
215
|
+
* with THIS token instead of the app's `SEARCH_PROXY_TOKEN`, so ugly.bot bills
|
|
216
|
+
* the user (via `resolveChargePayer`) instead of the app owner. Omit to keep
|
|
217
|
+
* the default owner-billed behavior.
|
|
218
|
+
*/
|
|
219
|
+
token?: string;
|
|
213
220
|
}
|
|
214
221
|
|
|
215
222
|
export interface WebSearchProvider {
|