@zixt/host 0.0.39 → 0.0.41

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 (2) hide show
  1. package/dist/index.js +55 -11
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ import { homedir } from "node:os";
31
31
  // package.json
32
32
  var package_default = {
33
33
  name: "@zixt/host",
34
- version: "0.0.39",
34
+ version: "0.0.41",
35
35
  type: "module",
36
36
  exports: {
37
37
  ".": "./src/client.ts",
@@ -15215,6 +15215,7 @@ var Agent = external_exports.object({
15215
15215
  updatedAt: IsoDate2
15216
15216
  });
15217
15217
  var HostStatus = external_exports.enum(["online", "offline", "revoked"]);
15218
+ var HostOperatingSystem = external_exports.enum(["linux", "macos", "windows"]);
15218
15219
  var RunnerTelemetry = external_exports.object({
15219
15220
  type: RunnerType,
15220
15221
  installed: external_exports.boolean(),
@@ -15343,6 +15344,8 @@ var Host = external_exports.object({
15343
15344
  id: HostId,
15344
15345
  orgId: OrgId,
15345
15346
  name: external_exports.string().min(1).max(120),
15347
+ /** Durable setup choice; null only for Machines created before it was collected. */
15348
+ operatingSystem: HostOperatingSystem.nullable().default(null),
15346
15349
  status: HostStatus,
15347
15350
  /** Persistent assignment admission; pausing never changes socket presence or live work. */
15348
15351
  acceptingNewWork: external_exports.boolean().default(true),
@@ -15907,6 +15910,8 @@ var TaskGitSummary = external_exports.object({
15907
15910
  isWorktree: external_exports.boolean().optional(),
15908
15911
  /** False means the Task used this repository, then removed its checkout after integration. */
15909
15912
  available: external_exports.boolean().optional(),
15913
+ /** False preserves the Task branch after a shared checkout switches back. */
15914
+ checkedOut: external_exports.boolean().optional(),
15910
15915
  branch: taskGitSummaryLabel(512, "branch").nullable(),
15911
15916
  ahead: external_exports.number().int().min(0),
15912
15917
  behind: external_exports.number().int().min(0),
@@ -16147,6 +16152,8 @@ var TaskWorkingContextBase = external_exports.object({
16147
16152
  isWorktree: external_exports.boolean(),
16148
16153
  /** Absent is legacy-current; false preserves a cleaned-up Task repository as history. */
16149
16154
  available: external_exports.boolean().optional(),
16155
+ /** Absent is legacy-current; false means this retained branch is no longer checked out. */
16156
+ checkedOut: external_exports.boolean().optional(),
16150
16157
  /** Null is an observed detached HEAD, never an unknown branch. */
16151
16158
  branch: safeWorkingContextLabel(512, "branch").nullable(),
16152
16159
  headSha: external_exports.string().regex(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/).nullable(),
@@ -17722,7 +17729,9 @@ var ListAgentsResponse = external_exports.object({
17722
17729
  agents: external_exports.array(Agent)
17723
17730
  });
17724
17731
  var CreateHostRequest = external_exports.object({
17725
- name: Host.shape.name
17732
+ name: Host.shape.name,
17733
+ /** Optional only for rolling compatibility; the current UI always asks. */
17734
+ operatingSystem: HostOperatingSystem.optional()
17726
17735
  });
17727
17736
  var RenameHostRequest = external_exports.object({
17728
17737
  name: Host.shape.name
@@ -17874,6 +17883,7 @@ var MemberHostProjection = Host.pick({
17874
17883
  id: true,
17875
17884
  orgId: true,
17876
17885
  name: true,
17886
+ operatingSystem: true,
17877
17887
  status: true,
17878
17888
  acceptingNewWork: true,
17879
17889
  kind: true,
@@ -33069,6 +33079,7 @@ async function repositoryState(directory, git, env, signal) {
33069
33079
  root,
33070
33080
  isWorktree: gitDirectory !== commonDirectory,
33071
33081
  available: true,
33082
+ checkedOut: true,
33072
33083
  branch,
33073
33084
  headSha,
33074
33085
  upstream,
@@ -33105,13 +33116,42 @@ async function collectWorkingContext(input) {
33105
33116
  ...uniqueRepositories.length > 0 ? { repositories: uniqueRepositories } : {}
33106
33117
  });
33107
33118
  }
33108
- function preserveObservedRepositories(current, previous, fixedRepositoryRoots) {
33119
+ function preserveObservedRepositories(current, previous, fixedRepositoryRoots, initial = null) {
33109
33120
  const fixed = new Set(fixedRepositoryRoots);
33110
33121
  const currentRepositories = current.repositories ?? [];
33111
33122
  const currentRoots = new Set(currentRepositories.map(({ root }) => root));
33112
- const liveTaskRepositories = currentRepositories.filter(({ root }) => !fixed.has(root));
33113
- const liveFixedRepositories = currentRepositories.filter(({ root }) => fixed.has(root));
33114
- const retained = (previous?.repositories ?? []).filter(({ root }) => !fixed.has(root) && !currentRoots.has(root)).map((repository) => ({ ...repository, available: false }));
33123
+ const previousByRoot = new Map(
33124
+ (previous?.repositories ?? []).map((repository) => [repository.root, repository])
33125
+ );
33126
+ const initialByRoot = new Map(
33127
+ (initial?.repositories ?? []).map((repository) => [repository.root, repository])
33128
+ );
33129
+ const sameRef = (left, right) => left.branch === right.branch && (left.branch !== null || left.headSha === right.headSha);
33130
+ const liveRepositories = currentRepositories.map((repository) => {
33131
+ if (!fixed.has(repository.root)) return repository;
33132
+ const previousRepository = previousByRoot.get(repository.root);
33133
+ const initialRepository = initialByRoot.get(repository.root);
33134
+ if (!previousRepository || !initialRepository || !sameRef(repository, initialRepository)) {
33135
+ return repository;
33136
+ }
33137
+ if (previousRepository.checkedOut !== false && sameRef(previousRepository, initialRepository)) {
33138
+ return repository;
33139
+ }
33140
+ return {
33141
+ ...previousRepository,
33142
+ root: repository.root,
33143
+ isWorktree: repository.isWorktree,
33144
+ available: true,
33145
+ checkedOut: false
33146
+ };
33147
+ });
33148
+ const liveTaskRepositories = liveRepositories.filter(({ root }) => !fixed.has(root));
33149
+ const liveFixedRepositories = liveRepositories.filter(({ root }) => fixed.has(root));
33150
+ const retained = (previous?.repositories ?? []).filter(({ root }) => !fixed.has(root) && !currentRoots.has(root)).map((repository) => ({
33151
+ ...repository,
33152
+ available: false,
33153
+ checkedOut: false
33154
+ }));
33115
33155
  const repositories = [...liveTaskRepositories, ...retained, ...liveFixedRepositories].slice(
33116
33156
  0,
33117
33157
  20
@@ -34171,6 +34211,7 @@ ${attachmentSection}` : prompt;
34171
34211
  let activeWorkingContextReport = null;
34172
34212
  let previousWorkingContext = "";
34173
34213
  let previousWorkingContextValue = null;
34214
+ let initialWorkingContextValue = null;
34174
34215
  const observedWorkingDirectories = /* @__PURE__ */ new Set();
34175
34216
  let observedPathRefreshPending = false;
34176
34217
  const workingContextAbort = new AbortController();
@@ -34188,12 +34229,15 @@ ${attachmentSection}` : prompt;
34188
34229
  git,
34189
34230
  env: workingContextEnvironments.git,
34190
34231
  signal: workingContextAbort.signal
34232
+ }).then((context) => {
34233
+ initialWorkingContextValue ??= context;
34234
+ return preserveObservedRepositories(
34235
+ context,
34236
+ previousWorkingContextValue,
34237
+ [cwd, ...preparedWorkspace ? [preparedWorkspace.path] : []],
34238
+ initialWorkingContextValue
34239
+ );
34191
34240
  }).then(
34192
- (context) => preserveObservedRepositories(context, previousWorkingContextValue, [
34193
- cwd,
34194
- ...preparedWorkspace ? [preparedWorkspace.path] : []
34195
- ])
34196
- ).then(
34197
34241
  (context) => pullRequests.enrich(context, ghContextCommand, {
34198
34242
  ...options.forcePullRequest ? { force: true } : {},
34199
34243
  ...gitContextCommand ? { gitCommand: gitContextCommand } : {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zixt/host",
3
- "version": "0.0.39",
3
+ "version": "0.0.41",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./src/client.ts",