fix: complete build scripts with all required hidden imports

- Add all core and ui module hidden imports
- Add textual and its submodules
- Add openai and neo4j dependencies
- Update trulymem.spec with dynamic data collection
- Add all platform build scripts (Linux/Windows/macOS)
This commit is contained in:
root
2026-04-12 21:06:59 +08:00
parent 178c45c410
commit efc8182aa2
2 changed files with 99 additions and 14 deletions

View File

@ -1,17 +1,66 @@
# -*- mode: python ; coding: utf-8 -*-
import os
import sys
block_cipher = None
project_root = os.path.dirname(os.path.abspath(SPEC))
sys.path.insert(0, project_root)
datas = []
if os.path.exists(os.path.join(project_root, 'ui', 'styles')):
for root, dirs, files in os.walk(os.path.join(project_root, 'ui', 'styles')):
for f in files:
src = os.path.join(root, f)
dst = os.path.join('ui', 'styles', os.path.relpath(src, os.path.join(project_root, 'ui', 'styles')))
datas.append((src, dst))
if os.path.exists(os.path.join(project_root, 'core', 'prompts', 'templates')):
for root, dirs, files in os.walk(os.path.join(project_root, 'core', 'prompts', 'templates')):
for f in files:
src = os.path.join(root, f)
dst = os.path.join('core', 'prompts', 'templates', os.path.relpath(src, os.path.join(project_root, 'core', 'prompts', 'templates')))
datas.append((src, dst))
a = Analysis(
['trulymem_entry.py'],
pathex=[],
binaries=[],
datas=[
('ui/styles', 'ui/styles'),
('core/prompts/templates', 'core/prompts/templates'),
],
datas=datas,
hiddenimports=[
'textual',
'textual.app',
'textual.widgets',
'textual.css',
'openai',
'openai._client',
'neo4j',
'sqlite3',
'graph_memory_tui',
'core',
'core.embedded_db',
'core.graph_client',
'core.tool_executor',
'core.tool_limiter',
'core.tools',
'core.tools.memory_tools',
'core.prompts',
'core.prompts.prompt_manager',
'ui',
'ui.app',
'ui.models',
'ui.models.message',
'ui.models.config',
'ui.models.log_entry',
'ui.widgets',
'ui.widgets.left_panel',
'ui.widgets.right_panel',
'ui.widgets.input_box',
'ui.widgets.message_history',
'ui.widgets.status_bar',
'ui.handlers',
'ui.services',
'ui.services.config_manager',
],
hookspath=[],
hooksconfig={},
@ -20,7 +69,7 @@ a = Analysis(
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
pyz = PYZ(a.pure, block_cipher)
exe = EXE(
pyz,
a.scripts,