llms-py 3.0.0b7__py3-none-any.whl → 3.0.0b9__py3-none-any.whl

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 (157) hide show
  1. llms/__pycache__/main.cpython-314.pyc +0 -0
  2. llms/extensions/analytics/ui/index.mjs +51 -162
  3. llms/extensions/app/__init__.py +519 -0
  4. llms/extensions/app/__pycache__/__init__.cpython-314.pyc +0 -0
  5. llms/extensions/app/__pycache__/db.cpython-314.pyc +0 -0
  6. llms/extensions/app/__pycache__/db_manager.cpython-314.pyc +0 -0
  7. llms/extensions/app/db.py +643 -0
  8. llms/extensions/app/db_manager.py +195 -0
  9. llms/extensions/app/requests.json +9073 -0
  10. llms/extensions/app/threads.json +15290 -0
  11. llms/{ui/modules/threads → extensions/app/ui}/Recents.mjs +82 -55
  12. llms/{ui/modules/threads → extensions/app/ui}/index.mjs +78 -9
  13. llms/extensions/app/ui/threadStore.mjs +407 -0
  14. llms/extensions/core_tools/__init__.py +272 -32
  15. llms/extensions/core_tools/__pycache__/__init__.cpython-314.pyc +0 -0
  16. llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +201 -0
  17. llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +185 -0
  18. llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +101 -0
  19. llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +160 -0
  20. llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +66 -0
  21. llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +27 -0
  22. llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +72 -0
  23. llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +119 -0
  24. llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +98 -0
  25. llms/extensions/core_tools/ui/codemirror/doc/docs.css +225 -0
  26. llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
  27. llms/extensions/core_tools/ui/codemirror/lib/codemirror.css +344 -0
  28. llms/extensions/core_tools/ui/codemirror/lib/codemirror.js +9884 -0
  29. llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +942 -0
  30. llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +118 -0
  31. llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +962 -0
  32. llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +62 -0
  33. llms/extensions/core_tools/ui/codemirror/mode/python/python.js +402 -0
  34. llms/extensions/core_tools/ui/codemirror/theme/dracula.css +40 -0
  35. llms/extensions/core_tools/ui/codemirror/theme/mocha.css +135 -0
  36. llms/extensions/core_tools/ui/index.mjs +650 -0
  37. llms/extensions/gallery/__pycache__/db.cpython-314.pyc +0 -0
  38. llms/extensions/gallery/db.py +4 -4
  39. llms/extensions/gallery/ui/index.mjs +2 -1
  40. llms/extensions/katex/__init__.py +6 -0
  41. llms/extensions/katex/__pycache__/__init__.cpython-314.pyc +0 -0
  42. llms/extensions/katex/ui/README.md +125 -0
  43. llms/extensions/katex/ui/contrib/auto-render.js +338 -0
  44. llms/extensions/katex/ui/contrib/auto-render.min.js +1 -0
  45. llms/extensions/katex/ui/contrib/auto-render.mjs +244 -0
  46. llms/extensions/katex/ui/contrib/copy-tex.js +127 -0
  47. llms/extensions/katex/ui/contrib/copy-tex.min.js +1 -0
  48. llms/extensions/katex/ui/contrib/copy-tex.mjs +105 -0
  49. llms/extensions/katex/ui/contrib/mathtex-script-type.js +109 -0
  50. llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +1 -0
  51. llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +24 -0
  52. llms/extensions/katex/ui/contrib/mhchem.js +3213 -0
  53. llms/extensions/katex/ui/contrib/mhchem.min.js +1 -0
  54. llms/extensions/katex/ui/contrib/mhchem.mjs +3109 -0
  55. llms/extensions/katex/ui/contrib/render-a11y-string.js +887 -0
  56. llms/extensions/katex/ui/contrib/render-a11y-string.min.js +1 -0
  57. llms/extensions/katex/ui/contrib/render-a11y-string.mjs +800 -0
  58. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
  59. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
  60. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  61. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  62. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  63. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  64. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  65. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  66. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  67. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  68. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  69. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  70. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  71. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  72. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  73. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
  74. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
  75. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
  76. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  77. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  78. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  79. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
  80. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
  81. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
  82. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
  83. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
  84. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
  85. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  86. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  87. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  88. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
  89. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
  90. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
  91. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  92. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  93. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  94. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  95. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  96. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  97. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  98. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  99. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  100. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
  101. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
  102. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
  103. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
  104. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
  105. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  106. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
  107. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
  108. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  109. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
  110. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
  111. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  112. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
  113. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
  114. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  115. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  116. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  117. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  118. llms/extensions/katex/ui/index.mjs +92 -0
  119. llms/extensions/katex/ui/katex-swap.css +1230 -0
  120. llms/extensions/katex/ui/katex-swap.min.css +1 -0
  121. llms/extensions/katex/ui/katex.css +1230 -0
  122. llms/extensions/katex/ui/katex.js +19080 -0
  123. llms/extensions/katex/ui/katex.min.css +1 -0
  124. llms/extensions/katex/ui/katex.min.js +1 -0
  125. llms/extensions/katex/ui/katex.min.mjs +1 -0
  126. llms/extensions/katex/ui/katex.mjs +18547 -0
  127. llms/extensions/providers/__pycache__/anthropic.cpython-314.pyc +0 -0
  128. llms/extensions/providers/anthropic.py +44 -1
  129. llms/extensions/system_prompts/ui/index.mjs +2 -1
  130. llms/extensions/tools/__init__.py +5 -0
  131. llms/extensions/tools/__pycache__/__init__.cpython-314.pyc +0 -0
  132. llms/extensions/tools/ui/index.mjs +8 -8
  133. llms/index.html +26 -38
  134. llms/llms.json +4 -1
  135. llms/main.py +492 -103
  136. llms/ui/App.mjs +2 -3
  137. llms/ui/ai.mjs +29 -13
  138. llms/ui/app.css +255 -289
  139. llms/ui/ctx.mjs +84 -6
  140. llms/ui/index.mjs +4 -6
  141. llms/ui/lib/vue.min.mjs +10 -9
  142. llms/ui/lib/vue.mjs +1796 -1635
  143. llms/ui/markdown.mjs +4 -2
  144. llms/ui/modules/chat/ChatBody.mjs +90 -86
  145. llms/ui/modules/chat/HomeTools.mjs +0 -242
  146. llms/ui/modules/chat/index.mjs +103 -170
  147. llms/ui/modules/model-selector.mjs +2 -2
  148. llms/ui/tailwind.input.css +35 -1
  149. llms/ui/utils.mjs +12 -0
  150. {llms_py-3.0.0b7.dist-info → llms_py-3.0.0b9.dist-info}/METADATA +1 -1
  151. llms_py-3.0.0b9.dist-info/RECORD +198 -0
  152. llms/ui/modules/threads/threadStore.mjs +0 -640
  153. llms_py-3.0.0b7.dist-info/RECORD +0 -80
  154. {llms_py-3.0.0b7.dist-info → llms_py-3.0.0b9.dist-info}/WHEEL +0 -0
  155. {llms_py-3.0.0b7.dist-info → llms_py-3.0.0b9.dist-info}/entry_points.txt +0 -0
  156. {llms_py-3.0.0b7.dist-info → llms_py-3.0.0b9.dist-info}/licenses/LICENSE +0 -0
  157. {llms_py-3.0.0b7.dist-info → llms_py-3.0.0b9.dist-info}/top_level.txt +0 -0
llms/ui/ctx.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- import { reactive } from 'vue'
2
+ import { reactive, markRaw } from 'vue'
3
3
  import { EventBus, humanize, combinePaths } from "@servicestack/client"
4
4
  import { storageObject } from './utils.mjs'
5
5
 
@@ -25,33 +25,77 @@ export class ExtensionScope {
25
25
  get(url, options) {
26
26
  return this.ctx.ai.get(combinePaths(this.baseUrl, url), options)
27
27
  }
28
+ delete(url, options) {
29
+ return this.ctx.ai.get(combinePaths(this.baseUrl, url), {
30
+ ...options,
31
+ method: 'DELETE'
32
+ })
33
+ }
28
34
  async getJson(url, options) {
29
35
  return this.ctx.ai.getJson(combinePaths(this.baseUrl, url), options)
30
36
  }
37
+ async deleteJson(url, options) {
38
+ return this.ctx.ai.getJson(combinePaths(this.baseUrl, url), {
39
+ ...options,
40
+ method: 'DELETE'
41
+ })
42
+ }
31
43
  post(url, options) {
32
44
  return this.ctx.ai.post(combinePaths(this.baseUrl, url), options)
33
45
  }
34
46
  async postForm(url, options) {
35
47
  return await this.ctx.ai.postForm(combinePaths(this.baseUrl, url), options)
36
48
  }
37
- async postJson(url, options) {
38
- return this.ctx.ai.postJson(combinePaths(this.baseUrl, url), options)
49
+ async postJson(url, body) {
50
+ return this.ctx.ai.postJson(combinePaths(this.baseUrl, url), {
51
+ body: body instanceof FormData ? body : JSON.stringify(body)
52
+ })
53
+ }
54
+ async putJson(url, body) {
55
+ return this.ctx.ai.postJson(combinePaths(this.baseUrl, url), {
56
+ method: 'PUT',
57
+ body: body instanceof FormData ? body : JSON.stringify(body)
58
+ })
59
+ }
60
+ async patchJson(url, body) {
61
+ return this.ctx.ai.postJson(combinePaths(this.baseUrl, url), {
62
+ method: 'PATCH',
63
+ body: body instanceof FormData ? body : JSON.stringify(body)
64
+ })
65
+ }
66
+ async createJsonResult(res) {
67
+ return this.ctx.ai.createJsonResult(res)
68
+ }
69
+ createErrorResult(e) {
70
+ return this.ctx.ai.createErrorResult(e)
71
+ }
72
+ setError(e, msg = null) {
73
+ const prefix = this.id ? `[${this.id}] ` : ''
74
+ this.ctx.setError(e, msg ? `${prefix} ${msg}` : prefix)
75
+ }
76
+ clearError() {
77
+ this.ctx.clearError()
78
+ }
79
+ toast(msg) {
80
+ this.ctx.toast(msg)
39
81
  }
40
82
  }
41
83
 
42
84
  export class AppContext {
43
- constructor({ app, routes, ai, fmt, utils }) {
85
+ constructor({ app, routes, ai, fmt, utils, marked }) {
44
86
  this.app = app
45
87
  this.routes = routes
46
88
  this.ai = ai
47
89
  this.fmt = fmt
48
90
  this.utils = utils
49
91
  this._components = {}
92
+ this.marked = marked
50
93
 
51
94
  this.state = reactive({})
52
95
  this.events = new EventBus()
53
96
  this.modalComponents = {}
54
97
  this.extensions = []
98
+ this.markedFilters = []
55
99
  this.chatRequestFilters = []
56
100
  this.chatResponseFilters = []
57
101
  this.chatErrorFilters = []
@@ -83,6 +127,9 @@ export class AppContext {
83
127
  }
84
128
  async init() {
85
129
  Object.assign(this.state, await this.ai.init(this))
130
+ Object.assign(this.fmt, {
131
+ markdown: this.renderMarkdown.bind(this)
132
+ })
86
133
  }
87
134
  setGlobals(globals) {
88
135
  Object.entries(globals).forEach(([name, global]) => {
@@ -138,8 +185,9 @@ export class AppContext {
138
185
  }
139
186
  modals(modals) {
140
187
  Object.keys(modals).forEach(name => {
141
- this.modalComponents[name] = modals[name]
142
- this.component(name, modals[name])
188
+ const modal = markRaw(modals[name])
189
+ this.modalComponents[name] = modal
190
+ this.component(name, modal)
143
191
  })
144
192
  }
145
193
  openModal(name) {
@@ -214,6 +262,21 @@ export class AppContext {
214
262
  this.toggleLayout('left', toggle)
215
263
  return toggle
216
264
  }
265
+
266
+ setError(error, msg = null) {
267
+ this.state.error = error
268
+ if (error) {
269
+ if (msg) {
270
+ console.error(error.message, msg, error)
271
+ } else {
272
+ console.error(error.message, error)
273
+ }
274
+ }
275
+ }
276
+ clearError() {
277
+ this.state.error = null
278
+ }
279
+
217
280
  async getJson(url, options) {
218
281
  return await this.ai.getJson(url, options)
219
282
  }
@@ -260,4 +323,19 @@ export class AppContext {
260
323
  }
261
324
  return cls
262
325
  }
326
+ toast(msg) {
327
+ this.setState({ toast: msg })
328
+ }
329
+
330
+ renderMarkdown(content) {
331
+ if (Array.isArray(content)) {
332
+ content = content.filter(c => c.type === 'text').map(c => c.text).join('\n')
333
+ }
334
+ // if (content) {
335
+ // content = content
336
+ // .replaceAll(`\\[ \\boxed{`, '\n<span class="inline-block text-xl text-blue-500 bg-blue-50 dark:text-blue-400 dark:bg-blue-950 px-3 py-1 rounded">')
337
+ // .replaceAll('} \\]', '</span>\n')
338
+ // }
339
+ return this.marked.parse(content || '')
340
+ }
263
341
  }
llms/ui/index.mjs CHANGED
@@ -6,10 +6,9 @@ import App from './App.mjs'
6
6
  import ai from './ai.mjs'
7
7
  import LayoutModule from './modules/layout.mjs'
8
8
  import ChatModule from './modules/chat/index.mjs'
9
- import ThreadsModule from './modules/threads/index.mjs'
10
9
  import ModelSelectorModule from './modules/model-selector.mjs'
11
10
  import { utilsFunctions, utilsFormatters } from './utils.mjs'
12
- import { markdownFormatters } from './markdown.mjs'
11
+ import { marked, markdownFormatters } from './markdown.mjs'
13
12
  import { AppContext } from './ctx.mjs'
14
13
 
15
14
  const Components = {
@@ -18,7 +17,6 @@ const Components = {
18
17
  const BuiltInModules = {
19
18
  LayoutModule,
20
19
  ChatModule,
21
- ThreadsModule,
22
20
  ModelSelectorModule,
23
21
  }
24
22
 
@@ -31,11 +29,11 @@ export async function createContext() {
31
29
  app.component(name, Components[name])
32
30
  })
33
31
 
34
- const fmt = Object.assign({}, useFormatters(), utilsFormatters(), markdownFormatters())
32
+ const fmt = Object.assign({}, useFormatters(), utilsFormatters())
35
33
  const utils = Object.assign({}, utilsFunctions())
36
34
  const routes = []
37
35
 
38
- const ctx = new AppContext({ app, routes, ai, fmt, utils })
36
+ const ctx = new AppContext({ app, routes, ai, fmt, utils, marked })
39
37
  app.provide('ctx', ctx)
40
38
  await ctx.init()
41
39
 
@@ -97,7 +95,7 @@ export async function createContext() {
97
95
 
98
96
  ctx.router.beforeEach((to, from) => {
99
97
  const title = to.meta.title || 'Chat'
100
- console.log('beforeEach', to.path, title)
98
+ console.debug('router:change', to.path, title)
101
99
  ctx.setLayout({ path: to.path })
102
100
  ctx.setState({ title })
103
101
  document.title = title