@@ -63,36 +63,25 @@ jobs:
6363 mkdir -p extension-temp
6464 cd extension-temp
6565
66- # First, try to download the zip archive if available
67- ZIP_URL=$(curl -s -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" \
66+ # Download individual files from release (reliable method - no zip)
67+ echo "📁 Downloading individual files from release..."
68+ curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" \
6869 "https://api.github.com/repos/$REPO/releases/tags/$TAG" | \
69- jq -r '.assets[] | select(.name == "extension-package.zip") | .browser_download_url')
70-
71- if [ -n "$ZIP_URL" ] && [ "$ZIP_URL" != "null" ]; then
72- echo "📦 Downloading extension-package.zip..."
73- curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" "$ZIP_URL" -o extension-package.zip
74- unzip -q extension-package.zip -d .
75- # Files should now be in extension-temp/extension-package/ or extension-temp/
76- if [ -d "extension-package" ]; then
77- mv extension-package/* . 2>/dev/null || true
78- rmdir extension-package 2>/dev/null || true
79- fi
80- else
81- echo "📁 Downloading individual files from release..."
82- # Download each file from release
83- curl -s -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" \
84- "https://api.github.com/repos/$REPO/releases/tags/$TAG" | \
85- jq -r '.assets[] | select(.name | endswith(".js") or endswith(".wasm") or endswith(".json") or endswith(".d.ts")) | .browser_download_url' | \
86- while read url; do
87- if [ -n "$url" ] && [ "$url" != "null" ]; then
88- filename=$(basename "$url")
89- echo " Downloading $filename..."
90- curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" "$url" -o "$filename"
70+ jq -r '.assets[] | select(.name | endswith(".js") or endswith(".wasm") or endswith(".json") or endswith(".d.ts")) | "\(.browser_download_url)|\(.name)"' | \
71+ while IFS='|' read -r url name; do
72+ if [ -n "$url" ] && [ "$url" != "null" ] && [ -n "$name" ]; then
73+ # Preserve directory structure from asset name
74+ # If name contains '/', create directories
75+ dir=$(dirname "$name")
76+ if [ "$dir" != "." ]; then
77+ mkdir -p "$dir"
9178 fi
92- done
93- fi
79+ echo " Downloading $name..."
80+ curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" "$url" -o "$name"
81+ fi
82+ done
9483
95- # Verify files were downloaded
84+ # Verify downloaded files
9685 echo "📋 Downloaded files:"
9786 ls -la
9887
@@ -102,34 +91,62 @@ jobs:
10291 # Create extension directory structure
10392 mkdir -p sentience/extension/pkg
10493
105- # Copy extension files (check both root and pkg subdirectory)
106- cp extension-temp/manifest.json sentience/extension/ 2>/dev/null || echo "⚠️ manifest.json not found in release"
107- cp extension-temp/content.js sentience/extension/ 2>/dev/null || echo "⚠️ content.js not found in release"
108- cp extension-temp/background.js sentience/extension/ 2>/dev/null || echo "⚠️ background.js not found in release"
109- cp extension-temp/injected_api.js sentience/extension/ 2>/dev/null || echo "⚠️ injected_api.js not found in release"
94+ # Copy extension files (handle both root and extension-package/ subdirectory)
95+ # Check root first, then extension-package/ subdirectory
96+ if [ -f "extension-temp/manifest.json" ]; then
97+ cp extension-temp/manifest.json sentience/extension/
98+ elif [ -f "extension-temp/extension-package/manifest.json" ]; then
99+ cp extension-temp/extension-package/manifest.json sentience/extension/
100+ else
101+ echo "⚠️ manifest.json not found"
102+ fi
103+
104+ if [ -f "extension-temp/content.js" ]; then
105+ cp extension-temp/content.js sentience/extension/
106+ elif [ -f "extension-temp/extension-package/content.js" ]; then
107+ cp extension-temp/extension-package/content.js sentience/extension/
108+ else
109+ echo "⚠️ content.js not found"
110+ fi
111+
112+ if [ -f "extension-temp/background.js" ]; then
113+ cp extension-temp/background.js sentience/extension/
114+ elif [ -f "extension-temp/extension-package/background.js" ]; then
115+ cp extension-temp/extension-package/background.js sentience/extension/
116+ else
117+ echo "⚠️ background.js not found"
118+ fi
119+
120+ if [ -f "extension-temp/injected_api.js" ]; then
121+ cp extension-temp/injected_api.js sentience/extension/
122+ elif [ -f "extension-temp/extension-package/injected_api.js" ]; then
123+ cp extension-temp/extension-package/injected_api.js sentience/extension/
124+ else
125+ echo "⚠️ injected_api.js not found"
126+ fi
110127
111- # Copy WASM files (check both root and pkg subdirectory )
128+ # Copy WASM files (check both locations )
112129 if [ -f "extension-temp/pkg/sentience_core.js" ]; then
113130 cp extension-temp/pkg/sentience_core.js sentience/extension/pkg/
114- elif [ -f "extension-temp/sentience_core.js" ]; then
115- cp extension-temp/sentience_core.js sentience/extension/pkg/
131+ elif [ -f "extension-temp/extension-package/pkg/ sentience_core.js" ]; then
132+ cp extension-temp/extension-package/pkg/ sentience_core.js sentience/extension/pkg/
116133 else
117134 echo "⚠️ sentience_core.js not found"
118135 fi
119136
120137 if [ -f "extension-temp/pkg/sentience_core_bg.wasm" ]; then
121138 cp extension-temp/pkg/sentience_core_bg.wasm sentience/extension/pkg/
122- elif [ -f "extension-temp/sentience_core_bg.wasm" ]; then
123- cp extension-temp/sentience_core_bg.wasm sentience/extension/pkg/
139+ elif [ -f "extension-temp/extension-package/pkg/ sentience_core_bg.wasm" ]; then
140+ cp extension-temp/extension-package/pkg/ sentience_core_bg.wasm sentience/extension/pkg/
124141 else
125142 echo "⚠️ sentience_core_bg.wasm not found"
126143 fi
127144
128145 # Copy TypeScript definitions
129146 if [ -d "extension-temp/pkg" ]; then
130147 cp extension-temp/pkg/*.d.ts sentience/extension/pkg/ 2>/dev/null || echo "⚠️ Type definitions not found"
131- elif [ -d "extension-temp" ]; then
132- cp extension-temp/*.d.ts sentience/extension/pkg/ 2>/dev/null || echo "⚠️ Type definitions not found"
148+ elif [ -d "extension-temp/extension-package/pkg " ]; then
149+ cp extension-temp/extension-package/pkg/ *.d.ts sentience/extension/pkg/ 2>/dev/null || echo "⚠️ Type definitions not found"
133150 fi
134151
135152 # Verify copied files
@@ -156,9 +173,9 @@ jobs:
156173 if : steps.release.outputs.skip != 'true' && steps.changes.outputs.changed == 'true'
157174 uses : peter-evans/create-pull-request@v5
158175 with :
159- # Use GITHUB_TOKEN (built-in) if repository allows PR creation , otherwise use PR_TOKEN (PAT)
176+ # Use PR_TOKEN if available (for repos with org restrictions) , otherwise use GITHUB_TOKEN
160177 # To use PAT: create secret named PR_TOKEN with a Personal Access Token that has 'repo' scope
161- token : ${{ secrets.PR_TOKEN || secrets.GITHUB_TOKEN }}
178+ token : ${{ secrets.PR_TOKEN }}
162179 commit-message : " chore: sync extension files from sentience-chrome ${{ steps.release.outputs.tag }}"
163180 title : " Sync Extension: ${{ steps.release.outputs.tag }}"
164181 body : |
0 commit comments