@mycadet/assistant 0.12.10 → 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.
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +10 -10
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +3 -3
- package/node_modules/@mycadet/ces-client/src/http-credentials.ts +18 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +10 -10
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +3 -3
- package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +0 -20
- package/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +10 -10
- package/node_modules/@mycadet/service-contracts/src/ingress.ts +3 -3
- package/openapi.yaml +2 -708
- package/package.json +2 -3
- package/scripts/sync-web-search-catalog.ts +1 -2
- package/src/__tests__/cloud-profile-guard.test.ts +41 -5
- package/src/__tests__/config-schema.test.ts +6 -38
- package/src/__tests__/conversation-queue.test.ts +45 -6
- package/src/__tests__/db-readiness-http-gate.test.ts +0 -6
- package/src/__tests__/persist-onboarding-artifacts.test.ts +0 -1
- package/src/__tests__/persona-resolver.test.ts +0 -51
- package/src/__tests__/provider-cloud-proxy-integration.test.ts +2 -110
- package/src/__tests__/run-due-schedules.test.ts +0 -4
- package/src/__tests__/schedule-store.test.ts +0 -12
- package/src/__tests__/stt-stream-session.test.ts +4 -4
- package/src/__tests__/telephony-tts-guard.test.ts +2 -50
- package/src/__tests__/voice-config-update.test.ts +12 -167
- package/src/__tests__/web-search-catalog-parity.test.ts +0 -2
- package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +9 -7
- package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
- package/src/calls/__tests__/voice-session-bridge.test.ts +1 -4
- package/src/calls/resolve-call-tts-provider.ts +6 -25
- package/src/calls/telephony-credential-preflight.ts +0 -10
- package/src/calls/telephony-tts-capability.ts +1 -17
- package/src/cli/commands/tts.ts +1 -2
- package/src/cli/index.help.ts +0 -2
- package/src/cli/program.ts +0 -2
- package/src/config/bundled-skills/settings/tools/voice-config-update.ts +4 -42
- package/src/config/schemas/__tests__/stt.test.ts +10 -14
- package/src/config/schemas/llm.ts +3 -5
- package/src/config/schemas/services.ts +5 -6
- package/src/config/schemas/stt.ts +1 -3
- package/src/config/schemas/tts.ts +1 -30
- package/src/daemon/daemon-readiness.ts +4 -29
- package/src/daemon/lifecycle.ts +0 -31
- package/src/daemon/providers-setup.ts +0 -8
- package/src/heartbeat/__tests__/heartbeat-service.test.ts +0 -1
- package/src/heartbeat/heartbeat-service.ts +1 -66
- package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -9
- package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +0 -44
- package/src/live-voice/__tests__/live-voice-flux-turn-end.test.ts +4 -6
- package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
- package/src/live-voice/live-voice-credential-preflight.ts +9 -33
- package/src/live-voice/live-voice-session.ts +10 -6
- package/src/live-voice/live-voice-tts.ts +1 -8
- package/src/plugins/defaults/memory/worker.ts +3 -3
- package/src/prompts/persona-resolver.ts +0 -35
- package/src/providers/__tests__/search-provider-catalog.test.ts +5 -8
- package/src/providers/__tests__/voice-error-copy.test.ts +9 -10
- package/src/providers/search-provider-catalog.ts +7 -39
- package/src/providers/speech-to-text/__tests__/provider-catalog.test.ts +3 -47
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +6 -372
- package/src/providers/speech-to-text/provider-catalog.ts +2 -73
- package/src/providers/speech-to-text/resolve.ts +3 -120
- package/src/runtime/http-router-types.ts +1 -3
- package/src/runtime/http-server.ts +1 -1
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +13 -11
- package/src/runtime/routes/__tests__/tts-routes.test.ts +2 -6
- package/src/runtime/routes/conversation-query-routes.ts +0 -96
- package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +7 -7
- package/src/runtime/routes/index.ts +0 -4
- package/src/runtime/routes/live-voice-routes.test.ts +4 -11
- package/src/runtime/routes/live-voice-routes.ts +8 -11
- package/src/runtime/routes/secret-routes.ts +0 -6
- package/src/runtime/routes/tts-routes.ts +0 -38
- package/src/schedule/__tests__/plugin-schedule-reconciler.test.ts +1 -7
- package/src/schedule/__tests__/worker-mcp-readiness.test.ts +0 -4
- package/src/schedule/schedule-store.ts +0 -7
- package/src/schedule/scheduler.ts +0 -5
- package/src/schedule/worker.ts +1 -1
- package/src/stt/__tests__/daemon-batch-transcriber.test.ts +2 -10
- package/src/stt/daemon-batch-transcriber.ts +4 -38
- package/src/stt/types.ts +1 -9
- package/src/tools/network/__tests__/web-search.test.ts +3 -250
- package/src/tools/network/web-search.ts +4 -165
- package/src/tts/__tests__/provider-resolution.test.ts +0 -5
- package/src/tts/provider-catalog.ts +0 -4
- package/src/tts/types.ts +0 -1
- package/src/__tests__/cloud-speech-defaults.test.ts +0 -330
- package/src/__tests__/migration-cross-version-compatibility.test.ts +0 -1708
- package/src/__tests__/migration-export-http.test.ts +0 -557
- package/src/__tests__/migration-export-streaming.test.ts +0 -350
- package/src/__tests__/migration-export-to-gcs.test.ts +0 -706
- package/src/__tests__/migration-import-commit-http.test.ts +0 -1176
- package/src/__tests__/migration-import-from-gcs.test.ts +0 -534
- package/src/__tests__/migration-import-from-path.test.ts +0 -324
- package/src/__tests__/migration-import-from-url.test.ts +0 -588
- package/src/__tests__/migration-import-preflight-http.test.ts +0 -739
- package/src/__tests__/migration-jobs-status.test.ts +0 -139
- package/src/__tests__/migration-parity-persistence.test.ts +0 -1891
- package/src/__tests__/migration-transport.test.ts +0 -1089
- package/src/__tests__/migration-validate-http.test.ts +0 -634
- package/src/__tests__/migration-wizard.test.ts +0 -1395
- package/src/__tests__/rebind-secrets-screen.test.ts +0 -876
- package/src/__tests__/sanitize-config-for-transfer.test.ts +0 -259
- package/src/__tests__/transfer-progress-screen.test.ts +0 -1217
- package/src/__tests__/validation-results-screen.test.ts +0 -1130
- package/src/__tests__/vbundle-pax-and-symlink.test.ts +0 -147
- package/src/background-wake/background-wake-routes.test.ts +0 -906
- package/src/background-wake/cloud-client.test.ts +0 -328
- package/src/background-wake/cloud-client.ts +0 -196
- package/src/background-wake/next-wake.test.ts +0 -335
- package/src/background-wake/next-wake.ts +0 -188
- package/src/background-wake/publisher.ts +0 -93
- package/src/background-wake/wake-intent-hooks.test.ts +0 -234
- package/src/cli/commands/__tests__/backup.test.ts +0 -363
- package/src/cli/commands/backup.help.ts +0 -180
- package/src/cli/commands/backup.ts +0 -398
- package/src/cloud/cloud-speech.test.ts +0 -335
- package/src/cloud/cloud-speech.ts +0 -300
- package/src/config/cloud-speech-defaults.ts +0 -300
- package/src/config/sanitize-for-transfer.ts +0 -111
- package/src/live-voice/__tests__/live-voice-cloud-speech-fallback.test.ts +0 -250
- package/src/providers/speech-to-text/__tests__/cadet-cloud-realtime.test.ts +0 -457
- package/src/providers/speech-to-text/__tests__/cadet-cloud.test.ts +0 -271
- package/src/providers/speech-to-text/__tests__/cadet-speech-relay-connection.test.ts +0 -126
- package/src/providers/speech-to-text/cadet-cloud-flux-realtime.ts +0 -309
- package/src/providers/speech-to-text/cadet-cloud-realtime.ts +0 -315
- package/src/providers/speech-to-text/cadet-cloud.ts +0 -108
- package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +0 -176
- package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +0 -254
- package/src/runtime/migrations/__tests__/job-registry.test.ts +0 -346
- package/src/runtime/migrations/__tests__/origin-mode.test.ts +0 -62
- package/src/runtime/migrations/__tests__/rebind-secrets-credentials.test.ts +0 -184
- package/src/runtime/migrations/__tests__/staged-import-path.test.ts +0 -110
- package/src/runtime/migrations/__tests__/v1-test-helpers.ts +0 -112
- package/src/runtime/migrations/__tests__/vbundle-builder-credentials.test.ts +0 -285
- package/src/runtime/migrations/__tests__/vbundle-builder-fd-leak.test.ts +0 -126
- package/src/runtime/migrations/__tests__/vbundle-builder-v1-shape.test.ts +0 -253
- package/src/runtime/migrations/__tests__/vbundle-import-credentials.test.ts +0 -208
- package/src/runtime/migrations/__tests__/vbundle-import-parity.test.ts +0 -485
- package/src/runtime/migrations/__tests__/vbundle-import-policy.test.ts +0 -349
- package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +0 -196
- package/src/runtime/migrations/__tests__/vbundle-legacy-user-md.test.ts +0 -551
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +0 -428
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +0 -220
- package/src/runtime/migrations/__tests__/vbundle-streaming-importer.test.ts +0 -1823
- package/src/runtime/migrations/__tests__/vbundle-streaming-validator.test.ts +0 -598
- package/src/runtime/migrations/__tests__/vbundle-symlink-importer.test.ts +0 -463
- package/src/runtime/migrations/__tests__/vbundle-symlink-streaming-importer.test.ts +0 -538
- package/src/runtime/migrations/__tests__/vbundle-symlink-streaming.test.ts +0 -515
- package/src/runtime/migrations/__tests__/vbundle-symlink-tar.test.ts +0 -453
- package/src/runtime/migrations/__tests__/vbundle-symlink-walker.test.ts +0 -319
- package/src/runtime/migrations/__tests__/vbundle-tar-stream.test.ts +0 -240
- package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +0 -473
- package/src/runtime/migrations/gcs-signed-url.ts +0 -190
- package/src/runtime/migrations/job-registry.ts +0 -297
- package/src/runtime/migrations/migration-transport.ts +0 -612
- package/src/runtime/migrations/migration-wizard.ts +0 -747
- package/src/runtime/migrations/origin-mode.ts +0 -42
- package/src/runtime/migrations/rebind-secrets-screen.ts +0 -412
- package/src/runtime/migrations/staged-import-path.ts +0 -116
- package/src/runtime/migrations/transfer-progress-screen.ts +0 -323
- package/src/runtime/migrations/validation-results-screen.ts +0 -469
- package/src/runtime/migrations/vbundle-builder.ts +0 -1382
- package/src/runtime/migrations/vbundle-import-analyzer.ts +0 -405
- package/src/runtime/migrations/vbundle-import-policy.ts +0 -241
- package/src/runtime/migrations/vbundle-importer.ts +0 -826
- package/src/runtime/migrations/vbundle-metadata-merge.ts +0 -113
- package/src/runtime/migrations/vbundle-streaming-importer.ts +0 -2844
- package/src/runtime/migrations/vbundle-streaming-validator.ts +0 -426
- package/src/runtime/migrations/vbundle-tar-stream.ts +0 -244
- package/src/runtime/migrations/vbundle-validator.ts +0 -724
- package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +0 -227
- package/src/runtime/routes/__tests__/migration-export-secrets-redacted.test.ts +0 -54
- package/src/runtime/routes/__tests__/migration-import-allowed-hosts-env.test.ts +0 -70
- package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +0 -257
- package/src/runtime/routes/background-wake-routes.ts +0 -387
- package/src/runtime/routes/migration-routes.ts +0 -2584
- package/src/tools/network/__tests__/cloud-search-proxy.test.ts +0 -282
- package/src/tools/network/cloud-search-proxy.ts +0 -211
- package/src/tts/__tests__/cadet-provider.test.ts +0 -253
- package/src/tts/providers/cadet-provider.ts +0 -244
- 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
|
-
}
|