bruce-models 6.9.0 → 6.9.2
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/bruce-models.es5.js +79 -6
- package/dist/bruce-models.es5.js.map +1 -1
- package/dist/bruce-models.umd.js +79 -6
- package/dist/bruce-models.umd.js.map +1 -1
- package/dist/lib/bruce-models.js +1 -1
- package/dist/lib/mcp/navigator-chat.js +78 -5
- package/dist/lib/mcp/navigator-chat.js.map +1 -1
- package/dist/types/bruce-models.d.ts +1 -1
- package/dist/types/mcp/navigator-chat.d.ts +17 -0
- package/package.json +1 -1
package/dist/lib/bruce-models.js
CHANGED
|
@@ -116,5 +116,5 @@ __exportStar(require("./tracking/tracking"), exports);
|
|
|
116
116
|
__exportStar(require("./mcp/navigator-chat"), exports);
|
|
117
117
|
__exportStar(require("./mcp/navigator-mcp-websocket"), exports);
|
|
118
118
|
// This is updated with the package.json version on build.
|
|
119
|
-
exports.VERSION = "6.9.
|
|
119
|
+
exports.VERSION = "6.9.2";
|
|
120
120
|
//# sourceMappingURL=bruce-models.js.map
|
|
@@ -10,6 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.NavigatorChatClient = void 0;
|
|
13
|
+
const DEFAULT_JOB_POLL_INTERVAL_MS = 1000;
|
|
14
|
+
const DEFAULT_JOB_POLL_TIMEOUT_MS = 4 * 60 * 1000; // match server timeout (4 minutes)
|
|
13
15
|
const DEFAULT_BASE_URL = "http://localhost:8888";
|
|
14
16
|
/**
|
|
15
17
|
* Lightweight client for the Navigator MCP chat HTTP endpoints.
|
|
@@ -18,10 +20,12 @@ const DEFAULT_BASE_URL = "http://localhost:8888";
|
|
|
18
20
|
*/
|
|
19
21
|
class NavigatorChatClient {
|
|
20
22
|
constructor(options = {}) {
|
|
21
|
-
var _a, _b;
|
|
23
|
+
var _a, _b, _c, _d;
|
|
22
24
|
this.baseUrl = (_a = options.baseUrl) !== null && _a !== void 0 ? _a : DEFAULT_BASE_URL;
|
|
23
25
|
this.fetchImpl = options.fetchImpl;
|
|
24
26
|
this.defaultHeaders = (_b = options.defaultHeaders) !== null && _b !== void 0 ? _b : {};
|
|
27
|
+
this.jobPollIntervalMs = (_c = options.jobPollIntervalMs) !== null && _c !== void 0 ? _c : DEFAULT_JOB_POLL_INTERVAL_MS;
|
|
28
|
+
this.jobPollTimeoutMs = (_d = options.jobPollTimeoutMs) !== null && _d !== void 0 ? _d : DEFAULT_JOB_POLL_TIMEOUT_MS;
|
|
25
29
|
}
|
|
26
30
|
/**
|
|
27
31
|
* Ask a question via the MCP chat endpoint.
|
|
@@ -44,11 +48,13 @@ class NavigatorChatClient {
|
|
|
44
48
|
}
|
|
45
49
|
}, auth);
|
|
46
50
|
const data = yield this.parseJson(response);
|
|
51
|
+
// New async job flow (HTTP 202)
|
|
52
|
+
if (data && data.jobId && data.status && response.status === 202) {
|
|
53
|
+
return yield this.waitForJobCompletion(data, auth);
|
|
54
|
+
}
|
|
55
|
+
// Legacy synchronous flow fallback
|
|
47
56
|
const text = (_b = (_a = data === null || data === void 0 ? void 0 : data.Text) !== null && _a !== void 0 ? _a : data === null || data === void 0 ? void 0 : data.text) !== null && _b !== void 0 ? _b : "";
|
|
48
|
-
const
|
|
49
|
-
const steps = rawSteps
|
|
50
|
-
.filter((step) => step)
|
|
51
|
-
.map((step, idx) => (Object.assign(Object.assign({}, step), { index: typeof (step === null || step === void 0 ? void 0 : step.index) === "number" ? step.index : idx })));
|
|
57
|
+
const steps = this.normalizeSteps(data === null || data === void 0 ? void 0 : data.steps);
|
|
52
58
|
return {
|
|
53
59
|
text,
|
|
54
60
|
steps,
|
|
@@ -79,6 +85,73 @@ class NavigatorChatClient {
|
|
|
79
85
|
// Use URL constructor to properly handle path joining and avoid double slashes
|
|
80
86
|
return new URL(path, this.baseUrl).toString();
|
|
81
87
|
}
|
|
88
|
+
normalizeSteps(rawSteps) {
|
|
89
|
+
if (!Array.isArray(rawSteps)) {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
return rawSteps
|
|
93
|
+
.filter((step) => Boolean(step))
|
|
94
|
+
.map((step, idx) => (Object.assign(Object.assign({}, step), { index: typeof (step === null || step === void 0 ? void 0 : step.index) === "number" ? step.index : idx })));
|
|
95
|
+
}
|
|
96
|
+
waitForJobCompletion(envelope, auth) {
|
|
97
|
+
var _a, _b, _c, _d, _e;
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
if (!envelope.jobId) {
|
|
100
|
+
throw new Error("Chat job response did not include a jobId.");
|
|
101
|
+
}
|
|
102
|
+
const pollPath = (_a = envelope.pollUrl) !== null && _a !== void 0 ? _a : `/chat/jobs/${envelope.jobId}`;
|
|
103
|
+
const startedAt = Date.now();
|
|
104
|
+
while (Date.now() - startedAt < this.jobPollTimeoutMs) {
|
|
105
|
+
const statusPayload = yield this.fetchJobStatus(pollPath, auth);
|
|
106
|
+
const status = statusPayload === null || statusPayload === void 0 ? void 0 : statusPayload.status;
|
|
107
|
+
if (!status) {
|
|
108
|
+
yield this.delay(this.jobPollIntervalMs);
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const combinedSteps = [
|
|
112
|
+
...(Array.isArray(statusPayload.steps) ? statusPayload.steps : []),
|
|
113
|
+
...(Array.isArray((_b = statusPayload.result) === null || _b === void 0 ? void 0 : _b.steps) ? statusPayload.result.steps : [])
|
|
114
|
+
];
|
|
115
|
+
const normalizedSteps = this.normalizeSteps(combinedSteps);
|
|
116
|
+
if (status === "COMPLETED") {
|
|
117
|
+
const result = (_c = statusPayload.result) !== null && _c !== void 0 ? _c : {};
|
|
118
|
+
const text = (_d = result === null || result === void 0 ? void 0 : result.text) !== null && _d !== void 0 ? _d : "";
|
|
119
|
+
return {
|
|
120
|
+
text,
|
|
121
|
+
steps: normalizedSteps,
|
|
122
|
+
raw: statusPayload,
|
|
123
|
+
jobId: envelope.jobId,
|
|
124
|
+
status,
|
|
125
|
+
anonymous: Boolean((_e = result === null || result === void 0 ? void 0 : result.anonymous) !== null && _e !== void 0 ? _e : statusPayload.anonymous)
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (status === "FAILED") {
|
|
129
|
+
const message = statusPayload.error || "Chat job failed";
|
|
130
|
+
const error = message.trim() || "Chat job failed";
|
|
131
|
+
throw new Error(error);
|
|
132
|
+
}
|
|
133
|
+
yield this.delay(this.jobPollIntervalMs);
|
|
134
|
+
}
|
|
135
|
+
throw new Error("Chat job polling timed out. Please try again later.");
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
fetchJobStatus(path, auth) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const response = yield this.fetchFromEndpoint(path, {
|
|
141
|
+
method: "GET"
|
|
142
|
+
}, auth);
|
|
143
|
+
const payload = yield this.parseJson(response);
|
|
144
|
+
if (!payload || !payload.jobId) {
|
|
145
|
+
throw new Error("Failed to retrieve chat job status.");
|
|
146
|
+
}
|
|
147
|
+
return payload;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
delay(ms) {
|
|
151
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
yield new Promise(resolve => setTimeout(resolve, ms));
|
|
153
|
+
});
|
|
154
|
+
}
|
|
82
155
|
fetchFromEndpoint(path, init, auth) {
|
|
83
156
|
var _a;
|
|
84
157
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigator-chat.js","sourceRoot":"","sources":["../../../src/mcp/navigator-chat.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"navigator-chat.js","sourceRoot":"","sources":["../../../src/mcp/navigator-chat.ts"],"names":[],"mappings":";;;;;;;;;;;;AA+DA,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAC1C,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,mCAAmC;AAoCtF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD;;;;GAIG;AACH,MAAa,mBAAmB;IAO5B,YAAY,UAAsC,EAAE;;QAChD,IAAI,CAAC,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,gBAAgB,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,MAAA,OAAO,CAAC,iBAAiB,mCAAI,4BAA4B,CAAC;QACnF,IAAI,CAAC,gBAAgB,GAAG,MAAA,OAAO,CAAC,gBAAgB,mCAAI,2BAA2B,CAAC;IACpF,CAAC;IAED;;OAEG;IACU,GAAG,CAAC,OAA6B,EAAE,IAAwB;;;YACpE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;gBAC/C,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;aAC7E;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;gBACnD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;iBAC3B,CAAC;gBACF,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;iBACrC;aACJ,EAAE,IAAI,CAAC,CAAC;YAET,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC5C,gCAAgC;YAChC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC9D,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAgC,EAAE,IAAI,CAAC,CAAC;aAClF;YAED,mCAAmC;YACnC,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,CAAC;YAE/C,OAAO;gBACH,IAAI;gBACJ,KAAK;gBACL,GAAG,EAAE,IAAI;aACZ,CAAC;;KACL;IAED;;OAEG;IACU,KAAK,CAAC,IAAwB;;YACvC,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;iBACrC;aACJ,EAAE,IAAI,CAAC,CAAC;QACb,CAAC;KAAA;IAED;;OAEG;IACK,QAAQ,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC3D,OAAO,IAAI,CAAC;SACf;QAED,+EAA+E;QAC/E,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClD,CAAC;IAEO,cAAc,CAAC,QAAa;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,EAAE,CAAC;SACb;QACD,OAAO,QAAQ;aACV,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACpC,GAAG,CAAC,CAAC,IAAS,EAAE,GAAW,EAAE,EAAE,CAAC,iCAC1B,IAAI,KACP,KAAK,EAAE,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAC3D,CAAC,CAAC;IACZ,CAAC;IAEa,oBAAoB,CAAC,QAAkC,EAAE,IAAwB;;;YAC3F,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;aACjE;YAED,MAAM,QAAQ,GAAG,MAAA,QAAQ,CAAC,OAAO,mCAAI,cAAc,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;gBACnD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAEhE,MAAM,MAAM,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAE;oBACT,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACzC,SAAS;iBACZ;gBAED,MAAM,aAAa,GAAG;oBAClB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAA,aAAa,CAAC,MAAM,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpF,CAAC;gBACF,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAE3D,IAAI,MAAM,KAAK,WAAW,EAAE;oBACxB,MAAM,MAAM,GAAG,MAAA,aAAa,CAAC,MAAM,mCAAI,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE,CAAC;oBAChC,OAAO;wBACH,IAAI;wBACJ,KAAK,EAAE,eAAe;wBACtB,GAAG,EAAE,aAAa;wBAClB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM;wBACN,SAAS,EAAE,OAAO,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,aAAa,CAAC,SAAS,CAAC;qBACnE,CAAC;iBACL;gBAED,IAAI,MAAM,KAAK,QAAQ,EAAE;oBACrB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,IAAI,iBAAiB,CAAC;oBACzD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,iBAAiB,CAAC;oBAClD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC1B;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC5C;YAED,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;;KAC1E;IAEa,cAAc,CAAC,IAAY,EAAE,IAAwB;;YAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAChD,MAAM,EAAE,KAAK;aAChB,EAAE,IAAI,CAAC,CAAC;YAET,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,OAAO,OAAkC,CAAC;QAC9C,CAAC;KAAA;IAEa,KAAK,CAAC,EAAU;;YAC1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;KAAA;IAEa,iBAAiB,CAC3B,IAAY,EACZ,IAAiB,EACjB,IAAwB;;;YAExB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,OAAO,mCACN,IAAI,CAAC,cAAc,GACnB,CAAC,MAAA,IAAI,CAAC,OAAiC,mCAAI,EAAE,CAAC,CACpD,CAAC;YAEF,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;gBACjB,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;aAC5C;YACD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;gBACjB,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;aAC5C;YACD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE;gBACnB,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;aAC/C;YAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kCAC7C,IAAI,KACP,OAAO,IACT,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,OAAO,EAAE,CAAC,CAAC;aAC5G;YAED,OAAO,QAAQ,CAAC;;KACnB;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAC9B,OAAO,KAAK,CAAC;SAChB;QAED,sEAAsE;QACtE,8DAA8D;QAC9D,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpD,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC9E;QACD,OAAO,eAA+B,CAAC;IAC3C,CAAC;IAEa,SAAS,CAAC,QAAkB;;YACtC,IAAI;gBACA,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;aAChC;YACD,WAAM;gBACF,OAAO,EAAE,CAAC;aACb;QACL,CAAC;KAAA;IAEa,oBAAoB,CAAC,QAAkB;;YACjD,IAAI;gBACA,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;aAChC;YACD,WAAM;gBACF,OAAO,EAAE,CAAC;aACb;QACL,CAAC;KAAA;CACJ;AA5ND,kDA4NC"}
|
|
@@ -23,6 +23,9 @@ export interface NavigatorChatResponse {
|
|
|
23
23
|
text: string;
|
|
24
24
|
steps: NavigatorChatStep[];
|
|
25
25
|
raw: any;
|
|
26
|
+
jobId?: string;
|
|
27
|
+
status?: string;
|
|
28
|
+
anonymous?: boolean;
|
|
26
29
|
}
|
|
27
30
|
export interface NavigatorChatStep {
|
|
28
31
|
type: string;
|
|
@@ -47,6 +50,14 @@ export interface NavigatorChatClientOptions {
|
|
|
47
50
|
* Optional headers to append to each request.
|
|
48
51
|
*/
|
|
49
52
|
defaultHeaders?: Record<string, string>;
|
|
53
|
+
/**
|
|
54
|
+
* Poll interval (ms) for job status requests.
|
|
55
|
+
*/
|
|
56
|
+
jobPollIntervalMs?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Maximum time (ms) to wait for job completion before timing out.
|
|
59
|
+
*/
|
|
60
|
+
jobPollTimeoutMs?: number;
|
|
50
61
|
}
|
|
51
62
|
/**
|
|
52
63
|
* Lightweight client for the Navigator MCP chat HTTP endpoints.
|
|
@@ -57,6 +68,8 @@ export declare class NavigatorChatClient {
|
|
|
57
68
|
private baseUrl;
|
|
58
69
|
private fetchImpl?;
|
|
59
70
|
private defaultHeaders;
|
|
71
|
+
private jobPollIntervalMs;
|
|
72
|
+
private jobPollTimeoutMs;
|
|
60
73
|
constructor(options?: NavigatorChatClientOptions);
|
|
61
74
|
/**
|
|
62
75
|
* Ask a question via the MCP chat endpoint.
|
|
@@ -70,6 +83,10 @@ export declare class NavigatorChatClient {
|
|
|
70
83
|
* Build a fully-qualified endpoint relative to the configured base URL.
|
|
71
84
|
*/
|
|
72
85
|
private buildUrl;
|
|
86
|
+
private normalizeSteps;
|
|
87
|
+
private waitForJobCompletion;
|
|
88
|
+
private fetchJobStatus;
|
|
89
|
+
private delay;
|
|
73
90
|
private fetchFromEndpoint;
|
|
74
91
|
private resolveFetch;
|
|
75
92
|
private parseJson;
|