ttc-ai-chat-sdk 0.0.13-dev → 0.0.14-dev

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/README.md CHANGED
@@ -16,7 +16,7 @@ npm install ttc-ai-chat-sdk
16
16
 
17
17
  ## Quick Start
18
18
 
19
- ### Create a Module
19
+ ### Create a Module (Class-based)
20
20
 
21
21
  Define a module with functions that the AI can call. Use the `ttc.describe` decorator to document each function and optionally specify an `action` for UI feedback:
22
22
 
@@ -49,7 +49,7 @@ export class MyAppModule {
49
49
  }
50
50
  ```
51
51
 
52
- The `action` parameter provides a user-friendly message that you can display in your UI while the function executes. Subscribe to action_log event to capture it.
52
+ The `action` parameter provides a user-friendly message that you can display in your UI while the function executes. Subscribe to `action_log` event to capture it.
53
53
 
54
54
  ### Create a Module (Functional Approach)
55
55
 
@@ -60,64 +60,64 @@ import { ttc } from "ttc-ai-chat-sdk";
60
60
  import { z } from "zod";
61
61
 
62
62
  // Create a module
63
- const CommerceModule = ttc.module('ecommerce');
63
+ const footballModule = ttc.module('Football');
64
+
65
+ // Define your function
66
+ const shootBall = async (direction: 'left' | 'right' | 'center', power: number) => {
67
+ return `Kicked the ball to the ${direction} with power ${power}`;
68
+ }
64
69
 
65
70
  // Add the function to the module
66
- CommerceModule.add_function({
67
- name: 'Invoice',
71
+ footballModule.add_function({
72
+ name: 'kick',
68
73
  input_schema: z.object({
69
- amount: z.number(),
70
- currency: z.string()
74
+ direction: z.enum(['left', 'right', 'center']),
75
+ power: z.number().min(1).max(100)
71
76
  }),
72
77
  output_schema: z.string(),
73
- doc: "Generate an invoice for the given amount and currency",
74
- func: async (amount: number, currency: string) => {
75
- return `Invoice generated for ${amount} ${currency}`;
76
- }
78
+ doc: 'Kicks the football in a specified direction with a given power',
79
+ func: shootBall
77
80
  });
78
81
  ```
79
82
 
80
- ### Initialize the SDK
83
+ ### Initialize the Assistant
81
84
 
82
- Set up the SDK with your app ID and modules:
85
+ Set up the assistant with your chat token and modules. The `ttc.assistant()` method returns an `Assistant` instance that you'll use to interact with the AI:
83
86
 
84
87
  ```typescript
85
88
  import { ttc } from "ttc-ai-chat-sdk";
86
89
  import { MyAppModule } from "./modules";
87
90
 
88
- ttc.init({
89
- app_id: "your-app-id",
90
- publicKey: "your-public-key",
91
- modules: [MyAppModule]
92
- });
91
+ const chatToken = "your-chat-token";
92
+ const assistant = ttc.assistant(chatToken, [MyAppModule]);
93
93
  ```
94
94
 
95
95
  ### Subscribe to Events
96
96
 
97
- Listen for real-time events like messages, function calls, and status changes:
97
+ Listen for real-time events like messages, function calls, and status changes using the assistant instance:
98
98
 
99
99
  ```typescript
100
100
  // Subscribe to incoming messages
101
- ttc.subscribe("message", (data) => {
101
+ assistant.subscribe("message", (data) => {
102
102
  const { id, payload } = data;
103
103
  console.log("New message:", payload);
104
104
  });
105
105
 
106
106
  // Subscribe to function calls
107
- ttc.subscribe("function_call", (data) => {
107
+ assistant.subscribe("function_call", (data) => {
108
108
  const { id, payload } = data;
109
109
  console.log("Function called:", payload);
110
110
  });
111
111
 
112
112
  // Subscribe to permission requests
113
- ttc.subscribe("permission", (data) => {
113
+ assistant.subscribe("permission", async (data) => {
114
114
  const { id, payload } = data;
115
115
  console.log("Permission requested:", payload);
116
- ttc.approveFunction(id, true); // for approved status, false for deny status
116
+ await assistant.approveFunction(id, true); // true to approve, false to deny
117
117
  });
118
118
 
119
119
  // Subscribe to action_logs to show UI feedback
120
- ttc.subscribe("action_log", (data) => {
120
+ assistant.subscribe("action_log", (data) => {
121
121
  const { id, payload } = data;
122
122
  console.log(payload);
123
123
  });
@@ -125,16 +125,21 @@ ttc.subscribe("action_log", (data) => {
125
125
 
126
126
  ### Send a Message
127
127
 
128
- Send messages to the AI using the server's ttcCore methods:
128
+ Send messages to the AI using the assistant's `message` method:
129
129
 
130
130
  ```typescript
131
131
  // Send a message to the AI
132
- const response = await ttc.server.ttcCore.chatAI(
133
- conversationId,
134
- "Hello, how can you help me today?"
135
- );
132
+ assistant.message("Hello, how can you help me today?");
133
+ ```
136
134
 
137
- console.log(response);
135
+ ### Get Chat History
136
+
137
+ Retrieve previous messages from the conversation:
138
+
139
+ ```typescript
140
+ // Get chat history (limit, page)
141
+ const messages = await assistant.history(50, 1);
142
+ console.log(messages);
138
143
  ```
139
144
 
140
145
  ### Trigger the AI
@@ -143,11 +148,29 @@ Programmatically trigger the AI to act based on a message:
143
148
 
144
149
  ```typescript
145
150
  // Trigger the AI to perform an action
146
- await ttc.server.TCC.trigger(
147
- conversationId,
148
- "Check the user's cart and suggest related products",
149
- 5 // eta in seconds
150
- );
151
+ await assistant.trigger("Check the user's cart and suggest related products");
152
+ ```
153
+
154
+ ### Additional Assistant Methods
155
+
156
+ ```typescript
157
+ // Clear chat messages (soft reset)
158
+ await assistant.clearMessages();
159
+
160
+ // Wipe all assistant memory and chat messages (hard reset)
161
+ await assistant.reset();
162
+
163
+ // Get assistant statistics
164
+ const stats = await assistant.stats();
165
+
166
+ // Set application context for the AI to reference
167
+ await assistant.selectContext("User is on the checkout page with 3 items in cart");
168
+
169
+ // Get available AI models
170
+ const models = await assistant.getModels();
171
+
172
+ // Switch to a different model
173
+ await assistant.selectModel("model-id", "llm"); // type: 'llm' | 'stt' | 'tts'
151
174
  ```
152
175
 
153
176
  ## Full Documentation
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Assistant = void 0;
4
+ const construct_1 = require("./construct");
5
+ const core_1 = require("./core");
6
+ class Assistant {
7
+ /**
8
+ * subscribe to assistant events
9
+ * @param event
10
+ * @param cb
11
+ */
12
+ async subscribe(event, cb) {
13
+ core_1.ttc.event.on(event, cb);
14
+ }
15
+ /**
16
+ * create an llm construct to handle special tasks
17
+ * @param description
18
+ * @returns
19
+ */
20
+ async construct(description) {
21
+ let construct = new construct_1.TTCContruct(description);
22
+ return construct;
23
+ }
24
+ /**
25
+ * Approve or deny a function call request on permission event
26
+ * @param id
27
+ * @param approval
28
+ */
29
+ async approveFunction(id, approval) {
30
+ await core_1.ttc.approveFunction(id, approval);
31
+ }
32
+ /**
33
+ * Send a message to the assistant
34
+ * @param text
35
+ */
36
+ message(text) {
37
+ core_1.ttc.server.ttcCore.chatAI(text);
38
+ }
39
+ /**
40
+ * Get chat history
41
+ * @param limit
42
+ * @param page
43
+ * @returns
44
+ */
45
+ async history(limit, page) {
46
+ try {
47
+ const response = await core_1.ttc.server.ttcCore.fetchChatHistory(limit, page);
48
+ return response.data;
49
+ }
50
+ catch (error) {
51
+ return [];
52
+ }
53
+ }
54
+ /**
55
+ * Clear chat messages
56
+ */
57
+ async clearMessages() {
58
+ await core_1.ttc.server.ttcCore.reset('soft');
59
+ }
60
+ /**
61
+ * wipe all assistant memory and chat messages
62
+ */
63
+ async reset() {
64
+ await core_1.ttc.server.ttcCore.reset('hard');
65
+ }
66
+ /**
67
+ * Trigger the assistant with a specific message
68
+ * @param trigger_message
69
+ */
70
+ async trigger(trigger_message) {
71
+ await core_1.ttc.server.TCC.trigger(trigger_message, 0);
72
+ }
73
+ /**
74
+ * This returns the assistant important statistics and information
75
+ * @returns
76
+ */
77
+ async stats() {
78
+ return await core_1.ttc.server.TCC.conversation_stats();
79
+ }
80
+ /**
81
+ * This selects an application context for the assistant to use
82
+ * The app context is a small set of fixed data that the assistant can refer to when making decisions
83
+ * Example a form on a site or a game state information or a file being edited
84
+ * @param context_data
85
+ */
86
+ async selectContext(context_data) {
87
+ await core_1.ttc.server.TCC.select_context(context_data);
88
+ }
89
+ /**
90
+ * Get list of models available to the assistant
91
+ * @returns
92
+ */
93
+ async getModels() {
94
+ const result = await core_1.ttc.server.TCC.get_models();
95
+ return result.data;
96
+ }
97
+ /**
98
+ * Select a model for the assistant to use
99
+ * @param model_id
100
+ * @param type
101
+ */
102
+ async selectModel(model_id, type) {
103
+ await core_1.ttc.server.TCC.change_to_model(model_id, type);
104
+ }
105
+ }
106
+ exports.Assistant = Assistant;
107
+ //# sourceMappingURL=assistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../src/assistant.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,iCAA6B;AAS7B,MAAa,SAAS;IAElB;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,KAAgB,EAAE,EAExB;QACN,UAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,WAAmB;QAC/B,IAAI,SAAS,GAAG,IAAI,uBAAW,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,QAAiB;QAC/C,MAAM,UAAG,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAAY;QAChB,UAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,IAAY;QAItC,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,UAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACxE,OAAO,QAAQ,CAAC,IAAI,CAAC;SACtB;QAAC,OAAO,KAAK,EAAE;YACf,OAAO,EAAE,CAAC;SACV;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACf,MAAM,UAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACP,MAAM,UAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,eAAuB;QACjC,MAAM,UAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACP,OAAO,MAAM,UAAG,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,YAAoB;QACpC,MAAM,UAAG,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS;QAMX,MAAM,MAAM,GAAG,MAAM,UAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAA2B;QAC3D,MAAM,UAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;CACJ;AAxHD,8BAwHC"}
package/dist/core.js CHANGED
@@ -13,8 +13,8 @@ const ttcAI_1 = require("./ttcAI");
13
13
  const eventEmitter_1 = require("./utils/eventEmitter");
14
14
  const ttc_server_1 = require("./ttc_server");
15
15
  const zodToTs_1 = require("./utils/zodToTs");
16
- const construct_1 = require("./construct");
17
16
  const module_1 = require("./utils/module");
17
+ const assistant_1 = require("./assistant");
18
18
  const EventEmitter = (0, eventEmitter_1.getEventEmitterClass)();
19
19
  const zodToJsonSchema = zod_1.z.toJSONSchema;
20
20
  class ttc {
@@ -172,31 +172,23 @@ class ttc {
172
172
  };
173
173
  }
174
174
  }
175
- static init(config) {
176
- const { modules, socketCb, publicKey, app_id } = config;
177
- this.app_id = app_id;
178
- if (!app_id) {
179
- throw new Error("app_id is required");
175
+ static assistant(chatToken, modules) {
176
+ if (!chatToken) {
177
+ throw new Error("chatToken is required");
180
178
  }
181
- if (!publicKey) {
182
- throw new Error("publicKey is required");
183
- }
184
- this.socketCb = socketCb;
185
- this.publicKey = publicKey;
186
- // instantiate emitter appropriate for environment
187
179
  _a.event = (0, eventEmitter_1.createEmitter)();
180
+ this.chatToken = chatToken;
181
+ // instantiate emitter appropriate for environment
188
182
  _a.ai = new ttcAI_1.ttcAI();
189
183
  this.server = new ttc_server_1.RPCClient(ttcAI_1.ttcAI.ttc_Uri, async () => {
190
- const apikey = this.publicKey || '';
184
+ const apikey = this.chatToken || '';
191
185
  return apikey;
192
186
  }, async (socket) => {
193
187
  this.handleSocket(socket);
194
- if (socketCb)
195
- await socketCb(socket);
196
188
  });
197
189
  _a.ai.init();
198
190
  // just to trick TypeScript into recognizing the service decorators
199
- return this;
191
+ return new assistant_1.Assistant();
200
192
  }
201
193
  static async generateRPCMethodsList() {
202
194
  const methods = [];
@@ -279,7 +271,7 @@ class ttc {
279
271
  method: 'GET',
280
272
  headers: {
281
273
  'Content-Type': 'application/json',
282
- 'Authorization': `Bearer ${_a.publicKey}`
274
+ 'Authorization': `Bearer ${_a.chatToken}`
283
275
  },
284
276
  });
285
277
  const result = await response.json();
@@ -321,10 +313,6 @@ class ttc {
321
313
  throw error;
322
314
  }
323
315
  }
324
- static async createConstruct(description) {
325
- let construct = new construct_1.TTCContruct(description);
326
- return construct;
327
- }
328
316
  static async approveFunction(id, approval) {
329
317
  const cb = this.permissions[id];
330
318
  // console.log(cb, 'Approved');
@@ -340,9 +328,6 @@ class ttc {
340
328
  }
341
329
  await this.emit('permission', { id: key, payload: func });
342
330
  }
343
- static async subscribe(event, cb) {
344
- this.event.on(event, cb);
345
- }
346
331
  static async emit(event, data) {
347
332
  this.event.emit(event, data);
348
333
  }
@@ -354,6 +339,7 @@ exports.ttc = ttc;
354
339
  _a = ttc;
355
340
  ttc.rpcRegistry = {};
356
341
  ttc.permissions = {};
342
+ ttc.event = (0, eventEmitter_1.createEmitter)(); // EventEmitter or polyfill
357
343
  ttc.get_action_log = (functionName) => {
358
344
  try {
359
345
  const action = _a.rpcRegistry[functionName]?.action;
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,211 +1,155 @@
1
1
  // Generated by dts-bundle-generator v9.5.1
2
2
 
3
- import { Socket } from 'socket.io-client';
4
- import z from 'zod';
5
3
  import { ZodSchema } from 'zod';
6
4
 
7
- export type f_call = {
8
- function: string;
9
- arguments: Record<string, any>;
10
- };
11
- export type statusType = "success" | "error";
12
- export type ClassType<T = any> = new (...args: any[]) => T;
13
- export type rpcResponseType = {
14
- status: statusType;
15
- data?: any;
16
- };
17
- export type RPCMethodInfo = {
18
- name: string;
19
- description?: string;
20
- permission?: boolean;
21
- input_schema?: string;
22
- output_schema?: string;
23
- };
24
5
  export type ttc_event = "message" | "function_call" | "permission" | "sentinel_dispatch" | "sentinel_terminated" | "construct" | "status_change" | "action_log";
25
- export type callbackType = (method: string, params?: any) => Promise<any>;
26
- export type mediaCallbackType = (method: string, params?: any, file?: any) => Promise<any>;
27
- type rpcResponseType$1<T = any> = {
28
- status: "success" | "error";
29
- data?: T;
6
+ export type EventPayload = {
7
+ id: string;
8
+ payload: any;
30
9
  };
31
- declare class RPCClient {
32
- static token_cb: () => Promise<string>;
33
- static url: string;
34
- static conversation_id: string;
35
- constructor(url: string, token_cb: () => Promise<string>, socket_cb?: (socket: Socket) => Promise<any>);
36
- static apiCallback: callbackType;
37
- static mediaCallback: mediaCallbackType;
38
- connectSocket(url: string, socket_cb: (socket: Socket) => Promise<any>): Promise<void>;
39
- ttcCore: {
40
- /**
41
- * sends a message to the ai
42
- *
43
- * @param {message: string}
44
- * @returns {Promise<rpcResponseType<any>>}
45
- */
46
- chatAI(message: string): Promise<rpcResponseType$1<any>>;
47
- /**
48
- * This function is used to invoke the llm with a description and instruction
49
- *
50
- * @param {input: Partial<{ description: string, instruction: string, construct_id: string }> }
51
- * @returns {Promise<rpcResponseType<any>>}
52
- */
53
- invoke(input: Partial<{
54
- description: string;
55
- instruction: string;
56
- construct_id: string;
57
- }>): Promise<rpcResponseType$1<any>>;
58
- /**
59
- * sends a function response to the ai
60
- *
61
- * @param {response: any[], image_urls: any[]}
62
- * @returns {Promise<rpcResponseType<any>>}
63
- */
64
- functionResponse(response: any[], image_urls: any[]): Promise<rpcResponseType$1<any>>;
65
- /**
66
- * get chat history
67
- *
68
- * @param {limit: number, page: number}
69
- * @returns {Promise<rpcResponseType<any>>}
70
- */
71
- fetchChatHistory(limit: number, page: number): Promise<rpcResponseType$1<any>>;
72
- /**
73
- * sets a function for the app
74
- *
75
- * @param {func: Partial<{ }> }
76
- * @returns {Promise<rpcResponseType<any>>}
77
- */
78
- setAppFunctions(func: Partial<{}>): Promise<rpcResponseType$1<any>>;
79
- /**
80
- * Clears chat history, soft clears messages but retains system prompt and functions, hard clears everything
81
- *
82
- * @param {mode: string}
83
- * @returns {Promise<rpcResponseType<string>>}
84
- */
85
- reset(mode: string): Promise<rpcResponseType$1<string>>;
86
- /**
87
- * Adds a remote origin for an app
88
- *
89
- * @param {app_id: string}
90
- * @returns {Promise<rpcResponseType<{ url: string; name: string; apikey: string }[]>>}
91
- */
92
- fetchOrigins(app_id: string): Promise<rpcResponseType$1<{
93
- url: string;
94
- name: string;
95
- apikey: string;
96
- }[]>>;
97
- };
98
- TCC: {
99
- /**
100
- * Get list of all models available to you
101
- *
102
- * @param {}
103
- * @returns {Promise<rpcResponseType<{ id: string; name: string; type: string; provider: string }[]>>}
104
- */
105
- get_models(): Promise<rpcResponseType$1<{
106
- id: string;
107
- name: string;
108
- type: string;
109
- provider: string;
110
- }[]>>;
111
- /**
112
- * Get current model for a conversation
113
- *
114
- * @param {}
115
- * @returns {Promise<rpcResponseType<{ emote: string; nlp_model: string; assistant: string }>>}
116
- */
117
- conversation_stats(): Promise<rpcResponseType$1<{
118
- emote: string;
119
- nlp_model: string;
120
- assistant: string;
121
- }>>;
122
- /**
123
- * Changes the model for a conversation, use with caution, may discontinue chat if model is not compatible
124
- *
125
- * @param {model_id: string, type: string}
126
- * @returns {Promise<rpcResponseType<any>>}
127
- */
128
- change_to_model(model_id: string, type: string): Promise<rpcResponseType$1<any>>;
129
- /**
130
- * Trigger the ai to act based on a trigger message
131
- *
132
- * @param {message: string, eta_seconds: number}
133
- * @returns {Promise<rpcResponseType<any>>}
134
- */
135
- trigger(message: string, eta_seconds: number): Promise<rpcResponseType$1<any>>;
136
- /**
137
- * specifies a selected data on the client for the ai to work with
138
- *
139
- * @param {data: string}
140
- * @returns {Promise<rpcResponseType<any>>}
141
- */
142
- select_context(data: string): Promise<rpcResponseType$1<any>>;
143
- };
10
+ export interface ModuleFunctionConfig {
11
+ /** Function name */
12
+ name: string;
13
+ /** Documentation for the function */
14
+ doc?: string;
15
+ /** Whether the function requires authentication */
16
+ auth?: boolean;
17
+ /** Action message to display while function executes */
18
+ action?: string;
19
+ /** Whether to validate input against the schema */
20
+ validate?: boolean;
21
+ /** Zod schema for input validation */
22
+ input_schema?: ZodSchema<any>;
23
+ /** Zod schema for output validation */
24
+ output_schema?: ZodSchema<any>;
25
+ /** The function implementation */
26
+ func: (...args: any[]) => Promise<any>;
144
27
  }
145
- declare class TTCContruct {
146
- description: string;
147
- callbacks: Record<string, (data: any) => void>;
148
- constructor(description: string);
149
- randId: () => string;
150
- run(instruction: string): Promise<any>;
28
+ export interface TTCModule {
29
+ /** Module name */
30
+ name: string;
31
+ /** Add a function to this module */
32
+ add_function(config: ModuleFunctionConfig): void;
151
33
  }
152
- declare class TTCModule {
34
+ export interface DescribeConfig {
35
+ /** Documentation describing what the function does */
36
+ doc?: string;
37
+ /** Action message shown in UI while function executes */
38
+ action?: string;
39
+ /** Whether the function requires authentication */
40
+ auth?: boolean;
41
+ /** Zod schema for input validation */
42
+ inputSchema?: ZodSchema<any>;
43
+ /** Zod schema for output validation */
44
+ outputSchema?: ZodSchema<any>;
45
+ /** Whether to validate input against the schema */
46
+ validate?: boolean;
47
+ }
48
+ export type DescribeDecorator = (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
49
+ export interface ChatMessage {
50
+ role: "user" | "assistant";
51
+ content: string;
52
+ }
53
+ export interface ModelInfo {
54
+ id: string;
153
55
  name: string;
154
- constructor(name: string);
155
- add_function(data: {
156
- name: string;
157
- doc?: string;
158
- auth?: boolean;
159
- action?: string;
160
- validate?: boolean;
161
- input_schema?: z.ZodSchema<any>;
162
- output_schema?: z.ZodSchema<any>;
163
- func: (...args: any[]) => Promise<any>;
164
- }): void;
56
+ type: string;
57
+ provider: string;
58
+ }
59
+ export interface ConversationStats {
60
+ [key: string]: any;
61
+ }
62
+ export interface Construct {
63
+ /** Send a message to the construct */
64
+ send(message: string): Promise<void>;
65
+ /** Terminate the construct */
66
+ terminate(): Promise<void>;
67
+ }
68
+ export interface Assistant {
69
+ /**
70
+ * Subscribe to assistant events
71
+ * @param event - The event type to subscribe to
72
+ * @param cb - Callback function when event is triggered
73
+ */
74
+ subscribe(event: ttc_event, cb: (payload: EventPayload) => void): Promise<void>;
75
+ /**
76
+ * Create an LLM construct to handle special tasks
77
+ * @param description - Description of the construct's purpose
78
+ */
79
+ construct(description: string): Promise<Construct>;
80
+ /**
81
+ * Approve or deny a function call request on permission event
82
+ * @param id - The permission request ID
83
+ * @param approval - Whether to approve or deny
84
+ */
85
+ approveFunction(id: string, approval: boolean): Promise<void>;
86
+ /**
87
+ * Send a message to the assistant
88
+ * @param text - The message text
89
+ */
90
+ message(text: string): void;
91
+ /**
92
+ * Get chat history
93
+ * @param limit - Number of messages to retrieve
94
+ * @param page - Page number for pagination
95
+ */
96
+ history(limit: number, page: number): Promise<ChatMessage[]>;
97
+ /**
98
+ * Clear chat messages (soft reset)
99
+ */
100
+ clearMessages(): Promise<void>;
101
+ /**
102
+ * Wipe all assistant memory and chat messages (hard reset)
103
+ */
104
+ reset(): Promise<void>;
105
+ /**
106
+ * Trigger the assistant with a specific message
107
+ * @param trigger_message - The trigger message
108
+ */
109
+ trigger(trigger_message: string): Promise<void>;
110
+ /**
111
+ * Get assistant statistics and information
112
+ */
113
+ stats(): Promise<ConversationStats>;
114
+ /**
115
+ * Select an application context for the assistant to use
116
+ * @param context_data - The context data string
117
+ */
118
+ selectContext(context_data: string): Promise<void>;
119
+ /**
120
+ * Get list of models available to the assistant
121
+ */
122
+ getModels(): Promise<ModelInfo[]>;
123
+ /**
124
+ * Select a model for the assistant to use
125
+ * @param model_id - The model ID
126
+ * @param type - The model type (llm, stt, or tts)
127
+ */
128
+ selectModel(model_id: string, type: "llm" | "stt" | "tts"): Promise<void>;
165
129
  }
166
- export declare class ttc {
167
- static server: RPCClient;
168
- static socket?: Socket;
169
- static app_id: string;
170
- static instance<T extends ClassType | string>(name: T): T extends ClassType ? InstanceType<T> : T extends string ? any : never;
171
- static get_action_log: (functionName: string) => string;
172
- static describe: (config?: {
173
- doc?: string;
174
- action?: string;
175
- auth?: boolean;
176
- inputSchema?: ZodSchema<any>;
177
- outputSchema?: ZodSchema<any>;
178
- validate?: boolean;
179
- }) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
180
- static requestContext(args: IArguments): {
181
- socket?: Socket;
182
- _scid: string;
183
- conversation_id: string;
184
- };
185
- static invoke(method: string, args: any[], requestConfig: {
186
- socket?: Socket;
187
- _scid: string;
188
- converstation_id: string;
189
- }): Promise<rpcResponseType>;
190
- static init(config: {
191
- app_id: string;
192
- publicKey?: string;
193
- modules: any[];
194
- socketCb?: (socket: Socket) => Promise<any>;
195
- }): typeof ttc;
196
- static generateRPCMethodsList(): Promise<RPCMethodInfo[]>;
197
- static createConstruct(description: string): Promise<TTCContruct>;
198
- static approveFunction(id: string, approval: boolean): Promise<void>;
199
- static askPermission(id: string, func: f_call, cb: (permitted: boolean) => void): Promise<void>;
200
- static subscribe(event: ttc_event, cb: (payload: {
201
- id: string;
202
- payload: any;
203
- }) => void): Promise<void>;
204
- static emit(event: ttc_event, data: {
205
- id: string;
206
- payload: any;
207
- }): Promise<void>;
208
- static module(name: string): TTCModule;
130
+ export interface TTC {
131
+ /**
132
+ * Initialize the assistant with a chat token and modules
133
+ * @param chatToken - The authentication token for the chat session
134
+ * @param modules - Array of module classes to register
135
+ * @returns The Assistant instance for interacting with the AI
136
+ */
137
+ assistant(chatToken: string, modules: any[]): Assistant;
138
+ /**
139
+ * Decorator to describe a function that the AI can call
140
+ * @param config - Configuration for the function description
141
+ */
142
+ describe(config?: DescribeConfig): DescribeDecorator;
143
+ /**
144
+ * Create a new module for organizing functions
145
+ * @param name - The name of the module
146
+ * @returns A TTCModule instance to add functions to
147
+ */
148
+ module(name: string): TTCModule;
209
149
  }
150
+ /**
151
+ * The main TTC SDK instance
152
+ */
153
+ export declare const ttc: TTC;
210
154
 
211
155
  export {};
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Public type definitions for ttc-ai-chat-sdk
4
+ * This file defines the public API surface that will be exposed to consumers
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=public-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-types.js","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ttc-ai-chat-sdk",
3
- "version": "0.0.13-dev",
3
+ "version": "0.0.14-dev",
4
4
  "description": "TypeScript client sdk for TTC AI services with decorators and schema validation.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",