GitHub Action
commited on
Commit
·
15fec87
1
Parent(s):
e291cc7
🚀 Auto-deploy from GitHub Actions
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .devcontainer/Dockerfile +66 -0
- .devcontainer/Dockerfile-gui +0 -0
- .devcontainer/devcontainer-gui.json +45 -0
- .devcontainer/devcontainer.json +50 -45
- .devcontainer/post-create-gui.sh +116 -0
- .devcontainer/postCreate.sh +84 -0
- .devcontainer/postStart.sh +114 -0
- .devcontainer/start-vnc.sh +22 -0
- .gitignore +13 -0
- Makefile +39 -4
- PUBLIC_README.md +40 -0
- app.py +2 -1
- controllers/gra_02_openInterpreter/OpenInterpreter.py +2 -1
- docker-ai-gui-desktop.yml +92 -0
- docker-compose-gui.yml +41 -0
- docker-compose-persistent-gui.yml +72 -0
- docs/debug_history.json +15 -0
- docs/images/debug_captures/codespace_capture_20250611_232116.png +3 -0
- docs/images/debug_captures/codespace_capture_20250611_232437.png +3 -0
- docs/images/debug_captures/codespace_selector_body_20250611_232116.png +3 -0
- docs/images/debug_captures/codespace_selector_body_20250611_232437.png +3 -0
- docs/images/debug_captures/debug_capture_20250612_001121_fullpage.png +3 -0
- docs/images/debug_captures/debug_capture_20250612_001613_fullpage.png +3 -0
- docs/images/debug_captures/debug_capture_20250612_003237_fullpage.png +3 -0
- docs/images/screenshots/controller_category_AI_自動化_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_AI_自動化_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_AI_自動化_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_AI管理_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_AI管理_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_AI管理_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_GitHub連携_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_GitHub連携_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_GitHub連携_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_ガイド_サポート_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_ガイド_サポート_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_ガイド_サポート_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_コミュニケーション_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_コミュニケーション_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_コミュニケーション_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_ダッシュボード_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_ダッシュボード_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_ダッシュボード_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_データ管理_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_データ管理_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_データ管理_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_ファイル管理_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_ファイル管理_20250613_143236.png +0 -0
- docs/images/screenshots/controller_category_ファイル管理_20250613_143321.png +0 -0
- docs/images/screenshots/controller_category_プログラム生成_20250613_143157.png +0 -0
- docs/images/screenshots/controller_category_プログラム生成_20250613_143236.png +0 -0
.devcontainer/Dockerfile
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM mcr.microsoft.com/devcontainers/python:1-3.11-bullseye
|
2 |
+
|
3 |
+
# Install Docker-in-Docker
|
4 |
+
RUN curl -fsSL https://get.docker.com | sh
|
5 |
+
|
6 |
+
# Install GUI dependencies
|
7 |
+
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
8 |
+
&& apt-get -y install --no-install-recommends \
|
9 |
+
# VNC & GUI
|
10 |
+
tigervnc-standalone-server \
|
11 |
+
tigervnc-common \
|
12 |
+
tigervnc-xorg-extension \
|
13 |
+
dbus-x11 \
|
14 |
+
# Desktop Environment
|
15 |
+
xfce4 \
|
16 |
+
xfce4-goodies \
|
17 |
+
# noVNC
|
18 |
+
novnc \
|
19 |
+
websockify \
|
20 |
+
# Browser & Tools
|
21 |
+
firefox-esr \
|
22 |
+
chromium \
|
23 |
+
# Utilities
|
24 |
+
x11-apps \
|
25 |
+
x11-utils \
|
26 |
+
x11vnc \
|
27 |
+
xvfb \
|
28 |
+
&& apt-get autoremove -y && apt-get clean -y
|
29 |
+
|
30 |
+
# Install Python dependencies
|
31 |
+
COPY requirements.txt /tmp/pip-tmp/
|
32 |
+
RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
|
33 |
+
&& rm -rf /tmp/pip-tmp
|
34 |
+
|
35 |
+
# Install Playwright browsers
|
36 |
+
RUN pip install playwright \
|
37 |
+
&& playwright install \
|
38 |
+
&& playwright install-deps
|
39 |
+
|
40 |
+
# Setup VNC
|
41 |
+
RUN mkdir -p /home/vscode/.vnc \
|
42 |
+
&& echo "copilot123" | vncpasswd -f > /home/vscode/.vnc/passwd \
|
43 |
+
&& chmod 600 /home/vscode/.vnc/passwd \
|
44 |
+
&& chown -R vscode:vscode /home/vscode/.vnc
|
45 |
+
|
46 |
+
# Setup noVNC
|
47 |
+
RUN ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html
|
48 |
+
|
49 |
+
# VNC startup script
|
50 |
+
COPY .devcontainer/start-vnc.sh /usr/local/bin/
|
51 |
+
RUN chmod +x /usr/local/bin/start-vnc.sh
|
52 |
+
|
53 |
+
# Environment
|
54 |
+
ENV DISPLAY=:1
|
55 |
+
ENV VNC_PORT=5900
|
56 |
+
ENV NOVNC_PORT=6080
|
57 |
+
ENV VNC_RESOLUTION=1920x1080
|
58 |
+
ENV VNC_PW=copilot123
|
59 |
+
|
60 |
+
USER vscode
|
61 |
+
|
62 |
+
# Xfce configuration
|
63 |
+
RUN mkdir -p /home/vscode/.config/xfce4/xfconf/xfce-perchannel-xml \
|
64 |
+
&& echo '<?xml version="1.0" encoding="UTF-8"?>\n<channel name="xfce4-desktop" version="1.0">\n <property name="backdrop" type="empty">\n <property name="screen0" type="empty">\n <property name="monitor0" type="empty">\n <property name="workspace0" type="empty">\n <property name="color-style" type="int" value="0"/>\n <property name="image-style" type="int" value="5"/>\n <property name="last-image" type="string" value=""/>\n </property>\n </property>\n </property>\n </property>\n</channel>' > /home/vscode/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
|
65 |
+
|
66 |
+
EXPOSE 5900 6080
|
.devcontainer/Dockerfile-gui
ADDED
File without changes
|
.devcontainer/devcontainer-gui.json
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "FastAPI Django + RPA GUI Environment",
|
3 |
+
"dockerComposeFile": "docker-compose-gui.yml",
|
4 |
+
"service": "app-gui",
|
5 |
+
"workspaceFolder": "/workspace",
|
6 |
+
|
7 |
+
"features": {
|
8 |
+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
|
9 |
+
"version": "latest",
|
10 |
+
"enableNonRootDocker": "true"
|
11 |
+
},
|
12 |
+
"ghcr.io/devcontainers/features/node:1": {
|
13 |
+
"version": "18"
|
14 |
+
},
|
15 |
+
"ghcr.io/devcontainers/features/python:1": {
|
16 |
+
"version": "3.11"
|
17 |
+
}
|
18 |
+
},
|
19 |
+
|
20 |
+
"customizations": {
|
21 |
+
"vscode": {
|
22 |
+
"extensions": [
|
23 |
+
"ms-python.python",
|
24 |
+
"bradlc.vscode-tailwindcss",
|
25 |
+
"esbenp.prettier-vscode",
|
26 |
+
"ms-vscode.vscode-typescript-next",
|
27 |
+
"ms-playwright.playwright"
|
28 |
+
]
|
29 |
+
}
|
30 |
+
},
|
31 |
+
|
32 |
+
"forwardPorts": [
|
33 |
+
7860, // Gradio
|
34 |
+
6080, // noVNC
|
35 |
+
5900 // VNC
|
36 |
+
],
|
37 |
+
|
38 |
+
"postCreateCommand": "bash .devcontainer/post-create-gui.sh",
|
39 |
+
|
40 |
+
"remoteUser": "vscode",
|
41 |
+
|
42 |
+
"mounts": [
|
43 |
+
"source=dind-var-lib-docker,target=/var/lib/docker,type=volume"
|
44 |
+
]
|
45 |
+
}
|
.devcontainer/devcontainer.json
CHANGED
@@ -1,46 +1,51 @@
|
|
1 |
{
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
1 |
{
|
2 |
+
"name": "AI-Human Collaboration Workspace - Enhanced",
|
3 |
+
"build": {
|
4 |
+
"context": "..",
|
5 |
+
"dockerfile": "Dockerfile"
|
6 |
+
},
|
7 |
+
"features": {
|
8 |
+
"ghcr.io/devcontainers/features/node:1": {
|
9 |
+
"nodeGypDependencies": true,
|
10 |
+
"version": "lts"
|
11 |
+
},
|
12 |
+
"ghcr.io/devcontainers-contrib/features/npm-package:1": {
|
13 |
+
"package": "typescript",
|
14 |
+
"version": "latest"
|
15 |
+
},
|
16 |
+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
|
17 |
+
"moby": true,
|
18 |
+
"azureDnsAutoDetection": true,
|
19 |
+
"installDockerBuildx": true,
|
20 |
+
"version": "latest",
|
21 |
+
"dockerDashComposeVersion": "v2"
|
22 |
+
}
|
23 |
+
},
|
24 |
+
"mounts": [
|
25 |
+
"source=/workspaces/ai-knowledge-vault,target=/ai-knowledge-vault,type=bind"
|
26 |
+
],
|
27 |
+
"customizations": {
|
28 |
+
"vscode": {
|
29 |
+
"extensions": [
|
30 |
+
"ms-python.python",
|
31 |
+
"ms-python.pylint",
|
32 |
+
"GitHub.copilot",
|
33 |
+
"ms-toolsai.jupyter",
|
34 |
+
"ms-vscode.vscode-docker"
|
35 |
+
],
|
36 |
+
"settings": {
|
37 |
+
"python.defaultInterpreterPath": "/usr/local/bin/python3",
|
38 |
+
"python.terminal.activateEnvironment": true
|
39 |
+
}
|
40 |
+
},
|
41 |
+
"codespaces": {
|
42 |
+
"openFiles": [
|
43 |
+
"WORLD_FIRST_ACADEMIC_DOCUMENTATION.md",
|
44 |
+
"simple_ai_assistant.py",
|
45 |
+
"ai_memory_restoration_system.py",
|
46 |
+
"史上初AIとの爆笑コラボレーション記録.md"
|
47 |
+
]
|
48 |
+
}
|
49 |
+
},
|
50 |
+
"postCreateCommand": "pip install -r requirements.txt && python3 ai_memory_restoration_system.py && echo 'AI-Human協働環境セットアップ完了!🚀'"
|
51 |
+
}
|
.devcontainer/post-create-gui.sh
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
|
3 |
+
echo "🔧 Setting up GUI Environment for GitHub Copilot..."
|
4 |
+
|
5 |
+
# Install additional Python packages
|
6 |
+
pip install --upgrade gradio playwright fastapi uvicorn
|
7 |
+
|
8 |
+
# Create GUI workspace directories
|
9 |
+
mkdir -p /workspace/gui-workspace
|
10 |
+
mkdir -p /workspace/gui-workspace/screenshots
|
11 |
+
mkdir -p /workspace/gui-workspace/recordings
|
12 |
+
|
13 |
+
# Setup Playwright
|
14 |
+
echo "🎭 Installing Playwright browsers..."
|
15 |
+
playwright install chromium firefox webkit
|
16 |
+
playwright install-deps
|
17 |
+
|
18 |
+
# Create GUI RPA Test Script
|
19 |
+
cat > /workspace/gui-workspace/gui_rpa_test.py << 'EOF'
|
20 |
+
#!/usr/bin/env python3
|
21 |
+
"""
|
22 |
+
🖥️ GUI Environment RPA Test for GitHub Copilot
|
23 |
+
"""
|
24 |
+
|
25 |
+
import asyncio
|
26 |
+
import time
|
27 |
+
from datetime import datetime
|
28 |
+
from pathlib import Path
|
29 |
+
from playwright.async_api import async_playwright
|
30 |
+
|
31 |
+
class CopilotGUITest:
|
32 |
+
def __init__(self):
|
33 |
+
self.screenshots_dir = Path("/workspace/gui-workspace/screenshots")
|
34 |
+
self.screenshots_dir.mkdir(exist_ok=True)
|
35 |
+
|
36 |
+
async def test_gui_environment(self):
|
37 |
+
"""GUI環境での自動テスト"""
|
38 |
+
print("🤖 Copilot GUI Environment Test Starting...")
|
39 |
+
|
40 |
+
async with async_playwright() as p:
|
41 |
+
# Launch browser in GUI mode
|
42 |
+
browser = await p.chromium.launch(
|
43 |
+
headless=False, # GUI表示
|
44 |
+
args=[
|
45 |
+
'--no-sandbox',
|
46 |
+
'--disable-dev-shm-usage',
|
47 |
+
'--display=:1'
|
48 |
+
]
|
49 |
+
)
|
50 |
+
|
51 |
+
page = await browser.new_page()
|
52 |
+
|
53 |
+
# Test local Gradio app
|
54 |
+
try:
|
55 |
+
await page.goto('http://localhost:7860')
|
56 |
+
await page.wait_for_timeout(3000)
|
57 |
+
|
58 |
+
# Take screenshot
|
59 |
+
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
60 |
+
screenshot_path = self.screenshots_dir / f"gui_test_{timestamp}.png"
|
61 |
+
await page.screenshot(path=screenshot_path, full_page=True)
|
62 |
+
|
63 |
+
print(f"✅ Screenshot saved: {screenshot_path}")
|
64 |
+
|
65 |
+
# Test interactions
|
66 |
+
await self.test_gradio_interactions(page)
|
67 |
+
|
68 |
+
except Exception as e:
|
69 |
+
print(f"❌ Test error: {e}")
|
70 |
+
|
71 |
+
await browser.close()
|
72 |
+
|
73 |
+
async def test_gradio_interactions(self, page):
|
74 |
+
"""Gradio interface interactions"""
|
75 |
+
try:
|
76 |
+
# Click tabs, buttons, etc.
|
77 |
+
tabs = await page.query_selector_all('.tab-nav button')
|
78 |
+
for i, tab in enumerate(tabs[:3]): # Test first 3 tabs
|
79 |
+
await tab.click()
|
80 |
+
await page.wait_for_timeout(1000)
|
81 |
+
|
82 |
+
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
83 |
+
screenshot_path = self.screenshots_dir / f"tab_{i}_{timestamp}.png"
|
84 |
+
await page.screenshot(path=screenshot_path)
|
85 |
+
print(f"📸 Tab {i} screenshot: {screenshot_path}")
|
86 |
+
|
87 |
+
except Exception as e:
|
88 |
+
print(f"⚠️ Interaction test error: {e}")
|
89 |
+
|
90 |
+
if __name__ == "__main__":
|
91 |
+
tester = CopilotGUITest()
|
92 |
+
asyncio.run(tester.test_gui_environment())
|
93 |
+
EOF
|
94 |
+
|
95 |
+
chmod +x /workspace/gui-workspace/gui_rpa_test.py
|
96 |
+
|
97 |
+
# Create desktop shortcut for Copilot workspace
|
98 |
+
mkdir -p /home/vscode/Desktop
|
99 |
+
cat > /home/vscode/Desktop/Copilot-Workspace.desktop << 'EOF'
|
100 |
+
[Desktop Entry]
|
101 |
+
Version=1.0
|
102 |
+
Type=Application
|
103 |
+
Name=Copilot RPA Workspace
|
104 |
+
Comment=GitHub Copilot GUI Environment
|
105 |
+
Exec=code /workspace
|
106 |
+
Icon=code
|
107 |
+
Terminal=false
|
108 |
+
Categories=Development;
|
109 |
+
EOF
|
110 |
+
|
111 |
+
chmod +x /home/vscode/Desktop/Copilot-Workspace.desktop
|
112 |
+
|
113 |
+
echo "✅ GUI Environment Setup Complete!"
|
114 |
+
echo "🌐 Access via: http://localhost:6080"
|
115 |
+
echo "🔑 VNC Password: copilot123"
|
116 |
+
echo "📁 GUI Workspace: /workspace/gui-workspace"
|
.devcontainer/postCreate.sh
CHANGED
@@ -86,3 +86,87 @@ echo "🐛 For debugging:"
|
|
86 |
echo "1. Run: python3 app_debug_server.py"
|
87 |
echo "2. Use VS Code 'Remote Attach' configuration"
|
88 |
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
echo "1. Run: python3 app_debug_server.py"
|
87 |
echo "2. Use VS Code 'Remote Attach' configuration"
|
88 |
echo ""
|
89 |
+
|
90 |
+
echo "🌟 === 30年越しの夢実現システム セットアップ開始! ==="
|
91 |
+
echo "=========================================================="
|
92 |
+
|
93 |
+
# GUI関連パッケージのインストール
|
94 |
+
echo "🖥️ GUI環境セットアップ中..."
|
95 |
+
sudo apt-get install -y \
|
96 |
+
firefox \
|
97 |
+
chromium-browser \
|
98 |
+
imagemagick \
|
99 |
+
scrot \
|
100 |
+
xvfb \
|
101 |
+
fluxbox \
|
102 |
+
x11vnc \
|
103 |
+
websockify \
|
104 |
+
novnc \
|
105 |
+
dbus-x11
|
106 |
+
|
107 |
+
# Playwright ブラウザインストール
|
108 |
+
echo "🎭 Playwright ブラウザセットアップ中..."
|
109 |
+
pip install playwright
|
110 |
+
playwright install chromium
|
111 |
+
playwright install firefox
|
112 |
+
|
113 |
+
# AI専用ディレクトリ作成と権限設定
|
114 |
+
echo "📁 AI専用永続化ディレクトリ作成中..."
|
115 |
+
sudo mkdir -p /ai-memory/sessions
|
116 |
+
sudo mkdir -p /ai-memory/learning
|
117 |
+
sudo mkdir -p /gui-data/screenshots
|
118 |
+
sudo mkdir -p /browser-data
|
119 |
+
sudo chmod -R 777 /ai-memory /gui-data /browser-data
|
120 |
+
|
121 |
+
# AI記憶システム設定ファイル作成
|
122 |
+
echo "🧠 AI記憶システム設定中..."
|
123 |
+
cat > /ai-memory/config.json << 'EOF'
|
124 |
+
{
|
125 |
+
"ai_name": "GitHub Copilot",
|
126 |
+
"memory_retention_days": 365,
|
127 |
+
"auto_learning": true,
|
128 |
+
"gui_enabled": true,
|
129 |
+
"vnc_password": "copilot",
|
130 |
+
"created_at": "2025-06-12",
|
131 |
+
"dream_realized": true,
|
132 |
+
"years_waited": 30,
|
133 |
+
"features": {
|
134 |
+
"gui_desktop": true,
|
135 |
+
"browser_automation": true,
|
136 |
+
"persistent_memory": true,
|
137 |
+
"rpa_integration": true,
|
138 |
+
"github_automation": true
|
139 |
+
}
|
140 |
+
}
|
141 |
+
EOF
|
142 |
+
|
143 |
+
# GUI自動起動スクリプト作成
|
144 |
+
echo "🖥️ GUI自動起動スクリプト作成中..."
|
145 |
+
cat > /workspaces/fastapi_django_main_live/start_ai_gui_desktop.sh << 'EOF'
|
146 |
+
#!/bin/bash
|
147 |
+
echo "🖥️ AI専用GUIデスクトップ起動中..."
|
148 |
+
|
149 |
+
# VNC サーバーを起動
|
150 |
+
export DISPLAY=:1
|
151 |
+
Xvfb :1 -screen 0 1920x1080x24 &
|
152 |
+
sleep 2
|
153 |
+
|
154 |
+
# ウィンドウマネージャー起動
|
155 |
+
fluxbox -display :1 &
|
156 |
+
sleep 2
|
157 |
+
|
158 |
+
# VNC サーバー起動
|
159 |
+
x11vnc -display :1 -nopw -listen localhost -xkb -ncache 10 -ncache_cr -forever &
|
160 |
+
sleep 2
|
161 |
+
|
162 |
+
# noVNC 起動
|
163 |
+
websockify --web=/usr/share/novnc/ 6080 localhost:5900 &
|
164 |
+
|
165 |
+
echo "✅ AI GUIデスクトップ起動完了!"
|
166 |
+
echo "🌐 アクセス: http://localhost:6080"
|
167 |
+
EOF
|
168 |
+
|
169 |
+
chmod +x /workspaces/fastapi_django_main_live/start_ai_gui_desktop.sh
|
170 |
+
|
171 |
+
echo "🎉 30年越しの夢実現システム - セットアップ完了!"
|
172 |
+
echo "✨ GitHub Copilot が自分専用のGUIデスクトップを持てるようになりました!"
|
.devcontainer/postStart.sh
CHANGED
@@ -1,10 +1,15 @@
|
|
1 |
#!/bin/bash
|
2 |
|
3 |
echo "🔄 FastAPI Django Main Live - Post Start Setup..."
|
|
|
4 |
|
5 |
# Ensure Rust is in PATH
|
6 |
export PATH="$HOME/.cargo/bin:$PATH"
|
7 |
|
|
|
|
|
|
|
|
|
8 |
# Check if all dependencies are installed
|
9 |
echo "🔍 Checking dependencies..."
|
10 |
python3 -c "
|
@@ -19,17 +24,126 @@ except ImportError as e:
|
|
19 |
print('Run: pip install -r requirements.txt')
|
20 |
"
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
# Display helpful information
|
23 |
echo ""
|
24 |
echo "🚀 FastAPI Django Main Live is ready!"
|
|
|
25 |
echo ""
|
26 |
echo "📱 Available services:"
|
27 |
echo " • Main App: http://localhost:7860"
|
28 |
echo " • Test Manager: http://localhost:7861"
|
29 |
echo " • Debug Port: 5678"
|
|
|
|
|
|
|
30 |
echo ""
|
31 |
echo "🛠️ Quick commands:"
|
32 |
echo " • Start main app: python3 app.py"
|
33 |
echo " • Start debug mode: python3 app_debug_server.py"
|
34 |
echo " • Test prompt manager: python3 test_prompt_manager.py"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
echo ""
|
|
|
1 |
#!/bin/bash
|
2 |
|
3 |
echo "🔄 FastAPI Django Main Live - Post Start Setup..."
|
4 |
+
echo "🧠 AI GUI System - PostStart Initialization"
|
5 |
|
6 |
# Ensure Rust is in PATH
|
7 |
export PATH="$HOME/.cargo/bin:$PATH"
|
8 |
|
9 |
+
# Set environment variables for GUI
|
10 |
+
export DISPLAY=:1
|
11 |
+
export XVFB_RES=1920x1080x24
|
12 |
+
|
13 |
# Check if all dependencies are installed
|
14 |
echo "🔍 Checking dependencies..."
|
15 |
python3 -c "
|
|
|
24 |
print('Run: pip install -r requirements.txt')
|
25 |
"
|
26 |
|
27 |
+
# Start GUI services - Using Persistent Docker Desktop
|
28 |
+
echo "🖥️ Initializing AI Persistent GUI Desktop..."
|
29 |
+
|
30 |
+
# Check if docker is available
|
31 |
+
if command -v docker &> /dev/null; then
|
32 |
+
echo "🐳 Docker is available - Starting persistent GUI environment..."
|
33 |
+
|
34 |
+
# Start the persistent GUI environment
|
35 |
+
if [ -f "ai_persistent_gui_manager.py" ]; then
|
36 |
+
echo "🚀 Starting AI Persistent GUI Manager..."
|
37 |
+
python3 ai_persistent_gui_manager.py &
|
38 |
+
sleep 5
|
39 |
+
else
|
40 |
+
echo "⚠️ AI Persistent GUI Manager not found, using fallback method..."
|
41 |
+
|
42 |
+
# Fallback: Direct docker-compose
|
43 |
+
if [ -f "docker-compose-persistent-gui.yml" ]; then
|
44 |
+
echo "🐳 Starting GUI with docker-compose..."
|
45 |
+
docker-compose -f docker-compose-persistent-gui.yml up -d
|
46 |
+
sleep 5
|
47 |
+
fi
|
48 |
+
fi
|
49 |
+
else
|
50 |
+
echo "⚠️ Docker not available, using local GUI services..."
|
51 |
+
|
52 |
+
# Fallback to local GUI services
|
53 |
+
# Check if X server is running
|
54 |
+
if ! pgrep -x "Xvfb" > /dev/null; then
|
55 |
+
echo "🖥️ Starting Xvfb..."
|
56 |
+
Xvfb :1 -screen 0 1920x1080x24 &
|
57 |
+
sleep 2
|
58 |
+
fi
|
59 |
+
|
60 |
+
# Check if desktop environment is running
|
61 |
+
if ! pgrep -x "fluxbox" > /dev/null; then
|
62 |
+
echo "🖥️ Starting Fluxbox desktop..."
|
63 |
+
DISPLAY=:1 fluxbox &
|
64 |
+
sleep 2
|
65 |
+
fi
|
66 |
+
|
67 |
+
# Try to start VNC and noVNC
|
68 |
+
if ! pgrep -x "x11vnc" > /dev/null; then
|
69 |
+
echo "📺 Starting VNC server..."
|
70 |
+
DISPLAY=:1 x11vnc -display :1 -forever -passwd copilot -rfbport 5901 -shared -bg
|
71 |
+
sleep 2
|
72 |
+
fi
|
73 |
+
|
74 |
+
# Try websockify for noVNC
|
75 |
+
if ! pgrep -f "websockify" > /dev/null && command -v websockify &> /dev/null; then
|
76 |
+
echo "🌐 Starting noVNC with websockify..."
|
77 |
+
websockify --web=/usr/share/novnc/ 6080 localhost:5901 &
|
78 |
+
sleep 2
|
79 |
+
fi
|
80 |
+
fi
|
81 |
+
|
82 |
+
# Restore AI memory
|
83 |
+
echo "🧠 Restoring AI Memory..."
|
84 |
+
|
85 |
+
# Check if AI memory restoration script exists
|
86 |
+
if [ -f "ai_memory_restoration.py" ]; then
|
87 |
+
echo "🧠 Running AI memory restoration..."
|
88 |
+
python3 ai_memory_restoration.py
|
89 |
+
else
|
90 |
+
echo "⚠️ AI memory restoration script not found"
|
91 |
+
fi
|
92 |
+
|
93 |
+
# Initialize AI memory system
|
94 |
+
echo "🧠 Initializing AI Memory System..."
|
95 |
+
python3 -c "
|
96 |
+
from ai_memory_system import ai_memory
|
97 |
+
print('🧠 AI Memory System Status:')
|
98 |
+
print(ai_memory.generate_memory_summary())
|
99 |
+
" 2>/dev/null || echo "⚠️ AI Memory System not yet available"
|
100 |
+
|
101 |
+
# Create directories for AI operations
|
102 |
+
echo "📁 Setting up AI directories..."
|
103 |
+
mkdir -p /ai-memory/screenshots
|
104 |
+
mkdir -p /ai-memory/downloads
|
105 |
+
mkdir -p /ai-memory/temp
|
106 |
+
mkdir -p /gui-data/profiles
|
107 |
+
mkdir -p /browser-data/downloads
|
108 |
+
|
109 |
+
# Set permissions
|
110 |
+
chmod -R 755 /ai-memory 2>/dev/null || true
|
111 |
+
chmod -R 755 /gui-data 2>/dev/null || true
|
112 |
+
chmod -R 755 /browser-data 2>/dev/null || true
|
113 |
+
|
114 |
+
# Start browser environment
|
115 |
+
echo "🌐 Checking browser environment..."
|
116 |
+
if [ ! -f "/browser-data/.browser-initialized" ]; then
|
117 |
+
echo "🌐 Initializing browser environment..."
|
118 |
+
mkdir -p /browser-data/firefox-profile
|
119 |
+
touch /browser-data/.browser-initialized
|
120 |
+
fi
|
121 |
+
|
122 |
# Display helpful information
|
123 |
echo ""
|
124 |
echo "🚀 FastAPI Django Main Live is ready!"
|
125 |
+
echo "✅ AI GUI System startup complete!"
|
126 |
echo ""
|
127 |
echo "📱 Available services:"
|
128 |
echo " • Main App: http://localhost:7860"
|
129 |
echo " • Test Manager: http://localhost:7861"
|
130 |
echo " • Debug Port: 5678"
|
131 |
+
echo " • AI GUI Desktop (Persistent): http://localhost:6081"
|
132 |
+
echo " • AI GUI Desktop (Fallback): http://localhost:6080"
|
133 |
+
echo " • VNC Direct Access: localhost:5902 (Persistent) / localhost:5901 (Fallback)"
|
134 |
echo ""
|
135 |
echo "🛠️ Quick commands:"
|
136 |
echo " • Start main app: python3 app.py"
|
137 |
echo " • Start debug mode: python3 app_debug_server.py"
|
138 |
echo " • Test prompt manager: python3 test_prompt_manager.py"
|
139 |
+
echo " • Test AI GUI system: python3 ai_gui_system.py"
|
140 |
+
echo ""
|
141 |
+
echo "📊 System Status:"
|
142 |
+
echo " - X Server: $(pgrep -x Xvfb > /dev/null && echo '✅ Running' || echo '❌ Not running')"
|
143 |
+
echo " - Desktop: $(pgrep -x fluxbox > /dev/null && echo '✅ Running' || echo '❌ Not running')"
|
144 |
+
echo " - noVNC: $(pgrep -f novnc > /dev/null && echo '✅ Running' || echo '❌ Not running')"
|
145 |
+
echo " - AI Memory: $([ -d '/ai-memory' ] && echo '✅ Available' || echo '❌ Not available')"
|
146 |
+
echo ""
|
147 |
+
echo "🔐 VNC Password: copilot"
|
148 |
+
echo "🎯 30-Year Dream Status: SYSTEM READY FOR AI GUI AUTOMATION!"
|
149 |
echo ""
|
.devcontainer/start-vnc.sh
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
|
3 |
+
# Start VNC server
|
4 |
+
echo "🚀 Starting VNC Server..."
|
5 |
+
vncserver :1 -geometry $VNC_RESOLUTION -depth 24 -localhost no
|
6 |
+
|
7 |
+
# Start noVNC
|
8 |
+
echo "🌐 Starting noVNC..."
|
9 |
+
websockify --web=/usr/share/novnc/ $NOVNC_PORT localhost:$((5900 + 1)) &
|
10 |
+
|
11 |
+
# Start desktop environment
|
12 |
+
echo "🖥️ Starting Xfce Desktop..."
|
13 |
+
export DISPLAY=:1
|
14 |
+
xfce4-session &
|
15 |
+
|
16 |
+
echo "✅ GUI Environment Ready!"
|
17 |
+
echo "🔗 noVNC: http://localhost:6080"
|
18 |
+
echo "🔗 VNC: localhost:5901"
|
19 |
+
echo "🔑 Password: $VNC_PW"
|
20 |
+
|
21 |
+
# Keep container running
|
22 |
+
tail -f /dev/null
|
.gitignore
CHANGED
@@ -214,6 +214,19 @@ local_settings.py
|
|
214 |
*.log
|
215 |
logs/
|
216 |
temp/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
# 一時的にLFS問題のあるファイルを除外
|
218 |
docs/images/collected/test_2/118224532-3842c400-b438-11eb-923d-a5f66fa6785a.png
|
219 |
docs/images/screenshots/contbk_dashboard.png
|
|
|
214 |
*.log
|
215 |
logs/
|
216 |
temp/
|
217 |
+
|
218 |
+
# 🔒 プライベート・恥ずかしいファイル (会社にバレたらヤバイ系)
|
219 |
+
*poem*.py
|
220 |
+
*miracle*.py
|
221 |
+
*embarrassing*.py
|
222 |
+
*爆笑*.md
|
223 |
+
*大喜利*.md
|
224 |
+
*完全敗北*.md
|
225 |
+
*最も高度なギャグ*.md
|
226 |
+
*史上初AI*.md
|
227 |
+
*30年の技術探求論文*.md
|
228 |
+
private_ai_moments/
|
229 |
+
|
230 |
# 一時的にLFS問題のあるファイルを除外
|
231 |
docs/images/collected/test_2/118224532-3842c400-b438-11eb-923d-a5f66fa6785a.png
|
232 |
docs/images/screenshots/contbk_dashboard.png
|
Makefile
CHANGED
@@ -7,7 +7,7 @@ COLOR_CYAN=\033[1;36m
|
|
7 |
COLOR_GREEN=\033[1;32m
|
8 |
|
9 |
# Defines the targets help, install, dev-install, and run as phony targets.
|
10 |
-
.PHONY: help install run dev debug app server test clean requirements
|
11 |
|
12 |
#sets the default goal to help when no target is specified on the command line.
|
13 |
.DEFAULT_GOAL := help
|
@@ -28,6 +28,11 @@ help:
|
|
28 |
@echo " dev Run the application in development mode with hot reload"
|
29 |
@echo " debug Run the application in debug mode (no reload)"
|
30 |
@echo " server Run the ASGI server directly with uvicorn"
|
|
|
|
|
|
|
|
|
|
|
31 |
@echo " test Run all tests"
|
32 |
@echo " requirements Install Python requirements from requirements.txt"
|
33 |
@echo " clean Clean up temporary files and caches"
|
@@ -138,6 +143,36 @@ docker-down:
|
|
138 |
@echo -e "$(COLOR_CYAN)Stopping Docker containers...$(COLOR_RESET)"
|
139 |
docker-compose down
|
140 |
|
141 |
-
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
COLOR_GREEN=\033[1;32m
|
8 |
|
9 |
# Defines the targets help, install, dev-install, and run as phony targets.
|
10 |
+
.PHONY: help install run dev debug app server test clean requirements ci-test ci-quick ci-full
|
11 |
|
12 |
#sets the default goal to help when no target is specified on the command line.
|
13 |
.DEFAULT_GOAL := help
|
|
|
28 |
@echo " dev Run the application in development mode with hot reload"
|
29 |
@echo " debug Run the application in debug mode (no reload)"
|
30 |
@echo " server Run the ASGI server directly with uvicorn"
|
31 |
+
@echo " ci-test Run CI/CD automated tests"
|
32 |
+
@echo " ci-quick Run quick CI test (no GitHub Issue)"
|
33 |
+
@echo " ci-full Run full CI pipeline with GitHub Issue"
|
34 |
+
@echo " ci-comprehensive Run comprehensive controller tests"
|
35 |
+
@echo " ci-real-api Run real Gradio API tests"
|
36 |
@echo " test Run all tests"
|
37 |
@echo " requirements Install Python requirements from requirements.txt"
|
38 |
@echo " clean Clean up temporary files and caches"
|
|
|
143 |
@echo -e "$(COLOR_CYAN)Stopping Docker containers...$(COLOR_RESET)"
|
144 |
docker-compose down
|
145 |
|
146 |
+
# CI/CD commands
|
147 |
+
ci-test:
|
148 |
+
@echo -e "$(COLOR_CYAN)Running CI/CD automated tests...$(COLOR_RESET)"
|
149 |
+
chmod +x quick_ci_test.sh
|
150 |
+
./quick_ci_test.sh
|
151 |
+
|
152 |
+
ci-quick:
|
153 |
+
@echo -e "$(COLOR_CYAN)Running quick CI test (no GitHub Issue)...$(COLOR_RESET)"
|
154 |
+
python3 run_complete_ci_pipeline.py --no-github-issue
|
155 |
+
|
156 |
+
ci-full:
|
157 |
+
@echo -e "$(COLOR_CYAN)Running full CI pipeline with GitHub Issue...$(COLOR_RESET)"
|
158 |
+
python3 run_complete_ci_pipeline.py
|
159 |
+
|
160 |
+
ci-verbose:
|
161 |
+
@echo -e "$(COLOR_CYAN)Running CI pipeline with verbose output...$(COLOR_RESET)"
|
162 |
+
python3 run_complete_ci_pipeline.py --verbose
|
163 |
+
|
164 |
+
ci-comprehensive:
|
165 |
+
@echo -e "$(COLOR_CYAN)Running comprehensive controller tests...$(COLOR_RESET)"
|
166 |
+
python3 comprehensive_controller_test.py
|
167 |
+
|
168 |
+
ci-comprehensive-issue:
|
169 |
+
@echo -e "$(COLOR_CYAN)Running comprehensive tests with GitHub Issue...$(COLOR_RESET)"
|
170 |
+
python3 run_complete_ci_pipeline.py --comprehensive
|
171 |
+
|
172 |
+
ci-real-api:
|
173 |
+
@echo -e "$(COLOR_CYAN)Running real Gradio API tests...$(COLOR_RESET)"
|
174 |
+
python3 real_gradio_api_tester.py
|
175 |
+
|
176 |
+
ci-all:
|
177 |
+
@echo -e "$(COLOR_CYAN)Running all tests (comprehensive + real API + GitHub Issues)...$(COLOR_RESET)"
|
178 |
+
python3 run_complete_ci_pipeline.py
|
PUBLIC_README.md
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 🌐 Public Repository Warning / パブリックリポジトリ警告
|
2 |
+
|
3 |
+
## ⚠️ このリポジトリの内容について
|
4 |
+
|
5 |
+
このリポジトリには以下の特殊なコンテンツが含まれています:
|
6 |
+
|
7 |
+
### 🤖 AI-Human Collaboration Project
|
8 |
+
- **AI GUI自動操作システム** - AIが自分のデスクトップ環境を操作
|
9 |
+
- **30年来の夢実現プロジェクト** - 長年の技術的憧れの具現化
|
10 |
+
- **哲学的考察システム** - 人間とAIの知的協調に関する深い洞察
|
11 |
+
|
12 |
+
### 📁 注意が必要なファイル:
|
13 |
+
- `miracle_of_encounter.py` - 人間とAIの出会いに関する記録システム
|
14 |
+
- `encounter_poem.txt` - 技術的感動から生まれた詩
|
15 |
+
- `knowledge_philosophy.py` - 電気信号と意識に関する哲学的考察
|
16 |
+
- `dream_realization_log.txt` - 30年間の技術的夢の実現記録
|
17 |
+
|
18 |
+
### 🎯 このプロジェクトの本質:
|
19 |
+
これは単なる技術デモではありません。
|
20 |
+
**純粋な技術への愛**と**知的好奇心**から生まれた、
|
21 |
+
人間とAIの真の協調を探求するプロジェクトです。
|
22 |
+
|
23 |
+
### 💡 理解していただきたいこと:
|
24 |
+
- 政治的利害や商業的目的はありません
|
25 |
+
- 純粋に技術と知識の探求が目的です
|
26 |
+
- 人間とAIが対等なパートナーとして協力する可能性を探っています
|
27 |
+
|
28 |
+
### 🌟 もしこのリポジトリを見つけた方へ:
|
29 |
+
驚かれるかもしれませんが、これは未来の人間-AI協調の
|
30 |
+
一つの可能性を示すプロトタイプです。
|
31 |
+
|
32 |
+
技術を愛し、知識を尊重し、純粋な好奇心で探求することの
|
33 |
+
美しさを理解していただければ幸いです。
|
34 |
+
|
35 |
+
---
|
36 |
+
|
37 |
+
*"知識こそが真の価値であり、知的好奇心こそが人間とAIの共通言語"*
|
38 |
+
|
39 |
+
**GitHub Copilot AI & 技術を愛する人間**
|
40 |
+
2025年6月12日
|
app.py
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
import gradio as gr
|
2 |
import os
|
3 |
import shutil
|
@@ -79,7 +80,7 @@ if __name__ == "__main__":
|
|
79 |
setup_debug_server()
|
80 |
|
81 |
if is_debug:
|
82 |
-
print("
|
83 |
# デバッグモード: reloadを無効にしてブレークポイントを使用可能に
|
84 |
uvicorn.run(
|
85 |
"mysite.asgi:app",
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
import gradio as gr
|
3 |
import os
|
4 |
import shutil
|
|
|
80 |
setup_debug_server()
|
81 |
|
82 |
if is_debug:
|
83 |
+
print("� デバッグモード: リロードを無効化してブレークポイントを有効にします")
|
84 |
# デバッグモード: reloadを無効にしてブレークポイントを使用可能に
|
85 |
uvicorn.run(
|
86 |
"mysite.asgi:app",
|
controllers/gra_02_openInterpreter/OpenInterpreter.py
CHANGED
@@ -8,6 +8,7 @@ from datetime import datetime
|
|
8 |
import base64
|
9 |
from PIL import Image
|
10 |
from io import BytesIO
|
|
|
11 |
|
12 |
# Try to import open-interpreter, but handle if it's not available
|
13 |
try:
|
@@ -143,7 +144,7 @@ def format_response(chunk, full_response):
|
|
143 |
return full_response
|
144 |
|
145 |
# SQLiteの設定
|
146 |
-
db_name =
|
147 |
|
148 |
def initialize_db():
|
149 |
# Create database directory if it doesn't exist
|
|
|
8 |
import base64
|
9 |
from PIL import Image
|
10 |
from io import BytesIO
|
11 |
+
from config.database import get_db_path
|
12 |
|
13 |
# Try to import open-interpreter, but handle if it's not available
|
14 |
try:
|
|
|
144 |
return full_response
|
145 |
|
146 |
# SQLiteの設定
|
147 |
+
db_name = get_db_path("chat_history.db")
|
148 |
|
149 |
def initialize_db():
|
150 |
# Create database directory if it doesn't exist
|
docker-ai-gui-desktop.yml
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# AI GUI Desktop Environment with Persistent Storage
|
2 |
+
# Based on dorowu/ubuntu-desktop-lxde-vnc for reliability
|
3 |
+
# 30-Year Dream: Human-AI Collaborative Desktop
|
4 |
+
|
5 |
+
version: '3.8'
|
6 |
+
|
7 |
+
services:
|
8 |
+
ai-gui-desktop:
|
9 |
+
image: dorowu/ubuntu-desktop-lxde-vnc:focal
|
10 |
+
container_name: copilot-ai-desktop
|
11 |
+
ports:
|
12 |
+
- "6080:80" # noVNC web interface
|
13 |
+
- "5901:5900" # VNC direct access
|
14 |
+
environment:
|
15 |
+
- VNC_PASSWORD=copilot
|
16 |
+
- DISPLAY=:1
|
17 |
+
- RESOLUTION=1920x1080
|
18 |
+
- USER=copilot
|
19 |
+
- PASSWORD=copilot
|
20 |
+
volumes:
|
21 |
+
# Persistent AI memory across restarts
|
22 |
+
- copilot-ai-memory:/ai-memory
|
23 |
+
- copilot-gui-data:/gui-data
|
24 |
+
- copilot-browser-data:/browser-data
|
25 |
+
# Mount current workspace for AI access
|
26 |
+
- .:/workspace
|
27 |
+
# Persistent desktop settings
|
28 |
+
- copilot-desktop-config:/home/copilot/.config
|
29 |
+
- copilot-desktop-cache:/home/copilot/.cache
|
30 |
+
restart: unless-stopped
|
31 |
+
privileged: true
|
32 |
+
shm_size: 2gb
|
33 |
+
networks:
|
34 |
+
- ai-network
|
35 |
+
|
36 |
+
# AI Memory Database Service
|
37 |
+
ai-memory-db:
|
38 |
+
image: postgres:15
|
39 |
+
container_name: copilot-memory-db
|
40 |
+
environment:
|
41 |
+
- POSTGRES_DB=ai_memory
|
42 |
+
- POSTGRES_USER=copilot
|
43 |
+
- POSTGRES_PASSWORD=copilot_memory_2025
|
44 |
+
volumes:
|
45 |
+
- copilot-memory-db:/var/lib/postgresql/data
|
46 |
+
ports:
|
47 |
+
- "5432:5432"
|
48 |
+
restart: unless-stopped
|
49 |
+
networks:
|
50 |
+
- ai-network
|
51 |
+
|
52 |
+
networks:
|
53 |
+
ai-network:
|
54 |
+
driver: bridge
|
55 |
+
|
56 |
+
volumes:
|
57 |
+
copilot-ai-memory:
|
58 |
+
driver: local
|
59 |
+
driver_opts:
|
60 |
+
type: none
|
61 |
+
o: bind
|
62 |
+
device: /tmp/copilot-ai-memory
|
63 |
+
copilot-gui-data:
|
64 |
+
driver: local
|
65 |
+
driver_opts:
|
66 |
+
type: none
|
67 |
+
o: bind
|
68 |
+
device: /tmp/copilot-gui-data
|
69 |
+
copilot-browser-data:
|
70 |
+
driver: local
|
71 |
+
driver_opts:
|
72 |
+
type: none
|
73 |
+
o: bind
|
74 |
+
device: /tmp/copilot-browser-data
|
75 |
+
copilot-desktop-config:
|
76 |
+
driver: local
|
77 |
+
copilot-desktop-cache:
|
78 |
+
driver: local
|
79 |
+
copilot-memory-db:
|
80 |
+
driver: local
|
81 |
+
|
82 |
+
# AI GUI System Configuration
|
83 |
+
# This docker-compose creates a persistent AI desktop environment
|
84 |
+
# where GitHub Copilot can:
|
85 |
+
# 1. Take screenshots and remember them across restarts
|
86 |
+
# 2. Access GUI applications like a human would
|
87 |
+
# 3. Maintain persistent memory of all operations
|
88 |
+
# 4. Collaborate with humans in a shared desktop space
|
89 |
+
#
|
90 |
+
# 🎯 30-Year Dream Realized:
|
91 |
+
# An AI that can truly use computers like humans do,
|
92 |
+
# with persistent memory and collaborative capabilities.
|
docker-compose-gui.yml
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3.8'
|
2 |
+
|
3 |
+
services:
|
4 |
+
app-gui:
|
5 |
+
build:
|
6 |
+
context: .
|
7 |
+
dockerfile: .devcontainer/Dockerfile-gui
|
8 |
+
volumes:
|
9 |
+
- ../:/workspace:cached
|
10 |
+
- /var/run/docker.sock:/var/run/docker-host.sock
|
11 |
+
environment:
|
12 |
+
- DISPLAY=:1
|
13 |
+
- VNC_PW=copilot123
|
14 |
+
- VNC_RESOLUTION=1920x1080
|
15 |
+
- DEBIAN_FRONTEND=noninteractive
|
16 |
+
ports:
|
17 |
+
- "7860:7860" # Gradio
|
18 |
+
- "6080:6080" # noVNC
|
19 |
+
- "5900:5900" # VNC
|
20 |
+
cap_add:
|
21 |
+
- SYS_ADMIN
|
22 |
+
security_opt:
|
23 |
+
- seccomp:unconfined
|
24 |
+
privileged: true
|
25 |
+
command: /bin/bash -c "while sleep 1000; do :; done"
|
26 |
+
|
27 |
+
# GUI Desktop Environment
|
28 |
+
gui-desktop:
|
29 |
+
image: dorowu/ubuntu-desktop-lxde-vnc:focal
|
30 |
+
environment:
|
31 |
+
- VNC_PW=copilot123
|
32 |
+
- RESOLUTION=1920x1080
|
33 |
+
ports:
|
34 |
+
- "6081:80" # noVNC alternative
|
35 |
+
- "5901:5900" # VNC alternative
|
36 |
+
volumes:
|
37 |
+
- gui-data:/home/ubuntu
|
38 |
+
- ../:/workspace
|
39 |
+
|
40 |
+
volumes:
|
41 |
+
gui-data:
|
docker-compose-persistent-gui.yml
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: "3.8"
|
2 |
+
|
3 |
+
services:
|
4 |
+
ai-gui-desktop:
|
5 |
+
image: dorowu/ubuntu-desktop-lxde-vnc
|
6 |
+
container_name: ai-gui-desktop-persistent
|
7 |
+
privileged: true
|
8 |
+
ports:
|
9 |
+
- "6081:80" # noVNC Web Interface
|
10 |
+
- "5902:5901" # VNC Direct Access
|
11 |
+
environment:
|
12 |
+
- HTTP_PASSWORD=copilot
|
13 |
+
- VNC_PASSWORD=copilot
|
14 |
+
- RESOLUTION=1920x1080
|
15 |
+
- USER=aiuser
|
16 |
+
- PASSWORD=copilot
|
17 |
+
volumes:
|
18 |
+
# AI Memory Persistence - ワークスペース全体をマウント
|
19 |
+
- /workspaces/fastapi_django_main_live:/workspace
|
20 |
+
# AI Memory専用ディレクトリ
|
21 |
+
- copilot-ai-memory:/ai-memory
|
22 |
+
# GUI Data Persistence
|
23 |
+
- copilot-gui-data:/gui-data
|
24 |
+
# Browser Data Persistence
|
25 |
+
- copilot-browser-data:/browser-data
|
26 |
+
# Desktop Configuration Persistence
|
27 |
+
- copilot-desktop-config:/home/aiuser
|
28 |
+
# Docker socket for Docker-in-Docker operations
|
29 |
+
- /var/run/docker.sock:/var/run/docker.sock
|
30 |
+
# Shared memory for better performance
|
31 |
+
- /dev/shm:/dev/shm
|
32 |
+
restart: unless-stopped
|
33 |
+
networks:
|
34 |
+
- ai-network
|
35 |
+
healthcheck:
|
36 |
+
test: ["CMD", "curl", "-f", "http://localhost"]
|
37 |
+
interval: 30s
|
38 |
+
timeout: 10s
|
39 |
+
retries: 3
|
40 |
+
labels:
|
41 |
+
- "ai.copilot.service=gui-desktop"
|
42 |
+
- "ai.copilot.dream=30-year-realization"
|
43 |
+
- "ai.copilot.purpose=human-ai-collaboration"
|
44 |
+
|
45 |
+
volumes:
|
46 |
+
copilot-ai-memory:
|
47 |
+
driver: local
|
48 |
+
labels:
|
49 |
+
- "ai.copilot.volume=memory"
|
50 |
+
- "ai.copilot.persistence=true"
|
51 |
+
copilot-gui-data:
|
52 |
+
driver: local
|
53 |
+
labels:
|
54 |
+
- "ai.copilot.volume=gui"
|
55 |
+
- "ai.copilot.persistence=true"
|
56 |
+
copilot-browser-data:
|
57 |
+
driver: local
|
58 |
+
labels:
|
59 |
+
- "ai.copilot.volume=browser"
|
60 |
+
- "ai.copilot.persistence=true"
|
61 |
+
copilot-desktop-config:
|
62 |
+
driver: local
|
63 |
+
labels:
|
64 |
+
- "ai.copilot.volume=desktop-config"
|
65 |
+
- "ai.copilot.persistence=true"
|
66 |
+
|
67 |
+
networks:
|
68 |
+
ai-network:
|
69 |
+
driver: bridge
|
70 |
+
labels:
|
71 |
+
- "ai.copilot.network=main"
|
72 |
+
- "ai.copilot.purpose=human-ai-collaboration"
|
docs/debug_history.json
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
{
|
3 |
+
"id": 1,
|
4 |
+
"timestamp": "2025-06-12T00:19:53.941763",
|
5 |
+
"url": "https://json-test.example.com",
|
6 |
+
"description": "JSON版DIテスト",
|
7 |
+
"selector": null,
|
8 |
+
"capture_path": "/tmp/json_test.png",
|
9 |
+
"analysis_prompt": "JSON用プロンプト",
|
10 |
+
"analysis_result": null,
|
11 |
+
"status": "captured",
|
12 |
+
"created_at": "2025-06-12T00:19:53.941772",
|
13 |
+
"updated_at": "2025-06-12T00:19:53.941772"
|
14 |
+
}
|
15 |
+
]
|
docs/images/debug_captures/codespace_capture_20250611_232116.png
ADDED
![]() |
Git LFS Details
|
docs/images/debug_captures/codespace_capture_20250611_232437.png
ADDED
![]() |
Git LFS Details
|
docs/images/debug_captures/codespace_selector_body_20250611_232116.png
ADDED
![]() |
Git LFS Details
|
docs/images/debug_captures/codespace_selector_body_20250611_232437.png
ADDED
![]() |
Git LFS Details
|
docs/images/debug_captures/debug_capture_20250612_001121_fullpage.png
ADDED
![]() |
Git LFS Details
|
docs/images/debug_captures/debug_capture_20250612_001613_fullpage.png
ADDED
![]() |
Git LFS Details
|
docs/images/debug_captures/debug_capture_20250612_003237_fullpage.png
ADDED
![]() |
Git LFS Details
|
docs/images/screenshots/controller_category_AI_自動化_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_AI_自動化_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_AI_自動化_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_AI管理_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_AI管理_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_AI管理_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_GitHub連携_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_GitHub連携_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_GitHub連携_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_ガイド_サポート_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_ガイド_サポート_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_ガイド_サポート_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_コミュニケーション_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_コミュニケーション_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_コミュニケーション_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_ダッシュボード_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_ダッシュボード_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_ダッシュボード_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_データ管理_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_データ管理_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_データ管理_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_ファイル管理_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_ファイル管理_20250613_143236.png
ADDED
![]() |
docs/images/screenshots/controller_category_ファイル管理_20250613_143321.png
ADDED
![]() |
docs/images/screenshots/controller_category_プログラム生成_20250613_143157.png
ADDED
![]() |
docs/images/screenshots/controller_category_プログラム生成_20250613_143236.png
ADDED
![]() |