@sideboard-ai/core 0.1.246 → 0.1.247

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 (48) hide show
  1. package/dist/{abletime-OI6FNSXX.js → abletime-GAPUN2LL.js} +4 -4
  2. package/dist/{abletime-CWIJ7INC.js → abletime-HTRIHTL5.js} +4 -4
  3. package/dist/{abletime-oauth-CHVTUZBR.js → abletime-oauth-G6ZPGVAE.js} +3 -3
  4. package/dist/{abletime-oauth-PUIPZTA4.js → abletime-oauth-ME7ZY2RS.js} +3 -3
  5. package/dist/{abletime-rest-32NIVXAY.js → abletime-rest-73EKIAZU.js} +3 -3
  6. package/dist/{abletime-rest-APJUKFKL.js → abletime-rest-M2D2NELV.js} +3 -3
  7. package/dist/{agents-G7F3BJNB.js → agents-3PQ2BWGB.js} +5 -5
  8. package/dist/{agents-47WI5IV2.js → agents-7SCJTTZN.js} +5 -5
  9. package/dist/{app-settings-VOPXJMGV.js → app-settings-2BHGANQH.js} +7 -1
  10. package/dist/{app-settings-652J57CX.js → app-settings-NKXH4PKM.js} +7 -1
  11. package/dist/{chunk-576S3HJ7.js → chunk-64NUGRZ3.js} +4 -4
  12. package/dist/{chunk-IMO7AZI4.js → chunk-6HIAYIXT.js} +2 -2
  13. package/dist/{chunk-WURF67ID.js → chunk-BEQE7VOE.js} +5 -5
  14. package/dist/{chunk-6I5YQTNK.js → chunk-CXTIOJRX.js} +12 -0
  15. package/dist/{chunk-RLNEKXXT.js → chunk-D3DYMGZS.js} +4 -4
  16. package/dist/{chunk-TLPJ44Y7.js → chunk-ERQYYL4I.js} +74 -23
  17. package/dist/{chunk-C64YQAA6.js → chunk-GFGSC4Z7.js} +3 -3
  18. package/dist/{chunk-43F44EKX.js → chunk-GVAR6R6R.js} +2 -2
  19. package/dist/{chunk-QFRX5S2E.js → chunk-KFXP4KSP.js} +143 -24
  20. package/dist/{chunk-G45QP2ZD.js → chunk-LPS6D346.js} +3 -3
  21. package/dist/{chunk-7HOKP4GR.js → chunk-PELMZRDB.js} +12 -0
  22. package/dist/{chunk-PPJ5JTWA.js → chunk-QVQPIFBV.js} +28 -2
  23. package/dist/{chunk-QNJXJIWJ.js → chunk-RF46WMSI.js} +5 -5
  24. package/dist/{chunk-GFRC6JQN.js → chunk-U2ZZMGPV.js} +4 -4
  25. package/dist/{chunk-HRWCW6LC.js → chunk-UVWIYSAA.js} +4 -4
  26. package/dist/{chunk-E6C5NR46.js → chunk-W4F7JKXF.js} +20 -6
  27. package/dist/{chunk-YLGBQVRK.js → chunk-XEBQRCDW.js} +28 -2
  28. package/dist/{chunk-5ZFULOTC.js → chunk-XM4UIFQU.js} +20 -6
  29. package/dist/{chunk-BL2UGKWU.js → chunk-Z7QWXE4W.js} +3 -3
  30. package/dist/{coordinator-prompt-ZBYRREHD.js → coordinator-prompt-BFO2TAVR.js} +4 -4
  31. package/dist/{coordinator-prompt-WQIICPT6.js → coordinator-prompt-IG676OSP.js} +4 -4
  32. package/dist/{global-workspace-3SQU4GL4.js → global-workspace-J6H7X5SM.js} +4 -4
  33. package/dist/{global-workspace-2N6KISDO.js → global-workspace-RLCICVQE.js} +4 -4
  34. package/dist/index.cjs +193 -14
  35. package/dist/index.d.cts +66 -2
  36. package/dist/index.d.ts +66 -2
  37. package/dist/index.js +27 -16
  38. package/dist/mcp/run-stdio.cjs +117 -14
  39. package/dist/mcp/run-stdio.js +17 -15
  40. package/dist/{orchestrator-DPMS5KMY.js → orchestrator-2NZUV4LI.js} +6 -6
  41. package/dist/{orchestrator-2QGJ7CW2.js → orchestrator-JCETTHVV.js} +6 -6
  42. package/dist/{thread-store-JQB7KZJR.js → thread-store-BEBZMOS7.js} +1 -1
  43. package/dist/{thread-store-SCV2IZYS.js → thread-store-S6PJADDM.js} +1 -1
  44. package/dist/{workspaces-QLKWW3O2.js → workspaces-NJF3GG5F.js} +4 -4
  45. package/dist/{workspaces-CFI7XVAE.js → workspaces-OLBW42V3.js} +4 -4
  46. package/dist/{worktree-PK3QETXO.js → worktree-2FYRYJTB.js} +3 -3
  47. package/dist/{worktree-4UAOZUJ4.js → worktree-UKLK7VHH.js} +3 -3
  48. package/package.json +1 -1
@@ -44,7 +44,7 @@ import {
44
44
  summarizeTurnStderr,
45
45
  toolDescription,
46
46
  turnFailChatText
47
- } from "./chunk-HRWCW6LC.js";
47
+ } from "./chunk-UVWIYSAA.js";
48
48
  import {
49
49
  SLACK_REPLY_FORMATTING,
50
50
  addWorkspace,
@@ -67,12 +67,13 @@ import {
67
67
  stageAbsolutePathsAsAttachments,
68
68
  stageBuffersAsAttachments,
69
69
  syncWorkspacesFromThreads
70
- } from "./chunk-576S3HJ7.js";
70
+ } from "./chunk-64NUGRZ3.js";
71
71
  import {
72
72
  addPrStackLayer,
73
73
  allocateTeamName,
74
74
  allocateTeamSlug,
75
75
  canonicalizeRepoPath,
76
+ ciChecksFailed,
76
77
  commitAll,
77
78
  connectedPrSelectors,
78
79
  createExistingBranchWorktree,
@@ -116,7 +117,7 @@ import {
116
117
  worktreeDisplayLabelForGroup,
117
118
  worktreeNameFromPath,
118
119
  worktreeSlugForTicket
119
- } from "./chunk-5ZFULOTC.js";
120
+ } from "./chunk-XM4UIFQU.js";
120
121
  import {
121
122
  ATTACHMENTS_DIR,
122
123
  DETACHED_JOBS_DIR,
@@ -134,7 +135,7 @@ import {
134
135
  updateThread,
135
136
  withThreadLock,
136
137
  writeThread
137
- } from "./chunk-7HOKP4GR.js";
138
+ } from "./chunk-PELMZRDB.js";
138
139
  import {
139
140
  ensureWorktreeSideboardIgnored
140
141
  } from "./chunk-DD67JWTN.js";
@@ -175,7 +176,7 @@ import {
175
176
  sumUsageList,
176
177
  updateAdvancedSettings,
177
178
  usageOnLimit
178
- } from "./chunk-YLGBQVRK.js";
179
+ } from "./chunk-XEBQRCDW.js";
179
180
  import {
180
181
  writePrivateFile
181
182
  } from "./chunk-NSTQ6QKD.js";
@@ -490,9 +491,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
490
491
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
491
492
  );
492
493
  }
493
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-3SQU4GL4.js");
494
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-J6H7X5SM.js");
494
495
  if (isGlobalThread2(thread)) {
495
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-ZBYRREHD.js");
496
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-BFO2TAVR.js");
496
497
  ensureGlobalCoordinatorCwd2(
497
498
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
498
499
  );
@@ -777,11 +778,41 @@ function threadPrMetaPatch(thread, meta) {
777
778
  if (!sameLoginList(nextReviewers, thread.prReviewerLogins)) {
778
779
  patch.prReviewerLogins = nextReviewers;
779
780
  }
781
+ const nextDecision = meta.reviewDecision ?? null;
782
+ if ((thread.prReviewDecision ?? null) !== nextDecision) {
783
+ patch.prReviewDecision = nextDecision;
784
+ }
785
+ const nextMergeable = meta.mergeable ?? null;
786
+ if ((thread.prMergeable ?? null) !== nextMergeable) {
787
+ patch.prMergeable = nextMergeable;
788
+ }
789
+ const nextMergeState = meta.mergeStateStatus ?? null;
790
+ if ((thread.prMergeStateStatus ?? null) !== nextMergeState) {
791
+ patch.prMergeStateStatus = nextMergeState;
792
+ }
793
+ const nextQueued = Boolean(meta.isInMergeQueue);
794
+ if (Boolean(thread.prIsInMergeQueue) !== nextQueued) {
795
+ patch.prIsInMergeQueue = nextQueued;
796
+ }
797
+ const nextLabels = meta.labels ?? [];
798
+ if (!sameLoginList(nextLabels, thread.prLabels)) {
799
+ patch.prLabels = nextLabels;
800
+ }
801
+ const mergeState = (nextMergeState ?? "").toUpperCase();
802
+ if (mergeState === "CLEAN" && thread.prChecksFailed) {
803
+ patch.prChecksFailed = false;
804
+ } else if ((mergeState === "UNSTABLE" || mergeState === "BLOCKED" && (nextDecision ?? "").toUpperCase() === "APPROVED") && !thread.prChecksFailed) {
805
+ patch.prChecksFailed = true;
806
+ }
780
807
  if (thread.skipAutoArchiveOnMerge && nextState && nextState !== "MERGED" && nextState !== "CLOSED") {
781
808
  patch.skipAutoArchiveOnMerge = false;
782
809
  }
783
810
  return patch;
784
811
  }
812
+ function threadPrChecksFailedPatch(thread, failed) {
813
+ if (thread.prChecksFailed === failed) return {};
814
+ return { prChecksFailed: failed };
815
+ }
785
816
  function shouldAutoArchiveOnPrMerge(opts) {
786
817
  if (!opts.autoArchiveEnabled) return false;
787
818
  if (opts.isGlobal) return false;
@@ -1345,6 +1376,12 @@ function worktreeBindingFrom(from) {
1345
1376
  prIsDraft: from.prIsDraft,
1346
1377
  prAuthorLogin: from.prAuthorLogin,
1347
1378
  prReviewerLogins: from.prReviewerLogins,
1379
+ prReviewDecision: from.prReviewDecision,
1380
+ prMergeable: from.prMergeable,
1381
+ prMergeStateStatus: from.prMergeStateStatus,
1382
+ prIsInMergeQueue: from.prIsInMergeQueue,
1383
+ prLabels: from.prLabels,
1384
+ prChecksFailed: from.prChecksFailed,
1348
1385
  skipAutoArchiveOnMerge: from.skipAutoArchiveOnMerge,
1349
1386
  stackId: from.stackId,
1350
1387
  stackLayer: from.stackLayer,
@@ -3933,7 +3970,7 @@ async function createThread(input, _onSetupLine) {
3933
3970
  });
3934
3971
  await requireAgent(resolved.agent);
3935
3972
  if (input.cowboy) {
3936
- const { cowboyModeEnabled } = await import("./app-settings-652J57CX.js");
3973
+ const { cowboyModeEnabled } = await import("./app-settings-NKXH4PKM.js");
3937
3974
  if (!cowboyModeEnabled()) {
3938
3975
  throw new Error(
3939
3976
  "Cowboy mode is off. Enable it in Settings \u2192 Advanced."
@@ -3991,7 +4028,7 @@ async function createThread(input, _onSetupLine) {
3991
4028
  let sourceIsFork = false;
3992
4029
  if (!input.cowboy && sourceType === "branch" && (!sourceRef || sourceRef === "HEAD" || sourceRef === "default")) {
3993
4030
  if (isAbleTimeConnected() && getIssueSource() === "abletime") {
3994
- const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-OI6FNSXX.js");
4031
+ const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-GAPUN2LL.js");
3995
4032
  const task = await ensureAbleTimeTask({
3996
4033
  title: title?.trim() || "Untitled work",
3997
4034
  description: input.prompt?.trim() || void 0
@@ -4012,6 +4049,7 @@ async function createThread(input, _onSetupLine) {
4012
4049
  let prUrl = null;
4013
4050
  let prTitle = null;
4014
4051
  let prAuthorLogin2 = null;
4052
+ let prLabels = [];
4015
4053
  if (sourceType === "pr") {
4016
4054
  const num = Number(input.sourceRef.replace(/^#/, ""));
4017
4055
  if (!Number.isFinite(num)) throw new Error(`Invalid PR number: ${input.sourceRef}`);
@@ -4028,6 +4066,7 @@ async function createThread(input, _onSetupLine) {
4028
4066
  sourceIsFork = pr.isCrossRepository;
4029
4067
  prUrl = pr.url;
4030
4068
  prAuthorLogin2 = pr.author?.login?.trim() || null;
4069
+ prLabels = pr.labels ?? [];
4031
4070
  const localFetchBranch = `sideboard-pr-${pr.number}`;
4032
4071
  await fetchPrHead(repoPath, pr.number, localFetchBranch);
4033
4072
  sourceRef = localFetchBranch;
@@ -4051,6 +4090,7 @@ async function createThread(input, _onSetupLine) {
4051
4090
  prUrl = existing.url;
4052
4091
  prTitle = existing.title;
4053
4092
  prAuthorLogin2 = existing.author?.login?.trim() || null;
4093
+ prLabels = existing.labels ?? [];
4054
4094
  }
4055
4095
  }
4056
4096
  }
@@ -4086,7 +4126,8 @@ async function createThread(input, _onSetupLine) {
4086
4126
  status: "idle",
4087
4127
  prUrl,
4088
4128
  prTitle,
4089
- prAuthorLogin: prAuthorLogin2
4129
+ prAuthorLogin: prAuthorLogin2,
4130
+ prLabels
4090
4131
  });
4091
4132
  writeThread(thread);
4092
4133
  await ensureWorkspace(repoPath);
@@ -4554,7 +4595,7 @@ async function adoptThread(input) {
4554
4595
  messages: input.messages ?? []
4555
4596
  });
4556
4597
  writeThread(thread);
4557
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-QLKWW3O2.js");
4598
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-NJF3GG5F.js");
4558
4599
  await ensureWorkspace2(repoPath);
4559
4600
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-5N2KTYIT.js");
4560
4601
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -7060,7 +7101,7 @@ function formatScheduledPrompt(name, prompt) {
7060
7101
  ${prompt}`;
7061
7102
  }
7062
7103
  async function defaultDeps() {
7063
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-DPMS5KMY.js");
7104
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-2NZUV4LI.js");
7064
7105
  const orch = getOrchestrator2();
7065
7106
  return {
7066
7107
  findThread: (id) => findThreadByRef(id),
@@ -7385,7 +7426,7 @@ var Orchestrator = class {
7385
7426
  orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
7386
7427
  });
7387
7428
  }
7388
- const { autoCleanupOrphansEnabled } = await import("./app-settings-652J57CX.js");
7429
+ const { autoCleanupOrphansEnabled } = await import("./app-settings-NKXH4PKM.js");
7389
7430
  if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
7390
7431
  await cleanupOrphanWorktrees({ repoPaths });
7391
7432
  }
@@ -7732,7 +7773,7 @@ var Orchestrator = class {
7732
7773
  }
7733
7774
  await setup;
7734
7775
  if (skipSetup) return;
7735
- const { autoRunAfterSetupEnabled } = await import("./app-settings-652J57CX.js");
7776
+ const { autoRunAfterSetupEnabled } = await import("./app-settings-NKXH4PKM.js");
7736
7777
  if (autoRunAfterSetupEnabled()) {
7737
7778
  try {
7738
7779
  await this.startDev(threadId);
@@ -8102,7 +8143,7 @@ var Orchestrator = class {
8102
8143
  }
8103
8144
  const isBrightsy = fresh.agent === "brightsy";
8104
8145
  const isOrchestration = isOrchestratorThread(fresh);
8105
- const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-652J57CX.js");
8146
+ const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-NKXH4PKM.js");
8106
8147
  const gitAuthMode = getGithubGitAuthMode();
8107
8148
  const worktreeDirective = isBrightsy || isOrchestration ? null : formatWorktreeDirective(fresh, {
8108
8149
  githubSlug: await withTimeout(
@@ -9347,10 +9388,20 @@ var Orchestrator = class {
9347
9388
  return { thread, selectors: connectedPrSelectors(thread, headUrl), cwd, headUrl };
9348
9389
  }
9349
9390
  async getPrChecks(threadRef) {
9350
- const { selectors, cwd } = await this.withPrSelector(threadRef);
9391
+ const { thread, selectors, cwd } = await this.withPrSelector(threadRef);
9351
9392
  for (const selector of selectors) {
9352
9393
  const checks = await getPrChecks(cwd, selector);
9353
- if (checks) return checks;
9394
+ if (!checks) continue;
9395
+ const live = this.requireThread(thread.id);
9396
+ const failed = ciChecksFailed(checks);
9397
+ const siblings = threadsSharingWorktree(live.worktreePath);
9398
+ const targets = siblings.length > 0 ? siblings : [live];
9399
+ for (const t of targets) {
9400
+ const patch = threadPrChecksFailedPatch(t, failed);
9401
+ if (Object.keys(patch).length === 0) continue;
9402
+ updateThread(t.id, patch);
9403
+ }
9404
+ return checks;
9354
9405
  }
9355
9406
  return null;
9356
9407
  }
@@ -9393,7 +9444,7 @@ var Orchestrator = class {
9393
9444
  if (!titled.userSetTitle && meta.title && titled.title !== meta.title) {
9394
9445
  updateThread(thread.id, { title: meta.title });
9395
9446
  }
9396
- const { autoArchiveOnMergeEnabled } = await import("./app-settings-652J57CX.js");
9447
+ const { autoArchiveOnMergeEnabled } = await import("./app-settings-NKXH4PKM.js");
9397
9448
  const latest = this.requireThread(thread.id);
9398
9449
  if (!shouldAutoArchiveOnPrMerge({
9399
9450
  previousPrState: prevState || null,
@@ -9675,7 +9726,7 @@ var Orchestrator = class {
9675
9726
  this.enforceHistoryRetention();
9676
9727
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
9677
9728
  try {
9678
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-QLKWW3O2.js");
9729
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-NJF3GG5F.js");
9679
9730
  await ensureWorkspace2(thread.repoPath);
9680
9731
  } catch {
9681
9732
  }
@@ -9702,7 +9753,7 @@ var Orchestrator = class {
9702
9753
  await runArchiveScript(thread.repoPath, thread.worktreePath);
9703
9754
  } catch {
9704
9755
  }
9705
- const { deleteBranchOnPurgeEnabled } = await import("./app-settings-652J57CX.js");
9756
+ const { deleteBranchOnPurgeEnabled } = await import("./app-settings-NKXH4PKM.js");
9706
9757
  const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
9707
9758
  await removeWorktree(thread.repoPath, thread.worktreePath, {
9708
9759
  deleteBranch: deleteBranch ? thread.branchName : void 0
@@ -9729,7 +9780,7 @@ var Orchestrator = class {
9729
9780
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
9730
9781
  );
9731
9782
  }
9732
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-PK3QETXO.js");
9783
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-2FYRYJTB.js");
9733
9784
  const slug = thread.worktreePath.split("/").pop();
9734
9785
  const dest = thread.worktreePath;
9735
9786
  await withRepoGitLock(thread.repoPath, async () => {
@@ -9839,7 +9890,7 @@ async function startOrchestration(opts) {
9839
9890
  sourceRef: "default",
9840
9891
  ...createOpts
9841
9892
  }).catch(async () => {
9842
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-PK3QETXO.js");
9893
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-2FYRYJTB.js");
9843
9894
  const repo = await resolveRepoRoot2(repoPath);
9844
9895
  const def = await resolveDefaultBranch2(repo);
9845
9896
  return orch.createThread({
@@ -9849,7 +9900,7 @@ async function startOrchestration(opts) {
9849
9900
  repoPath: repo
9850
9901
  });
9851
9902
  });
9852
- const { updateThread: upd } = await import("./thread-store-JQB7KZJR.js");
9903
+ const { updateThread: upd } = await import("./thread-store-BEBZMOS7.js");
9853
9904
  const updated = upd(thread.id, {
9854
9905
  sourceType: "orchestration",
9855
9906
  sourceRef: goal
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_ABLETIME_HOST,
3
3
  normalizeAbleTimeHost
4
- } from "./chunk-QNJXJIWJ.js";
4
+ } from "./chunk-RF46WMSI.js";
5
5
  import {
6
6
  httpFetch
7
7
  } from "./chunk-N7WZ6NIN.js";
@@ -10,7 +10,7 @@ import {
10
10
  getAbleTimeHost,
11
11
  loadAppSettings,
12
12
  saveAbleTimeConnection
13
- } from "./chunk-PPJ5JTWA.js";
13
+ } from "./chunk-QVQPIFBV.js";
14
14
 
15
15
  // src/integrations/abletime-oauth.ts
16
16
  import { createHash, randomBytes } from "crypto";
@@ -280,7 +280,7 @@ async function startAbleTimeOAuth(opts) {
280
280
  persistAbleTimeTokens(data, { host });
281
281
  const token = data.access_token.trim();
282
282
  try {
283
- const { getAbleTimeOrientation } = await import("./abletime-CWIJ7INC.js");
283
+ const { getAbleTimeOrientation } = await import("./abletime-HTRIHTL5.js");
284
284
  const orientation = await getAbleTimeOrientation({ token, host });
285
285
  return saveAbleTimeConnection({
286
286
  accessToken: token,
@@ -4,14 +4,14 @@ import {
4
4
  normalizeAbleTimeCredential,
5
5
  normalizeAbleTimeHost,
6
6
  rewriteAbleTimeError
7
- } from "./chunk-QNJXJIWJ.js";
7
+ } from "./chunk-RF46WMSI.js";
8
8
  import {
9
9
  httpFetch
10
10
  } from "./chunk-N7WZ6NIN.js";
11
11
  import {
12
12
  getAbleTimeAccessToken,
13
13
  getAbleTimeHost
14
- } from "./chunk-PPJ5JTWA.js";
14
+ } from "./chunk-QVQPIFBV.js";
15
15
 
16
16
  // src/integrations/abletime-rest.ts
17
17
  var ABLETIME_REST_PREFIX = "/api/public/v2";