Ideas
Manage project ideas and approval workflows.
Approve a pending idea to start content generation; a draft may follow automatically
/organizations/{organizationId}/projects/{projectId}/mind/ideas/{ideaId}/approveApprove an idea, which sets its status to 'approved'. Email sends and focused email edits enqueue durable materialization contracts; other content types trigger draft generation automatically. The idea must be in 'pending' status.
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const result = await gc.ideas.approveIdea({ organizationId: org.id, projectId: projects[0].id, ideaId: "idea-123", data: { status: "approved" }});
Dismiss a pending idea with an optional reason so Mind stops suggesting it
/organizations/{organizationId}/projects/{projectId}/mind/ideas/{ideaId}/dismissDismiss an idea that the user doesn't want to pursue. The idea must be in 'pending' status. Optionally include a reason for dismissal. Dismissed ideas are tracked so Mind doesn't re-suggest them.
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const result = await gc.ideas.dismissIdea({ organizationId: org.id, projectId: projects[0].id, ideaId: "idea_123", data: {}});
Get one idea's rationale, outline and similarity score before approving or dismissing
/organizations/{organizationId}/projects/{projectId}/mind/ideas/{ideaId}Returns full details of a Mind idea including title, rationale, outline, priority, similarity score, and status. If the idea has status 'pending', it can be approved (triggering draft generation) or dismissed.
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const idea = await gc.ideas.getIdea({ organizationId: org.id, projectId: projects[0].id, ideaId: "idea-123",});
List Mind ideas for a project
/organizations/{organizationId}/projects/{projectId}/mind/ideasReturns a paginated list of Mind ideas for the project. Ideas represent content gaps or suggestions identified by the AI ideation engine. Filter by status to see pending, approved, dismissed, or drafted ideas.
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const { ideas } = await gc.ideas.listIdeas({ organizationId: org.id, projectId: projects[0].id,});
Trigger Mind ideation for a project
/organizations/{organizationId}/projects/{projectId}/mind/ideasEnqueues a durable Mind ideation contract for this project. Optional 'target' narrows execution to one (contentType, operationKey) operation — useful for targeted testing. Returns the run and contract IDs immediately.
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const result = await gc.ideas.triggerIdeation({ organizationId: org.id, projectId: projects[0].id, data: { prompt: "Generate new feature ideas" }});