cactus-react-native 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,10 +7,6 @@ exports.CactusAgent = void 0;
7
7
  var _lm = require("./lm");
8
8
  var _tools = require("./tools");
9
9
  class CactusAgent extends _lm.CactusLM {
10
- constructor(context) {
11
- super(context);
12
- this.tools = new _tools.Tools();
13
- }
14
10
  static async init(params, onProgress, cactusToken, retryOptions) {
15
11
  const result = await _lm.CactusLM.init(params, onProgress, cactusToken, retryOptions);
16
12
  if (result.error || !result.lm) {
@@ -1 +1 @@
1
- {"version":3,"names":["_lm","require","_tools","CactusAgent","CactusLM","constructor","context","tools","Tools","init","params","onProgress","cactusToken","retryOptions","result","error","lm","agent","Object","setPrototypeOf","prototype","addTool","func","description","parameters","add","getTools","completionWithTools","messages","callback","recursionCount","recursionLimit","length","completion","getSchemas","jinja","newMessages","requiresReset","conversationHistoryManager","processNewMessages","rewind","reset","update","role","content","tool_calls","exports"],"sourceRoot":"../../src","sources":["agent.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_lm","require","_tools","CactusAgent","CactusLM","init","params","onProgress","cactusToken","retryOptions","result","error","lm","agent","Object","setPrototypeOf","prototype","tools","Tools","addTool","func","description","parameters","add","getTools","completionWithTools","messages","callback","recursionCount","recursionLimit","length","completion","getSchemas","jinja","newMessages","requiresReset","conversationHistoryManager","processNewMessages","context","rewind","reset","update","role","content","tool_calls","exports"],"sourceRoot":"../../src","sources":["agent.ts"],"mappings":"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","ignoreList":[]}
@@ -19,10 +19,29 @@ class CactusLM {
19
19
  retryOptions
20
20
  });
21
21
  }
22
- constructor(context) {
22
+ constructor(context, initParams) {
23
23
  this.context = context;
24
+ this.initParams = initParams;
24
25
  this.conversationHistoryManager = new _chat.ConversationHistoryManager();
25
26
  }
27
+ static isContextNotFoundError(e) {
28
+ const message = String(e?.message ?? e ?? '');
29
+ return /context not found/i.test(message);
30
+ }
31
+ async reinit() {
32
+ const newContext = await (0, _index.initLlama)(this.initParams);
33
+ this.context = newContext;
34
+ this.conversationHistoryManager.reset();
35
+ }
36
+ async run(op) {
37
+ try {
38
+ return await op();
39
+ } catch (e) {
40
+ if (!CactusLM.isContextNotFoundError(e)) throw e;
41
+ await this.reinit();
42
+ return await op();
43
+ }
44
+ }
26
45
  static async init(params, onProgress, cactusToken, retryOptions) {
27
46
  if (cactusToken) {
28
47
  (0, _remote.setCactusToken)(cactusToken);
@@ -57,7 +76,7 @@ class CactusLM {
57
76
  try {
58
77
  const context = await (0, _index.initLlama)(config, onProgress);
59
78
  return {
60
- lm: new CactusLM(context),
79
+ lm: new CactusLM(context, config),
61
80
  error: null
62
81
  };
63
82
  } catch (e) {
@@ -91,9 +110,8 @@ class CactusLM {
91
110
  })();
92
111
  CactusLM._initCache.set(key, initPromise);
93
112
  const result = await initPromise;
94
- if (result.error) {
95
- CactusLM._initCache.delete(key);
96
- }
113
+ // Cache only while in-flight; never cache resolved instances
114
+ CactusLM._initCache.delete(key);
97
115
  return result;
98
116
  }
99
117
  completion = async (messages, params = {}, callback) => {
@@ -102,16 +120,16 @@ class CactusLM {
102
120
  requiresReset
103
121
  } = this.conversationHistoryManager.processNewMessages(messages);
104
122
  if (requiresReset) {
105
- this.context?.rewind();
123
+ await this.run(() => this.context.rewind());
106
124
  this.conversationHistoryManager.reset();
107
125
  }
108
126
  if (newMessages.length === 0) {
109
127
  console.warn('No messages to complete!');
110
128
  }
111
- const result = await this.context.completion({
129
+ const result = await this.run(() => this.context.completion({
112
130
  messages: newMessages,
113
131
  ...params
114
- }, callback);
132
+ }, callback));
115
133
  this.conversationHistoryManager.update(newMessages, {
116
134
  role: 'assistant',
117
135
  content: result.content
@@ -153,7 +171,7 @@ class CactusLM {
153
171
  return result;
154
172
  }
155
173
  async _handleLocalEmbedding(text, params) {
156
- return this.context.embedding(text, params);
174
+ return this.run(() => this.context.embedding(text, params));
157
175
  }
158
176
  async _handleRemoteEmbedding(text) {
159
177
  const embeddingValues = await (0, _remote.getVertexAIEmbedding)(text);
@@ -162,13 +180,19 @@ class CactusLM {
162
180
  };
163
181
  }
164
182
  rewind = async () => {
165
- return this.context?.rewind();
183
+ return this.run(() => this.context.rewind());
166
184
  };
167
185
  async release() {
168
- return this.context.release();
186
+ try {
187
+ return await this.context.release();
188
+ } catch (e) {
189
+ // Treat missing context as already released
190
+ if (CactusLM.isContextNotFoundError(e)) return;
191
+ throw e;
192
+ }
169
193
  }
170
194
  async stopCompletion() {
171
- return await this.context.stopCompletion();
195
+ return await this.run(() => this.context.stopCompletion());
172
196
  }
173
197
  }
174
198
  exports.CactusLM = CactusLM;
@@ -1 +1 @@
1
- {"version":3,"names":["_index","require","_telemetry","_remote","_chat","CactusLM","_initCache","Map","getCacheKey","params","cactusToken","retryOptions","JSON","stringify","constructor","context","conversationHistoryManager","ConversationHistoryManager","init","onProgress","setCactusToken","key","has","get","initPromise","maxRetries","delayMs","configs","n_gpu_layers","sleep","ms","Promise","resolve","start","Date","now","wait","then","config","lastError","attempt","initLlama","lm","error","e","isLastConfig","indexOf","length","isLastAttempt","Telemetry","n_ctx","model","delay","Math","pow","Error","set","result","delete","completion","messages","callback","newMessages","requiresReset","processNewMessages","rewind","reset","console","warn","update","role","content","embedding","text","mode","_handleRemoteEmbedding","_handleLocalEmbedding","remoteError","localError","embeddingValues","getVertexAIEmbedding","release","stopCompletion","exports"],"sourceRoot":"../../src","sources":["lm.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_index","require","_telemetry","_remote","_chat","CactusLM","_initCache","Map","getCacheKey","params","cactusToken","retryOptions","JSON","stringify","constructor","context","initParams","conversationHistoryManager","ConversationHistoryManager","isContextNotFoundError","e","message","String","test","reinit","newContext","initLlama","reset","run","op","init","onProgress","setCactusToken","key","has","get","initPromise","maxRetries","delayMs","configs","n_gpu_layers","sleep","ms","Promise","resolve","start","Date","now","wait","then","config","lastError","attempt","lm","error","isLastConfig","indexOf","length","isLastAttempt","Telemetry","n_ctx","model","delay","Math","pow","Error","set","result","delete","completion","messages","callback","newMessages","requiresReset","processNewMessages","rewind","console","warn","update","role","content","embedding","text","mode","_handleRemoteEmbedding","_handleLocalEmbedding","remoteError","localError","embeddingValues","getVertexAIEmbedding","release","stopCompletion","exports"],"sourceRoot":"../../src","sources":["lm.ts"],"mappings":"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","ignoreList":[]}
@@ -3,10 +3,6 @@
3
3
  import { CactusLM } from './lm';
4
4
  import { Tools } from './tools';
5
5
  export class CactusAgent extends CactusLM {
6
- constructor(context) {
7
- super(context);
8
- this.tools = new Tools();
9
- }
10
6
  static async init(params, onProgress, cactusToken, retryOptions) {
11
7
  const result = await CactusLM.init(params, onProgress, cactusToken, retryOptions);
12
8
  if (result.error || !result.lm) {
@@ -1 +1 @@
1
- {"version":3,"names":["CactusLM","Tools","CactusAgent","constructor","context","tools","init","params","onProgress","cactusToken","retryOptions","result","error","lm","agent","Object","setPrototypeOf","prototype","addTool","func","description","parameters","add","getTools","completionWithTools","messages","callback","recursionCount","recursionLimit","length","completion","getSchemas","jinja","newMessages","requiresReset","conversationHistoryManager","processNewMessages","rewind","reset","update","role","content","tool_calls"],"sourceRoot":"../../src","sources":["agent.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CactusLM","Tools","CactusAgent","init","params","onProgress","cactusToken","retryOptions","result","error","lm","agent","Object","setPrototypeOf","prototype","tools","addTool","func","description","parameters","add","getTools","completionWithTools","messages","callback","recursionCount","recursionLimit","length","completion","getSchemas","jinja","newMessages","requiresReset","conversationHistoryManager","processNewMessages","context","rewind","reset","update","role","content","tool_calls"],"sourceRoot":"../../src","sources":["agent.ts"],"mappings":"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","ignoreList":[]}
package/lib/module/lm.js CHANGED
@@ -15,10 +15,29 @@ export class CactusLM {
15
15
  retryOptions
16
16
  });
17
17
  }
18
- constructor(context) {
18
+ constructor(context, initParams) {
19
19
  this.context = context;
20
+ this.initParams = initParams;
20
21
  this.conversationHistoryManager = new ConversationHistoryManager();
21
22
  }
23
+ static isContextNotFoundError(e) {
24
+ const message = String(e?.message ?? e ?? '');
25
+ return /context not found/i.test(message);
26
+ }
27
+ async reinit() {
28
+ const newContext = await initLlama(this.initParams);
29
+ this.context = newContext;
30
+ this.conversationHistoryManager.reset();
31
+ }
32
+ async run(op) {
33
+ try {
34
+ return await op();
35
+ } catch (e) {
36
+ if (!CactusLM.isContextNotFoundError(e)) throw e;
37
+ await this.reinit();
38
+ return await op();
39
+ }
40
+ }
22
41
  static async init(params, onProgress, cactusToken, retryOptions) {
23
42
  if (cactusToken) {
24
43
  setCactusToken(cactusToken);
@@ -53,7 +72,7 @@ export class CactusLM {
53
72
  try {
54
73
  const context = await initLlama(config, onProgress);
55
74
  return {
56
- lm: new CactusLM(context),
75
+ lm: new CactusLM(context, config),
57
76
  error: null
58
77
  };
59
78
  } catch (e) {
@@ -87,9 +106,8 @@ export class CactusLM {
87
106
  })();
88
107
  CactusLM._initCache.set(key, initPromise);
89
108
  const result = await initPromise;
90
- if (result.error) {
91
- CactusLM._initCache.delete(key);
92
- }
109
+ // Cache only while in-flight; never cache resolved instances
110
+ CactusLM._initCache.delete(key);
93
111
  return result;
94
112
  }
95
113
  completion = async (messages, params = {}, callback) => {
@@ -98,16 +116,16 @@ export class CactusLM {
98
116
  requiresReset
99
117
  } = this.conversationHistoryManager.processNewMessages(messages);
100
118
  if (requiresReset) {
101
- this.context?.rewind();
119
+ await this.run(() => this.context.rewind());
102
120
  this.conversationHistoryManager.reset();
103
121
  }
104
122
  if (newMessages.length === 0) {
105
123
  console.warn('No messages to complete!');
106
124
  }
107
- const result = await this.context.completion({
125
+ const result = await this.run(() => this.context.completion({
108
126
  messages: newMessages,
109
127
  ...params
110
- }, callback);
128
+ }, callback));
111
129
  this.conversationHistoryManager.update(newMessages, {
112
130
  role: 'assistant',
113
131
  content: result.content
@@ -149,7 +167,7 @@ export class CactusLM {
149
167
  return result;
150
168
  }
151
169
  async _handleLocalEmbedding(text, params) {
152
- return this.context.embedding(text, params);
170
+ return this.run(() => this.context.embedding(text, params));
153
171
  }
154
172
  async _handleRemoteEmbedding(text) {
155
173
  const embeddingValues = await getVertexAIEmbedding(text);
@@ -158,13 +176,19 @@ export class CactusLM {
158
176
  };
159
177
  }
160
178
  rewind = async () => {
161
- return this.context?.rewind();
179
+ return this.run(() => this.context.rewind());
162
180
  };
163
181
  async release() {
164
- return this.context.release();
182
+ try {
183
+ return await this.context.release();
184
+ } catch (e) {
185
+ // Treat missing context as already released
186
+ if (CactusLM.isContextNotFoundError(e)) return;
187
+ throw e;
188
+ }
165
189
  }
166
190
  async stopCompletion() {
167
- return await this.context.stopCompletion();
191
+ return await this.run(() => this.context.stopCompletion());
168
192
  }
169
193
  }
170
194
  //# sourceMappingURL=lm.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["initLlama","Telemetry","setCactusToken","getVertexAIEmbedding","ConversationHistoryManager","CactusLM","_initCache","Map","getCacheKey","params","cactusToken","retryOptions","JSON","stringify","constructor","context","conversationHistoryManager","init","onProgress","key","has","get","initPromise","maxRetries","delayMs","configs","n_gpu_layers","sleep","ms","Promise","resolve","start","Date","now","wait","then","config","lastError","attempt","lm","error","e","isLastConfig","indexOf","length","isLastAttempt","n_ctx","model","delay","Math","pow","Error","set","result","delete","completion","messages","callback","newMessages","requiresReset","processNewMessages","rewind","reset","console","warn","update","role","content","embedding","text","mode","_handleRemoteEmbedding","_handleLocalEmbedding","remoteError","localError","embeddingValues","release","stopCompletion"],"sourceRoot":"../../src","sources":["lm.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["initLlama","Telemetry","setCactusToken","getVertexAIEmbedding","ConversationHistoryManager","CactusLM","_initCache","Map","getCacheKey","params","cactusToken","retryOptions","JSON","stringify","constructor","context","initParams","conversationHistoryManager","isContextNotFoundError","e","message","String","test","reinit","newContext","reset","run","op","init","onProgress","key","has","get","initPromise","maxRetries","delayMs","configs","n_gpu_layers","sleep","ms","Promise","resolve","start","Date","now","wait","then","config","lastError","attempt","lm","error","isLastConfig","indexOf","length","isLastAttempt","n_ctx","model","delay","Math","pow","Error","set","result","delete","completion","messages","callback","newMessages","requiresReset","processNewMessages","rewind","console","warn","update","role","content","embedding","text","mode","_handleRemoteEmbedding","_handleLocalEmbedding","remoteError","localError","embeddingValues","release","stopCompletion"],"sourceRoot":"../../src","sources":["lm.ts"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,6 @@ export interface AgentCompletionParams extends CompletionParams {
16
16
  }
17
17
  export declare class CactusAgent extends CactusLM {
18
18
  private tools;
19
- protected constructor(context: any);
20
19
  static init(params: ContextParams, onProgress?: (progress: number) => void, cactusToken?: string, retryOptions?: {
21
20
  maxRetries?: number;
22
21
  delayMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,EAAE,EAAE,WAAW,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,qBAAa,WAAY,SAAQ,QAAQ;IACvC,OAAO,CAAC,KAAK,CAAO;IAEpB,SAAS,aAAa,OAAO,EAAE,GAAG;WAKrB,IAAI,CACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,iBAAiB,CAAC;IAY7B,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GACvC,QAAQ;IAIX,QAAQ,IAAI,KAAK;IAIX,mBAAmB,CACvB,QAAQ,EAAE,0BAA0B,EAAE,EACtC,MAAM,GAAE,qBAA0B,EAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,EACpC,cAAc,GAAE,MAAU,EAC1B,cAAc,GAAE,MAAU,GACzB,OAAO,CAAC,sBAAsB,CAAC;CA0CnC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,EAAE,EAAE,WAAW,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,qBAAa,WAAY,SAAQ,QAAQ;IACvC,OAAO,CAAC,KAAK,CAAQ;WAER,IAAI,CACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,iBAAiB,CAAC;IAY7B,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GACvC,QAAQ;IAIX,QAAQ,IAAI,KAAK;IAIX,mBAAmB,CACvB,QAAQ,EAAE,0BAA0B,EAAE,EACtC,MAAM,GAAE,qBAA0B,EAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,EACpC,cAAc,GAAE,MAAU,EAC1B,cAAc,GAAE,MAAU,GACzB,OAAO,CAAC,sBAAsB,CAAC;CA0CnC"}
@@ -8,9 +8,13 @@ interface CactusLMReturn {
8
8
  export declare class CactusLM {
9
9
  protected context: LlamaContext;
10
10
  protected conversationHistoryManager: ConversationHistoryManager;
11
+ private initParams;
11
12
  private static _initCache;
12
13
  private static getCacheKey;
13
- protected constructor(context: LlamaContext);
14
+ protected constructor(context: LlamaContext, initParams: ContextParams);
15
+ private static isContextNotFoundError;
16
+ private reinit;
17
+ private run;
14
18
  static init(params: ContextParams, onProgress?: (progress: number) => void, cactusToken?: string, retryOptions?: {
15
19
  maxRetries?: number;
16
20
  delayMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"lm.d.ts","sourceRoot":"","sources":["../../src/lm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AAEnD,UAAU,cAAc;IACtB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAED,qBAAa,QAAQ;IACnB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAA;IAC/B,SAAS,CAAC,0BAA0B,EAAE,0BAA0B,CAAA;IAEhE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAmD;IAE5E,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,SAAS,aAAa,OAAO,EAAE,YAAY;WAK9B,IAAI,CACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,cAAc,CAAC;IA6E1B,UAAU,GACR,UAAU,0BAA0B,EAAE,EACtC,SAAQ,gBAAqB,EAC7B,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAC7B,OAAO,CAAC,sBAAsB,CAAC,CAqBjC;IAEK,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,EACxB,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,qBAAqB,CAAC;cAoCjB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAI7F,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOpF,MAAM,QAAa,OAAO,CAAC,IAAI,CAAC,CAE/B;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC"}
1
+ {"version":3,"file":"lm.d.ts","sourceRoot":"","sources":["../../src/lm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AAEnD,UAAU,cAAc;IACtB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAED,qBAAa,QAAQ;IACnB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAA;IAC/B,SAAS,CAAC,0BAA0B,EAAE,0BAA0B,CAAA;IAChE,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAmD;IAE5E,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,SAAS,aAAa,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa;IAMtE,OAAO,CAAC,MAAM,CAAC,sBAAsB;YAKvB,MAAM;YAMN,GAAG;WAUJ,IAAI,CACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,cAAc,CAAC;IA4E1B,UAAU,GACR,UAAU,0BAA0B,EAAE,EACtC,SAAQ,gBAAqB,EAC7B,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAC7B,OAAO,CAAC,sBAAsB,CAAC,CAuBjC;IAEK,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,EACxB,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,qBAAqB,CAAC;cAoCjB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAI7F,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOpF,MAAM,QAAa,OAAO,CAAC,IAAI,CAAC,CAE/B;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Run AI models locally on mobile devices",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/agent.ts CHANGED
@@ -27,12 +27,7 @@ export interface AgentCompletionParams extends CompletionParams {
27
27
  }
28
28
 
29
29
  export class CactusAgent extends CactusLM {
30
- private tools: Tools
31
-
32
- protected constructor(context: any) {
33
- super(context)
34
- this.tools = new Tools()
35
- }
30
+ private tools!: Tools
36
31
 
37
32
  static async init(
38
33
  params: ContextParams,
package/src/lm.ts CHANGED
@@ -22,18 +22,40 @@ interface CactusLMReturn {
22
22
  export class CactusLM {
23
23
  protected context: LlamaContext
24
24
  protected conversationHistoryManager: ConversationHistoryManager
25
-
25
+ private initParams: ContextParams
26
26
  private static _initCache: Map<string, Promise<CactusLMReturn>> = new Map();
27
27
 
28
28
  private static getCacheKey(params: ContextParams, cactusToken?: string, retryOptions?: { maxRetries?: number; delayMs?: number }): string {
29
29
  return JSON.stringify({ params, cactusToken, retryOptions });
30
30
  }
31
31
 
32
- protected constructor(context: LlamaContext) {
32
+ protected constructor(context: LlamaContext, initParams: ContextParams) {
33
33
  this.context = context
34
+ this.initParams = initParams
34
35
  this.conversationHistoryManager = new ConversationHistoryManager()
35
36
  }
36
37
 
38
+ private static isContextNotFoundError(e: unknown): boolean {
39
+ const message = String((e as any)?.message ?? e ?? '')
40
+ return /context not found/i.test(message)
41
+ }
42
+
43
+ private async reinit(): Promise<void> {
44
+ const newContext = await initLlama(this.initParams)
45
+ this.context = newContext
46
+ this.conversationHistoryManager.reset()
47
+ }
48
+
49
+ private async run<T>(op: () => Promise<T>): Promise<T> {
50
+ try {
51
+ return await op()
52
+ } catch (e) {
53
+ if (!CactusLM.isContextNotFoundError(e)) throw e
54
+ await this.reinit()
55
+ return await op()
56
+ }
57
+ }
58
+
37
59
  static async init(
38
60
  params: ContextParams,
39
61
  onProgress?: (progress: number) => void,
@@ -79,7 +101,7 @@ export class CactusLM {
79
101
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
80
102
  try {
81
103
  const context = await initLlama(config, onProgress);
82
- return { lm: new CactusLM(context), error: null };
104
+ return { lm: new CactusLM(context, config), error: null };
83
105
  } catch (e) {
84
106
  lastError = e as Error;
85
107
  const isLastConfig = configs.indexOf(config) === configs.length - 1;
@@ -110,9 +132,8 @@ export class CactusLM {
110
132
  CactusLM._initCache.set(key, initPromise);
111
133
 
112
134
  const result = await initPromise;
113
- if (result.error) {
114
- CactusLM._initCache.delete(key);
115
- }
135
+ // Cache only while in-flight; never cache resolved instances
136
+ CactusLM._initCache.delete(key);
116
137
  return result;
117
138
  }
118
139
 
@@ -125,7 +146,7 @@ export class CactusLM {
125
146
  this.conversationHistoryManager.processNewMessages(messages);
126
147
 
127
148
  if (requiresReset) {
128
- this.context?.rewind();
149
+ await this.run(() => this.context.rewind())
129
150
  this.conversationHistoryManager.reset();
130
151
  }
131
152
 
@@ -133,7 +154,9 @@ export class CactusLM {
133
154
  console.warn('No messages to complete!');
134
155
  }
135
156
 
136
- const result = await this.context.completion({ messages: newMessages, ...params }, callback);
157
+ const result = await this.run(() =>
158
+ this.context.completion({ messages: newMessages, ...params }, callback),
159
+ )
137
160
 
138
161
  this.conversationHistoryManager.update(newMessages, {
139
162
  role: 'assistant',
@@ -184,7 +207,7 @@ export class CactusLM {
184
207
  }
185
208
 
186
209
  protected async _handleLocalEmbedding(text: string, params?: EmbeddingParams): Promise<NativeEmbeddingResult> {
187
- return this.context.embedding(text, params);
210
+ return this.run(() => this.context.embedding(text, params))
188
211
  }
189
212
 
190
213
  protected async _handleRemoteEmbedding(text: string): Promise<NativeEmbeddingResult> {
@@ -195,15 +218,21 @@ export class CactusLM {
195
218
  }
196
219
 
197
220
  rewind = async (): Promise<void> => {
198
- return this.context?.rewind()
221
+ return this.run(() => this.context.rewind())
199
222
  }
200
223
 
201
224
  async release(): Promise<void> {
202
- return this.context.release()
225
+ try {
226
+ return await this.context.release()
227
+ } catch (e) {
228
+ // Treat missing context as already released
229
+ if (CactusLM.isContextNotFoundError(e)) return
230
+ throw e
231
+ }
203
232
  }
204
233
 
205
234
  async stopCompletion(): Promise<void> {
206
- return await this.context.stopCompletion()
235
+ return await this.run(() => this.context.stopCompletion())
207
236
  }
208
237
 
209
238
  }