@danieltmn/tamnora 0.24.2 → 0.25.1

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 (83) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/harness/packages/cli/src/commands/repl.js +18 -2
  3. package/harness/packages/cli/src/commands/run.js +5 -1
  4. package/harness/packages/cli/src/commands/tui.js +5 -1
  5. package/harness/packages/cli/src/lib/runtime.js +2 -0
  6. package/harness/packages/cli/src/tui/app.js +22 -2
  7. package/harness/packages/cli/src/tui/layout.js +1 -1
  8. package/harness/packages/core/src/agent/runAgent.js +5 -2
  9. package/harness/packages/core/src/agents/index.js +141 -0
  10. package/harness/packages/core/src/config/index.js +1 -0
  11. package/harness/packages/core/src/index.js +10 -0
  12. package/harness/packages/core/src/providers/index.js +3 -1
  13. package/harness/packages/core/src/providers/ollama.js +4 -1
  14. package/harness/packages/core/src/providers/openaiCompatible.js +6 -1
  15. package/harness/packages/core/src/providers/openrouter.js +5 -1
  16. package/harness/packages/core/src/providers/presets.js +4 -3
  17. package/harness/packages/core/src/providers/reasoning.js +58 -0
  18. package/harness/packages/core/test/agents.test.js +111 -0
  19. package/harness/packages/core/test/reasoning.test.js +43 -0
  20. package/harness/packages/server/public/app.js +868 -834
  21. package/harness/packages/server/public/appearance.js +4 -0
  22. package/harness/packages/server/public/boot.js +49 -0
  23. package/harness/packages/server/public/chat.js +1 -0
  24. package/harness/packages/server/public/chrome.js +946 -852
  25. package/harness/packages/server/public/commands.js +448 -405
  26. package/harness/packages/server/public/core.js +229 -216
  27. package/harness/packages/server/public/favicon.ico +0 -0
  28. package/harness/packages/server/public/icons/icon-128x128.png +0 -0
  29. package/harness/packages/server/public/icons/icon-144x144.png +0 -0
  30. package/harness/packages/server/public/icons/icon-152x152.png +0 -0
  31. package/harness/packages/server/public/icons/icon-192x192.png +0 -0
  32. package/harness/packages/server/public/icons/icon-384x384.png +0 -0
  33. package/harness/packages/server/public/icons/icon-512x512.png +0 -0
  34. package/harness/packages/server/public/icons/icon-72x72.png +0 -0
  35. package/harness/packages/server/public/icons/icon-96x96.png +0 -0
  36. package/harness/packages/server/public/icons/logo.png +0 -0
  37. package/harness/packages/server/public/icons/logo_dark.png +0 -0
  38. package/harness/packages/server/public/icons/logo_light.png +0 -0
  39. package/harness/packages/server/public/icons/tamnora.ico +0 -0
  40. package/harness/packages/server/public/icons (1).zip +0 -0
  41. package/harness/packages/server/public/index.html +161 -101
  42. package/harness/packages/server/public/landing/boot.js +16 -0
  43. package/harness/packages/server/public/landing/index.html +123 -59
  44. package/harness/packages/server/public/landing/landing.js +11 -9
  45. package/harness/packages/server/public/logo.png +0 -0
  46. package/harness/packages/server/public/markdown.js +1 -1
  47. package/harness/packages/server/public/sessions.js +1 -0
  48. package/harness/packages/server/public/settings.js +1322 -1080
  49. package/harness/packages/server/public/settingsNav.js +82 -0
  50. package/harness/packages/server/public/styles.css +2807 -2525
  51. package/harness/packages/server/public/system.js +2 -2
  52. package/harness/packages/server/src/lib/agents.js +74 -0
  53. package/harness/packages/server/src/lib/appearance.js +4 -0
  54. package/harness/packages/server/src/lib/channels/telegram/run.js +1 -0
  55. package/harness/packages/server/src/lib/prompt.js +11 -3
  56. package/harness/packages/server/src/lib/restart.js +20 -0
  57. package/harness/packages/server/src/lib/scheduler.js +4 -0
  58. package/harness/packages/server/src/lib/securityHeaders.js +53 -0
  59. package/harness/packages/server/src/lib/sessionView.js +1 -0
  60. package/harness/packages/server/src/lib/skills.js +13 -0
  61. package/harness/packages/server/src/lib/tasks.js +71 -23
  62. package/harness/packages/server/src/routes/agents.js +88 -0
  63. package/harness/packages/server/src/routes/chat.js +9 -1
  64. package/harness/packages/server/src/routes/providers.js +7 -0
  65. package/harness/packages/server/src/routes/reload.js +46 -0
  66. package/harness/packages/server/src/routes/sessions.js +3 -1
  67. package/harness/packages/server/src/server.js +13 -1
  68. package/harness/packages/server/test/accessibility.test.js +72 -0
  69. package/harness/packages/server/test/agents.test.js +194 -0
  70. package/harness/packages/server/test/appearance.test.js +4 -0
  71. package/harness/packages/server/test/consoleModules.test.js +133 -57
  72. package/harness/packages/server/test/consoleTabs.test.js +228 -0
  73. package/harness/packages/server/test/docsSync.test.js +73 -0
  74. package/harness/packages/server/test/landingLogin.test.js +89 -0
  75. package/harness/packages/server/test/markdownSecurity.test.js +80 -0
  76. package/harness/packages/server/test/reload.test.js +95 -0
  77. package/harness/packages/server/test/securityHeaders.test.js +109 -0
  78. package/harness/packages/server/test/settingsNav.test.js +90 -0
  79. package/harness/packages/server/test/themeCss.js +110 -0
  80. package/harness/packages/server/test/themes.test.js +72 -0
  81. package/harness/scripts/restart.mjs +101 -0
  82. package/harness/tamnora.example.json +1 -0
  83. package/package.json +1 -1
@@ -12,10 +12,14 @@ export const THEMES = [
12
12
  { id: 'solarized-dark', label: 'Solarized oscuro', scheme: 'dark', metaColor: '#002b36' },
13
13
  { id: 'bosque', label: 'Bosque', scheme: 'light', metaColor: '#f2f4ec' },
14
14
  { id: 'vino', label: 'Vino', scheme: 'light', metaColor: '#f7eeee' },
15
+ { id: 'arena', label: 'Arena', scheme: 'light', metaColor: '#f6efdd' },
16
+ { id: 'hielo', label: 'Hielo', scheme: 'light', metaColor: '#edf3f7' },
15
17
  { id: 'vercel', label: 'Vercel', scheme: 'dark', metaColor: '#000000' },
16
18
  { id: 'dark-plus', label: 'Dark+', scheme: 'dark', metaColor: '#1e1e1e' },
17
19
  { id: 'github', label: 'GitHub', scheme: 'light', metaColor: '#ffffff' },
18
20
  { id: 'github-dark', label: 'GitHub oscuro', scheme: 'dark', metaColor: '#0d1117' },
21
+ { id: 'mocha', label: 'Mocha', scheme: 'dark', metaColor: '#211912' },
22
+ { id: 'ebano', label: 'Ébano', scheme: 'dark', metaColor: '#14191f' },
19
23
  ];
20
24
 
21
25
  export const FONT_PRESETS = [
@@ -0,0 +1,49 @@
1
+ (function () {
2
+ var root = document.documentElement;
3
+ var THEMES = ['paper', 'dark', 'midnight', 'nord', 'dracula', 'solarized', 'solarized-dark', 'bosque', 'vino', 'arena', 'hielo', 'vercel', 'dark-plus', 'github', 'github-dark', 'mocha', 'ebano'];
4
+ var DARK = ['dark', 'midnight', 'nord', 'dracula', 'solarized-dark', 'vercel', 'dark-plus', 'github-dark', 'mocha', 'ebano'];
5
+ var appearance = null;
6
+ try {
7
+ appearance = JSON.parse(localStorage.getItem('tamnora-console-appearance') || 'null');
8
+ } catch {
9
+ appearance = null;
10
+ }
11
+ var theme = appearance && appearance.theme;
12
+ if (!theme) {
13
+ try {
14
+ theme = localStorage.getItem('tamnora-console-theme');
15
+ } catch {
16
+ theme = null;
17
+ }
18
+ }
19
+ if (theme === 'light') theme = 'paper';
20
+ if (THEMES.indexOf(theme) < 0) {
21
+ theme = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'paper';
22
+ }
23
+ root.dataset.theme = theme;
24
+ root.dataset.scheme = DARK.indexOf(theme) >= 0 ? 'dark' : 'light';
25
+ // La consola resuelve el acceso con /api/auth/me; mientras tanto, oculta.
26
+ root.dataset.auth = 'pending';
27
+ if (!appearance) return;
28
+ if (appearance.fontCss) {
29
+ root.style.setProperty('--sans', appearance.fontCss.sans);
30
+ root.style.setProperty('--serif', appearance.fontCss.serif);
31
+ root.style.setProperty('--mono', appearance.fontCss.mono);
32
+ root.style.setProperty('--font', 'var(--sans)');
33
+ }
34
+ var href = appearance.google ? 'https://fonts.googleapis.com/css2?' + appearance.google + '&display=swap' : null;
35
+ var flink = document.getElementById('tamnora-fonts');
36
+ if (!href) {
37
+ if (flink) flink.remove();
38
+ } else if (!flink) {
39
+ flink = document.createElement('link');
40
+ flink.rel = 'stylesheet';
41
+ flink.id = 'tamnora-fonts';
42
+ flink.href = href;
43
+ document.head.appendChild(flink);
44
+ } else if (flink.getAttribute('href') !== href) {
45
+ flink.setAttribute('href', href);
46
+ }
47
+ if (appearance.chatFont) root.style.setProperty('--chat-font', appearance.chatFont + 'px');
48
+ if (appearance.scale) root.style.zoom = String(appearance.scale);
49
+ })();
@@ -1080,6 +1080,7 @@ export async function startTurn(sessionKey, pane, input, images, opts = {}) {
1080
1080
  provider: owner?.provider || providerSelect.value || undefined,
1081
1081
  model: owner?.model || modelSelect.value || undefined,
1082
1082
  mode: owner?.mode || modeSelect.value || undefined,
1083
+ effort: owner?.effort ?? undefined,
1083
1084
  yes: yesInput.checked ? true : undefined,
1084
1085
  contextTokens: contextTokensForRequest(),
1085
1086
  interrupt: opts.interrupt ? true : undefined,