@celljs/ai-core 3.4.3 → 3.4.4

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.
Files changed (82) hide show
  1. package/lib/common/chat/index.d.ts +1 -0
  2. package/lib/common/chat/index.d.ts.map +1 -1
  3. package/lib/common/chat/index.js +1 -0
  4. package/lib/common/chat/index.js.map +1 -1
  5. package/lib/common/chat/message/message-protocol.d.ts +29 -4
  6. package/lib/common/chat/message/message-protocol.d.ts.map +1 -1
  7. package/lib/common/chat/message/message-protocol.js.map +1 -1
  8. package/lib/common/chat/metadata/chat-generation-metadata.d.ts +2 -2
  9. package/lib/common/chat/metadata/chat-generation-metadata.d.ts.map +1 -1
  10. package/lib/common/chat/metadata/chat-generation-metadata.js +2 -3
  11. package/lib/common/chat/metadata/chat-generation-metadata.js.map +1 -1
  12. package/lib/common/chat/metadata/metadata-protocol.d.ts +15 -11
  13. package/lib/common/chat/metadata/metadata-protocol.d.ts.map +1 -1
  14. package/lib/common/chat/metadata/metadata-protocol.js +26 -41
  15. package/lib/common/chat/metadata/metadata-protocol.js.map +1 -1
  16. package/lib/common/chat/model/chat-protocol.d.ts +3 -0
  17. package/lib/common/chat/model/chat-protocol.d.ts.map +1 -1
  18. package/lib/common/chat/model/chat-protocol.js +18 -2
  19. package/lib/common/chat/model/chat-protocol.js.map +1 -1
  20. package/lib/common/chat/prompt/prompt-protocol.d.ts +1 -1
  21. package/lib/common/chat/prompt/prompt-protocol.d.ts.map +1 -1
  22. package/lib/common/chat/prompt/prompt-template.d.ts +2 -1
  23. package/lib/common/chat/prompt/prompt-template.d.ts.map +1 -1
  24. package/lib/common/chat/prompt/prompt-template.js +10 -4
  25. package/lib/common/chat/prompt/prompt-template.js.map +1 -1
  26. package/lib/common/chat/tool/index.d.ts +3 -0
  27. package/lib/common/chat/tool/index.d.ts.map +1 -0
  28. package/lib/common/chat/tool/index.js +6 -0
  29. package/lib/common/chat/tool/index.js.map +1 -0
  30. package/lib/common/chat/tool/tool-handler.d.ts +12 -0
  31. package/lib/common/chat/tool/tool-handler.d.ts.map +1 -0
  32. package/lib/common/chat/tool/tool-handler.js +54 -0
  33. package/lib/common/chat/tool/tool-handler.js.map +1 -0
  34. package/lib/common/chat/tool/tool-protocol.d.ts +8 -0
  35. package/lib/common/chat/tool/tool-protocol.d.ts.map +1 -0
  36. package/lib/common/chat/tool/tool-protocol.js +5 -0
  37. package/lib/common/chat/tool/tool-protocol.js.map +1 -0
  38. package/lib/common/error/error.d.ts +3 -0
  39. package/lib/common/error/error.d.ts.map +1 -1
  40. package/lib/common/error/error.js +7 -1
  41. package/lib/common/error/error.js.map +1 -1
  42. package/lib/common/model/function/function-callback-register.d.ts +9 -0
  43. package/lib/common/model/function/function-callback-register.d.ts.map +1 -0
  44. package/lib/common/model/function/function-callback-register.js +43 -0
  45. package/lib/common/model/function/function-callback-register.js.map +1 -0
  46. package/lib/common/model/function/function-protocol.d.ts +28 -2
  47. package/lib/common/model/function/function-protocol.d.ts.map +1 -1
  48. package/lib/common/model/function/function-protocol.js +42 -1
  49. package/lib/common/model/function/function-protocol.js.map +1 -1
  50. package/lib/common/model/function/index.d.ts +1 -0
  51. package/lib/common/model/function/index.d.ts.map +1 -1
  52. package/lib/common/model/function/index.js +1 -0
  53. package/lib/common/model/function/index.js.map +1 -1
  54. package/lib/common/utils/index.d.ts +1 -0
  55. package/lib/common/utils/index.d.ts.map +1 -1
  56. package/lib/common/utils/index.js +1 -0
  57. package/lib/common/utils/index.js.map +1 -1
  58. package/lib/common/utils/sse-util.d.ts +1 -1
  59. package/lib/common/utils/sse-util.d.ts.map +1 -1
  60. package/lib/common/utils/sse-util.js.map +1 -1
  61. package/lib/common/utils/usage-util.d.ts +17 -0
  62. package/lib/common/utils/usage-util.d.ts.map +1 -0
  63. package/lib/common/utils/usage-util.js +62 -0
  64. package/lib/common/utils/usage-util.js.map +1 -0
  65. package/package.json +5 -5
  66. package/src/common/chat/index.ts +1 -0
  67. package/src/common/chat/message/message-protocol.ts +31 -4
  68. package/src/common/chat/metadata/chat-generation-metadata.ts +4 -4
  69. package/src/common/chat/metadata/metadata-protocol.ts +33 -49
  70. package/src/common/chat/model/chat-protocol.ts +22 -4
  71. package/src/common/chat/prompt/prompt-protocol.ts +1 -1
  72. package/src/common/chat/prompt/prompt-template.ts +12 -6
  73. package/src/common/chat/tool/index.ts +2 -0
  74. package/src/common/chat/tool/tool-handler.ts +51 -0
  75. package/src/common/chat/tool/tool-protocol.ts +9 -0
  76. package/src/common/error/error.ts +6 -0
  77. package/src/common/model/function/function-callback-register.ts +38 -0
  78. package/src/common/model/function/function-protocol.ts +59 -2
  79. package/src/common/model/function/index.ts +1 -0
  80. package/src/common/utils/index.ts +1 -0
  81. package/src/common/utils/sse-util.ts +1 -1
  82. package/src/common/utils/usage-util.ts +60 -0
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/common/error/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,OAAQ,SAAQ,WAAW;gBACxB,OAAO,EAAE,MAAM;CAG9B"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/common/error/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,OAAQ,SAAQ,WAAW;gBACxB,OAAO,EAAE,MAAM;CAG9B;AAED,qBAAa,aAAc,SAAQ,OAAO;gBAC1B,OAAO,EAAE,MAAM;CAG9B"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AIError = void 0;
3
+ exports.NotFoundError = exports.AIError = void 0;
4
4
  const core_1 = require("@celljs/core");
5
5
  class AIError extends core_1.CustomError {
6
6
  constructor(message) {
@@ -8,4 +8,10 @@ class AIError extends core_1.CustomError {
8
8
  }
9
9
  }
10
10
  exports.AIError = AIError;
11
+ class NotFoundError extends AIError {
12
+ constructor(message) {
13
+ super(message);
14
+ }
15
+ }
16
+ exports.NotFoundError = NotFoundError;
11
17
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/common/error/error.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAE3C,MAAa,OAAQ,SAAQ,kBAAW;IACpC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAJD,0BAIC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/common/error/error.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAE3C,MAAa,OAAQ,SAAQ,kBAAW;IACpC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAJD,0BAIC;AAED,MAAa,aAAc,SAAQ,OAAO;IACtC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAJD,sCAIC"}
@@ -0,0 +1,9 @@
1
+ import { FunctionCallback, FunctionCallbackRegister, ToolContext } from './function-protocol';
2
+ export declare class FunctionCallbackRegisterImpl implements FunctionCallbackRegister {
3
+ private functionCallbacks;
4
+ register(functionCallback: FunctionCallback): void;
5
+ unregister(functionName: string): void;
6
+ call(functionName: string, functionArguments: string, toolContext: ToolContext): Promise<string>;
7
+ resolve(functionNames: string[]): FunctionCallback[];
8
+ }
9
+ //# sourceMappingURL=function-callback-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-callback-register.d.ts","sourceRoot":"","sources":["../../../../src/common/model/function/function-callback-register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG9F,qBACa,4BAA6B,YAAW,wBAAwB;IAEzE,OAAO,CAAC,iBAAiB,CAAsE;IAE/F,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;IAIlD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAItC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhG,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE;CAYvD"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FunctionCallbackRegisterImpl = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@celljs/core");
6
+ const function_protocol_1 = require("./function-protocol");
7
+ const error_1 = require("../../error");
8
+ let FunctionCallbackRegisterImpl = class FunctionCallbackRegisterImpl {
9
+ constructor() {
10
+ this.functionCallbacks = new Map();
11
+ }
12
+ register(functionCallback) {
13
+ this.functionCallbacks.set(functionCallback.name, functionCallback);
14
+ }
15
+ unregister(functionName) {
16
+ this.functionCallbacks.delete(functionName);
17
+ }
18
+ call(functionName, functionArguments, toolContext) {
19
+ const functionCallback = this.functionCallbacks.get(functionName);
20
+ if (functionCallback) {
21
+ return functionCallback.call(functionArguments, toolContext);
22
+ }
23
+ throw new error_1.NotFoundError(`Function ${functionName} not found`);
24
+ }
25
+ resolve(functionNames) {
26
+ const functionCallbacks = [];
27
+ new Set(functionNames).forEach(functionName => {
28
+ const functionCallback = this.functionCallbacks.get(functionName);
29
+ if (functionCallback) {
30
+ functionCallbacks.push(functionCallback);
31
+ }
32
+ else {
33
+ throw new error_1.NotFoundError(`No function callback found for name: ${functionName}`);
34
+ }
35
+ });
36
+ return functionCallbacks;
37
+ }
38
+ };
39
+ FunctionCallbackRegisterImpl = tslib_1.__decorate([
40
+ (0, core_1.Component)(function_protocol_1.FunctionCallbackRegister)
41
+ ], FunctionCallbackRegisterImpl);
42
+ exports.FunctionCallbackRegisterImpl = FunctionCallbackRegisterImpl;
43
+ //# sourceMappingURL=function-callback-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-callback-register.js","sourceRoot":"","sources":["../../../../src/common/model/function/function-callback-register.ts"],"names":[],"mappings":";;;;AAAA,uCAAyC;AACzC,2DAA8F;AAC9F,uCAA4C;AAGrC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAAlC;QAEK,sBAAiB,GAAkC,IAAI,GAAG,EAA4B,CAAC;IA8BnG,CAAC;IA5BG,QAAQ,CAAC,gBAAkC;QACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACxE,CAAC;IAED,UAAU,CAAC,YAAoB;QAC3B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,YAAoB,EAAE,iBAAyB,EAAE,WAAwB;QAC1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,gBAAgB,EAAE;YAClB,OAAO,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;SAChE;QACD,MAAM,IAAI,qBAAa,CAAC,YAAY,YAAY,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,aAAuB;QAC3B,MAAM,iBAAiB,GAAuB,EAAE,CAAC;QACjD,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClE,IAAI,gBAAgB,EAAE;gBAClB,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC5C;iBAAM;gBACH,MAAM,IAAI,qBAAa,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;aACnF;QACL,CAAC,CAAC,CAAC;QACH,OAAO,iBAAiB,CAAC;IAC7B,CAAC;CACJ,CAAA;AAhCY,4BAA4B;IADxC,IAAA,gBAAS,EAAC,4CAAwB,CAAC;GACvB,4BAA4B,CAgCxC;AAhCY,oEAA4B"}
@@ -1,4 +1,10 @@
1
1
  import { ChatOptions } from '../../chat/prompt';
2
+ export declare const FunctionCallbackRegister: unique symbol;
3
+ export interface ToolContext extends Record<string, any> {
4
+ }
5
+ export declare namespace ToolContext {
6
+ const TOOL_CALL_HISTORY = "TOOL_CALL_HISTORY";
7
+ }
2
8
  /**
3
9
  * Represents a model function call handler. Implementations are registered with the
4
10
  * Models and called on prompts that trigger the function call.
@@ -23,9 +29,10 @@ export interface FunctionCallback {
23
29
  * @param functionArguments JSON string with the function arguments to be passed to the
24
30
  * function. The arguments are defined as JSON schema usually registered with the the
25
31
  * model.
32
+ * @param toolContext Optional tool context to be passed to the function call.
26
33
  * @return String containing the function call response.
27
34
  */
28
- call(functionArguments: string): Promise<string>;
35
+ call(functionArguments: string, toolContext?: ToolContext): Promise<string>;
29
36
  }
30
37
  export interface FunctionCallingOptions {
31
38
  /**
@@ -40,10 +47,29 @@ export interface FunctionCallingOptions {
40
47
  * List of function names from the ChatClient registry to be used in the next
41
48
  * chat completion requests.
42
49
  */
43
- functions: Set<String>;
50
+ functions: Set<string>;
51
+ proxyToolCalls?: boolean;
52
+ toolContext?: ToolContext;
44
53
  }
45
54
  export declare namespace FunctionCallingOptions {
46
55
  function is(obj: any): obj is FunctionCallingOptions;
56
+ function getEnabledFunctionsToCall(runtimeFunctionOptions: FunctionCallingOptions): Set<string>;
57
+ /**
58
+ * Check if the proxyToolCalls is enabled for the given prompt or the default tool
59
+ * call options. The prompt options take precedence over the default options. When the
60
+ * proxyToolCalls is enabled the ChatModel implementation will pass the proxyToolCalls to the
61
+ * function call.
62
+ * @param chatOptions the chat options to check.
63
+ * @param defaultOptions the default tool call options to check.
64
+ * @return true if the proxyToolCalls is enabled, false otherwise.
65
+ */
66
+ function isProxyToolCalls(chatOptions: ChatOptions, defaultOptions: FunctionCallingOptions): boolean;
67
+ }
68
+ export interface FunctionCallbackRegister {
69
+ resolve(functionNames: string[]): FunctionCallback[];
70
+ register(functionCallback: FunctionCallback): void;
71
+ unregister(functionName: string): void;
72
+ call(functionName: string, functionArguments: string, toolContext: ToolContext): Promise<string>;
47
73
  }
48
74
  export interface PortableFunctionCallingOptions extends FunctionCallingOptions, ChatOptions {
49
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"function-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/model/function/function-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC;;;;;;;OAOG;IACH,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAEpD;AAED,MAAM,WAAW,sBAAsB;IAEnC;;;;;;OAMG;IACH,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAEtC;;;OAGG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,yBAAiB,sBAAsB,CAAC;IACpC,SAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,sBAAsB,CAE1D;CACJ;AAED,MAAM,WAAW,8BAA+B,SAAQ,sBAAsB,EAAE,WAAW;CAE1F"}
1
+ {"version":3,"file":"function-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/model/function/function-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E,MAAM,WAAW,WAAY,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAAG;AAE3D,yBAAiB,WAAW,CAAC;IAClB,MAAM,iBAAiB,sBAAsB,CAAC;CACxD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC;;;;;;;;OAQG;IACH,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAE/E;AAED,MAAM,WAAW,sBAAsB;IAEnC;;;;;;OAMG;IACH,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAEtC;;;OAGG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,yBAAiB,sBAAsB,CAAC;IACpC,SAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,sBAAsB,CAE1D;IAED,SAAgB,yBAAyB,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,GAAG,CAAC,MAAM,CAAC,CAkBrG;IAED;;;;;;;;OAQG;IACH,SAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,GAAG,OAAO,CAK1G;CAEJ;AAED,MAAM,WAAW,wBAAwB;IACrC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpG;AAED,MAAM,WAAW,8BAA+B,SAAQ,sBAAsB,EAAE,WAAW;CAE1F"}
@@ -1,11 +1,52 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FunctionCallingOptions = void 0;
3
+ exports.FunctionCallingOptions = exports.ToolContext = exports.FunctionCallbackRegister = void 0;
4
+ exports.FunctionCallbackRegister = Symbol('FunctionCallbackRegister');
5
+ var ToolContext;
6
+ (function (ToolContext) {
7
+ ToolContext.TOOL_CALL_HISTORY = 'TOOL_CALL_HISTORY';
8
+ })(ToolContext = exports.ToolContext || (exports.ToolContext = {}));
4
9
  var FunctionCallingOptions;
5
10
  (function (FunctionCallingOptions) {
6
11
  function is(obj) {
7
12
  return obj && obj.functionCallbacks !== undefined && obj.functions !== undefined;
8
13
  }
9
14
  FunctionCallingOptions.is = is;
15
+ function getEnabledFunctionsToCall(runtimeFunctionOptions) {
16
+ const enabledFunctionsToCall = new Set();
17
+ if (runtimeFunctionOptions) {
18
+ // Add the explicitly enabled functions.
19
+ if (runtimeFunctionOptions.functions) {
20
+ runtimeFunctionOptions.functions.forEach(fn => {
21
+ enabledFunctionsToCall.add(fn);
22
+ });
23
+ }
24
+ if (runtimeFunctionOptions.functionCallbacks) {
25
+ runtimeFunctionOptions.functionCallbacks.forEach(functionCallback => {
26
+ // Automatically enable the function, usually from prompt callback.
27
+ enabledFunctionsToCall.add(functionCallback.name);
28
+ });
29
+ }
30
+ }
31
+ return enabledFunctionsToCall;
32
+ }
33
+ FunctionCallingOptions.getEnabledFunctionsToCall = getEnabledFunctionsToCall;
34
+ /**
35
+ * Check if the proxyToolCalls is enabled for the given prompt or the default tool
36
+ * call options. The prompt options take precedence over the default options. When the
37
+ * proxyToolCalls is enabled the ChatModel implementation will pass the proxyToolCalls to the
38
+ * function call.
39
+ * @param chatOptions the chat options to check.
40
+ * @param defaultOptions the default tool call options to check.
41
+ * @return true if the proxyToolCalls is enabled, false otherwise.
42
+ */
43
+ function isProxyToolCalls(chatOptions, defaultOptions) {
44
+ var _a;
45
+ if (FunctionCallingOptions.is(chatOptions) && chatOptions.proxyToolCalls !== undefined) {
46
+ return chatOptions.proxyToolCalls;
47
+ }
48
+ return (_a = defaultOptions.proxyToolCalls) !== null && _a !== void 0 ? _a : false;
49
+ }
50
+ FunctionCallingOptions.isProxyToolCalls = isProxyToolCalls;
10
51
  })(FunctionCallingOptions = exports.FunctionCallingOptions || (exports.FunctionCallingOptions = {}));
11
52
  //# sourceMappingURL=function-protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"function-protocol.js","sourceRoot":"","sources":["../../../../src/common/model/function/function-protocol.ts"],"names":[],"mappings":";;;AAsDA,IAAiB,sBAAsB,CAItC;AAJD,WAAiB,sBAAsB;IACnC,SAAgB,EAAE,CAAC,GAAQ;QACvB,OAAO,GAAG,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;IACrF,CAAC;IAFe,yBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAItC"}
1
+ {"version":3,"file":"function-protocol.js","sourceRoot":"","sources":["../../../../src/common/model/function/function-protocol.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAI3E,IAAiB,WAAW,CAE3B;AAFD,WAAiB,WAAW;IACX,6BAAiB,GAAG,mBAAmB,CAAC;AACzD,CAAC,EAFgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAE3B;AA2DD,IAAiB,sBAAsB,CAyCtC;AAzCD,WAAiB,sBAAsB;IACnC,SAAgB,EAAE,CAAC,GAAQ;QACvB,OAAO,GAAG,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;IACrF,CAAC;IAFe,yBAAE,KAEjB,CAAA;IAED,SAAgB,yBAAyB,CAAC,sBAA8C;QACpF,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;QACjD,IAAI,sBAAsB,EAAE;YACxB,wCAAwC;YACxC,IAAI,sBAAsB,CAAC,SAAS,EAAE;gBAClC,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC1C,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;aACN;YAED,IAAI,sBAAsB,CAAC,iBAAiB,EAAE;gBAC1C,sBAAsB,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;oBAChE,mEAAmE;oBACnE,sBAAsB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAlBe,gDAAyB,4BAkBxC,CAAA;IAED;;;;;;;;OAQG;IACH,SAAgB,gBAAgB,CAAC,WAAwB,EAAE,cAAsC;;QAC7F,IAAI,sBAAsB,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,cAAc,KAAK,SAAS,EAAE;YACpF,OAAO,WAAW,CAAC,cAAc,CAAC;SACrC;QACD,OAAO,MAAA,cAAc,CAAC,cAAc,mCAAI,KAAK,CAAC;IAClD,CAAC;IALe,uCAAgB,mBAK/B,CAAA;AAEL,CAAC,EAzCgB,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAyCtC"}
@@ -1,2 +1,3 @@
1
1
  export * from './function-protocol';
2
+ export * from './function-callback-register';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/model/function/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/model/function/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC"}
@@ -2,4 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./function-protocol"), exports);
5
+ tslib_1.__exportStar(require("./function-callback-register"), exports);
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/model/function/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/model/function/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,uEAA6C"}
@@ -1,3 +1,4 @@
1
1
  export * from './prompt-util';
2
2
  export * from './sse-util';
3
+ export * from './usage-util';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./prompt-util"), exports);
5
5
  tslib_1.__exportStar(require("./sse-util"), exports);
6
+ tslib_1.__exportStar(require("./usage-util"), exports);
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,qDAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,qDAA2B;AAC3B,uDAA6B"}
@@ -3,7 +3,7 @@ import { StreamEvent } from '../sse';
3
3
  /**
4
4
  * SSE utility class.
5
5
  */
6
- export declare class SSEUtil {
6
+ export declare abstract class SSEUtil {
7
7
  static toObservable<Data>(readableStream: ReadableStream, controller?: AbortController): Observable<StreamEvent<Data>>;
8
8
  private static handleSSE;
9
9
  private static readableStreamAsyncIterable;
@@ -1 +1 @@
1
- {"version":3,"file":"sse-util.d.ts","sourceRoot":"","sources":["../../../src/common/utils/sse-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,WAAW,EAA+B,MAAM,QAAQ,CAAC;AAGlE;;GAEG;AACH,qBAAa,OAAO;IAEhB,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAyCtH,OAAO,CAAC,MAAM,CAAC,SAAS;IAsCxB,OAAO,CAAC,MAAM,CAAC,2BAA2B;CA0B7C"}
1
+ {"version":3,"file":"sse-util.d.ts","sourceRoot":"","sources":["../../../src/common/utils/sse-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,WAAW,EAA+B,MAAM,QAAQ,CAAC;AAGlE;;GAEG;AACH,8BAAsB,OAAO;IAEzB,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAyCtH,OAAO,CAAC,MAAM,CAAC,SAAS;IAsCxB,OAAO,CAAC,MAAM,CAAC,2BAA2B;CA0B7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"sse-util.js","sourceRoot":"","sources":["../../../src/common/utils/sse-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse-util.js","sourceRoot":"","sources":["../../../src/common/utils/sse-util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ChatResponse } from '../chat';
2
+ import { Usage } from '../chat/metadata';
3
+ /**
4
+ * An utility class to provide support methods handling {@link Usage}.
5
+ */
6
+ export declare abstract class UsageUtil {
7
+ /**
8
+ * Accumulate usage tokens from the previous chat response to the current usage
9
+ * tokens.
10
+ * @param currentUsage the current usage.
11
+ * @param previousChatResponse the previous chat response.
12
+ * @return accumulated usage.
13
+ */
14
+ static getCumulativeUsage(currentUsage: Usage, previousChatResponse?: ChatResponse): Usage;
15
+ static isEmpty(usage: Usage | null): boolean;
16
+ }
17
+ //# sourceMappingURL=usage-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-util.d.ts","sourceRoot":"","sources":["../../../src/common/utils/usage-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;GAEG;AACH,8BAAsB,SAAS;IAE3B;;;;;;OAMG;WACW,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,EAAE,YAAY,GAAG,KAAK;IAqCjG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO;CAO/C"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UsageUtil = void 0;
4
+ const metadata_1 = require("../chat/metadata");
5
+ /**
6
+ * An utility class to provide support methods handling {@link Usage}.
7
+ */
8
+ class UsageUtil {
9
+ /**
10
+ * Accumulate usage tokens from the previous chat response to the current usage
11
+ * tokens.
12
+ * @param currentUsage the current usage.
13
+ * @param previousChatResponse the previous chat response.
14
+ * @return accumulated usage.
15
+ */
16
+ static getCumulativeUsage(currentUsage, previousChatResponse) {
17
+ var _a, _b, _c, _d, _e, _f, _g;
18
+ let usageFromPreviousChatResponse = undefined;
19
+ if ((_a = previousChatResponse === null || previousChatResponse === void 0 ? void 0 : previousChatResponse.metadata) === null || _a === void 0 ? void 0 : _a.usage) {
20
+ usageFromPreviousChatResponse = previousChatResponse.metadata.usage;
21
+ }
22
+ else {
23
+ return currentUsage;
24
+ }
25
+ // For a valid usage from previous chat response, accumulate it to the current
26
+ // usage.
27
+ if (!this.isEmpty(currentUsage)) {
28
+ let promptTokens = (_b = currentUsage.promptTokens) !== null && _b !== void 0 ? _b : 0;
29
+ let generationTokens = (_c = currentUsage.generationTokens) !== null && _c !== void 0 ? _c : 0;
30
+ let totalTokens = (_d = currentUsage.totalTokens) !== null && _d !== void 0 ? _d : 0;
31
+ // Make sure to accumulate the usage from the previous chat response.
32
+ promptTokens += (_e = usageFromPreviousChatResponse.promptTokens) !== null && _e !== void 0 ? _e : 0;
33
+ generationTokens += (_f = usageFromPreviousChatResponse.generationTokens) !== null && _f !== void 0 ? _f : 0;
34
+ totalTokens += (_g = usageFromPreviousChatResponse.totalTokens) !== null && _g !== void 0 ? _g : 0;
35
+ return metadata_1.Usage.from(promptTokens, generationTokens, totalTokens);
36
+ }
37
+ // When current usage is empty, return the usage from the previous chat response.
38
+ return usageFromPreviousChatResponse;
39
+ }
40
+ // /**
41
+ // * Check if the {@link Usage} is empty. Returns true when the {@link Usage} is null.
42
+ // * Returns true when the {@link Usage} has zero tokens.
43
+ // * @param usage the usage to check against.
44
+ // * @return the boolean value to represent if it is empty.
45
+ // */
46
+ // static isEmpty(usage: Usage | null): boolean {
47
+ // if (!usage) {
48
+ // return true;
49
+ // } else if (usage != null && usage.totalTokens === 0) {
50
+ // return true;
51
+ // }
52
+ // return false;
53
+ // }
54
+ static isEmpty(usage) {
55
+ if (!usage) {
56
+ return true;
57
+ }
58
+ return false;
59
+ }
60
+ }
61
+ exports.UsageUtil = UsageUtil;
62
+ //# sourceMappingURL=usage-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-util.js","sourceRoot":"","sources":["../../../src/common/utils/usage-util.ts"],"names":[],"mappings":";;;AACA,+CAAyC;AAEzC;;GAEG;AACH,MAAsB,SAAS;IAE3B;;;;;;OAMG;IACI,MAAM,CAAC,kBAAkB,CAAC,YAAmB,EAAE,oBAAmC;;QACrF,IAAI,6BAA6B,GAAsB,SAAS,CAAC;QACjE,IAAI,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,QAAQ,0CAAE,KAAK,EAAE;YACvC,6BAA6B,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC;SACvE;aAAM;YACH,OAAO,YAAY,CAAC;SACvB;QACD,8EAA8E;QAC9E,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC7B,IAAI,YAAY,GAAG,MAAA,YAAY,CAAC,YAAY,mCAAI,CAAC,CAAC;YAClD,IAAI,gBAAgB,GAAG,MAAA,YAAY,CAAC,gBAAgB,mCAAI,CAAC,CAAC;YAC1D,IAAI,WAAW,GAAG,MAAA,YAAY,CAAC,WAAW,mCAAI,CAAC,CAAC;YAChD,qEAAqE;YACrE,YAAY,IAAI,MAAA,6BAA6B,CAAC,YAAY,mCAAI,CAAC,CAAC;YAChE,gBAAgB,IAAI,MAAA,6BAA6B,CAAC,gBAAgB,mCAAI,CAAC,CAAC;YACxE,WAAW,IAAI,MAAA,6BAA6B,CAAC,WAAW,mCAAI,CAAC,CAAC;YAC9D,OAAO,gBAAK,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;SAClE;QACD,iFAAiF;QACjF,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAED,MAAM;IACN,uFAAuF;IACvF,0DAA0D;IAC1D,8CAA8C;IAC9C,4DAA4D;IAC5D,MAAM;IACN,iDAAiD;IACjD,oBAAoB;IACpB,uBAAuB;IACvB,6DAA6D;IAC7D,uBAAuB;IACvB,QAAQ;IACR,oBAAoB;IACpB,IAAI;IACJ,MAAM,CAAC,OAAO,CAAC,KAAmB;QAC9B,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AArDD,8BAqDC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@celljs/ai-core",
3
- "version": "3.4.3",
3
+ "version": "3.4.4",
4
4
  "description": "Core domain for AI programming",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
7
7
  "dependencies": {
8
- "@celljs/core": "3.4.3",
9
- "@celljs/http": "3.4.3",
8
+ "@celljs/core": "3.4.4",
9
+ "@celljs/http": "3.4.4",
10
10
  "rxjs": "^6.6.0",
11
11
  "tslib": "^2.8.0"
12
12
  },
@@ -38,7 +38,7 @@
38
38
  "test": "cell-component test:js"
39
39
  },
40
40
  "devDependencies": {
41
- "@celljs/component": "3.4.3"
41
+ "@celljs/component": "3.4.4"
42
42
  },
43
- "gitHead": "bcbbf929f18cd91fb9241f9b3b0f6c66dbea86cb"
43
+ "gitHead": "5d4a2384da3a67b3c16de24d4692bf754acfeda1"
44
44
  }
@@ -2,3 +2,4 @@ export * from './message';
2
2
  export * from './metadata';
3
3
  export * from './prompt';
4
4
  export * from './model';
5
+ export * from './tool';
@@ -1,5 +1,5 @@
1
- import { MediaType } from '@celljs/http';
2
1
  import { Content } from '../../model/model-protocol';
2
+ import { MimeType } from '@celljs/core';
3
3
 
4
4
  /**
5
5
  * The Media class represents the data and metadata of a media attachment in a message. It
@@ -10,12 +10,39 @@ import { Content } from '../../model/model-protocol';
10
10
  */
11
11
  export interface Media {
12
12
 
13
- readonly mediaType: MediaType;
13
+ /**
14
+ * The unique identifier of the media attachment.
15
+ */
16
+ id?: string;
17
+
18
+ /**
19
+ * The MIME type of the media attachment.
20
+ */
21
+ mimeType: MimeType;
22
+
23
+ /**
24
+ * The raw data of the media attachment.
25
+ */
26
+ data: any;
14
27
 
15
28
  /**
16
- * Get the media data object
29
+ * The name of the media object that can be referenced by the AI model.
30
+ * <p>
31
+ * Important security note: This field is vulnerable to prompt injections, as the
32
+ * model might inadvertently interpret it as instructions. It is recommended to
33
+ * specify neutral names.
34
+ *
35
+ * <p>
36
+ * The name must only contain:
37
+ * <ul>
38
+ * <li>Alphanumeric characters
39
+ * <li>Whitespace characters (no more than one in a row)
40
+ * <li>Hyphens
41
+ * <li>Parentheses
42
+ * <li>Square brackets
43
+ * </ul>
17
44
  */
18
- readonly data: any;
45
+ name?: string;
19
46
 
20
47
  }
21
48
 
@@ -15,12 +15,12 @@ export interface ChatGenerationMetadata extends ResultMetadata {
15
15
  * The reason this choice completed for the generation.
16
16
  */
17
17
  readonly finishReason?: string;
18
+
19
+ readonly metadata: Record<string, any>;
18
20
  }
19
21
 
20
22
  export class ChatGenerationMetadata {
21
23
 
22
- static EMPTY: ChatGenerationMetadata = ChatGenerationMetadata.from();
23
-
24
24
  /**
25
25
  * Factory method used to construct a new {@link ChatGenerationMetadata} from the
26
26
  * given finish reason and content filter metadata.
@@ -29,9 +29,9 @@ export class ChatGenerationMetadata {
29
29
  * @param contentFilterMetadata The content filter metadata.
30
30
  * @returns A new instance of {@link ChatGenerationMetadata}.
31
31
  */
32
- static from(finishReason?: string, contentFilterMetadata?: any): ChatGenerationMetadata {
32
+ static from(finishReason?: string, metadata: Record<string, any> = {}, contentFilterMetadata?: any): ChatGenerationMetadata {
33
33
  return {
34
- finishReason, contentFilterMetadata
34
+ finishReason, contentFilterMetadata, metadata
35
35
  };
36
36
  }
37
37
  }