forked from agentdecksdk/agentdeck
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontext7.json
More file actions
36 lines (36 loc) · 2.7 KB
/
Copy pathcontext7.json
File metadata and controls
36 lines (36 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
"$schema": "https://context7.com/schema/context7.json",
"url": "https://context7.com/agentdecksdk/agentdeck",
"public_key": "pk_yn8vrZD3ly3T3WBUNLB3D",
"projectTitle": "AgentDeck SDK",
"description": "A Python harness for agents you have to operate: agents, workflows, skills and MCP tools as small declarations, with durable approvals, sessions, streaming and one event log per run.",
"folders": [
"docs-site/content",
"examples"
],
"excludeFolders": [
"docs",
"tests",
"scripts",
"docs-site/app",
"docs-site/out",
"docs-site/.next"
],
"excludeFiles": [
"changelog.mdx",
"roadmap.mdx"
],
"rules": [
"The import name is `agentdeck`. The project is branded AgentDeck SDK; there is no `agentdeck-sdk` package, and `agentdeck-ai` on PyPI is an unrelated project.",
"Install and import names differ: `pip install agentdeck-sdk`, then `import agentdeck`. Never write `pip install agentdeck` - that name is taken by an unrelated project. Extras: `[serve]`, `[postgres]`, `[redis]`, `[observability]`.",
"`Deck` is the only composition root, with two front doors onto one catalog: `Deck(agents=..., workflows=...)` and `Deck.from_project()`, which discovers them from a `.agentdeck/` directory.",
"AgentDeck executes native @workflow and @tool targets alongside the OpenAI Agents SDK for agents. An Agent compiles to an SDK agent; a @workflow is an imperative async Python function coordinating executions.",
"A tool is a function decorated with @tool or passed to Agent(tools=[...]). A tool parameter typed ToolCtx[T] receives application context without exposing it to the model. Do not use @function_tool on functions taking ToolCtx.",
"State reaches tools via ToolCtx[T]: declare it with Deck(context=MyType), pass it per run with deck.run(..., context=obj). Application context cannot cross HTTP; a run served through Deck.asgi() receives None.",
"In a native @workflow, human interaction is ctx.ask(question, options=...). It suspends the coroutine in place without unwinding local variables. Answering with run.answer(val) resumes execution on the next line.",
"Every run appends to one ordered event log; status is folded from it by status_of, never stored. type(event) is always Event: switch on event.kind with a default case, since an unknown kind parses as UnknownEvent.",
"Nothing is sandboxed. Tools, skills and workflow bodies are ordinary Python in the caller's process, and a model-chosen tool call is trusted by design.",
"Run control is capability-based: check run.can.pause, run.can.resume, and run.can.cancel before calling lifecycle methods. Strict methods raise RunStateError on illegal state transitions."
],
"previousVersions": []
}