@unisonlabs/sixminute-admin 0.1.1242-next → 0.1.1244-next

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.
@@ -21,7 +21,7 @@ import { homedir } from "node:os";
21
21
  import { fileURLToPath } from "node:url";
22
22
 
23
23
  // tools/admin/src/build-info.ts
24
- var BUILT = { version: "0.1.1242-next", commit: "29cf3d8c44068f9c16b6f941d3eb094883fbf5a5", surface: "3b2db9633e846531" };
24
+ var BUILT = { version: "0.1.1244-next", commit: "436aabb373a6e747ca7a8261e3598d1cbfb0789d", surface: "bb42e8a273612558" };
25
25
 
26
26
  // tools/admin/src/run.ts
27
27
  import { rmSync as rmSync3 } from "node:fs";
@@ -4569,7 +4569,12 @@ function settleEntry(entry, ctx) {
4569
4569
  override_seconds: entry.override_seconds ?? null
4570
4570
  };
4571
4571
  }
4572
- var EntrySchema = EntryFields.transform(settleEntry);
4572
+ var EntrySchema = EntryFields.extend({
4573
+ device_id: DeviceIdSchema.nullable().optional()
4574
+ }).transform((entry, ctx) => {
4575
+ const read = { ...settleEntry(entry, ctx), device_id: entry.device_id ?? null };
4576
+ return read;
4577
+ });
4573
4578
  var JudgedEntrySchema = JudgedEntryFields.transform(settleEntry);
4574
4579
  var RecordingFields = {
4575
4580
  idle_ratio: exports_external.number().min(0).max(1).default(0),
@@ -5297,14 +5302,13 @@ var DayReadSchema = exports_external.object({
5297
5302
  unit_seconds: exports_external.number().int().positive(),
5298
5303
  entries: exports_external.array(EntryRowSchema),
5299
5304
  intervals: exports_external.array(DayIntervalSchema),
5305
+ entry_intervals: exports_external.array(DayIntervalSchema).default([]),
5300
5306
  calendar: CalendarDaySchema.optional()
5301
5307
  });
5302
5308
  var EntriesQuerySchema = exports_external.object({
5303
5309
  day: LocalDaySchema.optional(),
5304
5310
  from: LocalDaySchema.optional(),
5305
5311
  to: LocalDaySchema.optional(),
5306
- scope: exports_external.enum(["own", "firm"]).default("own"),
5307
- timekeeper: MemberIdSchema.optional(),
5308
5312
  since: CursorSchema.optional(),
5309
5313
  limit: exports_external.coerce.number().int().min(1).max(2000).default(500)
5310
5314
  });
@@ -5640,6 +5644,19 @@ var TELEMETRY_SECONDS_MAX = 86400;
5640
5644
  var ForegroundSeconds = Whole.max(TELEMETRY_SECONDS_MAX);
5641
5645
  var TELEMETRY_DAY_OFFSET_MAX = 3660;
5642
5646
  var TELEMETRY_ENTRY_ID_MAX = 64;
5647
+ var GenerateFailureSchema = exports_external.enum(["model", "deadline", "overlap", "other"]);
5648
+ var AppErrorKindSchema = exports_external.enum(["boundary", "uncaught", "unhandled_rejection"]);
5649
+ var AppErrorClassSchema = exports_external.enum([
5650
+ "Error",
5651
+ "TypeError",
5652
+ "RangeError",
5653
+ "ReferenceError",
5654
+ "SyntaxError",
5655
+ "ChunkLoadError",
5656
+ "AbortError",
5657
+ "other"
5658
+ ]);
5659
+ var PageBuildSchema = exports_external.string().regex(/^\d{14}-[0-9A-Za-z]{1,40}$/, "expected YYYYMMDDHHMMSS-<commit>");
5643
5660
  var TELEMETRY_EVENT_PROPERTIES = {
5644
5661
  "capture.started": exports_external.object({
5645
5662
  trigger: exports_external.enum(["button", "tray", "always_on", "launch", "sign_in"]),
@@ -5673,18 +5690,28 @@ var TELEMETRY_EVENT_PROPERTIES = {
5673
5690
  "generate.started": exports_external.object({
5674
5691
  trigger: exports_external.enum(["press", "backstop"]),
5675
5692
  intervals: Whole,
5676
- recordings: Whole
5693
+ recordings: Whole,
5694
+ run_id: RunIdSchema,
5695
+ day_offset: exports_external.number().int().min(-TELEMETRY_DAY_OFFSET_MAX).max(TELEMETRY_DAY_OFFSET_MAX)
5677
5696
  }),
5678
5697
  "generate.finished": exports_external.object({
5679
5698
  trigger: exports_external.enum(["press", "backstop"]),
5680
5699
  entries: Whole,
5681
5700
  blocks_joined: Whole,
5682
5701
  seconds: Whole,
5683
- calls: Whole
5702
+ calls: Whole,
5703
+ run_id: RunIdSchema,
5704
+ day_offset: exports_external.number().int().min(-TELEMETRY_DAY_OFFSET_MAX).max(TELEMETRY_DAY_OFFSET_MAX),
5705
+ entries_clipped: Whole,
5706
+ attempts: Whole
5684
5707
  }),
5685
5708
  "generate.failed": exports_external.object({
5686
5709
  trigger: exports_external.enum(["press", "backstop"]),
5687
- step: exports_external.enum(["decide", "join", "narrative", "write"])
5710
+ step: exports_external.enum(["decide", "join", "narrative", "write"]),
5711
+ run_id: RunIdSchema,
5712
+ day_offset: exports_external.number().int().min(-TELEMETRY_DAY_OFFSET_MAX).max(TELEMETRY_DAY_OFFSET_MAX),
5713
+ failure: GenerateFailureSchema,
5714
+ attempts: Whole
5688
5715
  }),
5689
5716
  "entry.proposed": exports_external.object({
5690
5717
  ranges: Whole,
@@ -5698,7 +5725,8 @@ var TELEMETRY_EVENT_PROPERTIES = {
5698
5725
  matter_ms: Whole,
5699
5726
  attributes_ms: Whole,
5700
5727
  narrative_ms: Whole,
5701
- total_ms: Whole
5728
+ total_ms: Whole,
5729
+ run_id: RunIdSchema
5702
5730
  }),
5703
5731
  "application.opened": exports_external.object({
5704
5732
  trigger: exports_external.enum(["launch", "login_item", "after_update", "tray"]),
@@ -5742,7 +5770,13 @@ var TELEMETRY_EVENT_PROPERTIES = {
5742
5770
  }),
5743
5771
  "generate.clicked": exports_external.object({ layout: exports_external.enum(["timeline", "list"]) }),
5744
5772
  "onboarding.step_viewed": exports_external.object({ step: exports_external.enum(["capture", "entries", "permissions", "release"]) }),
5745
- "onboarding.completed": exports_external.object({ seconds: Whole })
5773
+ "onboarding.completed": exports_external.object({ seconds: Whole }),
5774
+ "app.error": exports_external.object({
5775
+ kind: AppErrorKindSchema,
5776
+ error_class: AppErrorClassSchema,
5777
+ screen: TelemetryScreenSchema,
5778
+ page_build: PageBuildSchema
5779
+ })
5746
5780
  };
5747
5781
  var TelemetryEventNameSchema = exports_external.enum(Object.keys(TELEMETRY_EVENT_PROPERTIES));
5748
5782
  var TelemetryPropertyValueSchema = exports_external.union([exports_external.string(), exports_external.number(), exports_external.boolean()]);
@@ -5904,6 +5938,7 @@ var ResearchContextExportSchema = exports_external.object({
5904
5938
  operator: exports_external.string(),
5905
5939
  contexts: exports_external.array(exports_external.object({
5906
5940
  member_id: exports_external.string(),
5941
+ device_id: exports_external.string().optional(),
5907
5942
  recording_id: exports_external.string(),
5908
5943
  seq: exports_external.number().int(),
5909
5944
  t_start: exports_external.string(),
@@ -6018,7 +6053,11 @@ var AdminContextRetentionResultSchema = exports_external.object({
6018
6053
  derivation_cache: exports_external.number().int(),
6019
6054
  pipeline_shadow: exports_external.number().int().default(0),
6020
6055
  pipeline_decisions: exports_external.number().int().default(0),
6021
- intervals: exports_external.number().int()
6056
+ intervals: exports_external.number().int(),
6057
+ device_contexts: exports_external.number().int().default(0),
6058
+ device_notes: exports_external.number().int().default(0),
6059
+ device_intervals: exports_external.number().int().default(0),
6060
+ calendar_events: exports_external.number().int().default(0)
6022
6061
  })
6023
6062
  });
6024
6063
  var AdminSealedBackfillResultSchema = exports_external.object({
@@ -6426,6 +6465,11 @@ var DevicePolicySchema = exports_external.object({
6426
6465
  minimum_version: exports_external.string().nullable(),
6427
6466
  always_on: FirmAlwaysOnSchema.default("member_choice")
6428
6467
  });
6468
+ var DEVICE_KNOWN_MAX = 16;
6469
+ var DeviceKnownHeaderSchema = exports_external.string().transform((value) => [...new Set(value.split(",").map((one) => one.trim()).filter((one) => one !== ""))]).pipe(exports_external.array(DeviceIdSchema).max(DEVICE_KNOWN_MAX));
6470
+ var DeviceClockSchema = exports_external.object({
6471
+ device_clock: TimestampSchema
6472
+ });
6429
6473
  var RecordingStopSchema = exports_external.object({
6430
6474
  after_seq: exports_external.number().int().nonnegative(),
6431
6475
  at: TimestampSchema,
@@ -6572,6 +6616,7 @@ var LocalStatusSchema = exports_external.object({
6572
6616
  capture: LocalCaptureStateSchema,
6573
6617
  offline: LocalOfflineStateSchema,
6574
6618
  device_id: DeviceIdSchema.nullable().default(null),
6619
+ known_device_ids: exports_external.array(DeviceIdSchema).default([]),
6575
6620
  api_url: exports_external.string().nullable().default(null),
6576
6621
  update_required: exports_external.boolean().optional(),
6577
6622
  always_on: LocalAlwaysOnSchema.default(ALWAYS_ON_OFF),
@@ -6690,8 +6735,7 @@ var LocalMethodSchema = exports_external.enum(["GET", "POST", "PATCH", "DELETE"]
6690
6735
  // packages/contracts/src/pipeline-runs.ts
6691
6736
  var DayParamsSchema = exports_external.object({ day: LocalDaySchema });
6692
6737
  var DayGenerateQuerySchema = exports_external.object({
6693
- shadow: exports_external.enum(["1"]).optional(),
6694
- until: TimestampSchema.optional()
6738
+ shadow: exports_external.enum(["1"]).optional()
6695
6739
  });
6696
6740
  var PipelineRunStartedSchema = exports_external.object({ run_id: RunIdSchema });
6697
6741
  var PipelineNothingPendingSchema = exports_external.object({ started: exports_external.literal(false) });
@@ -6745,6 +6789,8 @@ var PipelineStatusSchema = exports_external.object({
6745
6789
  run_id: RunIdSchema,
6746
6790
  kind: exports_external.enum(["generate", "regenerate", "propose"]),
6747
6791
  day: LocalDaySchema,
6792
+ device: DeviceIdSchema.nullable(),
6793
+ through: TimestampSchema.nullable(),
6748
6794
  step: exports_external.object({ name: exports_external.string(), at: TimestampSchema, entry_from: TimestampSchema.optional() }),
6749
6795
  entries: exports_external.array(GenerateKnownSpanSchema).optional()
6750
6796
  }).nullable(),
@@ -6769,6 +6815,14 @@ var ShadowDaySchema = exports_external.object({
6769
6815
  // packages/contracts/src/pipeline.ts
6770
6816
  var ContextStopReasonSchema = exports_external.enum(["person", "quit", "update", "sign-out", "roll"]);
6771
6817
  var IntervalContextHeaderSchema = exports_external.object({
6818
+ from: TimestampSchema,
6819
+ to: TimestampSchema,
6820
+ unit_minutes: exports_external.number().int().min(1),
6821
+ time_zone: exports_external.string().min(1),
6822
+ sent_at: TimestampSchema,
6823
+ complete: exports_external.literal(true)
6824
+ });
6825
+ var IntervalContextHeaderV1Schema = exports_external.object({
6772
6826
  recording_id: RecordingIdSchema,
6773
6827
  seq: exports_external.number().int().min(1),
6774
6828
  from: TimestampSchema,
@@ -6807,9 +6861,7 @@ var ContextObservationSchema = exports_external.object({
6807
6861
  clicks: exports_external.array(CaptureClickSchema),
6808
6862
  signals: SignalsSchema.default({ emails: [], urls: [], paths: [] })
6809
6863
  });
6810
- var IntervalContextSchema = exports_external.object({
6811
- schema_version: exports_external.literal(1),
6812
- header: IntervalContextHeaderSchema,
6864
+ var intervalContextBody = {
6813
6865
  observations: exports_external.array(ContextObservationSchema),
6814
6866
  marks: exports_external.object({
6815
6867
  state_at_start: exports_external.object({
@@ -6827,7 +6879,17 @@ var IntervalContextSchema = exports_external.object({
6827
6879
  last_end_before: TimestampSchema.nullable(),
6828
6880
  first_end_inside: TimestampSchema.nullable()
6829
6881
  }),
6830
- lost: exports_external.array(exports_external.string()).optional(),
6882
+ lost: exports_external.array(exports_external.string()).optional()
6883
+ };
6884
+ var IntervalContextSchema = exports_external.object({
6885
+ schema_version: exports_external.literal(2),
6886
+ header: IntervalContextHeaderSchema,
6887
+ ...intervalContextBody
6888
+ });
6889
+ var IntervalContextV1Schema = exports_external.object({
6890
+ schema_version: exports_external.literal(1),
6891
+ header: IntervalContextHeaderV1Schema,
6892
+ ...intervalContextBody,
6831
6893
  imported_decision: exports_external.object({
6832
6894
  summary: exports_external.string().nullable(),
6833
6895
  matter_id: exports_external.string().nullable(),
@@ -6836,7 +6898,15 @@ var IntervalContextSchema = exports_external.object({
6836
6898
  cell_text: exports_external.string().optional()
6837
6899
  }).optional()
6838
6900
  });
6901
+ var IntervalContextUploadSchema = exports_external.discriminatedUnion("schema_version", [IntervalContextSchema, IntervalContextV1Schema]);
6839
6902
  var ContextSignalsSchema = exports_external.object({
6903
+ schema_version: exports_external.literal(2),
6904
+ note_seq: exports_external.number().int().positive(),
6905
+ t_at: TimestampSchema.nullable(),
6906
+ sent_at: TimestampSchema,
6907
+ observations: exports_external.array(exports_external.object({ id: ObservationIdSchema, signals: SignalsSchema })).min(1)
6908
+ });
6909
+ var ContextSignalsV1Schema = exports_external.object({
6840
6910
  schema_version: exports_external.literal(1),
6841
6911
  recording_id: RecordingIdSchema,
6842
6912
  note_seq: exports_external.number().int().positive(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisonlabs/sixminute-admin",
3
- "version": "0.1.1242-next",
3
+ "version": "0.1.1244-next",
4
4
  "description": "Sixminute operator tool: the admin commands of the Sixminute API, run with your own operator sign-in.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {