├── .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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 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 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /.github/hl-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 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 |