offsite 0.0.15 → 0.0.17

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 (83) hide show
  1. package/apps/server/dist/main.mjs +42 -9
  2. package/apps/server/dist/main.mjs.map +1 -1
  3. package/apps/web/dist/assets/{angular-html-CG4HtNlx.js → angular-html-DS1oV12F.js} +1 -1
  4. package/apps/web/dist/assets/{angular-ts-CsUs7XSt.js → angular-ts-DGEt84_g.js} +1 -1
  5. package/apps/web/dist/assets/{apl-BZNYboe1.js → apl-bz_iDiNf.js} +1 -1
  6. package/apps/web/dist/assets/{astro-BJJJ2TCY.js → astro-jXSlLJ7l.js} +1 -1
  7. package/apps/web/dist/assets/{blade-DPPHNv9A.js → blade-2sxYYh5A.js} +1 -1
  8. package/apps/web/dist/assets/{c-DewL-caT.js → c-DapwzVu-.js} +1 -1
  9. package/apps/web/dist/assets/{chapel-BC24MUCE.js → chapel-DUoqr6M4.js} +1 -1
  10. package/apps/web/dist/assets/{cobol-CrP0JgFd.js → cobol-Cn0D9nVy.js} +1 -1
  11. package/apps/web/dist/assets/{coffee-Do6yzljS.js → coffee-C1tCcS8h.js} +1 -1
  12. package/apps/web/dist/assets/{cpp-BkpYSJP8.js → cpp-DxWN2Okg.js} +1 -1
  13. package/apps/web/dist/assets/{crystal-CeGzC-WW.js → crystal-DF-BMake.js} +1 -1
  14. package/apps/web/dist/assets/{css-Dw9LKU-N.js → css-DO_8FP-m.js} +1 -1
  15. package/apps/web/dist/assets/{edge-DOlsjMpU.js → edge-D8r2HbS9.js} +1 -1
  16. package/apps/web/dist/assets/{elixir-Of98ZUP3.js → elixir-K6buEKBc.js} +1 -1
  17. package/apps/web/dist/assets/{elm-DcO8avoe.js → elm-B78wD7Un.js} +1 -1
  18. package/apps/web/dist/assets/{erb-DGRCSrUQ.js → erb-DuhNLWPu.js} +1 -1
  19. package/apps/web/dist/assets/{git-rebase-CF43k64m.js → git-rebase-C6n0imm6.js} +1 -1
  20. package/apps/web/dist/assets/{glimmer-js-DzTtVcUh.js → glimmer-js-B65Nng8o.js} +1 -1
  21. package/apps/web/dist/assets/{glimmer-ts-BGpaKkl4.js → glimmer-ts-Cme47tem.js} +1 -1
  22. package/apps/web/dist/assets/{glsl-B6O-e93J.js → glsl-DCAs0c4j.js} +1 -1
  23. package/apps/web/dist/assets/{graphql-8XdLbcFd.js → graphql-CjoRmsAT.js} +1 -1
  24. package/apps/web/dist/assets/{hack-DF9S8RPk.js → hack-W5aeWZGp.js} +1 -1
  25. package/apps/web/dist/assets/{haml-D7K9Vy7l.js → haml-C_s1GJd7.js} +1 -1
  26. package/apps/web/dist/assets/{handlebars-CodAKXOQ.js → handlebars-CYz9msjm.js} +1 -1
  27. package/apps/web/dist/assets/{html-derivative-Bm8ARfNX.js → html-derivative-fPnJ7c-5.js} +1 -1
  28. package/apps/web/dist/assets/{html-DINw2T6o.js → html-rJzVMoNs.js} +1 -1
  29. package/apps/web/dist/assets/{http-CzdVlK4g.js → http-DIR9LW29.js} +1 -1
  30. package/apps/web/dist/assets/{hurl-DSRYfTy3.js → hurl-73h4sQYH.js} +1 -1
  31. package/apps/web/dist/assets/{index-_3a5liAb.js → index-CbDKWecy.js} +135 -134
  32. package/apps/web/dist/assets/index-aoUjY0qi.css +2 -0
  33. package/apps/web/dist/assets/{java-CJrEr5nb.js → java-CC9QxJEZ.js} +1 -1
  34. package/apps/web/dist/assets/{javascript-BRzSAlK0.js → javascript-BhEdsWyv.js} +1 -1
  35. package/apps/web/dist/assets/{jinja-BCkNTi07.js → jinja-wBZAPGc9.js} +1 -1
  36. package/apps/web/dist/assets/{jison-CuVfSCOU.js → jison-bZuttet2.js} +1 -1
  37. package/apps/web/dist/assets/{json-CivFBkRR.js → json-BwYVcFZr.js} +1 -1
  38. package/apps/web/dist/assets/{jsx-Bn8oTRCQ.js → jsx-DZ0EGwxr.js} +1 -1
  39. package/apps/web/dist/assets/{julia-S7B4dPpO.js → julia-Bj20nWQB.js} +1 -1
  40. package/apps/web/dist/assets/{just-BkwYofB3.js → just-pKKGVoyp.js} +1 -1
  41. package/apps/web/dist/assets/{latex-CHtrQEQW.js → latex-DN5Fi2zg.js} +1 -1
  42. package/apps/web/dist/assets/{liquid-BiWMrFWE.js → liquid-DtPrOPBs.js} +1 -1
  43. package/apps/web/dist/assets/{lua-DH2dy4b5.js → lua-C1ueigSQ.js} +1 -1
  44. package/apps/web/dist/assets/{marko-D1J2FQwH.js → marko-BAsjT454.js} +1 -1
  45. package/apps/web/dist/assets/{mdc-DdU0BPrI.js → mdc-DwMa0Ya_.js} +1 -1
  46. package/apps/web/dist/assets/{nginx-aVr0h4x0.js → nginx-BlYeGp57.js} +1 -1
  47. package/apps/web/dist/assets/{nim-D3uKiFs9.js → nim-DASYTjR5.js} +1 -1
  48. package/apps/web/dist/assets/{org-Dlc-mmBJ.js → org-DSeAzk6D.js} +1 -1
  49. package/apps/web/dist/assets/{perl-Db2FD7eY.js → perl-BGPYGeVd.js} +1 -1
  50. package/apps/web/dist/assets/{php-BKnY42CF.js → php-kgT6t38x.js} +1 -1
  51. package/apps/web/dist/assets/{pug-Dv1XMHZo.js → pug-COTHnC13.js} +1 -1
  52. package/apps/web/dist/assets/{qml-DLrUK6Mn.js → qml-DhqsM4c7.js} +1 -1
  53. package/apps/web/dist/assets/{r-YY5yALTA.js → r-D-KnVREb.js} +1 -1
  54. package/apps/web/dist/assets/{razor-CHwb0eZk.js → razor-BGH58TzE.js} +1 -1
  55. package/apps/web/dist/assets/{regexp-BbKQ-CAd.js → regexp-BHxEHonG.js} +1 -1
  56. package/apps/web/dist/assets/{rst-CfgFwgqW.js → rst-UweowKJr.js} +1 -1
  57. package/apps/web/dist/assets/{ruby-CWYxEIgK.js → ruby-DtfMo-6m.js} +1 -1
  58. package/apps/web/dist/assets/{sas-BIhkpR95.js → sas-DkQGY_o2.js} +1 -1
  59. package/apps/web/dist/assets/{scss-CD48eC-9.js → scss-QYV6e_ks.js} +1 -1
  60. package/apps/web/dist/assets/{shellscript-DQJbmpgk.js → shellscript-CBTXJvxj.js} +1 -1
  61. package/apps/web/dist/assets/{shellsession-BsbY07m-.js → shellsession-CT0a4IuI.js} +1 -1
  62. package/apps/web/dist/assets/{soy-2Y50DZFi.js → soy-B3ufTOzS.js} +1 -1
  63. package/apps/web/dist/assets/{sql-nKnfvr4s.js → sql-BhGvXJN_.js} +1 -1
  64. package/apps/web/dist/assets/{stata-Dqj31JrM.js → stata-BYhfUPEu.js} +1 -1
  65. package/apps/web/dist/assets/{surrealql-DjKPQgK9.js → surrealql-UIZa84-V.js} +1 -1
  66. package/apps/web/dist/assets/{svelte-1HUOD4gz.js → svelte-SkphxuD6.js} +1 -1
  67. package/apps/web/dist/assets/{templ-CjuUG0Pz.js → templ-C8T3Zgrx.js} +1 -1
  68. package/apps/web/dist/assets/{tex-DImgjGWJ.js → tex-Be-e7W9g.js} +1 -1
  69. package/apps/web/dist/assets/{ts-tags-uu3b2KWy.js → ts-tags-Bk8_Hqg_.js} +1 -1
  70. package/apps/web/dist/assets/{tsx-DLBT5mtF.js → tsx-B_hC-_lk.js} +1 -1
  71. package/apps/web/dist/assets/{twig-CUqAREOD.js → twig-pKLKVHRj.js} +1 -1
  72. package/apps/web/dist/assets/{typescript-BJx9F5MO.js → typescript-D8MumUKS.js} +1 -1
  73. package/apps/web/dist/assets/{typst-DGjRmWJl.js → typst-DCcUGqaw.js} +1 -1
  74. package/apps/web/dist/assets/{vue-D4sa_D6w.js → vue-B_0IsDtY.js} +1 -1
  75. package/apps/web/dist/assets/{vue-html-D9bXwnxX.js → vue-html-B42dVyQs.js} +1 -1
  76. package/apps/web/dist/assets/{vue-vine-CltCK1Bg.js → vue-vine-CUms6qs_.js} +1 -1
  77. package/apps/web/dist/assets/{xml-BeUIBscE.js → xml-Dh5mAVtG.js} +1 -1
  78. package/apps/web/dist/assets/{xsl-Dp0u2Kgu.js → xsl-73EQy__K.js} +1 -1
  79. package/apps/web/dist/assets/{yaml-BSM_mxxD.js → yaml-C5lWNsLB.js} +1 -1
  80. package/apps/web/dist/index.html +2 -2
  81. package/apps/web/dist/sw.js +1 -1
  82. package/package.json +1 -1
  83. package/apps/web/dist/assets/index-DKU43bgp.css +0 -2
@@ -1,5 +1,5 @@
1
1
  import { createHash, randomBytes, randomUUID } from "node:crypto";
2
- import { chmodSync, closeSync, createReadStream, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, watch, writeFileSync } from "node:fs";
2
+ import { chmodSync, closeSync, createReadStream, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, watch, writeFileSync } from "node:fs";
3
3
  import { createServer } from "node:http";
4
4
  import path from "node:path";
5
5
  import { consola } from "consola";
@@ -2722,14 +2722,27 @@ async function updateSession(id, patch) {
2722
2722
  break;
2723
2723
  case "opencode": await renameOpenCode(id, patch.title);
2724
2724
  }
2725
- if (patch.status === "inactive") db.delete(sessions$1).where(eq(sessions$1.sessionId, id)).run();
2726
- else if (patch.status !== void 0) db.insert(sessions$1).values({
2727
- sessionId: id,
2728
- status: patch.status
2729
- }).onConflictDoUpdate({
2730
- target: sessions$1.sessionId,
2731
- set: { status: patch.status }
2732
- }).run();
2725
+ if (patch.status === "inactive") {
2726
+ const run = runs.get(id);
2727
+ if (run !== void 0) {
2728
+ if (run.running) await run.interrupt();
2729
+ run.stop();
2730
+ await run.closed;
2731
+ }
2732
+ db.delete(sessions$1).where(eq(sessions$1.sessionId, id)).run();
2733
+ } else if (patch.status !== void 0) {
2734
+ const set = patch.status === "active" ? {
2735
+ status: patch.status,
2736
+ interactedAt: Date.now()
2737
+ } : { status: patch.status };
2738
+ db.insert(sessions$1).values({
2739
+ sessionId: id,
2740
+ ...set
2741
+ }).onConflictDoUpdate({
2742
+ target: sessions$1.sessionId,
2743
+ set
2744
+ }).run();
2745
+ }
2733
2746
  if (patch.title !== void 0) refreshSessions(providerOf(id));
2734
2747
  }
2735
2748
  async function removeSession(id) {
@@ -4448,6 +4461,20 @@ async function push$1(cwd) {
4448
4461
  throw new Error((error instanceof Error ? error.message : String(error)).split("\n").filter((line) => line.trim() !== "" && !line.startsWith("hint:") && !line.startsWith("Command failed:")).join("\n"), { cause: error });
4449
4462
  }
4450
4463
  }
4464
+ async function localBranches(cwd) {
4465
+ return (await git(cwd, [
4466
+ "branch",
4467
+ "--sort=-committerdate",
4468
+ "--format=%(refname:short)"
4469
+ ])).stdout.split("\n").filter(Boolean);
4470
+ }
4471
+ async function switchBranch(cwd, branch, create) {
4472
+ await git(cwd, create ? [
4473
+ "switch",
4474
+ "--create",
4475
+ branch
4476
+ ] : ["switch", branch]);
4477
+ }
4451
4478
  async function pullRequestBranches(cwd) {
4452
4479
  const head = (await gitStatus(cwd)).branch;
4453
4480
  if (head === null) throw new Error("Not on a branch");
@@ -4672,6 +4699,7 @@ function newFilePatch(cwd, file, prefix) {
4672
4699
  const name = `${prefix}${file}`;
4673
4700
  const header = `diff --git a/${name} b/${name}\nnew file\n--- /dev/null\n+++ b/${name}\n`;
4674
4701
  const full = path.join(cwd, file);
4702
+ if (lstatSync(full).isSymbolicLink()) return `${header}@@ -0,0 +1 @@\n+${readlinkSync(full)}\n`;
4675
4703
  if (statSync(full).size > NEW_FILE_LIMIT) return `${header}Binary or large file\n`;
4676
4704
  const content = readFileSync(full, "utf8");
4677
4705
  if (content.includes("\0")) return `${header}Binary or large file\n`;
@@ -6016,6 +6044,11 @@ const handlers = {
6016
6044
  return null;
6017
6045
  },
6018
6046
  "git.branches": (params) => pullRequestBranches(path.join(projectPath(params.projectId), params.repo)),
6047
+ "git.localBranches": (params) => localBranches(path.join(projectPath(params.projectId), params.repo)),
6048
+ "git.switch": async (params) => {
6049
+ await switchBranch(path.join(projectPath(params.projectId), params.repo), params.branch, params.create);
6050
+ return null;
6051
+ },
6019
6052
  "git.pullRequest": (params) => preparePullRequest(path.join(projectPath(params.projectId), params.repo), params.base, params.commit),
6020
6053
  "git.createPullRequest": (params) => createPullRequest(path.join(projectPath(params.projectId), params.repo), params),
6021
6054
  "push.subscribe": (params, client) => {