@resolveio/server-lib 22.2.48 → 22.2.50
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/collections/report-builder-report.collection.js +4 -0
- package/collections/report-builder-report.collection.js.map +1 -1
- package/methods/collections.js +59 -0
- package/methods/collections.js.map +1 -1
- package/models/report-builder-report.model.d.ts +1 -0
- package/models/report-builder-report.model.js.map +1 -1
- package/package.json +1 -1
- package/services/codex-client.js +9 -0
- package/services/codex-client.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/collections/report-builder-report.collection.ts"],"names":[],"mappings":"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","file":"report-builder-report.collection.js","sourcesContent":["import { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { ReportBuilderReportModel } from '../models/report-builder-report.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcollection_root: {\n\t\ttype: String\n\t},\n\tcollection_joins: {\n\t\ttype: Array,\n\t\toptional: true\n\t},\n\t'collection_joins.$': {\n\t\ttype: Object\n\t},\n\t'collection_joins.$.collection': {\n\t\ttype: String\n\t},\n\t'collection_joins.$.alias': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'collection_joins.$.local_key': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'collection_joins.$.foreign_key': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\treport_name: {\n\t\ttype: String\n\t},\n\tfields_sort: {\n\t\ttype: Array\n\t},\n\t'fields_sort.$': {\n\t\ttype: Object\n\t},\n\t'fields_sort.$.field': {\n\t\ttype: String\n\t},\n\t'fields_sort.$.order': {\n\t\ttype: String\n\t},\n\tfields_filter: {\n\t\ttype: Array\n\t},\n\t'fields_filter.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_custom: {\n\t\ttype: Array\n\t},\n\t'fields_custom.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_selected: {\n\t\ttype: Array\n\t},\n\t'fields_selected.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_total: {\n\t\ttype: Array\n\t},\n\t'fields_total.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_link: {\n\t\ttype: Array\n\t},\n\t'fields_link.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tid_user: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tdate_created: {\n\t\ttype: Date\n\t},\n\tshared_users: {\n\t\ttype: Array\n\t},\n\t'shared_users.$': {\n\t\ttype: String\n\t},\n\ttype: {\n\t\ttype: String\n\t},\n\tgroups_row: {\n\t\ttype: Array\n\t},\n\t'groups_row.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tgroups_column: {\n\t\ttype: Array\n\t},\n\t'groups_column.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tgroup_type: {\n\t\ttype: String\n\t},\n\tfields_layout: {\n\t\ttype: Array,\n\t\toptional: true\n\t},\n\t'fields_layout.$': {\n\t\ttype: Object,\n\t\tblackbox: true,\n\t\toptional: true\n\t},\n\tid_date_field: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tdate_interval: {\n\t\ttype: String,\n\t\toptional: true\n\t}\n};\n\nexport let ReportBuilderReports: MongoManagerCollection<ReportBuilderReportModel> = null;\nexport let ReportBuilderReportVersions: MongoManagerCollection<ReportBuilderReportModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = MongoManagerModel.create<ReportBuilderReportModel>({\n\t\t\tcollectionName: 'report-builder-reports',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: true,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: true,\n\t\t\tcreateLogs: true,\n\t\t\tcheckSchema: true,\n\t\t\tcollectionOptions: null\n\t\t});\n\t\tReportBuilderReports = model.collection_main;\n\t\tReportBuilderReports.createIndex({id_user: 1});\n\t\tReportBuilderReports.createIndex({shared_users: 1});\n\t\tReportBuilderReports.createIndex({report_name: 1, collection_root: 1});\n\t\tReportBuilderReportVersions = model.collection_version;\n\t}\n\telse {\n\t\tsetImmediate(() => {\n\t\t\tinitializeCollection();\n\t\t});\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/collections/report-builder-report.collection.ts"],"names":[],"mappings":"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","file":"report-builder-report.collection.js","sourcesContent":["import { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { ReportBuilderReportModel } from '../models/report-builder-report.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcollection_root: {\n\t\ttype: String\n\t},\n\tcollection_joins: {\n\t\ttype: Array,\n\t\toptional: true\n\t},\n\t'collection_joins.$': {\n\t\ttype: Object\n\t},\n\t'collection_joins.$.collection': {\n\t\ttype: String\n\t},\n\t'collection_joins.$.alias': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'collection_joins.$.local_key': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'collection_joins.$.foreign_key': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\treport_name: {\n\t\ttype: String\n\t},\n\tfields_sort: {\n\t\ttype: Array\n\t},\n\t'fields_sort.$': {\n\t\ttype: Object\n\t},\n\t'fields_sort.$.field': {\n\t\ttype: String\n\t},\n\t'fields_sort.$.order': {\n\t\ttype: String\n\t},\n\tfields_filter: {\n\t\ttype: Array\n\t},\n\t'fields_filter.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_custom: {\n\t\ttype: Array\n\t},\n\t'fields_custom.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_selected: {\n\t\ttype: Array\n\t},\n\t'fields_selected.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_total: {\n\t\ttype: Array\n\t},\n\t'fields_total.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tfields_link: {\n\t\ttype: Array\n\t},\n\t'fields_link.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tid_user: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tdate_created: {\n\t\ttype: Date\n\t},\n\tactive: {\n\t\ttype: Boolean,\n\t\toptional: true\n\t},\n\tshared_users: {\n\t\ttype: Array\n\t},\n\t'shared_users.$': {\n\t\ttype: String\n\t},\n\ttype: {\n\t\ttype: String\n\t},\n\tgroups_row: {\n\t\ttype: Array\n\t},\n\t'groups_row.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tgroups_column: {\n\t\ttype: Array\n\t},\n\t'groups_column.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tgroup_type: {\n\t\ttype: String\n\t},\n\tfields_layout: {\n\t\ttype: Array,\n\t\toptional: true\n\t},\n\t'fields_layout.$': {\n\t\ttype: Object,\n\t\tblackbox: true,\n\t\toptional: true\n\t},\n\tid_date_field: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tdate_interval: {\n\t\ttype: String,\n\t\toptional: true\n\t}\n};\n\nexport let ReportBuilderReports: MongoManagerCollection<ReportBuilderReportModel> = null;\nexport let ReportBuilderReportVersions: MongoManagerCollection<ReportBuilderReportModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = MongoManagerModel.create<ReportBuilderReportModel>({\n\t\t\tcollectionName: 'report-builder-reports',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: true,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: true,\n\t\t\tcreateLogs: true,\n\t\t\tcheckSchema: true,\n\t\t\tcollectionOptions: null\n\t\t});\n\t\tReportBuilderReports = model.collection_main;\n\t\tReportBuilderReports.createIndex({id_user: 1});\n\t\tReportBuilderReports.createIndex({shared_users: 1});\n\t\tReportBuilderReports.createIndex({report_name: 1, collection_root: 1});\n\t\tReportBuilderReportVersions = model.collection_version;\n\t}\n\telse {\n\t\tsetImmediate(() => {\n\t\t\tinitializeCollection();\n\t\t});\n\t}\n}\n"]}
|
package/methods/collections.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -58,6 +69,9 @@ var pagination_model_1 = require("../models/pagination.model");
|
|
|
58
69
|
var resolveio_server_app_1 = require("../resolveio-server-app");
|
|
59
70
|
var common_1 = require("../util/common");
|
|
60
71
|
var ISO_DATE_REGEX = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;
|
|
72
|
+
var SUPPORT_TICKET_COLLECTION = 'support-tickets';
|
|
73
|
+
var SUPPORT_TICKET_SYSTEM_USER_ID = 'resolveio';
|
|
74
|
+
var SUPPORT_TICKET_SYSTEM_USER = 'ResolveIO';
|
|
61
75
|
function coerceDateValue(value) {
|
|
62
76
|
if (value instanceof Date) {
|
|
63
77
|
return value;
|
|
@@ -107,6 +121,44 @@ function coerceDateFields(collectionRef, doc) {
|
|
|
107
121
|
coerceDatePath(doc, schemaKey.split('.'));
|
|
108
122
|
});
|
|
109
123
|
}
|
|
124
|
+
function normalizeSupportTicketMessage(message) {
|
|
125
|
+
if (!message || typeof message !== 'object' || Array.isArray(message)) {
|
|
126
|
+
return message;
|
|
127
|
+
}
|
|
128
|
+
var normalizedMessage = __assign({}, message);
|
|
129
|
+
var currentIdUser = typeof normalizedMessage.id_user === 'string' ? normalizedMessage.id_user.trim() : '';
|
|
130
|
+
if (currentIdUser) {
|
|
131
|
+
return normalizedMessage;
|
|
132
|
+
}
|
|
133
|
+
var normalizedUser = String(normalizedMessage.user || '').trim().toLowerCase();
|
|
134
|
+
var normalizedType = String(normalizedMessage.type || '').trim().toLowerCase();
|
|
135
|
+
var normalizedSource = String(normalizedMessage.source || '').trim().toLowerCase();
|
|
136
|
+
var normalizedVisibility = String(normalizedMessage.visibility || '').trim().toLowerCase();
|
|
137
|
+
var normalizedBadge = String(normalizedMessage.badge || '').trim().toLowerCase();
|
|
138
|
+
var isInternalSystemMessage = normalizedMessage.internal === true
|
|
139
|
+
|| normalizedType === 'resolveio'
|
|
140
|
+
|| normalizedType === 'internal'
|
|
141
|
+
|| normalizedSource.startsWith('support-')
|
|
142
|
+
|| normalizedSource.startsWith('support_')
|
|
143
|
+
|| normalizedVisibility === 'internal'
|
|
144
|
+
|| normalizedBadge === 'internal'
|
|
145
|
+
|| normalizedBadge === 'ai'
|
|
146
|
+
|| normalizedUser.startsWith('resolveio');
|
|
147
|
+
if (!isInternalSystemMessage) {
|
|
148
|
+
return normalizedMessage;
|
|
149
|
+
}
|
|
150
|
+
normalizedMessage.id_user = SUPPORT_TICKET_SYSTEM_USER_ID;
|
|
151
|
+
if (!String(normalizedMessage.user || '').trim()) {
|
|
152
|
+
normalizedMessage.user = SUPPORT_TICKET_SYSTEM_USER;
|
|
153
|
+
}
|
|
154
|
+
return normalizedMessage;
|
|
155
|
+
}
|
|
156
|
+
function normalizeDocumentBeforeReplace(collection, doc) {
|
|
157
|
+
if (!doc || collection !== SUPPORT_TICKET_COLLECTION || !Array.isArray(doc.messages)) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
doc.messages = doc.messages.map(function (message) { return normalizeSupportTicketMessage(message); });
|
|
161
|
+
}
|
|
110
162
|
function loadCollectionMethods(methodManager) {
|
|
111
163
|
methodManager.methods({
|
|
112
164
|
collectionListAll: {
|
|
@@ -295,6 +347,7 @@ function loadCollectionMethods(methodManager) {
|
|
|
295
347
|
if (!collectionRef) {
|
|
296
348
|
throw new Error('Error in Update Document Collection: Invalid collection');
|
|
297
349
|
}
|
|
350
|
+
normalizeDocumentBeforeReplace(collection, f_document);
|
|
298
351
|
coerceDateFields(collectionRef, f_document);
|
|
299
352
|
return [4 /*yield*/, collectionRef.replaceOne({ _id: f_document['_id'] }, f_document)];
|
|
300
353
|
case 1:
|
|
@@ -347,6 +400,7 @@ function loadCollectionMethods(methodManager) {
|
|
|
347
400
|
modifiedDoc_1[data.prop] = data.data;
|
|
348
401
|
});
|
|
349
402
|
if (!(!doc__v || modifiedDoc_1.__v === doc__v)) return [3 /*break*/, 4];
|
|
403
|
+
normalizeDocumentBeforeReplace(collection, modifiedDoc_1);
|
|
350
404
|
coerceDateFields(collectionRef, modifiedDoc_1);
|
|
351
405
|
return [4 /*yield*/, collectionRef.replaceOne({ _id: modifiedDoc_1._id }, modifiedDoc_1, {}, false, false, currDoc)];
|
|
352
406
|
case 3:
|
|
@@ -371,6 +425,7 @@ function loadCollectionMethods(methodManager) {
|
|
|
371
425
|
updatedDoc.__v = newCurrDocV;
|
|
372
426
|
currDoc._id = newCurrDocId;
|
|
373
427
|
currDoc.__v = newCurrDocV;
|
|
428
|
+
normalizeDocumentBeforeReplace(collection, updatedDoc);
|
|
374
429
|
coerceDateFields(collectionRef, updatedDoc);
|
|
375
430
|
return [4 /*yield*/, collectionRef.replaceOne({ _id: newCurrDocId }, updatedDoc, {}, false, false, currDoc)];
|
|
376
431
|
case 6:
|
|
@@ -414,6 +469,7 @@ function loadCollectionMethods(methodManager) {
|
|
|
414
469
|
currDoc = _a.sent();
|
|
415
470
|
if (!currDoc) return [3 /*break*/, 11];
|
|
416
471
|
if (!(currDoc.__v === f_document['__v'])) return [3 /*break*/, 4];
|
|
472
|
+
normalizeDocumentBeforeReplace(collection, f_document);
|
|
417
473
|
coerceDateFields(collectionRef, f_document);
|
|
418
474
|
return [4 /*yield*/, collectionRef.replaceOne({ _id: f_document['_id'] }, f_document, {}, false, false, currDoc)];
|
|
419
475
|
case 3:
|
|
@@ -439,6 +495,7 @@ function loadCollectionMethods(methodManager) {
|
|
|
439
495
|
updatedDoc.__v = newCurrDocV;
|
|
440
496
|
currDoc._id = newCurrDocId;
|
|
441
497
|
currDoc.__v = newCurrDocV;
|
|
498
|
+
normalizeDocumentBeforeReplace(collection, updatedDoc);
|
|
442
499
|
coerceDateFields(collectionRef, updatedDoc);
|
|
443
500
|
return [4 /*yield*/, collectionRef.replaceOne({ _id: newCurrDocId }, updatedDoc, {}, false, false, currDoc)];
|
|
444
501
|
case 6:
|
|
@@ -496,6 +553,7 @@ function loadCollectionMethods(methodManager) {
|
|
|
496
553
|
modifiedDoc_2[data.prop] = data.data;
|
|
497
554
|
});
|
|
498
555
|
if (!(modifiedDoc_2.__v === doc__v)) return [3 /*break*/, 4];
|
|
556
|
+
normalizeDocumentBeforeReplace(collection, modifiedDoc_2);
|
|
499
557
|
coerceDateFields(collectionRef, modifiedDoc_2);
|
|
500
558
|
return [4 /*yield*/, collectionRef.replaceOne({ _id: modifiedDoc_2._id }, modifiedDoc_2, {}, false, false, currDoc)];
|
|
501
559
|
case 3:
|
|
@@ -520,6 +578,7 @@ function loadCollectionMethods(methodManager) {
|
|
|
520
578
|
updatedDoc.__v = newCurrDocV;
|
|
521
579
|
currDoc._id = newCurrDocId;
|
|
522
580
|
currDoc.__v = newCurrDocV;
|
|
581
|
+
normalizeDocumentBeforeReplace(collection, updatedDoc);
|
|
523
582
|
coerceDateFields(collectionRef, updatedDoc);
|
|
524
583
|
return [4 /*yield*/, collectionRef.replaceOne({ _id: newCurrDocId }, updatedDoc, {}, false, false, currDoc)];
|
|
525
584
|
case 6:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/methods/collections.ts"],"names":[],"mappings":"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","file":"collections.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { MethodManager } from '../managers/method.manager';\nimport { PaginationOptions, PaginationOptionsSchema } from '../models/pagination.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { deepCopy, getMongoMergeUpdatedDoc, objectIdHexString } from '../util/common';\n\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\n\nfunction coerceDateValue(value: unknown): unknown {\n\tif (value instanceof Date) {\n\t\treturn value;\n\t}\n\n\tif (typeof value !== 'string' || !ISO_DATE_REGEX.test(value)) {\n\t\treturn value;\n\t}\n\n\tconst parsed = new Date(value);\n\treturn Number.isNaN(parsed.getTime()) ? value : parsed;\n}\n\nfunction coerceDatePath(target: any, segments: string[]) {\n\tif (!target || !segments.length) {\n\t\treturn;\n\t}\n\n\tconst [segment, ...rest] = segments;\n\n\tif (segment === '$') {\n\t\tif (Array.isArray(target)) {\n\t\t\ttarget.forEach(item => coerceDatePath(item, rest));\n\t\t}\n\t\treturn;\n\t}\n\n\tif (!Object.prototype.hasOwnProperty.call(target, segment)) {\n\t\treturn;\n\t}\n\n\tif (rest.length === 0) {\n\t\tconst updatedValue = coerceDateValue(target[segment]);\n\t\tif (updatedValue !== target[segment]) {\n\t\t\ttarget[segment] = updatedValue;\n\t\t}\n\t\treturn;\n\t}\n\n\tcoerceDatePath(target[segment], rest);\n}\n\nfunction coerceDateFields(collectionRef: any, doc: any) {\n\tif (!collectionRef || !collectionRef.simplschema || !doc) {\n\t\treturn;\n\t}\n\n\tconst schema = collectionRef.simplschema;\n\tconst schemaKeys = Object.keys(schema.schema());\n\n\tschemaKeys.forEach(schemaKey => {\n\t\tconst definition = schema.schema(schemaKey);\n\t\tconst typeDefs = definition?.type?.definitions;\n\t\tif (!typeDefs || !typeDefs.some(typeDef => typeDef.type === Date)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcoerceDatePath(doc, schemaKey.split('.'));\n\t});\n}\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find One Collection: Invalid collection');\n\t\t\t\t}\n\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).findOne(query);\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, {sort: sortQuery});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find With Options Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, optionsQuery);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\tdocument['__v'] = 0;\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertOne(document);\n\t\t\t\t\treturn id;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, documents: Object[]) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Many Documents Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocuments.forEach(document => {\n\t\t\t\t\t\tdocument['_id'] = objectIdHexString();\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertMany(documents);\n\t\t\t\t\treturn documents.map(a => a['_id']);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, f_document: Object) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Collection: Invalid collection');\n\t\t\t\t}\n\n\t\t\t\tcoerceDateFields(collectionRef, f_document);\n\t\t\t\tawait collectionRef.replaceOne({_id: f_document['_id']}, f_document);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v?: number) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await collectionRef.findOne({_id: doc_id});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!doc__v || modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\tcoerceDateFields(collectionRef, modifiedDoc);\n\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\tcoerceDateFields(collectionRef, updatedDoc);\n\t\t\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t// throw new Error('Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\tconsole.log(new Date(), 'Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error In Update Document Props Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, f_document: Object) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await collectionRef.findOne({_id: f_document['_id']});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\tcoerceDateFields(collectionRef, f_document);\n\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: f_document['_id']}, f_document, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\tlet oldDocV = f_document['__v'];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: newCurrDocId,\n\t\t\t\t\t\t\t\t\t\t__v: oldDocV\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\tcoerceDateFields(collectionRef, updatedDoc);\n\t\t\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + oldDocV);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await collectionRef.findOne({_id: doc_id}, null, true);\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\tcoerceDateFields(collectionRef, modifiedDoc);\n\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\tcoerceDateFields(collectionRef, updatedDoc);\n\t\t\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).deleteOne({_id: doc_id});\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document With Query Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).deleteOne(query);\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Documents With Query Collections: Invalid Collection');\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).deleteMany(query);\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/methods/collections.ts"],"names":[],"mappings":"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","file":"collections.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { MethodManager } from '../managers/method.manager';\nimport { PaginationOptions, PaginationOptionsSchema } from '../models/pagination.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { deepCopy, getMongoMergeUpdatedDoc, objectIdHexString } from '../util/common';\n\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\nconst SUPPORT_TICKET_COLLECTION = 'support-tickets';\nconst SUPPORT_TICKET_SYSTEM_USER_ID = 'resolveio';\nconst SUPPORT_TICKET_SYSTEM_USER = 'ResolveIO';\n\nfunction coerceDateValue(value: unknown): unknown {\n\tif (value instanceof Date) {\n\t\treturn value;\n\t}\n\n\tif (typeof value !== 'string' || !ISO_DATE_REGEX.test(value)) {\n\t\treturn value;\n\t}\n\n\tconst parsed = new Date(value);\n\treturn Number.isNaN(parsed.getTime()) ? value : parsed;\n}\n\nfunction coerceDatePath(target: any, segments: string[]) {\n\tif (!target || !segments.length) {\n\t\treturn;\n\t}\n\n\tconst [segment, ...rest] = segments;\n\n\tif (segment === '$') {\n\t\tif (Array.isArray(target)) {\n\t\t\ttarget.forEach(item => coerceDatePath(item, rest));\n\t\t}\n\t\treturn;\n\t}\n\n\tif (!Object.prototype.hasOwnProperty.call(target, segment)) {\n\t\treturn;\n\t}\n\n\tif (rest.length === 0) {\n\t\tconst updatedValue = coerceDateValue(target[segment]);\n\t\tif (updatedValue !== target[segment]) {\n\t\t\ttarget[segment] = updatedValue;\n\t\t}\n\t\treturn;\n\t}\n\n\tcoerceDatePath(target[segment], rest);\n}\n\nfunction coerceDateFields(collectionRef: any, doc: any) {\n\tif (!collectionRef || !collectionRef.simplschema || !doc) {\n\t\treturn;\n\t}\n\n\tconst schema = collectionRef.simplschema;\n\tconst schemaKeys = Object.keys(schema.schema());\n\n\tschemaKeys.forEach(schemaKey => {\n\t\tconst definition = schema.schema(schemaKey);\n\t\tconst typeDefs = definition?.type?.definitions;\n\t\tif (!typeDefs || !typeDefs.some(typeDef => typeDef.type === Date)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcoerceDatePath(doc, schemaKey.split('.'));\n\t});\n}\n\nfunction normalizeSupportTicketMessage(message: any): any {\n\tif (!message || typeof message !== 'object' || Array.isArray(message)) {\n\t\treturn message;\n\t}\n\n\tconst normalizedMessage = {\n\t\t...message\n\t};\n\tconst currentIdUser = typeof normalizedMessage.id_user === 'string' ? normalizedMessage.id_user.trim() : '';\n\tif (currentIdUser) {\n\t\treturn normalizedMessage;\n\t}\n\n\tconst normalizedUser = String(normalizedMessage.user || '').trim().toLowerCase();\n\tconst normalizedType = String(normalizedMessage.type || '').trim().toLowerCase();\n\tconst normalizedSource = String(normalizedMessage.source || '').trim().toLowerCase();\n\tconst normalizedVisibility = String(normalizedMessage.visibility || '').trim().toLowerCase();\n\tconst normalizedBadge = String(normalizedMessage.badge || '').trim().toLowerCase();\n\tconst isInternalSystemMessage = normalizedMessage.internal === true\n\t\t|| normalizedType === 'resolveio'\n\t\t|| normalizedType === 'internal'\n\t\t|| normalizedSource.startsWith('support-')\n\t\t|| normalizedSource.startsWith('support_')\n\t\t|| normalizedVisibility === 'internal'\n\t\t|| normalizedBadge === 'internal'\n\t\t|| normalizedBadge === 'ai'\n\t\t|| normalizedUser.startsWith('resolveio');\n\n\tif (!isInternalSystemMessage) {\n\t\treturn normalizedMessage;\n\t}\n\n\tnormalizedMessage.id_user = SUPPORT_TICKET_SYSTEM_USER_ID;\n\tif (!String(normalizedMessage.user || '').trim()) {\n\t\tnormalizedMessage.user = SUPPORT_TICKET_SYSTEM_USER;\n\t}\n\treturn normalizedMessage;\n}\n\nfunction normalizeDocumentBeforeReplace(collection: string, doc: any) {\n\tif (!doc || collection !== SUPPORT_TICKET_COLLECTION || !Array.isArray(doc.messages)) {\n\t\treturn;\n\t}\n\n\tdoc.messages = doc.messages.map((message: any) => normalizeSupportTicketMessage(message));\n}\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find One Collection: Invalid collection');\n\t\t\t\t}\n\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).findOne(query);\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, {sort: sortQuery});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find With Options Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, optionsQuery);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\tdocument['__v'] = 0;\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertOne(document);\n\t\t\t\t\treturn id;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, documents: Object[]) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Many Documents Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocuments.forEach(document => {\n\t\t\t\t\t\tdocument['_id'] = objectIdHexString();\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertMany(documents);\n\t\t\t\t\treturn documents.map(a => a['_id']);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, f_document: Object) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Collection: Invalid collection');\n\t\t\t\t}\n\n\t\t\t\tnormalizeDocumentBeforeReplace(collection, f_document);\n\t\t\t\tcoerceDateFields(collectionRef, f_document);\n\t\t\t\tawait collectionRef.replaceOne({_id: f_document['_id']}, f_document);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v?: number) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await collectionRef.findOne({_id: doc_id});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!doc__v || modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\tnormalizeDocumentBeforeReplace(collection, modifiedDoc);\n\t\t\t\t\t\t\tcoerceDateFields(collectionRef, modifiedDoc);\n\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\tnormalizeDocumentBeforeReplace(collection, updatedDoc);\n\t\t\t\t\t\t\t\t\tcoerceDateFields(collectionRef, updatedDoc);\n\t\t\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t// throw new Error('Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\tconsole.log(new Date(), 'Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error In Update Document Props Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, f_document: Object) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await collectionRef.findOne({_id: f_document['_id']});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\tnormalizeDocumentBeforeReplace(collection, f_document);\n\t\t\t\t\t\t\tcoerceDateFields(collectionRef, f_document);\n\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: f_document['_id']}, f_document, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\tlet oldDocV = f_document['__v'];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: newCurrDocId,\n\t\t\t\t\t\t\t\t\t\t__v: oldDocV\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\tnormalizeDocumentBeforeReplace(collection, updatedDoc);\n\t\t\t\t\t\t\t\t\tcoerceDateFields(collectionRef, updatedDoc);\n\t\t\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + oldDocV);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\tconst collectionRef = ResolveIOServer.getMongoManager().collection(collection);\n\t\t\t\tif (!collectionRef) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await collectionRef.findOne({_id: doc_id}, null, true);\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\tnormalizeDocumentBeforeReplace(collection, modifiedDoc);\n\t\t\t\t\t\t\tcoerceDateFields(collectionRef, modifiedDoc);\n\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\tnormalizeDocumentBeforeReplace(collection, updatedDoc);\n\t\t\t\t\t\t\t\t\tcoerceDateFields(collectionRef, updatedDoc);\n\t\t\t\t\t\t\t\t\tawait collectionRef.replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).deleteOne({_id: doc_id});\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document With Query Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).deleteOne(query);\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Documents With Query Collections: Invalid Collection');\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).deleteMany(query);\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/report-builder-report.model.ts"],"names":[],"mappings":"","file":"report-builder-report.model.js","sourcesContent":["import { CollectionDocument } from '../models/collection-document.model';\n\nexport interface ReportBuilderCollectionJoin {\n\tcollection: string;\n\talias?: string;\n\tlocal_key?: string;\n\tforeign_key?: string;\n}\n\nexport interface ReportBuilderReportModel extends CollectionDocument {\n\tcollection_root: string;\n\tcollection_joins?: ReportBuilderCollectionJoin[];\n\treport_name: string;\n\tfields_sort: ReportBuilderReportFieldsSort[];\n\tfields_filter: ReportBuilderReportFieldsFilterOrs[];\n\tfields_custom?: ReportBuilderReportCustomField[];\n\tfields_selected: ReportBuilderReportFieldsSelected[];\n\tfields_total: ReportBuilderReportFieldsTotal[];\n\tfields_link: ReportBuilderReportFieldsLink[];\n\tid_user: string;\n\tuser: string;\n\tdate_created: Date;\n\tshared_users: string[];\n\ttype: ReportBuilderReportType;\n\tgroup_type: string;\n\tgroups_row: ReportBuilderGroupsRow[];\n\tgroups_column: ReportBuilderGroupsRow[];\n\tid_date_field?: string;\n\tdate_interval?: string;\n\tfields_layout?: ReportBuilderLayoutColumn[];\n}\n\nexport interface ReportBuilderReportFieldsLink {\n\tfield_first: string;\n\tfield_second: string;\n\tid: number;\n}\n\nexport interface ReportBuilderReportFieldsTotal {\n\ttype: string;\n\tfields: string[];\n\tid: number;\n}\n\nexport interface ReportBuilderGroupsRow {\n\tfield: string;\n\tfieldPathName: string;\n\tid: string;\n\tcolumnName: string;\n\tfill_color?: string;\n\tfont_color?: string;\n\ttreeItem?: any;\n}\n\nexport type ReportBuilderReportType = 'List' | 'Group' | 'Dated';\n\nexport interface ReportBuilderReportFieldsSort { \n\tfield: string;\n\torder: string;\n}\n\nexport interface ReportBuilderReportFieldsFilterOrs {\n\tors: ReportBuilderReportFieldsFilter[];\n}\n\nexport interface ReportBuilderReportFieldsFilter {\n\tfield: string;\n\tfieldType: string;\n\tcondition: string;\n\tvalue: any;\n\thighValue: any;\n\tdateValue: any;\n\thighDateValue: any;\n\tbooleanValue: string;\n\tis_rolling: boolean;\n\trolling_interval: string;\n}\n\nexport interface ReportBuilderReportFieldsSelected {\n\tcollection_name: string;\n\tcolumnName: string;\n\tfieldName: string;\n\tfieldType: string;\n\tdistinctFieldValues: string[];\n\tfieldPath: string;\n\tlookup_collection: string;\n\tlookup_local_key: string;\n\tlookup_foreign_key: string;\n\tlookup_as: string;\n\ttext: string;\n\tvalue: string;\n\tisLeaf: boolean;\n\tisActive: boolean;\n\tisSelected: boolean;\n\tdepth: number;\n\tleafValueType: string;\n\tleafValueTypes: string[];\n\tleafFormatType: string;\n\tleafFormatTypes: string[];\n\tid?: string;\n\tshow: boolean;\n}\n\nexport interface ReportBuilderReportCustomField {\n\tid: string;\n\tcolumnName: string;\n\tselFieldId: string;\n\tleafValueType: string;\n\toperations: ReportBuilderReportCustomOp[];\n}\n\nexport interface ReportBuilderReportCustomOp {\n\tfields: ReportBuilderReportCustomOpField[];\n\toperation: string;\n}\n\nexport interface ReportBuilderReportCustomOpField {\n\tfield: string;\n}\n\nexport interface ReportBuilderLayoutColumn {\n\tid?: string;\n\theader: string;\n\tmappings: ReportBuilderLayoutMapping[];\n}\n\nexport interface ReportBuilderLayoutMapping {\n\tcollection: string;\n\tmode: 'variable' | 'text';\n\tfieldPath?: string;\n\tfieldId?: string;\n\ttext?: string;\n\tleafValueType?: string;\n\tleafFormatType?: string;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/models/report-builder-report.model.ts"],"names":[],"mappings":"","file":"report-builder-report.model.js","sourcesContent":["import { CollectionDocument } from '../models/collection-document.model';\n\nexport interface ReportBuilderCollectionJoin {\n\tcollection: string;\n\talias?: string;\n\tlocal_key?: string;\n\tforeign_key?: string;\n}\n\nexport interface ReportBuilderReportModel extends CollectionDocument {\n\tcollection_root: string;\n\tcollection_joins?: ReportBuilderCollectionJoin[];\n\treport_name: string;\n\tfields_sort: ReportBuilderReportFieldsSort[];\n\tfields_filter: ReportBuilderReportFieldsFilterOrs[];\n\tfields_custom?: ReportBuilderReportCustomField[];\n\tfields_selected: ReportBuilderReportFieldsSelected[];\n\tfields_total: ReportBuilderReportFieldsTotal[];\n\tfields_link: ReportBuilderReportFieldsLink[];\n\tid_user: string;\n\tuser: string;\n\tdate_created: Date;\n\tactive?: boolean;\n\tshared_users: string[];\n\ttype: ReportBuilderReportType;\n\tgroup_type: string;\n\tgroups_row: ReportBuilderGroupsRow[];\n\tgroups_column: ReportBuilderGroupsRow[];\n\tid_date_field?: string;\n\tdate_interval?: string;\n\tfields_layout?: ReportBuilderLayoutColumn[];\n}\n\nexport interface ReportBuilderReportFieldsLink {\n\tfield_first: string;\n\tfield_second: string;\n\tid: number;\n}\n\nexport interface ReportBuilderReportFieldsTotal {\n\ttype: string;\n\tfields: string[];\n\tid: number;\n}\n\nexport interface ReportBuilderGroupsRow {\n\tfield: string;\n\tfieldPathName: string;\n\tid: string;\n\tcolumnName: string;\n\tfill_color?: string;\n\tfont_color?: string;\n\ttreeItem?: any;\n}\n\nexport type ReportBuilderReportType = 'List' | 'Group' | 'Dated';\n\nexport interface ReportBuilderReportFieldsSort { \n\tfield: string;\n\torder: string;\n}\n\nexport interface ReportBuilderReportFieldsFilterOrs {\n\tors: ReportBuilderReportFieldsFilter[];\n}\n\nexport interface ReportBuilderReportFieldsFilter {\n\tfield: string;\n\tfieldType: string;\n\tcondition: string;\n\tvalue: any;\n\thighValue: any;\n\tdateValue: any;\n\thighDateValue: any;\n\tbooleanValue: string;\n\tis_rolling: boolean;\n\trolling_interval: string;\n}\n\nexport interface ReportBuilderReportFieldsSelected {\n\tcollection_name: string;\n\tcolumnName: string;\n\tfieldName: string;\n\tfieldType: string;\n\tdistinctFieldValues: string[];\n\tfieldPath: string;\n\tlookup_collection: string;\n\tlookup_local_key: string;\n\tlookup_foreign_key: string;\n\tlookup_as: string;\n\ttext: string;\n\tvalue: string;\n\tisLeaf: boolean;\n\tisActive: boolean;\n\tisSelected: boolean;\n\tdepth: number;\n\tleafValueType: string;\n\tleafValueTypes: string[];\n\tleafFormatType: string;\n\tleafFormatTypes: string[];\n\tid?: string;\n\tshow: boolean;\n}\n\nexport interface ReportBuilderReportCustomField {\n\tid: string;\n\tcolumnName: string;\n\tselFieldId: string;\n\tleafValueType: string;\n\toperations: ReportBuilderReportCustomOp[];\n}\n\nexport interface ReportBuilderReportCustomOp {\n\tfields: ReportBuilderReportCustomOpField[];\n\toperation: string;\n}\n\nexport interface ReportBuilderReportCustomOpField {\n\tfield: string;\n}\n\nexport interface ReportBuilderLayoutColumn {\n\tid?: string;\n\theader: string;\n\tmappings: ReportBuilderLayoutMapping[];\n}\n\nexport interface ReportBuilderLayoutMapping {\n\tcollection: string;\n\tmode: 'variable' | 'text';\n\tfieldPath?: string;\n\tfieldId?: string;\n\ttext?: string;\n\tleafValueType?: string;\n\tleafFormatType?: string;\n}\n"]}
|
package/package.json
CHANGED
package/services/codex-client.js
CHANGED
|
@@ -815,6 +815,15 @@ var CodexClient = /** @class */ (function () {
|
|
|
815
815
|
push(process.env.AI_TERMINAL_CODEX_FALLBACK_MODEL);
|
|
816
816
|
this.normalizeModelList(process.env.AI_DASHBOARD_CODEX_FALLBACK_MODELS).forEach(push);
|
|
817
817
|
push(process.env.AI_DASHBOARD_CODEX_FALLBACK_MODEL);
|
|
818
|
+
var primaryModel = this.normalizeOptionalString(this.config.model
|
|
819
|
+
|| (runFallbackModels === null || runFallbackModels === void 0 ? void 0 : runFallbackModels[0])
|
|
820
|
+
|| '');
|
|
821
|
+
if (/^gpt-5(?:\.\d+)?-codex$/i.test(primaryModel)) {
|
|
822
|
+
push('gpt-5-codex');
|
|
823
|
+
}
|
|
824
|
+
if (/^gpt-5(?:-codex|\.\d+-codex)$/i.test(primaryModel)) {
|
|
825
|
+
push('gpt-5.3-codex');
|
|
826
|
+
}
|
|
818
827
|
return models;
|
|
819
828
|
};
|
|
820
829
|
CodexClient.prototype.normalizeModelList = function (value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/codex-client.ts"],"names":[],"mappings":"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","file":"codex-client.js","sourcesContent":["import { promises as fs } from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { setTimeout as sleepTimeout } from 'timers/promises';\nexport interface CodexConfig {\n\tapiKey?: string;\n\tbaseUrl?: string;\n\tmodel?: string;\n\tfallbackModel?: string;\n\tfallbackModels?: string[];\n\tmaxRetries?: number;\n\tretryDelayMs?: number;\n}\n\n/* eslint-disable no-unused-vars -- Function type params are required for clarity. */\ntype StreamEventHandler = (event: any) => void | Promise<void>;\ntype StreamTextHandler = (delta: string, fullText: string) => void | Promise<void>;\ntype AgentMessageHandler = (text: string) => void | Promise<void>;\ntype UsageHandler = (usage: CodexUsageSummary | null) => void | Promise<void>;\ntype DynamicImport = (specifier: string) => Promise<any>;\n/* eslint-enable no-unused-vars */\n\ntype CodexModelFallbackPreference = {\n\tfallbackModel: string;\n\texpiresAt: number;\n\tupdatedAt: number;\n};\n\nexport interface CodexRunOptions {\n\ttimeoutMs?: number;\n\tthreadOptions?: CodexThreadOptions;\n\tthreadKey?: string;\n\treuseThread?: boolean;\n\tfallbackModels?: string[];\n\tonStreamEvent?: StreamEventHandler;\n\tonStreamText?: StreamTextHandler;\n\tonUsage?: UsageHandler;\n}\n\nexport interface CodexUsageSummary {\n\tinputTokens: number;\n\tcachedInputTokens: number;\n\toutputTokens: number;\n}\n\nexport type CodexThreadOptions = {\n\tmodel?: string;\n\tsandboxMode?: 'read-only' | 'workspace-write' | 'danger-full-access';\n\tworkingDirectory?: string;\n\tskipGitRepoCheck?: boolean;\n\tmodelReasoningEffort?: 'minimal' | 'none' | 'low' | 'medium' | 'high' | 'xhigh';\n\tnetworkAccessEnabled?: boolean;\n\twebSearchMode?: 'disabled' | 'cached' | 'live';\n\twebSearchEnabled?: boolean;\n\tapprovalPolicy?: 'never' | 'on-request' | 'on-failure' | 'untrusted';\n\tadditionalDirectories?: string[];\n};\n\nexport class CodexClient {\n\tprivate static readonly PING_PROMPT = \"Say 'pong'\";\n\tprivate static readonly MODEL_UNAVAILABLE_FALLBACK_FILE = path.join(os.tmpdir(), 'resolveio-codex-model-fallbacks.json');\n\tprivate static readonly DEFAULT_MODEL_UNAVAILABLE_TTL_MS = 6 * 60 * 60 * 1000;\n\tprivate static readonly MIN_MODEL_UNAVAILABLE_TTL_MS = 60 * 1000;\n\tprivate static readonly modelFallbackPreferences = new Map<string, CodexModelFallbackPreference>();\n\tprivate static modelFallbackPreferencesLoaded = false;\n\tprivate static modelFallbackPreferencesLoadPromise: Promise<void> | null = null;\n\tprivate codex: any | null = null;\n\tprivate codexInit: Promise<void> | null = null;\n\tprivate readonly threadCache = new Map<string, { thread: any; optionsKey: string; modelKey: string }>();\n\tprivate readonly debugEnabled = (process.env.AI_DASHBOARD_DEBUG || '').trim().toLowerCase() === 'true';\n\tprivate readonly streamEnabled = this.resolveStreamEnabled();\n\tprivate readonly cleanZdotdirEnabled = this.resolveCleanZdotdirEnabled();\n\tprivate zDotDir: string | null = null;\n\tprivate readonly defaultTimeoutMs = this.resolveDefaultTimeoutMs();\n\tprivate readonly pingEnabled = this.resolvePingEnabled();\n\tprivate readonly pingTimeoutMs = this.resolvePingTimeoutMs();\n\tprivate readonly modelUnavailableTtlMs = this.resolveModelUnavailableTtlMs();\n\tprivate readonly config: CodexConfig;\n\tprivate readonly defaultThreadOptions: CodexThreadOptions;\n\n\tconstructor(config: CodexConfig) {\n\t\tthis.config = config;\n\t\tif (!this.config.apiKey) {\n\t\t\tthrow new Error('AI API key is required for AI client');\n\t\t}\n\t\tthis.defaultThreadOptions = this.resolveDefaultThreadOptions();\n\t}\n\n\tasync run(prompt: string, options?: CodexRunOptions): Promise<string> {\n\t\tawait this.ensureModelFallbackPreferencesLoaded();\n\t\tconst maxRetries = this.normalizeRetryCount(this.config.maxRetries);\n\t\tconst retryDelayMs = this.normalizeRetryDelay(this.config.retryDelayMs);\n\t\tlet lastError: unknown = null;\n\t\tconst modelSequence = this.resolveModelSequence(options);\n\t\tfor (let modelIndex = 0; modelIndex < modelSequence.length; modelIndex += 1) {\n\t\t\tconst model = modelSequence[modelIndex];\n\t\t\tconst nextModel = modelSequence[modelIndex + 1];\n\t\t\tconst modelOptions = this.applyModelOverride(options, model);\n\t\t\tlet attempt = 0;\n\t\t\twhile (attempt <= maxRetries) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.log(`run model=${model || this.config.model || 'default'} attempt ${attempt + 1}/${maxRetries + 1}`);\n\t\t\t\t\tif (this.pingEnabled && !this.isPingPrompt(prompt)) {\n\t\t\t\t\t\tawait this.runPing(modelOptions?.threadOptions);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.streamEnabled && !this.isPingPrompt(prompt)) {\n\t\t\t\t\t\tconst result = await this.runStreamedOnce(prompt, modelOptions);\n\t\t\t\t\t\tawait this.clearModelFallbackPreference(model);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tconst result = await this.runOnce(prompt, modelOptions);\n\t\t\t\t\tawait this.clearModelFallbackPreference(model);\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\tlastError = error;\n\t\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\t\t\t\tthis.log(`run model=${model || this.config.model || 'default'} attempt ${attempt + 1} failed: ${message}`);\n\t\t\t\t\t\tif (nextModel && this.isModelAvailabilityError(error)) {\n\t\t\t\t\t\t\tawait this.rememberModelFallbackPreference(model, nextModel);\n\t\t\t\t\t\t\tthis.log(`model unavailable; retrying with fallback model ${nextModel}`);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.isCodexEnvironmentError(error)) {\n\t\t\t\t\t\t\tthis.recoverCodexEnvironment(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (attempt >= maxRetries || !this.isRetryableError(error)) {\n\t\t\t\t\t\t\tthrow lastError;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst delay = retryDelayMs * Math.pow(2, attempt);\n\t\t\t\t\t\tawait this.sleep(delay);\n\t\t\t\t\tattempt += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow lastError;\n\t}\n\n\tprivate async runStreamedOnce(prompt: string, options?: CodexRunOptions): Promise<string> {\n\t\tconst startedAt = Date.now();\n\t\tthis.log(`runStreamed start (promptLength=${prompt.length})`);\n\t\tconst thread = await this.startThread(options?.threadOptions, options?.threadKey, options?.reuseThread);\n\t\tconst timeoutMs = options?.timeoutMs ?? this.defaultTimeoutMs;\n\t\tconst controller = typeof AbortController !== 'undefined' ? new AbortController() : null;\n\t\tconst timeoutId = controller\n\t\t\t? setTimeout(() => controller.abort(), timeoutMs)\n\t\t\t: null;\n\t\tlet finalResponse = '';\n\t\tlet lastText = '';\n\t\tlet usageSummary: CodexUsageSummary | null = null;\n\t\ttry {\n\t\t\tconst { events } = await thread.runStreamed(prompt, controller ? { signal: controller.signal } : undefined);\n\t\t\tfor await (const event of events) {\n\t\t\t\tif (event?.type === 'turn.completed') {\n\t\t\t\t\tusageSummary = this.normalizeUsageSummary(event?.usage);\n\t\t\t\t}\n\t\t\t\tif (options?.onStreamEvent) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait options.onStreamEvent(event);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\t\t\t\tthis.log(`onStreamEvent failed: ${message}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait this.handleStreamEvent(event, async (text: string) => {\n\t\t\t\t\tconst next = text || '';\n\t\t\t\t\tif (!next) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst delta = next.startsWith(lastText) ? next.slice(lastText.length) : next;\n\t\t\t\t\tif (delta) {\n\t\t\t\t\t\tthis.logStreamText(delta);\n\t\t\t\t\t\tif (options?.onStreamText) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait options.onStreamText(delta, next);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\t\t\t\t\t\tthis.log(`onStreamText failed: ${message}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastText = next;\n\t\t\t\t\tfinalResponse = next;\n\t\t\t\t});\n\t\t\t\tif (event?.type === 'turn.failed') {\n\t\t\t\t\tthrow new Error(event.error?.message || 'AI run failed.');\n\t\t\t\t}\n\t\t\t\tif (event?.type === 'error') {\n\t\t\t\t\tthrow new Error(event.message || 'AI stream error.');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (controller?.signal?.aborted) {\n\t\t\t\tthis.log(`runStreamed timed out (durationMs=${Date.now() - startedAt})`);\n\t\t\t\tthrow new Error('AI request timed out.');\n\t\t\t}\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`runStreamed failed (durationMs=${Date.now() - startedAt}): ${message}`);\n\t\t\tthrow error;\n\t\t}\n\t\tfinally {\n\t\t\tif (timeoutId) {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t}\n\t\t}\n\t\tif (!finalResponse) {\n\t\t\tthrow new Error('AI returned no completion content.');\n\t\t}\n\t\tawait this.emitUsageSummary(options, usageSummary);\n\t\tthis.log(`runStreamed complete (contentLength=${finalResponse.length}, durationMs=${Date.now() - startedAt})`);\n\t\treturn finalResponse.trim();\n\t}\n\n\tprivate async runOnce(prompt: string, options?: CodexRunOptions): Promise<string> {\n\t\tconst startedAt = Date.now();\n\t\tthis.log(`runOnce start (promptLength=${prompt.length})`);\n\t\ttry {\n\t\t\tconst thread = await this.startThread(options?.threadOptions, options?.threadKey, options?.reuseThread);\n\t\t\tconst runPromise = thread.run(prompt);\n\t\t\tconst timeoutMs = options?.timeoutMs ?? this.defaultTimeoutMs;\n\t\t\tthis.log(`runOnce awaiting result (timeoutMs=${timeoutMs})`);\n\t\t\tconst result: any = await this.withTimeout(runPromise, timeoutMs);\n\t\t\tconst content = this.extractContent(result);\n\t\t\tif (!content) {\n\t\t\t\tthrow new Error('AI returned no completion content.');\n\t\t\t}\n\t\t\tawait this.emitUsageSummary(options, this.normalizeUsageSummary(result?.usage));\n\t\t\tthis.log(`runOnce complete (contentLength=${content.length}, durationMs=${Date.now() - startedAt})`);\n\t\t\treturn content;\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`runOnce failed (durationMs=${Date.now() - startedAt}): ${message}`);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate async startThread(threadOptions?: CodexThreadOptions, threadKey?: string, reuseThread = true): Promise<any> {\n\t\tawait this.ensureCodex();\n\t\tconst mergedOptions = this.mergeThreadOptions(threadOptions);\n\t\tconst optionsKey = this.buildThreadOptionsKey(mergedOptions);\n\t\tconst effectiveModel = mergedOptions?.model || this.config.model || 'default';\n\t\tconst modelKey = this.normalizeOptionalString(effectiveModel).toLowerCase() || 'default';\n\t\tconst cacheKey = this.buildThreadCacheKey(threadKey, mergedOptions);\n\t\tconst explicitThreadKey = (threadKey || '').trim();\n\t\tconst hasExplicitThreadKey = explicitThreadKey.length > 0;\n\t\tif (reuseThread && cacheKey) {\n\t\t\tconst existing = this.threadCache.get(cacheKey);\n\t\t\tif (existing) {\n\t\t\t\tconst sameOptions = existing.optionsKey === optionsKey;\n\t\t\t\tconst sameModel = existing.modelKey === modelKey;\n\t\t\t\tif (sameOptions || (hasExplicitThreadKey && sameModel)) {\n\t\t\t\t\tif (hasExplicitThreadKey && existing.optionsKey !== optionsKey) {\n\t\t\t\t\t\tthis.log(`startThread reuse explicit key (${cacheKey}) despite option change`);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.log(`startThread reuse (${cacheKey})`);\n\t\t\t\t\t}\n\t\t\t\t\treturn existing.thread;\n\t\t\t\t}\n\t\t\t\tif (hasExplicitThreadKey && !sameModel) {\n\t\t\t\t\tthis.log(`startThread explicit key (${cacheKey}) model changed (${existing.modelKey} -> ${modelKey}); creating new thread`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.log(`startThread (model=${effectiveModel})`);\n\t\tif (mergedOptions?.model) {\n\t\t\tthis.log(`startThread options: ${this.formatThreadOptions(mergedOptions)}`);\n\t\t\tconst thread = this.codex.startThread(mergedOptions);\n\t\t\tthis.log('startThread created with model override');\n\t\t\tif (cacheKey) {\n\t\t\t\tthis.threadCache.set(cacheKey, { thread, optionsKey, modelKey });\n\t\t\t}\n\t\t\treturn thread;\n\t\t}\n\t\tif (mergedOptions && Object.keys(mergedOptions).length) {\n\t\t\tthis.log(`startThread options: ${this.formatThreadOptions(mergedOptions)}`);\n\t\t}\n\t\tconst thread = this.codex.startThread(mergedOptions);\n\t\tthis.log('startThread created');\n\t\tif (cacheKey) {\n\t\t\tthis.threadCache.set(cacheKey, { thread, optionsKey, modelKey });\n\t\t}\n\t\treturn thread;\n\t}\n\n\tprivate extractContent(result: any): string {\n\t\tif (!result) {\n\t\t\treturn '';\n\t\t}\n\t\tif (typeof result.finalResponse === 'string') {\n\t\t\treturn result.finalResponse.trim();\n\t\t}\n\t\tif (typeof result === 'string') {\n\t\t\treturn result.trim();\n\t\t}\n\t\tif (Array.isArray(result.items)) {\n\t\t\tconst lastMessage = [...result.items].reverse().find((item: any) => item?.type === 'agent_message' && typeof item.text === 'string');\n\t\t\tif (lastMessage?.text) {\n\t\t\t\treturn lastMessage.text.trim();\n\t\t\t}\n\t\t}\n\t\tif (typeof result.output_text === 'string') {\n\t\t\treturn result.output_text.trim();\n\t\t}\n\t\tif (typeof result.outputText === 'string') {\n\t\t\treturn result.outputText.trim();\n\t\t}\n\t\tif (typeof result.content === 'string') {\n\t\t\treturn result.content.trim();\n\t\t}\n\t\tif (typeof result.text === 'string') {\n\t\t\treturn result.text.trim();\n\t\t}\n\t\tif (Array.isArray(result.content)) {\n\t\t\tconst text = result.content\n\t\t\t\t.map((part: any) => this.extractPartText(part))\n\t\t\t\t.join('')\n\t\t\t\t.trim();\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t\tif (Array.isArray(result.output)) {\n\t\t\tconst text = result.output\n\t\t\t\t.map((item: any) => {\n\t\t\t\t\tif (!item) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof item.text === 'string') {\n\t\t\t\t\t\treturn item.text;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof item.content === 'string') {\n\t\t\t\t\t\treturn item.content;\n\t\t\t\t\t}\n\t\t\t\t\tif (Array.isArray(item.content)) {\n\t\t\t\t\t\treturn item.content.map((part: any) => this.extractPartText(part)).join('');\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.trim();\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate async handleStreamEvent(event: any, onAgentMessage: AgentMessageHandler): Promise<void> {\n\t\tif (!event || !event.type) {\n\t\t\treturn;\n\t\t}\n\t\tswitch (event.type) {\n\t\t\tcase 'thread.started':\n\t\t\t\tthis.log(`stream thread.started (id=${event.thread_id || 'unknown'})`);\n\t\t\t\tbreak;\n\t\t\tcase 'turn.started':\n\t\t\t\tthis.log('stream turn.started');\n\t\t\t\tbreak;\n\t\t\tcase 'turn.completed':\n\t\t\t\tthis.log('stream turn.completed');\n\t\t\t\tbreak;\n\t\t\tcase 'item.started':\n\t\t\tcase 'item.updated':\n\t\t\tcase 'item.completed':\n\t\t\t\tawait this.handleStreamItem(event.item, onAgentMessage);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate normalizeUsageSummary(raw: any): CodexUsageSummary | null {\n\t\tif (!raw || typeof raw !== 'object') {\n\t\t\treturn null;\n\t\t}\n\t\tconst inputTokens = this.normalizeUsageToken(raw.input_tokens ?? raw.inputTokens);\n\t\tconst cachedInputTokens = this.normalizeUsageToken(raw.cached_input_tokens ?? raw.cachedInputTokens);\n\t\tconst outputTokens = this.normalizeUsageToken(raw.output_tokens ?? raw.outputTokens);\n\t\tif (inputTokens <= 0 && cachedInputTokens <= 0 && outputTokens <= 0) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\tinputTokens,\n\t\t\tcachedInputTokens,\n\t\t\toutputTokens\n\t\t};\n\t}\n\n\tprivate normalizeUsageToken(value: any): number {\n\t\tconst parsed = Number(value);\n\t\tif (!Number.isFinite(parsed) || parsed <= 0) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn Math.floor(parsed);\n\t}\n\n\tprivate async emitUsageSummary(options: CodexRunOptions | undefined, usage: CodexUsageSummary | null): Promise<void> {\n\t\tif (!options?.onUsage) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait options.onUsage(usage);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`onUsage failed: ${message}`);\n\t\t}\n\t}\n\n\tprivate async handleStreamItem(item: any, onAgentMessage: AgentMessageHandler): Promise<void> {\n\t\tif (!item || !item.type) {\n\t\t\treturn;\n\t\t}\n\t\tswitch (item.type) {\n\t\t\tcase 'agent_message':\n\t\t\t\tawait onAgentMessage(item.text || '');\n\t\t\t\tbreak;\n\t\t\tcase 'command_execution':\n\t\t\t\tif (item.command) {\n\t\t\t\t\tthis.log(`stream command: ${item.command} (${item.status || 'unknown'})`);\n\t\t\t\t}\n\t\t\t\tif (item.aggregated_output) {\n\t\t\t\t\tconst output = item.aggregated_output.length > 800\n\t\t\t\t\t\t? `${item.aggregated_output.slice(0, 800)}...`\n\t\t\t\t\t\t: item.aggregated_output;\n\t\t\t\t\tthis.log(`stream command output: ${output}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'file_change':\n\t\t\t\tif (Array.isArray(item.changes) && item.changes.length) {\n\t\t\t\t\tconst summary = item.changes.map((change: any) => `${change.kind}:${change.path}`).join(', ');\n\t\t\t\t\tthis.log(`stream file_change (${item.status || 'unknown'}): ${summary}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'mcp_tool_call':\n\t\t\t\tif (item.tool) {\n\t\t\t\t\tthis.log(`stream tool_call: ${item.tool} (${item.status || 'unknown'})`);\n\t\t\t\t}\n\t\t\t\tif (item.error?.message) {\n\t\t\t\t\tthis.log(`stream tool_call error: ${item.error.message}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'web_search':\n\t\t\t\tif (item.query) {\n\t\t\t\t\tthis.log(`stream web_search: ${item.query}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'todo_list':\n\t\t\t\tif (Array.isArray(item.items)) {\n\t\t\t\t\tconst total = item.items.length;\n\t\t\t\t\tconst done = item.items.filter((entry: any) => entry?.completed).length;\n\t\t\t\t\tthis.log(`stream todo_list: ${done}/${total} completed`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'reasoning':\n\t\t\t\tif (item.text) {\n\t\t\t\t\tconst snippet = item.text.length > 200 ? `${item.text.slice(0, 200)}...` : item.text;\n\t\t\t\t\tthis.log(`stream reasoning: ${snippet}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tif (item.message) {\n\t\t\t\t\tthis.log(`stream error: ${item.message}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate logStreamText(text: string): void {\n\t\tif (!this.debugEnabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst lines = text.split(/\\r?\\n/);\n\t\tfor (const line of lines) {\n\t\t\tthis.log(`stream: ${line}`);\n\t\t}\n\t}\n\n\tprivate extractPartText(part: any): string {\n\t\tif (!part) {\n\t\t\treturn '';\n\t\t}\n\t\tif (typeof part === 'string') {\n\t\t\treturn part;\n\t\t}\n\t\tif (typeof part.text === 'string') {\n\t\t\treturn part.text;\n\t\t}\n\t\tif (typeof part.content === 'string') {\n\t\t\treturn part.content;\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate async withTimeout<T>(promise: Promise<T>, timeoutMs: number): Promise<T> {\n\t\tlet done = false;\n\t\tconst startedAt = Date.now();\n\t\tconst heartbeatMs = Math.max(10000, Math.min(30000, Math.floor(timeoutMs / 4)));\n\t\tconst timeoutPromise = (async (): Promise<T> => {\n\t\t\twhile (!done) {\n\t\t\t\tconst elapsed = Date.now() - startedAt;\n\t\t\t\tif (elapsed >= timeoutMs) {\n\t\t\t\t\tthrow new Error('AI request timed out.');\n\t\t\t\t}\n\t\t\t\tconst remaining = timeoutMs - elapsed;\n\t\t\t\tawait sleepTimeout(Math.min(heartbeatMs, remaining));\n\t\t\t\tif (done) {\n\t\t\t\t\treturn await promise;\n\t\t\t\t}\n\t\t\t\tconst currentElapsed = Date.now() - startedAt;\n\t\t\t\tif (currentElapsed >= timeoutMs) {\n\t\t\t\t\tthrow new Error('AI request timed out.');\n\t\t\t\t}\n\t\t\t\tconst currentRemaining = Math.max(0, timeoutMs - currentElapsed);\n\t\t\t\tthis.log(`runOnce waiting (elapsedMs=${currentElapsed}, remainingMs=${currentRemaining})`);\n\t\t\t}\n\t\t\treturn await promise;\n\t\t})();\n\t\ttry {\n\t\t\treturn await Promise.race([promise, timeoutPromise]);\n\t\t}\n\t\tfinally {\n\t\t\tdone = true;\n\t\t}\n\t}\n\n\tprivate normalizeRetryCount(value?: number): number {\n\t\tif (typeof value !== 'number' || Number.isNaN(value)) {\n\t\t\treturn 2;\n\t\t}\n\t\treturn Math.max(0, Math.floor(value));\n\t}\n\n\tprivate normalizeRetryDelay(value?: number): number {\n\t\tif (typeof value !== 'number' || Number.isNaN(value)) {\n\t\t\treturn 500;\n\t\t}\n\t\treturn Math.max(100, Math.floor(value));\n\t}\n\n\tprivate resolveModelSequence(options?: CodexRunOptions): string[] {\n\t\tconst primary = this.normalizeOptionalString(options?.threadOptions?.model || this.config.model);\n\t\tconst fallbackModels = this.collectFallbackModels(options?.fallbackModels);\n\t\tconst sequence: string[] = [];\n\t\tconst push = (value: any) => {\n\t\t\tconst normalized = this.normalizeOptionalString(value);\n\t\t\tif (!normalized || sequence.includes(normalized)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsequence.push(normalized);\n\t\t};\n\t\tconst preferredFallback = this.getModelFallbackPreference(primary);\n\t\tif (preferredFallback) {\n\t\t\tpush(preferredFallback);\n\t\t\tthis.log(`sticky model fallback active: ${primary} -> ${preferredFallback}`);\n\t\t}\n\t\tpush(primary);\n\t\tfallbackModels.forEach(push);\n\t\tif (!sequence.length) {\n\t\t\tsequence.push('');\n\t\t}\n\t\treturn sequence;\n\t}\n\n\tprivate collectFallbackModels(runFallbackModels?: string[]): string[] {\n\t\tconst models: string[] = [];\n\t\tconst push = (value: any) => {\n\t\t\tconst normalized = this.normalizeOptionalString(value);\n\t\t\tif (!normalized || models.includes(normalized)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tmodels.push(normalized);\n\t\t};\n\t\tthis.normalizeModelList(runFallbackModels).forEach(push);\n\t\tthis.normalizeModelList(this.config.fallbackModels).forEach(push);\n\t\tpush(this.config.fallbackModel);\n\t\tthis.normalizeModelList(process.env.AI_ASSISTANT_CODEX_FALLBACK_MODELS).forEach(push);\n\t\tpush(process.env.AI_ASSISTANT_CODEX_FALLBACK_MODEL);\n\t\tthis.normalizeModelList(process.env.AI_TERMINAL_CODEX_FALLBACK_MODELS).forEach(push);\n\t\tpush(process.env.AI_TERMINAL_CODEX_FALLBACK_MODEL);\n\t\tthis.normalizeModelList(process.env.AI_DASHBOARD_CODEX_FALLBACK_MODELS).forEach(push);\n\t\tpush(process.env.AI_DASHBOARD_CODEX_FALLBACK_MODEL);\n\t\treturn models;\n\t}\n\n\tprivate normalizeModelList(value: any): string[] {\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.map(entry => this.normalizeOptionalString(entry))\n\t\t\t\t.filter(Boolean);\n\t\t}\n\t\tconst raw = this.normalizeOptionalString(value);\n\t\tif (!raw) {\n\t\t\treturn [];\n\t\t}\n\t\treturn raw\n\t\t\t.split(',')\n\t\t\t.map(entry => this.normalizeOptionalString(entry))\n\t\t\t.filter(Boolean);\n\t}\n\n\tprivate applyModelOverride(options: CodexRunOptions | undefined, model: string): CodexRunOptions {\n\t\tconst nextThreadOptions: CodexThreadOptions = {\n\t\t\t...(options?.threadOptions || {})\n\t\t};\n\t\tif (model) {\n\t\t\tnextThreadOptions.model = model;\n\t\t}\n\t\telse {\n\t\t\tdelete nextThreadOptions.model;\n\t\t}\n\t\treturn {\n\t\t\t...(options || {}),\n\t\t\tthreadOptions: nextThreadOptions\n\t\t};\n\t}\n\n\tprivate isModelAvailabilityError(error: unknown): boolean {\n\t\tconst message = error instanceof Error ? error.message : String(error || '');\n\t\tconst normalized = message.toLowerCase();\n\t\tif (!normalized.includes('model')) {\n\t\t\treturn false;\n\t\t}\n\t\tif (/does not exist|not found|unknown model|invalid model|unsupported model|model_not_found|no such model/.test(normalized)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (/not available|unavailable|not enabled|not allowed|do not have access|don't have access|insufficient permissions/.test(normalized)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn /404/.test(normalized) && /model/.test(normalized);\n\t}\n\n\tprivate isRetryableError(error: unknown): boolean {\n\t\tconst message = error instanceof Error ? error.message : String(error || '');\n\t\tif (/AI returned no completion content|Codex returned no completion content/i.test(message)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (this.isCodexEnvironmentError(error)) {\n\t\t\treturn true;\n\t\t}\n\t\tconst statusMatch = message.match(/\\\\b(429|5\\\\d{2})\\\\b/);\n\t\tif (statusMatch) {\n\t\t\treturn true;\n\t\t}\n\t\treturn /ECONNRESET|ETIMEDOUT|EAI_AGAIN|ENOTFOUND|fetch failed|timed out|timeout/i.test(message);\n\t}\n\n\tprivate isCodexEnvironmentError(error: unknown): boolean {\n\t\tconst message = error instanceof Error ? error.message : String(error || '');\n\t\treturn /error finding codex home|could not update path: no such file or directory/i.test(message);\n\t}\n\n\tprivate recoverCodexEnvironment(error: unknown): void {\n\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\tthis.log(`recovering codex environment after error: ${message}`);\n\t\tthis.threadCache.clear();\n\t\tthis.codex = null;\n\t\tthis.codexInit = null;\n\t\tthis.zDotDir = null;\n\t}\n\n\tprivate normalizeOptionalString(value: any): string {\n\t\treturn typeof value === 'string' ? value.trim() : '';\n\t}\n\n\tprivate resolveModelUnavailableTtlMs(): number {\n\t\tconst raw = Number(\n\t\t\tprocess.env.AI_DASHBOARD_CODEX_MODEL_UNAVAILABLE_TTL_MS\n\t\t\t|| process.env.AI_ASSISTANT_CODEX_MODEL_UNAVAILABLE_TTL_MS\n\t\t);\n\t\tif (Number.isFinite(raw) && raw >= CodexClient.MIN_MODEL_UNAVAILABLE_TTL_MS) {\n\t\t\treturn Math.floor(raw);\n\t\t}\n\t\treturn CodexClient.DEFAULT_MODEL_UNAVAILABLE_TTL_MS;\n\t}\n\n\tprivate async ensureModelFallbackPreferencesLoaded(): Promise<void> {\n\t\tif (CodexClient.modelFallbackPreferencesLoaded) {\n\t\t\tthis.pruneModelFallbackPreferences();\n\t\t\treturn;\n\t\t}\n\t\tif (CodexClient.modelFallbackPreferencesLoadPromise !== null) {\n\t\t\tawait CodexClient.modelFallbackPreferencesLoadPromise;\n\t\t\tthis.pruneModelFallbackPreferences();\n\t\t\treturn;\n\t\t}\n\t\tCodexClient.modelFallbackPreferencesLoadPromise = (async () => {\n\t\t\ttry {\n\t\t\t\tconst raw = await fs.readFile(CodexClient.MODEL_UNAVAILABLE_FALLBACK_FILE, 'utf8');\n\t\t\t\tconst parsed = JSON.parse(raw);\n\t\t\t\tif (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tObject.entries(parsed).forEach(([model, entry]) => {\n\t\t\t\t\tconst key = this.normalizeOptionalString(model);\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst fallbackModel = this.normalizeOptionalString((entry as any)?.fallbackModel);\n\t\t\t\t\tconst expiresAt = Number((entry as any)?.expiresAt);\n\t\t\t\t\tconst updatedAt = Number((entry as any)?.updatedAt);\n\t\t\t\t\tif (!fallbackModel || !Number.isFinite(expiresAt) || expiresAt <= Date.now()) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tCodexClient.modelFallbackPreferences.set(key, {\n\t\t\t\t\t\tfallbackModel,\n\t\t\t\t\t\texpiresAt: Math.floor(expiresAt),\n\t\t\t\t\t\tupdatedAt: Number.isFinite(updatedAt) ? Math.floor(updatedAt) : Date.now()\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\tcatch {\n\t\t\t\t// Ignore cache load errors.\n\t\t\t}\n\t\t\tfinally {\n\t\t\t\tCodexClient.modelFallbackPreferencesLoaded = true;\n\t\t\t\tCodexClient.modelFallbackPreferencesLoadPromise = null;\n\t\t\t}\n\t\t})();\n\t\tawait CodexClient.modelFallbackPreferencesLoadPromise;\n\t\tthis.pruneModelFallbackPreferences();\n\t}\n\n\tprivate pruneModelFallbackPreferences(now = Date.now()): void {\n\t\tArray.from(CodexClient.modelFallbackPreferences.entries()).forEach(([model, entry]) => {\n\t\t\tif (!entry || !Number.isFinite(entry.expiresAt) || entry.expiresAt <= now) {\n\t\t\t\tCodexClient.modelFallbackPreferences.delete(model);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getModelFallbackPreference(model: string): string {\n\t\tconst normalizedModel = this.normalizeOptionalString(model);\n\t\tif (!normalizedModel) {\n\t\t\treturn '';\n\t\t}\n\t\tthis.pruneModelFallbackPreferences();\n\t\tconst entry = CodexClient.modelFallbackPreferences.get(normalizedModel);\n\t\tif (!entry || entry.expiresAt <= Date.now()) {\n\t\t\tif (entry) {\n\t\t\t\tCodexClient.modelFallbackPreferences.delete(normalizedModel);\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t\treturn entry.fallbackModel;\n\t}\n\n\tprivate async rememberModelFallbackPreference(model: string, fallbackModel: string): Promise<void> {\n\t\tconst normalizedModel = this.normalizeOptionalString(model);\n\t\tconst normalizedFallback = this.normalizeOptionalString(fallbackModel);\n\t\tif (!normalizedModel || !normalizedFallback || normalizedModel === normalizedFallback) {\n\t\t\treturn;\n\t\t}\n\t\tconst now = Date.now();\n\t\tCodexClient.modelFallbackPreferences.set(normalizedModel, {\n\t\t\tfallbackModel: normalizedFallback,\n\t\t\texpiresAt: now + this.modelUnavailableTtlMs,\n\t\t\tupdatedAt: now\n\t\t});\n\t\tthis.pruneModelFallbackPreferences(now);\n\t\tawait this.persistModelFallbackPreferences();\n\t}\n\n\tprivate async clearModelFallbackPreference(model: string): Promise<void> {\n\t\tconst normalizedModel = this.normalizeOptionalString(model);\n\t\tif (!normalizedModel) {\n\t\t\treturn;\n\t\t}\n\t\tif (!CodexClient.modelFallbackPreferences.has(normalizedModel)) {\n\t\t\treturn;\n\t\t}\n\t\tCodexClient.modelFallbackPreferences.delete(normalizedModel);\n\t\tawait this.persistModelFallbackPreferences();\n\t}\n\n\tprivate async persistModelFallbackPreferences(): Promise<void> {\n\t\tthis.pruneModelFallbackPreferences();\n\t\tif (!CodexClient.modelFallbackPreferences.size) {\n\t\t\ttry {\n\t\t\t\tawait fs.unlink(CodexClient.MODEL_UNAVAILABLE_FALLBACK_FILE);\n\t\t\t}\n\t\t\tcatch {\n\t\t\t\t// Ignore file cleanup errors.\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst serialized: Record<string, CodexModelFallbackPreference> = {};\n\t\tCodexClient.modelFallbackPreferences.forEach((entry, model) => {\n\t\t\tserialized[model] = entry;\n\t\t});\n\t\ttry {\n\t\t\tawait fs.writeFile(CodexClient.MODEL_UNAVAILABLE_FALLBACK_FILE, JSON.stringify(serialized), 'utf8');\n\t\t}\n\t\tcatch {\n\t\t\t// Ignore cache persistence errors.\n\t\t}\n\t}\n\n\tprivate async sleep(ms: number): Promise<void> {\n\t\tawait sleepTimeout(ms);\n\t}\n\n\tprivate async ensureCodex(): Promise<void> {\n\t\tif (this.codex) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.codexInit !== null) {\n\t\t\tawait this.codexInit;\n\t\t\treturn;\n\t\t}\n\t\tthis.codexInit = (async () => {\n\t\t\tthis.log('Loading AI SDK module...');\n\t\t\tconst importer = new Function('specifier', 'return import(specifier)') as DynamicImport;\n\t\t\tconst mod = await importer('@openai/codex-sdk');\n\t\t\tconst CodexCtor = mod?.Codex || mod?.default?.Codex || mod?.default || mod;\n\t\t\tif (!CodexCtor) {\n\t\t\t\tthrow new Error('AI SDK export not found.');\n\t\t\t}\n\t\t\tthis.log('AI SDK module loaded.');\n\t\t\tconst env = await this.buildCodexEnv();\n\t\t\tthis.codex = new CodexCtor({\n\t\t\t\tapiKey: this.config.apiKey,\n\t\t\t\tbaseUrl: this.config.baseUrl,\n\t\t\t\tmodel: this.config.model,\n\t\t\t\tenv\n\t\t\t});\n\t\t\tthis.log('AI client initialized.');\n\t\t})();\n\t\tawait this.codexInit;\n\t}\n\n\tprivate log(message: string): void {\n\t\tif (!this.debugEnabled) {\n\t\t\treturn;\n\t\t}\n\t\tconsole.log(`[AI-Dashboard][AI] ${message}`);\n\t}\n\n\tprivate resolveDefaultTimeoutMs(): number {\n\t\tconst raw = Number(process.env.AI_DASHBOARD_CODEX_TIMEOUT_MS || process.env.AI_DASHBOARD_AGENT_TIMEOUT_MS);\n\t\tif (Number.isFinite(raw) && raw > 0) {\n\t\t\treturn Math.floor(raw);\n\t\t}\n\t\treturn 600000;\n\t}\n\n\tprivate resolveStreamEnabled(): boolean {\n\t\tconst raw = (process.env.AI_DASHBOARD_CODEX_STREAM || '').trim().toLowerCase();\n\t\tif (!raw) {\n\t\t\treturn this.debugEnabled;\n\t\t}\n\t\tif (['true', '1', 'yes', 'y', 'on'].includes(raw)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (['false', '0', 'no', 'n', 'off'].includes(raw)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.debugEnabled;\n\t}\n\n\tprivate resolveCleanZdotdirEnabled(): boolean {\n\t\tconst raw = (process.env.AI_DASHBOARD_CODEX_CLEAN_ZDOTDIR ?? '').trim().toLowerCase();\n\t\tif (!raw) {\n\t\t\treturn true;\n\t\t}\n\t\tif (['false', '0', 'no', 'n', 'off'].includes(raw)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (['true', '1', 'yes', 'y', 'on'].includes(raw)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate async buildCodexEnv(): Promise<Record<string, string>> {\n\t\tconst env: Record<string, string> = {};\n\t\tfor (const [key, value] of Object.entries(process.env)) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tenv[key] = value;\n\t\t\t}\n\t\t}\n\t\tif (!this.normalizeOptionalString(env.HOME)) {\n\t\t\tconst fallbackHome = this.normalizeOptionalString(process.env.HOME || os.homedir());\n\t\t\tif (fallbackHome) {\n\t\t\t\tenv.HOME = fallbackHome;\n\t\t\t}\n\t\t}\n\t\tawait this.ensureCodexHome(env);\n\t\tif (this.cleanZdotdirEnabled) {\n\t\t\tenv.ZDOTDIR = await this.ensureZdotdir();\n\t\t}\n\t\treturn env;\n\t}\n\n\tprivate async ensureCodexHome(env: Record<string, string>): Promise<void> {\n\t\tconst current = this.normalizeOptionalString(env.CODEX_HOME || process.env.CODEX_HOME);\n\t\tconst homeRoot = this.normalizeOptionalString(env.HOME || process.env.HOME || os.homedir());\n\t\tconst primary = current || (homeRoot ? path.join(homeRoot, '.codex') : path.join(os.tmpdir(), 'resolveio-codex-home'));\n\t\ttry {\n\t\t\tawait fs.mkdir(path.join(primary, 'sessions'), { recursive: true });\n\t\t\tenv.CODEX_HOME = primary;\n\t\t\tprocess.env.CODEX_HOME = primary;\n\t\t\treturn;\n\t\t}\n\t\tcatch {\n\t\t\tconst fallback = path.join(os.tmpdir(), 'resolveio-codex-home');\n\t\t\tawait fs.mkdir(path.join(fallback, 'sessions'), { recursive: true });\n\t\t\tenv.CODEX_HOME = fallback;\n\t\t\tprocess.env.CODEX_HOME = fallback;\n\t\t}\n\t}\n\n\tprivate async ensureZdotdir(): Promise<string> {\n\t\tif (this.zDotDir) {\n\t\t\treturn this.zDotDir;\n\t\t}\n\t\tconst override = (process.env.AI_DASHBOARD_CODEX_ZDOTDIR || '').trim();\n\t\tconst dir = override || path.join(os.tmpdir(), 'codex-zdotdir');\n\t\tawait fs.mkdir(dir, { recursive: true });\n\t\tawait Promise.allSettled([\n\t\t\tfs.writeFile(path.join(dir, '.zshrc'), '', { flag: 'a' }),\n\t\t\tfs.writeFile(path.join(dir, '.zprofile'), '', { flag: 'a' })\n\t\t]);\n\t\tthis.zDotDir = dir;\n\t\treturn dir;\n\t}\n\n\tprivate resolvePingEnabled(): boolean {\n\t\treturn this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_PING, false);\n\t}\n\n\tprivate resolvePingTimeoutMs(): number {\n\t\tconst raw = Number(process.env.AI_DASHBOARD_CODEX_PING_TIMEOUT_MS);\n\t\tif (Number.isFinite(raw) && raw > 0) {\n\t\t\treturn Math.floor(raw);\n\t\t}\n\t\treturn 10000;\n\t}\n\n\tprivate resolveDefaultThreadOptions(): CodexThreadOptions {\n\t\tconst approvalPolicy = this.normalizeApprovalPolicy(process.env.AI_DASHBOARD_CODEX_APPROVAL_POLICY);\n\t\tconst sandboxMode = this.normalizeSandboxMode(process.env.AI_DASHBOARD_CODEX_SANDBOX_MODE, 'workspace-write');\n\t\tconst skipGitRepoCheck = this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_SKIP_GIT_CHECK, true);\n\t\tconst webSearchMode = this.normalizeWebSearchMode(process.env.AI_DASHBOARD_CODEX_WEB_SEARCH_MODE);\n\t\tconst webSearchEnabled = this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_WEB_SEARCH_ENABLED, false);\n\t\tconst networkAccessEnabled = this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_NETWORK_ACCESS_ENABLED, false);\n\t\tconst modelReasoningEffort = this.normalizeModelReasoningEffort(process.env.AI_DASHBOARD_CODEX_REASONING_EFFORT);\n\t\treturn {\n\t\t\tmodel: this.config.model,\n\t\t\tapprovalPolicy,\n\t\t\tsandboxMode,\n\t\t\tskipGitRepoCheck,\n\t\t\twebSearchMode,\n\t\t\twebSearchEnabled,\n\t\t\tnetworkAccessEnabled,\n\t\t\tmodelReasoningEffort\n\t\t};\n\t}\n\n\tprivate mergeThreadOptions(overrides?: CodexThreadOptions): CodexThreadOptions | undefined {\n\t\tconst merged: CodexThreadOptions = {\n\t\t\t...this.defaultThreadOptions,\n\t\t\t...(overrides || {})\n\t\t};\n\t\tconst effectiveModel = this.normalizeOptionalString(merged.model || this.config.model);\n\t\tconst normalizedEffort = this.normalizeModelReasoningEffortForModel(effectiveModel, merged.modelReasoningEffort);\n\t\tif (normalizedEffort && normalizedEffort !== merged.modelReasoningEffort) {\n\t\t\tthis.log(`normalized reasoning effort for model=${effectiveModel || 'default'}: ${merged.modelReasoningEffort} -> ${normalizedEffort}`);\n\t\t\tmerged.modelReasoningEffort = normalizedEffort;\n\t\t}\n\t\tconst cleaned = Object.entries(merged).reduce((acc, [key, value]) => {\n\t\t\tif (value === undefined || value === null || value === '') {\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\t(acc as any)[key] = value;\n\t\t\treturn acc;\n\t\t}, {} as CodexThreadOptions);\n\t\treturn Object.keys(cleaned).length ? cleaned : undefined;\n\t}\n\n\tprivate normalizeApprovalPolicy(value?: string): CodexThreadOptions['approvalPolicy'] {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'never' || normalized === 'on-request' || normalized === 'on-failure' || normalized === 'untrusted') {\n\t\t\treturn normalized as CodexThreadOptions['approvalPolicy'];\n\t\t}\n\t\treturn 'never';\n\t}\n\n\tprivate normalizeSandboxMode(value?: string, fallback: CodexThreadOptions['sandboxMode'] = 'read-only'): CodexThreadOptions['sandboxMode'] {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'read-only' || normalized === 'workspace-write' || normalized === 'danger-full-access') {\n\t\t\treturn normalized as CodexThreadOptions['sandboxMode'];\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate normalizeWebSearchMode(value?: string): CodexThreadOptions['webSearchMode'] | undefined {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'disabled' || normalized === 'cached' || normalized === 'live') {\n\t\t\treturn normalized as CodexThreadOptions['webSearchMode'];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate normalizeModelReasoningEffort(value?: string): CodexThreadOptions['modelReasoningEffort'] | undefined {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'minimal' || normalized === 'none' || normalized === 'low' || normalized === 'medium' || normalized === 'high' || normalized === 'xhigh') {\n\t\t\treturn normalized as CodexThreadOptions['modelReasoningEffort'];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate normalizeModelReasoningEffortForModel(\n\t\tmodel: string,\n\t\teffort?: CodexThreadOptions['modelReasoningEffort']\n\t): CodexThreadOptions['modelReasoningEffort'] | undefined {\n\t\tif (!effort) {\n\t\t\treturn effort;\n\t\t}\n\t\tconst normalizedModel = this.normalizeOptionalString(model).toLowerCase();\n\t\tif (effort === 'minimal' && (!normalizedModel || normalizedModel.startsWith('gpt-5') || normalizedModel.includes('codex'))) {\n\t\t\treturn 'low';\n\t\t}\n\t\treturn effort;\n\t}\n\n\tprivate normalizeBoolean(value: string | undefined, fallback: boolean): boolean {\n\t\tif (!value) {\n\t\t\treturn fallback;\n\t\t}\n\t\tconst normalized = value.trim().toLowerCase();\n\t\tif (['true', '1', 'yes', 'y', 'on'].includes(normalized)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (['false', '0', 'no', 'n', 'off'].includes(normalized)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate formatThreadOptions(options: CodexThreadOptions): string {\n\t\tconst summary: Record<string, string> = {};\n\t\tObject.entries(options).forEach(([key, value]) => {\n\t\t\tif (value === undefined || value === null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsummary[key] = String(value);\n\t\t});\n\t\treturn JSON.stringify(summary);\n\t}\n\n\tprivate buildThreadOptionsKey(options?: CodexThreadOptions): string {\n\t\tif (!options) {\n\t\t\treturn '';\n\t\t}\n\t\tconst ordered: Record<string, string> = {};\n\t\tObject.keys(options)\n\t\t\t.sort()\n\t\t\t.forEach((key) => {\n\t\t\t\tconst value = (options as Record<string, unknown>)[key];\n\t\t\t\tif (value === undefined || value === null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tordered[key] = Array.isArray(value) ? JSON.stringify(value) : String(value);\n\t\t\t});\n\t\treturn JSON.stringify(ordered);\n\t}\n\n\tprivate buildThreadCacheKey(threadKey: string | undefined, options?: CodexThreadOptions): string | null {\n\t\tif (threadKey) {\n\t\t\treturn `thread:${threadKey}`;\n\t\t}\n\t\tconst model = options?.model || this.config.model;\n\t\tconst workingDirectory = options?.workingDirectory;\n\t\tif (!model && !workingDirectory) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `thread:auto:${model || 'default'}:${workingDirectory || 'root'}`;\n\t}\n\n\tprivate isPingPrompt(prompt: string): boolean {\n\t\treturn prompt.trim() === CodexClient.PING_PROMPT;\n\t}\n\n\tprivate async runPing(threadOptions?: CodexThreadOptions): Promise<void> {\n\t\tthis.log(`runPing start (timeoutMs=${this.pingTimeoutMs})`);\n\t\ttry {\n\t\t\tconst content = await this.runOnce(CodexClient.PING_PROMPT, {\n\t\t\t\ttimeoutMs: this.pingTimeoutMs,\n\t\t\t\tthreadOptions,\n\t\t\t\treuseThread: false\n\t\t\t});\n\t\t\tconst trimmed = content.trim();\n\t\t\tconst preview = trimmed.length > 80 ? `${trimmed.slice(0, 80)}…` : trimmed;\n\t\t\tthis.log(`runPing response: ${preview}`);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`runPing failed: ${message}`);\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/services/codex-client.ts"],"names":[],"mappings":"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","file":"codex-client.js","sourcesContent":["import { promises as fs } from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { setTimeout as sleepTimeout } from 'timers/promises';\nexport interface CodexConfig {\n\tapiKey?: string;\n\tbaseUrl?: string;\n\tmodel?: string;\n\tfallbackModel?: string;\n\tfallbackModels?: string[];\n\tmaxRetries?: number;\n\tretryDelayMs?: number;\n}\n\n/* eslint-disable no-unused-vars -- Function type params are required for clarity. */\ntype StreamEventHandler = (event: any) => void | Promise<void>;\ntype StreamTextHandler = (delta: string, fullText: string) => void | Promise<void>;\ntype AgentMessageHandler = (text: string) => void | Promise<void>;\ntype UsageHandler = (usage: CodexUsageSummary | null) => void | Promise<void>;\ntype DynamicImport = (specifier: string) => Promise<any>;\n/* eslint-enable no-unused-vars */\n\ntype CodexModelFallbackPreference = {\n\tfallbackModel: string;\n\texpiresAt: number;\n\tupdatedAt: number;\n};\n\nexport interface CodexRunOptions {\n\ttimeoutMs?: number;\n\tthreadOptions?: CodexThreadOptions;\n\tthreadKey?: string;\n\treuseThread?: boolean;\n\tfallbackModels?: string[];\n\tonStreamEvent?: StreamEventHandler;\n\tonStreamText?: StreamTextHandler;\n\tonUsage?: UsageHandler;\n}\n\nexport interface CodexUsageSummary {\n\tinputTokens: number;\n\tcachedInputTokens: number;\n\toutputTokens: number;\n}\n\nexport type CodexThreadOptions = {\n\tmodel?: string;\n\tsandboxMode?: 'read-only' | 'workspace-write' | 'danger-full-access';\n\tworkingDirectory?: string;\n\tskipGitRepoCheck?: boolean;\n\tmodelReasoningEffort?: 'minimal' | 'none' | 'low' | 'medium' | 'high' | 'xhigh';\n\tnetworkAccessEnabled?: boolean;\n\twebSearchMode?: 'disabled' | 'cached' | 'live';\n\twebSearchEnabled?: boolean;\n\tapprovalPolicy?: 'never' | 'on-request' | 'on-failure' | 'untrusted';\n\tadditionalDirectories?: string[];\n};\n\nexport class CodexClient {\n\tprivate static readonly PING_PROMPT = \"Say 'pong'\";\n\tprivate static readonly MODEL_UNAVAILABLE_FALLBACK_FILE = path.join(os.tmpdir(), 'resolveio-codex-model-fallbacks.json');\n\tprivate static readonly DEFAULT_MODEL_UNAVAILABLE_TTL_MS = 6 * 60 * 60 * 1000;\n\tprivate static readonly MIN_MODEL_UNAVAILABLE_TTL_MS = 60 * 1000;\n\tprivate static readonly modelFallbackPreferences = new Map<string, CodexModelFallbackPreference>();\n\tprivate static modelFallbackPreferencesLoaded = false;\n\tprivate static modelFallbackPreferencesLoadPromise: Promise<void> | null = null;\n\tprivate codex: any | null = null;\n\tprivate codexInit: Promise<void> | null = null;\n\tprivate readonly threadCache = new Map<string, { thread: any; optionsKey: string; modelKey: string }>();\n\tprivate readonly debugEnabled = (process.env.AI_DASHBOARD_DEBUG || '').trim().toLowerCase() === 'true';\n\tprivate readonly streamEnabled = this.resolveStreamEnabled();\n\tprivate readonly cleanZdotdirEnabled = this.resolveCleanZdotdirEnabled();\n\tprivate zDotDir: string | null = null;\n\tprivate readonly defaultTimeoutMs = this.resolveDefaultTimeoutMs();\n\tprivate readonly pingEnabled = this.resolvePingEnabled();\n\tprivate readonly pingTimeoutMs = this.resolvePingTimeoutMs();\n\tprivate readonly modelUnavailableTtlMs = this.resolveModelUnavailableTtlMs();\n\tprivate readonly config: CodexConfig;\n\tprivate readonly defaultThreadOptions: CodexThreadOptions;\n\n\tconstructor(config: CodexConfig) {\n\t\tthis.config = config;\n\t\tif (!this.config.apiKey) {\n\t\t\tthrow new Error('AI API key is required for AI client');\n\t\t}\n\t\tthis.defaultThreadOptions = this.resolveDefaultThreadOptions();\n\t}\n\n\tasync run(prompt: string, options?: CodexRunOptions): Promise<string> {\n\t\tawait this.ensureModelFallbackPreferencesLoaded();\n\t\tconst maxRetries = this.normalizeRetryCount(this.config.maxRetries);\n\t\tconst retryDelayMs = this.normalizeRetryDelay(this.config.retryDelayMs);\n\t\tlet lastError: unknown = null;\n\t\tconst modelSequence = this.resolveModelSequence(options);\n\t\tfor (let modelIndex = 0; modelIndex < modelSequence.length; modelIndex += 1) {\n\t\t\tconst model = modelSequence[modelIndex];\n\t\t\tconst nextModel = modelSequence[modelIndex + 1];\n\t\t\tconst modelOptions = this.applyModelOverride(options, model);\n\t\t\tlet attempt = 0;\n\t\t\twhile (attempt <= maxRetries) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.log(`run model=${model || this.config.model || 'default'} attempt ${attempt + 1}/${maxRetries + 1}`);\n\t\t\t\t\tif (this.pingEnabled && !this.isPingPrompt(prompt)) {\n\t\t\t\t\t\tawait this.runPing(modelOptions?.threadOptions);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.streamEnabled && !this.isPingPrompt(prompt)) {\n\t\t\t\t\t\tconst result = await this.runStreamedOnce(prompt, modelOptions);\n\t\t\t\t\t\tawait this.clearModelFallbackPreference(model);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tconst result = await this.runOnce(prompt, modelOptions);\n\t\t\t\t\tawait this.clearModelFallbackPreference(model);\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\tlastError = error;\n\t\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\t\t\t\tthis.log(`run model=${model || this.config.model || 'default'} attempt ${attempt + 1} failed: ${message}`);\n\t\t\t\t\t\tif (nextModel && this.isModelAvailabilityError(error)) {\n\t\t\t\t\t\t\tawait this.rememberModelFallbackPreference(model, nextModel);\n\t\t\t\t\t\t\tthis.log(`model unavailable; retrying with fallback model ${nextModel}`);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.isCodexEnvironmentError(error)) {\n\t\t\t\t\t\t\tthis.recoverCodexEnvironment(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (attempt >= maxRetries || !this.isRetryableError(error)) {\n\t\t\t\t\t\t\tthrow lastError;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst delay = retryDelayMs * Math.pow(2, attempt);\n\t\t\t\t\t\tawait this.sleep(delay);\n\t\t\t\t\tattempt += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow lastError;\n\t}\n\n\tprivate async runStreamedOnce(prompt: string, options?: CodexRunOptions): Promise<string> {\n\t\tconst startedAt = Date.now();\n\t\tthis.log(`runStreamed start (promptLength=${prompt.length})`);\n\t\tconst thread = await this.startThread(options?.threadOptions, options?.threadKey, options?.reuseThread);\n\t\tconst timeoutMs = options?.timeoutMs ?? this.defaultTimeoutMs;\n\t\tconst controller = typeof AbortController !== 'undefined' ? new AbortController() : null;\n\t\tconst timeoutId = controller\n\t\t\t? setTimeout(() => controller.abort(), timeoutMs)\n\t\t\t: null;\n\t\tlet finalResponse = '';\n\t\tlet lastText = '';\n\t\tlet usageSummary: CodexUsageSummary | null = null;\n\t\ttry {\n\t\t\tconst { events } = await thread.runStreamed(prompt, controller ? { signal: controller.signal } : undefined);\n\t\t\tfor await (const event of events) {\n\t\t\t\tif (event?.type === 'turn.completed') {\n\t\t\t\t\tusageSummary = this.normalizeUsageSummary(event?.usage);\n\t\t\t\t}\n\t\t\t\tif (options?.onStreamEvent) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait options.onStreamEvent(event);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\t\t\t\tthis.log(`onStreamEvent failed: ${message}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait this.handleStreamEvent(event, async (text: string) => {\n\t\t\t\t\tconst next = text || '';\n\t\t\t\t\tif (!next) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst delta = next.startsWith(lastText) ? next.slice(lastText.length) : next;\n\t\t\t\t\tif (delta) {\n\t\t\t\t\t\tthis.logStreamText(delta);\n\t\t\t\t\t\tif (options?.onStreamText) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait options.onStreamText(delta, next);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\t\t\t\t\t\tthis.log(`onStreamText failed: ${message}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastText = next;\n\t\t\t\t\tfinalResponse = next;\n\t\t\t\t});\n\t\t\t\tif (event?.type === 'turn.failed') {\n\t\t\t\t\tthrow new Error(event.error?.message || 'AI run failed.');\n\t\t\t\t}\n\t\t\t\tif (event?.type === 'error') {\n\t\t\t\t\tthrow new Error(event.message || 'AI stream error.');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (controller?.signal?.aborted) {\n\t\t\t\tthis.log(`runStreamed timed out (durationMs=${Date.now() - startedAt})`);\n\t\t\t\tthrow new Error('AI request timed out.');\n\t\t\t}\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`runStreamed failed (durationMs=${Date.now() - startedAt}): ${message}`);\n\t\t\tthrow error;\n\t\t}\n\t\tfinally {\n\t\t\tif (timeoutId) {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t}\n\t\t}\n\t\tif (!finalResponse) {\n\t\t\tthrow new Error('AI returned no completion content.');\n\t\t}\n\t\tawait this.emitUsageSummary(options, usageSummary);\n\t\tthis.log(`runStreamed complete (contentLength=${finalResponse.length}, durationMs=${Date.now() - startedAt})`);\n\t\treturn finalResponse.trim();\n\t}\n\n\tprivate async runOnce(prompt: string, options?: CodexRunOptions): Promise<string> {\n\t\tconst startedAt = Date.now();\n\t\tthis.log(`runOnce start (promptLength=${prompt.length})`);\n\t\ttry {\n\t\t\tconst thread = await this.startThread(options?.threadOptions, options?.threadKey, options?.reuseThread);\n\t\t\tconst runPromise = thread.run(prompt);\n\t\t\tconst timeoutMs = options?.timeoutMs ?? this.defaultTimeoutMs;\n\t\t\tthis.log(`runOnce awaiting result (timeoutMs=${timeoutMs})`);\n\t\t\tconst result: any = await this.withTimeout(runPromise, timeoutMs);\n\t\t\tconst content = this.extractContent(result);\n\t\t\tif (!content) {\n\t\t\t\tthrow new Error('AI returned no completion content.');\n\t\t\t}\n\t\t\tawait this.emitUsageSummary(options, this.normalizeUsageSummary(result?.usage));\n\t\t\tthis.log(`runOnce complete (contentLength=${content.length}, durationMs=${Date.now() - startedAt})`);\n\t\t\treturn content;\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`runOnce failed (durationMs=${Date.now() - startedAt}): ${message}`);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate async startThread(threadOptions?: CodexThreadOptions, threadKey?: string, reuseThread = true): Promise<any> {\n\t\tawait this.ensureCodex();\n\t\tconst mergedOptions = this.mergeThreadOptions(threadOptions);\n\t\tconst optionsKey = this.buildThreadOptionsKey(mergedOptions);\n\t\tconst effectiveModel = mergedOptions?.model || this.config.model || 'default';\n\t\tconst modelKey = this.normalizeOptionalString(effectiveModel).toLowerCase() || 'default';\n\t\tconst cacheKey = this.buildThreadCacheKey(threadKey, mergedOptions);\n\t\tconst explicitThreadKey = (threadKey || '').trim();\n\t\tconst hasExplicitThreadKey = explicitThreadKey.length > 0;\n\t\tif (reuseThread && cacheKey) {\n\t\t\tconst existing = this.threadCache.get(cacheKey);\n\t\t\tif (existing) {\n\t\t\t\tconst sameOptions = existing.optionsKey === optionsKey;\n\t\t\t\tconst sameModel = existing.modelKey === modelKey;\n\t\t\t\tif (sameOptions || (hasExplicitThreadKey && sameModel)) {\n\t\t\t\t\tif (hasExplicitThreadKey && existing.optionsKey !== optionsKey) {\n\t\t\t\t\t\tthis.log(`startThread reuse explicit key (${cacheKey}) despite option change`);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.log(`startThread reuse (${cacheKey})`);\n\t\t\t\t\t}\n\t\t\t\t\treturn existing.thread;\n\t\t\t\t}\n\t\t\t\tif (hasExplicitThreadKey && !sameModel) {\n\t\t\t\t\tthis.log(`startThread explicit key (${cacheKey}) model changed (${existing.modelKey} -> ${modelKey}); creating new thread`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.log(`startThread (model=${effectiveModel})`);\n\t\tif (mergedOptions?.model) {\n\t\t\tthis.log(`startThread options: ${this.formatThreadOptions(mergedOptions)}`);\n\t\t\tconst thread = this.codex.startThread(mergedOptions);\n\t\t\tthis.log('startThread created with model override');\n\t\t\tif (cacheKey) {\n\t\t\t\tthis.threadCache.set(cacheKey, { thread, optionsKey, modelKey });\n\t\t\t}\n\t\t\treturn thread;\n\t\t}\n\t\tif (mergedOptions && Object.keys(mergedOptions).length) {\n\t\t\tthis.log(`startThread options: ${this.formatThreadOptions(mergedOptions)}`);\n\t\t}\n\t\tconst thread = this.codex.startThread(mergedOptions);\n\t\tthis.log('startThread created');\n\t\tif (cacheKey) {\n\t\t\tthis.threadCache.set(cacheKey, { thread, optionsKey, modelKey });\n\t\t}\n\t\treturn thread;\n\t}\n\n\tprivate extractContent(result: any): string {\n\t\tif (!result) {\n\t\t\treturn '';\n\t\t}\n\t\tif (typeof result.finalResponse === 'string') {\n\t\t\treturn result.finalResponse.trim();\n\t\t}\n\t\tif (typeof result === 'string') {\n\t\t\treturn result.trim();\n\t\t}\n\t\tif (Array.isArray(result.items)) {\n\t\t\tconst lastMessage = [...result.items].reverse().find((item: any) => item?.type === 'agent_message' && typeof item.text === 'string');\n\t\t\tif (lastMessage?.text) {\n\t\t\t\treturn lastMessage.text.trim();\n\t\t\t}\n\t\t}\n\t\tif (typeof result.output_text === 'string') {\n\t\t\treturn result.output_text.trim();\n\t\t}\n\t\tif (typeof result.outputText === 'string') {\n\t\t\treturn result.outputText.trim();\n\t\t}\n\t\tif (typeof result.content === 'string') {\n\t\t\treturn result.content.trim();\n\t\t}\n\t\tif (typeof result.text === 'string') {\n\t\t\treturn result.text.trim();\n\t\t}\n\t\tif (Array.isArray(result.content)) {\n\t\t\tconst text = result.content\n\t\t\t\t.map((part: any) => this.extractPartText(part))\n\t\t\t\t.join('')\n\t\t\t\t.trim();\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t\tif (Array.isArray(result.output)) {\n\t\t\tconst text = result.output\n\t\t\t\t.map((item: any) => {\n\t\t\t\t\tif (!item) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof item.text === 'string') {\n\t\t\t\t\t\treturn item.text;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof item.content === 'string') {\n\t\t\t\t\t\treturn item.content;\n\t\t\t\t\t}\n\t\t\t\t\tif (Array.isArray(item.content)) {\n\t\t\t\t\t\treturn item.content.map((part: any) => this.extractPartText(part)).join('');\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.trim();\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate async handleStreamEvent(event: any, onAgentMessage: AgentMessageHandler): Promise<void> {\n\t\tif (!event || !event.type) {\n\t\t\treturn;\n\t\t}\n\t\tswitch (event.type) {\n\t\t\tcase 'thread.started':\n\t\t\t\tthis.log(`stream thread.started (id=${event.thread_id || 'unknown'})`);\n\t\t\t\tbreak;\n\t\t\tcase 'turn.started':\n\t\t\t\tthis.log('stream turn.started');\n\t\t\t\tbreak;\n\t\t\tcase 'turn.completed':\n\t\t\t\tthis.log('stream turn.completed');\n\t\t\t\tbreak;\n\t\t\tcase 'item.started':\n\t\t\tcase 'item.updated':\n\t\t\tcase 'item.completed':\n\t\t\t\tawait this.handleStreamItem(event.item, onAgentMessage);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate normalizeUsageSummary(raw: any): CodexUsageSummary | null {\n\t\tif (!raw || typeof raw !== 'object') {\n\t\t\treturn null;\n\t\t}\n\t\tconst inputTokens = this.normalizeUsageToken(raw.input_tokens ?? raw.inputTokens);\n\t\tconst cachedInputTokens = this.normalizeUsageToken(raw.cached_input_tokens ?? raw.cachedInputTokens);\n\t\tconst outputTokens = this.normalizeUsageToken(raw.output_tokens ?? raw.outputTokens);\n\t\tif (inputTokens <= 0 && cachedInputTokens <= 0 && outputTokens <= 0) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\tinputTokens,\n\t\t\tcachedInputTokens,\n\t\t\toutputTokens\n\t\t};\n\t}\n\n\tprivate normalizeUsageToken(value: any): number {\n\t\tconst parsed = Number(value);\n\t\tif (!Number.isFinite(parsed) || parsed <= 0) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn Math.floor(parsed);\n\t}\n\n\tprivate async emitUsageSummary(options: CodexRunOptions | undefined, usage: CodexUsageSummary | null): Promise<void> {\n\t\tif (!options?.onUsage) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait options.onUsage(usage);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`onUsage failed: ${message}`);\n\t\t}\n\t}\n\n\tprivate async handleStreamItem(item: any, onAgentMessage: AgentMessageHandler): Promise<void> {\n\t\tif (!item || !item.type) {\n\t\t\treturn;\n\t\t}\n\t\tswitch (item.type) {\n\t\t\tcase 'agent_message':\n\t\t\t\tawait onAgentMessage(item.text || '');\n\t\t\t\tbreak;\n\t\t\tcase 'command_execution':\n\t\t\t\tif (item.command) {\n\t\t\t\t\tthis.log(`stream command: ${item.command} (${item.status || 'unknown'})`);\n\t\t\t\t}\n\t\t\t\tif (item.aggregated_output) {\n\t\t\t\t\tconst output = item.aggregated_output.length > 800\n\t\t\t\t\t\t? `${item.aggregated_output.slice(0, 800)}...`\n\t\t\t\t\t\t: item.aggregated_output;\n\t\t\t\t\tthis.log(`stream command output: ${output}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'file_change':\n\t\t\t\tif (Array.isArray(item.changes) && item.changes.length) {\n\t\t\t\t\tconst summary = item.changes.map((change: any) => `${change.kind}:${change.path}`).join(', ');\n\t\t\t\t\tthis.log(`stream file_change (${item.status || 'unknown'}): ${summary}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'mcp_tool_call':\n\t\t\t\tif (item.tool) {\n\t\t\t\t\tthis.log(`stream tool_call: ${item.tool} (${item.status || 'unknown'})`);\n\t\t\t\t}\n\t\t\t\tif (item.error?.message) {\n\t\t\t\t\tthis.log(`stream tool_call error: ${item.error.message}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'web_search':\n\t\t\t\tif (item.query) {\n\t\t\t\t\tthis.log(`stream web_search: ${item.query}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'todo_list':\n\t\t\t\tif (Array.isArray(item.items)) {\n\t\t\t\t\tconst total = item.items.length;\n\t\t\t\t\tconst done = item.items.filter((entry: any) => entry?.completed).length;\n\t\t\t\t\tthis.log(`stream todo_list: ${done}/${total} completed`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'reasoning':\n\t\t\t\tif (item.text) {\n\t\t\t\t\tconst snippet = item.text.length > 200 ? `${item.text.slice(0, 200)}...` : item.text;\n\t\t\t\t\tthis.log(`stream reasoning: ${snippet}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tif (item.message) {\n\t\t\t\t\tthis.log(`stream error: ${item.message}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate logStreamText(text: string): void {\n\t\tif (!this.debugEnabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst lines = text.split(/\\r?\\n/);\n\t\tfor (const line of lines) {\n\t\t\tthis.log(`stream: ${line}`);\n\t\t}\n\t}\n\n\tprivate extractPartText(part: any): string {\n\t\tif (!part) {\n\t\t\treturn '';\n\t\t}\n\t\tif (typeof part === 'string') {\n\t\t\treturn part;\n\t\t}\n\t\tif (typeof part.text === 'string') {\n\t\t\treturn part.text;\n\t\t}\n\t\tif (typeof part.content === 'string') {\n\t\t\treturn part.content;\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate async withTimeout<T>(promise: Promise<T>, timeoutMs: number): Promise<T> {\n\t\tlet done = false;\n\t\tconst startedAt = Date.now();\n\t\tconst heartbeatMs = Math.max(10000, Math.min(30000, Math.floor(timeoutMs / 4)));\n\t\tconst timeoutPromise = (async (): Promise<T> => {\n\t\t\twhile (!done) {\n\t\t\t\tconst elapsed = Date.now() - startedAt;\n\t\t\t\tif (elapsed >= timeoutMs) {\n\t\t\t\t\tthrow new Error('AI request timed out.');\n\t\t\t\t}\n\t\t\t\tconst remaining = timeoutMs - elapsed;\n\t\t\t\tawait sleepTimeout(Math.min(heartbeatMs, remaining));\n\t\t\t\tif (done) {\n\t\t\t\t\treturn await promise;\n\t\t\t\t}\n\t\t\t\tconst currentElapsed = Date.now() - startedAt;\n\t\t\t\tif (currentElapsed >= timeoutMs) {\n\t\t\t\t\tthrow new Error('AI request timed out.');\n\t\t\t\t}\n\t\t\t\tconst currentRemaining = Math.max(0, timeoutMs - currentElapsed);\n\t\t\t\tthis.log(`runOnce waiting (elapsedMs=${currentElapsed}, remainingMs=${currentRemaining})`);\n\t\t\t}\n\t\t\treturn await promise;\n\t\t})();\n\t\ttry {\n\t\t\treturn await Promise.race([promise, timeoutPromise]);\n\t\t}\n\t\tfinally {\n\t\t\tdone = true;\n\t\t}\n\t}\n\n\tprivate normalizeRetryCount(value?: number): number {\n\t\tif (typeof value !== 'number' || Number.isNaN(value)) {\n\t\t\treturn 2;\n\t\t}\n\t\treturn Math.max(0, Math.floor(value));\n\t}\n\n\tprivate normalizeRetryDelay(value?: number): number {\n\t\tif (typeof value !== 'number' || Number.isNaN(value)) {\n\t\t\treturn 500;\n\t\t}\n\t\treturn Math.max(100, Math.floor(value));\n\t}\n\n\tprivate resolveModelSequence(options?: CodexRunOptions): string[] {\n\t\tconst primary = this.normalizeOptionalString(options?.threadOptions?.model || this.config.model);\n\t\tconst fallbackModels = this.collectFallbackModels(options?.fallbackModels);\n\t\tconst sequence: string[] = [];\n\t\tconst push = (value: any) => {\n\t\t\tconst normalized = this.normalizeOptionalString(value);\n\t\t\tif (!normalized || sequence.includes(normalized)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsequence.push(normalized);\n\t\t};\n\t\tconst preferredFallback = this.getModelFallbackPreference(primary);\n\t\tif (preferredFallback) {\n\t\t\tpush(preferredFallback);\n\t\t\tthis.log(`sticky model fallback active: ${primary} -> ${preferredFallback}`);\n\t\t}\n\t\tpush(primary);\n\t\tfallbackModels.forEach(push);\n\t\tif (!sequence.length) {\n\t\t\tsequence.push('');\n\t\t}\n\t\treturn sequence;\n\t}\n\n\tprivate collectFallbackModels(runFallbackModels?: string[]): string[] {\n\t\tconst models: string[] = [];\n\t\tconst push = (value: any) => {\n\t\t\tconst normalized = this.normalizeOptionalString(value);\n\t\t\tif (!normalized || models.includes(normalized)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tmodels.push(normalized);\n\t\t};\n\t\tthis.normalizeModelList(runFallbackModels).forEach(push);\n\t\tthis.normalizeModelList(this.config.fallbackModels).forEach(push);\n\t\tpush(this.config.fallbackModel);\n\t\tthis.normalizeModelList(process.env.AI_ASSISTANT_CODEX_FALLBACK_MODELS).forEach(push);\n\t\tpush(process.env.AI_ASSISTANT_CODEX_FALLBACK_MODEL);\n\t\tthis.normalizeModelList(process.env.AI_TERMINAL_CODEX_FALLBACK_MODELS).forEach(push);\n\t\tpush(process.env.AI_TERMINAL_CODEX_FALLBACK_MODEL);\n\t\tthis.normalizeModelList(process.env.AI_DASHBOARD_CODEX_FALLBACK_MODELS).forEach(push);\n\t\tpush(process.env.AI_DASHBOARD_CODEX_FALLBACK_MODEL);\n\t\tconst primaryModel = this.normalizeOptionalString(\n\t\t\tthis.config.model\n\t\t\t|| runFallbackModels?.[0]\n\t\t\t|| ''\n\t\t);\n\t\tif (/^gpt-5(?:\\.\\d+)?-codex$/i.test(primaryModel)) {\n\t\t\tpush('gpt-5-codex');\n\t\t}\n\t\tif (/^gpt-5(?:-codex|\\.\\d+-codex)$/i.test(primaryModel)) {\n\t\t\tpush('gpt-5.3-codex');\n\t\t}\n\t\treturn models;\n\t}\n\n\tprivate normalizeModelList(value: any): string[] {\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.map(entry => this.normalizeOptionalString(entry))\n\t\t\t\t.filter(Boolean);\n\t\t}\n\t\tconst raw = this.normalizeOptionalString(value);\n\t\tif (!raw) {\n\t\t\treturn [];\n\t\t}\n\t\treturn raw\n\t\t\t.split(',')\n\t\t\t.map(entry => this.normalizeOptionalString(entry))\n\t\t\t.filter(Boolean);\n\t}\n\n\tprivate applyModelOverride(options: CodexRunOptions | undefined, model: string): CodexRunOptions {\n\t\tconst nextThreadOptions: CodexThreadOptions = {\n\t\t\t...(options?.threadOptions || {})\n\t\t};\n\t\tif (model) {\n\t\t\tnextThreadOptions.model = model;\n\t\t}\n\t\telse {\n\t\t\tdelete nextThreadOptions.model;\n\t\t}\n\t\treturn {\n\t\t\t...(options || {}),\n\t\t\tthreadOptions: nextThreadOptions\n\t\t};\n\t}\n\n\tprivate isModelAvailabilityError(error: unknown): boolean {\n\t\tconst message = error instanceof Error ? error.message : String(error || '');\n\t\tconst normalized = message.toLowerCase();\n\t\tif (!normalized.includes('model')) {\n\t\t\treturn false;\n\t\t}\n\t\tif (/does not exist|not found|unknown model|invalid model|unsupported model|model_not_found|no such model/.test(normalized)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (/not available|unavailable|not enabled|not allowed|do not have access|don't have access|insufficient permissions/.test(normalized)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn /404/.test(normalized) && /model/.test(normalized);\n\t}\n\n\tprivate isRetryableError(error: unknown): boolean {\n\t\tconst message = error instanceof Error ? error.message : String(error || '');\n\t\tif (/AI returned no completion content|Codex returned no completion content/i.test(message)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (this.isCodexEnvironmentError(error)) {\n\t\t\treturn true;\n\t\t}\n\t\tconst statusMatch = message.match(/\\\\b(429|5\\\\d{2})\\\\b/);\n\t\tif (statusMatch) {\n\t\t\treturn true;\n\t\t}\n\t\treturn /ECONNRESET|ETIMEDOUT|EAI_AGAIN|ENOTFOUND|fetch failed|timed out|timeout/i.test(message);\n\t}\n\n\tprivate isCodexEnvironmentError(error: unknown): boolean {\n\t\tconst message = error instanceof Error ? error.message : String(error || '');\n\t\treturn /error finding codex home|could not update path: no such file or directory/i.test(message);\n\t}\n\n\tprivate recoverCodexEnvironment(error: unknown): void {\n\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\tthis.log(`recovering codex environment after error: ${message}`);\n\t\tthis.threadCache.clear();\n\t\tthis.codex = null;\n\t\tthis.codexInit = null;\n\t\tthis.zDotDir = null;\n\t}\n\n\tprivate normalizeOptionalString(value: any): string {\n\t\treturn typeof value === 'string' ? value.trim() : '';\n\t}\n\n\tprivate resolveModelUnavailableTtlMs(): number {\n\t\tconst raw = Number(\n\t\t\tprocess.env.AI_DASHBOARD_CODEX_MODEL_UNAVAILABLE_TTL_MS\n\t\t\t|| process.env.AI_ASSISTANT_CODEX_MODEL_UNAVAILABLE_TTL_MS\n\t\t);\n\t\tif (Number.isFinite(raw) && raw >= CodexClient.MIN_MODEL_UNAVAILABLE_TTL_MS) {\n\t\t\treturn Math.floor(raw);\n\t\t}\n\t\treturn CodexClient.DEFAULT_MODEL_UNAVAILABLE_TTL_MS;\n\t}\n\n\tprivate async ensureModelFallbackPreferencesLoaded(): Promise<void> {\n\t\tif (CodexClient.modelFallbackPreferencesLoaded) {\n\t\t\tthis.pruneModelFallbackPreferences();\n\t\t\treturn;\n\t\t}\n\t\tif (CodexClient.modelFallbackPreferencesLoadPromise !== null) {\n\t\t\tawait CodexClient.modelFallbackPreferencesLoadPromise;\n\t\t\tthis.pruneModelFallbackPreferences();\n\t\t\treturn;\n\t\t}\n\t\tCodexClient.modelFallbackPreferencesLoadPromise = (async () => {\n\t\t\ttry {\n\t\t\t\tconst raw = await fs.readFile(CodexClient.MODEL_UNAVAILABLE_FALLBACK_FILE, 'utf8');\n\t\t\t\tconst parsed = JSON.parse(raw);\n\t\t\t\tif (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tObject.entries(parsed).forEach(([model, entry]) => {\n\t\t\t\t\tconst key = this.normalizeOptionalString(model);\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst fallbackModel = this.normalizeOptionalString((entry as any)?.fallbackModel);\n\t\t\t\t\tconst expiresAt = Number((entry as any)?.expiresAt);\n\t\t\t\t\tconst updatedAt = Number((entry as any)?.updatedAt);\n\t\t\t\t\tif (!fallbackModel || !Number.isFinite(expiresAt) || expiresAt <= Date.now()) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tCodexClient.modelFallbackPreferences.set(key, {\n\t\t\t\t\t\tfallbackModel,\n\t\t\t\t\t\texpiresAt: Math.floor(expiresAt),\n\t\t\t\t\t\tupdatedAt: Number.isFinite(updatedAt) ? Math.floor(updatedAt) : Date.now()\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\tcatch {\n\t\t\t\t// Ignore cache load errors.\n\t\t\t}\n\t\t\tfinally {\n\t\t\t\tCodexClient.modelFallbackPreferencesLoaded = true;\n\t\t\t\tCodexClient.modelFallbackPreferencesLoadPromise = null;\n\t\t\t}\n\t\t})();\n\t\tawait CodexClient.modelFallbackPreferencesLoadPromise;\n\t\tthis.pruneModelFallbackPreferences();\n\t}\n\n\tprivate pruneModelFallbackPreferences(now = Date.now()): void {\n\t\tArray.from(CodexClient.modelFallbackPreferences.entries()).forEach(([model, entry]) => {\n\t\t\tif (!entry || !Number.isFinite(entry.expiresAt) || entry.expiresAt <= now) {\n\t\t\t\tCodexClient.modelFallbackPreferences.delete(model);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getModelFallbackPreference(model: string): string {\n\t\tconst normalizedModel = this.normalizeOptionalString(model);\n\t\tif (!normalizedModel) {\n\t\t\treturn '';\n\t\t}\n\t\tthis.pruneModelFallbackPreferences();\n\t\tconst entry = CodexClient.modelFallbackPreferences.get(normalizedModel);\n\t\tif (!entry || entry.expiresAt <= Date.now()) {\n\t\t\tif (entry) {\n\t\t\t\tCodexClient.modelFallbackPreferences.delete(normalizedModel);\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t\treturn entry.fallbackModel;\n\t}\n\n\tprivate async rememberModelFallbackPreference(model: string, fallbackModel: string): Promise<void> {\n\t\tconst normalizedModel = this.normalizeOptionalString(model);\n\t\tconst normalizedFallback = this.normalizeOptionalString(fallbackModel);\n\t\tif (!normalizedModel || !normalizedFallback || normalizedModel === normalizedFallback) {\n\t\t\treturn;\n\t\t}\n\t\tconst now = Date.now();\n\t\tCodexClient.modelFallbackPreferences.set(normalizedModel, {\n\t\t\tfallbackModel: normalizedFallback,\n\t\t\texpiresAt: now + this.modelUnavailableTtlMs,\n\t\t\tupdatedAt: now\n\t\t});\n\t\tthis.pruneModelFallbackPreferences(now);\n\t\tawait this.persistModelFallbackPreferences();\n\t}\n\n\tprivate async clearModelFallbackPreference(model: string): Promise<void> {\n\t\tconst normalizedModel = this.normalizeOptionalString(model);\n\t\tif (!normalizedModel) {\n\t\t\treturn;\n\t\t}\n\t\tif (!CodexClient.modelFallbackPreferences.has(normalizedModel)) {\n\t\t\treturn;\n\t\t}\n\t\tCodexClient.modelFallbackPreferences.delete(normalizedModel);\n\t\tawait this.persistModelFallbackPreferences();\n\t}\n\n\tprivate async persistModelFallbackPreferences(): Promise<void> {\n\t\tthis.pruneModelFallbackPreferences();\n\t\tif (!CodexClient.modelFallbackPreferences.size) {\n\t\t\ttry {\n\t\t\t\tawait fs.unlink(CodexClient.MODEL_UNAVAILABLE_FALLBACK_FILE);\n\t\t\t}\n\t\t\tcatch {\n\t\t\t\t// Ignore file cleanup errors.\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst serialized: Record<string, CodexModelFallbackPreference> = {};\n\t\tCodexClient.modelFallbackPreferences.forEach((entry, model) => {\n\t\t\tserialized[model] = entry;\n\t\t});\n\t\ttry {\n\t\t\tawait fs.writeFile(CodexClient.MODEL_UNAVAILABLE_FALLBACK_FILE, JSON.stringify(serialized), 'utf8');\n\t\t}\n\t\tcatch {\n\t\t\t// Ignore cache persistence errors.\n\t\t}\n\t}\n\n\tprivate async sleep(ms: number): Promise<void> {\n\t\tawait sleepTimeout(ms);\n\t}\n\n\tprivate async ensureCodex(): Promise<void> {\n\t\tif (this.codex) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.codexInit !== null) {\n\t\t\tawait this.codexInit;\n\t\t\treturn;\n\t\t}\n\t\tthis.codexInit = (async () => {\n\t\t\tthis.log('Loading AI SDK module...');\n\t\t\tconst importer = new Function('specifier', 'return import(specifier)') as DynamicImport;\n\t\t\tconst mod = await importer('@openai/codex-sdk');\n\t\t\tconst CodexCtor = mod?.Codex || mod?.default?.Codex || mod?.default || mod;\n\t\t\tif (!CodexCtor) {\n\t\t\t\tthrow new Error('AI SDK export not found.');\n\t\t\t}\n\t\t\tthis.log('AI SDK module loaded.');\n\t\t\tconst env = await this.buildCodexEnv();\n\t\t\tthis.codex = new CodexCtor({\n\t\t\t\tapiKey: this.config.apiKey,\n\t\t\t\tbaseUrl: this.config.baseUrl,\n\t\t\t\tmodel: this.config.model,\n\t\t\t\tenv\n\t\t\t});\n\t\t\tthis.log('AI client initialized.');\n\t\t})();\n\t\tawait this.codexInit;\n\t}\n\n\tprivate log(message: string): void {\n\t\tif (!this.debugEnabled) {\n\t\t\treturn;\n\t\t}\n\t\tconsole.log(`[AI-Dashboard][AI] ${message}`);\n\t}\n\n\tprivate resolveDefaultTimeoutMs(): number {\n\t\tconst raw = Number(process.env.AI_DASHBOARD_CODEX_TIMEOUT_MS || process.env.AI_DASHBOARD_AGENT_TIMEOUT_MS);\n\t\tif (Number.isFinite(raw) && raw > 0) {\n\t\t\treturn Math.floor(raw);\n\t\t}\n\t\treturn 600000;\n\t}\n\n\tprivate resolveStreamEnabled(): boolean {\n\t\tconst raw = (process.env.AI_DASHBOARD_CODEX_STREAM || '').trim().toLowerCase();\n\t\tif (!raw) {\n\t\t\treturn this.debugEnabled;\n\t\t}\n\t\tif (['true', '1', 'yes', 'y', 'on'].includes(raw)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (['false', '0', 'no', 'n', 'off'].includes(raw)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.debugEnabled;\n\t}\n\n\tprivate resolveCleanZdotdirEnabled(): boolean {\n\t\tconst raw = (process.env.AI_DASHBOARD_CODEX_CLEAN_ZDOTDIR ?? '').trim().toLowerCase();\n\t\tif (!raw) {\n\t\t\treturn true;\n\t\t}\n\t\tif (['false', '0', 'no', 'n', 'off'].includes(raw)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (['true', '1', 'yes', 'y', 'on'].includes(raw)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate async buildCodexEnv(): Promise<Record<string, string>> {\n\t\tconst env: Record<string, string> = {};\n\t\tfor (const [key, value] of Object.entries(process.env)) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tenv[key] = value;\n\t\t\t}\n\t\t}\n\t\tif (!this.normalizeOptionalString(env.HOME)) {\n\t\t\tconst fallbackHome = this.normalizeOptionalString(process.env.HOME || os.homedir());\n\t\t\tif (fallbackHome) {\n\t\t\t\tenv.HOME = fallbackHome;\n\t\t\t}\n\t\t}\n\t\tawait this.ensureCodexHome(env);\n\t\tif (this.cleanZdotdirEnabled) {\n\t\t\tenv.ZDOTDIR = await this.ensureZdotdir();\n\t\t}\n\t\treturn env;\n\t}\n\n\tprivate async ensureCodexHome(env: Record<string, string>): Promise<void> {\n\t\tconst current = this.normalizeOptionalString(env.CODEX_HOME || process.env.CODEX_HOME);\n\t\tconst homeRoot = this.normalizeOptionalString(env.HOME || process.env.HOME || os.homedir());\n\t\tconst primary = current || (homeRoot ? path.join(homeRoot, '.codex') : path.join(os.tmpdir(), 'resolveio-codex-home'));\n\t\ttry {\n\t\t\tawait fs.mkdir(path.join(primary, 'sessions'), { recursive: true });\n\t\t\tenv.CODEX_HOME = primary;\n\t\t\tprocess.env.CODEX_HOME = primary;\n\t\t\treturn;\n\t\t}\n\t\tcatch {\n\t\t\tconst fallback = path.join(os.tmpdir(), 'resolveio-codex-home');\n\t\t\tawait fs.mkdir(path.join(fallback, 'sessions'), { recursive: true });\n\t\t\tenv.CODEX_HOME = fallback;\n\t\t\tprocess.env.CODEX_HOME = fallback;\n\t\t}\n\t}\n\n\tprivate async ensureZdotdir(): Promise<string> {\n\t\tif (this.zDotDir) {\n\t\t\treturn this.zDotDir;\n\t\t}\n\t\tconst override = (process.env.AI_DASHBOARD_CODEX_ZDOTDIR || '').trim();\n\t\tconst dir = override || path.join(os.tmpdir(), 'codex-zdotdir');\n\t\tawait fs.mkdir(dir, { recursive: true });\n\t\tawait Promise.allSettled([\n\t\t\tfs.writeFile(path.join(dir, '.zshrc'), '', { flag: 'a' }),\n\t\t\tfs.writeFile(path.join(dir, '.zprofile'), '', { flag: 'a' })\n\t\t]);\n\t\tthis.zDotDir = dir;\n\t\treturn dir;\n\t}\n\n\tprivate resolvePingEnabled(): boolean {\n\t\treturn this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_PING, false);\n\t}\n\n\tprivate resolvePingTimeoutMs(): number {\n\t\tconst raw = Number(process.env.AI_DASHBOARD_CODEX_PING_TIMEOUT_MS);\n\t\tif (Number.isFinite(raw) && raw > 0) {\n\t\t\treturn Math.floor(raw);\n\t\t}\n\t\treturn 10000;\n\t}\n\n\tprivate resolveDefaultThreadOptions(): CodexThreadOptions {\n\t\tconst approvalPolicy = this.normalizeApprovalPolicy(process.env.AI_DASHBOARD_CODEX_APPROVAL_POLICY);\n\t\tconst sandboxMode = this.normalizeSandboxMode(process.env.AI_DASHBOARD_CODEX_SANDBOX_MODE, 'workspace-write');\n\t\tconst skipGitRepoCheck = this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_SKIP_GIT_CHECK, true);\n\t\tconst webSearchMode = this.normalizeWebSearchMode(process.env.AI_DASHBOARD_CODEX_WEB_SEARCH_MODE);\n\t\tconst webSearchEnabled = this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_WEB_SEARCH_ENABLED, false);\n\t\tconst networkAccessEnabled = this.normalizeBoolean(process.env.AI_DASHBOARD_CODEX_NETWORK_ACCESS_ENABLED, false);\n\t\tconst modelReasoningEffort = this.normalizeModelReasoningEffort(process.env.AI_DASHBOARD_CODEX_REASONING_EFFORT);\n\t\treturn {\n\t\t\tmodel: this.config.model,\n\t\t\tapprovalPolicy,\n\t\t\tsandboxMode,\n\t\t\tskipGitRepoCheck,\n\t\t\twebSearchMode,\n\t\t\twebSearchEnabled,\n\t\t\tnetworkAccessEnabled,\n\t\t\tmodelReasoningEffort\n\t\t};\n\t}\n\n\tprivate mergeThreadOptions(overrides?: CodexThreadOptions): CodexThreadOptions | undefined {\n\t\tconst merged: CodexThreadOptions = {\n\t\t\t...this.defaultThreadOptions,\n\t\t\t...(overrides || {})\n\t\t};\n\t\tconst effectiveModel = this.normalizeOptionalString(merged.model || this.config.model);\n\t\tconst normalizedEffort = this.normalizeModelReasoningEffortForModel(effectiveModel, merged.modelReasoningEffort);\n\t\tif (normalizedEffort && normalizedEffort !== merged.modelReasoningEffort) {\n\t\t\tthis.log(`normalized reasoning effort for model=${effectiveModel || 'default'}: ${merged.modelReasoningEffort} -> ${normalizedEffort}`);\n\t\t\tmerged.modelReasoningEffort = normalizedEffort;\n\t\t}\n\t\tconst cleaned = Object.entries(merged).reduce((acc, [key, value]) => {\n\t\t\tif (value === undefined || value === null || value === '') {\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\t(acc as any)[key] = value;\n\t\t\treturn acc;\n\t\t}, {} as CodexThreadOptions);\n\t\treturn Object.keys(cleaned).length ? cleaned : undefined;\n\t}\n\n\tprivate normalizeApprovalPolicy(value?: string): CodexThreadOptions['approvalPolicy'] {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'never' || normalized === 'on-request' || normalized === 'on-failure' || normalized === 'untrusted') {\n\t\t\treturn normalized as CodexThreadOptions['approvalPolicy'];\n\t\t}\n\t\treturn 'never';\n\t}\n\n\tprivate normalizeSandboxMode(value?: string, fallback: CodexThreadOptions['sandboxMode'] = 'read-only'): CodexThreadOptions['sandboxMode'] {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'read-only' || normalized === 'workspace-write' || normalized === 'danger-full-access') {\n\t\t\treturn normalized as CodexThreadOptions['sandboxMode'];\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate normalizeWebSearchMode(value?: string): CodexThreadOptions['webSearchMode'] | undefined {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'disabled' || normalized === 'cached' || normalized === 'live') {\n\t\t\treturn normalized as CodexThreadOptions['webSearchMode'];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate normalizeModelReasoningEffort(value?: string): CodexThreadOptions['modelReasoningEffort'] | undefined {\n\t\tconst normalized = (value || '').trim().toLowerCase();\n\t\tif (normalized === 'minimal' || normalized === 'none' || normalized === 'low' || normalized === 'medium' || normalized === 'high' || normalized === 'xhigh') {\n\t\t\treturn normalized as CodexThreadOptions['modelReasoningEffort'];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate normalizeModelReasoningEffortForModel(\n\t\tmodel: string,\n\t\teffort?: CodexThreadOptions['modelReasoningEffort']\n\t): CodexThreadOptions['modelReasoningEffort'] | undefined {\n\t\tif (!effort) {\n\t\t\treturn effort;\n\t\t}\n\t\tconst normalizedModel = this.normalizeOptionalString(model).toLowerCase();\n\t\tif (effort === 'minimal' && (!normalizedModel || normalizedModel.startsWith('gpt-5') || normalizedModel.includes('codex'))) {\n\t\t\treturn 'low';\n\t\t}\n\t\treturn effort;\n\t}\n\n\tprivate normalizeBoolean(value: string | undefined, fallback: boolean): boolean {\n\t\tif (!value) {\n\t\t\treturn fallback;\n\t\t}\n\t\tconst normalized = value.trim().toLowerCase();\n\t\tif (['true', '1', 'yes', 'y', 'on'].includes(normalized)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (['false', '0', 'no', 'n', 'off'].includes(normalized)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tprivate formatThreadOptions(options: CodexThreadOptions): string {\n\t\tconst summary: Record<string, string> = {};\n\t\tObject.entries(options).forEach(([key, value]) => {\n\t\t\tif (value === undefined || value === null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsummary[key] = String(value);\n\t\t});\n\t\treturn JSON.stringify(summary);\n\t}\n\n\tprivate buildThreadOptionsKey(options?: CodexThreadOptions): string {\n\t\tif (!options) {\n\t\t\treturn '';\n\t\t}\n\t\tconst ordered: Record<string, string> = {};\n\t\tObject.keys(options)\n\t\t\t.sort()\n\t\t\t.forEach((key) => {\n\t\t\t\tconst value = (options as Record<string, unknown>)[key];\n\t\t\t\tif (value === undefined || value === null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tordered[key] = Array.isArray(value) ? JSON.stringify(value) : String(value);\n\t\t\t});\n\t\treturn JSON.stringify(ordered);\n\t}\n\n\tprivate buildThreadCacheKey(threadKey: string | undefined, options?: CodexThreadOptions): string | null {\n\t\tif (threadKey) {\n\t\t\treturn `thread:${threadKey}`;\n\t\t}\n\t\tconst model = options?.model || this.config.model;\n\t\tconst workingDirectory = options?.workingDirectory;\n\t\tif (!model && !workingDirectory) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `thread:auto:${model || 'default'}:${workingDirectory || 'root'}`;\n\t}\n\n\tprivate isPingPrompt(prompt: string): boolean {\n\t\treturn prompt.trim() === CodexClient.PING_PROMPT;\n\t}\n\n\tprivate async runPing(threadOptions?: CodexThreadOptions): Promise<void> {\n\t\tthis.log(`runPing start (timeoutMs=${this.pingTimeoutMs})`);\n\t\ttry {\n\t\t\tconst content = await this.runOnce(CodexClient.PING_PROMPT, {\n\t\t\t\ttimeoutMs: this.pingTimeoutMs,\n\t\t\t\tthreadOptions,\n\t\t\t\treuseThread: false\n\t\t\t});\n\t\t\tconst trimmed = content.trim();\n\t\t\tconst preview = trimmed.length > 80 ? `${trimmed.slice(0, 80)}…` : trimmed;\n\t\t\tthis.log(`runPing response: ${preview}`);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\t\tthis.log(`runPing failed: ${message}`);\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n"]}
|