Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
953fcaa
feat(backend): implement FastAPI backend with WebSocket ingest, Gemin…
kgand Sep 27, 2025
ce142fc
feat(agents): implement ADK agents with Memory Bank for conversation …
kgand Sep 27, 2025
bda981b
feat(revive): implement /revive API with Firestore and embedding-base…
kgand Sep 27, 2025
5a3ae3e
feat(infra): create setup scripts, Makefile, and Docker configuration…
kgand Sep 27, 2025
2ceab5b
feat(ui): modernize Chrome extension UI with professional design, Int…
kgand Sep 27, 2025
184960e
fix(ui): simplify Chrome extension UI with clean, accessible design u…
kgand Sep 27, 2025
f34c028
feat(testing): add comprehensive testing infrastructure with automate…
kgand Sep 27, 2025
33d834d
fix(dependencies): resolve import errors and create simplified backen…
kgand Sep 27, 2025
e33dc22
fix(networking): update server configuration to use 127.0.0.1 instead…
kgand Sep 27, 2025
97a43e2
feat(backend): create full backend with mock services for complete fu…
kgand Sep 27, 2025
34ee280
fix(backend): implement functional mock services in simplified backen…
kgand Sep 27, 2025
9ae231b
fix(env): update scripts to load .env file from assist folder and mak…
kgand Sep 27, 2025
bb5b4c4
fix(ui): completely rebuild Chrome extension UI with proper TypeScrip…
kgand Sep 27, 2025
18ccf61
fix(scripts): resolve NameError in start-system.py by fixing os modul…
kgand Sep 27, 2025
1190c8d
refactor: clean up codebase - remove unnecessary files, create single…
kgand Sep 27, 2025
2c3d21e
fix(extension): add host permissions for localhost connection and imp…
kgand Sep 27, 2025
acbe087
fix(csp): remove external CSS/JS dependencies to comply with Chrome e…
kgand Sep 27, 2025
b0bf671
fix(extension): create standalone JavaScript file to resolve MIME typ…
kgand Sep 27, 2025
158137b
fix(websocket): correct WebSocket port from 8765 to 8000 and add debu…
kgand Sep 27, 2025
3d064e8
fix(extension): fix message passing between sidepanel, service worker…
kgand Sep 27, 2025
5887b99
fix(extension): fix MediaStream handling by using getUserMedia in off…
kgand Sep 27, 2025
0e3087d
feat(screen-capture): implement Python-based screen detection and cap…
kgand Sep 27, 2025
fa5961d
feat(screen-capture): add GUI interface and requirements for screen c…
kgand Sep 27, 2025
da71060
feat(integration): integrate screen capture with FastAPI backend and …
kgand Sep 27, 2025
762b7fa
feat(cleanup): remove Chrome extension implementation
kgand Sep 27, 2025
ac07dcb
docs(update): update all documentation and setup scripts for Python-b…
kgand Sep 27, 2025
9264d5d
feat(complete): add missing backend components - Gemini Live, schemas…
kgand Sep 27, 2025
b9ded36
chore(cleanup): remove unused files and outdated documentation
kgand Sep 27, 2025
0d3c1c5
fix(dependencies): make PyAudio optional and fix import issues in scr…
kgand Sep 27, 2025
7b6fabb
fix(capture): resolve threading issues and create professional GUI
kgand Sep 27, 2025
28b8a98
fix(gui): add missing selected_window attribute to ScreenDetector class
kgand Sep 27, 2025
ff8357d
perf(optimization): fix method signature and optimize system performance
kgand Sep 27, 2025
9e80ea5
fix: resolve async/await issues in GUI screen capture
kgand Sep 27, 2025
209b21b
feat: optimize screen capture performance and error handling
kgand Sep 27, 2025
3ba882f
test: add comprehensive test suite and update dependencies
kgand Sep 27, 2025
de0bbb7
docs: add comprehensive README for screen capture system
kgand Sep 27, 2025
63787ac
fix: resolve WebSocket connection NoneType error
kgand Sep 27, 2025
0e23152
feat: implement simplified screen capture system
kgand Sep 27, 2025
fda3325
feat: optimize capture system performance
kgand Sep 27, 2025
a0bbcb7
fix: update Makefile and launcher for new system
kgand Sep 27, 2025
2e5cab4
fix: resolve critical audio and screen capture issues
kgand Sep 27, 2025
c2d0c78
feat: improve video capture and add AI integration testing
kgand Sep 27, 2025
a71fa16
Fix 404 error, blue tint, dimensions, and auto-processing integration
kgand Sep 27, 2025
cccf04c
Improve captured files processing integration
kgand Sep 27, 2025
9d41d11
refactor: major codebase cleanup and restructuring
kgand Sep 27, 2025
58e02ac
feat: implement interactive cropping system and process management
kgand Sep 27, 2025
ebf7e89
feat: Add Ollama integration for real-time VLM/LLM analysis
kgand Sep 27, 2025
cf078cd
feat: Add audio processing and transcription functionality
kgand Sep 27, 2025
c4528f7
feat: Add comprehensive summarization service
kgand Sep 27, 2025
b6578a6
feat: Complete Ollama integration with GUI and testing
kgand Sep 27, 2025
eaebf86
feat: Finalize Ollama integration implementation
kgand Sep 27, 2025
cbf39fa
docs: Add comprehensive Ollama integration documentation
kgand Sep 27, 2025
376588b
feat: update OLLAMA models to gemma3:4b and qwen3:8b
kgand Sep 27, 2025
abe4426
refactor: clean up unused files and directories
kgand Sep 27, 2025
8b1d49a
docs: update README.md to reflect Ollama integration
kgand Sep 27, 2025
9e4a0b0
docs: update OLLAMA_INTEGRATION_README.md with new model configurations
kgand Sep 27, 2025
4b7d621
fix: resolve import error in realtime_analyzer.py
kgand Sep 27, 2025
eb2d82b
feat: Add cross-platform compatibility infrastructure
kgand Sep 27, 2025
accccf3
docs: Update documentation for cross-platform compatibility
kgand Sep 27, 2025
08d5171
fix: Resolve import errors in cross-platform utilities
kgand Sep 27, 2025
6ec25f6
remove: Remove cross-platform test functionality
kgand Sep 27, 2025
d6dd46c
fix: Resolve ModuleNotFoundError for utils imports
kgand Sep 27, 2025
f8e956c
fix: Resolve circular import by renaming utils screen_capture module
kgand Sep 27, 2025
53de511
feat: implement real-time model output display
kgand Sep 27, 2025
e9874ac
feat: enhance GUI with real-time output monitoring
kgand Sep 27, 2025
d9d3935
docs: update documentation for real-time output functionality
kgand Sep 27, 2025
c1c4125
fix: resolve real-time analysis issues and optimize GUI performance
kgand Sep 27, 2025
f924b14
test: add comprehensive real-time analysis test script
kgand Sep 27, 2025
f1986e2
fix: implement continuous processing and seamless capture integration
kgand Sep 27, 2025
ab665e6
game update
AntiiRain Sep 28, 2025
f47fda2
game 2nd update
AntiiRain Sep 28, 2025
ac18cda
feat: implement secure Google A2A ADK integration
kgand Sep 28, 2025
e78a8d7
feat: remove test frames
kgand Sep 28, 2025
d0383a2
feat: migrating mobile application
aaravbejjinki Sep 28, 2025
83ba7e9
Merge pull request #6 from kgand/feature/mobile-app
kaimcfarlane Sep 28, 2025
8dff669
feat: cleanup test audio input
kaimcfarlane Sep 28, 2025
ed234e1
feat: Add comprehensive cognitive assistance system for Alzheimer's s…
kgand Sep 28, 2025
361ef11
feat: Add comprehensive setup and testing infrastructure
kgand Sep 28, 2025
8bf5319
feat: Complete cognitive assistance system implementation
kgand Sep 28, 2025
e160a77
Merge pull request #7 from kgand/game
AntiiRain Nov 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
85 changes: 85 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Makefile for Messenger AI Assistant

.PHONY: help start dev gui install clean test setup kill kill-safe

# Default target
help:
@echo "Messenger AI Assistant - Available Commands:"
@echo ""
@echo " make start - Start the complete system (backend + GUI)"
@echo " make dev - Start backend server only"
@echo " make gui - Start screen capture GUI only"
@echo " make install - Install all dependencies"
@echo " make setup - Complete setup (install + test)"
@echo " make test - Test system components"
@echo " make kill - Kill all Python server processes"
@echo " make kill-safe - Kill server processes (excludes current)"
@echo " make clean - Clean build artifacts"
@echo ""

# Start complete system
start:
@echo "🚀 Starting Messenger AI Assistant..."
python start.py

# Development server only
dev:
@echo "🚀 Starting backend server..."
python assist/server/app.py

# Screen capture GUI only
gui:
@echo "🖥️ Starting screen capture GUI..."
python assist/screen_capture/gui.py

# Install dependencies
install:
@echo "📦 Installing dependencies..."
cd assist/server && pip install -r requirements.txt
cd assist/screen_capture && pip install -r requirements.txt
@echo "✅ Dependencies installed successfully"

# Complete setup
setup: install test
@echo "✅ Setup complete! Run 'make start' to begin"

# Test system components
test:
@echo "🧪 Testing system components..."
@echo "Testing backend..."
@cd assist/server && python -c "import app; print('✅ Backend imports successful')"
@echo "Testing screen capture..."
@cd assist/screen_capture && python -c "import screen_capture; print('✅ Screen capture imports successful')"
@echo "Testing GUI..."
@cd assist/screen_capture && python -c "import gui; print('✅ GUI imports successful')"
@echo "✅ All tests passed"

# Monitor system in real-time
monitor:
@echo "📊 Starting system monitor..."
python monitor_system.py

# Kill all Python server processes
kill:
@echo "🔪 Killing all Python server processes..."
@python kill_python_servers.py --yes --force
@echo "✅ Kill operation complete"

# Kill all Python server processes (safer - excludes current process)
kill-safe:
@echo "🔪 Killing Python server processes (safe mode)..."
@python -c "import psutil, os; killed=0; current_pid=os.getpid(); [killed := killed + 1 for p in psutil.process_iter(['pid', 'name', 'cmdline']) if p.info['pid'] != current_pid and 'python' in p.info['name'].lower() and any(k in ' '.join(p.info['cmdline']).lower() for k in ['app.py', 'server', 'fastapi', 'flask', 'django', 'uvicorn', 'screen_capture', 'gui.py', 'launcher.py', 'http.server']) and p.terminate()]; print(f'✅ Killed {killed} server processes')"
@echo "✅ Safe kill operation complete"

# Clean build artifacts
clean:
@echo "🧹 Cleaning build artifacts..."
rm -rf __pycache__
rm -rf .pytest_cache
rm -rf assist/__pycache__
rm -rf assist/server/__pycache__
rm -rf assist/screen_capture/__pycache__
rm -rf assist/screen_capture/capture_output
rm -rf assist/server/uploads
rm -rf assist/server/processed
@echo "✅ Cleanup complete"
Binary file added Memoray/.env.example
Binary file not shown.
14 changes: 14 additions & 0 deletions Memoray/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
node_modules/
.expo/
.expo-shared/
dist/
web-build/
android/
ios/
.env
*.keystore
google-services.json
GoogleService-Info.plist
.vscode/
.DS_Store
./server/serviceAccount.json
1 change: 1 addition & 0 deletions Memoray/.next/cache/.rscinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"encryption.key":"p+JkxLjEtm0MVvFY89J2cdqQd9LJ0z8weZS0/Goe2zs=","encryption.expire_at":1760251287648}
Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions Memoray/.next/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"type": "commonjs"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]"
19 changes: 19 additions & 0 deletions Memoray/.next/server/middleware-build-manifest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
globalThis.__BUILD_MANIFEST = {
"polyfillFiles": [
"static/chunks/polyfills.js"
],
"devFiles": [],
"ampDevFiles": [],
"lowPriorityFiles": [],
"rootMainFiles": [],
"rootMainFilesTree": {},
"pages": {
"/_app": []
},
"ampFirstPages": []
};
globalThis.__BUILD_MANIFEST.lowPriorityFiles = [
"/static/" + process.env.__NEXT_BUILD_ID + "/_buildManifest.js",
,"/static/" + process.env.__NEXT_BUILD_ID + "/_ssgManifest.js",

];
1 change: 1 addition & 0 deletions Memoray/.next/server/middleware-react-loadable-manifest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
self.__REACT_LOADABLE_MANIFEST="{}"
1 change: 1 addition & 0 deletions Memoray/.next/server/next-font-manifest.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Memoray/.next/server/server-reference-manifest.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Memoray/.next/static/chunks/polyfills.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions Memoray/.next/static/development/_buildManifest.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Memoray/.next/static/development/_ssgManifest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
3 changes: 3 additions & 0 deletions Memoray/.next/trace

Large diffs are not rendered by default.

141 changes: 141 additions & 0 deletions Memoray/.next/types/cache-life.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
// Type definitions for Next.js cacheLife configs

declare module 'next/cache' {
export { unstable_cache } from 'next/dist/server/web/spec-extension/unstable-cache'
export {
revalidateTag,
revalidatePath,
unstable_expireTag,
unstable_expirePath,
} from 'next/dist/server/web/spec-extension/revalidate'
export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store'


/**
* Cache this `"use cache"` for a timespan defined by the `"default"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 900 seconds (15 minutes)
* expire: never
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 15 minutes, start revalidating new values in the background.
* It lives for the maximum age of the server cache. If this entry has no traffic for a while, it may serve an old value the next request.
*/
export function unstable_cacheLife(profile: "default"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"seconds"` profile.
* ```
* stale: 30 seconds
* revalidate: 1 seconds
* expire: 60 seconds (1 minute)
* ```
*
* This cache may be stale on clients for 30 seconds before checking with the server.
* If the server receives a new request after 1 seconds, start revalidating new values in the background.
* If this entry has no traffic for 1 minute it will expire. The next request will recompute it.
*/
export function unstable_cacheLife(profile: "seconds"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"minutes"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 60 seconds (1 minute)
* expire: 3600 seconds (1 hour)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 minute, start revalidating new values in the background.
* If this entry has no traffic for 1 hour it will expire. The next request will recompute it.
*/
export function unstable_cacheLife(profile: "minutes"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"hours"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 3600 seconds (1 hour)
* expire: 86400 seconds (1 day)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 hour, start revalidating new values in the background.
* If this entry has no traffic for 1 day it will expire. The next request will recompute it.
*/
export function unstable_cacheLife(profile: "hours"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"days"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 86400 seconds (1 day)
* expire: 604800 seconds (1 week)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 day, start revalidating new values in the background.
* If this entry has no traffic for 1 week it will expire. The next request will recompute it.
*/
export function unstable_cacheLife(profile: "days"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"weeks"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 604800 seconds (1 week)
* expire: 2592000 seconds (30 days)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 week, start revalidating new values in the background.
* If this entry has no traffic for 30 days it will expire. The next request will recompute it.
*/
export function unstable_cacheLife(profile: "weeks"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"max"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 2592000 seconds (30 days)
* expire: never
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 30 days, start revalidating new values in the background.
* It lives for the maximum age of the server cache. If this entry has no traffic for a while, it may serve an old value the next request.
*/
export function unstable_cacheLife(profile: "max"): void

/**
* Cache this `"use cache"` using a custom timespan.
* ```
* stale: ... // seconds
* revalidate: ... // seconds
* expire: ... // seconds
* ```
*
* This is similar to Cache-Control: max-age=`stale`,s-max-age=`revalidate`,stale-while-revalidate=`expire-revalidate`
*
* If a value is left out, the lowest of other cacheLife() calls or the default, is used instead.
*/
export function unstable_cacheLife(profile: {
/**
* This cache may be stale on clients for ... seconds before checking with the server.
*/
stale?: number,
/**
* If the server receives a new request after ... seconds, start revalidating new values in the background.
*/
revalidate?: number,
/**
* If this entry has no traffic for ... seconds it will expire. The next request will recompute it.
*/
expire?: number
}): void


export { cacheTag as unstable_cacheTag } from 'next/dist/server/use-cache/cache-tag'
}
1 change: 1 addition & 0 deletions Memoray/.next/types/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"type": "module"}
55 changes: 55 additions & 0 deletions Memoray/.next/types/routes.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// This file is generated automatically by Next.js
// Do not edit this file manually

type AppRoutes = never
type PageRoutes = never
type LayoutRoutes = never
type RedirectRoutes = never
type RewriteRoutes = never
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes


interface ParamMap {
}


export type ParamsOf<Route extends Routes> = ParamMap[Route]

interface LayoutSlotMap {
}


export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap }

declare global {
/**
* Props for Next.js App Router page components
* @example
* ```tsx
* export default function Page(props: PageProps<'/blog/[slug]'>) {
* const { slug } = await props.params
* return <div>Blog post: {slug}</div>
* }
* ```
*/
interface PageProps<AppRoute extends AppRoutes> {
params: Promise<ParamMap[AppRoute]>
searchParams: Promise<Record<string, string | string[] | undefined>>
}

/**
* Props for Next.js App Router layout components
* @example
* ```tsx
* export default function Layout(props: LayoutProps<'/dashboard'>) {
* return <div>{props.children}</div>
* }
* ```
*/
type LayoutProps<LayoutRoute extends LayoutRoutes> = {
params: Promise<ParamMap[LayoutRoute]>
children: React.ReactNode
} & {
[K in LayoutSlotMap[LayoutRoute]]: React.ReactNode
}
}
16 changes: 16 additions & 0 deletions Memoray/.next/types/validator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// This file is generated automatically by Next.js
// Do not edit this file manually
// This file validates that all pages and layouts export the correct types













Loading