recappi 0.1.66 → 0.1.68

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/dist/index.js CHANGED
@@ -1235,6 +1235,7 @@ function RecordingDetailView({
1235
1235
  scrollable ? " \xB7 \u2191\u2193 scroll" : "",
1236
1236
  ready ? " \xB7 " : "",
1237
1237
  `o open \xB7 d download \xB7 f finder`,
1238
+ " \xB7 T re-transcribe",
1238
1239
  item.activeTranscriptId ? " \xB7 t full" : "",
1239
1240
  links.webUrl ? " \xB7 w web" : "",
1240
1241
  " \xB7 esc back"
@@ -2385,6 +2386,23 @@ function AppShell({
2385
2386
  setNotice("Re-transcription failed. Press T to retry.");
2386
2387
  }
2387
2388
  }, [liveRecord, onRetranscribe, refresh]);
2389
+ const retranscribeExistingRecording = useCallback(
2390
+ async (recordingId) => {
2391
+ if (!onRetranscribe) {
2392
+ setNotice("Re-transcribe is not available in this CLI session.");
2393
+ return;
2394
+ }
2395
+ setNotice("Re-transcribe started\u2026");
2396
+ try {
2397
+ await onRetranscribe(recordingId);
2398
+ setNotice("Re-transcribe started \u2014 track it in Jobs.");
2399
+ await refresh({ resetRecordings: true });
2400
+ } catch (error51) {
2401
+ setNotice(transcribeHandoffErrorCopy(error51));
2402
+ }
2403
+ },
2404
+ [onRetranscribe, refresh]
2405
+ );
2388
2406
  useEffect4(() => {
2389
2407
  if (liveRecord?.kind !== "stopped") return;
2390
2408
  const artifact = liveRecord.artifact;
@@ -2646,7 +2664,8 @@ function AppShell({
2646
2664
  if (screen.kind === "recordingDetail") {
2647
2665
  const rec = recordings.find((r) => r.recordingId === screen.recordingId);
2648
2666
  const links = rec ? resolveRecordingLinks(rec.recordingId, rec.origin) : {};
2649
- if (input === "t" && rec?.activeTranscriptId) void openTranscript(rec.activeTranscriptId);
2667
+ if (input === "T" && rec) void retranscribeExistingRecording(rec.recordingId);
2668
+ else if (input === "t" && rec?.activeTranscriptId) void openTranscript(rec.activeTranscriptId);
2650
2669
  else if (input === "o" && rec) void runAudio(rec.recordingId, "open");
2651
2670
  else if (input === "d" && rec) void runAudio(rec.recordingId, "download");
2652
2671
  else if (input === "f" && rec) void runAudio(rec.recordingId, "finder");
@@ -22633,19 +22652,43 @@ async function runCli(deps = {}) {
22633
22652
  renderSuccess("version", { version: CLI_VERSION }, render3);
22634
22653
  return 0;
22635
22654
  }
22636
- const auth = await resolveAuthContext({
22655
+ let auth = await resolveAuthContext({
22637
22656
  origin: parsed.options.origin,
22638
22657
  env: deps.env,
22639
22658
  homeDir: deps.homeDir
22640
22659
  });
22641
- const client = new RecappiApiClient(auth, {
22660
+ let client = new RecappiApiClient(auth, {
22642
22661
  fetchImpl: deps.fetchImpl,
22643
22662
  sleep: deps.sleep,
22644
22663
  env: deps.env,
22645
22664
  homeDir: deps.homeDir
22646
22665
  });
22647
22666
  if (parsed.kind === "dashboard") {
22648
- const status = await client.authStatus();
22667
+ let status = await client.authStatus();
22668
+ if (!status.loggedIn) {
22669
+ await loginWithDeviceCode({
22670
+ origin: auth.origin,
22671
+ homeDir: deps.homeDir,
22672
+ onPrompt: (message) => stderr(message),
22673
+ deps: {
22674
+ fetchImpl: deps.fetchImpl,
22675
+ openUrl: deps.openUrl,
22676
+ sleep: deps.sleep
22677
+ }
22678
+ });
22679
+ auth = await resolveAuthContext({
22680
+ origin: parsed.options.origin,
22681
+ env: deps.env,
22682
+ homeDir: deps.homeDir
22683
+ });
22684
+ client = new RecappiApiClient(auth, {
22685
+ fetchImpl: deps.fetchImpl,
22686
+ sleep: deps.sleep,
22687
+ env: deps.env,
22688
+ homeDir: deps.homeDir
22689
+ });
22690
+ status = await client.authStatus();
22691
+ }
22649
22692
  const account = status.loggedIn && status.userId ? { backendOrigin: auth.origin, userId: status.userId } : null;
22650
22693
  const recordingAudio = createRecordingAudioRuntime(client, {
22651
22694
  account,