@circuitwall/jarela 1.4.0 → 1.4.1

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.
Files changed (97) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  15. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +10 -1
  23. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.map +1 -1
  24. package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js +10 -5
  25. package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js.map +1 -1
  26. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +9 -1
  27. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js.map +1 -1
  28. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +33 -8
  29. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.map +1 -1
  30. package/.next/standalone/.next/server/app/page.js +63 -202
  31. package/.next/standalone/.next/server/app/page.js.map +1 -1
  32. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/setup/page.js +1 -1
  35. package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/chunks/1718.js +159 -0
  38. package/.next/standalone/.next/server/chunks/1718.js.map +1 -0
  39. package/.next/standalone/.next/server/chunks/2082.js +6 -3
  40. package/.next/standalone/.next/server/chunks/2082.js.map +1 -1
  41. package/.next/standalone/.next/server/chunks/210.js +28 -0
  42. package/.next/standalone/.next/server/chunks/210.js.map +1 -1
  43. package/.next/standalone/.next/server/chunks/423.js +6 -3
  44. package/.next/standalone/.next/server/chunks/423.js.map +1 -1
  45. package/.next/standalone/.next/server/chunks/4631.js +37 -5
  46. package/.next/standalone/.next/server/chunks/4631.js.map +1 -1
  47. package/.next/standalone/.next/server/chunks/8167.js +255 -204
  48. package/.next/standalone/.next/server/chunks/8167.js.map +1 -1
  49. package/.next/standalone/.next/server/chunks/8866.js +38 -5
  50. package/.next/standalone/.next/server/chunks/8866.js.map +1 -1
  51. package/.next/standalone/.next/server/chunks/9032.js +8 -0
  52. package/.next/standalone/.next/server/chunks/9032.js.map +1 -1
  53. package/.next/standalone/.next/server/chunks/{7883.js → 9557.js} +15 -3
  54. package/.next/standalone/.next/server/chunks/9557.js.map +1 -0
  55. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  56. package/.next/standalone/.next/server/middleware.js +6 -3
  57. package/.next/standalone/.next/server/pages/404.html +2 -2
  58. package/.next/standalone/.next/server/pages/500.html +1 -1
  59. package/.next/standalone/.next/server/proxy.js.map +1 -1
  60. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  61. package/.next/standalone/.next/static/chunks/{2351-68d8987bbe17ba2d.js → 2351-1ab119fb3b48f4c9.js} +258 -205
  62. package/.next/standalone/.next/static/chunks/2351-1ab119fb3b48f4c9.js.map +1 -0
  63. package/.next/standalone/.next/static/chunks/{9209-0d46118e502f8bf5.js → 4097-64691f9110cf167c.js} +14 -2
  64. package/.next/standalone/.next/static/chunks/4097-64691f9110cf167c.js.map +1 -0
  65. package/.next/standalone/.next/static/chunks/app/{page-74846c864241b96d.js → page-145150e0468544e7.js} +64 -203
  66. package/.next/standalone/.next/static/chunks/app/page-145150e0468544e7.js.map +1 -0
  67. package/.next/standalone/.next/static/chunks/app/setup/{page-9a465b5fa755b3c3.js → page-a1463a9ace439ff7.js} +2 -2
  68. package/.next/standalone/.next/static/chunks/app/setup/{page-9a465b5fa755b3c3.js.map → page-a1463a9ace439ff7.js.map} +1 -1
  69. package/.next/standalone/.next/static/chunks/{webpack-ff5627013a5e3842.js → webpack-f4ac5c5f92cfd1c1.js} +13 -1
  70. package/.next/standalone/.next/static/chunks/webpack-f4ac5c5f92cfd1c1.js.map +1 -0
  71. package/.next/standalone/package.json +1 -1
  72. package/CHANGELOG.md +60 -0
  73. package/README.md +1 -1
  74. package/api/client.ts +10 -9
  75. package/app/api/v1/dashboard/currency/route.ts +7 -2
  76. package/app/api/v1/providers/[provider]/probe/route.ts +12 -1
  77. package/app/api/v1/threads/[thread_id]/run/route.ts +22 -8
  78. package/components/layout/AppShell.tsx +53 -17
  79. package/components/setup/PinKeypad.tsx +238 -0
  80. package/components/setup/ScreenLock.tsx +8 -173
  81. package/components/setup/UnlockScreen.tsx +25 -192
  82. package/lib/documents/remote/github.ts +16 -2
  83. package/lib/documents/remote/mail.ts +11 -2
  84. package/lib/lifecycle/shutdown.ts +9 -0
  85. package/lib/providers/github-copilot-auth.ts +2 -0
  86. package/lib/providers/github-copilot.ts +1 -0
  87. package/lib/tools/async-results.ts +11 -0
  88. package/package.json +1 -1
  89. package/scripts/install-to-system.ps1 +2 -2
  90. package/scripts/installed-launcher.ps1 +81 -17
  91. package/.next/standalone/.next/server/chunks/7883.js.map +0 -1
  92. package/.next/standalone/.next/static/chunks/2351-68d8987bbe17ba2d.js.map +0 -1
  93. package/.next/standalone/.next/static/chunks/9209-0d46118e502f8bf5.js.map +0 -1
  94. package/.next/standalone/.next/static/chunks/app/page-74846c864241b96d.js.map +0 -1
  95. package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js.map +0 -1
  96. /package/.next/standalone/.next/static/{AV5AO0yTRABo-NgwxhDe7 → WQdcnm9NyqpeNc0Z8_woo}/_buildManifest.js +0 -0
  97. /package/.next/standalone/.next/static/{AV5AO0yTRABo-NgwxhDe7 → WQdcnm9NyqpeNc0Z8_woo}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  exports.id = 8866;
3
- exports.ids = [2151,3608,8866];
3
+ exports.ids = [1718,2151,3608,8866];
4
4
  exports.modules = {
5
5
 
6
6
  /***/ 3464:
@@ -2915,7 +2915,10 @@ async function indexGmailMail(row) {
2915
2915
  if (list.error) throw new Error(list.error);
2916
2916
  const batch = list.messages ?? [];
2917
2917
  if (batch.length === 0) break;
2918
- const results = await Promise.all(batch.slice(0, limit).map(async (entry)=>{
2918
+ // Use allSettled so a single 404/transient 5xx on one message
2919
+ // doesn't bin the whole page (and stall the cursor on the next
2920
+ // run). Failures get counted into stats.errors instead.
2921
+ const settled = await Promise.allSettled(batch.slice(0, limit).map(async (entry)=>{
2919
2922
  const msg = await (0,gmail_oauth/* googleFetch */.sI)(auth, "Gmail", "https://gmail.googleapis.com/gmail/v1/users/me", `/messages/${encodeURIComponent(entry.id)}?format=full`);
2920
2923
  if (msg.error) throw new Error(msg.error);
2921
2924
  const title = msg.payload ? header(msg.payload.headers, "Subject") ?? entry.id : entry.id;
@@ -2937,10 +2940,16 @@ async function indexGmailMail(row) {
2937
2940
  text
2938
2941
  });
2939
2942
  }));
2940
- for (const [index, item] of results.entries()){
2943
+ for (const [index, outcome] of settled.entries()){
2941
2944
  const id = batch[index]?.id ?? "";
2942
2945
  if (id) keep.add(`gmail://${id}`);
2943
2946
  stats.scanned++;
2947
+ if (outcome.status === "rejected") {
2948
+ stats.errors++;
2949
+ console.warn(`[mail-indexer] message ${id} failed:`, outcome.reason);
2950
+ continue;
2951
+ }
2952
+ const item = outcome.value;
2944
2953
  stats.added += item.status === "added" ? 1 : 0;
2945
2954
  stats.updated += item.status === "updated" ? 1 : 0;
2946
2955
  stats.unchanged += item.status === "unchanged" ? 1 : 0;
@@ -3281,10 +3290,23 @@ async function runGithubPullsIndexer(source) {
3281
3290
  if (cutoffMs !== null && Number.isFinite(updatedMs) && updatedMs < cutoffMs) break outer;
3282
3291
  if (Number.isFinite(sinceMs) && Number.isFinite(updatedMs) && updatedMs <= sinceMs) break outer;
3283
3292
  try {
3284
- const [comments, reviews] = await Promise.all([
3293
+ // allSettled so a failed comments fetch doesn't also discard
3294
+ // the reviews (and vice versa); we still index what we have and
3295
+ // count the partial as an error.
3296
+ const [commentsRes, reviewsRes] = await Promise.allSettled([
3285
3297
  listIssueComments(auth, cfg.owner, cfg.repo, pr.number),
3286
3298
  listReviews(auth, cfg.owner, cfg.repo, pr.number)
3287
3299
  ]);
3300
+ const comments = commentsRes.status === "fulfilled" ? commentsRes.value : [];
3301
+ const reviews = reviewsRes.status === "fulfilled" ? reviewsRes.value : [];
3302
+ if (commentsRes.status === "rejected") {
3303
+ stats.errors++;
3304
+ console.warn(`[github-indexer] pr#${pr.number} comments failed:`, commentsRes.reason);
3305
+ }
3306
+ if (reviewsRes.status === "rejected") {
3307
+ stats.errors++;
3308
+ console.warn(`[github-indexer] pr#${pr.number} reviews failed:`, reviewsRes.reason);
3309
+ }
3288
3310
  const text = flattenPull(pr, comments, reviews);
3289
3311
  const res = await upsertRemoteDocument(source.id, {
3290
3312
  path: `github-pull://${cfg.owner}/${cfg.repo}/${pr.number}`,
@@ -3294,8 +3316,9 @@ async function runGithubPullsIndexer(source) {
3294
3316
  });
3295
3317
  applyUpsert(stats, res);
3296
3318
  if (updated && (!highWater || updated > highWater)) highWater = updated;
3297
- } catch {
3319
+ } catch (err) {
3298
3320
  stats.errors++;
3321
+ console.warn(`[github-indexer] pr#${pr.number} upsert failed:`, err);
3299
3322
  }
3300
3323
  }
3301
3324
  if (pulls.length < PR_PAGE_LIMIT) break;
@@ -3609,6 +3632,7 @@ function getOrCreateOnDemandSource() {
3609
3632
  /* harmony export */ eN: () => (/* binding */ completeAsyncCall),
3610
3633
  /* harmony export */ f3: () => (/* binding */ startAsyncCall),
3611
3634
  /* harmony export */ m3: () => (/* binding */ consumeAsyncResult),
3635
+ /* harmony export */ stopAsyncResults: () => (/* binding */ stopAsyncResults),
3612
3636
  /* harmony export */ zc: () => (/* binding */ failAsyncCall)
3613
3637
  /* harmony export */ });
3614
3638
  /* unused harmony exports DEFAULT_TTL_MS, MAX_ENTRIES, sweepExpired, __resetStore, __backdateFinished */
@@ -3648,6 +3672,15 @@ function ensureSweeper() {
3648
3672
  }, SWEEP_INTERVAL_MS);
3649
3673
  sweeper.unref?.();
3650
3674
  }
3675
+ /**
3676
+ * Tear down the sweeper. Called from the shutdown drain so the timer
3677
+ * isn't keeping the event loop alive past close-time. Idempotent.
3678
+ */ function stopAsyncResults() {
3679
+ if (sweeper) {
3680
+ clearInterval(sweeper);
3681
+ sweeper = null;
3682
+ }
3683
+ }
3651
3684
  /**
3652
3685
  * Carve out a slot for a new async tool call and return its key.
3653
3686
  * The key is opaque and URL-safe — the agent treats it as a token.