Skip to content
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-create-session-context",
name: "Create Session Context",
description: "Creates a new reusable Hedy session context — a named set of custom AI instructions that can be applied to meeting recordings to guide analysis."
+ " Free accounts are limited to 1 context; Pro accounts can create multiple."
+ " Set `isDefault` to `true` to make this context automatically applied to new sessions."
+ " Use **Update Session Context** to modify an existing context, or **Delete Session Context** to remove one."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Session%20Contexts/post_contexts)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: false,
},
props: {
app,
title: {
propDefinition: [
app,
"title",
],
},
content: {
propDefinition: [
app,
"content",
],
},
isDefault: {
propDefinition: [
app,
"isDefault",
],
default: false,
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
},
async run({ $ }) {
const response = await this.app.createContext({
$,
data: {
title: this.title,
content: this.content,
isDefault: this.isDefault,
},
});
const context = response?.data || response;
$.export("$summary", `Created session context: ${context?.title || this.title}`);
return response;
},
};
64 changes: 64 additions & 0 deletions components/hedy/actions/create-topic/create-topic.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-create-topic",
name: "Create Topic",
description: "Creates a new Hedy meeting topic for organizing sessions."
+ " Topics can include a custom AI analysis context (`topicContext`) — up to 20,000 characters of instructions that guide Hedy's AI when analyzing meetings in this topic."
+ " Use **Update Topic** to modify an existing topic, or **Delete Topic** to remove one."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Topics/post_topics)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: false,
},
props: {
app,
name: {
type: "string",
label: "Name",
description: "The topic name (maximum 100 characters).",
},
description: {
type: "string",
label: "Description",
description: "An optional description of the topic (maximum 500 characters).",
optional: true,
},
color: {
type: "string",
label: "Color",
description: "Optional hex color code for the topic (e.g. `#4CAF50`).",
optional: true,
},
iconName: {
type: "string",
label: "Icon Name",
description: "Optional icon identifier for the topic.",
optional: true,
},
topicContext: {
type: "string",
label: "Topic Context",
description: "Optional custom AI instructions for analyzing sessions in this topic (maximum 20,000 characters). Use this to focus Hedy's analysis on specific themes, extract particular insights, or follow custom frameworks.",
optional: true,
},
},
async run({ $ }) {
const response = await this.app.createTopic({
$,
data: {
name: this.name,
description: this.description,
color: this.color,
iconName: this.iconName,
topicContext: this.topicContext,
},
});
const topic = response?.data || response;
$.export("$summary", `Created topic: ${topic?.name || this.name}`);
return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-delete-session-context",
name: "Delete Session Context",
description: "Deletes a Hedy session context. This action is irreversible."
+ " If you delete the current default context, the most recently created remaining context is automatically promoted to default."
+ " Use **Get Many Session Contexts** to find the context ID before deleting."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Session%20Contexts/delete_contexts__contextId_)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: true,
openWorldHint: true,
readOnlyHint: false,
},
props: {
app,
contextId: {
propDefinition: [
app,
"contextId",
],
},
},
async run({ $ }) {
const response = await this.app.deleteContext({
$,
contextId: this.contextId,
});
$.export("$summary", `Deleted session context ${this.contextId}`);
return response;
},
};
33 changes: 33 additions & 0 deletions components/hedy/actions/delete-topic/delete-topic.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-delete-topic",
name: "Delete Topic",
description: "Deletes a Hedy topic. Sessions that were linked to the topic are NOT deleted — they are unlinked and remain in your account."
+ " This action is irreversible. Use **Get Many Topics** to find the topic ID before deleting."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Topics/delete_topics__topicId_)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: true,
openWorldHint: true,
readOnlyHint: false,
},
props: {
app,
topicId: {
propDefinition: [
app,
"topicId",
],
},
},
async run({ $ }) {
const response = await this.app.deleteTopic({
$,
topicId: this.topicId,
});
$.export("$summary", `Deleted topic ${this.topicId}`);
return response;
},
};
34 changes: 34 additions & 0 deletions components/hedy/actions/get-highlight/get-highlight.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-get-highlight",
name: "Get Highlight",
description: "Retrieves full details for a single AI-generated highlight by ID, including the raw quote, cleaned quote, main idea, and AI insight."
+ " Use **Get Many Highlights** or **Get Highlights By Session** first to find a highlight ID."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Highlights/get_highlights__highlightId_)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: true,
},
props: {
app,
highlightId: {
propDefinition: [
app,
"highlightId",
],
},
},
async run({ $ }) {
const response = await this.app.getHighlight({
$,
highlightId: this.highlightId,
});
const highlight = response?.data || response;
$.export("$summary", `Retrieved highlight: ${highlight?.title || this.highlightId}`);
return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-get-highlights-by-session",
name: "Get Highlights By Session",
description: "Retrieves all AI-generated highlights for a specific Hedy session."
+ " Use **Get Many Sessions** first to find the session ID."
+ " Each result includes a highlight ID, title, and timestamp within the session."
+ " Use **Get Highlight** with the highlight ID to fetch the full detail including raw quote, cleaned quote, main idea, and AI insight."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Highlights/get_sessions__sessionId__highlights)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: true,
},
props: {
app,
sessionId: {
propDefinition: [
app,
"sessionId",
],
},
},
async run({ $ }) {
const response = await this.app.getHighlightsBySession({
$,
sessionId: this.sessionId,
});
const highlights = response?.data || [];
$.export("$summary", `Retrieved ${highlights.length} highlight${highlights.length === 1
? ""
: "s"} for session ${this.sessionId}`);
return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-get-many-highlights",
name: "Get Many Highlights",
description: "Retrieves a paginated list of AI-generated highlights across all Hedy sessions."
+ " Each highlight includes a title, timestamp, and the session it came from."
+ " Use **Get Highlight** with a specific highlight ID to fetch the full detail including raw quote, cleaned quote, main idea, and AI insight."
+ " To list highlights for a specific session only, use **Get Highlights By Session**."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Highlights/get_highlights)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: true,
},
props: {
app,
limit: {
propDefinition: [
app,
"limit",
],
},
after: {
propDefinition: [
app,
"after",
],
},
},
async run({ $ }) {
const response = await this.app.listHighlights({
$,
params: {
limit: this.limit,
after: this.after,
},
});
const highlights = response?.data || [];
$.export("$summary", `Retrieved ${highlights.length} highlight${highlights.length === 1
? ""
: "s"}`);
return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-get-many-session-contexts",
name: "Get Many Session Contexts",
description: "Retrieves all reusable Hedy session contexts, including title, content, and which one is set as the default."
+ " Session contexts are custom AI instruction sets that guide Hedy's analysis of meeting recordings."
+ " Use this tool to browse available contexts or to find a context ID to pass to **Get Session Context**, **Update Session Context**, or **Delete Session Context**."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Session%20Contexts/get_contexts)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: true,
},
props: {
app,
},
async run({ $ }) {
const response = await this.app.listContexts({
$,
});
const contexts = response?.data || [];
$.export("$summary", `Retrieved ${contexts.length} session context${contexts.length === 1
? ""
: "s"}`);
Comment thread
sergio-eliot-rodriguez marked this conversation as resolved.
return response;
},
};
48 changes: 48 additions & 0 deletions components/hedy/actions/get-many-sessions/get-many-sessions.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import app from "../../hedy.app.mjs";

export default {
key: "hedy-get-many-sessions",
name: "Get Many Sessions",
description: "Retrieves a paginated list of Hedy meeting sessions ordered from most recent."
+ " Each session includes its title, start/end times, duration, and session type."
+ " Use this tool to browse recent meetings or to find a session ID to pass to **Get Session** for full transcript and summary details."
+ " To list sessions within a specific topic, use **Get Topic Sessions** instead."
+ " Paginate using the `after` cursor from the response's `pagination` field."
+ " [See the documentation](https://app.swaggerhub.com/apis-docs/HedyAI/hedy-api/1.5.2#/Sessions/get_sessions)",
version: "0.0.1",
type: "action",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: true,
},
props: {
app,
limit: {
propDefinition: [
app,
"limit",
],
},
after: {
propDefinition: [
app,
"after",
],
},
},
async run({ $ }) {
const response = await this.app.listSessions({
$,
params: {
limit: this.limit,
after: this.after,
},
});
const sessions = response?.data || [];
$.export("$summary", `Retrieved ${sessions.length} session${sessions.length === 1
? ""
: "s"}`);
return response;
},
};
Loading
Loading