gm-qwen 2.0.806 → 2.0.808

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/bootstrap.js CHANGED
@@ -173,8 +173,10 @@ function fetchToFile(url, destPath, expectedTotal) {
173
173
  const append = res.statusCode === 206 && existing > 0;
174
174
  const out = fs.createWriteStream(destPath, { flags: append ? 'a' : 'w' });
175
175
  let bytes = append ? existing : 0;
176
- let lastLog = Date.now();
176
+ let lastStderr = Date.now();
177
177
  let lastByte = Date.now();
178
+ const fetchStart = Date.now();
179
+ obsEvent('bootstrap', 'fetch.start', { url, resume_from: existing, status: res.statusCode });
178
180
  const stallTimer = setInterval(() => {
179
181
  if (Date.now() - lastByte > STALL_TIMEOUT_MS) {
180
182
  clearInterval(stallTimer);
@@ -184,15 +186,19 @@ function fetchToFile(url, destPath, expectedTotal) {
184
186
  res.on('data', c => {
185
187
  bytes += c.length;
186
188
  lastByte = Date.now();
187
- if (Date.now() - lastLog > 5000) {
189
+ if (Date.now() - lastStderr > 5000) {
188
190
  const pct = expectedTotal ? ` ${Math.floor(bytes / expectedTotal * 100)}%` : '';
189
- log(`downloading: ${(bytes / 1048576).toFixed(1)} MiB${pct}`);
190
- lastLog = Date.now();
191
+ try { process.stderr.write(`[plugkit-bootstrap] downloading: ${(bytes / 1048576).toFixed(1)} MiB${pct}\n`); } catch (_) {}
192
+ lastStderr = Date.now();
191
193
  }
192
194
  });
193
195
  res.pipe(out);
194
- out.on('finish', () => { clearInterval(stallTimer); out.close(() => resolve(bytes)); });
195
- out.on('error', err => { clearInterval(stallTimer); reject(err); });
196
+ out.on('finish', () => {
197
+ clearInterval(stallTimer);
198
+ obsEvent('bootstrap', 'fetch.end', { url, bytes, dur_ms: Date.now() - fetchStart, ok: true });
199
+ out.close(() => resolve(bytes));
200
+ });
201
+ out.on('error', err => { clearInterval(stallTimer); obsEvent('bootstrap', 'fetch.end', { url, bytes, dur_ms: Date.now() - fetchStart, ok: false, err: String(err.message || err) }); reject(err); });
196
202
  res.on('error', err => { clearInterval(stallTimer); reject(err); });
197
203
  res.on('end', () => clearInterval(stallTimer));
198
204
  });
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.806",
3
+ "version": "2.0.808",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-qwen",
3
- "version": "2.0.806",
3
+ "version": "2.0.808",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",