@marinoscar/kvox-eval 0.0.0-bootstrap → 0.1.0-next.0

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 (245) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +166 -0
  4. package/dist/ask/index.d.ts +6 -0
  5. package/dist/ask/index.js +28 -0
  6. package/dist/ask/question-schema.d.ts +121 -0
  7. package/dist/ask/question-schema.js +167 -0
  8. package/dist/ask/report.d.ts +88 -0
  9. package/dist/ask/report.js +170 -0
  10. package/dist/ask/scorer.d.ts +104 -0
  11. package/dist/ask/scorer.js +164 -0
  12. package/dist/ask-run/ask-command.d.ts +62 -0
  13. package/dist/ask-run/ask-command.js +254 -0
  14. package/dist/ask-run/host/app.d.ts +65 -0
  15. package/dist/ask-run/host/app.js +146 -0
  16. package/dist/ask-run/host/db.d.ts +38 -0
  17. package/dist/ask-run/host/db.js +126 -0
  18. package/dist/ask-run/host/ports.d.ts +35 -0
  19. package/dist/ask-run/host/ports.js +113 -0
  20. package/dist/ask-run/index.d.ts +13 -0
  21. package/dist/ask-run/index.js +35 -0
  22. package/dist/ask-run/replay.d.ts +128 -0
  23. package/dist/ask-run/replay.js +212 -0
  24. package/dist/ask-run/run-ask-eval.d.ts +125 -0
  25. package/dist/ask-run/run-ask-eval.js +193 -0
  26. package/dist/ask-run/seed-golden-graph.d.ts +64 -0
  27. package/dist/ask-run/seed-golden-graph.js +495 -0
  28. package/dist/cli/index.d.ts +3 -0
  29. package/dist/cli/index.js +12 -0
  30. package/dist/cli/kg-command.d.ts +66 -0
  31. package/dist/cli/kg-command.js +238 -0
  32. package/dist/cli/main.d.ts +18 -0
  33. package/dist/cli/main.js +69 -0
  34. package/dist/fixtures/domains.d.ts +16 -0
  35. package/dist/fixtures/domains.js +33 -0
  36. package/dist/fixtures/fixture-schema.d.ts +323 -0
  37. package/dist/fixtures/fixture-schema.js +199 -0
  38. package/dist/fixtures/index.d.ts +16 -0
  39. package/dist/fixtures/index.js +40 -0
  40. package/dist/fixtures/load.d.ts +73 -0
  41. package/dist/fixtures/load.js +137 -0
  42. package/dist/fixtures/questions.d.ts +15 -0
  43. package/dist/fixtures/questions.js +26 -0
  44. package/dist/index.d.ts +20 -0
  45. package/dist/index.js +36 -0
  46. package/dist/kg/gold-runner.d.ts +13 -0
  47. package/dist/kg/gold-runner.js +57 -0
  48. package/dist/kg/index.d.ts +17 -0
  49. package/dist/kg/index.js +65 -0
  50. package/dist/kg/internals.d.ts +7 -0
  51. package/dist/kg/internals.js +17 -0
  52. package/dist/kg/prediction-schema.d.ts +245 -0
  53. package/dist/kg/prediction-schema.js +102 -0
  54. package/dist/kg/predictions.d.ts +11 -0
  55. package/dist/kg/predictions.js +49 -0
  56. package/dist/kg/report.d.ts +84 -0
  57. package/dist/kg/report.js +125 -0
  58. package/dist/kg/run-kg-eval.d.ts +77 -0
  59. package/dist/kg/run-kg-eval.js +137 -0
  60. package/dist/kg/runner.d.ts +72 -0
  61. package/dist/kg/runner.js +51 -0
  62. package/dist/kg/runners/extract-resolve-runner.d.ts +40 -0
  63. package/dist/kg/runners/extract-resolve-runner.js +199 -0
  64. package/dist/kg/runners/extract-runner.d.ts +65 -0
  65. package/dist/kg/runners/extract-runner.js +243 -0
  66. package/dist/kg/scorer.d.ts +226 -0
  67. package/dist/kg/scorer.js +463 -0
  68. package/dist/kg/targets.d.ts +17 -0
  69. package/dist/kg/targets.js +16 -0
  70. package/dist/kg/text.d.ts +45 -0
  71. package/dist/kg/text.js +100 -0
  72. package/dist/live/adapters.d.ts +16 -0
  73. package/dist/live/adapters.js +58 -0
  74. package/dist/live/env.d.ts +39 -0
  75. package/dist/live/env.js +56 -0
  76. package/dist/live/index.d.ts +6 -0
  77. package/dist/live/index.js +16 -0
  78. package/dist/live/live-ai.d.ts +104 -0
  79. package/dist/live/live-ai.js +157 -0
  80. package/dist/parity/constants.d.ts +79 -0
  81. package/dist/parity/constants.js +104 -0
  82. package/dist/parity/index.d.ts +20 -0
  83. package/dist/parity/index.js +38 -0
  84. package/dist/parity/internals.d.ts +8 -0
  85. package/dist/parity/internals.js +16 -0
  86. package/dist/parity/scenario.d.ts +45 -0
  87. package/dist/parity/scenario.js +245 -0
  88. package/dist/parity/script.d.ts +44 -0
  89. package/dist/parity/script.js +136 -0
  90. package/dist/parity/snapshot.d.ts +43 -0
  91. package/dist/parity/snapshot.js +71 -0
  92. package/dist/real-data/index.d.ts +2 -0
  93. package/dist/real-data/index.js +12 -0
  94. package/dist/real-data/real-data.d.ts +76 -0
  95. package/dist/real-data/real-data.js +156 -0
  96. package/fixtures/kg-golden/README.md +136 -0
  97. package/fixtures/kg-golden/ask-questions.json +458 -0
  98. package/fixtures/kg-golden/meetings/m01-northwind-pilot-kickoff.json +792 -0
  99. package/fixtures/kg-golden/meetings/m02-halden-migration-planning.json +814 -0
  100. package/fixtures/kg-golden/meetings/m03-larkspur-weekly-sync.json +601 -0
  101. package/fixtures/kg-golden/meetings/m04-corvid-intake-discovery.json +690 -0
  102. package/fixtures/kg-golden/meetings/m05-hosting-vendor-selection.json +631 -0
  103. package/fixtures/kg-golden/meetings/m06-northwind-floor-data-review.json +649 -0
  104. package/fixtures/kg-golden/meetings/m07-gullwing-intro-notes.json +428 -0
  105. package/fixtures/kg-golden/meetings/m08-halden-migration-checkpoint.json +672 -0
  106. package/fixtures/kg-golden/meetings/m09-northwind-platform-org-update.json +711 -0
  107. package/fixtures/kg-golden/meetings/m10-corvid-prototype-review.json +623 -0
  108. package/fixtures/kg-golden/meetings/m11-solvane-grid-dashboard-scoping.json +689 -0
  109. package/fixtures/kg-golden/meetings/m12-northwind-pilot-replan.json +681 -0
  110. package/fixtures/kg-golden/meetings/m13-halden-cutover-go-no-go.json +721 -0
  111. package/fixtures/kg-golden/meetings/m14-gullwing-discovery-readout.json +719 -0
  112. package/fixtures/kg-golden/meetings/m15-halden-handover-ravi-leaving.json +716 -0
  113. package/fixtures/kg-golden/meetings/m16-varden-claims-portal-intro.json +704 -0
  114. package/fixtures/kg-golden/meetings/m17-corvid-usability-debrief.json +572 -0
  115. package/fixtures/kg-golden/meetings/m18-hosting-decision-revisited.json +655 -0
  116. package/fixtures/kg-golden/meetings/m19-solvane-integration-kickoff.json +726 -0
  117. package/fixtures/kg-golden/meetings/m20-northwind-go-live-retro.json +673 -0
  118. package/fixtures/kg-golden/meetings/m21-quarterly-account-review.json +449 -0
  119. package/fixtures/kg-golden/meetings/m22-halden-intro-call-2020.json +558 -0
  120. package/fixtures/kg-golden/meetings/m23-gullwing-model-review.json +702 -0
  121. package/fixtures/kg-golden/meetings/m24-varden-discovery-midpoint.json +643 -0
  122. package/fixtures/kg-golden/meetings/m25-corvid-rollout-planning.json +642 -0
  123. package/fixtures/kg-golden/meetings/m26-larkspur-engineering-prep.json +695 -0
  124. package/fixtures/kg-golden/meetings/m27-solvane-phase-one-demo.json +649 -0
  125. package/fixtures/kg-golden/meetings/m28-northwind-building-5-scoping.json +715 -0
  126. package/fixtures/kg-golden/meetings/m29-halden-southern-cutover-review.json +752 -0
  127. package/fixtures/kg-golden/meetings/m30-varden-portal-build-kickoff.json +697 -0
  128. package/fixtures/kg-golden/meetings/m31-gullwing-rollout-renewal.json +681 -0
  129. package/fixtures/kg-golden/meetings/m32-brambleway-weekly-sync.json +472 -0
  130. package/fixtures/kg-golden/meetings/m33-nina-oliver-one-on-one.json +342 -0
  131. package/fixtures/kg-golden/meetings/m34-coffee-with-dana.json +249 -0
  132. package/fixtures/kg-golden/meetings/m35-brambleway-june-sync.json +553 -0
  133. package/fixtures/kg-golden/meetings/m36-copenhagen-conference-planning.json +296 -0
  134. package/host/generated/client.d.ts +1 -0
  135. package/host/generated/client.js +5 -0
  136. package/host/generated/default.d.ts +1 -0
  137. package/host/generated/default.js +5 -0
  138. package/host/generated/edge.d.ts +1 -0
  139. package/host/generated/edge.js +1658 -0
  140. package/host/generated/index-browser.js +1684 -0
  141. package/host/generated/index.d.ts +192335 -0
  142. package/host/generated/index.js +1658 -0
  143. package/host/generated/package.json +139 -0
  144. package/host/generated/query_compiler_fast_bg.js +2 -0
  145. package/host/generated/query_compiler_fast_bg.wasm +0 -0
  146. package/host/generated/query_compiler_fast_bg.wasm-base64.js +2 -0
  147. package/host/generated/runtime/client.d.ts +3433 -0
  148. package/host/generated/runtime/client.js +110 -0
  149. package/host/generated/runtime/index-browser.d.ts +90 -0
  150. package/host/generated/runtime/index-browser.js +6 -0
  151. package/host/generated/runtime/wasm-compiler-edge.js +100 -0
  152. package/host/generated/schema.prisma +6312 -0
  153. package/host/generated/wasm-edge-light-loader.mjs +5 -0
  154. package/host/generated/wasm-worker-loader.mjs +5 -0
  155. package/host/prisma/fragments/kvox.ask.prisma +126 -0
  156. package/host/prisma/fragments/kvox.graph.prisma +1073 -0
  157. package/host/prisma/fragments/kvox.notes.prisma +787 -0
  158. package/host/prisma/fragments/kvox.search.prisma +211 -0
  159. package/host/prisma/fragments/kvox.transcripts.prisma +790 -0
  160. package/host/prisma/kvox.lock +101 -0
  161. package/host/prisma/migrations/20240101000000_initial/migration.sql +297 -0
  162. package/host/prisma/migrations/20240101000001_add_personal_access_tokens/migration.sql +31 -0
  163. package/host/prisma/migrations/20240101000002_add_credentials/migration.sql +20 -0
  164. package/host/prisma/migrations/20240101000003_add_notification_deliveries/migration.sql +27 -0
  165. package/host/prisma/migrations/20240101000004_drop_stale_uuid_defaults/migration.sql +35 -0
  166. package/host/prisma/migrations/20240101000005_add_notifications/migration.sql +22 -0
  167. package/host/prisma/migrations/20240101000006_add_push_subscriptions/migration.sql +25 -0
  168. package/host/prisma/migrations/20240101000007_add_jobs/migration.sql +110 -0
  169. package/host/prisma/migrations/20240101000008_add_worker_nodes/migration.sql +90 -0
  170. package/host/prisma/migrations/20240101000009_add_database_backup_runs/migration.sql +104 -0
  171. package/host/prisma/migrations/20240101000010_add_notification_broadcasts/migration.sql +57 -0
  172. package/host/prisma/migrations/20240101000011_add_backup_run_job_link/migration.sql +87 -0
  173. package/host/prisma/migrations/20240101000012_add_job_node_secrets/migration.sql +61 -0
  174. package/host/prisma/migrations/20240101000013_add_backup_run_pg_dump_version/migration.sql +26 -0
  175. package/host/prisma/migrations/20240101000014_add_job_claim_token/migration.sql +92 -0
  176. package/host/prisma/migrations/20240101000015_add_ai_platform/migration.sql +108 -0
  177. package/host/prisma/migrations/20240101000016_revoke_viewer_ai_use/migration.sql +32 -0
  178. package/host/prisma/migrations/20240101000017_add_user_credentials/migration.sql +29 -0
  179. package/host/prisma/migrations/20240101000018_add_device_session_credential_link/migration.sql +52 -0
  180. package/host/prisma/migrations/20240101000019_add_worker_node_vitals/migration.sql +3 -0
  181. package/host/prisma/migrations/20240101000020_add_job_trace_context/migration.sql +6 -0
  182. package/host/prisma/migrations/20240101000021_add_retention_created_at_indexes/migration.sql +13 -0
  183. package/host/prisma/migrations/20240101000022_add_organizations/migration.sql +142 -0
  184. package/host/prisma/migrations/20240101000023_split_system_org_roles/migration.sql +131 -0
  185. package/host/prisma/migrations/20240101000024_org_scoped_rls/migration.sql +215 -0
  186. package/host/prisma/migrations/20240101000025_add_groups/migration.sql +165 -0
  187. package/host/prisma/migrations/20240101000026_add_grants/migration.sql +117 -0
  188. package/host/prisma/migrations/20240101000027_add_org_settings/migration.sql +49 -0
  189. package/host/prisma/migrations/20240101000028_add_org_credentials/migration.sql +54 -0
  190. package/host/prisma/migrations/20240101000029_add_jobs_org_id/migration.sql +18 -0
  191. package/host/prisma/migrations/20240101000030_add_jobs_org_id_status_index/migration.sql +6 -0
  192. package/host/prisma/migrations/20240101000031_add_broadcast_target_org/migration.sql +21 -0
  193. package/host/prisma/migrations/20240101000032_add_android_app/migration.sql +60 -0
  194. package/host/prisma/migrations/20240101000033_open_job_reason/migration.sql +16 -0
  195. package/host/prisma/migrations/20240101000034_ai_usage_feature/migration.sql +37 -0
  196. package/host/prisma/migrations/20240101000035_add_app_metadata/migration.sql +49 -0
  197. package/host/prisma/migrations/20240101000036_open_sharing_vocabularies/migration.sql +97 -0
  198. package/host/prisma/migrations/20260914130000_kvox_add_transcripts/migration.sql +322 -0
  199. package/host/prisma/migrations/20260914140000_kvox_add_notes/migration.sql +311 -0
  200. package/host/prisma/migrations/20260915120000_kvox_add_search_vectors/migration.sql +150 -0
  201. package/host/prisma/migrations/20260915130000_kvox_add_search_embeddings/migration.sql +362 -0
  202. package/host/prisma/migrations/20260915210000_kvox_add_note_title_source/migration.sql +30 -0
  203. package/host/prisma/migrations/20260923120000_kvox_add_note_generation_context_snapshot/migration.sql +24 -0
  204. package/host/prisma/migrations/20260923130000_kvox_add_user_hidden_note_templates/migration.sql +35 -0
  205. package/host/prisma/migrations/20260923140000_kvox_add_transcript_speaker_identities/migration.sql +6 -0
  206. package/host/prisma/migrations/20260923150000_kvox_transcript_name_checks/migration.sql +95 -0
  207. package/host/prisma/migrations/20260923160000_kvox_add_note_body_format/migration.sql +27 -0
  208. package/host/prisma/migrations/20260923170000_kvox_add_note_version_body_format/migration.sql +23 -0
  209. package/host/prisma/migrations/20260926012548_kvox_add_knowledge_graph/migration.sql +680 -0
  210. package/host/prisma/migrations/20260926030000_kvox_fix_kg_relations_valid_precision_chk/migration.sql +29 -0
  211. package/host/prisma/migrations/20260926030100_kvox_add_transcript_recorded_at/migration.sql +9 -0
  212. package/host/prisma/migrations/20260926030200_kvox_kg_evidence_invariant/migration.sql +60 -0
  213. package/host/prisma/migrations/20260926040000_kvox_add_kg_graph_layouts/migration.sql +30 -0
  214. package/host/prisma/migrations/20260926050000_kvox_add_ask_conversations/migration.sql +99 -0
  215. package/host/prisma/migrations/20260926231512_kvox_add_kg_exports/migration.sql +52 -0
  216. package/host/prisma/migrations/20261016120000_kvox_transcripts_org_id/migration.sql +49 -0
  217. package/host/prisma/platform.lock +319 -0
  218. package/host/prisma/schema/app.kvox.ask.prisma +110 -0
  219. package/host/prisma/schema/app.kvox.graph.prisma +1030 -0
  220. package/host/prisma/schema/app.kvox.notes.prisma +746 -0
  221. package/host/prisma/schema/app.kvox.search.prisma +208 -0
  222. package/host/prisma/schema/app.kvox.transcripts.prisma +726 -0
  223. package/host/prisma/schema/platform.ai.prisma +419 -0
  224. package/host/prisma/schema/platform.android-app.prisma +46 -0
  225. package/host/prisma/schema/platform.base.prisma +15 -0
  226. package/host/prisma/schema/platform.credentials.prisma +156 -0
  227. package/host/prisma/schema/platform.db-backup.prisma +359 -0
  228. package/host/prisma/schema/platform.identity.prisma +638 -0
  229. package/host/prisma/schema/platform.jobs.prisma +824 -0
  230. package/host/prisma/schema/platform.notifications.prisma +641 -0
  231. package/host/prisma/schema/platform.settings.prisma +53 -0
  232. package/host/prisma/schema/platform.sharing.prisma +208 -0
  233. package/host/prisma/schema/platform.storage.prisma +118 -0
  234. package/package.json +112 -1
  235. package/parity/requests.ask.json +2681 -0
  236. package/parity/requests.m01.json +1554 -0
  237. package/parity/requests.m02.json +1554 -0
  238. package/parity/requests.m03.json +1554 -0
  239. package/parity/requests.m04.json +1554 -0
  240. package/parity/requests.m05.json +1554 -0
  241. package/parity/requests.m06.json +1554 -0
  242. package/parity/requests.m07.json +1554 -0
  243. package/parity/requests.m08.json +1554 -0
  244. package/parity/requests.m09.json +1554 -0
  245. package/parity/requests.m10.json +1554 -0
@@ -0,0 +1,814 @@
1
+ {
2
+ "id": "m02",
3
+ "title": "Halden route optimizer migration planning",
4
+ "tags": [
5
+ "client",
6
+ "relative-date",
7
+ "resolution-trap",
8
+ "nickname",
9
+ "negative-on-call",
10
+ "year-precision"
11
+ ],
12
+ "recordedAt": "2026-01-15T14:00:00Z",
13
+ "contextText": "Planning session for moving Halden Freight off their legacy route optimizer.",
14
+ "hasTranscript": true,
15
+ "speakers": [
16
+ {
17
+ "id": "m02-spk-a",
18
+ "label": "A",
19
+ "displayName": "Alex Rivera"
20
+ },
21
+ {
22
+ "id": "m02-spk-b",
23
+ "label": "B",
24
+ "displayName": "Marcus Webb"
25
+ },
26
+ {
27
+ "id": "m02-spk-c",
28
+ "label": "C",
29
+ "displayName": "Sarah Okonkwo"
30
+ },
31
+ {
32
+ "id": "m02-spk-d",
33
+ "label": "D",
34
+ "displayName": "Ravi Menon"
35
+ },
36
+ {
37
+ "id": "m02-spk-e",
38
+ "label": "E",
39
+ "displayName": "Jonah Jiménez"
40
+ }
41
+ ],
42
+ "segments": [
43
+ {
44
+ "id": "m02-s001",
45
+ "speakerId": "m02-spk-a",
46
+ "startMs": 0,
47
+ "endMs": 7060,
48
+ "rev": 1,
49
+ "text": "Thanks all for joining. Today is about sequencing the route optimizer migration and agreeing the first milestones."
50
+ },
51
+ {
52
+ "id": "m02-s002",
53
+ "speakerId": "m02-spk-b",
54
+ "startMs": 7310,
55
+ "endMs": 15130,
56
+ "rev": 1,
57
+ "text": "Before we start, for anyone new, I'm Marcus Webb, CIO at Halden Freight. Sarah and Ravi are with me."
58
+ },
59
+ {
60
+ "id": "m02-s003",
61
+ "speakerId": "m02-spk-c",
62
+ "startMs": 15380,
63
+ "endMs": 20920,
64
+ "rev": 1,
65
+ "text": "Sarah Okonkwo, I lead procurement here, so contracts and licensing come through me."
66
+ },
67
+ {
68
+ "id": "m02-s004",
69
+ "speakerId": "m02-spk-d",
70
+ "startMs": 21170,
71
+ "endMs": 29750,
72
+ "rev": 1,
73
+ "text": "Ravi Menon, integration lead. I've been at Halden since 2019, so I know where most of the old integrations are buried."
74
+ },
75
+ {
76
+ "id": "m02-s005",
77
+ "speakerId": "m02-spk-a",
78
+ "startMs": 30000,
79
+ "endMs": 34400,
80
+ "rev": 1,
81
+ "text": "And JJ from our side will lead the migration engineering."
82
+ },
83
+ {
84
+ "id": "m02-s006",
85
+ "speakerId": "m02-spk-e",
86
+ "startMs": 34650,
87
+ "endMs": 39810,
88
+ "rev": 1,
89
+ "text": "Hi all. I've read through the architecture pack, it's a good start."
90
+ },
91
+ {
92
+ "id": "m02-s007",
93
+ "speakerId": "m02-spk-a",
94
+ "startMs": 40060,
95
+ "endMs": 45220,
96
+ "rev": 1,
97
+ "text": "So the first question is sequencing. Carrier data or driver schedules first?"
98
+ },
99
+ {
100
+ "id": "m02-s008",
101
+ "speakerId": "m02-spk-d",
102
+ "startMs": 45470,
103
+ "endMs": 52530,
104
+ "rev": 1,
105
+ "text": "Carrier data. It's smaller, it changes slowly, and if we get it wrong nobody misses a shift."
106
+ },
107
+ {
108
+ "id": "m02-s009",
109
+ "speakerId": "m02-spk-b",
110
+ "startMs": 52780,
111
+ "endMs": 59840,
112
+ "rev": 1,
113
+ "text": "I agree. Driver schedules touch payroll, I don't want those moving until we trust the new system."
114
+ },
115
+ {
116
+ "id": "m02-s010",
117
+ "speakerId": "m02-spk-a",
118
+ "startMs": 60090,
119
+ "endMs": 66010,
120
+ "rev": 1,
121
+ "text": "Then we migrate carrier data first and driver schedules after. Everyone comfortable with that?"
122
+ },
123
+ {
124
+ "id": "m02-s011",
125
+ "speakerId": "m02-spk-c",
126
+ "startMs": 66260,
127
+ "endMs": 71420,
128
+ "rev": 1,
129
+ "text": "Yes, that also lines up with the licensing, which I'll come to."
130
+ },
131
+ {
132
+ "id": "m02-s012",
133
+ "speakerId": "m02-spk-e",
134
+ "startMs": 71670,
135
+ "endMs": 77590,
136
+ "rev": 1,
137
+ "text": "Works for me. It also lets us test the pipelines on something low risk."
138
+ },
139
+ {
140
+ "id": "m02-s013",
141
+ "speakerId": "m02-spk-a",
142
+ "startMs": 77840,
143
+ "endMs": 79200,
144
+ "rev": 1,
145
+ "text": "Sarah, licensing?"
146
+ },
147
+ {
148
+ "id": "m02-s014",
149
+ "speakerId": "m02-spk-c",
150
+ "startMs": 79450,
151
+ "endMs": 89170,
152
+ "rev": 1,
153
+ "text": "The current optimizer license expires at the end of April. We cannot let it lapse before we've cut over, so that's our hard deadline."
154
+ },
155
+ {
156
+ "id": "m02-s015",
157
+ "speakerId": "m02-spk-b",
158
+ "startMs": 89420,
159
+ "endMs": 95340,
160
+ "rev": 1,
161
+ "text": "End of April is non-negotiable from my side too, the renewal quote was absurd."
162
+ },
163
+ {
164
+ "id": "m02-s016",
165
+ "speakerId": "m02-spk-a",
166
+ "startMs": 95590,
167
+ "endMs": 99230,
168
+ "rev": 1,
169
+ "text": "Understood. JJ, what's realistic for a dry run?"
170
+ },
171
+ {
172
+ "id": "m02-s017",
173
+ "speakerId": "m02-spk-e",
174
+ "startMs": 99480,
175
+ "endMs": 105780,
176
+ "rev": 1,
177
+ "text": "I can have the migration scripts ready for a full dry run in three weeks."
178
+ },
179
+ {
180
+ "id": "m02-s018",
181
+ "speakerId": "m02-spk-a",
182
+ "startMs": 106030,
183
+ "endMs": 110050,
184
+ "rev": 1,
185
+ "text": "Good. Ravi, what do you need to give JJ?"
186
+ },
187
+ {
188
+ "id": "m02-s019",
189
+ "speakerId": "m02-spk-d",
190
+ "startMs": 110300,
191
+ "endMs": 116980,
192
+ "rev": 1,
193
+ "text": "He needs the historical routes. I'll export the last two years of historical routes by Friday."
194
+ },
195
+ {
196
+ "id": "m02-s020",
197
+ "speakerId": "m02-spk-e",
198
+ "startMs": 117230,
199
+ "endMs": 122770,
200
+ "rev": 1,
201
+ "text": "Two years is plenty. Can you include the depot codes in the export?"
202
+ },
203
+ {
204
+ "id": "m02-s021",
205
+ "speakerId": "m02-spk-d",
206
+ "startMs": 123020,
207
+ "endMs": 125140,
208
+ "rev": 1,
209
+ "text": "Yes, depot codes included."
210
+ },
211
+ {
212
+ "id": "m02-s022",
213
+ "speakerId": "m02-spk-a",
214
+ "startMs": 125390,
215
+ "endMs": 129030,
216
+ "rev": 1,
217
+ "text": "What about support during the cutover weekend itself?"
218
+ },
219
+ {
220
+ "id": "m02-s023",
221
+ "speakerId": "m02-spk-b",
222
+ "startMs": 129280,
223
+ "endMs": 135580,
224
+ "rev": 1,
225
+ "text": "Whoever's on call that weekend can watch the cutover, we don't need a special rota."
226
+ },
227
+ {
228
+ "id": "m02-s024",
229
+ "speakerId": "m02-spk-a",
230
+ "startMs": 135830,
231
+ "endMs": 142130,
232
+ "rev": 1,
233
+ "text": "I'd still like a named contact, but we can settle that closer to the date."
234
+ },
235
+ {
236
+ "id": "m02-s025",
237
+ "speakerId": "m02-spk-b",
238
+ "startMs": 142380,
239
+ "endMs": 152860,
240
+ "rev": 1,
241
+ "text": "Fair. One more thing, I'm mostly working out of the Rotterdam office these days, so if we need to meet in person that's where I'll be."
242
+ },
243
+ {
244
+ "id": "m02-s026",
245
+ "speakerId": "m02-spk-a",
246
+ "startMs": 153110,
247
+ "endMs": 155610,
248
+ "rev": 1,
249
+ "text": "Noted, thanks Marcus. Anything else?"
250
+ },
251
+ {
252
+ "id": "m02-s027",
253
+ "speakerId": "m02-spk-c",
254
+ "startMs": 155860,
255
+ "endMs": 162160,
256
+ "rev": 1,
257
+ "text": "Just that any new vendor terms need to come to me before anyone signs anything."
258
+ },
259
+ {
260
+ "id": "m02-s028",
261
+ "speakerId": "m02-spk-a",
262
+ "startMs": 162410,
263
+ "endMs": 170990,
264
+ "rev": 1,
265
+ "text": "Absolutely. So: carrier data first, dry run in three weeks, historical routes by Friday, and the April license deadline. Thanks everyone."
266
+ }
267
+ ],
268
+ "note": {
269
+ "version": 1,
270
+ "body": "# Halden route optimizer migration planning\n\n**Date:** January 15\n**Attendees:** Alex Rivera (Larkspur Labs), JJ (Larkspur Labs), Marcus Webb (Halden Freight), Sarah Okonkwo (Halden Freight), Ravi Menon (Halden Freight)\n\n## Summary\n\nPlanning session for migrating Halden Freight off its legacy route optimizer. Marcus Webb (CIO) sponsors the work; Sarah Okonkwo leads procurement and owns licensing; Ravi Menon is the integration lead and has been at Halden since 2019. JJ leads migration engineering for Larkspur.\n\n## Decisions\n\n- **Carrier data migrates first**, driver schedules afterwards. Carrier data is smaller and slower-changing, and driver schedules touch payroll, so they wait until the new system is trusted.\n\n## Key facts\n\n- The current optimizer license expires at the end of April. Sarah and Marcus both treat this as a hard deadline; the renewal quote was described as absurd.\n- Any new vendor terms must go through Sarah before anyone signs.\n\n## Action items\n\n- **JJ** — have the migration scripts ready for a full dry run in three weeks.\n- **Ravi Menon** — export the last two years of historical routes, including depot codes, by Friday.\n\n## Open questions\n\n- Cutover weekend support: Marcus suggested that whoever's on call that weekend can watch the cutover. Alex would still like a named contact; to be settled closer to the date.\n\n## Notes\n\n- Marcus mostly works out of the Rotterdam office now, so in-person meetings would be there.\n"
271
+ },
272
+ "knownEntities": [
273
+ {
274
+ "id": "g-org-halden-freight",
275
+ "type": "Organization",
276
+ "label": "Halden Freight",
277
+ "aliases": [
278
+ "Halden"
279
+ ],
280
+ "props": {},
281
+ "attendedFixtureIds": []
282
+ },
283
+ {
284
+ "id": "g-org-larkspur-labs",
285
+ "type": "Organization",
286
+ "label": "Larkspur Labs",
287
+ "aliases": [
288
+ "Larkspur"
289
+ ],
290
+ "props": {},
291
+ "attendedFixtureIds": []
292
+ },
293
+ {
294
+ "id": "g-person-alex-rivera",
295
+ "type": "Person",
296
+ "label": "Alex Rivera",
297
+ "aliases": [
298
+ "Alex"
299
+ ],
300
+ "props": {},
301
+ "attendedFixtureIds": [
302
+ "m01",
303
+ "m22"
304
+ ]
305
+ },
306
+ {
307
+ "id": "g-person-jonah-jimenez",
308
+ "type": "Person",
309
+ "label": "Jonah Jiménez",
310
+ "aliases": [
311
+ "JJ",
312
+ "Jonah Jimenez"
313
+ ],
314
+ "props": {},
315
+ "attendedFixtureIds": []
316
+ },
317
+ {
318
+ "id": "g-person-marcus-webb",
319
+ "type": "Person",
320
+ "label": "Marcus Webb",
321
+ "aliases": [
322
+ "Marcus"
323
+ ],
324
+ "props": {},
325
+ "attendedFixtureIds": [
326
+ "m22"
327
+ ]
328
+ },
329
+ {
330
+ "id": "g-person-ravi-menon",
331
+ "type": "Person",
332
+ "label": "Ravi Menon",
333
+ "aliases": [
334
+ "Ravi"
335
+ ],
336
+ "props": {},
337
+ "attendedFixtureIds": [
338
+ "m22"
339
+ ]
340
+ },
341
+ {
342
+ "id": "g-person-sarah-chen",
343
+ "type": "Person",
344
+ "label": "Sarah Chen",
345
+ "aliases": [
346
+ "Sarah"
347
+ ],
348
+ "props": {},
349
+ "attendedFixtureIds": [
350
+ "m01"
351
+ ]
352
+ },
353
+ {
354
+ "id": "g-person-sarah-okonkwo",
355
+ "type": "Person",
356
+ "label": "Sarah Okonkwo",
357
+ "aliases": [
358
+ "Sarah"
359
+ ],
360
+ "props": {},
361
+ "attendedFixtureIds": []
362
+ },
363
+ {
364
+ "id": "g-project-route-optimizer-migration",
365
+ "type": "Project",
366
+ "label": "Route optimizer migration",
367
+ "aliases": [
368
+ "the migration"
369
+ ],
370
+ "props": {},
371
+ "attendedFixtureIds": []
372
+ }
373
+ ],
374
+ "labels": {
375
+ "entities": [
376
+ {
377
+ "key": "meeting",
378
+ "type": "Meeting",
379
+ "label": "Halden route optimizer migration planning",
380
+ "aliases": [],
381
+ "existingId": null,
382
+ "props": {},
383
+ "evidence": [
384
+ {
385
+ "source": "note",
386
+ "quote": "Halden route optimizer migration planning"
387
+ }
388
+ ]
389
+ },
390
+ {
391
+ "key": "marcus",
392
+ "type": "Person",
393
+ "label": "Marcus Webb",
394
+ "aliases": [],
395
+ "existingId": "g-person-marcus-webb",
396
+ "props": {},
397
+ "evidence": [
398
+ {
399
+ "source": "segment",
400
+ "segmentId": "m02-s002",
401
+ "quote": "I'm Marcus Webb, CIO at Halden Freight"
402
+ }
403
+ ]
404
+ },
405
+ {
406
+ "key": "sarahO",
407
+ "type": "Person",
408
+ "label": "Sarah Okonkwo",
409
+ "aliases": [],
410
+ "existingId": "g-person-sarah-okonkwo",
411
+ "props": {},
412
+ "evidence": [
413
+ {
414
+ "source": "segment",
415
+ "segmentId": "m02-s003",
416
+ "quote": "Sarah Okonkwo, I lead procurement here"
417
+ }
418
+ ]
419
+ },
420
+ {
421
+ "key": "ravi",
422
+ "type": "Person",
423
+ "label": "Ravi Menon",
424
+ "aliases": [],
425
+ "existingId": "g-person-ravi-menon",
426
+ "props": {},
427
+ "evidence": [
428
+ {
429
+ "source": "segment",
430
+ "segmentId": "m02-s004",
431
+ "quote": "Ravi Menon, integration lead."
432
+ }
433
+ ]
434
+ },
435
+ {
436
+ "key": "jj",
437
+ "type": "Person",
438
+ "label": "Jonah Jiménez",
439
+ "aliases": [
440
+ "JJ"
441
+ ],
442
+ "existingId": "g-person-jonah-jimenez",
443
+ "props": {},
444
+ "evidence": [
445
+ {
446
+ "source": "segment",
447
+ "segmentId": "m02-s005",
448
+ "quote": "And JJ from our side will lead the migration engineering."
449
+ }
450
+ ]
451
+ },
452
+ {
453
+ "key": "alex",
454
+ "type": "Person",
455
+ "label": "Alex Rivera",
456
+ "aliases": [],
457
+ "existingId": "g-person-alex-rivera",
458
+ "props": {},
459
+ "evidence": [
460
+ {
461
+ "source": "note",
462
+ "quote": "Alex Rivera (Larkspur Labs)"
463
+ }
464
+ ]
465
+ },
466
+ {
467
+ "key": "halden",
468
+ "type": "Organization",
469
+ "label": "Halden Freight",
470
+ "aliases": [],
471
+ "existingId": "g-org-halden-freight",
472
+ "props": {},
473
+ "evidence": [
474
+ {
475
+ "source": "segment",
476
+ "segmentId": "m02-s002",
477
+ "quote": "I'm Marcus Webb, CIO at Halden Freight"
478
+ }
479
+ ]
480
+ },
481
+ {
482
+ "key": "migration",
483
+ "type": "Project",
484
+ "label": "Route optimizer migration",
485
+ "aliases": [],
486
+ "existingId": "g-project-route-optimizer-migration",
487
+ "props": {},
488
+ "evidence": [
489
+ {
490
+ "source": "segment",
491
+ "segmentId": "m02-s001",
492
+ "quote": "sequencing the route optimizer migration"
493
+ }
494
+ ]
495
+ }
496
+ ],
497
+ "relations": [
498
+ {
499
+ "type": "ATTENDED",
500
+ "from": "alex",
501
+ "to": "meeting",
502
+ "validFrom": null,
503
+ "validTo": null,
504
+ "precision": "unknown",
505
+ "props": {},
506
+ "evidence": [
507
+ {
508
+ "source": "note",
509
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), JJ (Larkspur Labs), Marcus Webb (Halden Freight), Sarah Okonkwo (Halden Freight), Ravi Menon (Halden Freight)"
510
+ }
511
+ ]
512
+ },
513
+ {
514
+ "type": "ATTENDED",
515
+ "from": "jj",
516
+ "to": "meeting",
517
+ "validFrom": null,
518
+ "validTo": null,
519
+ "precision": "unknown",
520
+ "props": {},
521
+ "evidence": [
522
+ {
523
+ "source": "note",
524
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), JJ (Larkspur Labs), Marcus Webb (Halden Freight), Sarah Okonkwo (Halden Freight), Ravi Menon (Halden Freight)"
525
+ }
526
+ ]
527
+ },
528
+ {
529
+ "type": "ATTENDED",
530
+ "from": "marcus",
531
+ "to": "meeting",
532
+ "validFrom": null,
533
+ "validTo": null,
534
+ "precision": "unknown",
535
+ "props": {},
536
+ "evidence": [
537
+ {
538
+ "source": "note",
539
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), JJ (Larkspur Labs), Marcus Webb (Halden Freight), Sarah Okonkwo (Halden Freight), Ravi Menon (Halden Freight)"
540
+ }
541
+ ]
542
+ },
543
+ {
544
+ "type": "ATTENDED",
545
+ "from": "sarahO",
546
+ "to": "meeting",
547
+ "validFrom": null,
548
+ "validTo": null,
549
+ "precision": "unknown",
550
+ "props": {},
551
+ "evidence": [
552
+ {
553
+ "source": "note",
554
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), JJ (Larkspur Labs), Marcus Webb (Halden Freight), Sarah Okonkwo (Halden Freight), Ravi Menon (Halden Freight)"
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "type": "ATTENDED",
560
+ "from": "ravi",
561
+ "to": "meeting",
562
+ "validFrom": null,
563
+ "validTo": null,
564
+ "precision": "unknown",
565
+ "props": {},
566
+ "evidence": [
567
+ {
568
+ "source": "note",
569
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), JJ (Larkspur Labs), Marcus Webb (Halden Freight), Sarah Okonkwo (Halden Freight), Ravi Menon (Halden Freight)"
570
+ }
571
+ ]
572
+ },
573
+ {
574
+ "type": "HAS_ROLE",
575
+ "from": "marcus",
576
+ "to": "halden",
577
+ "validFrom": null,
578
+ "validTo": null,
579
+ "precision": "unknown",
580
+ "props": {
581
+ "title": "CIO"
582
+ },
583
+ "evidence": [
584
+ {
585
+ "source": "segment",
586
+ "segmentId": "m02-s002",
587
+ "quote": "I'm Marcus Webb, CIO at Halden Freight"
588
+ }
589
+ ]
590
+ },
591
+ {
592
+ "type": "WORKS_FOR",
593
+ "from": "sarahO",
594
+ "to": "halden",
595
+ "validFrom": null,
596
+ "validTo": null,
597
+ "precision": "unknown",
598
+ "props": {},
599
+ "evidence": [
600
+ {
601
+ "source": "note",
602
+ "quote": "Sarah Okonkwo (Halden Freight)"
603
+ }
604
+ ]
605
+ },
606
+ {
607
+ "type": "HAS_ROLE",
608
+ "from": "sarahO",
609
+ "to": "halden",
610
+ "validFrom": null,
611
+ "validTo": null,
612
+ "precision": "unknown",
613
+ "props": {
614
+ "title": "Procurement Lead"
615
+ },
616
+ "evidence": [
617
+ {
618
+ "source": "segment",
619
+ "segmentId": "m02-s003",
620
+ "quote": "Sarah Okonkwo, I lead procurement here"
621
+ }
622
+ ]
623
+ },
624
+ {
625
+ "type": "WORKS_FOR",
626
+ "from": "ravi",
627
+ "to": "halden",
628
+ "validFrom": "2019-01-01",
629
+ "validTo": null,
630
+ "precision": "year",
631
+ "props": {},
632
+ "evidence": [
633
+ {
634
+ "source": "segment",
635
+ "segmentId": "m02-s004",
636
+ "quote": "I've been at Halden since 2019"
637
+ }
638
+ ]
639
+ },
640
+ {
641
+ "type": "HAS_ROLE",
642
+ "from": "ravi",
643
+ "to": "halden",
644
+ "validFrom": null,
645
+ "validTo": null,
646
+ "precision": "unknown",
647
+ "props": {
648
+ "title": "Integration Lead"
649
+ },
650
+ "evidence": [
651
+ {
652
+ "source": "segment",
653
+ "segmentId": "m02-s004",
654
+ "quote": "Ravi Menon, integration lead."
655
+ }
656
+ ]
657
+ },
658
+ {
659
+ "type": "WORKS_FOR",
660
+ "from": "jj",
661
+ "to": "g-org-larkspur-labs",
662
+ "validFrom": null,
663
+ "validTo": null,
664
+ "precision": "unknown",
665
+ "props": {},
666
+ "evidence": [
667
+ {
668
+ "source": "note",
669
+ "quote": "JJ (Larkspur Labs)"
670
+ }
671
+ ]
672
+ },
673
+ {
674
+ "type": "PART_OF",
675
+ "from": "migration",
676
+ "to": "halden",
677
+ "validFrom": null,
678
+ "validTo": null,
679
+ "precision": "unknown",
680
+ "props": {},
681
+ "evidence": [
682
+ {
683
+ "source": "note",
684
+ "quote": "Planning session for migrating Halden Freight off its legacy route optimizer."
685
+ }
686
+ ]
687
+ },
688
+ {
689
+ "type": "DISCUSSED",
690
+ "from": "meeting",
691
+ "to": "migration",
692
+ "validFrom": null,
693
+ "validTo": null,
694
+ "precision": "unknown",
695
+ "props": {},
696
+ "evidence": [
697
+ {
698
+ "source": "segment",
699
+ "segmentId": "m02-s001",
700
+ "quote": "sequencing the route optimizer migration"
701
+ }
702
+ ]
703
+ }
704
+ ],
705
+ "items": [
706
+ {
707
+ "kind": "decision",
708
+ "subject": "migration",
709
+ "owner": null,
710
+ "counterparty": null,
711
+ "title": "Migrate carrier data first",
712
+ "statement": "Carrier data migrates first and driver schedules afterwards.",
713
+ "status": null,
714
+ "occurredAt": "2026-01-15",
715
+ "dueAt": null,
716
+ "sensitivity": null,
717
+ "supersedesLabel": null,
718
+ "evidence": [
719
+ {
720
+ "source": "segment",
721
+ "segmentId": "m02-s010",
722
+ "quote": "Then we migrate carrier data first and driver schedules after."
723
+ }
724
+ ]
725
+ },
726
+ {
727
+ "kind": "claim",
728
+ "subject": "halden",
729
+ "owner": null,
730
+ "counterparty": null,
731
+ "title": "Optimizer license expires end of April",
732
+ "statement": "The current optimizer license expires at the end of April.",
733
+ "status": null,
734
+ "occurredAt": "2026-01-15",
735
+ "dueAt": null,
736
+ "sensitivity": null,
737
+ "supersedesLabel": null,
738
+ "evidence": [
739
+ {
740
+ "source": "segment",
741
+ "segmentId": "m02-s014",
742
+ "quote": "The current optimizer license expires at the end of April."
743
+ }
744
+ ]
745
+ },
746
+ {
747
+ "kind": "commitment",
748
+ "subject": "migration",
749
+ "owner": "jj",
750
+ "counterparty": null,
751
+ "title": "Migration scripts ready for dry run",
752
+ "statement": "JJ will have the migration scripts ready for a full dry run in three weeks.",
753
+ "status": "open",
754
+ "occurredAt": "2026-01-15",
755
+ "dueAt": "2026-02-05",
756
+ "sensitivity": null,
757
+ "supersedesLabel": null,
758
+ "evidence": [
759
+ {
760
+ "source": "segment",
761
+ "segmentId": "m02-s017",
762
+ "quote": "I can have the migration scripts ready for a full dry run in three weeks."
763
+ }
764
+ ]
765
+ },
766
+ {
767
+ "kind": "commitment",
768
+ "subject": "migration",
769
+ "owner": "ravi",
770
+ "counterparty": "jj",
771
+ "title": "Export historical routes",
772
+ "statement": "Ravi will export the last two years of historical routes, including depot codes, by Friday.",
773
+ "status": "open",
774
+ "occurredAt": "2026-01-15",
775
+ "dueAt": "2026-01-16",
776
+ "sensitivity": null,
777
+ "supersedesLabel": null,
778
+ "evidence": [
779
+ {
780
+ "source": "segment",
781
+ "segmentId": "m02-s019",
782
+ "quote": "I'll export the last two years of historical routes by Friday."
783
+ }
784
+ ]
785
+ },
786
+ {
787
+ "kind": "person_fact",
788
+ "subject": "marcus",
789
+ "owner": null,
790
+ "counterparty": null,
791
+ "title": "Works from the Rotterdam office",
792
+ "statement": "Marcus mostly works out of the Rotterdam office.",
793
+ "status": null,
794
+ "occurredAt": "2026-01-15",
795
+ "dueAt": null,
796
+ "sensitivity": "business",
797
+ "supersedesLabel": null,
798
+ "evidence": [
799
+ {
800
+ "source": "segment",
801
+ "segmentId": "m02-s025",
802
+ "quote": "I'm mostly working out of the Rotterdam office these days"
803
+ }
804
+ ]
805
+ }
806
+ ],
807
+ "negatives": [
808
+ {
809
+ "quote": "Whoever's on call that weekend can watch the cutover",
810
+ "why": "No specific human is named: nothing to create, and not a Commitment with an owner."
811
+ }
812
+ ]
813
+ }
814
+ }