├── .env.example
├── .github
├── Starknet.svg
├── Starkware.svg
├── abstract-logo.svg
├── arbitrum-logo.svg
├── base-logo.svg
├── chain.png
├── daydream.png
├── eth-logo.svg
├── hl-logo.svg
├── optimism-logo.svg
├── solana-logo.svg
└── workflows
│ ├── ci.yaml
│ ├── claude-code-review.yml
│ ├── claude.yml
│ ├── pr-title.yaml
│ └── release.yaml
├── .gitignore
├── .npmrc
├── .nvmrc
├── .prettierignore
├── .vercelignore
├── .vscode
├── extensions.json
└── settings.json
├── CHANGELOG.md
├── CLAUDE.md
├── CONTRIBUTING.md
├── SECURITY.md
├── bun.lock
├── docker-compose.yaml
├── docs
├── .gitignore
├── README.md
├── app
│ ├── (home)
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── api
│ │ ├── chat
│ │ │ └── route.ts
│ │ └── search
│ │ │ └── route.ts
│ ├── components
│ │ └── TwitterProof.tsx
│ ├── docs-og
│ │ └── [...slug]
│ │ │ └── route.tsx
│ ├── docs
│ │ ├── [[...slug]]
│ │ │ └── page.tsx
│ │ └── layout.tsx
│ ├── global.css
│ ├── layout.config.tsx
│ ├── layout.tsx
│ ├── llm.txt
│ │ └── route.ts
│ └── meta.json
├── bun.lock
├── components.json
├── components
│ ├── ai
│ │ ├── index.tsx
│ │ ├── markdown.tsx
│ │ ├── page-actions.tsx
│ │ └── search.tsx
│ └── ui
│ │ └── button.tsx
├── content
│ └── docs
│ │ ├── api
│ │ ├── Action.md
│ │ ├── ActionCall.md
│ │ ├── ActionCallContext.md
│ │ ├── ActionContext.md
│ │ ├── ActionCtxRef.md
│ │ ├── ActionHandler.md
│ │ ├── ActionResult.md
│ │ ├── ActionSchema.md
│ │ ├── ActionState.md
│ │ ├── Agent.md
│ │ ├── AgentContext.md
│ │ ├── AnyAction.md
│ │ ├── AnyActionWithContext.md
│ │ ├── AnyAgent.md
│ │ ├── AnyContext.md
│ │ ├── AnyOutput.md
│ │ ├── AnyRef.md
│ │ ├── Config.md
│ │ ├── Context.md
│ │ ├── ContextConfig.md
│ │ ├── ContextLockManager.md
│ │ ├── ContextRef.md
│ │ ├── ContextRefArray.md
│ │ ├── ContextSettings.md
│ │ ├── ContextState.md
│ │ ├── ContextStateApi.md
│ │ ├── ContextsEventsRecord.md
│ │ ├── ContextsRefRecord.md
│ │ ├── CreateEpisodeResult.md
│ │ ├── Debugger.md
│ │ ├── Entity.md
│ │ ├── Episode.md
│ │ ├── EpisodeHooks.md
│ │ ├── EpisodicMemory.md
│ │ ├── EpisodicMemoryImpl.md
│ │ ├── EventDef.md
│ │ ├── EventRef.md
│ │ ├── ExportManager.md
│ │ ├── Extension.md
│ │ ├── ExtractTemplateVariables.md
│ │ ├── ForgetCriteria.md
│ │ ├── GraphEdge.md
│ │ ├── GraphFilter.md
│ │ ├── GraphMemory.md
│ │ ├── GraphMemoryImpl.md
│ │ ├── GraphNode.md
│ │ ├── GraphPath.md
│ │ ├── GraphProvider.md
│ │ ├── GraphTraversal.md
│ │ ├── Handlers.md
│ │ ├── HealthStatus.md
│ │ ├── IChain.md
│ │ ├── IWorkingMemory.md
│ │ ├── InMemoryGraphProvider.md
│ │ ├── InMemoryKeyValueProvider.md
│ │ ├── InMemoryVectorProvider.md
│ │ ├── InferActionArguments.md
│ │ ├── InferActionState.md
│ │ ├── InferAgentContext.md
│ │ ├── InferAgentMemory.md
│ │ ├── InferContextMemory.md
│ │ ├── InferContextOptions.md
│ │ ├── InferSchema.md
│ │ ├── InferSchemaArguments.md
│ │ ├── Input.md
│ │ ├── InputConfig.md
│ │ ├── InputRef.md
│ │ ├── Instruction.md
│ │ ├── JSONExporter.md
│ │ ├── KeyValueMemory.md
│ │ ├── KeyValueMemoryImpl.md
│ │ ├── KeyValueProvider.md
│ │ ├── Log.md
│ │ ├── LogChunk.md
│ │ ├── LogLevel.md
│ │ ├── MarkdownExporter.md
│ │ ├── MaybePromise.md
│ │ ├── Memory.md
│ │ ├── MemoryConfig.md
│ │ ├── MemoryManager.md
│ │ ├── MemoryProvider.md
│ │ ├── MemoryRecord.md
│ │ ├── MemoryResult.md
│ │ ├── MemorySystem.md
│ │ ├── Optional.md
│ │ ├── Output.md
│ │ ├── OutputConfig.md
│ │ ├── OutputCtxRef.md
│ │ ├── OutputRef.md
│ │ ├── OutputRefResponse.md
│ │ ├── OutputResponse.md
│ │ ├── OutputSchema.md
│ │ ├── Pretty.md
│ │ ├── PushOptions.md
│ │ ├── RecallOptions.md
│ │ ├── RecallQuery.md
│ │ ├── Registry.md
│ │ ├── Relationship.md
│ │ ├── RememberOptions.md
│ │ ├── Resolver.md
│ │ ├── RetrievalPolicy.md
│ │ ├── RunRef.md
│ │ ├── SearchOptions.md
│ │ ├── SetOptions.md
│ │ ├── StepRef.md
│ │ ├── Subscription.md
│ │ ├── TaskConfiguration.md
│ │ ├── TemplateResolver.md
│ │ ├── TemplateVariables.md
│ │ ├── Thought.md
│ │ ├── ThoughtRef.md
│ │ ├── VectorDocument.md
│ │ ├── VectorMemory.md
│ │ ├── VectorMemoryImpl.md
│ │ ├── VectorProvider.md
│ │ ├── VectorQuery.md
│ │ ├── VectorResult.md
│ │ ├── WorkingMemory.md
│ │ ├── WorkingMemoryData.md
│ │ ├── WorkingMemoryImpl.md
│ │ ├── XMLElement.md
│ │ ├── api-reference.md
│ │ ├── contextLockManager-1.md
│ │ └── meta.json
│ │ ├── core
│ │ ├── concepts
│ │ │ ├── actions.mdx
│ │ │ ├── agent-lifecycle.mdx
│ │ │ ├── building-block-operations.mdx
│ │ │ ├── building-blocks.mdx
│ │ │ ├── composing-contexts.mdx
│ │ │ ├── context-engineering.mdx
│ │ │ ├── contexts.mdx
│ │ │ ├── episode-export.mdx
│ │ │ ├── episodes.mdx
│ │ │ ├── extensions-vs-services.mdx
│ │ │ ├── extensions.mdx
│ │ │ ├── index.mdx
│ │ │ ├── inputs.mdx
│ │ │ ├── mcp.mdx
│ │ │ ├── memory.mdx
│ │ │ ├── meta.json
│ │ │ ├── outputs.mdx
│ │ │ ├── prompting.mdx
│ │ │ └── services.mdx
│ │ ├── contributing.mdx
│ │ ├── first-agent.mdx
│ │ ├── index.mdx
│ │ ├── installation.mdx
│ │ ├── meta.json
│ │ └── providers
│ │ │ ├── ai-sdk.mdx
│ │ │ └── meta.json
│ │ ├── router
│ │ ├── dreams-sdk.mdx
│ │ ├── index.mdx
│ │ ├── meta.json
│ │ ├── quickstart.mdx
│ │ └── v1
│ │ │ ├── chat
│ │ │ └── completions
│ │ │ │ └── post.mdx
│ │ │ ├── healthz
│ │ │ └── get.mdx
│ │ │ ├── images
│ │ │ ├── edits
│ │ │ │ └── post.mdx
│ │ │ ├── generations
│ │ │ │ └── post.mdx
│ │ │ ├── jobs
│ │ │ │ ├── get.mdx
│ │ │ │ ├── id
│ │ │ │ │ └── get.mdx
│ │ │ │ └── post.mdx
│ │ │ └── models
│ │ │ │ └── get.mdx
│ │ │ ├── models
│ │ │ ├── categories
│ │ │ │ └── get.mdx
│ │ │ ├── detailed
│ │ │ │ └── get.mdx
│ │ │ ├── edit-capable
│ │ │ │ └── get.mdx
│ │ │ ├── get.mdx
│ │ │ ├── id
│ │ │ │ └── get.mdx
│ │ │ ├── providers
│ │ │ │ └── get.mdx
│ │ │ ├── recommendations
│ │ │ │ └── post.mdx
│ │ │ ├── search
│ │ │ │ └── get.mdx
│ │ │ └── stats
│ │ │ │ └── get.mdx
│ │ │ └── videos
│ │ │ ├── jobs
│ │ │ ├── get.mdx
│ │ │ └── id
│ │ │ │ ├── events
│ │ │ │ └── get.mdx
│ │ │ │ └── get.mdx
│ │ │ ├── kling
│ │ │ ├── image-to-video-v2-5-turbo
│ │ │ │ └── jobs
│ │ │ │ │ └── post.mdx
│ │ │ └── image-to-video
│ │ │ │ └── jobs
│ │ │ │ └── post.mdx
│ │ │ ├── veo-3-fast
│ │ │ └── jobs
│ │ │ │ └── post.mdx
│ │ │ ├── veo-3
│ │ │ └── jobs
│ │ │ │ └── post.mdx
│ │ │ ├── wan-25
│ │ │ ├── image-to-video
│ │ │ │ └── jobs
│ │ │ │ │ └── post.mdx
│ │ │ └── text-to-video
│ │ │ │ └── jobs
│ │ │ │ └── post.mdx
│ │ │ └── wan
│ │ │ └── animate
│ │ │ ├── move
│ │ │ └── jobs
│ │ │ │ └── post.mdx
│ │ │ └── replace
│ │ │ └── jobs
│ │ │ └── post.mdx
│ │ └── tutorials
│ │ ├── basic
│ │ ├── meta.json
│ │ ├── multi-context-agent.mdx
│ │ ├── single-context.mdx
│ │ └── starting-agent.mdx
│ │ ├── index.mdx
│ │ ├── mcp
│ │ ├── meta.json
│ │ └── multi-server.mdx
│ │ ├── meta.json
│ │ └── x402
│ │ ├── meta.json
│ │ ├── nanoservice.mdx
│ │ └── server.mdx
├── lib
│ ├── chat
│ │ └── inkeep-qa-schema.ts
│ ├── cn.ts
│ ├── metadata.ts
│ ├── source.ts
│ └── utils.ts
├── next-env.d.ts
├── next.config.mjs
├── package.json
├── postcss.config.mjs
├── public
│ ├── Daydreams.png
│ ├── banner.png
│ ├── chains
│ │ ├── Starknet.svg
│ │ ├── Starkware.svg
│ │ ├── abstract-logo.svg
│ │ ├── arbitrum-logo.svg
│ │ ├── base-logo.svg
│ │ ├── chain.png
│ │ ├── daydream.png
│ │ ├── eth-logo.svg
│ │ ├── hl-logo.svg
│ │ ├── optimism-logo.svg
│ │ └── solana-logo.svg
│ ├── favicon.ico
│ ├── langchain-color.svg
│ ├── logo.svg
│ ├── new-logo.png
│ ├── og.png
│ ├── providers
│ │ ├── anthropic.svg
│ │ ├── deepseek.svg
│ │ ├── google.svg
│ │ ├── groq.svg
│ │ ├── mistral.svg
│ │ ├── openai.svg
│ │ └── together.svg
│ └── pump.png
├── scripts
│ └── generate.ts
├── source.config.ts
└── tsconfig.json
├── examples
├── CDP
│ └── server-wallet
│ │ ├── README.md
│ │ ├── multi-context-wallet.tsx
│ │ └── wallet-context.ts
├── basic
│ ├── assistant.ts
│ ├── custom-json-adapter.ts
│ ├── custom-prompt-builder.ts
│ ├── example-chat.tsx
│ ├── example-filesystem.ts
│ └── multi-context.tsx
├── episodes
│ └── episode-hooks-simple.ts
├── mcp
│ ├── mcp-agent.ts
│ ├── mcp-server-example.mjs
│ └── mcp-server-example.ts
├── package.json
├── server
│ ├── .gitignore
│ ├── README.md
│ ├── mcp
│ │ ├── api.ts
│ │ └── servers
│ │ │ └── example.ts
│ ├── package.json
│ ├── server.ts
│ ├── storage.ts
│ ├── tools
│ │ ├── api.ts
│ │ ├── sandbox.ts
│ │ └── utils.ts
│ ├── tsconfig.json
│ └── utils.ts
├── social
│ ├── discord.ts
│ ├── telegram.ts
│ └── twitter.ts
└── x402
│ ├── basic.ts
│ └── nanoservice
│ ├── .dockerignore
│ ├── .env.production.example
│ ├── .gitignore
│ ├── Dockerfile.daydreams
│ ├── README.md
│ ├── client.ts
│ ├── deploy.sh
│ ├── package.json
│ └── server.ts
├── knip.config.ts
├── lerna.json
├── licence.md
├── package.json
├── packages
├── chroma
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── __tests__
│ │ │ └── vector-provider.contract.test.ts
│ │ ├── index.ts
│ │ ├── memory.ts
│ │ └── providers
│ │ │ ├── index.ts
│ │ │ └── vector-provider.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── cli
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── cli.ts
│ │ └── index.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── core
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── __tests__
│ │ │ ├── actions.behavior.test.ts
│ │ │ ├── actions.resolvers.test.ts
│ │ │ ├── actions.unit.test.ts
│ │ │ ├── context-engine-integration-validated.test.ts
│ │ │ ├── dreams-agent.test.ts
│ │ │ ├── engine.streaming.test.ts
│ │ │ ├── engine.test.ts
│ │ │ ├── episode-hooks.test.ts
│ │ │ ├── test-utilities.ts
│ │ │ ├── utils.ts
│ │ │ └── xml.test.ts
│ │ ├── config
│ │ │ └── index.ts
│ │ ├── container.ts
│ │ ├── context
│ │ │ ├── create-context-state.ts
│ │ │ ├── delete-context.ts
│ │ │ ├── get-context-data.ts
│ │ │ ├── get-context-working-memory.ts
│ │ │ ├── index.ts
│ │ │ ├── load-context-state.ts
│ │ │ ├── save-context-state.ts
│ │ │ ├── save-context-working-memory.ts
│ │ │ └── save-contexts-index.ts
│ │ ├── dreams.ts
│ │ ├── engine
│ │ │ ├── create-engine.ts
│ │ │ ├── index.ts
│ │ │ └── prettify-error.ts
│ │ ├── handlers
│ │ │ ├── handle-action-call.ts
│ │ │ ├── handle-input.ts
│ │ │ ├── handle-output.ts
│ │ │ ├── handle-stream.ts
│ │ │ ├── index.ts
│ │ │ ├── parse-action-call-content.ts
│ │ │ ├── prepare-action-call.ts
│ │ │ ├── prepare-action.ts
│ │ │ ├── prepare-context-actions.ts
│ │ │ ├── prepare-context-outputs.ts
│ │ │ ├── prepare-context.ts
│ │ │ ├── prepare-contexts.ts
│ │ │ ├── prepare-output-ref.ts
│ │ │ ├── prepare-output.ts
│ │ │ ├── resolve-action-call.ts
│ │ │ └── resolvers.ts
│ │ ├── index.ts
│ │ ├── logger.ts
│ │ ├── memory
│ │ │ ├── __tests__
│ │ │ │ ├── context-lock-manager.test.ts
│ │ │ │ ├── episode-hooks-integration.test.ts
│ │ │ │ ├── episodic-clear-context.test.ts
│ │ │ │ ├── episodic-logs-format.test.ts
│ │ │ │ ├── episodic-memory-order.test.ts
│ │ │ │ ├── episodic-memory.test.ts
│ │ │ │ ├── exporter-invalid-format.test.ts
│ │ │ │ ├── exporter-pass-through.test.ts
│ │ │ │ ├── exporter-unregister.test.ts
│ │ │ │ ├── graph-memory.test.ts
│ │ │ │ ├── graph-provider-findnodes.test.ts
│ │ │ │ ├── kv-batch-ifnotexists.test.ts
│ │ │ │ ├── kv-memory.test.ts
│ │ │ │ ├── memory-remember.test.ts
│ │ │ │ ├── memory-system-filter-options.test.ts
│ │ │ │ ├── memory-system-forget.test.ts
│ │ │ │ ├── memory-system-weighting.test.ts
│ │ │ │ ├── memory-system.test.ts
│ │ │ │ ├── recall-grouping-source.test.ts
│ │ │ │ ├── recall-grouping.test.ts
│ │ │ │ ├── recall-one.test.ts
│ │ │ │ ├── vector-memory.test.ts
│ │ │ │ └── working-memory.test.ts
│ │ │ ├── context-lock-manager.ts
│ │ │ ├── episode-hooks.ts
│ │ │ ├── episodic-memory.ts
│ │ │ ├── exporters
│ │ │ │ ├── README.md
│ │ │ │ ├── __tests__
│ │ │ │ │ └── export-manager.test.ts
│ │ │ │ ├── export-manager.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── json-exporter.ts
│ │ │ │ ├── markdown-exporter.ts
│ │ │ │ └── types.ts
│ │ │ ├── graph-memory.ts
│ │ │ ├── index.ts
│ │ │ ├── kv-memory.ts
│ │ │ ├── memory-system.ts
│ │ │ ├── providers
│ │ │ │ └── in-memory.ts
│ │ │ ├── testing
│ │ │ │ ├── index.ts
│ │ │ │ └── provider-contracts.ts
│ │ │ ├── types.ts
│ │ │ ├── utils.ts
│ │ │ ├── vector-memory.ts
│ │ │ └── working-memory.ts
│ │ ├── parsing
│ │ │ ├── formatters.ts
│ │ │ ├── index.ts
│ │ │ ├── jsonpath.ts
│ │ │ └── xml.ts
│ │ ├── prompts
│ │ │ ├── default-builder.ts
│ │ │ ├── index.ts
│ │ │ ├── main.ts
│ │ │ └── types.ts
│ │ ├── providers
│ │ │ ├── api.ts
│ │ │ └── index.ts
│ │ ├── response
│ │ │ └── default-xml-adapter.ts
│ │ ├── service-provider.ts
│ │ ├── task
│ │ │ └── index.ts
│ │ ├── tasks
│ │ │ └── index.ts
│ │ ├── types.ts
│ │ └── utils
│ │ │ ├── index.ts
│ │ │ └── simple-tracker.ts
│ ├── tsconfig.json
│ ├── tsup.config.ts
│ ├── vitest.config.ts
│ └── vitest.setup.ts
├── create-agent
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── utils.ts
│ ├── templates
│ │ └── basic
│ │ │ └── template.ts
│ ├── tsconfig.json
│ ├── tsup.config.ts
│ └── vitest.config.ts
├── defai
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── package.json
│ ├── src
│ │ ├── evm.ts
│ │ ├── index.ts
│ │ ├── solana.ts
│ │ ├── starknet.ts
│ │ └── sui.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── discord
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── package.json
│ ├── src
│ │ ├── discord.ts
│ │ ├── index.ts
│ │ └── io.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── firebase
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── memory.ts
│ │ └── providers
│ │ │ ├── index.ts
│ │ │ └── kv-provider.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── hyperliquid
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── package.json
│ ├── src
│ │ ├── hyperliquid.ts
│ │ └── index.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── mcp
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── client.ts
│ │ ├── extension.ts
│ │ └── index.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── mongo
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── memory.ts
│ │ └── providers
│ │ │ ├── index.ts
│ │ │ └── kv-provider.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── supabase
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── MIGRATION.md
│ ├── README.md
│ ├── package.json
│ ├── sql
│ │ └── setup.sql
│ ├── src
│ │ ├── index.ts
│ │ ├── memory.ts
│ │ └── providers
│ │ │ ├── graph-provider.ts
│ │ │ ├── index.ts
│ │ │ ├── kv-provider.ts
│ │ │ └── vector-provider.ts
│ ├── tsconfig.build.json
│ ├── tsconfig.json
│ └── tsup.config.ts
├── telegram
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── io.ts
│ │ └── telegram.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
└── twitter
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ ├── enhanced-client.ts
│ ├── enhanced-extension.ts
│ ├── index.ts
│ ├── io.ts
│ ├── messages.ts
│ ├── search.ts
│ ├── social.ts
│ └── twitter.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── pnpm-workspace.yaml
├── prettier.config.cjs
├── readme.md
├── scripts
├── add-prepublish-hook.sh
├── build.sh
├── clean.sh
├── custom-types.mjs
├── release.sh
└── resolve-catalog.js
├── tsconfig.json
├── tsup.config.ts
└── typedoc.json
/.github/abstract-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.github/base-logo.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/.github/chain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/daydreamsai/daydreams/25e199d395b9ac6655df3842a677c9306c039af4/.github/chain.png
--------------------------------------------------------------------------------
/.github/daydream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/daydreamsai/daydreams/25e199d395b9ac6655df3842a677c9306c039af4/.github/daydream.png
--------------------------------------------------------------------------------
/.github/eth-logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.github/hl-logo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yaml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | push:
5 | branches: [main]
6 | pull_request:
7 | branches: [main]
8 |
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 |
13 | steps:
14 | - uses: actions/checkout@v3
15 |
16 | - name: Setup Bun
17 | uses: oven-sh/setup-bun@v2
18 | with:
19 | bun-version: latest
20 |
21 | - name: Install system dependencies
22 | run: |
23 | sudo apt-get update
24 | sudo apt-get install -y libx11-dev libxtst-dev libpng-dev libxinerama-dev libxkbcommon-dev
25 |
26 | - name: Install dependencies
27 | env:
28 | HUSKY: 0
29 | run: bun install --no-scripts
30 |
31 | - name: Build core
32 | run: bun run build:packages
33 |
34 | - name: Run tests
35 | run: bun test
36 |
--------------------------------------------------------------------------------
/.github/workflows/pr-title.yaml:
--------------------------------------------------------------------------------
1 | name: PR Title Check
2 |
3 | on:
4 | pull_request:
5 | types: [opened, edited, synchronize]
6 |
7 | jobs:
8 | check-pr-title:
9 | runs-on: ubuntu-latest
10 |
11 | steps:
12 | - name: Check out the repository
13 | uses: actions/checkout@v2
14 |
15 | - name: Validate PR title
16 | id: validate
17 | run: |
18 | PR_TITLE=$(jq -r .pull_request.title "$GITHUB_EVENT_PATH")
19 | echo "PR Title: $PR_TITLE"
20 | if [[ ! "$PR_TITLE" =~ ^(feat|fix|docs|style|refactor|test|chore)(\([a-z-]+\))?:\ .+ ]]; then
21 | echo "PR title does not match the required pattern."
22 | exit 1
23 | fi
24 |
25 | - name: Set status
26 | if: failure()
27 | run: |
28 | gh pr comment ${{ github.event.pull_request.number }} --body "❌ PR title does not match the required pattern. Please use the format: 'type: description' or 'type(scope): description' (e.g., 'feat: add new feature' or 'chore(deps): update dependencies')."
29 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | # Ensure catalog references are resolved correctly
2 | save-prefix=""
3 | # Ensure workspace protocol is handled correctly during publish
4 | link-workspace-packages=true
5 | # Use exact versions when resolving catalog entries
6 | save-exact=true
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | lts/hydrogen
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | packages/create-agent/templates/basic/template.ts
--------------------------------------------------------------------------------
/.vercelignore:
--------------------------------------------------------------------------------
1 | examples/
2 | node_modules/
3 | .git/
4 | .github/
5 | .vscode/
6 | build/
7 | logs/
8 | screenshots/
9 | .next/
10 | .cursor/
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["esbenp.prettier-vscode"]
3 | }
4 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.defaultFormatter": "esbenp.prettier-vscode",
3 | "editor.formatOnSave": true,
4 | "files.exclude": {
5 | "**/node_modules": true
6 | },
7 | "prettier.configPath": "prettier.config.cjs",
8 | "prettier.singleQuote": false,
9 | "search.exclude": {
10 | "**/node_modules": true
11 | },
12 | "typescript.tsdk": "node_modules/typescript/lib"
13 | }
14 |
--------------------------------------------------------------------------------
/docker-compose.yaml:
--------------------------------------------------------------------------------
1 | name: daydreams
2 |
3 | services:
4 | memgraph:
5 | image: memgraph/memgraph-mage:latest
6 | container_name: memgraph-mage
7 | ports:
8 | - "7687:7687"
9 | - "7444:7444"
10 | command: ["--log-level=TRACE"]
11 |
12 | lab:
13 | image: memgraph/lab:latest
14 | container_name: memgraph-lab
15 | ports:
16 | - "3000:3000"
17 | depends_on:
18 | - memgraph
19 | environment:
20 | - QUICK_CONNECT_MG_HOST=memgraph
21 | - QUICK_CONNECT_MG_PORT=7687
22 |
23 | chroma:
24 | image: chromadb/chroma:1.0.17
25 | container_name: ${COMPOSE_PROJECT_NAME}_chroma
26 | restart: always
27 | ports:
28 | - "8000:8000"
29 | mongo:
30 | image: mongo:8.0.4
31 | container_name: ${COMPOSE_PROJECT_NAME}_mongo
32 | restart: always
33 | ports:
34 | - "27017:27017"
35 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | # deps
2 | /node_modules
3 |
4 | # generated content
5 | .contentlayer
6 | .content-collections
7 | .source
8 |
9 | # test & build
10 | /coverage
11 | /.next/
12 | /out/
13 | /build
14 | *.tsbuildinfo
15 |
16 | # misc
17 | .DS_Store
18 | *.pem
19 | /.pnp
20 | .pnp.js
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
25 | # others
26 | .env*.local
27 | .vercel
28 | next-env.d.ts
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # daydreams
2 |
3 | This is a Next.js application generated with
4 | [Create Fumadocs](https://github.com/fuma-nama/fumadocs).
5 |
6 | Run development server:
7 |
8 | ```bash
9 | npm run dev
10 | # or
11 | pnpm dev
12 | # or
13 | yarn dev
14 | ```
15 |
16 | Open http://localhost:3000 with your browser to see the result.
17 |
18 | ## Learn More
19 |
20 | To learn more about Next.js and Fumadocs, take a look at the following
21 | resources:
22 |
23 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js
24 | features and API.
25 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
26 | - [Fumadocs](https://fumadocs.vercel.app) - learn about Fumadocs
27 |
--------------------------------------------------------------------------------
/docs/app/(home)/layout.tsx:
--------------------------------------------------------------------------------
1 | import type { ReactNode } from "react";
2 | import { HomeLayout } from "fumadocs-ui/layouts/home";
3 | // @ts-ignore
4 | import { baseOptions } from "@/app/layout.config";
5 |
6 | export default function Layout({ children }: { children: any }) {
7 | return {children};
8 | }
9 |
--------------------------------------------------------------------------------
/docs/app/api/chat/route.ts:
--------------------------------------------------------------------------------
1 | import { ProvideLinksToolSchema } from '../../../lib/chat/inkeep-qa-schema';
2 | import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
3 | import { convertToModelMessages, streamText } from 'ai';
4 |
5 | export const runtime = 'edge';
6 |
7 | const openai = createOpenAICompatible({
8 | name: 'inkeep',
9 | apiKey: process.env.INKEEP_API_KEY,
10 | baseURL: 'https://api.inkeep.com/v1',
11 | });
12 |
13 | export async function POST(req: Request) {
14 | const reqJson = await req.json();
15 |
16 | const result = streamText({
17 | model: openai('inkeep-qa-sonnet-4'),
18 | tools: {
19 | provideLinks: {
20 | inputSchema: ProvideLinksToolSchema,
21 | },
22 | },
23 | messages: convertToModelMessages(reqJson.messages, {
24 | ignoreIncompleteToolCalls: true,
25 | }),
26 | toolChoice: 'auto',
27 | });
28 |
29 | return result.toUIMessageStreamResponse();
30 | }
31 |
--------------------------------------------------------------------------------
/docs/app/api/search/route.ts:
--------------------------------------------------------------------------------
1 | import { source } from "@/lib/source";
2 | import { createFromSource } from "fumadocs-core/search/server";
3 |
4 | export const { GET } = createFromSource(source);
5 |
--------------------------------------------------------------------------------
/docs/app/docs-og/[...slug]/route.tsx:
--------------------------------------------------------------------------------
1 | import { generateOGImage } from "fumadocs-ui/og";
2 | import { metadataImage } from "../../../lib/metadata";
3 |
4 | export const GET = metadataImage.createAPI((page) => {
5 | return generateOGImage({
6 | title: page.data.title,
7 | description: page.data.description,
8 | site: "Daydreams",
9 | });
10 | });
11 |
12 | export function generateStaticParams() {
13 | return metadataImage.generateParams();
14 | }
15 |
--------------------------------------------------------------------------------
/docs/app/docs/layout.tsx:
--------------------------------------------------------------------------------
1 | import { DocsLayout } from "fumadocs-ui/layouts/notebook";
2 | import { baseOptions } from "@/app/layout.config";
3 | import { source } from "@/lib/source";
4 |
5 | export default function Layout({ children }: { children: any }) {
6 | return (
7 |
8 | {children}
9 |
10 | );
11 | }
12 |
--------------------------------------------------------------------------------
/docs/app/llm.txt/route.ts:
--------------------------------------------------------------------------------
1 | import * as fs from "node:fs/promises";
2 | import fg from "fast-glob";
3 | import matter from "gray-matter";
4 | import { remark } from "remark";
5 | import remarkGfm from "remark-gfm";
6 | import remarkStringify from "remark-stringify";
7 | import remarkMdx from "remark-mdx";
8 | import { remarkInclude } from "fumadocs-mdx/config";
9 |
10 | export const revalidate = false;
11 |
12 | export async function GET() {
13 | // all scanned content
14 | const files = await fg(["./content/docs/**/*.mdx"]);
15 |
16 | const scan = files.map(async (file) => {
17 | const fileContent = await fs.readFile(file);
18 | const { content, data } = matter(fileContent.toString());
19 |
20 | const processed = await processContent(content);
21 | return `file: ${file}
22 | meta: ${JSON.stringify(data, null, 2)}
23 |
24 | ${processed}`;
25 | });
26 |
27 | const scanned = await Promise.all(scan);
28 |
29 | return new Response(scanned.join("\n\n"));
30 | }
31 |
32 | async function processContent(content: string): Promise {
33 | const file = await remark()
34 | .use(remarkMdx)
35 | // https://fumadocs.vercel.app/docs/mdx/include
36 | .use(remarkInclude)
37 | // gfm styles
38 | .use(remarkGfm)
39 | // .use(your remark plugins)
40 | .use(remarkStringify) // to string
41 | .process(content);
42 |
43 | return String(file);
44 | }
45 |
--------------------------------------------------------------------------------
/docs/app/meta.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Name of Folder",
3 | "pages": ["---Separator---"]
4 | }
5 |
--------------------------------------------------------------------------------
/docs/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "new-york",
4 | "rsc": true,
5 | "tsx": true,
6 | "tailwind": {
7 | "config": "",
8 | "css": "app/global.css",
9 | "baseColor": "neutral",
10 | "cssVariables": true,
11 | "prefix": ""
12 | },
13 | "aliases": {
14 | "components": "@/components",
15 | "utils": "@/lib/utils",
16 | "ui": "@/components/ui",
17 | "lib": "@/lib",
18 | "hooks": "@/hooks"
19 | },
20 | "iconLibrary": "lucide"
21 | }
--------------------------------------------------------------------------------
/docs/components/ai/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 | import { type ButtonHTMLAttributes, useState } from 'react';
3 | import dynamic from 'next/dynamic';
4 |
5 | // lazy load the dialog
6 | const SearchAI = dynamic(() => import('./search'), { ssr: false });
7 |
8 | /**
9 | * The trigger component for AI search dialog.
10 | *
11 | * Use it like a normal button component.
12 | */
13 | export function AISearchTrigger(
14 | props: ButtonHTMLAttributes,
15 | ) {
16 | const [open, setOpen] = useState();
17 |
18 | return (
19 | <>
20 | {open !== undefined ? (
21 |
22 | ) : null}
23 |