docs(guides): add Ejentum cognitive harness guide#3733
Conversation
|
|
Hi @ejentum, thanks for your interest in contributing! This project requires that pull request authors are vouched, and you are not in the list of vouched users. This PR will be closed automatically. See https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md for more details. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughThis PR adds a new Trigger.dev integration guide for Ejentum Cognitive Harness. The change registers a new documentation page in the navigation structure and creates a comprehensive MDX guide explaining how to use Ejentum within Trigger.dev tasks. The guide introduces the concept of reasoning scaffolds, provides a complete TypeScript task implementation that retrieves scaffolds from Ejentum via REST, injects them into an OpenAI system prompt, executes chat completions with retry logic, and documents expected Trigger.dev dashboard behavior and mode selection patterns. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🚩 New third-party integration guide — legitimacy and scope
This PR adds documentation for "Ejentum", a third-party cognitive harness API. The guide hardcodes a specific Zuplo gateway URL (https://ejentum-main-ab125c3.zuplo.app/logicv1/) at docs/guides/frameworks/ejentum-cognitive-harness.mdx:40. This URL contains what appears to be a deployment hash (ab125c3), which could become stale if the service redeploys. Additionally, Ejentum appears to be a relatively new/niche service — maintainers may want to verify its legitimacy and evaluate whether it merits inclusion in official docs alongside established integrations like Prisma, Drizzle, Supabase, etc.
Was this helpful? React with 👍 or 👎 to provide feedback.
| import { tasks } from "@trigger.dev/sdk"; | ||
| import type { ejentumHarness } from "./trigger/ejentum-harness"; | ||
|
|
||
| const handle = await tasks.trigger<typeof ejentumHarness>("ejentum-harness", { | ||
| task: "We have 50M users and want to add a NOT NULL column. Walk through the trade-offs and recommend a path.", | ||
| mode: "reasoning", | ||
| }); | ||
|
|
||
| const result = await handle.poll(); | ||
| console.log(result.output.answer); | ||
| ``` |
There was a problem hiding this comment.
🟡 Documentation code example calls non-existent handle.poll() method instead of runs.poll(handle)
The "Triggering the task" code example calls handle.poll() on line 115, but RunHandle is a plain object type ({ id: string; publicAccessToken: string }) that has no poll method. The correct API is runs.poll(handle), which is a standalone function exported from the runs namespace (see packages/trigger-sdk/src/v3/runs.ts:46-52). Users following this guide will get a runtime error: handle.poll is not a function. The import line also needs to import runs from @trigger.dev/sdk.
| import { tasks } from "@trigger.dev/sdk"; | |
| import type { ejentumHarness } from "./trigger/ejentum-harness"; | |
| const handle = await tasks.trigger<typeof ejentumHarness>("ejentum-harness", { | |
| task: "We have 50M users and want to add a NOT NULL column. Walk through the trade-offs and recommend a path.", | |
| mode: "reasoning", | |
| }); | |
| const result = await handle.poll(); | |
| console.log(result.output.answer); | |
| ``` | |
| ```ts | |
| import { tasks, runs } from "@trigger.dev/sdk"; | |
| import type { ejentumHarness } from "./trigger/ejentum-harness"; | |
| const handle = await tasks.trigger<typeof ejentumHarness>("ejentum-harness", { | |
| task: "We have 50M users and want to add a NOT NULL column. Walk through the trade-offs and recommend a path.", | |
| mode: "reasoning", | |
| }); | |
| const result = await runs.poll(handle); | |
| console.log(result.output.answer); |
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
Adds a new guide under
docs/guides/frameworks/ejentum-cognitive-harness.mdxshowing how to call the Ejentum cognitive harness inside a Trigger.dev task. The harness REST gateway returns task-matched reasoning scaffolds for one of four modes (reasoning,code,anti-deception,memory); the task fetches the scaffold and splices it into the system message of an OpenAI chat completion before returning.Matches the existing
docs/guides/frameworks/nango.mdxpattern: frontmatter (title, sidebarTitle, description, icon), intro, prerequisites, env vars, the task code, how to trigger it, and a mode-selection table.Files
docs/guides/frameworks/ejentum-cognitive-harness.mdx(new)docs/docs.json(one-line nav registration, alphabetically betweendrizzleandnango)What the guide walks through
EJENTUM_API_KEYandOPENAI_API_KEYin your Trigger.dev environment.ejentumHarnesstask withretry: { maxAttempts: 3 }covering both external calls.Affiliation
I maintain the Ejentum harness API. Submitting this as a Trigger.dev guide because the durability/retry/observability story Trigger.dev already provides is a natural fit for a harness-fetch-then-LLM-call pipeline. The guide names the four modes and provides a selection table so readers know when each one fits. Ejentum has free and paid tiers; the guide links to the dashboard for keys, not to a checkout.
Test plan
docs/guides/frameworks/nango.mdx(frontmatter, prereqs, code block, trigger snippet).docs/docs.jsonnext to other framework guides.openai(already common in Trigger.dev AI tasks).mintlify dev(cannot run Mintlify in this environment; happy to follow up if the reviewer spots a rendering issue).