Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
13 changes: 11 additions & 2 deletions kits/point-proven/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
![Landing Page Image](./docs/landingPage.png)

# Point Proven

Index debate sources and build a citation-backed brief with key claims, clash points, agreed points, themes, and per-source summaries.
Expand Down Expand Up @@ -111,8 +113,8 @@ This contribution is a **kit**: two Lamatic flows plus a **Next.js app** under `
### Run the app locally

```bash
cd kits/point-proven/apps
cp .env.example .env.local # fill flow IDs + Lamatic API credentials
cd kits/point-proven/
cp .env.example .env.local; mv .env.local ./apps/ # fill flow IDs + Lamatic API credentials
npm install
npm run dev
```
Expand Down Expand Up @@ -229,6 +231,13 @@ curl -sS -X POST "$LAMATIC_API_URL/v1/flow/$SYNTHESIZE_DIGEST_FLOW_ID/execute" \
| `agent.md` | Agent identity and operational reference |
| `apps/` | Next.js UI + `apps/.env.example` → copy to `apps/.env.local` |

## Desired output:
### Indexed Source
![Indexed Source](./docs/indexed_source.png)

### Built Brief
![Built Brief](./docs/built_brief.png)

---

*Contribution type: `kit` (flows + `apps/`).*
16 changes: 0 additions & 16 deletions kits/point-proven/apps/.env.example

This file was deleted.

82 changes: 47 additions & 35 deletions kits/point-proven/apps/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ import {
Search,
Sparkles,
} from "lucide-react";
import { SiGithub } from "@icons-pack/react-simple-icons";

const GITHUB_KIT_URL =
"https://github.com/Lamatic/AgentKit/tree/main/kits/point-proven";

const SOURCE_BOX_TIP =
"Paste https://… article URLs here, or pick one template below. Bubbles appear inside this box. Only one template can be active at a time — switching replaces the URLs. After you index, this box locks.";
Expand Down Expand Up @@ -75,11 +79,10 @@ function TemplateToggles({
type="button"
size="sm"
variant={isActive ? "secondary" : "outline"}
className={`h-8 text-xs ${
isActive
? "pointer-events-none opacity-55 grayscale"
: ""
}`}
className={`h-8 text-xs ${isActive
? "pointer-events-none opacity-55 grayscale"
: ""
}`}
disabled={disabled || isActive}
aria-pressed={isActive}
onClick={() => onSelect(t)}
Expand Down Expand Up @@ -141,11 +144,11 @@ export default function Home() {
prev.map((c) =>
c.id === id
? {
...c,
status: "checking",
message: "Checking…",
httpStatus: undefined,
}
...c,
status: "checking",
message: "Checking…",
httpStatus: undefined,
}
: c
)
);
Expand Down Expand Up @@ -176,10 +179,10 @@ export default function Home() {
prev.map((c) =>
c.id === id
? {
...c,
status: "error",
message: e instanceof Error ? e.message : "Check failed",
}
...c,
status: "error",
message: e instanceof Error ? e.message : "Check failed",
}
: c
)
);
Expand Down Expand Up @@ -299,11 +302,11 @@ export default function Home() {
prev.map((c) =>
c.id === id
? {
...c,
status: "error",
message: "Enter a valid https://… URL",
httpStatus: undefined,
}
...c,
status: "error",
message: "Enter a valid https://… URL",
httpStatus: undefined,
}
: c
)
);
Expand Down Expand Up @@ -442,9 +445,9 @@ export default function Home() {
const first = errors[0];
const msg =
first &&
typeof first === "object" &&
first !== null &&
"message" in first
typeof first === "object" &&
first !== null &&
"message" in first
? String((first as { message: unknown }).message)
: "All URLs failed to index.";
throw new Error(msg);
Expand Down Expand Up @@ -507,9 +510,20 @@ export default function Home() {
<div className="max-w-5xl mx-auto px-6 py-5 flex items-center gap-3">
<BookOpen className="size-6 text-primary" />
<div>
<h1 className="text-xl font-semibold tracking-tight">
Point Proven
</h1>
<div className="flex items-center gap-2">
<h1 className="text-xl font-semibold tracking-tight">
Point Proven
</h1>
<a
href={GITHUB_KIT_URL}
target="_blank"
rel="noopener noreferrer"
aria-label="View Point Proven on GitHub"
className="text-muted-foreground transition-colors hover:text-foreground"
>
<SiGithub className="size-4" />
</a>
</div>
<p className="text-sm text-muted-foreground">
Index your sources, get a cited brief for debate prep
</p>
Expand Down Expand Up @@ -546,11 +560,10 @@ export default function Home() {
</div>

<div
className={`w-full rounded-lg border bg-background transition-colors ${
urlsEditable
? "hover:border-primary/40 focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30"
: "cursor-not-allowed opacity-80"
}`}
className={`w-full rounded-lg border bg-background transition-colors ${urlsEditable
? "hover:border-primary/40 focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30"
: "cursor-not-allowed opacity-80"
}`}
>
<div className="space-y-3 p-3">
<HoverTip tip={SOURCE_BOX_TIP} className="block w-full">
Expand Down Expand Up @@ -759,11 +772,10 @@ export default function Home() {
setActiveTemplateId(null);
}
}}
className={`min-h-[100px] w-full rounded-lg border bg-background px-3 py-2 text-sm outline-none transition-colors placeholder:text-muted-foreground ${
queryEditable
? "hover:border-primary/40 focus:border-primary/50 focus:ring-2 focus:ring-ring/30"
: "cursor-not-allowed opacity-80"
}`}
className={`min-h-[100px] w-full rounded-lg border bg-background px-3 py-2 text-sm outline-none transition-colors placeholder:text-muted-foreground ${queryEditable
? "hover:border-primary/40 focus:border-primary/50 focus:ring-2 focus:ring-ring/30"
: "cursor-not-allowed opacity-80"
}`}
placeholder="e.g. Does export-control retaliation against AI labs violate free speech protections?"
/>
</HoverTip>
Expand Down
Loading