add encrypted Nostr session sharing (#8922)

Signed-off-by: callebtc <93376500+callebtc@users.noreply.github.com>
Signed-off-by: Douwe Osinga <douwe@squareup.com>
Signed-off-by: Michael Neale <michael.neale@gmail.com>
Co-authored-by: Douwe Osinga <douwe@squareup.com>
Co-authored-by: Michael Neale <michael.neale@gmail.com>
This commit is contained in:
callebtc
2026-05-12 22:06:44 -05:00
committed by GitHub
parent 8c36ba86c6
commit dbbee1cdbf
17 changed files with 1469 additions and 27 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+82
View File
@@ -593,6 +593,10 @@ export type ImportAppResponse = {
name: string;
};
export type ImportSessionNostrRequest = {
deeplink: string;
};
export type ImportSessionRequest = {
json: string;
};
@@ -1368,6 +1372,17 @@ export type SetupResponse = {
success: boolean;
};
export type ShareSessionNostrRequest = {
relays?: Array<string>;
};
export type ShareSessionNostrResponse = {
deeplink: string;
eventId: string;
nevent: string;
relays: Array<string>;
};
export type SlashCommand = {
command: string;
command_type: CommandType;
@@ -4091,6 +4106,37 @@ export type ImportSessionResponses = {
export type ImportSessionResponse = ImportSessionResponses[keyof ImportSessionResponses];
export type ImportSessionNostrData = {
body: ImportSessionNostrRequest;
path?: never;
query?: never;
url: '/sessions/import/nostr';
};
export type ImportSessionNostrErrors = {
/**
* Bad request - Invalid Nostr share link
*/
400: unknown;
/**
* Unauthorized - Invalid or missing API key
*/
401: unknown;
/**
* Internal server error
*/
500: unknown;
};
export type ImportSessionNostrResponses = {
/**
* Nostr shared session imported successfully
*/
200: Session;
};
export type ImportSessionNostrResponse = ImportSessionNostrResponses[keyof ImportSessionNostrResponses];
export type GetSessionInsightsData = {
body?: never;
path?: never;
@@ -4473,6 +4519,42 @@ export type UpdateSessionNameResponses = {
200: unknown;
};
export type ShareSessionNostrData = {
body: ShareSessionNostrRequest;
path: {
/**
* Unique identifier for the session
*/
session_id: string;
};
query?: never;
url: '/sessions/{session_id}/share/nostr';
};
export type ShareSessionNostrErrors = {
/**
* Unauthorized - Invalid or missing API key
*/
401: unknown;
/**
* Session not found
*/
404: unknown;
/**
* Internal server error
*/
500: unknown;
};
export type ShareSessionNostrResponses = {
/**
* Session shared to Nostr successfully
*/
200: ShareSessionNostrResponse;
};
export type ShareSessionNostrResponse2 = ShareSessionNostrResponses[keyof ShareSessionNostrResponses];
export type UpdateSessionUserRecipeValuesData = {
body: UpdateSessionUserRecipeValuesRequest;
path: {