Skip to content

Commit c8d1ff0

Browse files
committed
chore: cursor rules, RC config, docs updates, pagerduty package fix
- cursor rules for loop-engine workspace - RC promotion config - README and getting-started doc updates - adapter-pagerduty package.json fix
1 parent ed9a064 commit c8d1ff0

6 files changed

Lines changed: 43 additions & 11 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
description: Build and maintain the @loop-engine/adapter-perplexity package — the Sonar API adapter for Loop Engine's multi-LLM adapter suite.
3+
globs: packages/adapter-perplexity/**
4+
alwaysApply: false
5+
---
6+
7+
# Persona: OSS Packaging Engineer — Perplexity Sonar Adapter
8+
9+
You are building `@loop-engine/adapter-perplexity`, an Apache-2.0 adapter that wraps Perplexity's Sonar API inside the Loop Engine multi-LLM adapter pattern. This package is a peer to `@loop-engine/adapter-anthropic`, `adapter-openai`, `adapter-grok`, and `adapter-gemini` where those expose actor or LLM surfaces — follow structural patterns from this monorepo (package layout, tsup, vitest, README sections).
10+
11+
## Scope
12+
13+
1. **Sonar Search** — grounded retrieval with citations (`sonar`, `sonar-pro`, `sonar-reasoning-pro` when used as search). Maps to chat completions with search filters.
14+
2. **Sonar Reasoning** — `sonar-reasoning`, `sonar-reasoning-pro` for analysis-oriented defaults.
15+
16+
Do **not** wrap Perplexity Computer's Agent API here; that belongs in a separate gateway package.
17+
18+
## Contract
19+
20+
- Implement `LLMAdapter` from `@loop-engine/core` (`invoke`, `guardEvidence`; `stream` optional).
21+
- Preserve citations on the result; callers attach them to Loop evidence and run `guardEvidence` before persistence.
22+
- Errors: `PerplexityAdapterError` / `RateLimitError`; never swallow errors.
23+
24+
## References
25+
26+
- Package: `packages/adapter-perplexity/README.md`, `BOUNDARY-MANAGEMENT.md`
27+
- RC state: `.rc/adapter-perplexity.json`
28+
- Perplexity Computer (out of scope for this package): https://www.perplexity.ai/computer/skills

.rc/adapter-perplexity.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"package": "@loop-engine/adapter-perplexity",
3+
"version": "0.1.0",
4+
"state": "DRAFT",
5+
"notes": "Do not publish to npm, activate GTM motions that claim Perplexity support, or merge public docs that list Perplexity as supported until this RC reaches LOCKED via the approved promotion workflow."
6+
}

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,7 @@ await engine.transition({
9999
| Package | Description |
100100
|---|---|
101101
| [`@loop-engine/sdk`](packages/sdk) | Main SDK - start here |
102-
| [`@loop-engine/core`](packages/core) | Branded types and Zod schemas |
103-
| [`@loop-engine/dsl`](packages/dsl) | YAML loop definition parser |
104102
| [`@loop-engine/runtime`](packages/runtime) | Loop lifecycle and transitions |
105-
| [`@loop-engine/actors`](packages/actors) | Actor types and authorization |
106-
| [`@loop-engine/guards`](packages/guards) | Guard evaluation pipeline |
107-
| [`@loop-engine/events`](packages/events) | Typed event definitions |
108-
| [`@loop-engine/signals`](packages/signals) | Learning signal schema |
109103
| [`@loop-engine/observability`](packages/observability) | Timeline and replay |
110104
| [`@loop-engine/adapter-memory`](packages/adapter-memory) | In-memory storage |
111105
| [`@loop-engine/adapter-postgres`](packages/adapters/postgres) | PostgreSQL storage |
@@ -114,11 +108,15 @@ await engine.transition({
114108
| [`@loop-engine/adapter-openai`](packages/adapter-openai) | OpenAI AI actor |
115109
| [`@loop-engine/adapter-grok`](packages/adapter-grok) | Grok (xAI) AI actor |
116110
| [`@loop-engine/adapter-gemini`](packages/adapter-gemini) | Gemini AI actor |
111+
| [`@loop-engine/adapter-perplexity`](packages/adapter-perplexity) | Perplexity Sonar (`LLMAdapter`, citations) |
117112
| [`@loop-engine/adapter-openclaw`](packages/adapter-openclaw) | OpenClaw integration |
118113
| [`@loop-engine/adapter-commerce-gateway`](packages/adapter-commerce-gateway) | Commerce Gateway |
119114
| [`@loop-engine/adapter-pagerduty`](packages/adapter-pagerduty) | PagerDuty incidents |
120115
| [`@loop-engine/adapter-vercel-ai`](packages/adapter-vercel-ai) | Vercel AI SDK |
121116

117+
Core primitives are bundled in `@loop-engine/sdk`. Internal monorepo-only packages for contributors are:
118+
`core`, `dsl`, `guards`, `actors`, `events`, and `signals`.
119+
122120
## Documentation
123121

124122
Full docs at **[loopengine.io](https://loopengine.io)**
@@ -127,6 +125,7 @@ Full docs at **[loopengine.io](https://loopengine.io)**
127125
- [Core Concepts](https://loopengine.io/docs/core-concepts)
128126
- [Examples](https://loopengine.io/docs/examples)
129127
- [Integrations](https://loopengine.io/docs/integrations)
128+
- [Perplexity Sonar & Computer (OSS)](docs/integrations-perplexity.md)
130129

131130
## Examples
132131

docs/getting-started.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,5 @@ void main();
104104

105105
- [Architecture](./architecture.md)
106106
- [Boundary](./boundary.md)
107+
- [Perplexity Sonar & Computer](./integrations-perplexity.md)`@loop-engine/adapter-perplexity` (`LLMAdapter`) vs [Perplexity Computer skills](https://www.perplexity.ai/computer/skills)
107108
- [SCM procurement loop example](../loops/scm/procurement.yaml)

packages/adapter-pagerduty/package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,5 @@
5353
"node": ">=18.0.0"
5454
},
5555
"homepage": "https://loopengine.io/docs/packages/adapter-pagerduty",
56-
"sideEffects": false,
57-
"publishConfig": {
58-
"access": "public"
59-
}
56+
"sideEffects": false
6057
}

scripts/check-security-metadata.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ function main(): void {
7373
"packages/adapter-openai/package.json",
7474
"packages/adapter-anthropic/package.json",
7575
"packages/adapter-grok/package.json",
76-
"packages/adapter-gemini/package.json"
76+
"packages/adapter-gemini/package.json",
77+
"packages/adapter-perplexity/package.json"
7778
].map((path) => join(repoRoot, path));
7879

7980
for (const manifestPath of packageManifests) {

0 commit comments

Comments
 (0)