omni-cortex 1.8.0__py3-none-any.whl → 1.10.0__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.
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/main.py +196 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/models.py +49 -15
- {omni_cortex-1.8.0.dist-info → omni_cortex-1.10.0.dist-info}/METADATA +1 -1
- omni_cortex-1.10.0.dist-info/RECORD +25 -0
- omni_cortex-1.8.0.dist-info/RECORD +0 -25
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/.env.example +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/backfill_summaries.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/chat_service.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/database.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/image_service.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/logging_config.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/project_config.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/project_scanner.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/prompt_security.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/pyproject.toml +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/security.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/uv.lock +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/websocket_manager.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/post_tool_use.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/pre_tool_use.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/session_utils.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/stop.py +0 -0
- {omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/subagent_stop.py +0 -0
- {omni_cortex-1.8.0.dist-info → omni_cortex-1.10.0.dist-info}/WHEEL +0 -0
- {omni_cortex-1.8.0.dist-info → omni_cortex-1.10.0.dist-info}/entry_points.txt +0 -0
- {omni_cortex-1.8.0.dist-info → omni_cortex-1.10.0.dist-info}/licenses/LICENSE +0 -0
{omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/main.py
RENAMED
|
@@ -58,6 +58,10 @@ from database import (
|
|
|
58
58
|
)
|
|
59
59
|
from logging_config import log_success, log_error
|
|
60
60
|
from models import (
|
|
61
|
+
AggregateChatRequest,
|
|
62
|
+
AggregateMemoryRequest,
|
|
63
|
+
AggregateStatsRequest,
|
|
64
|
+
AggregateStatsResponse,
|
|
61
65
|
ChatRequest,
|
|
62
66
|
ChatResponse,
|
|
63
67
|
ConversationSaveRequest,
|
|
@@ -348,6 +352,198 @@ async def refresh_projects():
|
|
|
348
352
|
return {"count": len(projects)}
|
|
349
353
|
|
|
350
354
|
|
|
355
|
+
# --- Aggregate Multi-Project Endpoints ---
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
@app.post("/api/aggregate/memories")
|
|
359
|
+
@rate_limit("50/minute")
|
|
360
|
+
async def get_aggregate_memories(request: AggregateMemoryRequest):
|
|
361
|
+
"""Get memories from multiple projects with project attribution."""
|
|
362
|
+
try:
|
|
363
|
+
all_memories = []
|
|
364
|
+
filters = request.filters or FilterParams()
|
|
365
|
+
|
|
366
|
+
for project_path in request.projects:
|
|
367
|
+
if not Path(project_path).exists():
|
|
368
|
+
continue
|
|
369
|
+
|
|
370
|
+
try:
|
|
371
|
+
memories = get_memories(project_path, filters)
|
|
372
|
+
# Add project attribution to each memory
|
|
373
|
+
for m in memories:
|
|
374
|
+
m_dict = m.model_dump()
|
|
375
|
+
m_dict['source_project'] = project_path
|
|
376
|
+
# Extract project name from path
|
|
377
|
+
project_dir = Path(project_path).parent
|
|
378
|
+
m_dict['source_project_name'] = project_dir.name
|
|
379
|
+
all_memories.append(m_dict)
|
|
380
|
+
except Exception as e:
|
|
381
|
+
log_error(f"/api/aggregate/memories (project: {project_path})", e)
|
|
382
|
+
continue
|
|
383
|
+
|
|
384
|
+
# Sort by last_accessed or created_at
|
|
385
|
+
all_memories.sort(
|
|
386
|
+
key=lambda x: x.get('last_accessed') or x.get('created_at') or '',
|
|
387
|
+
reverse=True
|
|
388
|
+
)
|
|
389
|
+
|
|
390
|
+
# Apply pagination
|
|
391
|
+
start = filters.offset
|
|
392
|
+
end = start + filters.limit
|
|
393
|
+
return all_memories[start:end]
|
|
394
|
+
except Exception as e:
|
|
395
|
+
log_error("/api/aggregate/memories", e)
|
|
396
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
@app.post("/api/aggregate/stats", response_model=AggregateStatsResponse)
|
|
400
|
+
@rate_limit("50/minute")
|
|
401
|
+
async def get_aggregate_stats(request: AggregateStatsRequest):
|
|
402
|
+
"""Get combined statistics across multiple projects."""
|
|
403
|
+
try:
|
|
404
|
+
total_count = 0
|
|
405
|
+
total_access = 0
|
|
406
|
+
importance_sum = 0
|
|
407
|
+
by_type = {}
|
|
408
|
+
by_status = {}
|
|
409
|
+
|
|
410
|
+
for project_path in request.projects:
|
|
411
|
+
if not Path(project_path).exists():
|
|
412
|
+
continue
|
|
413
|
+
|
|
414
|
+
try:
|
|
415
|
+
stats = get_memory_stats(project_path)
|
|
416
|
+
total_count += stats.get('total_count', 0)
|
|
417
|
+
total_access += stats.get('total_access_count', 0)
|
|
418
|
+
|
|
419
|
+
# Weighted average for importance
|
|
420
|
+
project_count = stats.get('total_count', 0)
|
|
421
|
+
project_avg_importance = stats.get('avg_importance', 0)
|
|
422
|
+
importance_sum += project_avg_importance * project_count
|
|
423
|
+
|
|
424
|
+
# Aggregate by_type
|
|
425
|
+
for type_name, count in stats.get('by_type', {}).items():
|
|
426
|
+
by_type[type_name] = by_type.get(type_name, 0) + count
|
|
427
|
+
|
|
428
|
+
# Aggregate by_status
|
|
429
|
+
for status, count in stats.get('by_status', {}).items():
|
|
430
|
+
by_status[status] = by_status.get(status, 0) + count
|
|
431
|
+
except Exception as e:
|
|
432
|
+
log_error(f"/api/aggregate/stats (project: {project_path})", e)
|
|
433
|
+
continue
|
|
434
|
+
|
|
435
|
+
return AggregateStatsResponse(
|
|
436
|
+
total_count=total_count,
|
|
437
|
+
total_access_count=total_access,
|
|
438
|
+
avg_importance=round(importance_sum / total_count, 1) if total_count > 0 else 0,
|
|
439
|
+
by_type=by_type,
|
|
440
|
+
by_status=by_status,
|
|
441
|
+
project_count=len(request.projects),
|
|
442
|
+
)
|
|
443
|
+
except Exception as e:
|
|
444
|
+
log_error("/api/aggregate/stats", e)
|
|
445
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
@app.post("/api/aggregate/tags")
|
|
449
|
+
@rate_limit("50/minute")
|
|
450
|
+
async def get_aggregate_tags(request: AggregateStatsRequest):
|
|
451
|
+
"""Get combined tags across multiple projects."""
|
|
452
|
+
try:
|
|
453
|
+
tag_counts = {}
|
|
454
|
+
|
|
455
|
+
for project_path in request.projects:
|
|
456
|
+
if not Path(project_path).exists():
|
|
457
|
+
continue
|
|
458
|
+
|
|
459
|
+
try:
|
|
460
|
+
tags = get_all_tags(project_path)
|
|
461
|
+
for tag in tags:
|
|
462
|
+
tag_name = tag['name']
|
|
463
|
+
tag_counts[tag_name] = tag_counts.get(tag_name, 0) + tag['count']
|
|
464
|
+
except Exception as e:
|
|
465
|
+
log_error(f"/api/aggregate/tags (project: {project_path})", e)
|
|
466
|
+
continue
|
|
467
|
+
|
|
468
|
+
# Return sorted by count
|
|
469
|
+
return sorted(
|
|
470
|
+
[{'name': k, 'count': v} for k, v in tag_counts.items()],
|
|
471
|
+
key=lambda x: x['count'],
|
|
472
|
+
reverse=True
|
|
473
|
+
)
|
|
474
|
+
except Exception as e:
|
|
475
|
+
log_error("/api/aggregate/tags", e)
|
|
476
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
@app.post("/api/aggregate/chat", response_model=ChatResponse)
|
|
480
|
+
@rate_limit("10/minute")
|
|
481
|
+
async def chat_across_projects(request: AggregateChatRequest):
|
|
482
|
+
"""Ask AI about memories across multiple projects."""
|
|
483
|
+
try:
|
|
484
|
+
if not chat_service.is_available():
|
|
485
|
+
raise HTTPException(
|
|
486
|
+
status_code=503,
|
|
487
|
+
detail="Chat service not available. Set GEMINI_API_KEY environment variable."
|
|
488
|
+
)
|
|
489
|
+
|
|
490
|
+
all_sources = []
|
|
491
|
+
|
|
492
|
+
# Gather relevant memories from each project
|
|
493
|
+
for project_path in request.projects:
|
|
494
|
+
if not Path(project_path).exists():
|
|
495
|
+
continue
|
|
496
|
+
|
|
497
|
+
try:
|
|
498
|
+
memories = search_memories(
|
|
499
|
+
project_path,
|
|
500
|
+
request.question,
|
|
501
|
+
limit=request.max_memories_per_project
|
|
502
|
+
)
|
|
503
|
+
|
|
504
|
+
for m in memories:
|
|
505
|
+
project_dir = Path(project_path).parent
|
|
506
|
+
source = {
|
|
507
|
+
'id': m.id,
|
|
508
|
+
'type': m.memory_type,
|
|
509
|
+
'content_preview': m.content[:200],
|
|
510
|
+
'tags': m.tags,
|
|
511
|
+
'project_path': project_path,
|
|
512
|
+
'project_name': project_dir.name,
|
|
513
|
+
}
|
|
514
|
+
all_sources.append(source)
|
|
515
|
+
except Exception as e:
|
|
516
|
+
log_error(f"/api/aggregate/chat (project: {project_path})", e)
|
|
517
|
+
continue
|
|
518
|
+
|
|
519
|
+
if not all_sources:
|
|
520
|
+
return ChatResponse(
|
|
521
|
+
answer="No relevant memories found across the selected projects.",
|
|
522
|
+
sources=[],
|
|
523
|
+
)
|
|
524
|
+
|
|
525
|
+
# Build context with project attribution
|
|
526
|
+
context = "\n\n".join([
|
|
527
|
+
f"[From: {s['project_name']}] {s['content_preview']}"
|
|
528
|
+
for s in all_sources
|
|
529
|
+
])
|
|
530
|
+
|
|
531
|
+
# Query AI with attributed context
|
|
532
|
+
answer = await chat_service.generate_response(request.question, context)
|
|
533
|
+
|
|
534
|
+
log_success("/api/aggregate/chat", projects=len(request.projects), sources=len(all_sources))
|
|
535
|
+
|
|
536
|
+
return ChatResponse(
|
|
537
|
+
answer=answer,
|
|
538
|
+
sources=[ChatSource(**s) for s in all_sources],
|
|
539
|
+
)
|
|
540
|
+
except HTTPException:
|
|
541
|
+
raise
|
|
542
|
+
except Exception as e:
|
|
543
|
+
log_error("/api/aggregate/chat", e)
|
|
544
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
545
|
+
|
|
546
|
+
|
|
351
547
|
@app.get("/api/memories")
|
|
352
548
|
@rate_limit("100/minute")
|
|
353
549
|
async def list_memories(
|
|
@@ -70,6 +70,53 @@ class MemoryStats(BaseModel):
|
|
|
70
70
|
tags: list[dict[str, int | str]]
|
|
71
71
|
|
|
72
72
|
|
|
73
|
+
class FilterParams(BaseModel):
|
|
74
|
+
"""Query filter parameters."""
|
|
75
|
+
|
|
76
|
+
memory_type: Optional[str] = None
|
|
77
|
+
status: Optional[str] = None
|
|
78
|
+
tags: Optional[list[str]] = None
|
|
79
|
+
search: Optional[str] = None
|
|
80
|
+
min_importance: Optional[int] = None
|
|
81
|
+
max_importance: Optional[int] = None
|
|
82
|
+
sort_by: str = "last_accessed"
|
|
83
|
+
sort_order: str = "desc"
|
|
84
|
+
limit: int = 50
|
|
85
|
+
offset: int = 0
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class AggregateMemoryRequest(BaseModel):
|
|
89
|
+
"""Request for aggregate memory data across projects."""
|
|
90
|
+
|
|
91
|
+
projects: list[str] = Field(..., description="List of project db paths")
|
|
92
|
+
filters: Optional[FilterParams] = None
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class AggregateStatsRequest(BaseModel):
|
|
96
|
+
"""Request for aggregate statistics."""
|
|
97
|
+
|
|
98
|
+
projects: list[str] = Field(..., description="List of project db paths")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class AggregateStatsResponse(BaseModel):
|
|
102
|
+
"""Aggregate statistics across multiple projects."""
|
|
103
|
+
|
|
104
|
+
total_count: int
|
|
105
|
+
total_access_count: int
|
|
106
|
+
avg_importance: float
|
|
107
|
+
by_type: dict[str, int]
|
|
108
|
+
by_status: dict[str, int]
|
|
109
|
+
project_count: int
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class AggregateChatRequest(BaseModel):
|
|
113
|
+
"""Request for chat across multiple projects."""
|
|
114
|
+
|
|
115
|
+
projects: list[str] = Field(..., description="List of project db paths")
|
|
116
|
+
question: str = Field(..., min_length=1, max_length=2000)
|
|
117
|
+
max_memories_per_project: int = Field(default=5, ge=1, le=20)
|
|
118
|
+
|
|
119
|
+
|
|
73
120
|
class Activity(BaseModel):
|
|
74
121
|
"""Activity log record."""
|
|
75
122
|
|
|
@@ -113,21 +160,6 @@ class TimelineEntry(BaseModel):
|
|
|
113
160
|
data: dict
|
|
114
161
|
|
|
115
162
|
|
|
116
|
-
class FilterParams(BaseModel):
|
|
117
|
-
"""Query filter parameters."""
|
|
118
|
-
|
|
119
|
-
memory_type: Optional[str] = None
|
|
120
|
-
status: Optional[str] = None
|
|
121
|
-
tags: Optional[list[str]] = None
|
|
122
|
-
search: Optional[str] = None
|
|
123
|
-
min_importance: Optional[int] = None
|
|
124
|
-
max_importance: Optional[int] = None
|
|
125
|
-
sort_by: str = "last_accessed"
|
|
126
|
-
sort_order: str = "desc"
|
|
127
|
-
limit: int = 50
|
|
128
|
-
offset: int = 0
|
|
129
|
-
|
|
130
|
-
|
|
131
163
|
class MemoryCreateRequest(BaseModel):
|
|
132
164
|
"""Create request for a new memory."""
|
|
133
165
|
|
|
@@ -173,6 +205,8 @@ class ChatSource(BaseModel):
|
|
|
173
205
|
type: str
|
|
174
206
|
content_preview: str
|
|
175
207
|
tags: list[str]
|
|
208
|
+
project_path: Optional[str] = None
|
|
209
|
+
project_name: Optional[str] = None
|
|
176
210
|
|
|
177
211
|
|
|
178
212
|
class ChatResponse(BaseModel):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omni-cortex
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.10.0
|
|
4
4
|
Summary: Give Claude Code a perfect memory - auto-logs everything, searches smartly, and gets smarter over time
|
|
5
5
|
Project-URL: Homepage, https://github.com/AllCytes/Omni-Cortex
|
|
6
6
|
Project-URL: Repository, https://github.com/AllCytes/Omni-Cortex
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/hooks/post_tool_use.py,sha256=yBLoYvEdUunbG8fclzIEWszCptworkUUcOUSKzNsvms,12271
|
|
2
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/hooks/pre_tool_use.py,sha256=mkZ7eeBnjWkIgNnrqfYSXIhhLNYYk4hQx_6F0pNrGoc,6395
|
|
3
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/hooks/session_utils.py,sha256=3SKPCytqWuRPOupWdzmwBoKBDJqtLcT1Nle_pueDQUY,5746
|
|
4
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/hooks/stop.py,sha256=T1bwcmbTLj0gzjrVvFBT1zB6wff4J2YkYBAY-ZxZI5g,5336
|
|
5
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/hooks/subagent_stop.py,sha256=V9HQSFGNOfkg8ZCstPEy4h5V8BP4AbrVr8teFzN1kNk,3314
|
|
6
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/.env.example,sha256=9xS7-UiWlMddRwzlyyyKNHAMlNTsgH-2sPV266guJpQ,372
|
|
7
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/backfill_summaries.py,sha256=ElchfcBv4pmVr2PsePCgFlCyuvf4_jDJj_C3AmMhu7U,8973
|
|
8
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/chat_service.py,sha256=5UCvLayZGeSdGsYAzOeupumclAhoFLusGYLdyl33ANc,9304
|
|
9
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/database.py,sha256=LAN7GSM2tvMcJaL0RrGJurH9-tw3cs2QtPduqCbLvj0,34974
|
|
10
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/image_service.py,sha256=NP6ojFpHb6iNTYRkXqYu1CL6WvooZpZ54mjLiWSWG_g,19205
|
|
11
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/logging_config.py,sha256=WnunFGET9zlsn9WBpVsio2zI7BiUQanE0xzAQQxIhII,3944
|
|
12
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/main.py,sha256=te93eB3-CBYyuEVDNXZIuAdN3KPDS2D3ijBcd6h9b04,46228
|
|
13
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/models.py,sha256=LkmcYq1imsyDlMYnX3Z_FOTmPsu37MQEfJSI-w5EjvM,7330
|
|
14
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/project_config.py,sha256=ZxGoeRpHvN5qQyf2hRxrAZiHrPSwdQp59f0di6O1LKM,4352
|
|
15
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/project_scanner.py,sha256=lwFXS8iJbOoxf7FAyo2TjH25neaMHiJ8B3jS57XxtDI,5713
|
|
16
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/prompt_security.py,sha256=LcdZhYy1CfpSq_4BPO6lMJ15phc2ZXLUSBAnAvODVCI,3423
|
|
17
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/pyproject.toml,sha256=9pbbGQXLe1Xd06nZAtDySCHIlfMWvPaB-C6tGZR6umc,502
|
|
18
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/security.py,sha256=nQsoPE0n5dtY9ive00d33W1gL48GgK7C5Ae0BK2oW2k,3479
|
|
19
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/uv.lock,sha256=miB9zGGSirBkjDE-OZTPCnv43Yc98xuAz_Ne8vTNFHg,186004
|
|
20
|
+
omni_cortex-1.10.0.data/data/share/omni-cortex/dashboard/backend/websocket_manager.py,sha256=ABXAtlhBI5vnTcwdQUS-UQcDyTn-rWZL5OKEP9YY-kU,3619
|
|
21
|
+
omni_cortex-1.10.0.dist-info/METADATA,sha256=LFZ8yYIQQf71mCtJ-MW76Wi81y4tGwsMLAR1qpL97mw,15712
|
|
22
|
+
omni_cortex-1.10.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
23
|
+
omni_cortex-1.10.0.dist-info/entry_points.txt,sha256=rohx4mFH2ffZmMb9QXPZmFf-ZGjA3jpKVDVeET-ttiM,150
|
|
24
|
+
omni_cortex-1.10.0.dist-info/licenses/LICENSE,sha256=oG_397owMmi-Umxp5sYocJ6RPohp9_bDNnnEu9OUphg,1072
|
|
25
|
+
omni_cortex-1.10.0.dist-info/RECORD,,
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/hooks/post_tool_use.py,sha256=yBLoYvEdUunbG8fclzIEWszCptworkUUcOUSKzNsvms,12271
|
|
2
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/hooks/pre_tool_use.py,sha256=mkZ7eeBnjWkIgNnrqfYSXIhhLNYYk4hQx_6F0pNrGoc,6395
|
|
3
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/hooks/session_utils.py,sha256=3SKPCytqWuRPOupWdzmwBoKBDJqtLcT1Nle_pueDQUY,5746
|
|
4
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/hooks/stop.py,sha256=T1bwcmbTLj0gzjrVvFBT1zB6wff4J2YkYBAY-ZxZI5g,5336
|
|
5
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/hooks/subagent_stop.py,sha256=V9HQSFGNOfkg8ZCstPEy4h5V8BP4AbrVr8teFzN1kNk,3314
|
|
6
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/.env.example,sha256=9xS7-UiWlMddRwzlyyyKNHAMlNTsgH-2sPV266guJpQ,372
|
|
7
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/backfill_summaries.py,sha256=ElchfcBv4pmVr2PsePCgFlCyuvf4_jDJj_C3AmMhu7U,8973
|
|
8
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/chat_service.py,sha256=5UCvLayZGeSdGsYAzOeupumclAhoFLusGYLdyl33ANc,9304
|
|
9
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/database.py,sha256=LAN7GSM2tvMcJaL0RrGJurH9-tw3cs2QtPduqCbLvj0,34974
|
|
10
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/image_service.py,sha256=NP6ojFpHb6iNTYRkXqYu1CL6WvooZpZ54mjLiWSWG_g,19205
|
|
11
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/logging_config.py,sha256=WnunFGET9zlsn9WBpVsio2zI7BiUQanE0xzAQQxIhII,3944
|
|
12
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/main.py,sha256=I0qNCQWOssdjlvBYDQuFpThMLWmTTl8Dk5DBoUeWpl0,39240
|
|
13
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/models.py,sha256=W9NQki5fcbW_1fFkKq4PKbpyP650w1IRBf-wI6AZ8Iw,6306
|
|
14
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/project_config.py,sha256=ZxGoeRpHvN5qQyf2hRxrAZiHrPSwdQp59f0di6O1LKM,4352
|
|
15
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/project_scanner.py,sha256=lwFXS8iJbOoxf7FAyo2TjH25neaMHiJ8B3jS57XxtDI,5713
|
|
16
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/prompt_security.py,sha256=LcdZhYy1CfpSq_4BPO6lMJ15phc2ZXLUSBAnAvODVCI,3423
|
|
17
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/pyproject.toml,sha256=9pbbGQXLe1Xd06nZAtDySCHIlfMWvPaB-C6tGZR6umc,502
|
|
18
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/security.py,sha256=nQsoPE0n5dtY9ive00d33W1gL48GgK7C5Ae0BK2oW2k,3479
|
|
19
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/uv.lock,sha256=miB9zGGSirBkjDE-OZTPCnv43Yc98xuAz_Ne8vTNFHg,186004
|
|
20
|
-
omni_cortex-1.8.0.data/data/share/omni-cortex/dashboard/backend/websocket_manager.py,sha256=ABXAtlhBI5vnTcwdQUS-UQcDyTn-rWZL5OKEP9YY-kU,3619
|
|
21
|
-
omni_cortex-1.8.0.dist-info/METADATA,sha256=46lCMHifPAfU3ilvpKC9hygJMy4StmB2IBdNrR0x2g8,15711
|
|
22
|
-
omni_cortex-1.8.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
23
|
-
omni_cortex-1.8.0.dist-info/entry_points.txt,sha256=rohx4mFH2ffZmMb9QXPZmFf-ZGjA3jpKVDVeET-ttiM,150
|
|
24
|
-
omni_cortex-1.8.0.dist-info/licenses/LICENSE,sha256=oG_397owMmi-Umxp5sYocJ6RPohp9_bDNnnEu9OUphg,1072
|
|
25
|
-
omni_cortex-1.8.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/dashboard/backend/uv.lock
RENAMED
|
File without changes
|
|
File without changes
|
{omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/post_tool_use.py
RENAMED
|
File without changes
|
{omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/pre_tool_use.py
RENAMED
|
File without changes
|
{omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/session_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{omni_cortex-1.8.0.data → omni_cortex-1.10.0.data}/data/share/omni-cortex/hooks/subagent_stop.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|