recappi 0.1.70 → 0.1.71

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
@@ -2935,6 +2935,7 @@ async function runDashboard(deps) {
2935
2935
  startRecordSetupPreview: deps.startRecordSetupPreview,
2936
2936
  transcribeRecordingArtifact: deps.transcribeRecordingArtifact,
2937
2937
  onRetranscribe: deps.retranscribeRecording,
2938
+ onResummarize: deps.resummarizeRecording,
2938
2939
  initialView: deps.initialView ?? "overview",
2939
2940
  openUrl,
2940
2941
  copyText
@@ -18028,6 +18029,12 @@ var summaryStatusSchema = external_exports.enum([
18028
18029
  "failed",
18029
18030
  "skipped"
18030
18031
  ]);
18032
+ var recordingSummarizeDataSchema = external_exports.object({
18033
+ origin: external_exports.string(),
18034
+ recordingId: external_exports.string(),
18035
+ transcriptId: external_exports.string(),
18036
+ summaryStatus: summaryStatusSchema
18037
+ });
18031
18038
  var summaryActionItemSchema = external_exports.object({
18032
18039
  who: external_exports.string().optional(),
18033
18040
  what: external_exports.string()
@@ -19301,6 +19308,22 @@ var RecappiApiClient = class {
19301
19308
  }
19302
19309
  return result;
19303
19310
  }
19311
+ async summarizeRecording(opts) {
19312
+ const hasPrompt = Boolean(opts.prompt?.trim());
19313
+ const parsed = await this.postJson(
19314
+ `/api/recordings/${encodeURIComponent(opts.recordingId)}/summarize`,
19315
+ {
19316
+ ...hasPrompt ? { prompt: opts.prompt } : {},
19317
+ ...opts.model ? { model: opts.model } : {}
19318
+ }
19319
+ );
19320
+ return recordingSummarizeDataSchema.parse({
19321
+ origin: this.auth.origin,
19322
+ recordingId: opts.recordingId,
19323
+ transcriptId: parsed.transcriptId,
19324
+ summaryStatus: parsed.summaryStatus
19325
+ });
19326
+ }
19304
19327
  async downloadRecordingAudio(recordingId, opts = {}) {
19305
19328
  const response = await this.request(
19306
19329
  "GET",
@@ -20160,6 +20183,7 @@ var COMMON_TASKS = [
20160
20183
  { label: "Record audio + live captions", command: "recappi record --live" },
20161
20184
  { label: "Transcribe a local file", command: "recappi upload <file> --transcribe --wait" },
20162
20185
  { label: "Re-transcribe a recording", command: "recappi recordings retranscribe <recordingId> --wait" },
20186
+ { label: "Re-summarize a recording", command: "recappi recordings resummarize <recordingId>" },
20163
20187
  { label: "List / find recordings", command: "recappi recordings list" },
20164
20188
  { label: "Read a transcript", command: "recappi transcript get <transcriptId>" },
20165
20189
  { label: "Download / open audio", command: "recappi audio <recordingId> --open" },
@@ -20290,6 +20314,20 @@ var COMMAND_METADATA = {
20290
20314
  ],
20291
20315
  relatedCommands: ["jobs wait", "transcript get"]
20292
20316
  },
20317
+ "recordings resummarize": {
20318
+ capabilities: ["Retry or regenerate the summary for an existing recording", "Re-summarize with a custom prompt/model"],
20319
+ examples: [
20320
+ {
20321
+ description: "Retry summary generation for the active transcript",
20322
+ command: "recappi recordings resummarize <recordingId>"
20323
+ },
20324
+ {
20325
+ description: "Re-summarize with custom context",
20326
+ command: 'recappi recordings resummarize <recordingId> --prompt "focus on action items"'
20327
+ }
20328
+ ],
20329
+ relatedCommands: ["recordings get", "transcript get"]
20330
+ },
20293
20331
  "transcript get": {
20294
20332
  capabilities: ["Fetch a finished transcript by id"],
20295
20333
  examples: [{ description: "Fetch an existing transcript", command: "recappi transcript get <transcriptId>" }],
@@ -20850,6 +20888,24 @@ Next:
20850
20888
  opts.stdout(`
20851
20889
  Next:
20852
20890
  recappi jobs wait ${data.jobId}
20891
+ `);
20892
+ }
20893
+ return;
20894
+ }
20895
+ if (command === "recordings resummarize" && isRecord4(data)) {
20896
+ opts.stdout("Summary queued\n");
20897
+ if (typeof data.recordingId === "string") opts.stdout(` recordingId: ${data.recordingId}
20898
+ `);
20899
+ if (typeof data.transcriptId === "string") opts.stdout(` transcriptId: ${data.transcriptId}
20900
+ `);
20901
+ if (typeof data.summaryStatus === "string") {
20902
+ opts.stdout(` summaryStatus: ${data.summaryStatus}
20903
+ `);
20904
+ }
20905
+ if (typeof data.transcriptId === "string") {
20906
+ opts.stdout(`
20907
+ Next:
20908
+ recappi transcript get ${data.transcriptId}
20853
20909
  `);
20854
20910
  }
20855
20911
  return;
@@ -21308,6 +21364,7 @@ var COMMAND_DATA_SCHEMAS = {
21308
21364
  "recordings get": recordingDataSchema,
21309
21365
  "recordings list": recordingListDataSchema,
21310
21366
  "recordings retranscribe": recordingTranscribeDataSchema,
21367
+ "recordings resummarize": recordingSummarizeDataSchema,
21311
21368
  "jobs list": jobListDataSchema,
21312
21369
  "jobs wait": jobDataSchema,
21313
21370
  "transcript get": transcriptDataSchema
@@ -22812,6 +22869,7 @@ async function runCli(deps = {}) {
22812
22869
  return success2;
22813
22870
  },
22814
22871
  retranscribeRecording: (recordingId, options = {}) => client.transcribeRecording({ recordingId, ...options }),
22872
+ resummarizeRecording: (recordingId) => client.summarizeRecording({ recordingId }),
22815
22873
  initialView: parsed.initialView
22816
22874
  });
22817
22875
  return 0;
@@ -23020,6 +23078,15 @@ async function runCli(deps = {}) {
23020
23078
  renderSuccess("recordings retranscribe", data, render3);
23021
23079
  return 0;
23022
23080
  }
23081
+ if (parsed.kind === "recordings-resummarize") {
23082
+ const data = await client.summarizeRecording({
23083
+ recordingId: parsed.recordingId,
23084
+ prompt: parsed.prompt,
23085
+ model: parsed.model
23086
+ });
23087
+ renderSuccess("recordings resummarize", data, render3);
23088
+ return 0;
23089
+ }
23023
23090
  if (parsed.kind === "dashboard-stats") {
23024
23091
  const data = await client.dashboardStats();
23025
23092
  renderSuccess("dashboard stats", data, render3);
@@ -23321,7 +23388,7 @@ Agent mode:
23321
23388
  commandName: "dashboard stats"
23322
23389
  });
23323
23390
  });
23324
- const recordings = program.command("recordings").description("List, fetch, and re-transcribe recordings");
23391
+ const recordings = program.command("recordings").description("List, fetch, re-transcribe, and re-summarize recordings");
23325
23392
  addCommonOptions(recordings);
23326
23393
  const recordingsList = recordings.command("list").description("List recent recordings").option("--limit <n>", "number of recordings to show", parseLimitOption("--limit", 1, 100), 20).option("--cursor <cursor>", "pagination cursor", parseStringOption("--cursor")).option("--search <query>", "search recordings and transcripts", parseStringOption("--search")).addHelpText("after", commandMetadataHelpText("recordings list"));
23327
23394
  addCommonOptions(recordingsList);
@@ -23367,6 +23434,21 @@ Agent mode:
23367
23434
  });
23368
23435
  }
23369
23436
  );
23437
+ const recordingsResummarize = recordings.command("resummarize <recordingId>").description("Retry or regenerate the summary for an existing recording").option("--model <name>", "summary model", parseStringOption("--model")).option("--prompt <text>", "custom summary prompt/context", parseStringOption("--prompt")).addHelpText("after", commandMetadataHelpText("recordings resummarize"));
23438
+ addCommonOptions(recordingsResummarize);
23439
+ recordingsResummarize.action(
23440
+ (recordingId, _options, command) => {
23441
+ const opts = command.opts();
23442
+ onSelect({
23443
+ kind: "recordings-resummarize",
23444
+ options: collectGlobalOptions(command),
23445
+ commandName: "recordings resummarize",
23446
+ recordingId,
23447
+ ...typeof opts.model === "string" ? { model: opts.model } : {},
23448
+ ...typeof opts.prompt === "string" ? { prompt: opts.prompt } : {}
23449
+ });
23450
+ }
23451
+ );
23370
23452
  const transcript = program.command("transcript").description("Read transcripts (create via upload --transcribe or recordings retranscribe)").addHelpText(
23371
23453
  "after",
23372
23454
  `