ummaya 0.2.5 → 0.2.6

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/tui/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ummaya",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "engines": {
@@ -20,38 +20,37 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@alcalzone/ansi-tokenize": "^0.3.0",
23
- "@anthropic-ai/claude-agent-sdk": "^0.2.119",
24
23
  "@anthropic-ai/mcpb": "^2.1.2",
25
24
  "@anthropic-ai/sandbox-runtime": "^0.0.49",
26
25
  "@anthropic-ai/sdk": "^0.37.0",
27
- "@aws-sdk/client-bedrock-runtime": "^3.1036.0",
26
+ "@aws-sdk/client-bedrock-runtime": "^3.1072.0",
28
27
  "@commander-js/extra-typings": "^12.1.0",
29
28
  "@growthbook/growthbook": "^1.6.5",
30
- "@grpc/grpc-js": "^1.14.3",
29
+ "@grpc/grpc-js": "^1.14.4",
31
30
  "@inkjs/ui": "^2.0.0",
32
31
  "@modelcontextprotocol/sdk": "^1.29.0",
33
32
  "@opentelemetry/api": "^1.9.1",
34
- "@opentelemetry/api-logs": "^0.215.0",
35
- "@opentelemetry/core": "^2.7.0",
36
- "@opentelemetry/exporter-logs-otlp-grpc": "^0.216.0",
37
- "@opentelemetry/exporter-logs-otlp-http": "^0.216.0",
38
- "@opentelemetry/exporter-logs-otlp-proto": "^0.216.0",
39
- "@opentelemetry/exporter-metrics-otlp-grpc": "^0.216.0",
40
- "@opentelemetry/exporter-metrics-otlp-http": "^0.216.0",
41
- "@opentelemetry/exporter-metrics-otlp-proto": "^0.216.0",
42
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.216.0",
43
- "@opentelemetry/exporter-trace-otlp-http": "^0.216.0",
44
- "@opentelemetry/exporter-trace-otlp-proto": "^0.216.0",
45
- "@opentelemetry/resources": "^2.7.0",
46
- "@opentelemetry/sdk-logs": "^0.215.0",
47
- "@opentelemetry/sdk-metrics": "^2.7.0",
48
- "@opentelemetry/sdk-trace-base": "^2.7.0",
33
+ "@opentelemetry/api-logs": "^0.219.0",
34
+ "@opentelemetry/core": "^2.8.0",
35
+ "@opentelemetry/exporter-logs-otlp-grpc": "^0.219.0",
36
+ "@opentelemetry/exporter-logs-otlp-http": "^0.219.0",
37
+ "@opentelemetry/exporter-logs-otlp-proto": "^0.219.0",
38
+ "@opentelemetry/exporter-metrics-otlp-grpc": "^0.219.0",
39
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.219.0",
40
+ "@opentelemetry/exporter-metrics-otlp-proto": "^0.219.0",
41
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.219.0",
42
+ "@opentelemetry/exporter-trace-otlp-http": "^0.219.0",
43
+ "@opentelemetry/exporter-trace-otlp-proto": "^0.219.0",
44
+ "@opentelemetry/resources": "^2.8.0",
45
+ "@opentelemetry/sdk-logs": "^0.219.0",
46
+ "@opentelemetry/sdk-metrics": "^2.8.0",
47
+ "@opentelemetry/sdk-trace-base": "^2.8.0",
49
48
  "@opentelemetry/semantic-conventions": "^1.40.0",
50
49
  "@pdf-lib/fontkit": "^1.1.1",
51
50
  "ajv": "^8.18.0",
52
51
  "asciichart": "^1.5.25",
53
52
  "auto-bind": "^5.0.1",
54
- "axios": "^1.15.2",
53
+ "axios": "^1.18.0",
55
54
  "bidi-js": "^1.0.3",
56
55
  "bundle": "file:./src/runtime/bundle-package",
57
56
  "chalk": "^5.3.0",
@@ -80,10 +79,10 @@
80
79
  "react": "^19.2.0",
81
80
  "react-reconciler": "0.33.0",
82
81
  "semver": "^7.7.4",
83
- "shell-quote": "^1.8.3",
82
+ "shell-quote": "^1.8.4",
84
83
  "supports-hyperlinks": "^4.4.0",
85
84
  "tree-kill": "^1.2.2",
86
- "undici": "^8.1.0",
85
+ "undici": "^8.5.0",
87
86
  "usehooks-ts": "^3.1.1",
88
87
  "vscode-languageserver-protocol": "^3.17.5",
89
88
  "xss": "^1.0.15",
@@ -97,5 +96,19 @@
97
96
  "ink-testing-library": "^4.0.0",
98
97
  "json-schema-to-typescript": "^15.0.4",
99
98
  "typescript": "^5.6.0"
99
+ },
100
+ "overrides": {
101
+ "fast-uri": "^3.1.2",
102
+ "fast-xml-builder": "^1.2.0",
103
+ "form-data": "^4.0.6",
104
+ "hono": "^4.12.26",
105
+ "ip-address": "^10.2.0",
106
+ "js-yaml": "^4.2.0",
107
+ "protobufjs": "^7.6.3",
108
+ "qs": "^6.15.2",
109
+ "shell-quote": "^1.8.4",
110
+ "tar": "^7.5.16",
111
+ "tmp": "^0.2.7",
112
+ "ws": "^8.21.0"
100
113
  }
101
114
  }
@@ -313,7 +313,6 @@ export async function mcpAddJsonHandler(name: string, json: string, options: {
313
313
  }
314
314
  }
315
315
 
316
- // mcp add-from-claude-desktop (lines 4881–4927)
317
316
  export async function mcpAddFromDesktopHandler(options: {
318
317
  scope?: string;
319
318
  }): Promise<void> {
@@ -137,7 +137,6 @@ import type {
137
137
  SDKControlMcpSetServersResponse,
138
138
  SDKControlReloadPluginsResponse,
139
139
  } from 'src/entrypoints/sdk/controlTypes.js'
140
- import type { PermissionMode } from '@anthropic-ai/claude-agent-sdk'
141
140
  import type { PermissionMode as InternalPermissionMode } from 'src/types/permissions.js'
142
141
  import { cwd } from 'process'
143
142
  import { getCwd } from 'src/utils/cwd.js'
@@ -1154,7 +1153,7 @@ function runHeadlessStreaming(
1154
1153
  type: 'system',
1155
1154
  subtype: 'status',
1156
1155
  status: null,
1157
- permissionMode: newMode as PermissionMode,
1156
+ permissionMode: newMode as InternalPermissionMode,
1158
1157
  uuid: randomUUID(),
1159
1158
  session_id: getSessionId(),
1160
1159
  })
package/tui/src/main.tsx CHANGED
@@ -559,7 +559,7 @@ async function run(): Promise<CommanderCommand> {
559
559
  // If not provided but flag is present, value will be true
560
560
  // The actual filtering is handled in debug.ts by parsing process.argv
561
561
  return true;
562
- }).addOption(new Option('--debug-to-stderr', 'Enable debug mode (to stderr)').hideHelp()).option('--debug-file <path>', 'Write debug logs to a specific file path (implicitly enables debug mode)', () => true).option('--verbose', 'Override verbose mode setting from config', () => true).option('-p, --print', 'Print response and exit (useful for pipes). Note: The workspace trust dialog is skipped when UMMAYA is run with the -p mode. Only use this flag in directories you trust.', () => true).option('--bare', 'Minimal mode: skip hooks, LSP, plugin sync, attribution, auto-memory, background prefetches, keychain reads, and CLAUDE.md auto-discovery. Sets CLAUDE_CODE_SIMPLE=1. FriendliAI auth still requires an active /login session. Skills still resolve via /skill-name. Explicitly provide context via: --system-prompt[-file], --append-system-prompt[-file], --add-dir, --mcp-config, --settings, --agents, --plugin-dir.', () => true).addOption(new Option('--init', 'Run Setup hooks with init trigger, then continue').hideHelp()).addOption(new Option('--init-only', 'Run Setup and SessionStart:startup hooks, then exit').hideHelp()).addOption(new Option('--maintenance', 'Run Setup hooks with maintenance trigger, then continue').hideHelp()).addOption(new Option('--output-format <format>', 'Output format (only works with --print): "text" (default), "json" (single result), or "stream-json" (realtime streaming)').choices(['text', 'json', 'stream-json'])).addOption(new Option('--json-schema <schema>', 'JSON Schema for structured output validation. ' + 'Example: {"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}').argParser(String)).option('--include-hook-events', 'Include all hook lifecycle events in the output stream (only works with --output-format=stream-json)', () => true).option('--include-partial-messages', 'Include partial message chunks as they arrive (only works with --print and --output-format=stream-json)', () => true).addOption(new Option('--input-format <format>', 'Input format (only works with --print): "text" (default), or "stream-json" (realtime streaming input)').choices(['text', 'stream-json'])).option('--mcp-debug', '[DEPRECATED. Use --debug instead] Enable MCP debug mode (shows MCP server errors)', () => true).option('--dangerously-skip-permissions', 'Bypass all permission checks. Recommended only for sandboxes with no internet access.', () => true).option('--allow-dangerously-skip-permissions', 'Enable bypassing all permission checks as an option, without it being enabled by default. Recommended only for sandboxes with no internet access.', () => true).addOption(new Option('--thinking <mode>', 'Thinking mode: enabled (equivalent to adaptive), disabled').choices(['enabled', 'adaptive', 'disabled']).hideHelp()).addOption(new Option('--max-thinking-tokens <tokens>', '[DEPRECATED. Use --thinking instead for newer models] Maximum number of thinking tokens (only works with --print)').argParser(Number).hideHelp()).addOption(new Option('--max-turns <turns>', 'Maximum number of agentic turns in non-interactive mode. This will early exit the conversation after the specified number of turns. (only works with --print)').argParser(Number).hideHelp()).addOption(new Option('--max-budget-usd <amount>', 'Maximum dollar amount to spend on API calls (only works with --print)').argParser(value => {
562
+ }).addOption(new Option('--debug-to-stderr', 'Enable debug mode (to stderr)').hideHelp()).option('--debug-file <path>', 'Write debug logs to a specific file path (implicitly enables debug mode)', () => true).option('--verbose', 'Override verbose mode setting from config', () => true).option('-p, --print', 'Print response and exit (useful for pipes). Note: The workspace trust dialog is skipped when UMMAYA is run with the -p mode. Only use this flag in directories you trust.', () => true).option('--bare', 'Minimal mode: skip hooks, LSP, plugin sync, attribution, auto-memory, background prefetches, keychain reads, and project-memory auto-discovery. Enables minimal compatibility mode. FriendliAI auth still requires an active /login session. Skills still resolve via /skill-name. Explicitly provide context via: --system-prompt[-file], --append-system-prompt[-file], --add-dir, --mcp-config, --settings, --agents, --plugin-dir.', () => true).addOption(new Option('--init', 'Run Setup hooks with init trigger, then continue').hideHelp()).addOption(new Option('--init-only', 'Run Setup and SessionStart:startup hooks, then exit').hideHelp()).addOption(new Option('--maintenance', 'Run Setup hooks with maintenance trigger, then continue').hideHelp()).addOption(new Option('--output-format <format>', 'Output format (only works with --print): "text" (default), "json" (single result), or "stream-json" (realtime streaming)').choices(['text', 'json', 'stream-json'])).addOption(new Option('--json-schema <schema>', 'JSON Schema for structured output validation. ' + 'Example: {"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}').argParser(String)).option('--include-hook-events', 'Include all hook lifecycle events in the output stream (only works with --output-format=stream-json)', () => true).option('--include-partial-messages', 'Include partial message chunks as they arrive (only works with --print and --output-format=stream-json)', () => true).addOption(new Option('--input-format <format>', 'Input format (only works with --print): "text" (default), or "stream-json" (realtime streaming input)').choices(['text', 'stream-json'])).option('--mcp-debug', '[DEPRECATED. Use --debug instead] Enable MCP debug mode (shows MCP server errors)', () => true).option('--dangerously-skip-permissions', 'Bypass all permission checks. Recommended only for sandboxes with no internet access.', () => true).option('--allow-dangerously-skip-permissions', 'Enable bypassing all permission checks as an option, without it being enabled by default. Recommended only for sandboxes with no internet access.', () => true).addOption(new Option('--thinking <mode>', 'Thinking mode: enabled (equivalent to adaptive), disabled').choices(['enabled', 'adaptive', 'disabled']).hideHelp()).addOption(new Option('--max-thinking-tokens <tokens>', '[DEPRECATED. Use --thinking instead for newer models] Maximum number of thinking tokens (only works with --print)').argParser(Number).hideHelp()).addOption(new Option('--max-turns <turns>', 'Maximum number of agentic turns in non-interactive mode. This will early exit the conversation after the specified number of turns. (only works with --print)').argParser(Number).hideHelp()).addOption(new Option('--max-budget-usd <amount>', 'Maximum dollar amount to spend on API calls (only works with --print)').argParser(value => {
563
563
  const amount = Number(value);
564
564
  if (isNaN(amount) || amount <= 0) {
565
565
  throw new Error('--max-budget-usd must be a positive number greater than 0');
@@ -2480,7 +2480,7 @@ async function run(): Promise<CommanderCommand> {
2480
2480
  } = await import('./cli/handlers/mcp.js');
2481
2481
  await mcpAddJsonHandler(name, json, options);
2482
2482
  });
2483
- mcp.command('add-from-claude-desktop').description('Import MCP servers from Claude Desktop (Mac and WSL only)').option('-s, --scope <scope>', 'Configuration scope (local, user, or project)', 'local').action(async (options: {
2483
+ mcp.command('add-from-desktop').description('Import MCP servers from a desktop MCP config (Mac and WSL only)').option('-s, --scope <scope>', 'Configuration scope (local, user, or project)', 'local').action(async (options: {
2484
2484
  scope?: string;
2485
2485
  }) => {
2486
2486
  const {
@@ -2512,8 +2512,7 @@ async function run(): Promise<CommanderCommand> {
2512
2512
  await authLogin({
2513
2513
  email,
2514
2514
  sso,
2515
- console: useConsole,
2516
- claudeai
2515
+ console: useConsole
2517
2516
  });
2518
2517
  });
2519
2518
  auth.command('status').description('Show authentication status').option('--json', 'Output as JSON (default)').option('--text', 'Output as human-readable text').action(async (opts: {
@@ -15,7 +15,7 @@ export async function getClaudeDesktopConfigPath(): Promise<string> {
15
15
 
16
16
  if (!SUPPORTED_PLATFORMS.includes(platform)) {
17
17
  throw new Error(
18
- `Unsupported platform: ${platform} - Claude Desktop integration only works on macOS and WSL.`,
18
+ `Unsupported platform: ${platform} - desktop MCP config import only works on macOS and WSL.`,
19
19
  )
20
20
  }
21
21
 
@@ -56,7 +56,7 @@ export async function getClaudeDesktopConfigPath(): Promise<string> {
56
56
  try {
57
57
  const userDirs = await readdir(usersDir, { withFileTypes: true })
58
58
 
59
- // Look for Claude Desktop config in each user directory
59
+ // Look for the desktop MCP config in each user directory
60
60
  for (const user of userDirs) {
61
61
  if (
62
62
  user.name === 'Public' ||
@@ -91,7 +91,7 @@ export async function getClaudeDesktopConfigPath(): Promise<string> {
91
91
  }
92
92
 
93
93
  throw new Error(
94
- 'Could not find Claude Desktop config file in Windows. Make sure Claude Desktop is installed on Windows.',
94
+ 'Could not find a desktop MCP config file in Windows.',
95
95
  )
96
96
  }
97
97
 
@@ -100,7 +100,7 @@ export async function readClaudeDesktopMcpServers(): Promise<
100
100
  > {
101
101
  if (!SUPPORTED_PLATFORMS.includes(getPlatform())) {
102
102
  throw new Error(
103
- 'Unsupported platform - Claude Desktop integration only works on macOS and WSL.',
103
+ 'Unsupported platform - desktop MCP config import only works on macOS and WSL.',
104
104
  )
105
105
  }
106
106
  try {
package/uv.lock CHANGED
@@ -2566,8 +2566,8 @@ dependencies = [
2566
2566
  { name = "numpy" },
2567
2567
  { name = "scikit-learn" },
2568
2568
  { name = "scipy" },
2569
- { name = "torch", version = "2.11.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
2570
- { name = "torch", version = "2.11.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
2569
+ { name = "torch", version = "2.12.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
2570
+ { name = "torch", version = "2.12.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
2571
2571
  { name = "tqdm" },
2572
2572
  { name = "transformers" },
2573
2573
  { name = "typing-extensions" },
@@ -2906,7 +2906,7 @@ wheels = [
2906
2906
 
2907
2907
  [[package]]
2908
2908
  name = "torch"
2909
- version = "2.11.0"
2909
+ version = "2.12.1"
2910
2910
  source = { registry = "https://download.pytorch.org/whl/cpu" }
2911
2911
  resolution-markers = [
2912
2912
  "python_full_version >= '3.13' and sys_platform == 'darwin'",
@@ -2922,16 +2922,15 @@ dependencies = [
2922
2922
  { name = "typing-extensions", marker = "sys_platform == 'darwin'" },
2923
2923
  ]
2924
2924
  wheels = [
2925
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:43b35116802c85fb88d99f4a396b8bd4472bfca1dd82e69499e5a4f9b8b4e252", upload-time = "2026-03-23T15:16:58Z" },
2926
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:442ec9dc78592564fdad69cf0beaa9da2f82ab810ccb4f13903869a90bf3f15d", upload-time = "2026-03-23T15:17:02Z" },
2927
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cc3a195701bba2239c313ee311487f80f8aaebe9e89b9073dddbcf2f93b5a0ba", upload-time = "2026-03-23T15:17:06Z" },
2928
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:072a0d6e4865e8b0dc0dbfe6ebed68fae235124222835ef03e5814d414d8c012", upload-time = "2026-03-23T15:17:10Z" },
2929
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:23ec7789017da9d95b6d543d790814785e6f30905c5443efa8257d1490d73f79", upload-time = "2026-03-23T15:17:14Z" },
2925
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:d2dd0f2c5f7ccbddaf34cade0deaf476808368f902b9cdb7f36a2ab42301bc0e", upload-time = "2026-06-17T15:44:03Z" },
2926
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:c75e93173c700bccd6bfcc4a9d19ce242ab6dacd1f1781483027a16239b9e650", upload-time = "2026-06-17T15:44:09Z" },
2927
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:e9b6f7d2dd66ea87a3ae620069d31335d594c06effb1a383bdd21cfe61e44ece", upload-time = "2026-06-17T15:44:16Z" },
2928
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:2afbb2bdaa8a95040e733f05492ddf133c3967c9b7ce0abd218d704b6cab437d", upload-time = "2026-06-17T15:44:24Z" },
2930
2929
  ]
2931
2930
 
2932
2931
  [[package]]
2933
2932
  name = "torch"
2934
- version = "2.11.0+cpu"
2933
+ version = "2.12.1+cpu"
2935
2934
  source = { registry = "https://download.pytorch.org/whl/cpu" }
2936
2935
  resolution-markers = [
2937
2936
  "python_full_version >= '3.13' and sys_platform != 'darwin'",
@@ -2947,26 +2946,22 @@ dependencies = [
2947
2946
  { name = "typing-extensions", marker = "sys_platform != 'darwin'" },
2948
2947
  ]
2949
2948
  wheels = [
2950
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-linux_s390x.whl", hash = "sha256:2db3ae5404e32cb42b5fcbd94f13607761eaec0cf1687fde95095289d1e26cfb", upload-time = "2026-04-28T00:06:06Z" },
2951
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:70ecb2659af6373b7c5336e692e665605b0201ea21ff51aaea47e1d75ea6b5aa", upload-time = "2026-04-28T00:06:14Z" },
2952
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f82e2ae20c1545bb03997d1cc3143d94e14b800038669ee1aca45808a9acc338", upload-time = "2026-04-28T00:06:24Z" },
2953
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:1abeaa46fa7532ed35ed79146f4de5d7a9d4b30462c98052ea4ddfe781ea3eca", upload-time = "2026-04-28T00:06:34Z" },
2954
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-linux_s390x.whl", hash = "sha256:d1eff25ccc454faf21c9666c81bfab8e405e87c12d300708d4559620bc191a36", upload-time = "2026-04-28T00:06:42Z" },
2955
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:48b3e21a311445acdd0b27f13830e21d93adef70d4721e051e9f059baeb9b8f9", upload-time = "2026-04-28T00:06:51Z" },
2956
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:45025d7752dbc6b4c784c03afaee9c5f19730ce084b2e43fc9a2fe1677d9ff86", upload-time = "2026-04-28T00:07:02Z" },
2957
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:ed70d4a4fc9f8b826c02fa1a9800a83820fb2fa6ae607680b53390f9ef394d85", upload-time = "2026-04-28T00:07:12Z" },
2958
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-linux_s390x.whl", hash = "sha256:65d427a196ab0abe359b93c5bffedd76ded02df2b1b1d2d9f11a2609b69f426a", upload-time = "2026-04-28T00:07:19Z" },
2959
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8f13dc7075ae04ca5f876a9f40b4e47522a04c23e30824b4409f42a3f3e57aa4", upload-time = "2026-04-28T00:07:27Z" },
2960
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8713bb8679376ea0ec25742100b6cfb8447e0904c48bddefb9eb0ac1abbfa60a", upload-time = "2026-04-28T00:07:37Z" },
2961
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-win_amd64.whl", hash = "sha256:62ec1f1694c185f601eab74eb7fc0e8e10c64c06ae82f13c3592774c231c4877", upload-time = "2026-04-28T00:07:47Z" },
2962
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314-linux_s390x.whl", hash = "sha256:c9a14c367f470623b978e273a4e1915995b4ba7a0ae999178b06c273eea3536f", upload-time = "2026-04-28T00:07:54Z" },
2963
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:71676f6a9a84bbd385e010198b51fa1c2324fb8f3c512a32d2c81af65f68f4c9", upload-time = "2026-04-28T00:08:02Z" },
2964
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:f8481ea9088e4e5b81178a75aabdbb658bde8639bc1a15fd5d8f930abc966735", upload-time = "2026-04-28T00:08:11Z" },
2965
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314-win_amd64.whl", hash = "sha256:7575af4c9f7f7500ed62b1dafeb069aa0ba35b368a5f09793b3976b3d50f4fe4", upload-time = "2026-04-28T00:08:20Z" },
2966
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314t-linux_s390x.whl", hash = "sha256:825f1596878280a3a4c861441674888bc2d792e4ab7b045cb35feeab3f4f5dd7", upload-time = "2026-04-28T00:08:27Z" },
2967
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c8a0bdfb2fd915b6c2cd27c856f63f729c366a4917772eba6b2b02aa3bce70d5", upload-time = "2026-04-28T00:08:36Z" },
2968
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:768f22924a25cad2adeb9c6cbac5159e71067c8d4019b1511960d7435a5ca652", upload-time = "2026-04-28T00:08:47Z" },
2969
- { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp314-cp314t-win_amd64.whl", hash = "sha256:6db45e7b2526d996fbf47c3d08737807a60a4e17996a6d91a97027fe260832c8", upload-time = "2026-04-28T00:08:57Z" },
2949
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp312-cp312-linux_s390x.whl", hash = "sha256:900b253fc8c739bebffb63d7f75abff4cd53d79947265a00c16cb53b68ecdb91", upload-time = "2026-06-18T01:57:23Z" },
2950
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d1620bc7bcf8087f3e48821b5db994a03e32ddb083d58c000b8e032f8a6e2d15", upload-time = "2026-06-18T01:57:29Z" },
2951
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ae4bb28409f5370852bd71af221066236c38d647f780d9b0a7240c330a9c12df", upload-time = "2026-06-18T01:57:35Z" },
2952
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:51c6c6e26eaa0d64ed439ebdc9ce3b8cc2d5cfcc7cdd4e72f17831d80886b7f4", upload-time = "2026-06-18T01:57:42Z" },
2953
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp313-cp313-linux_s390x.whl", hash = "sha256:4ca206a35f2aeba7da944a69ef857103358e8d4bc6b06b49b9e554dcfa57777d", upload-time = "2026-06-18T01:57:47Z" },
2954
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:8d47e0cfc59679d4e367646c3df4cf433c7d1595b31307e0e7b2391c58ca2160", upload-time = "2026-06-18T01:57:52Z" },
2955
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:77d049968c7817456dbdebf0aadcac0813e302218b0e857a8723463331339d55", upload-time = "2026-06-18T01:57:59Z" },
2956
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:06d13c354df07953ae0d150da22a071496cbbedd22d1b644961813c0f0fc3b23", upload-time = "2026-06-18T01:58:05Z" },
2957
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314-linux_s390x.whl", hash = "sha256:ef228ec70f5e73762c213f145c0fdb672e5770a6de760801c58b933b0d5b6957", upload-time = "2026-06-18T01:58:09Z" },
2958
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:1b9ad70d0a300d6bd883fffc153a6c0f9bc64bf4190519aeeed0373807bffbcc", upload-time = "2026-06-18T01:58:15Z" },
2959
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:618120d79360688595e61162147d37e1d69fc3f2e13d60584a1eb6a74c74735a", upload-time = "2026-06-18T01:58:22Z" },
2960
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314-win_amd64.whl", hash = "sha256:6354069774ce2d9c26d6d8612fc252586428467b7e4ced7c8bbbfb961fafb783", upload-time = "2026-06-18T01:58:29Z" },
2961
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314t-linux_s390x.whl", hash = "sha256:0706eb7b53c4b1381b2acc418f6d89d6ed18a308677125ced7ca30519c57dc42", upload-time = "2026-06-18T01:58:33Z" },
2962
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:21ed774c10a0fd24ab2cfaabfa98a9260fc28d518946c98c0151b6e447730250", upload-time = "2026-06-18T01:58:39Z" },
2963
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:e3c3b5c275dd57cff1aa34a0ab8f84beab8976c63c8dc1d84f29430eac0590ea", upload-time = "2026-06-18T01:58:46Z" },
2964
+ { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.12.1%2Bcpu-cp314-cp314t-win_amd64.whl", hash = "sha256:03094411b20e85a221125a332211d59c099dc556afb1423e04193fcf1b4c1cbd", upload-time = "2026-06-18T01:58:52Z" },
2970
2965
  ]
2971
2966
 
2972
2967
  [[package]]
@@ -3057,7 +3052,7 @@ wheels = [
3057
3052
 
3058
3053
  [[package]]
3059
3054
  name = "ummaya"
3060
- version = "0.2.5"
3055
+ version = "0.2.6"
3061
3056
  source = { editable = "." }
3062
3057
  dependencies = [
3063
3058
  { name = "defusedxml" },
@@ -3083,8 +3078,8 @@ dependencies = [
3083
3078
  { name = "rank-bm25" },
3084
3079
  { name = "rich" },
3085
3080
  { name = "sentence-transformers" },
3086
- { name = "torch", version = "2.11.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
3087
- { name = "torch", version = "2.11.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
3081
+ { name = "torch", version = "2.12.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
3082
+ { name = "torch", version = "2.12.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
3088
3083
  { name = "typer" },
3089
3084
  { name = "unhwp" },
3090
3085
  ]