@mycadet/assistant 0.12.11 → 0.13.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 (176) hide show
  1. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +2 -2
  2. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +2 -2
  3. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +2 -2
  4. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +2 -2
  5. package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +0 -20
  6. package/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +2 -2
  7. package/node_modules/@mycadet/service-contracts/src/ingress.ts +2 -2
  8. package/openapi.yaml +2 -708
  9. package/package.json +2 -3
  10. package/scripts/sync-web-search-catalog.ts +1 -2
  11. package/src/__tests__/cloud-profile-guard.test.ts +2 -2
  12. package/src/__tests__/config-schema.test.ts +6 -38
  13. package/src/__tests__/conversation-queue.test.ts +45 -6
  14. package/src/__tests__/db-readiness-http-gate.test.ts +0 -6
  15. package/src/__tests__/persist-onboarding-artifacts.test.ts +0 -1
  16. package/src/__tests__/persona-resolver.test.ts +0 -51
  17. package/src/__tests__/provider-cloud-proxy-integration.test.ts +2 -110
  18. package/src/__tests__/run-due-schedules.test.ts +0 -4
  19. package/src/__tests__/schedule-store.test.ts +0 -12
  20. package/src/__tests__/stt-stream-session.test.ts +4 -4
  21. package/src/__tests__/telephony-tts-guard.test.ts +2 -50
  22. package/src/__tests__/voice-config-update.test.ts +12 -167
  23. package/src/__tests__/web-search-catalog-parity.test.ts +0 -2
  24. package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +9 -7
  25. package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
  26. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -4
  27. package/src/calls/resolve-call-tts-provider.ts +6 -25
  28. package/src/calls/telephony-credential-preflight.ts +0 -10
  29. package/src/calls/telephony-tts-capability.ts +1 -17
  30. package/src/cli/commands/tts.ts +1 -2
  31. package/src/cli/index.help.ts +0 -2
  32. package/src/cli/program.ts +0 -2
  33. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +4 -42
  34. package/src/config/schemas/__tests__/stt.test.ts +10 -14
  35. package/src/config/schemas/services.ts +5 -6
  36. package/src/config/schemas/stt.ts +1 -3
  37. package/src/config/schemas/tts.ts +1 -30
  38. package/src/daemon/daemon-readiness.ts +4 -29
  39. package/src/daemon/lifecycle.ts +0 -31
  40. package/src/daemon/providers-setup.ts +0 -8
  41. package/src/heartbeat/__tests__/heartbeat-service.test.ts +0 -1
  42. package/src/heartbeat/heartbeat-service.ts +1 -66
  43. package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -9
  44. package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +0 -44
  45. package/src/live-voice/__tests__/live-voice-flux-turn-end.test.ts +4 -6
  46. package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
  47. package/src/live-voice/live-voice-credential-preflight.ts +9 -33
  48. package/src/live-voice/live-voice-session.ts +10 -6
  49. package/src/live-voice/live-voice-tts.ts +1 -8
  50. package/src/plugins/defaults/memory/worker.ts +3 -3
  51. package/src/prompts/persona-resolver.ts +0 -35
  52. package/src/providers/__tests__/search-provider-catalog.test.ts +5 -8
  53. package/src/providers/__tests__/voice-error-copy.test.ts +9 -10
  54. package/src/providers/search-provider-catalog.ts +7 -39
  55. package/src/providers/speech-to-text/__tests__/provider-catalog.test.ts +3 -47
  56. package/src/providers/speech-to-text/__tests__/resolve.test.ts +6 -372
  57. package/src/providers/speech-to-text/provider-catalog.ts +2 -73
  58. package/src/providers/speech-to-text/resolve.ts +3 -120
  59. package/src/runtime/http-router-types.ts +1 -3
  60. package/src/runtime/http-server.ts +1 -1
  61. package/src/runtime/routes/__tests__/tts-routes.test.ts +2 -6
  62. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +7 -7
  63. package/src/runtime/routes/index.ts +0 -4
  64. package/src/runtime/routes/live-voice-routes.test.ts +4 -11
  65. package/src/runtime/routes/live-voice-routes.ts +8 -11
  66. package/src/runtime/routes/secret-routes.ts +0 -6
  67. package/src/runtime/routes/tts-routes.ts +0 -38
  68. package/src/schedule/__tests__/plugin-schedule-reconciler.test.ts +1 -7
  69. package/src/schedule/__tests__/worker-mcp-readiness.test.ts +0 -4
  70. package/src/schedule/schedule-store.ts +0 -7
  71. package/src/schedule/scheduler.ts +0 -5
  72. package/src/schedule/worker.ts +1 -1
  73. package/src/stt/__tests__/daemon-batch-transcriber.test.ts +2 -10
  74. package/src/stt/daemon-batch-transcriber.ts +4 -38
  75. package/src/stt/types.ts +1 -9
  76. package/src/tools/network/__tests__/web-search.test.ts +3 -250
  77. package/src/tools/network/web-search.ts +4 -165
  78. package/src/tts/__tests__/provider-resolution.test.ts +0 -5
  79. package/src/tts/provider-catalog.ts +0 -4
  80. package/src/tts/types.ts +0 -1
  81. package/src/__tests__/cloud-speech-defaults.test.ts +0 -330
  82. package/src/__tests__/migration-cross-version-compatibility.test.ts +0 -1708
  83. package/src/__tests__/migration-export-http.test.ts +0 -557
  84. package/src/__tests__/migration-export-streaming.test.ts +0 -350
  85. package/src/__tests__/migration-export-to-gcs.test.ts +0 -706
  86. package/src/__tests__/migration-import-commit-http.test.ts +0 -1176
  87. package/src/__tests__/migration-import-from-gcs.test.ts +0 -534
  88. package/src/__tests__/migration-import-from-path.test.ts +0 -324
  89. package/src/__tests__/migration-import-from-url.test.ts +0 -588
  90. package/src/__tests__/migration-import-preflight-http.test.ts +0 -739
  91. package/src/__tests__/migration-jobs-status.test.ts +0 -139
  92. package/src/__tests__/migration-parity-persistence.test.ts +0 -1891
  93. package/src/__tests__/migration-transport.test.ts +0 -1089
  94. package/src/__tests__/migration-validate-http.test.ts +0 -634
  95. package/src/__tests__/migration-wizard.test.ts +0 -1395
  96. package/src/__tests__/rebind-secrets-screen.test.ts +0 -876
  97. package/src/__tests__/sanitize-config-for-transfer.test.ts +0 -259
  98. package/src/__tests__/transfer-progress-screen.test.ts +0 -1217
  99. package/src/__tests__/validation-results-screen.test.ts +0 -1130
  100. package/src/__tests__/vbundle-pax-and-symlink.test.ts +0 -147
  101. package/src/background-wake/background-wake-routes.test.ts +0 -906
  102. package/src/background-wake/cloud-client.test.ts +0 -328
  103. package/src/background-wake/cloud-client.ts +0 -196
  104. package/src/background-wake/next-wake.test.ts +0 -335
  105. package/src/background-wake/next-wake.ts +0 -188
  106. package/src/background-wake/publisher.ts +0 -93
  107. package/src/background-wake/wake-intent-hooks.test.ts +0 -234
  108. package/src/cli/commands/__tests__/backup.test.ts +0 -363
  109. package/src/cli/commands/backup.help.ts +0 -180
  110. package/src/cli/commands/backup.ts +0 -398
  111. package/src/cloud/cloud-speech.test.ts +0 -335
  112. package/src/cloud/cloud-speech.ts +0 -300
  113. package/src/config/cloud-speech-defaults.ts +0 -300
  114. package/src/config/sanitize-for-transfer.ts +0 -111
  115. package/src/live-voice/__tests__/live-voice-cloud-speech-fallback.test.ts +0 -250
  116. package/src/providers/speech-to-text/__tests__/cadet-cloud-realtime.test.ts +0 -457
  117. package/src/providers/speech-to-text/__tests__/cadet-cloud.test.ts +0 -271
  118. package/src/providers/speech-to-text/__tests__/cadet-speech-relay-connection.test.ts +0 -126
  119. package/src/providers/speech-to-text/cadet-cloud-flux-realtime.ts +0 -309
  120. package/src/providers/speech-to-text/cadet-cloud-realtime.ts +0 -315
  121. package/src/providers/speech-to-text/cadet-cloud.ts +0 -108
  122. package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +0 -176
  123. package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +0 -254
  124. package/src/runtime/migrations/__tests__/job-registry.test.ts +0 -346
  125. package/src/runtime/migrations/__tests__/origin-mode.test.ts +0 -62
  126. package/src/runtime/migrations/__tests__/rebind-secrets-credentials.test.ts +0 -184
  127. package/src/runtime/migrations/__tests__/staged-import-path.test.ts +0 -110
  128. package/src/runtime/migrations/__tests__/v1-test-helpers.ts +0 -112
  129. package/src/runtime/migrations/__tests__/vbundle-builder-credentials.test.ts +0 -285
  130. package/src/runtime/migrations/__tests__/vbundle-builder-fd-leak.test.ts +0 -126
  131. package/src/runtime/migrations/__tests__/vbundle-builder-v1-shape.test.ts +0 -253
  132. package/src/runtime/migrations/__tests__/vbundle-import-credentials.test.ts +0 -208
  133. package/src/runtime/migrations/__tests__/vbundle-import-parity.test.ts +0 -485
  134. package/src/runtime/migrations/__tests__/vbundle-import-policy.test.ts +0 -349
  135. package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +0 -196
  136. package/src/runtime/migrations/__tests__/vbundle-legacy-user-md.test.ts +0 -551
  137. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +0 -428
  138. package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +0 -220
  139. package/src/runtime/migrations/__tests__/vbundle-streaming-importer.test.ts +0 -1823
  140. package/src/runtime/migrations/__tests__/vbundle-streaming-validator.test.ts +0 -598
  141. package/src/runtime/migrations/__tests__/vbundle-symlink-importer.test.ts +0 -463
  142. package/src/runtime/migrations/__tests__/vbundle-symlink-streaming-importer.test.ts +0 -538
  143. package/src/runtime/migrations/__tests__/vbundle-symlink-streaming.test.ts +0 -515
  144. package/src/runtime/migrations/__tests__/vbundle-symlink-tar.test.ts +0 -453
  145. package/src/runtime/migrations/__tests__/vbundle-symlink-walker.test.ts +0 -319
  146. package/src/runtime/migrations/__tests__/vbundle-tar-stream.test.ts +0 -240
  147. package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +0 -473
  148. package/src/runtime/migrations/gcs-signed-url.ts +0 -190
  149. package/src/runtime/migrations/job-registry.ts +0 -297
  150. package/src/runtime/migrations/migration-transport.ts +0 -612
  151. package/src/runtime/migrations/migration-wizard.ts +0 -747
  152. package/src/runtime/migrations/origin-mode.ts +0 -42
  153. package/src/runtime/migrations/rebind-secrets-screen.ts +0 -412
  154. package/src/runtime/migrations/staged-import-path.ts +0 -116
  155. package/src/runtime/migrations/transfer-progress-screen.ts +0 -323
  156. package/src/runtime/migrations/validation-results-screen.ts +0 -469
  157. package/src/runtime/migrations/vbundle-builder.ts +0 -1382
  158. package/src/runtime/migrations/vbundle-import-analyzer.ts +0 -405
  159. package/src/runtime/migrations/vbundle-import-policy.ts +0 -241
  160. package/src/runtime/migrations/vbundle-importer.ts +0 -826
  161. package/src/runtime/migrations/vbundle-metadata-merge.ts +0 -113
  162. package/src/runtime/migrations/vbundle-streaming-importer.ts +0 -2844
  163. package/src/runtime/migrations/vbundle-streaming-validator.ts +0 -426
  164. package/src/runtime/migrations/vbundle-tar-stream.ts +0 -244
  165. package/src/runtime/migrations/vbundle-validator.ts +0 -724
  166. package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +0 -227
  167. package/src/runtime/routes/__tests__/migration-export-secrets-redacted.test.ts +0 -54
  168. package/src/runtime/routes/__tests__/migration-import-allowed-hosts-env.test.ts +0 -70
  169. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +0 -257
  170. package/src/runtime/routes/background-wake-routes.ts +0 -387
  171. package/src/runtime/routes/migration-routes.ts +0 -2584
  172. package/src/tools/network/__tests__/cloud-search-proxy.test.ts +0 -282
  173. package/src/tools/network/cloud-search-proxy.ts +0 -211
  174. package/src/tts/__tests__/cadet-provider.test.ts +0 -253
  175. package/src/tts/providers/cadet-provider.ts +0 -244
  176. package/src/types/tar-stream.d.ts +0 -66
@@ -1,323 +0,0 @@
1
- /**
2
- * Transfer progress screen -- view model for the transfer step.
3
- *
4
- * Derives display state from the migration wizard state machine for rendering
5
- * a transfer/import progress UI. Usable from macOS/iOS web views, CLI, or
6
- * any TypeScript consumer.
7
- *
8
- * The transfer step is import-only: it commits a pre-uploaded bundle to
9
- * the destination. The export/poll phases are retained in the type system
10
- * for managed-source flows that still use them, but the default phase is
11
- * "import".
12
- *
13
- * View model states:
14
- * - disabled: step is not yet accessible (earlier steps incomplete)
15
- * - exporting: export phase is in progress (managed-source flows only)
16
- * - polling: managed async export job is being polled for completion
17
- * - importing: import phase is in progress
18
- * - success: import completed successfully
19
- * - error: an error occurred (with retry capability info)
20
- */
21
-
22
- import type {
23
- ExportManagedResult,
24
- ImportCommitSuccessResponse,
25
- } from "./migration-transport.js";
26
- import type {
27
- MigrationWizardState,
28
- StepError,
29
- StepExecutorOptions,
30
- } from "./migration-wizard.js";
31
- import {
32
- canRetryCurrentStep,
33
- executeTransferStep,
34
- goBackTo,
35
- isStepAccessible,
36
- resetStepForRetry,
37
- } from "./migration-wizard.js";
38
-
39
- // ---------------------------------------------------------------------------
40
- // View model types
41
- // ---------------------------------------------------------------------------
42
-
43
- /** Which phase of the transfer is currently active. */
44
- export type TransferPhase = "export" | "poll" | "import";
45
-
46
- /** Summary of the import result for display. */
47
- export interface TransferImportSummary {
48
- totalFiles: number;
49
- filesCreated: number;
50
- filesOverwritten: number;
51
- filesSkipped: number;
52
- backupsCreated: number;
53
- warnings: string[];
54
- }
55
-
56
- /**
57
- * Discriminated union representing the current display state of the
58
- * transfer progress screen.
59
- */
60
- export type TransferScreenState =
61
- | { phase: "disabled" }
62
- | { phase: "exporting"; message: string }
63
- | { phase: "polling"; message: string; jobId: string }
64
- | { phase: "importing"; message: string }
65
- | {
66
- phase: "error";
67
- error: StepError;
68
- /** Which transfer phase failed, if determinable. */
69
- failedPhase: TransferPhase | "unknown";
70
- canRetry: boolean;
71
- }
72
- | {
73
- phase: "success";
74
- importSummary: TransferImportSummary;
75
- canContinue: boolean;
76
- };
77
-
78
- // ---------------------------------------------------------------------------
79
- // State derivation
80
- // ---------------------------------------------------------------------------
81
-
82
- /**
83
- * Infer which transfer sub-phase is active based on wizard state.
84
- *
85
- * The default flow is import-only (bundleData provided directly). Managed
86
- * export flows that populate exportResult still get poll/export phases.
87
- */
88
- function inferActivePhase(state: MigrationWizardState): TransferPhase {
89
- // Managed export flows that populate exportResult
90
- if (state.exportResult && "jobId" in state.exportResult) {
91
- const managed = state.exportResult as ExportManagedResult;
92
- if (state.importResult) {
93
- return "import";
94
- }
95
- if (managed.status !== "complete") {
96
- return "poll";
97
- }
98
- }
99
-
100
- return "import";
101
- }
102
-
103
- /**
104
- * Infer the phase that failed when the transfer step is in error state.
105
- */
106
- function inferFailedPhase(
107
- state: MigrationWizardState,
108
- ): TransferPhase | "unknown" {
109
- const stepError = state.steps["transfer"].error;
110
- if (!stepError) {
111
- return "unknown";
112
- }
113
-
114
- // Export job failure codes
115
- if (
116
- stepError.code === "EXPORT_JOB_FAILED" ||
117
- stepError.code === "NO_DOWNLOAD_URL"
118
- ) {
119
- return "export";
120
- }
121
-
122
- // No exportResult means this is the import-only flow; attribute to import
123
- if (!state.exportResult) {
124
- return "import";
125
- }
126
-
127
- // If we have an export result but the error mentions import
128
- if (state.importResult && !state.importResult.success) {
129
- return "import";
130
- }
131
-
132
- // If export result exists but no import result, and error is transport-level,
133
- // it could be download failure or import failure
134
- if (state.exportResult && !state.importResult) {
135
- if ("jobId" in state.exportResult) {
136
- const managed = state.exportResult as ExportManagedResult;
137
- if (managed.status === "complete") {
138
- // Export completed but no importResult -- check whether the failure was
139
- // during archive download (between export and import) or during import.
140
- // Download failures surface with "download" in the message; actual
141
- // import failures would have set importResult.
142
- const msg = stepError.message?.toLowerCase() ?? "";
143
- if (msg.includes("download")) {
144
- return "poll";
145
- }
146
- return "import";
147
- }
148
- return "poll";
149
- }
150
- return "import";
151
- }
152
-
153
- return "unknown";
154
- }
155
-
156
- /**
157
- * Derive the current transfer screen state from the wizard state.
158
- *
159
- * This is a pure function -- no side effects. Call it whenever the wizard
160
- * state changes to get the latest display state.
161
- */
162
- export function deriveTransferScreenState(
163
- wizardState: MigrationWizardState,
164
- ): TransferScreenState {
165
- const transferStep = wizardState.steps["transfer"];
166
-
167
- // Not yet accessible -- earlier steps incomplete
168
- if (
169
- wizardState.currentStep !== "transfer" &&
170
- transferStep.status !== "success"
171
- ) {
172
- if (!isStepAccessible(wizardState, "transfer")) {
173
- return { phase: "disabled" };
174
- }
175
- }
176
-
177
- // Transfer step is in error state
178
- if (
179
- wizardState.currentStep === "transfer" &&
180
- transferStep.status === "error"
181
- ) {
182
- return {
183
- phase: "error",
184
- error: transferStep.error ?? {
185
- message: "Transfer failed",
186
- retryable: false,
187
- },
188
- failedPhase: inferFailedPhase(wizardState),
189
- canRetry: canRetryCurrentStep(wizardState),
190
- };
191
- }
192
-
193
- // Transfer step is loading -- determine sub-phase
194
- if (
195
- wizardState.currentStep === "transfer" &&
196
- (transferStep.status === "loading" || transferStep.status === "idle")
197
- ) {
198
- const activePhase = inferActivePhase(wizardState);
199
-
200
- if (
201
- activePhase === "poll" &&
202
- wizardState.exportResult &&
203
- "jobId" in wizardState.exportResult
204
- ) {
205
- return {
206
- phase: "polling",
207
- message: "Waiting for export job to complete...",
208
- jobId: (wizardState.exportResult as ExportManagedResult).jobId,
209
- };
210
- }
211
-
212
- if (activePhase === "export") {
213
- return {
214
- phase: "exporting",
215
- message: "Exporting data from source...",
216
- };
217
- }
218
-
219
- // Default: import phase
220
- return {
221
- phase: "importing",
222
- message: "Importing bundle to destination...",
223
- };
224
- }
225
-
226
- // Transfer step succeeded -- show results
227
- if (transferStep.status === "success") {
228
- const importResult = wizardState.importResult;
229
- if (importResult && importResult.success) {
230
- const successResult = importResult as ImportCommitSuccessResponse;
231
- return {
232
- phase: "success",
233
- importSummary: {
234
- totalFiles: successResult.summary.total_files,
235
- filesCreated: successResult.summary.files_created,
236
- filesOverwritten: successResult.summary.files_overwritten,
237
- filesSkipped: successResult.summary.files_skipped,
238
- backupsCreated: successResult.summary.backups_created,
239
- warnings: successResult.warnings,
240
- },
241
- canContinue: isStepAccessible(wizardState, "rebind-secrets"),
242
- };
243
- }
244
-
245
- // Success status but no import result (shouldn't happen, defensive)
246
- return {
247
- phase: "success",
248
- importSummary: {
249
- totalFiles: 0,
250
- filesCreated: 0,
251
- filesOverwritten: 0,
252
- filesSkipped: 0,
253
- backupsCreated: 0,
254
- warnings: [],
255
- },
256
- canContinue: isStepAccessible(wizardState, "rebind-secrets"),
257
- };
258
- }
259
-
260
- return { phase: "disabled" };
261
- }
262
-
263
- // ---------------------------------------------------------------------------
264
- // Actions -- delegate to wizard state machine
265
- // ---------------------------------------------------------------------------
266
-
267
- /**
268
- * Execute the full transfer flow: export from source and import to destination.
269
- *
270
- * For managed sources, this includes async export polling.
271
- * For runtime sources, the export returns binary data directly.
272
- *
273
- * Returns the final wizard state after the transfer step completes.
274
- */
275
- export async function executeTransferFlow(
276
- state: MigrationWizardState,
277
- options: StepExecutorOptions,
278
- ): Promise<MigrationWizardState> {
279
- return executeTransferStep(state, options);
280
- }
281
-
282
- /**
283
- * Retry the transfer step after an error.
284
- *
285
- * Resets the step to idle and re-executes the transfer flow.
286
- */
287
- export async function retryTransferFlow(
288
- state: MigrationWizardState,
289
- options: StepExecutorOptions,
290
- ): Promise<MigrationWizardState> {
291
- const reset = resetStepForRetry(state);
292
- const cleaned = {
293
- ...reset,
294
- exportResult: undefined,
295
- importResult: undefined,
296
- };
297
- options.onStateChange?.(cleaned);
298
- return executeTransferStep(cleaned, options);
299
- }
300
-
301
- /**
302
- * Navigate back to the preflight-review step.
303
- */
304
- export function goBackToPreflight(
305
- state: MigrationWizardState,
306
- ): MigrationWizardState {
307
- return goBackTo(state, "preflight-review");
308
- }
309
-
310
- // ---------------------------------------------------------------------------
311
- // Query helpers
312
- // ---------------------------------------------------------------------------
313
-
314
- /**
315
- * Check if the transfer progress screen is accessible from the current state.
316
- */
317
- export function isTransferScreenAccessible(
318
- state: MigrationWizardState,
319
- ): boolean {
320
- return (
321
- isStepAccessible(state, "transfer") || state.currentStep === "transfer"
322
- );
323
- }