@multiplayer-app/ai-agent-mongo 0.1.0-beta.5 → 0.1.0-beta.6

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.
@@ -88,6 +88,60 @@ const connect = async () => {
88
88
  };
89
89
  await mongoose_1.default.connect(_Config.MONGODB_URI, options);
90
90
  };
91
+ /**
92
+ * Ensure all model indexes are created on the given connection
93
+ * This is called when using an existing connection to ensure indexes exist
94
+ * even if autoIndex was disabled on that connection
95
+ */
96
+ const ensureIndexes = async (connection) => {
97
+ try {
98
+ // Get all models registered on this connection
99
+ const modelNames = connection.modelNames();
100
+ // Also check for library models that might be on the default connection
101
+ // (if connection is from the same Mongoose instance)
102
+ const libraryModelNames = ['AgentChat', 'AgentMessage'];
103
+ const allModelNames = [...new Set([...modelNames, ...libraryModelNames])];
104
+ logger.info(`[MONGO] Ensuring indexes for models on existing connection`);
105
+ // Sync indexes for all models
106
+ // This will create indexes defined in schemas even if autoIndex is disabled
107
+ await Promise.all(allModelNames.map(async (modelName) => {
108
+ try {
109
+ // Check if model exists on this connection
110
+ // connection.models is a map of all registered models
111
+ const model = connection.models[modelName];
112
+ if (!model) {
113
+ logger.debug?.(`[MONGO] Model ${modelName} not found on connection, skipping`);
114
+ return Promise.resolve();
115
+ }
116
+ // Sync indexes for the model
117
+ // This will create indexes defined in schemas even if autoIndex is disabled
118
+ return model.syncIndexes().catch((err) => {
119
+ // Model might not exist on this connection, which is fine
120
+ const errMessage = err?.message || String(err);
121
+ if (errMessage.includes('Cannot overwrite') || errMessage.includes('model')) {
122
+ logger.debug?.(`[MONGO] Model ${modelName} not available on this connection, skipping`);
123
+ }
124
+ else {
125
+ logger.error(err, `[MONGO] Failed to sync indexes for model ${modelName}: ${errMessage}`);
126
+ }
127
+ });
128
+ }
129
+ catch (err) {
130
+ // Model doesn't exist on this connection - this is expected if using a different Mongoose instance
131
+ const errMessage = err?.message || String(err);
132
+ if (errMessage.includes('model') || errMessage.includes('not found')) {
133
+ logger.debug?.(`[MONGO] Model ${modelName} not found on connection, skipping`);
134
+ }
135
+ return Promise.resolve();
136
+ }
137
+ }));
138
+ logger.info('[MONGO] Indexes ensured for available models');
139
+ }
140
+ catch (error) {
141
+ logger.error(error, '[MONGO] Error ensuring indexes on existing connection');
142
+ // Don't throw - allow connection to proceed even if index creation fails
143
+ }
144
+ };
91
145
  const connected = () => mongoose_1.default.connection.readyState === 1;
92
146
  exports.connected = connected;
93
147
  const disconnect = async () => {
@@ -107,5 +161,6 @@ exports.default = {
107
161
  ObjectId: mongoose_1.default.Types.ObjectId,
108
162
  Schema: mongoose_1.default.Schema,
109
163
  Model: mongoose_1.default.Model,
164
+ ensureIndexes,
110
165
  };
111
166
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mongo/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mongo/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import Mongoose from 'mongoose';
1
+ import Mongoose, { Connection } from 'mongoose';
2
2
  import * as _Config from './config';
3
3
  import * as _encryption from './encryption';
4
4
  export declare const encryption: typeof _encryption;
@@ -20,6 +20,7 @@ declare const _default: {
20
20
  ObjectId: typeof Mongoose.Types.ObjectId;
21
21
  Schema: typeof Mongoose.Schema;
22
22
  Model: Mongoose.Model<any, {}, {}, {}, any, any>;
23
+ ensureIndexes: (connection: Connection) => Promise<void>;
23
24
  };
24
25
  export default _default;
25
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mongo/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAA4B,MAAM,UAAU,CAAA;AAEnD,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAI3C,eAAO,MAAM,UAAU,oBAAc,CAAA;AAIrC,eAAO,MAAM,QAAQ,iBAAW,CAAA;AAEhC,eAAO,MAAM,QAAQ,gCAA0B,CAAA;AAE/C,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAA;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,eAAO,MAAM,MAAM,wBAAkB,CAAA;AAErC,eAAO,MAAM,KAAK,2CAAiB,CAAA;AAEnC,eAAO,MAAM,MAAM,gBAAU,CAAA;AAmD7B,eAAO,MAAM,SAAS,eAA6C,CAAA;;;;;;;;;;;AAUnE,wBASC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mongo/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAkB,UAAU,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAI3C,eAAO,MAAM,UAAU,oBAAc,CAAA;AAIrC,eAAO,MAAM,QAAQ,iBAAW,CAAA;AAEhC,eAAO,MAAM,QAAQ,gCAA0B,CAAA;AAE/C,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAA;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,eAAO,MAAM,MAAM,wBAAkB,CAAA;AAErC,eAAO,MAAM,KAAK,2CAAiB,CAAA;AAEnC,eAAO,MAAM,MAAM,gBAAU,CAAA;AA8G7B,eAAO,MAAM,SAAS,eAA6C,CAAA;;;;;;;;;;gCAtD1B,UAAU;;AAgEnD,wBAUC"}