@bringg/dashboard-sdk 9.82.0-pre.7 → 9.82.0-pre.8
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/Analyst/Analyst.consts.d.ts +3 -39
- package/dist/Analyst/Analyst.consts.js +4 -40
- package/dist/Analyst/Analyst.consts.js.map +1 -1
- package/dist/Analyst/Analyst.d.ts +12 -6
- package/dist/Analyst/Analyst.js +20 -10
- package/dist/Analyst/Analyst.js.map +1 -1
- package/dist/Analyst/AnalystApi.d.ts +7 -0
- package/dist/Analyst/AnalystApi.js +17 -0
- package/dist/Analyst/AnalystApi.js.map +1 -0
- package/dist/Analyst/Chat/AnalystChat.consts.d.ts +40 -0
- package/dist/Analyst/Chat/AnalystChat.consts.js +45 -0
- package/dist/Analyst/Chat/AnalystChat.consts.js.map +1 -0
- package/dist/Analyst/{Entity/AnalystEntity.d.ts → Chat/AnalystChatEntity.d.ts} +2 -2
- package/dist/Analyst/{Entity/AnalystEntity.js → Chat/AnalystChatEntity.js} +14 -14
- package/dist/Analyst/Chat/AnalystChatEntity.js.map +1 -0
- package/dist/Analyst/Findings/AnalystFindingsService.d.ts +10 -0
- package/dist/Analyst/Findings/AnalystFindingsService.js +80 -0
- package/dist/Analyst/Findings/AnalystFindingsService.js.map +1 -0
- package/dist/Analyst/Services/AnalystFindingsService.d.ts +10 -0
- package/dist/Analyst/Services/AnalystFindingsService.js +80 -0
- package/dist/Analyst/Services/AnalystFindingsService.js.map +1 -0
- package/dist/Analyst/constants.d.ts +1 -0
- package/dist/Analyst/constants.js +5 -0
- package/dist/Analyst/constants.js.map +1 -0
- package/dist/BringgDashboardSDK.d.ts +2 -2
- package/dist/BringgDashboardSDK.js +2 -2
- package/dist/BringgDashboardSDK.js.map +1 -1
- package/dist/CapacityPlanningInsights/CapacityInsightsApi.js +3 -1
- package/dist/CapacityPlanningInsights/CapacityInsightsApi.js.map +1 -1
- package/dist/MerchantConfiguration/MerchantConfiguration.consts.js +0 -1
- package/dist/MerchantConfiguration/MerchantConfiguration.consts.js.map +1 -1
- package/dist/bringg-dashboard-sdk-cjs2.js +9023 -8712
- package/dist/bringg-dashboard-sdk-cjs2.js.map +1 -1
- package/dist/bringg-dashboard-sdk.js +135 -47
- package/dist/bringg-dashboard-sdk.min.js +1 -1
- package/dist/bringg-dashboard-sdk.min.js.LICENSE.txt +1 -1
- package/dist/bringg-dashboard-sdk.min.js.map +1 -1
- package/package.json +3 -2
- package/dist/Analyst/Entity/AnalystEntity.js.map +0 -1
|
@@ -8,44 +8,8 @@
|
|
|
8
8
|
* - path: /analyst-service
|
|
9
9
|
* stripPath: true
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
* `/api/
|
|
11
|
+
* Chat routes hang off this prefix (`/analyst-service/api/agent-chat/...`). Findings currently use
|
|
12
|
+
* a different shape (`/api/analyst-service/findings/...`) and keep their own root until those
|
|
13
|
+
* gateway registrations are confirmed to be the same.
|
|
13
14
|
*/
|
|
14
15
|
export declare const GATEWAY_PATH = "/analyst-service";
|
|
15
|
-
/**
|
|
16
|
-
* Where the chat platform is mounted inside the service.
|
|
17
|
-
*
|
|
18
|
-
* A chat URL has three parts, and only the last is the platform's to choose:
|
|
19
|
-
*
|
|
20
|
-
* /analyst-service /api/agent-chat /chat
|
|
21
|
-
* service name mount path endpoint
|
|
22
|
-
*
|
|
23
|
-
* The mount path is picked by the service developer and is an arbitrary fixed string - it is not
|
|
24
|
-
* derived from anything, and the graph's name appears nowhere in the URL. So the service name and
|
|
25
|
-
* the mount together are one base that has to be asked for rather than inferred, which is why it is
|
|
26
|
-
* one constant here rather than pieces spread across the routes.
|
|
27
|
-
*
|
|
28
|
-
* The `/api` segment arrives with analyst-service#39, which moves both of its controllers under one
|
|
29
|
-
* namespace. That PR aliases nothing, so the old unprefixed paths stop answering the moment it
|
|
30
|
-
* deploys - this constant and that deploy have to move together.
|
|
31
|
-
*/
|
|
32
|
-
export declare const MOUNT_PATH = "/api/agent-chat";
|
|
33
|
-
/** Service name plus mount. Every route below is relative to this. */
|
|
34
|
-
export declare const BASE_PATH: string;
|
|
35
|
-
/**
|
|
36
|
-
* Routes from the agent-chat platform protocol
|
|
37
|
-
* (`service-shared-agent-platform`, `docs/agent_chat/protocol.md`).
|
|
38
|
-
*
|
|
39
|
-
* `CHAT` is declared here for completeness but is **not** called from this package: it is the ag-ui
|
|
40
|
-
* protocol endpoint, opened by the consumer's `HttpAgent` as a streaming POST. It is exposed through
|
|
41
|
-
* {@link AnalystClientConfig.chatUrl} instead, so the URL is still built in one place.
|
|
42
|
-
*
|
|
43
|
-
* Note that cancel hangs off the *thread*, not off chat, and takes the thread id in the path rather
|
|
44
|
-
* than in a body. Its earlier shape - `POST /chat/cancel` with `{ threadId }` - does not exist.
|
|
45
|
-
*/
|
|
46
|
-
export declare const Routes: {
|
|
47
|
-
CHAT: string;
|
|
48
|
-
THREADS: string;
|
|
49
|
-
THREAD: string;
|
|
50
|
-
CANCEL_RUN: string;
|
|
51
|
-
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.GATEWAY_PATH = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* api-gateway path prefix the analyst service is registered under.
|
|
6
6
|
*
|
|
@@ -11,45 +11,9 @@ exports.Routes = exports.BASE_PATH = exports.MOUNT_PATH = exports.GATEWAY_PATH =
|
|
|
11
11
|
* - path: /analyst-service
|
|
12
12
|
* stripPath: true
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
* `/api/
|
|
14
|
+
* Chat routes hang off this prefix (`/analyst-service/api/agent-chat/...`). Findings currently use
|
|
15
|
+
* a different shape (`/api/analyst-service/findings/...`) and keep their own root until those
|
|
16
|
+
* gateway registrations are confirmed to be the same.
|
|
16
17
|
*/
|
|
17
18
|
exports.GATEWAY_PATH = '/analyst-service';
|
|
18
|
-
/**
|
|
19
|
-
* Where the chat platform is mounted inside the service.
|
|
20
|
-
*
|
|
21
|
-
* A chat URL has three parts, and only the last is the platform's to choose:
|
|
22
|
-
*
|
|
23
|
-
* /analyst-service /api/agent-chat /chat
|
|
24
|
-
* service name mount path endpoint
|
|
25
|
-
*
|
|
26
|
-
* The mount path is picked by the service developer and is an arbitrary fixed string - it is not
|
|
27
|
-
* derived from anything, and the graph's name appears nowhere in the URL. So the service name and
|
|
28
|
-
* the mount together are one base that has to be asked for rather than inferred, which is why it is
|
|
29
|
-
* one constant here rather than pieces spread across the routes.
|
|
30
|
-
*
|
|
31
|
-
* The `/api` segment arrives with analyst-service#39, which moves both of its controllers under one
|
|
32
|
-
* namespace. That PR aliases nothing, so the old unprefixed paths stop answering the moment it
|
|
33
|
-
* deploys - this constant and that deploy have to move together.
|
|
34
|
-
*/
|
|
35
|
-
exports.MOUNT_PATH = '/api/agent-chat';
|
|
36
|
-
/** Service name plus mount. Every route below is relative to this. */
|
|
37
|
-
exports.BASE_PATH = "".concat(exports.GATEWAY_PATH).concat(exports.MOUNT_PATH);
|
|
38
|
-
/**
|
|
39
|
-
* Routes from the agent-chat platform protocol
|
|
40
|
-
* (`service-shared-agent-platform`, `docs/agent_chat/protocol.md`).
|
|
41
|
-
*
|
|
42
|
-
* `CHAT` is declared here for completeness but is **not** called from this package: it is the ag-ui
|
|
43
|
-
* protocol endpoint, opened by the consumer's `HttpAgent` as a streaming POST. It is exposed through
|
|
44
|
-
* {@link AnalystClientConfig.chatUrl} instead, so the URL is still built in one place.
|
|
45
|
-
*
|
|
46
|
-
* Note that cancel hangs off the *thread*, not off chat, and takes the thread id in the path rather
|
|
47
|
-
* than in a body. Its earlier shape - `POST /chat/cancel` with `{ threadId }` - does not exist.
|
|
48
|
-
*/
|
|
49
|
-
exports.Routes = {
|
|
50
|
-
CHAT: "".concat(exports.BASE_PATH, "/chat"),
|
|
51
|
-
THREADS: "".concat(exports.BASE_PATH, "/threads"),
|
|
52
|
-
THREAD: "".concat(exports.BASE_PATH, "/threads/{:threadId}"),
|
|
53
|
-
CANCEL_RUN: "".concat(exports.BASE_PATH, "/threads/{:threadId}/cancel")
|
|
54
|
-
};
|
|
55
19
|
//# sourceMappingURL=Analyst.consts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Analyst.consts.js","sourceRoot":"","sources":["../../src/Analyst/Analyst.consts.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"Analyst.consts.js","sourceRoot":"","sources":["../../src/Analyst/Analyst.consts.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACU,QAAA,YAAY,GAAG,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnalystChat } from '@bringg/types';
|
|
1
|
+
import type { AnalystChat, AnalystLatestFindings } from '@bringg/types';
|
|
2
2
|
import Session from '../Services/Identity/Session';
|
|
3
3
|
/**
|
|
4
4
|
* Connection details for the Analyst agent's protocol client.
|
|
@@ -15,7 +15,7 @@ export interface AnalystClientConfig {
|
|
|
15
15
|
defaultHeaders: Record<string, string>;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Public SDK surface for analyst-service: findings and agent chat.
|
|
19
19
|
*
|
|
20
20
|
* The browser never talks to analyst-service directly - it is reached through api-gateway under a
|
|
21
21
|
* path prefix, exactly like `data-query-service`. The service declares `bringg-jwt`, but no JWT
|
|
@@ -34,15 +34,21 @@ export interface AnalystClientConfig {
|
|
|
34
34
|
* const agent = new HttpAgent({ url: chatUrl, headers: defaultHeaders });
|
|
35
35
|
* ```
|
|
36
36
|
*
|
|
37
|
-
* Everything the dashboard requests *itself* - the thread list, one thread,
|
|
38
|
-
* ordinary SDK call on this class
|
|
39
|
-
* shape is enforced by the compiler in both this repo and analyst-service.
|
|
37
|
+
* Everything the dashboard requests *itself* - latest findings, the thread list, one thread,
|
|
38
|
+
* cancelling a run - is an ordinary SDK call on this class.
|
|
40
39
|
*/
|
|
41
40
|
export declare class Analyst {
|
|
42
41
|
private readonly session;
|
|
43
42
|
private cached?;
|
|
44
|
-
private readonly
|
|
43
|
+
private readonly chat;
|
|
44
|
+
private readonly findings;
|
|
45
45
|
constructor(session: Session);
|
|
46
|
+
/**
|
|
47
|
+
* The most recent findings run for the signed-in merchant.
|
|
48
|
+
*
|
|
49
|
+
* @returns The latest findings payload from analyst-service
|
|
50
|
+
*/
|
|
51
|
+
getLatest(): Promise<AnalystLatestFindings>;
|
|
46
52
|
/**
|
|
47
53
|
* The signed-in user's conversations, most recently active first.
|
|
48
54
|
*
|
package/dist/Analyst/Analyst.js
CHANGED
|
@@ -41,7 +41,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.Analyst = void 0;
|
|
43
43
|
var Analyst_consts_1 = require("./Analyst.consts");
|
|
44
|
-
var
|
|
44
|
+
var AnalystChat_consts_1 = require("./Chat/AnalystChat.consts");
|
|
45
|
+
var AnalystChatEntity_1 = __importDefault(require("./Chat/AnalystChatEntity"));
|
|
46
|
+
var AnalystFindingsService_1 = __importDefault(require("./Findings/AnalystFindingsService"));
|
|
45
47
|
var isSameConfig = function (a, b) {
|
|
46
48
|
if (a.apiUrl !== b.apiUrl || a.chatUrl !== b.chatUrl) {
|
|
47
49
|
return false;
|
|
@@ -51,7 +53,7 @@ var isSameConfig = function (a, b) {
|
|
|
51
53
|
keys.every(function (key) { return a.defaultHeaders[key] === b.defaultHeaders[key]; }));
|
|
52
54
|
};
|
|
53
55
|
/**
|
|
54
|
-
*
|
|
56
|
+
* Public SDK surface for analyst-service: findings and agent chat.
|
|
55
57
|
*
|
|
56
58
|
* The browser never talks to analyst-service directly - it is reached through api-gateway under a
|
|
57
59
|
* path prefix, exactly like `data-query-service`. The service declares `bringg-jwt`, but no JWT
|
|
@@ -70,15 +72,23 @@ var isSameConfig = function (a, b) {
|
|
|
70
72
|
* const agent = new HttpAgent({ url: chatUrl, headers: defaultHeaders });
|
|
71
73
|
* ```
|
|
72
74
|
*
|
|
73
|
-
* Everything the dashboard requests *itself* - the thread list, one thread,
|
|
74
|
-
* ordinary SDK call on this class
|
|
75
|
-
* shape is enforced by the compiler in both this repo and analyst-service.
|
|
75
|
+
* Everything the dashboard requests *itself* - latest findings, the thread list, one thread,
|
|
76
|
+
* cancelling a run - is an ordinary SDK call on this class.
|
|
76
77
|
*/
|
|
77
78
|
var Analyst = /** @class */ (function () {
|
|
78
79
|
function Analyst(session) {
|
|
79
80
|
this.session = session;
|
|
80
|
-
this.
|
|
81
|
+
this.chat = new AnalystChatEntity_1.default(session);
|
|
82
|
+
this.findings = new AnalystFindingsService_1.default(session);
|
|
81
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* The most recent findings run for the signed-in merchant.
|
|
86
|
+
*
|
|
87
|
+
* @returns The latest findings payload from analyst-service
|
|
88
|
+
*/
|
|
89
|
+
Analyst.prototype.getLatest = function () {
|
|
90
|
+
return this.findings.latest();
|
|
91
|
+
};
|
|
82
92
|
/**
|
|
83
93
|
* The signed-in user's conversations, most recently active first.
|
|
84
94
|
*
|
|
@@ -88,7 +98,7 @@ var Analyst = /** @class */ (function () {
|
|
|
88
98
|
Analyst.prototype.listThreads = function () {
|
|
89
99
|
return __awaiter(this, void 0, void 0, function () {
|
|
90
100
|
return __generator(this, function (_a) {
|
|
91
|
-
return [2 /*return*/, this.
|
|
101
|
+
return [2 /*return*/, this.chat.listThreads()];
|
|
92
102
|
});
|
|
93
103
|
});
|
|
94
104
|
};
|
|
@@ -106,7 +116,7 @@ var Analyst = /** @class */ (function () {
|
|
|
106
116
|
Analyst.prototype.getThread = function (threadId) {
|
|
107
117
|
return __awaiter(this, void 0, void 0, function () {
|
|
108
118
|
return __generator(this, function (_a) {
|
|
109
|
-
return [2 /*return*/, this.
|
|
119
|
+
return [2 /*return*/, this.chat.getThread(threadId)];
|
|
110
120
|
});
|
|
111
121
|
});
|
|
112
122
|
};
|
|
@@ -124,7 +134,7 @@ var Analyst = /** @class */ (function () {
|
|
|
124
134
|
Analyst.prototype.cancelRun = function (threadId) {
|
|
125
135
|
return __awaiter(this, void 0, void 0, function () {
|
|
126
136
|
return __generator(this, function (_a) {
|
|
127
|
-
return [2 /*return*/, this.
|
|
137
|
+
return [2 /*return*/, this.chat.cancelRun(threadId)];
|
|
128
138
|
});
|
|
129
139
|
});
|
|
130
140
|
};
|
|
@@ -144,7 +154,7 @@ var Analyst = /** @class */ (function () {
|
|
|
144
154
|
var apiEndpoint = this.session.config.getApiEndpoint().encode();
|
|
145
155
|
var next = {
|
|
146
156
|
apiUrl: "".concat(apiEndpoint).concat(Analyst_consts_1.GATEWAY_PATH),
|
|
147
|
-
chatUrl: "".concat(apiEndpoint).concat(
|
|
157
|
+
chatUrl: "".concat(apiEndpoint).concat(AnalystChat_consts_1.Routes.CHAT),
|
|
148
158
|
defaultHeaders: this.getDefaultHeaders()
|
|
149
159
|
};
|
|
150
160
|
if (this.cached && isSameConfig(this.cached, next)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Analyst.js","sourceRoot":"","sources":["../../src/Analyst/Analyst.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"Analyst.js","sourceRoot":"","sources":["../../src/Analyst/Analyst.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,mDAAgD;AAChD,gEAAmD;AACnD,+EAAyD;AACzD,6FAAuE;AAiBvE,IAAM,YAAY,GAAG,UAAC,CAAsB,EAAE,CAAsB;IACnE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE;QACrD,OAAO,KAAK,CAAC;KACb;IAED,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAE3C,OAAO,CACN,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM;QACpD,IAAI,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAA/C,CAA+C,CAAC,CAClE,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IAOC,iBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,gCAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,2BAAS,GAAhB;QACC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACU,6BAAW,GAAxB;;;gBACC,sBAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAC;;;KAC/B;IAED;;;;;;;;;;OAUG;IACU,2BAAS,GAAtB,UAAuB,QAAgB;;;gBACtC,sBAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAC;;;KACrC;IAED;;;;;;;;;;OAUG;IACU,2BAAS,GAAtB,UAAuB,QAAgB;;;gBACtC,sBAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAC;;;KACrC;IAED;;;;;;;;;OASG;IACI,iCAAe,GAAtB;QACC,8FAA8F;QAC9F,sFAAsF;QACtF,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC;QAClE,IAAM,IAAI,GAAwB;YACjC,MAAM,EAAE,UAAG,WAAW,SAAG,6BAAY,CAAE;YACvC,OAAO,EAAE,UAAG,WAAW,SAAG,2BAAM,CAAC,IAAI,CAAE;YACvC,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACxC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2EAA2E;IACnE,mCAAiB,GAAzB;;QACC,IAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAM,KAAK,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,IAAI,0CAAE,oBAAoB,CAAC;QAEtD,IAAI,KAAK,EAAE;YACV,OAAO,CAAC,aAAa,GAAG,sBAAe,KAAK,CAAE,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC1B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC/C;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IACF,cAAC;AAAD,CAAC,AAzGD,IAyGC;AAzGY,0BAAO;AA2GpB,kBAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var AnalystFindingsService_1 = __importDefault(require("./Services/AnalystFindingsService"));
|
|
7
|
+
var AnalystApi = /** @class */ (function () {
|
|
8
|
+
function AnalystApi(session) {
|
|
9
|
+
this.analystFindingsService = new AnalystFindingsService_1.default(session);
|
|
10
|
+
}
|
|
11
|
+
AnalystApi.prototype.getLatest = function () {
|
|
12
|
+
return this.analystFindingsService.latest();
|
|
13
|
+
};
|
|
14
|
+
return AnalystApi;
|
|
15
|
+
}());
|
|
16
|
+
exports.default = AnalystApi;
|
|
17
|
+
//# sourceMappingURL=AnalystApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalystApi.js","sourceRoot":"","sources":["../../src/Analyst/AnalystApi.ts"],"names":[],"mappings":";;;;;AAGA,6FAAuE;AAEvE;IAGC,oBAAY,OAAgB;QAC3B,IAAI,CAAC,sBAAsB,GAAG,IAAI,gCAAsB,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,8BAAS,GAAT;QACC,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;IAC7C,CAAC;IACF,iBAAC;AAAD,CAAC,AAVD,IAUC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the chat platform is mounted inside the service.
|
|
3
|
+
*
|
|
4
|
+
* A chat URL has three parts, and only the last is the platform's to choose:
|
|
5
|
+
*
|
|
6
|
+
* /analyst-service /api/agent-chat /chat
|
|
7
|
+
* service name mount path endpoint
|
|
8
|
+
*
|
|
9
|
+
* The mount path is picked by the service developer and is an arbitrary fixed string - it is not
|
|
10
|
+
* derived from anything, and the graph's name appears nowhere in the URL. So the service name and
|
|
11
|
+
* the mount together are one base that has to be asked for rather than inferred, which is why it is
|
|
12
|
+
* one constant here rather than pieces spread across the routes.
|
|
13
|
+
*
|
|
14
|
+
* The `/api` segment arrives with analyst-service#39, which moves both of its controllers under one
|
|
15
|
+
* namespace. That PR aliases nothing, so the old unprefixed paths stop answering the moment it
|
|
16
|
+
* deploys - this constant and that deploy have to move together.
|
|
17
|
+
*
|
|
18
|
+
* `stripPath: true` on the gateway means the service receives `/api/agent-chat/threads` rather than
|
|
19
|
+
* `/analyst-service/api/agent-chat/threads`.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MOUNT_PATH = "/api/agent-chat";
|
|
22
|
+
/** Service name plus mount. Every route below is relative to this. */
|
|
23
|
+
export declare const BASE_PATH: string;
|
|
24
|
+
/**
|
|
25
|
+
* Routes from the agent-chat platform protocol
|
|
26
|
+
* (`service-shared-agent-platform`, `docs/agent_chat/protocol.md`).
|
|
27
|
+
*
|
|
28
|
+
* `CHAT` is declared here for completeness but is **not** called from this package: it is the ag-ui
|
|
29
|
+
* protocol endpoint, opened by the consumer's `HttpAgent` as a streaming POST. It is exposed through
|
|
30
|
+
* {@link AnalystClientConfig.chatUrl} instead, so the URL is still built in one place.
|
|
31
|
+
*
|
|
32
|
+
* Note that cancel hangs off the *thread*, not off chat, and takes the thread id in the path rather
|
|
33
|
+
* than in a body. Its earlier shape - `POST /chat/cancel` with `{ threadId }` - does not exist.
|
|
34
|
+
*/
|
|
35
|
+
export declare const Routes: {
|
|
36
|
+
CHAT: string;
|
|
37
|
+
THREADS: string;
|
|
38
|
+
THREAD: string;
|
|
39
|
+
CANCEL_RUN: string;
|
|
40
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Routes = exports.BASE_PATH = exports.MOUNT_PATH = void 0;
|
|
4
|
+
var Analyst_consts_1 = require("../Analyst.consts");
|
|
5
|
+
/**
|
|
6
|
+
* Where the chat platform is mounted inside the service.
|
|
7
|
+
*
|
|
8
|
+
* A chat URL has three parts, and only the last is the platform's to choose:
|
|
9
|
+
*
|
|
10
|
+
* /analyst-service /api/agent-chat /chat
|
|
11
|
+
* service name mount path endpoint
|
|
12
|
+
*
|
|
13
|
+
* The mount path is picked by the service developer and is an arbitrary fixed string - it is not
|
|
14
|
+
* derived from anything, and the graph's name appears nowhere in the URL. So the service name and
|
|
15
|
+
* the mount together are one base that has to be asked for rather than inferred, which is why it is
|
|
16
|
+
* one constant here rather than pieces spread across the routes.
|
|
17
|
+
*
|
|
18
|
+
* The `/api` segment arrives with analyst-service#39, which moves both of its controllers under one
|
|
19
|
+
* namespace. That PR aliases nothing, so the old unprefixed paths stop answering the moment it
|
|
20
|
+
* deploys - this constant and that deploy have to move together.
|
|
21
|
+
*
|
|
22
|
+
* `stripPath: true` on the gateway means the service receives `/api/agent-chat/threads` rather than
|
|
23
|
+
* `/analyst-service/api/agent-chat/threads`.
|
|
24
|
+
*/
|
|
25
|
+
exports.MOUNT_PATH = '/api/agent-chat';
|
|
26
|
+
/** Service name plus mount. Every route below is relative to this. */
|
|
27
|
+
exports.BASE_PATH = "".concat(Analyst_consts_1.GATEWAY_PATH).concat(exports.MOUNT_PATH);
|
|
28
|
+
/**
|
|
29
|
+
* Routes from the agent-chat platform protocol
|
|
30
|
+
* (`service-shared-agent-platform`, `docs/agent_chat/protocol.md`).
|
|
31
|
+
*
|
|
32
|
+
* `CHAT` is declared here for completeness but is **not** called from this package: it is the ag-ui
|
|
33
|
+
* protocol endpoint, opened by the consumer's `HttpAgent` as a streaming POST. It is exposed through
|
|
34
|
+
* {@link AnalystClientConfig.chatUrl} instead, so the URL is still built in one place.
|
|
35
|
+
*
|
|
36
|
+
* Note that cancel hangs off the *thread*, not off chat, and takes the thread id in the path rather
|
|
37
|
+
* than in a body. Its earlier shape - `POST /chat/cancel` with `{ threadId }` - does not exist.
|
|
38
|
+
*/
|
|
39
|
+
exports.Routes = {
|
|
40
|
+
CHAT: "".concat(exports.BASE_PATH, "/chat"),
|
|
41
|
+
THREADS: "".concat(exports.BASE_PATH, "/threads"),
|
|
42
|
+
THREAD: "".concat(exports.BASE_PATH, "/threads/{:threadId}"),
|
|
43
|
+
CANCEL_RUN: "".concat(exports.BASE_PATH, "/threads/{:threadId}/cancel")
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=AnalystChat.consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalystChat.consts.js","sourceRoot":"","sources":["../../../src/Analyst/Chat/AnalystChat.consts.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,UAAU,GAAG,iBAAiB,CAAC;AAE5C,sEAAsE;AACzD,QAAA,SAAS,GAAG,UAAG,6BAAY,SAAG,kBAAU,CAAE,CAAC;AAExD;;;;;;;;;;GAUG;AACU,QAAA,MAAM,GAAG;IACrB,IAAI,EAAE,UAAG,iBAAS,UAAO;IACzB,OAAO,EAAE,UAAG,iBAAS,aAAU;IAC/B,MAAM,EAAE,UAAG,iBAAS,yBAAsB;IAC1C,UAAU,EAAE,UAAG,iBAAS,gCAA6B;CACrD,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { AnalystChat } from '@bringg/types';
|
|
|
2
2
|
import Entity from '../../Core/Entity';
|
|
3
3
|
import type Session from '../../Services/Identity/Session';
|
|
4
4
|
/**
|
|
5
|
-
* The Analyst REST surface.
|
|
5
|
+
* The Analyst agent-chat REST surface.
|
|
6
6
|
*
|
|
7
7
|
* **Why the chat endpoint is not here.** The ag-ui contract has four endpoints, and exactly one of
|
|
8
8
|
* them is the protocol: `POST /analyst/chat` is a streaming POST that answers with `text/event-stream`
|
|
@@ -16,7 +16,7 @@ import type Session from '../../Services/Identity/Session';
|
|
|
16
16
|
* list, opening a conversation asks for one thread, and pressing Stop cancels the run. That makes
|
|
17
17
|
* them ours.
|
|
18
18
|
*/
|
|
19
|
-
export default class
|
|
19
|
+
export default class AnalystChatEntity extends Entity<AnalystChat.ThreadSummary> {
|
|
20
20
|
constructor(session: Session);
|
|
21
21
|
/** The signed-in user's threads, most recently active first. A bare array, no envelope. */
|
|
22
22
|
listThreads(): Promise<AnalystChat.ThreadSummary[]>;
|
|
@@ -55,9 +55,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
55
55
|
};
|
|
56
56
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
57
|
var Entity_1 = __importDefault(require("../../Core/Entity"));
|
|
58
|
-
var
|
|
58
|
+
var AnalystChat_consts_1 = require("./AnalystChat.consts");
|
|
59
59
|
/**
|
|
60
|
-
* The Analyst REST surface.
|
|
60
|
+
* The Analyst agent-chat REST surface.
|
|
61
61
|
*
|
|
62
62
|
* **Why the chat endpoint is not here.** The ag-ui contract has four endpoints, and exactly one of
|
|
63
63
|
* them is the protocol: `POST /analyst/chat` is a streaming POST that answers with `text/event-stream`
|
|
@@ -71,9 +71,9 @@ var Analyst_consts_1 = require("../Analyst.consts");
|
|
|
71
71
|
* list, opening a conversation asks for one thread, and pressing Stop cancels the run. That makes
|
|
72
72
|
* them ours.
|
|
73
73
|
*/
|
|
74
|
-
var
|
|
75
|
-
__extends(
|
|
76
|
-
function
|
|
74
|
+
var AnalystChatEntity = /** @class */ (function (_super) {
|
|
75
|
+
__extends(AnalystChatEntity, _super);
|
|
76
|
+
function AnalystChatEntity(session) {
|
|
77
77
|
return _super.call(this, {
|
|
78
78
|
session: session,
|
|
79
79
|
entityName: 'threads',
|
|
@@ -81,13 +81,13 @@ var AnalystEntity = /** @class */ (function (_super) {
|
|
|
81
81
|
}) || this;
|
|
82
82
|
}
|
|
83
83
|
/** The signed-in user's threads, most recently active first. A bare array, no envelope. */
|
|
84
|
-
|
|
84
|
+
AnalystChatEntity.prototype.listThreads = function () {
|
|
85
85
|
return __awaiter(this, void 0, void 0, function () {
|
|
86
86
|
var threads;
|
|
87
87
|
return __generator(this, function (_a) {
|
|
88
88
|
switch (_a.label) {
|
|
89
89
|
case 0: return [4 /*yield*/, this.service.routeGenerator
|
|
90
|
-
.get(
|
|
90
|
+
.get(AnalystChat_consts_1.Routes.THREADS)
|
|
91
91
|
.setException('Failed to fetch analyst chat threads')
|
|
92
92
|
.invoke()];
|
|
93
93
|
case 1:
|
|
@@ -103,11 +103,11 @@ var AnalystEntity = /** @class */ (function (_super) {
|
|
|
103
103
|
* A thread belonging to another user answers **404**, never 403 - so a rejected id is
|
|
104
104
|
* indistinguishable from a missing one, by design.
|
|
105
105
|
*/
|
|
106
|
-
|
|
106
|
+
AnalystChatEntity.prototype.getThread = function (threadId) {
|
|
107
107
|
return __awaiter(this, void 0, void 0, function () {
|
|
108
108
|
return __generator(this, function (_a) {
|
|
109
109
|
return [2 /*return*/, this.service.routeGenerator
|
|
110
|
-
.get(
|
|
110
|
+
.get(AnalystChat_consts_1.Routes.THREAD)
|
|
111
111
|
.withRouteParams({ threadId: threadId })
|
|
112
112
|
.setException('Failed to fetch analyst chat thread')
|
|
113
113
|
.invoke()];
|
|
@@ -125,18 +125,18 @@ var AnalystEntity = /** @class */ (function (_super) {
|
|
|
125
125
|
* was idle **or** that this caller may not touch it - the platform answers both the same way, so
|
|
126
126
|
* that the existence of a thread does not leak.
|
|
127
127
|
*/
|
|
128
|
-
|
|
128
|
+
AnalystChatEntity.prototype.cancelRun = function (threadId) {
|
|
129
129
|
return __awaiter(this, void 0, void 0, function () {
|
|
130
130
|
return __generator(this, function (_a) {
|
|
131
131
|
return [2 /*return*/, this.service.routeGenerator
|
|
132
|
-
.post(
|
|
132
|
+
.post(AnalystChat_consts_1.Routes.CANCEL_RUN)
|
|
133
133
|
.withRouteParams({ threadId: threadId })
|
|
134
134
|
.setException('Failed to cancel the analyst chat run')
|
|
135
135
|
.invoke()];
|
|
136
136
|
});
|
|
137
137
|
});
|
|
138
138
|
};
|
|
139
|
-
return
|
|
139
|
+
return AnalystChatEntity;
|
|
140
140
|
}(Entity_1.default));
|
|
141
|
-
exports.default =
|
|
142
|
-
//# sourceMappingURL=
|
|
141
|
+
exports.default = AnalystChatEntity;
|
|
142
|
+
//# sourceMappingURL=AnalystChatEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalystChatEntity.js","sourceRoot":"","sources":["../../../src/Analyst/Chat/AnalystChatEntity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6DAAuC;AAEvC,2DAA8C;AAE9C;;;;;;;;;;;;;;GAcG;AACH;IAA+C,qCAAiC;IAC/E,2BAAY,OAAgB;eAC3B,kBAAM;YACL,OAAO,SAAA;YACP,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,iBAAiB;SAC9B,CAAC;IACH,CAAC;IAED,2FAA2F;IACrF,uCAAW,GAAjB;;;;;4BACiB,qBAAM,IAAI,CAAC,OAAO,CAAC,cAAc;6BAC/C,GAAG,CAAC,2BAAM,CAAC,OAAO,CAAC;6BACnB,YAAY,CAAC,sCAAsC,CAAC;6BACpD,MAAM,EAA4D,EAAA;;wBAH9D,OAAO,GAAG,SAGoD;wBAEpE,sBAAO,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EAAC;;;;KACrB;IAED;;;;;OAKG;IACG,qCAAS,GAAf,UAAgB,QAAgB;;;gBAC/B,sBAAO,IAAI,CAAC,OAAO,CAAC,cAAc;yBAChC,GAAG,CAAC,2BAAM,CAAC,MAAM,CAAC;yBAClB,eAAe,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC;yBAC7B,YAAY,CAAC,qCAAqC,CAAC;yBACnD,MAAM,EAAsD,EAAC;;;KAC/D;IAED;;;;;;;;;;OAUG;IACG,qCAAS,GAAf,UAAgB,QAAgB;;;gBAC/B,sBAAO,IAAI,CAAC,OAAO,CAAC,cAAc;yBAChC,IAAI,CAAC,2BAAM,CAAC,UAAU,CAAC;yBACvB,eAAe,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC;yBAC7B,YAAY,CAAC,uCAAuC,CAAC;yBACrD,MAAM,EAAgE,EAAC;;;KACzE;IACF,wBAAC;AAAD,CAAC,AAnDD,CAA+C,gBAAM,GAmDpD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AnalystFinding, AnalystLatestFindings } from '@bringg/types';
|
|
2
|
+
import BaseService from '../../Core/BaseService';
|
|
3
|
+
import type Session from '../../Services/Identity/Session';
|
|
4
|
+
export declare const Routes: {
|
|
5
|
+
LATEST: string;
|
|
6
|
+
};
|
|
7
|
+
export default class AnalystFindingsService extends BaseService<AnalystFinding> {
|
|
8
|
+
constructor(session: Session);
|
|
9
|
+
latest(): Promise<AnalystLatestFindings>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
54
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
55
|
+
};
|
|
56
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
+
exports.Routes = void 0;
|
|
58
|
+
var BaseService_1 = __importDefault(require("../../Core/BaseService"));
|
|
59
|
+
var API_PREFIX = '/api';
|
|
60
|
+
var SERVICE_NAME = 'analyst-service';
|
|
61
|
+
var ROOT = "".concat(API_PREFIX, "/").concat(SERVICE_NAME);
|
|
62
|
+
exports.Routes = {
|
|
63
|
+
LATEST: "".concat(ROOT, "/findings/latest")
|
|
64
|
+
};
|
|
65
|
+
var AnalystFindingsService = /** @class */ (function (_super) {
|
|
66
|
+
__extends(AnalystFindingsService, _super);
|
|
67
|
+
function AnalystFindingsService(session) {
|
|
68
|
+
return _super.call(this, session, 'analyst_findings') || this;
|
|
69
|
+
}
|
|
70
|
+
AnalystFindingsService.prototype.latest = function () {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
+
return __generator(this, function (_a) {
|
|
73
|
+
return [2 /*return*/, this.routeGenerator.get(exports.Routes.LATEST).invoke()];
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
return AnalystFindingsService;
|
|
78
|
+
}(BaseService_1.default));
|
|
79
|
+
exports.default = AnalystFindingsService;
|
|
80
|
+
//# sourceMappingURL=AnalystFindingsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalystFindingsService.js","sourceRoot":"","sources":["../../../src/Analyst/Findings/AnalystFindingsService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uEAAiD;AAGjD,IAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,IAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,IAAM,IAAI,GAAG,UAAG,UAAU,cAAI,YAAY,CAAE,CAAC;AAEhC,QAAA,MAAM,GAAG;IACrB,MAAM,EAAE,UAAG,IAAI,qBAAkB;CACjC,CAAC;AAEF;IAAoD,0CAA2B;IAC9E,gCAAY,OAAgB;eAC3B,kBAAM,OAAO,EAAE,kBAAkB,CAAC;IACnC,CAAC;IAEK,uCAAM,GAAZ;;;gBACC,sBAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAC;;;KACvD;IACF,6BAAC;AAAD,CAAC,AARD,CAAoD,qBAAW,GAQ9D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AnalystFinding, AnalystLatestFindings } from '@bringg/types';
|
|
2
|
+
import BaseService from '../../Core/BaseService';
|
|
3
|
+
import type Session from '../../Services/Identity/Session';
|
|
4
|
+
export declare const Routes: {
|
|
5
|
+
LATEST: string;
|
|
6
|
+
};
|
|
7
|
+
export default class AnalystFindingsService extends BaseService<AnalystFinding> {
|
|
8
|
+
constructor(session: Session);
|
|
9
|
+
latest(): Promise<AnalystLatestFindings>;
|
|
10
|
+
}
|