Skip to content

Commit 3726ce4

Browse files
authored
Merge pull request #20 from SentienceAPI/fix_release2
consistent workflow2
2 parents da81791 + 66ee090 commit 3726ce4

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

sentience/browser.py

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,22 +100,78 @@ def start(self) -> None:
100100
"injected_api.js",
101101
]
102102

103+
copied_files = []
103104
for file in files_to_copy:
104105
src = extension_source / file
105106
if src.exists():
106-
shutil.copy2(src, os.path.join(temp_dir, file))
107+
dst = os.path.join(temp_dir, file)
108+
shutil.copy2(src, dst)
109+
copied_files.append(file)
110+
else:
111+
raise FileNotFoundError(
112+
f"Extension file not found: {src}\n"
113+
f"Extension source: {extension_source}\n"
114+
f"Extension source exists: {extension_source.exists()}\n"
115+
f"Files in extension source: {list(extension_source.iterdir()) if extension_source.exists() else 'N/A'}"
116+
)
117+
118+
# Verify all required files were copied
119+
if len(copied_files) != len(files_to_copy):
120+
missing = set(files_to_copy) - set(copied_files)
121+
raise FileNotFoundError(
122+
f"Missing extension files: {missing}\n"
123+
f"Extension source: {extension_source}"
124+
)
125+
126+
# Verify files are in temp directory
127+
for file in files_to_copy:
128+
temp_file = os.path.join(temp_dir, file)
129+
if not os.path.exists(temp_file):
130+
raise FileNotFoundError(
131+
f"File not copied to temp directory: {temp_file}\n"
132+
f"Temp dir: {temp_dir}\n"
133+
f"Files in temp dir: {os.listdir(temp_dir)}"
134+
)
107135

108136
# Copy pkg directory (WASM)
109137
pkg_source = extension_source / "pkg"
110138
if pkg_source.exists():
111139
pkg_dest = os.path.join(temp_dir, "pkg")
112140
shutil.copytree(pkg_source, pkg_dest, dirs_exist_ok=True)
141+
# Verify WASM files were copied
142+
wasm_file = os.path.join(pkg_dest, "sentience_core_bg.wasm")
143+
js_file = os.path.join(pkg_dest, "sentience_core.js")
144+
if not os.path.exists(wasm_file) or not os.path.exists(js_file):
145+
raise FileNotFoundError(
146+
f"WASM files not found after copy. Expected:\n"
147+
f" - {wasm_file}\n"
148+
f" - {js_file}\n"
149+
f"Files in pkg_dest: {os.listdir(pkg_dest) if os.path.exists(pkg_dest) else 'directory does not exist'}\n"
150+
f"Files in pkg_source: {list(pkg_source.iterdir()) if pkg_source.exists() else 'directory does not exist'}"
151+
)
113152
else:
114153
raise FileNotFoundError(
115154
f"WASM files not found at {pkg_source}. "
155+
f"Extension source: {extension_source}\n"
156+
f"Extension source exists: {extension_source.exists()}\n"
157+
f"Files in extension source: {list(extension_source.iterdir()) if extension_source.exists() else 'directory does not exist'}\n"
116158
"Build the extension first: cd sentience-chrome && ./build.sh"
117159
)
118160

161+
# Verify manifest.json is valid JSON
162+
manifest_path = os.path.join(temp_dir, "manifest.json")
163+
try:
164+
import json
165+
with open(manifest_path, 'r') as f:
166+
manifest = json.load(f)
167+
# Verify required manifest fields
168+
if "manifest_version" not in manifest:
169+
raise ValueError("manifest.json missing 'manifest_version' field")
170+
except json.JSONDecodeError as e:
171+
raise ValueError(f"manifest.json is not valid JSON: {e}")
172+
except Exception as e:
173+
raise ValueError(f"Error reading manifest.json: {e}")
174+
119175
# Launch Playwright
120176
self.playwright = sync_playwright().start()
121177

0 commit comments

Comments
 (0)