@zixt/host 0.0.58 → 0.0.60

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 +90 -3
  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.58",
34
+ version: "0.0.60",
35
35
  type: "module",
36
36
  exports: {
37
37
  ".": "./src/client.ts",
@@ -16087,6 +16087,16 @@ var Task = external_exports.object({
16087
16087
  * thread-backed work from standalone rows without a second lookup.
16088
16088
  */
16089
16089
  conversationId: ConversationId.nullable().default(null),
16090
+ /**
16091
+ * UI-8c: which coordinated workstream this Task belongs to. Zixt records one
16092
+ * workstream per Manager delegation turn, so Tasks the Manager split out of
16093
+ * a single request are grouped as parallel work and independent requests in
16094
+ * the same thread are not. Null means this Task is its own workstream: that
16095
+ * is the deliberate fallback for engine-born work and for rows written
16096
+ * before the field existed, because inventing a shared group is worse than
16097
+ * showing one more row.
16098
+ */
16099
+ workstreamId: external_exports.string().min(1).max(120).nullable().default(null),
16090
16100
  /** Formal human review is opt-in per Task; ordinary Chat defaults to none. */
16091
16101
  reviewMode: TaskReviewMode.default("none"),
16092
16102
  /** Assignment epoch — bumped every time the task is (re)assigned (PRD §7.4). */
@@ -16294,6 +16304,66 @@ var TaskTimingBreakdown = external_exports.object({
16294
16304
  phases: external_exports.array(TaskTimingPhase),
16295
16305
  runs: external_exports.array(TaskTimingRun).max(TASK_TIMING_MAX_RUNS)
16296
16306
  }).strict();
16307
+ var TaskProgressStepState = external_exports.enum([
16308
+ /** Reached, and the Task has since moved past it. */
16309
+ "done",
16310
+ /** The furthest step the Task has reached. */
16311
+ "active",
16312
+ /** Not reached yet. */
16313
+ "pending",
16314
+ /** The Task moved past this step without spending measurable time in it. */
16315
+ "skipped"
16316
+ ]);
16317
+ var TaskProgressStep = external_exports.object({
16318
+ kind: TaskTimingPhaseKind,
16319
+ state: TaskProgressStepState,
16320
+ /** Time spent in this step so far; 0 for pending and skipped steps. */
16321
+ durationMs: external_exports.number().int().min(0)
16322
+ }).strict();
16323
+ var TaskProgressBasis = external_exports.enum(["none", "steps", "history"]);
16324
+ var TaskProgressConfidence = external_exports.enum(["none", "low", "medium"]);
16325
+ var TaskProgressCaveat = external_exports.enum([
16326
+ /** A person owes an answer or a decision; nothing is running. */
16327
+ "waiting_on_person",
16328
+ /** Something outside the Task has to change before it can continue. */
16329
+ "blocked",
16330
+ /** No Machine has picked the Task up yet, so no work time has accrued. */
16331
+ "not_started",
16332
+ /** Already past what comparable Tasks needed; the range is a tail guess. */
16333
+ "over_typical",
16334
+ /** Comparable Tasks disagree wildly, so the range is wide on purpose. */
16335
+ "wide_spread",
16336
+ /** Fewer comparable Tasks than the estimate would like. */
16337
+ "thin_history",
16338
+ /** No comparable finished Task exists, so no time can be predicted at all. */
16339
+ "no_history"
16340
+ ]);
16341
+ var TaskProgressSample = external_exports.object({
16342
+ size: external_exports.number().int().min(1),
16343
+ /** `agent` compares the same teammate; `organization` widens when it must. */
16344
+ scope: external_exports.enum(["agent", "organization"]),
16345
+ /** Middle working time of the sample. */
16346
+ medianMs: external_exports.number().int().min(0),
16347
+ /** Four in five comparable Tasks finished their work within this. */
16348
+ p80Ms: external_exports.number().int().min(0)
16349
+ }).strict();
16350
+ var TaskProgressEstimate = external_exports.object({
16351
+ schemaVersion: external_exports.literal(1),
16352
+ /** Whole percent, or null when nothing supports a number. */
16353
+ percent: external_exports.number().int().min(0).max(100).nullable(),
16354
+ basis: TaskProgressBasis,
16355
+ confidence: TaskProgressConfidence,
16356
+ /** Wall-clock since the Task was asked for. */
16357
+ elapsedMs: external_exports.number().int().min(0),
16358
+ /** Of that, time a Machine was actually working. */
16359
+ activeMs: external_exports.number().int().min(0),
16360
+ /** Working time still expected, as a range; null when unknowable. */
16361
+ remaining: external_exports.object({ lowMs: external_exports.number().int().min(0), highMs: external_exports.number().int().min(0) }).strict().nullable(),
16362
+ sample: TaskProgressSample.nullable(),
16363
+ /** Every TS-20 step, in lifecycle order. */
16364
+ steps: external_exports.array(TaskProgressStep),
16365
+ caveat: TaskProgressCaveat.nullable()
16366
+ }).strict();
16297
16367
  var CreateTaskInput = external_exports.object({
16298
16368
  /** Stable client-generated key: retrying the same submission returns one Task. */
16299
16369
  requestId: external_exports.uuid().optional(),
@@ -16555,7 +16625,9 @@ var TaskDetailResponse = external_exports.object({
16555
16625
  /** Newest host-observed folder/Git state; null until a current Host reports it. */
16556
16626
  workingContext: TaskWorkingContext.nullable().default(null),
16557
16627
  /** TS-19 timing breakdown; null when the Task has no usable timing evidence. */
16558
- timing: TaskTimingBreakdown.nullable().default(null)
16628
+ timing: TaskTimingBreakdown.nullable().default(null),
16629
+ /** TS-20 progress estimate; null when the Task has no usable timing evidence. */
16630
+ progress: TaskProgressEstimate.nullable().default(null)
16559
16631
  });
16560
16632
  var TaskSupportBundle = external_exports.object({
16561
16633
  schemaVersion: external_exports.literal(1),
@@ -18288,12 +18360,27 @@ var ManagerTaskRailRepresentative = external_exports.object({
18288
18360
  createdAt: external_exports.string(),
18289
18361
  updatedAt: external_exports.string()
18290
18362
  }).strict();
18363
+ var MANAGER_RAIL_WORKSTREAM_LIMIT = 10;
18364
+ var ManagerTaskRailWorkstream = external_exports.object({
18365
+ workstreamId: external_exports.string().min(1).max(160),
18366
+ /** The workstream's newest live Task title, already role-projected. */
18367
+ title: external_exports.string().max(1e3),
18368
+ representative: ManagerTaskRailRepresentative
18369
+ }).strict();
18291
18370
  var ManagerTaskRailSummary = external_exports.object({
18292
18371
  conversationId: ConversationId,
18293
18372
  hasChildren: external_exports.boolean(),
18294
18373
  hasAgentMatch: external_exports.boolean(),
18295
18374
  hasStatusMatch: external_exports.boolean(),
18296
- representative: ManagerTaskRailRepresentative.nullable()
18375
+ representative: ManagerTaskRailRepresentative.nullable(),
18376
+ /**
18377
+ * Live workstreams this thread carries besides the one its own row
18378
+ * represents. Defaulted so a browser that outruns a deploy degrades to the
18379
+ * previous single-row behavior instead of failing the whole rail read.
18380
+ */
18381
+ workstreams: external_exports.array(ManagerTaskRailWorkstream).max(MANAGER_RAIL_WORKSTREAM_LIMIT).default([]),
18382
+ /** True when more live workstreams exist than the rail will spin out. */
18383
+ workstreamsTruncated: external_exports.boolean().default(false)
18297
18384
  }).strict();
18298
18385
  var ManagerTaskRailSummariesResponse = external_exports.object({ summaries: external_exports.array(ManagerTaskRailSummary).max(CONVERSATION_LIST_LIMIT) }).strict();
18299
18386
  var ConversationDetailResponse = external_exports.object({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zixt/host",
3
- "version": "0.0.58",
3
+ "version": "0.0.60",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./src/client.ts",