@nekutima/provili-sdk 0.2.0

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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -0
  3. package/dist/core/http-client.d.ts +84 -0
  4. package/dist/core/http-client.d.ts.map +1 -0
  5. package/dist/core/http-client.js +177 -0
  6. package/dist/core/http-client.js.map +1 -0
  7. package/dist/core/index.d.ts +3 -0
  8. package/dist/core/index.d.ts.map +1 -0
  9. package/dist/core/index.js +7 -0
  10. package/dist/core/index.js.map +1 -0
  11. package/dist/core/rate-limiter.d.ts +40 -0
  12. package/dist/core/rate-limiter.d.ts.map +1 -0
  13. package/dist/core/rate-limiter.js +65 -0
  14. package/dist/core/rate-limiter.js.map +1 -0
  15. package/dist/generated/api-types.d.ts +1742 -0
  16. package/dist/generated/api-types.d.ts.map +1 -0
  17. package/dist/generated/api-types.js +7 -0
  18. package/dist/generated/api-types.js.map +1 -0
  19. package/dist/index.d.ts +92 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +129 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/llm-engines/adapters.d.ts +26 -0
  24. package/dist/llm-engines/adapters.d.ts.map +1 -0
  25. package/dist/llm-engines/adapters.js +121 -0
  26. package/dist/llm-engines/adapters.js.map +1 -0
  27. package/dist/llm-engines/client.d.ts +12 -0
  28. package/dist/llm-engines/client.d.ts.map +1 -0
  29. package/dist/llm-engines/client.js +138 -0
  30. package/dist/llm-engines/client.js.map +1 -0
  31. package/dist/llm-engines/descriptors.d.ts +24 -0
  32. package/dist/llm-engines/descriptors.d.ts.map +1 -0
  33. package/dist/llm-engines/descriptors.js +192 -0
  34. package/dist/llm-engines/descriptors.js.map +1 -0
  35. package/dist/llm-engines/endpoint.d.ts +5 -0
  36. package/dist/llm-engines/endpoint.d.ts.map +1 -0
  37. package/dist/llm-engines/endpoint.js +19 -0
  38. package/dist/llm-engines/endpoint.js.map +1 -0
  39. package/dist/llm-engines/errors.d.ts +16 -0
  40. package/dist/llm-engines/errors.d.ts.map +1 -0
  41. package/dist/llm-engines/errors.js +72 -0
  42. package/dist/llm-engines/errors.js.map +1 -0
  43. package/dist/llm-engines/index.d.ts +7 -0
  44. package/dist/llm-engines/index.d.ts.map +1 -0
  45. package/dist/llm-engines/index.js +10 -0
  46. package/dist/llm-engines/index.js.map +1 -0
  47. package/dist/llm-engines/types.d.ts +130 -0
  48. package/dist/llm-engines/types.d.ts.map +1 -0
  49. package/dist/llm-engines/types.js +32 -0
  50. package/dist/llm-engines/types.js.map +1 -0
  51. package/dist/mcp/host.d.ts +13 -0
  52. package/dist/mcp/host.d.ts.map +1 -0
  53. package/dist/mcp/host.js +72 -0
  54. package/dist/mcp/host.js.map +1 -0
  55. package/dist/mcp/index.d.ts +4 -0
  56. package/dist/mcp/index.d.ts.map +1 -0
  57. package/dist/mcp/index.js +7 -0
  58. package/dist/mcp/index.js.map +1 -0
  59. package/dist/mcp/mcp.service.d.ts +21 -0
  60. package/dist/mcp/mcp.service.d.ts.map +1 -0
  61. package/dist/mcp/mcp.service.js +35 -0
  62. package/dist/mcp/mcp.service.js.map +1 -0
  63. package/dist/mcp/types.d.ts +60 -0
  64. package/dist/mcp/types.d.ts.map +1 -0
  65. package/dist/mcp/types.js +7 -0
  66. package/dist/mcp/types.js.map +1 -0
  67. package/dist/models/agent.model.d.ts +62 -0
  68. package/dist/models/agent.model.d.ts.map +1 -0
  69. package/dist/models/agent.model.js +3 -0
  70. package/dist/models/agent.model.js.map +1 -0
  71. package/dist/models/ai-chat.model.d.ts +27 -0
  72. package/dist/models/ai-chat.model.d.ts.map +1 -0
  73. package/dist/models/ai-chat.model.js +3 -0
  74. package/dist/models/ai-chat.model.js.map +1 -0
  75. package/dist/models/api-error.model.d.ts +33 -0
  76. package/dist/models/api-error.model.d.ts.map +1 -0
  77. package/dist/models/api-error.model.js +59 -0
  78. package/dist/models/api-error.model.js.map +1 -0
  79. package/dist/models/api-response.model.d.ts +52 -0
  80. package/dist/models/api-response.model.d.ts.map +1 -0
  81. package/dist/models/api-response.model.js +78 -0
  82. package/dist/models/api-response.model.js.map +1 -0
  83. package/dist/models/auth.model.d.ts +25 -0
  84. package/dist/models/auth.model.d.ts.map +1 -0
  85. package/dist/models/auth.model.js +6 -0
  86. package/dist/models/auth.model.js.map +1 -0
  87. package/dist/models/backup.model.d.ts +34 -0
  88. package/dist/models/backup.model.d.ts.map +1 -0
  89. package/dist/models/backup.model.js +3 -0
  90. package/dist/models/backup.model.js.map +1 -0
  91. package/dist/models/chat.model.d.ts +87 -0
  92. package/dist/models/chat.model.d.ts.map +1 -0
  93. package/dist/models/chat.model.js +7 -0
  94. package/dist/models/chat.model.js.map +1 -0
  95. package/dist/models/file.model.d.ts +50 -0
  96. package/dist/models/file.model.d.ts.map +1 -0
  97. package/dist/models/file.model.js +7 -0
  98. package/dist/models/file.model.js.map +1 -0
  99. package/dist/models/index.d.ts +17 -0
  100. package/dist/models/index.d.ts.map +1 -0
  101. package/dist/models/index.js +20 -0
  102. package/dist/models/index.js.map +1 -0
  103. package/dist/models/knowledge.model.d.ts +63 -0
  104. package/dist/models/knowledge.model.d.ts.map +1 -0
  105. package/dist/models/knowledge.model.js +3 -0
  106. package/dist/models/knowledge.model.js.map +1 -0
  107. package/dist/models/llm-engine.model.d.ts +25 -0
  108. package/dist/models/llm-engine.model.d.ts.map +1 -0
  109. package/dist/models/llm-engine.model.js +3 -0
  110. package/dist/models/llm-engine.model.js.map +1 -0
  111. package/dist/models/prompt.model.d.ts +30 -0
  112. package/dist/models/prompt.model.d.ts.map +1 -0
  113. package/dist/models/prompt.model.js +3 -0
  114. package/dist/models/prompt.model.js.map +1 -0
  115. package/dist/models/role.model.d.ts +19 -0
  116. package/dist/models/role.model.d.ts.map +1 -0
  117. package/dist/models/role.model.js +3 -0
  118. package/dist/models/role.model.js.map +1 -0
  119. package/dist/models/streaming.model.d.ts +27 -0
  120. package/dist/models/streaming.model.d.ts.map +1 -0
  121. package/dist/models/streaming.model.js +3 -0
  122. package/dist/models/streaming.model.js.map +1 -0
  123. package/dist/models/update.model.d.ts +16 -0
  124. package/dist/models/update.model.d.ts.map +1 -0
  125. package/dist/models/update.model.js +3 -0
  126. package/dist/models/update.model.js.map +1 -0
  127. package/dist/models/usb-patch.model.d.ts +13 -0
  128. package/dist/models/usb-patch.model.d.ts.map +1 -0
  129. package/dist/models/usb-patch.model.js +3 -0
  130. package/dist/models/usb-patch.model.js.map +1 -0
  131. package/dist/models/user.model.d.ts +64 -0
  132. package/dist/models/user.model.d.ts.map +1 -0
  133. package/dist/models/user.model.js +3 -0
  134. package/dist/models/user.model.js.map +1 -0
  135. package/dist/services/agent.service.d.ts +45 -0
  136. package/dist/services/agent.service.d.ts.map +1 -0
  137. package/dist/services/agent.service.js +91 -0
  138. package/dist/services/agent.service.js.map +1 -0
  139. package/dist/services/ai-chat.service.d.ts +12 -0
  140. package/dist/services/ai-chat.service.d.ts.map +1 -0
  141. package/dist/services/ai-chat.service.js +116 -0
  142. package/dist/services/ai-chat.service.js.map +1 -0
  143. package/dist/services/auth.service.d.ts +25 -0
  144. package/dist/services/auth.service.d.ts.map +1 -0
  145. package/dist/services/auth.service.js +76 -0
  146. package/dist/services/auth.service.js.map +1 -0
  147. package/dist/services/chat.service.d.ts +90 -0
  148. package/dist/services/chat.service.d.ts.map +1 -0
  149. package/dist/services/chat.service.js +240 -0
  150. package/dist/services/chat.service.js.map +1 -0
  151. package/dist/services/index.d.ts +12 -0
  152. package/dist/services/index.d.ts.map +1 -0
  153. package/dist/services/index.js +16 -0
  154. package/dist/services/index.js.map +1 -0
  155. package/dist/services/knowledge.service.d.ts +18 -0
  156. package/dist/services/knowledge.service.d.ts.map +1 -0
  157. package/dist/services/knowledge.service.js +33 -0
  158. package/dist/services/knowledge.service.js.map +1 -0
  159. package/dist/services/llm-engines.service.d.ts +12 -0
  160. package/dist/services/llm-engines.service.d.ts.map +1 -0
  161. package/dist/services/llm-engines.service.js +26 -0
  162. package/dist/services/llm-engines.service.js.map +1 -0
  163. package/dist/services/prompts.service.d.ts +16 -0
  164. package/dist/services/prompts.service.d.ts.map +1 -0
  165. package/dist/services/prompts.service.js +31 -0
  166. package/dist/services/prompts.service.js.map +1 -0
  167. package/dist/services/role.service.d.ts +12 -0
  168. package/dist/services/role.service.d.ts.map +1 -0
  169. package/dist/services/role.service.js +29 -0
  170. package/dist/services/role.service.js.map +1 -0
  171. package/dist/services/streaming.service.d.ts +18 -0
  172. package/dist/services/streaming.service.d.ts.map +1 -0
  173. package/dist/services/streaming.service.js +103 -0
  174. package/dist/services/streaming.service.js.map +1 -0
  175. package/dist/services/usb-patches.service.d.ts +9 -0
  176. package/dist/services/usb-patches.service.d.ts.map +1 -0
  177. package/dist/services/usb-patches.service.js +16 -0
  178. package/dist/services/usb-patches.service.js.map +1 -0
  179. package/dist/services/user.service.d.ts +15 -0
  180. package/dist/services/user.service.d.ts.map +1 -0
  181. package/dist/services/user.service.js +40 -0
  182. package/dist/services/user.service.js.map +1 -0
  183. package/package.json +93 -0
@@ -0,0 +1,90 @@
1
+ import { ProviliHttpClient } from '../core/http-client';
2
+ import { Session, CreateSessionRequest, CreateSessionResponse, SendMessageResponse, ListMessagesResponse, MessageWithParts, ChatConfig } from '../models/chat.model';
3
+ import { ChatFileUpload } from '../models/file.model';
4
+ /**
5
+ * Chat service for Pro.vi.li SDK
6
+ * Provides chat functionality with file upload using OpenCode server APIs
7
+ */
8
+ export declare class ProviliChatService {
9
+ private httpClient;
10
+ private config;
11
+ constructor(httpClient: ProviliHttpClient, config?: ChatConfig);
12
+ /**
13
+ * Create a new chat session
14
+ */
15
+ createSession(request?: CreateSessionRequest): Promise<CreateSessionResponse>;
16
+ /**
17
+ * Send a message to a chat session
18
+ */
19
+ sendMessage(sessionId: number, message: string, files?: ChatFileUpload[], options?: {
20
+ model?: string;
21
+ agent?: string;
22
+ }): Promise<SendMessageResponse>;
23
+ /**
24
+ * Send a simple text message
25
+ */
26
+ sendTextMessage(sessionId: number, message: string, options?: {
27
+ model?: string;
28
+ agent?: string;
29
+ }): Promise<SendMessageResponse>;
30
+ /**
31
+ * Send files to a chat session
32
+ */
33
+ sendFiles(sessionId: number, files: ChatFileUpload[], message?: string, options?: {
34
+ model?: string;
35
+ agent?: string;
36
+ }): Promise<SendMessageResponse>;
37
+ /**
38
+ * Get messages from a chat session
39
+ */
40
+ getMessages(sessionId: number, options?: {
41
+ limit?: number;
42
+ cursor?: string;
43
+ }): Promise<ListMessagesResponse>;
44
+ /**
45
+ * Get all messages from a chat session
46
+ */
47
+ getAllMessages(sessionId: number): Promise<MessageWithParts[]>;
48
+ /**
49
+ * Get session details
50
+ */
51
+ getSession(sessionId: number): Promise<Session>;
52
+ /**
53
+ * List all sessions
54
+ */
55
+ listSessions(): Promise<Session[]>;
56
+ /**
57
+ * Delete a session
58
+ */
59
+ deleteSession(sessionId: number): Promise<boolean>;
60
+ /**
61
+ * Send a message to a session with SSE streaming response.
62
+ * Named events: token, stage, action, reasoning. Unnamed data: errors or
63
+ * legacy OpenAI deltas (only when no named event is active).
64
+ */
65
+ sendMessageStreaming(sessionId: number, content: string, callbacks: {
66
+ onChunk: (delta: string) => void;
67
+ onComplete: (fullContent: string) => void;
68
+ onError: (error: Error) => void;
69
+ onStage?: (evt: {
70
+ stage: string;
71
+ name: string;
72
+ status: string;
73
+ ms?: number;
74
+ }) => void;
75
+ onAction?: (action: {
76
+ type: string;
77
+ target: string;
78
+ payload?: Record<string, unknown>;
79
+ async?: boolean;
80
+ }) => void;
81
+ onReasoning?: () => void;
82
+ onSystemEvent?: (event: {
83
+ level: string;
84
+ message: string;
85
+ }) => void;
86
+ }, options?: {
87
+ agent?: string;
88
+ }): Promise<AbortController>;
89
+ }
90
+ //# sourceMappingURL=chat.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../src/services/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACH,OAAO,EACP,oBAAoB,EACpB,qBAAqB,EAErB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAEhB,UAAU,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoBtD;;;GAGG;AACH,qBAAa,kBAAkB;IAEvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;gBADN,UAAU,EAAE,iBAAiB,EAC7B,MAAM,GAAE,UAAe;IAGnC;;OAEG;IACG,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKvF;;OAEG;IACG,WAAW,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,cAAc,EAAO,EAC5B,OAAO,GAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACb,GACP,OAAO,CAAC,mBAAmB,CAAC;IAoC/B;;OAEG;IACG,eAAe,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACb,GACP,OAAO,CAAC,mBAAmB,CAAC;IAI/B;;OAEG;IACG,SAAS,CACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,MAAW,EACpB,OAAO,GAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACb,GACP,OAAO,CAAC,mBAAmB,CAAC;IAI/B;;OAEG;IACG,WAAW,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACd,GACP,OAAO,CAAC,oBAAoB,CAAC;IAgBhC;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkBpE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKxC;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;;;OAIG;IACG,oBAAoB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACjC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAChC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QACtF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,KAAK,IAAI,CAAC;QAClH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;QACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;KACvE,EACD,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACjC,OAAO,CAAC,eAAe,CAAC;CAyG9B"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviliChatService = void 0;
4
+ /**
5
+ * Base64-encode binary content without depending on Node's Buffer being typed
6
+ * (the SDK is published and consumed from browser contexts too). Uses Buffer
7
+ * when present, falling back to the standard `btoa`.
8
+ */
9
+ function encodeBase64(bytes) {
10
+ const bufferCtor = globalThis
11
+ .Buffer;
12
+ if (bufferCtor) {
13
+ return bufferCtor.from(bytes).toString('base64');
14
+ }
15
+ let binary = '';
16
+ for (const byte of bytes) {
17
+ binary += String.fromCharCode(byte);
18
+ }
19
+ return btoa(binary);
20
+ }
21
+ /**
22
+ * Chat service for Pro.vi.li SDK
23
+ * Provides chat functionality with file upload using OpenCode server APIs
24
+ */
25
+ class ProviliChatService {
26
+ constructor(httpClient, config = {}) {
27
+ this.httpClient = httpClient;
28
+ this.config = config;
29
+ }
30
+ /**
31
+ * Create a new chat session
32
+ */
33
+ async createSession(request = {}) {
34
+ const response = await this.httpClient.post('/session', request);
35
+ return response;
36
+ }
37
+ /**
38
+ * Send a message to a chat session
39
+ */
40
+ async sendMessage(sessionId, message, files = [], options = {}) {
41
+ const parts = [];
42
+ // Add text message
43
+ if (message) {
44
+ parts.push({
45
+ type: 'text',
46
+ content: message
47
+ });
48
+ }
49
+ // Add file parts
50
+ for (const file of files) {
51
+ parts.push({
52
+ type: 'file',
53
+ content: typeof file.content === 'string' ? file.content : encodeBase64(file.content),
54
+ metadata: {
55
+ filename: file.filename,
56
+ mime_type: file.mime_type || 'application/octet-stream'
57
+ }
58
+ });
59
+ }
60
+ const request = {
61
+ parts,
62
+ model: options.model || this.config.defaultModel,
63
+ agent: options.agent || this.config.defaultAgent
64
+ };
65
+ const response = await this.httpClient.post(`/session/${sessionId}/message`, request);
66
+ return response;
67
+ }
68
+ /**
69
+ * Send a simple text message
70
+ */
71
+ async sendTextMessage(sessionId, message, options = {}) {
72
+ return this.sendMessage(sessionId, message, [], options);
73
+ }
74
+ /**
75
+ * Send files to a chat session
76
+ */
77
+ async sendFiles(sessionId, files, message = '', options = {}) {
78
+ return this.sendMessage(sessionId, message, files, options);
79
+ }
80
+ /**
81
+ * Get messages from a chat session
82
+ */
83
+ async getMessages(sessionId, options = {}) {
84
+ const params = new URLSearchParams();
85
+ if (options.limit) {
86
+ params.append('limit', options.limit.toString());
87
+ }
88
+ if (options.cursor) {
89
+ params.append('cursor', options.cursor);
90
+ }
91
+ const query = params.toString();
92
+ const url = query ? `/session/${sessionId}/message?${query}` : `/session/${sessionId}/message`;
93
+ const response = await this.httpClient.get(url);
94
+ return response;
95
+ }
96
+ /**
97
+ * Get all messages from a chat session
98
+ */
99
+ async getAllMessages(sessionId) {
100
+ const allMessages = [];
101
+ let cursor;
102
+ do {
103
+ const response = await this.getMessages(sessionId, {
104
+ limit: 50,
105
+ cursor
106
+ });
107
+ allMessages.push(...response.messages);
108
+ cursor = response.pagination?.next_cursor;
109
+ } while (cursor);
110
+ return allMessages;
111
+ }
112
+ /**
113
+ * Get session details
114
+ */
115
+ async getSession(sessionId) {
116
+ const response = await this.httpClient.get(`/session/${sessionId}`);
117
+ return response;
118
+ }
119
+ /**
120
+ * List all sessions
121
+ */
122
+ async listSessions() {
123
+ const response = await this.httpClient.get('/session');
124
+ return response.sessions;
125
+ }
126
+ /**
127
+ * Delete a session
128
+ */
129
+ async deleteSession(sessionId) {
130
+ await this.httpClient.delete(`/session/${sessionId}`);
131
+ return true;
132
+ }
133
+ /**
134
+ * Send a message to a session with SSE streaming response.
135
+ * Named events: token, stage, action, reasoning. Unnamed data: errors or
136
+ * legacy OpenAI deltas (only when no named event is active).
137
+ */
138
+ async sendMessageStreaming(sessionId, content, callbacks, options = {}) {
139
+ const abortCtrl = new AbortController();
140
+ try {
141
+ const headers = { 'Content-Type': 'application/json' };
142
+ const auth = this.httpClient.getAuth?.();
143
+ if (auth?.method === 'jwt' && auth.token) {
144
+ headers['Authorization'] = `Bearer ${auth.token}`;
145
+ headers['X-API-Key'] = auth.token;
146
+ }
147
+ else if (auth?.method === 'api-key' && auth.apiKey) {
148
+ headers['Authorization'] = `Basic ${btoa(`${auth.apiKey}:`)}`;
149
+ }
150
+ const response = await fetch(`${this.httpClient.baseURL}/session/${sessionId}/message`, {
151
+ method: 'POST',
152
+ headers,
153
+ credentials: 'include',
154
+ body: JSON.stringify({ message: content, agent: options.agent }),
155
+ signal: abortCtrl.signal,
156
+ });
157
+ if (!response.ok) {
158
+ callbacks.onError(new Error(`Server returned ${response.status}`));
159
+ return abortCtrl;
160
+ }
161
+ const reader = response.body.getReader();
162
+ const decoder = new TextDecoder();
163
+ let fullContent = '';
164
+ let buffer = '';
165
+ let currentEvent = '';
166
+ while (true) {
167
+ const { done, value } = await reader.read();
168
+ if (done)
169
+ break;
170
+ buffer += decoder.decode(value, { stream: true });
171
+ const lines = buffer.split('\n');
172
+ buffer = lines.pop() || '';
173
+ for (const line of lines) {
174
+ const trimmed = line.trim();
175
+ if (!trimmed) {
176
+ currentEvent = '';
177
+ continue;
178
+ }
179
+ if (trimmed.startsWith('event: ')) {
180
+ currentEvent = trimmed.slice(7).trim();
181
+ continue;
182
+ }
183
+ if (!trimmed.startsWith('data: '))
184
+ continue;
185
+ const data = trimmed.slice(6);
186
+ if (data === '[DONE]')
187
+ continue;
188
+ try {
189
+ const parsed = JSON.parse(data);
190
+ if (currentEvent === 'token' && parsed.text) {
191
+ fullContent += parsed.text;
192
+ callbacks.onChunk(parsed.text);
193
+ continue;
194
+ }
195
+ if (currentEvent === 'stage') {
196
+ callbacks.onStage?.(parsed);
197
+ continue;
198
+ }
199
+ if (currentEvent === 'action') {
200
+ callbacks.onAction?.(parsed);
201
+ continue;
202
+ }
203
+ if (currentEvent === 'reasoning') {
204
+ callbacks.onReasoning?.();
205
+ continue;
206
+ }
207
+ // Unnamed data: errors or legacy OpenAI deltas
208
+ if (!currentEvent) {
209
+ if (parsed.error) {
210
+ callbacks.onSystemEvent?.({
211
+ level: 'error',
212
+ message: typeof parsed.error === 'string' ? parsed.error : JSON.stringify(parsed.error),
213
+ });
214
+ continue;
215
+ }
216
+ const delta = parsed.choices?.[0]?.delta?.content;
217
+ if (delta) {
218
+ fullContent += delta;
219
+ callbacks.onChunk(delta);
220
+ }
221
+ }
222
+ }
223
+ catch {
224
+ // Skip invalid JSON chunks
225
+ }
226
+ }
227
+ }
228
+ callbacks.onComplete(fullContent);
229
+ }
230
+ catch (error) {
231
+ if (error instanceof Error && error.name === 'AbortError') {
232
+ return abortCtrl;
233
+ }
234
+ callbacks.onError(error instanceof Error ? error : new Error(String(error)));
235
+ }
236
+ return abortCtrl;
237
+ }
238
+ }
239
+ exports.ProviliChatService = ProviliChatService;
240
+ //# sourceMappingURL=chat.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/services/chat.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export * from './chat.service';
2
+ export * from './streaming.service';
3
+ export * from './ai-chat.service';
4
+ export * from './auth.service';
5
+ export * from './user.service';
6
+ export * from './role.service';
7
+ export * from './agent.service';
8
+ export * from './knowledge.service';
9
+ export * from './llm-engines.service';
10
+ export * from './prompts.service';
11
+ export * from '../mcp/mcp.service';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // Services
5
+ tslib_1.__exportStar(require("./chat.service"), exports);
6
+ tslib_1.__exportStar(require("./streaming.service"), exports);
7
+ tslib_1.__exportStar(require("./ai-chat.service"), exports);
8
+ tslib_1.__exportStar(require("./auth.service"), exports);
9
+ tslib_1.__exportStar(require("./user.service"), exports);
10
+ tslib_1.__exportStar(require("./role.service"), exports);
11
+ tslib_1.__exportStar(require("./agent.service"), exports);
12
+ tslib_1.__exportStar(require("./knowledge.service"), exports);
13
+ tslib_1.__exportStar(require("./llm-engines.service"), exports);
14
+ tslib_1.__exportStar(require("./prompts.service"), exports);
15
+ tslib_1.__exportStar(require("../mcp/mcp.service"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;AAAA,WAAW;AACX,yDAA+B;AAC/B,8DAAoC;AACpC,4DAAkC;AAClC,yDAA+B;AAC/B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,8DAAoC;AACpC,gEAAsC;AACtC,4DAAkC;AAClC,6DAAmC"}
@@ -0,0 +1,18 @@
1
+ import { ProviliHttpClient } from '../core/http-client';
2
+ import { KnowledgeEntry, CreateKnowledgeRequest, UpdateKnowledgeRequest, AgentRelationship, UnitSource } from '../models/knowledge.model';
3
+ export declare class ProviliKnowledgeService {
4
+ private httpClient;
5
+ constructor(httpClient: ProviliHttpClient);
6
+ listKnowledge(agentId: number): Promise<KnowledgeEntry[]>;
7
+ createKnowledge(agentId: number, request: CreateKnowledgeRequest): Promise<KnowledgeEntry>;
8
+ updateKnowledge(agentId: number, entryId: number, request: UpdateKnowledgeRequest): Promise<KnowledgeEntry>;
9
+ deleteKnowledge(agentId: number, entryId: number): Promise<void>;
10
+ reindexKnowledge(agentId: number): Promise<{
11
+ queued: number;
12
+ }>;
13
+ /** The agent's trust graph (relationships with competence/intention). */
14
+ listRelationships(agentId: number): Promise<AgentRelationship[]>;
15
+ /** Provenance: the sources asserting a knowledge unit. */
16
+ listSources(agentId: number, entryId: number): Promise<UnitSource[]>;
17
+ }
18
+ //# sourceMappingURL=knowledge.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.service.d.ts","sourceRoot":"","sources":["../../src/services/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,uBAAuB;IACtB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,iBAAiB;IAE3C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1F,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAIpB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIpE,yEAAyE;IACnE,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAItE,0DAA0D;IACpD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAG3E"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviliKnowledgeService = void 0;
4
+ class ProviliKnowledgeService {
5
+ constructor(httpClient) {
6
+ this.httpClient = httpClient;
7
+ }
8
+ async listKnowledge(agentId) {
9
+ return this.httpClient.get(`/api/agents/${agentId}/knowledge`);
10
+ }
11
+ async createKnowledge(agentId, request) {
12
+ return this.httpClient.post(`/api/agents/${agentId}/knowledge`, request);
13
+ }
14
+ async updateKnowledge(agentId, entryId, request) {
15
+ return this.httpClient.put(`/agents/${agentId}/knowledge/${entryId}`, request);
16
+ }
17
+ async deleteKnowledge(agentId, entryId) {
18
+ await this.httpClient.delete(`/agents/${agentId}/knowledge/${entryId}`);
19
+ }
20
+ async reindexKnowledge(agentId) {
21
+ return this.httpClient.post(`/agents/${agentId}/knowledge/reindex`, {});
22
+ }
23
+ /** The agent's trust graph (relationships with competence/intention). */
24
+ async listRelationships(agentId) {
25
+ return this.httpClient.get(`/api/agents/${agentId}/relationships`);
26
+ }
27
+ /** Provenance: the sources asserting a knowledge unit. */
28
+ async listSources(agentId, entryId) {
29
+ return this.httpClient.get(`/agents/${agentId}/knowledge/${entryId}/sources`);
30
+ }
31
+ }
32
+ exports.ProviliKnowledgeService = ProviliKnowledgeService;
33
+ //# sourceMappingURL=knowledge.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.service.js","sourceRoot":"","sources":["../../src/services/knowledge.service.ts"],"names":[],"mappings":";;;AASA,MAAa,uBAAuB;IAClC,YAAoB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAErD,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,eAAe,OAAO,YAAY,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,OAA+B;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAiB,eAAe,OAAO,YAAY,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,OAAe,EACf,OAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,WAAW,OAAO,cAAc,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,OAAe;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,OAAO,cAAc,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAqB,WAAW,OAAO,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAsB,eAAe,OAAO,gBAAgB,CAAC,CAAC;IAC1F,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAe;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAe,WAAW,OAAO,cAAc,OAAO,UAAU,CAAC,CAAC;IAC9F,CAAC;CACF;AApCD,0DAoCC"}
@@ -0,0 +1,12 @@
1
+ import { ProviliHttpClient } from '../core/http-client';
2
+ import type { CreateLLMEngineRequest, LLMEngine, TestEngineResult, UpdateLLMEngineRequest } from '../models/llm-engine.model';
3
+ export declare class ProviliLLMEnginesService {
4
+ private httpClient;
5
+ constructor(httpClient: ProviliHttpClient);
6
+ listEngines(): Promise<LLMEngine[]>;
7
+ createEngine(data: CreateLLMEngineRequest): Promise<LLMEngine>;
8
+ updateEngine(id: number, data: UpdateLLMEngineRequest): Promise<LLMEngine>;
9
+ deleteEngine(id: number): Promise<void>;
10
+ testEngine(id: number): Promise<TestEngineResult>;
11
+ }
12
+ //# sourceMappingURL=llm-engines.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-engines.service.d.ts","sourceRoot":"","sources":["../../src/services/llm-engines.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,sBAAsB,EACtB,SAAS,EAET,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,wBAAwB;IACvB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,iBAAiB;IAE3C,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKnC,YAAY,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC;IAI9D,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC;IAI1E,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAGxD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviliLLMEnginesService = void 0;
4
+ class ProviliLLMEnginesService {
5
+ constructor(httpClient) {
6
+ this.httpClient = httpClient;
7
+ }
8
+ async listEngines() {
9
+ const res = await this.httpClient.get('/llm-engines');
10
+ return res.engines ?? [];
11
+ }
12
+ async createEngine(data) {
13
+ return this.httpClient.post('/llm-engines', data);
14
+ }
15
+ async updateEngine(id, data) {
16
+ return this.httpClient.put(`/llm-engines/${id}`, data);
17
+ }
18
+ async deleteEngine(id) {
19
+ await this.httpClient.delete(`/llm-engines/${id}`);
20
+ }
21
+ async testEngine(id) {
22
+ return this.httpClient.post(`/llm-engines/${id}/test`, {});
23
+ }
24
+ }
25
+ exports.ProviliLLMEnginesService = ProviliLLMEnginesService;
26
+ //# sourceMappingURL=llm-engines.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-engines.service.js","sourceRoot":"","sources":["../../src/services/llm-engines.service.ts"],"names":[],"mappings":";;;AASA,MAAa,wBAAwB;IACnC,YAAoB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAErD,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAyB,cAAc,CAAC,CAAC;QAC9E,OAAO,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA4B;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAY,cAAc,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,IAA4B;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAmB,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF;AAvBD,4DAuBC"}
@@ -0,0 +1,16 @@
1
+ import { ProviliHttpClient } from '../core/http-client';
2
+ import type { EffectivePrompt, PromptExperiment, UnitTelemetry } from '../models/prompt.model';
3
+ export declare class ProviliPromptsService {
4
+ private httpClient;
5
+ constructor(httpClient: ProviliHttpClient);
6
+ listPrompts(agentId: number): Promise<EffectivePrompt[]>;
7
+ listTelemetry(agentId: number): Promise<UnitTelemetry[]>;
8
+ getExperiment(agentId: number, unit: string): Promise<PromptExperiment>;
9
+ savePrompt(agentId: number, unit: string, content: string): Promise<EffectivePrompt>;
10
+ saveExperiment(agentId: number, unit: string, candidateContent: string, trafficPercent: number): Promise<PromptExperiment>;
11
+ promoteExperiment(agentId: number, unit: string): Promise<{
12
+ prompt: EffectivePrompt;
13
+ }>;
14
+ revertPrompt(agentId: number, unit: string): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=prompts.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.service.d.ts","sourceRoot":"","sources":["../../src/services/prompts.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,qBAAqB;IACpB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,iBAAiB;IAEjD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIxD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIxD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMvE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAOpF,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,CAAC;IAO5B,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;IAOjC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjE"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviliPromptsService = void 0;
4
+ class ProviliPromptsService {
5
+ constructor(httpClient) {
6
+ this.httpClient = httpClient;
7
+ }
8
+ listPrompts(agentId) {
9
+ return this.httpClient.get(`/api/agents/${agentId}/prompts`);
10
+ }
11
+ listTelemetry(agentId) {
12
+ return this.httpClient.get(`/api/agents/${agentId}/telemetry`);
13
+ }
14
+ getExperiment(agentId, unit) {
15
+ return this.httpClient.get(`/agents/${agentId}/prompts/${encodeURIComponent(unit)}/experiment`);
16
+ }
17
+ savePrompt(agentId, unit, content) {
18
+ return this.httpClient.put(`/agents/${agentId}/prompts/${encodeURIComponent(unit)}`, { content });
19
+ }
20
+ saveExperiment(agentId, unit, candidateContent, trafficPercent) {
21
+ return this.httpClient.put(`/agents/${agentId}/prompts/${encodeURIComponent(unit)}/experiment`, { candidate_content: candidateContent, traffic_percent: trafficPercent });
22
+ }
23
+ promoteExperiment(agentId, unit) {
24
+ return this.httpClient.post(`/agents/${agentId}/prompts/${encodeURIComponent(unit)}/promote-experiment`, {});
25
+ }
26
+ async revertPrompt(agentId, unit) {
27
+ await this.httpClient.delete(`/agents/${agentId}/prompts/${encodeURIComponent(unit)}`);
28
+ }
29
+ }
30
+ exports.ProviliPromptsService = ProviliPromptsService;
31
+ //# sourceMappingURL=prompts.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.service.js","sourceRoot":"","sources":["../../src/services/prompts.service.ts"],"names":[],"mappings":";;;AAOA,MAAa,qBAAqB;IAChC,YAAoB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAErD,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,eAAe,OAAO,UAAU,CAAC,CAAC;IAClF,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAkB,eAAe,OAAO,YAAY,CAAC,CAAC;IAClF,CAAC;IAED,aAAa,CAAC,OAAe,EAAE,IAAY;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,WAAW,OAAO,YAAY,kBAAkB,CAAC,IAAI,CAAC,aAAa,CACpE,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,IAAY,EAAE,OAAe;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,WAAW,OAAO,YAAY,kBAAkB,CAAC,IAAI,CAAC,EAAE,EACxD,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,OAAe,EACf,IAAY,EACZ,gBAAwB,EACxB,cAAsB;QAEtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,WAAW,OAAO,YAAY,kBAAkB,CAAC,IAAI,CAAC,aAAa,EACnE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,CACzE,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,OAAe,EACf,IAAY;QAEZ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,WAAW,OAAO,YAAY,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,EAC3E,EAAE,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAAY;QAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAC1B,WAAW,OAAO,YAAY,kBAAkB,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;IACJ,CAAC;CACF;AAnDD,sDAmDC"}
@@ -0,0 +1,12 @@
1
+ import { ProviliHttpClient } from '../core/http-client';
2
+ import { Role, CreateRoleRequest, UpdateRoleRequest } from '../models/role.model';
3
+ export declare class ProviliRoleService {
4
+ private httpClient;
5
+ constructor(httpClient: ProviliHttpClient);
6
+ listRoles(): Promise<Role[]>;
7
+ getRole(id: number): Promise<Role>;
8
+ createRole(request: CreateRoleRequest): Promise<Role>;
9
+ updateRole(id: number, request: UpdateRoleRequest): Promise<Role>;
10
+ deleteRole(id: number): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=role.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../src/services/role.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAM9B,qBAAa,kBAAkB;IACjB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,iBAAiB;IAE3C,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAK5B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5C"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviliRoleService = void 0;
4
+ class ProviliRoleService {
5
+ constructor(httpClient) {
6
+ this.httpClient = httpClient;
7
+ }
8
+ async listRoles() {
9
+ const response = await this.httpClient.get('/roles');
10
+ return response.roles;
11
+ }
12
+ async getRole(id) {
13
+ const response = await this.httpClient.get(`/roles/${id}`);
14
+ return response;
15
+ }
16
+ async createRole(request) {
17
+ const response = await this.httpClient.post('/roles', request);
18
+ return response;
19
+ }
20
+ async updateRole(id, request) {
21
+ const response = await this.httpClient.put(`/roles/${id}`, request);
22
+ return response;
23
+ }
24
+ async deleteRole(id) {
25
+ await this.httpClient.delete(`/roles/${id}`);
26
+ }
27
+ }
28
+ exports.ProviliRoleService = ProviliRoleService;
29
+ //# sourceMappingURL=role.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../src/services/role.service.ts"],"names":[],"mappings":";;;AAWA,MAAa,kBAAkB;IAC7B,YAAoB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAErD,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,QAAQ,CAAC,CAAC;QACxE,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAO,UAAU,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAO,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,OAA0B;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF;AA1BD,gDA0BC"}
@@ -0,0 +1,18 @@
1
+ import { CompletionRequest, StreamingCallbacks } from '../models/streaming.model';
2
+ export interface StreamingConfig {
3
+ endpoint: string;
4
+ model?: string;
5
+ temperature?: number;
6
+ maxTokens?: number;
7
+ }
8
+ export declare class ProviliStreamingService {
9
+ private endpoint;
10
+ private temperature;
11
+ private maxTokens;
12
+ constructor(config: StreamingConfig);
13
+ private createError;
14
+ createCompletion(request: CompletionRequest, callbacks: StreamingCallbacks): Promise<AbortController>;
15
+ private processStream;
16
+ private parseSSEData;
17
+ }
18
+ //# sourceMappingURL=streaming.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.service.d.ts","sourceRoot":"","sources":["../../src/services/streaming.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,iBAAiB,EACjB,kBAAkB,EAGrB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,eAAe;IAMnC,OAAO,CAAC,WAAW;IAIb,gBAAgB,CAClB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,kBAAkB,GAC9B,OAAO,CAAC,eAAe,CAAC;YAkDb,aAAa;IAuC3B,OAAO,CAAC,YAAY;CAwBvB"}