gitextract_kg5bbks8/ ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── electron-build.yml │ ├── rowboat-build.yml │ └── x-publish.yml ├── .gitignore ├── CLAUDE.md ├── Dockerfile.qdrant ├── LICENSE ├── README.md ├── apps/ │ ├── cli/ │ │ ├── .gitignore │ │ ├── bin/ │ │ │ └── app.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── agents/ │ │ │ │ ├── agents.ts │ │ │ │ ├── repo.ts │ │ │ │ └── runtime.ts │ │ │ ├── app.ts │ │ │ ├── application/ │ │ │ │ ├── assistant/ │ │ │ │ │ ├── agent.ts │ │ │ │ │ ├── instructions.ts │ │ │ │ │ ├── runtime-context.ts │ │ │ │ │ └── skills/ │ │ │ │ │ ├── builtin-tools/ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ ├── deletion-guardrails/ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mcp-integration/ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ ├── workflow-authoring/ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ └── workflow-run-ops/ │ │ │ │ │ └── skill.ts │ │ │ │ └── lib/ │ │ │ │ ├── builtin-tools.ts │ │ │ │ ├── bus.ts │ │ │ │ ├── command-executor.ts │ │ │ │ ├── exec-tool.ts │ │ │ │ ├── id-gen.ts │ │ │ │ ├── message-queue.ts │ │ │ │ ├── random-id.ts │ │ │ │ └── stream-renderer.ts │ │ │ ├── config/ │ │ │ │ ├── config.ts │ │ │ │ └── security.ts │ │ │ ├── di/ │ │ │ │ └── container.ts │ │ │ ├── entities/ │ │ │ │ ├── example.ts │ │ │ │ ├── llm-step-events.ts │ │ │ │ ├── message.ts │ │ │ │ └── run-events.ts │ │ │ ├── examples/ │ │ │ │ ├── index.ts │ │ │ │ └── twitter-podcast.json │ │ │ ├── knowledge/ │ │ │ │ ├── sync_calendar.ts │ │ │ │ └── sync_gmail.ts │ │ │ ├── mcp/ │ │ │ │ ├── mcp.ts │ │ │ │ ├── repo.ts │ │ │ │ └── schema.ts │ │ │ ├── models/ │ │ │ │ ├── models.ts │ │ │ │ └── repo.ts │ │ │ ├── runs/ │ │ │ │ ├── lock.ts │ │ │ │ ├── repo.ts │ │ │ │ └── runs.ts │ │ │ ├── scripts/ │ │ │ │ └── migrate-agents.ts │ │ │ ├── server.ts │ │ │ ├── shared/ │ │ │ │ └── prefix-logger.ts │ │ │ └── tui/ │ │ │ ├── api.ts │ │ │ ├── index.tsx │ │ │ └── ui.tsx │ │ ├── todo.md │ │ └── tsconfig.json │ ├── docs/ │ │ ├── .gitignore │ │ ├── docs/ │ │ │ ├── development/ │ │ │ │ ├── contribution-guide.mdx │ │ │ │ └── roadmap.mdx │ │ │ └── getting-started/ │ │ │ ├── introduction.mdx │ │ │ ├── license.mdx │ │ │ └── quickstart.mdx │ │ └── docs.json │ ├── experimental/ │ │ ├── chat_widget/ │ │ │ ├── .dockerignore │ │ │ ├── .eslintrc.json │ │ │ ├── .gitignore │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── api/ │ │ │ │ │ └── bootstrap.js/ │ │ │ │ │ └── route.ts │ │ │ │ ├── app.tsx │ │ │ │ ├── globals.css │ │ │ │ ├── layout.tsx │ │ │ │ ├── markdown-content.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── providers.tsx │ │ │ ├── next.config.mjs │ │ │ ├── package.json │ │ │ ├── postcss.config.mjs │ │ │ ├── public/ │ │ │ │ └── bootstrap.template.js │ │ │ ├── tailwind.config.ts │ │ │ └── tsconfig.json │ │ ├── simulation_runner/ │ │ │ ├── Dockerfile │ │ │ ├── __init__.py │ │ │ ├── db.py │ │ │ ├── requirements.txt │ │ │ ├── scenario_types.py │ │ │ ├── service.py │ │ │ └── simulation.py │ │ └── tools_webhook/ │ │ ├── Dockerfile │ │ ├── __init__.py │ │ ├── app.py │ │ ├── function_map.py │ │ ├── requirements.txt │ │ ├── tests/ │ │ │ ├── __init__.py │ │ │ ├── test_app.py │ │ │ └── test_tool_caller.py │ │ └── tool_caller.py │ ├── python-sdk/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pyproject.toml │ │ ├── requirements.txt │ │ └── src/ │ │ └── rowboat/ │ │ ├── __init__.py │ │ ├── client.py │ │ └── schema.py │ ├── rowboat/ │ │ ├── .dockerignore │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app/ │ │ │ ├── actions/ │ │ │ │ ├── assistant-templates.actions.ts │ │ │ │ ├── auth.actions.ts │ │ │ │ ├── billing.actions.ts │ │ │ │ ├── composio.actions.ts │ │ │ │ ├── conversation.actions.ts │ │ │ │ ├── copilot.actions.ts │ │ │ │ ├── custom-mcp-server.actions.ts │ │ │ │ ├── data-source.actions.ts │ │ │ │ ├── job.actions.ts │ │ │ │ ├── playground-chat.actions.ts │ │ │ │ ├── project.actions.ts │ │ │ │ ├── recurring-job-rules.actions.ts │ │ │ │ ├── scheduled-job-rules.actions.ts │ │ │ │ ├── shared-workflow.actions.ts │ │ │ │ └── twilio.actions.ts │ │ │ ├── api/ │ │ │ │ ├── composio/ │ │ │ │ │ └── webhook/ │ │ │ │ │ └── route.ts │ │ │ │ ├── copilot-stream-response/ │ │ │ │ │ └── [streamId]/ │ │ │ │ │ └── route.ts │ │ │ │ ├── generated-images/ │ │ │ │ │ └── [id]/ │ │ │ │ │ └── route.ts │ │ │ │ ├── me/ │ │ │ │ │ └── route.ts │ │ │ │ ├── stream-response/ │ │ │ │ │ └── [streamId]/ │ │ │ │ │ └── route.ts │ │ │ │ ├── tmp-images/ │ │ │ │ │ └── [id]/ │ │ │ │ │ └── route.ts │ │ │ │ ├── twilio/ │ │ │ │ │ ├── inbound_call/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ ├── turn/ │ │ │ │ │ │ └── [callSid]/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── uploads/ │ │ │ │ │ └── [fileId]/ │ │ │ │ │ └── route.ts │ │ │ │ ├── v1/ │ │ │ │ │ └── [projectId]/ │ │ │ │ │ └── chat/ │ │ │ │ │ └── route.ts │ │ │ │ └── widget/ │ │ │ │ └── v1/ │ │ │ │ ├── chats/ │ │ │ │ │ ├── [chatId]/ │ │ │ │ │ │ ├── close/ │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ ├── messages/ │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ ├── route.ts │ │ │ │ │ │ └── turn/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ ├── session/ │ │ │ │ │ ├── guest/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── user/ │ │ │ │ │ └── route.ts │ │ │ │ └── utils.ts │ │ │ ├── app.tsx │ │ │ ├── billing/ │ │ │ │ ├── app.tsx │ │ │ │ ├── callback/ │ │ │ │ │ └── page.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ ├── browserconfig.xml │ │ │ ├── components/ │ │ │ │ └── ui/ │ │ │ │ └── textarea-with-send.tsx │ │ │ ├── composio/ │ │ │ │ └── oauth2/ │ │ │ │ └── callback/ │ │ │ │ └── page.tsx │ │ │ ├── globals.css │ │ │ ├── hero.ts │ │ │ ├── layout.tsx │ │ │ ├── lib/ │ │ │ │ ├── assistant_templates_seed.ts │ │ │ │ ├── auth.ts │ │ │ │ ├── auth0.ts │ │ │ │ ├── billing.ts │ │ │ │ ├── client_utils.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── atmentions.ts │ │ │ │ │ ├── datasource-icon.tsx │ │ │ │ │ ├── dropdown.tsx │ │ │ │ │ ├── form-section.tsx │ │ │ │ │ ├── form-status-button-old.tsx │ │ │ │ │ ├── form-status-button.tsx │ │ │ │ │ ├── icons.tsx │ │ │ │ │ ├── input-field.tsx │ │ │ │ │ ├── label.tsx │ │ │ │ │ ├── markdown-content.tsx │ │ │ │ │ ├── mentions-editor.css │ │ │ │ │ ├── mentions_editor.tsx │ │ │ │ │ ├── menu-item.tsx │ │ │ │ │ ├── message-display.tsx │ │ │ │ │ ├── page-section.tsx │ │ │ │ │ ├── pagination.tsx │ │ │ │ │ ├── reason-badge.tsx │ │ │ │ │ ├── structured-list.tsx │ │ │ │ │ ├── structured-panel.tsx │ │ │ │ │ ├── typewriter.tsx │ │ │ │ │ └── user_button.tsx │ │ │ │ ├── default_tools.ts │ │ │ │ ├── embedding.ts │ │ │ │ ├── feature_flags.ts │ │ │ │ ├── loadenv.ts │ │ │ │ ├── mcp.ts │ │ │ │ ├── mongodb.ts │ │ │ │ ├── prebuilt-cards/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── customer-support.json │ │ │ │ │ ├── eisenhower-email-organizer.json │ │ │ │ │ ├── github-data-to-spreadsheet.json │ │ │ │ │ ├── github-issue-to-slack.json │ │ │ │ │ ├── github-pr-to-slack.json │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interview-scheduler.json │ │ │ │ │ ├── meeting-prep-assistant.json │ │ │ │ │ ├── reddit-on-slack.json │ │ │ │ │ ├── tweet-assistant.json │ │ │ │ │ └── twitter-sentiment.json │ │ │ │ ├── project_templates.ts │ │ │ │ ├── qdrant.ts │ │ │ │ ├── redis.ts │ │ │ │ ├── types/ │ │ │ │ │ ├── api_types.ts │ │ │ │ │ ├── billing_types.ts │ │ │ │ │ ├── datasource_types.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── voice_types.ts │ │ │ │ │ └── workflow_types.ts │ │ │ │ ├── uploads_s3_client.ts │ │ │ │ └── utils.ts │ │ │ ├── loading.tsx │ │ │ ├── new-chat-link.tsx │ │ │ ├── onboarding/ │ │ │ │ ├── app.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ ├── page.tsx │ │ │ ├── projects/ │ │ │ │ ├── [projectId]/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── app.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── project.tsx │ │ │ │ │ │ │ ├── shared-styles.ts │ │ │ │ │ │ │ └── voice.tsx │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── conversations/ │ │ │ │ │ │ ├── [conversationId]/ │ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── conversation-view.tsx │ │ │ │ │ │ │ └── conversations-list.tsx │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── copilot/ │ │ │ │ │ │ ├── app.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── TriggerSetupModal.tsx │ │ │ │ │ │ │ ├── actions.tsx │ │ │ │ │ │ │ ├── messages.tsx │ │ │ │ │ │ │ └── use-trigger-actions.ts │ │ │ │ │ │ ├── example.md │ │ │ │ │ │ ├── use-copilot.tsx │ │ │ │ │ │ └── use-parsed-blocks.tsx │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── AgentGraphVisualizer.tsx │ │ │ │ │ │ ├── agent_config.tsx │ │ │ │ │ │ ├── datasource_config.tsx │ │ │ │ │ │ ├── pipeline_config.tsx │ │ │ │ │ │ ├── prompt_config.tsx │ │ │ │ │ │ └── tool_config.tsx │ │ │ │ │ ├── jobs/ │ │ │ │ │ │ ├── [jobId]/ │ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── job-view.tsx │ │ │ │ │ │ │ └── jobs-list.tsx │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── layout.tsx │ │ │ │ │ ├── manage-triggers/ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── composio-trigger-deployment-view.tsx │ │ │ │ │ │ │ ├── create-recurring-job-rule-form.tsx │ │ │ │ │ │ │ ├── job-rules-tabs.tsx │ │ │ │ │ │ │ ├── recurring-job-rule-view.tsx │ │ │ │ │ │ │ ├── recurring-job-rules-list.tsx │ │ │ │ │ │ │ └── triggers-tab.tsx │ │ │ │ │ │ ├── page.tsx │ │ │ │ │ │ ├── recurring/ │ │ │ │ │ │ │ ├── [ruleId]/ │ │ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ │ │ └── new/ │ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ │ ├── scheduled/ │ │ │ │ │ │ │ ├── [ruleId]/ │ │ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ ├── create-scheduled-job-rule-form.tsx │ │ │ │ │ │ │ │ ├── scheduled-job-rule-view.tsx │ │ │ │ │ │ │ │ └── scheduled-job-rules-list.tsx │ │ │ │ │ │ │ └── new/ │ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ │ └── triggers/ │ │ │ │ │ │ └── [deploymentId]/ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── playground/ │ │ │ │ │ │ ├── app.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── chat.tsx │ │ │ │ │ │ │ ├── feedback-modal.tsx │ │ │ │ │ │ │ ├── messages.tsx │ │ │ │ │ │ │ └── profile-context-box.tsx │ │ │ │ │ │ └── copilot-prompts.ts │ │ │ │ │ ├── sources/ │ │ │ │ │ │ ├── [sourceId]/ │ │ │ │ │ │ │ ├── page.tsx │ │ │ │ │ │ │ └── source-page.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── delete.tsx │ │ │ │ │ │ │ ├── files-source.tsx │ │ │ │ │ │ │ ├── scrape-source.tsx │ │ │ │ │ │ │ ├── section.tsx │ │ │ │ │ │ │ ├── self-updating-source-status.tsx │ │ │ │ │ │ │ ├── shared.tsx │ │ │ │ │ │ │ ├── source-status.tsx │ │ │ │ │ │ │ ├── sources-list.tsx │ │ │ │ │ │ │ ├── text-source.tsx │ │ │ │ │ │ │ ├── toggle-source.tsx │ │ │ │ │ │ │ └── web-recrawl.tsx │ │ │ │ │ │ ├── new/ │ │ │ │ │ │ │ ├── form.tsx │ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── tools/ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── AddWebhookTool.tsx │ │ │ │ │ │ │ ├── ComposioToolsPanel.tsx │ │ │ │ │ │ │ ├── CustomMcpServer.tsx │ │ │ │ │ │ │ ├── MCPServersCommon.tsx │ │ │ │ │ │ │ ├── McpToolsPanel.tsx │ │ │ │ │ │ │ ├── SelectComposioToolkit.tsx │ │ │ │ │ │ │ ├── ServerCard.tsx │ │ │ │ │ │ │ ├── ToolkitAuthModal.tsx │ │ │ │ │ │ │ ├── ToolkitCard.tsx │ │ │ │ │ │ │ ├── ToolsConfig.tsx │ │ │ │ │ │ │ └── WebhookConfig.tsx │ │ │ │ │ │ └── oauth/ │ │ │ │ │ │ └── callback/ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ └── workflow/ │ │ │ │ │ ├── app.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── ComposioTriggerTypesPanel.tsx │ │ │ │ │ │ ├── DataSourcesModal.tsx │ │ │ │ │ │ ├── ToolsModal.tsx │ │ │ │ │ │ ├── TopBar.tsx │ │ │ │ │ │ └── TriggerConfigForm.tsx │ │ │ │ │ ├── config_list.tsx │ │ │ │ │ ├── entity_list.tsx │ │ │ │ │ ├── error.tsx │ │ │ │ │ ├── loading.tsx │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── pane.tsx │ │ │ │ │ ├── preview-modal.tsx │ │ │ │ │ ├── trigger-transform.ts │ │ │ │ │ └── workflow_editor.tsx │ │ │ │ ├── app.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── build-assistant-section.tsx │ │ │ │ │ ├── create-project.tsx │ │ │ │ │ ├── custom-prompt-card.tsx │ │ │ │ │ ├── project-list.tsx │ │ │ │ │ ├── search-input.tsx │ │ │ │ │ ├── search-projects.tsx │ │ │ │ │ ├── submit-button.tsx │ │ │ │ │ └── templates-section.tsx │ │ │ │ ├── layout/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── app-layout.tsx │ │ │ │ │ │ ├── menu-item.tsx │ │ │ │ │ │ └── sidebar.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── menu.tsx │ │ │ │ │ └── nav.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── lib/ │ │ │ │ │ └── project-creation-utils.ts │ │ │ │ └── page.tsx │ │ │ ├── providers/ │ │ │ │ ├── help-modal-provider.tsx │ │ │ │ └── theme-provider.tsx │ │ │ ├── providers.tsx │ │ │ ├── scripts/ │ │ │ │ ├── delete_qdrant.ts │ │ │ │ ├── job-rules.worker.ts │ │ │ │ ├── jobs-worker.ts │ │ │ │ ├── mongodb-drop-indexes.ts │ │ │ │ ├── mongodb-ensure-indexes.ts │ │ │ │ ├── rag-worker.ts │ │ │ │ └── setup_qdrant.ts │ │ │ ├── site.webmanifest │ │ │ └── styles/ │ │ │ ├── design-tokens.ts │ │ │ ├── pane-effects.ts │ │ │ └── quill-mentions.css │ │ ├── components/ │ │ │ ├── common/ │ │ │ │ ├── AssistantCard.tsx │ │ │ │ ├── AssistantSection.tsx │ │ │ │ ├── UnifiedTemplatesSection.tsx │ │ │ │ ├── billing-upgrade-modal.tsx │ │ │ │ ├── compose-box-copilot.tsx │ │ │ │ ├── compose-box-playground.tsx │ │ │ │ ├── compose-box.tsx │ │ │ │ ├── copy-as-json-button.tsx │ │ │ │ ├── copy-button.tsx │ │ │ │ ├── help-modal.tsx │ │ │ │ ├── panel-common.tsx │ │ │ │ ├── product-tour.tsx │ │ │ │ ├── project-wide-change-confirmation-modal.tsx │ │ │ │ ├── section-card.tsx │ │ │ │ └── tool-param-card.tsx │ │ │ └── ui/ │ │ │ ├── button.tsx │ │ │ ├── dropdown.tsx │ │ │ ├── horizontal-divider.tsx │ │ │ ├── input.tsx │ │ │ ├── modal.tsx │ │ │ ├── page-header.tsx │ │ │ ├── page-heading.tsx │ │ │ ├── picture-img.tsx │ │ │ ├── progress-bar.tsx │ │ │ ├── resizable.tsx │ │ │ ├── search-bar.tsx │ │ │ ├── section-heading.tsx │ │ │ ├── slide-panel.tsx │ │ │ ├── switch.tsx │ │ │ ├── tabs.tsx │ │ │ └── textarea.tsx │ │ ├── components.json │ │ ├── di/ │ │ │ └── container.ts │ │ ├── hooks/ │ │ │ └── use-click-away.ts │ │ ├── instrumentation-client.ts │ │ ├── lib/ │ │ │ ├── utils/ │ │ │ │ └── date.ts │ │ │ └── utils.ts │ │ ├── middleware.ts │ │ ├── next.config.mjs │ │ ├── package.json │ │ ├── postcss.config.mjs │ │ ├── scripts.Dockerfile │ │ ├── src/ │ │ │ ├── application/ │ │ │ │ ├── lib/ │ │ │ │ │ ├── agents-runtime/ │ │ │ │ │ │ ├── agent-handoffs.ts │ │ │ │ │ │ ├── agent-tools.ts │ │ │ │ │ │ ├── agent_instructions.ts │ │ │ │ │ │ ├── agents.ts │ │ │ │ │ │ └── pipeline-state-manager.ts │ │ │ │ │ ├── composio/ │ │ │ │ │ │ ├── composio.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── copilot/ │ │ │ │ │ │ ├── copilot.ts │ │ │ │ │ │ ├── copilot_edit_agent.ts │ │ │ │ │ │ ├── copilot_multi_agent.ts │ │ │ │ │ │ ├── copilot_multi_agent_build.ts │ │ │ │ │ │ ├── current_workflow.ts │ │ │ │ │ │ └── example_multi_agent_1.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── is-valid-cron-expression.ts │ │ │ │ │ └── time-to-next-minute.ts │ │ │ │ ├── policies/ │ │ │ │ │ ├── project-action-authorization.policy.ts │ │ │ │ │ └── usage-quota.policy.interface.ts │ │ │ │ ├── repositories/ │ │ │ │ │ ├── api-keys.repository.interface.ts │ │ │ │ │ ├── composio-trigger-deployments.repository.interface.ts │ │ │ │ │ ├── conversations.repository.interface.ts │ │ │ │ │ ├── data-source-docs.repository.interface.ts │ │ │ │ │ ├── data-sources.repository.interface.ts │ │ │ │ │ ├── jobs.repository.interface.ts │ │ │ │ │ ├── project-members.repository.interface.ts │ │ │ │ │ ├── projects.repository.interface.ts │ │ │ │ │ ├── recurring-job-rules.repository.interface.ts │ │ │ │ │ ├── scheduled-job-rules.repository.interface.ts │ │ │ │ │ └── users.repository.interface.ts │ │ │ │ ├── services/ │ │ │ │ │ ├── cache.service.interface.ts │ │ │ │ │ ├── pub-sub.service.interface.ts │ │ │ │ │ ├── temp-binary-cache.ts │ │ │ │ │ └── uploads-storage.service.interface.ts │ │ │ │ ├── use-cases/ │ │ │ │ │ ├── api-keys/ │ │ │ │ │ │ ├── create-api-key.use-case.ts │ │ │ │ │ │ ├── delete-api-key.use-case.ts │ │ │ │ │ │ └── list-api-keys.use-case.ts │ │ │ │ │ ├── composio/ │ │ │ │ │ │ └── webhook/ │ │ │ │ │ │ └── handle-composio-webhook-request.use-case.ts │ │ │ │ │ ├── composio-trigger-deployments/ │ │ │ │ │ │ ├── create-composio-trigger-deployment.use-case.ts │ │ │ │ │ │ ├── delete-composio-trigger-deployment.use-case.ts │ │ │ │ │ │ ├── fetch-composio-trigger-deployment.use-case.ts │ │ │ │ │ │ ├── list-composio-trigger-deployments.use-case.ts │ │ │ │ │ │ └── list-composio-trigger-types.use-case.ts │ │ │ │ │ ├── conversations/ │ │ │ │ │ │ ├── create-cached-turn.use-case.ts │ │ │ │ │ │ ├── create-conversation.use-case.ts │ │ │ │ │ │ ├── fetch-cached-turn.use-case.ts │ │ │ │ │ │ ├── fetch-conversation.use-case.ts │ │ │ │ │ │ ├── list-conversations.use-case.ts │ │ │ │ │ │ └── run-conversation-turn.use-case.ts │ │ │ │ │ ├── copilot/ │ │ │ │ │ │ ├── create-copilot-cached-turn.use-case.ts │ │ │ │ │ │ └── run-copilot-cached-turn.use-case.ts │ │ │ │ │ ├── data-sources/ │ │ │ │ │ │ ├── add-docs-to-data-source.use-case.ts │ │ │ │ │ │ ├── create-data-source.use-case.ts │ │ │ │ │ │ ├── delete-data-source.use-case.ts │ │ │ │ │ │ ├── delete-doc-from-data-source.use-case.ts │ │ │ │ │ │ ├── fetch-data-source.use-case.ts │ │ │ │ │ │ ├── get-download-url-for-file.use-case.ts │ │ │ │ │ │ ├── get-upload-urls-for-files.use-case.ts │ │ │ │ │ │ ├── list-data-sources.use-case.ts │ │ │ │ │ │ ├── list-docs-in-data-source.use-case.ts │ │ │ │ │ │ ├── recrawl-web-data-source.use-case.ts │ │ │ │ │ │ ├── toggle-data-source.use-case.ts │ │ │ │ │ │ └── update-data-source.use-case.ts │ │ │ │ │ ├── jobs/ │ │ │ │ │ │ ├── fetch-job.use-case.ts │ │ │ │ │ │ └── list-jobs.use-case.ts │ │ │ │ │ ├── projects/ │ │ │ │ │ │ ├── add-custom-mcp-server.use-case.ts │ │ │ │ │ │ ├── create-composio-managed-connected-account.use-case.ts │ │ │ │ │ │ ├── create-custom-connected-account.use-case.ts │ │ │ │ │ │ ├── create-project.use-case.ts │ │ │ │ │ │ ├── delete-composio-connected-account.use-case.ts │ │ │ │ │ │ ├── delete-project.use-case.ts │ │ │ │ │ │ ├── fetch-project.use-case.ts │ │ │ │ │ │ ├── get-composio-toolkit.use-case.ts │ │ │ │ │ │ ├── list-composio-toolkits.use-case.ts │ │ │ │ │ │ ├── list-composio-tools.use-case.ts │ │ │ │ │ │ ├── list-projects.use-case.ts │ │ │ │ │ │ ├── remove-custom-mcp-server.use-case.ts │ │ │ │ │ │ ├── revert-to-live-workflow.use-case.ts │ │ │ │ │ │ ├── rotate-secret.use-case.ts │ │ │ │ │ │ ├── sync-connected-account.use-case.ts │ │ │ │ │ │ ├── update-draft-workflow.use-case.ts │ │ │ │ │ │ ├── update-live-workflow.use-case.ts │ │ │ │ │ │ ├── update-project-name.use-case.ts │ │ │ │ │ │ └── update-webhook-url.use-case.ts │ │ │ │ │ ├── recurring-job-rules/ │ │ │ │ │ │ ├── create-recurring-job-rule.use-case.ts │ │ │ │ │ │ ├── delete-recurring-job-rule.use-case.ts │ │ │ │ │ │ ├── fetch-recurring-job-rule.use-case.ts │ │ │ │ │ │ ├── list-recurring-job-rules.use-case.ts │ │ │ │ │ │ ├── toggle-recurring-job-rule.use-case.ts │ │ │ │ │ │ └── update-recurring-job-rule.use-case.ts │ │ │ │ │ └── scheduled-job-rules/ │ │ │ │ │ ├── create-scheduled-job-rule.use-case.ts │ │ │ │ │ ├── delete-scheduled-job-rule.use-case.ts │ │ │ │ │ ├── fetch-scheduled-job-rule.use-case.ts │ │ │ │ │ ├── list-scheduled-job-rules.use-case.ts │ │ │ │ │ └── update-scheduled-job-rule.use-case.ts │ │ │ │ └── workers/ │ │ │ │ ├── job-rules.worker.ts │ │ │ │ └── jobs.worker.ts │ │ │ ├── entities/ │ │ │ │ ├── common/ │ │ │ │ │ └── paginated-list.ts │ │ │ │ ├── errors/ │ │ │ │ │ ├── common.ts │ │ │ │ │ └── job-errors.ts │ │ │ │ └── models/ │ │ │ │ ├── api-key.ts │ │ │ │ ├── assistant-template.ts │ │ │ │ ├── composio-trigger-deployment.ts │ │ │ │ ├── composio-trigger-type.ts │ │ │ │ ├── conversation.ts │ │ │ │ ├── copilot.ts │ │ │ │ ├── data-source-doc.ts │ │ │ │ ├── data-source.ts │ │ │ │ ├── job.ts │ │ │ │ ├── project-member.ts │ │ │ │ ├── project.ts │ │ │ │ ├── recurring-job-rule.ts │ │ │ │ ├── scheduled-job-rule.ts │ │ │ │ ├── turn.ts │ │ │ │ └── user.ts │ │ │ ├── infrastructure/ │ │ │ │ ├── mongodb/ │ │ │ │ │ ├── drop-indexes.ts │ │ │ │ │ └── ensure-indexes.ts │ │ │ │ ├── policies/ │ │ │ │ │ └── redis.usage-quota.policy.ts │ │ │ │ ├── repositories/ │ │ │ │ │ ├── mongodb.api-keys.indexes.ts │ │ │ │ │ ├── mongodb.api-keys.repository.ts │ │ │ │ │ ├── mongodb.assistant-templates.repository.ts │ │ │ │ │ ├── mongodb.community-assistants.indexes.ts │ │ │ │ │ ├── mongodb.composio-trigger-deployments.indexes.ts │ │ │ │ │ ├── mongodb.composio-trigger-deployments.repository.ts │ │ │ │ │ ├── mongodb.conversations.indexes.ts │ │ │ │ │ ├── mongodb.conversations.repository.ts │ │ │ │ │ ├── mongodb.data-source-docs.indexes.ts │ │ │ │ │ ├── mongodb.data-source-docs.repository.ts │ │ │ │ │ ├── mongodb.data-sources.indexes.ts │ │ │ │ │ ├── mongodb.data-sources.repository.ts │ │ │ │ │ ├── mongodb.jobs.indexes.ts │ │ │ │ │ ├── mongodb.jobs.repository.ts │ │ │ │ │ ├── mongodb.project-members.indexes.ts │ │ │ │ │ ├── mongodb.project-members.repository.ts │ │ │ │ │ ├── mongodb.projects.indexes.ts │ │ │ │ │ ├── mongodb.projects.repository.ts │ │ │ │ │ ├── mongodb.recurring-job-rules.indexes.ts │ │ │ │ │ ├── mongodb.recurring-job-rules.repository.ts │ │ │ │ │ ├── mongodb.scheduled-job-rules.indexes.ts │ │ │ │ │ ├── mongodb.scheduled-job-rules.repository.ts │ │ │ │ │ ├── mongodb.shared-workflows.indexes.ts │ │ │ │ │ ├── mongodb.users.indexes.ts │ │ │ │ │ └── mongodb.users.repository.ts │ │ │ │ └── services/ │ │ │ │ ├── local.uploads-storage.service.ts │ │ │ │ ├── redis.cache.service.ts │ │ │ │ ├── redis.pub-sub.service.ts │ │ │ │ └── s3.uploads-storage.service.ts │ │ │ └── interface-adapters/ │ │ │ └── controllers/ │ │ │ ├── api-keys/ │ │ │ │ ├── create-api-key.controller.ts │ │ │ │ ├── delete-api-key.controller.ts │ │ │ │ └── list-api-keys.controller.ts │ │ │ ├── composio/ │ │ │ │ └── webhook/ │ │ │ │ └── handle-composio-webhook-request.controller.ts │ │ │ ├── composio-trigger-deployments/ │ │ │ │ ├── create-composio-trigger-deployment.controller.ts │ │ │ │ ├── delete-composio-trigger-deployment.controller.ts │ │ │ │ ├── fetch-composio-trigger-deployment.controller.ts │ │ │ │ ├── list-composio-trigger-deployments.controller.ts │ │ │ │ └── list-composio-trigger-types.controller.ts │ │ │ ├── conversations/ │ │ │ │ ├── create-cached-turn.controller.ts │ │ │ │ ├── create-playground-conversation.controller.ts │ │ │ │ ├── fetch-conversation.controller.ts │ │ │ │ ├── list-conversations.controller.ts │ │ │ │ ├── run-cached-turn.controller.ts │ │ │ │ └── run-turn.controller.ts │ │ │ ├── copilot/ │ │ │ │ ├── create-copilot-cached-turn.controller.ts │ │ │ │ └── run-copilot-cached-turn.controller.ts │ │ │ ├── data-sources/ │ │ │ │ ├── add-docs-to-data-source.controller.ts │ │ │ │ ├── create-data-source.controller.ts │ │ │ │ ├── delete-data-source.controller.ts │ │ │ │ ├── delete-doc-from-data-source.controller.ts │ │ │ │ ├── fetch-data-source.controller.ts │ │ │ │ ├── get-download-url-for-file.controller.ts │ │ │ │ ├── get-upload-urls-for-files.controller.ts │ │ │ │ ├── list-data-sources.controller.ts │ │ │ │ ├── list-docs-in-data-source.controller.ts │ │ │ │ ├── recrawl-web-data-source.controller.ts │ │ │ │ ├── toggle-data-source.controller.ts │ │ │ │ └── update-data-source.controller.ts │ │ │ ├── jobs/ │ │ │ │ ├── fetch-job.controller.ts │ │ │ │ └── list-jobs.controller.ts │ │ │ ├── projects/ │ │ │ │ ├── add-custom-mcp-server.controller.ts │ │ │ │ ├── create-composio-managed-connected-account.controller.ts │ │ │ │ ├── create-custom-connected-account.controller.ts │ │ │ │ ├── create-project.controller.ts │ │ │ │ ├── delete-composio-connected-account.controller.ts │ │ │ │ ├── delete-project.controller.ts │ │ │ │ ├── fetch-project.controller.ts │ │ │ │ ├── get-composio-toolkit.controller.ts │ │ │ │ ├── list-composio-toolkits.controller.ts │ │ │ │ ├── list-composio-tools.controller.ts │ │ │ │ ├── list-projects.controller.ts │ │ │ │ ├── remove-custom-mcp-server.controller.ts │ │ │ │ ├── revert-to-live-workflow.controller.ts │ │ │ │ ├── rotate-secret.controller.ts │ │ │ │ ├── sync-connected-account.controller.ts │ │ │ │ ├── update-draft-workflow.controller.ts │ │ │ │ ├── update-live-workflow.controller.ts │ │ │ │ ├── update-project-name.controller.ts │ │ │ │ └── update-webhook-url.controller.ts │ │ │ ├── recurring-job-rules/ │ │ │ │ ├── create-recurring-job-rule.controller.ts │ │ │ │ ├── delete-recurring-job-rule.controller.ts │ │ │ │ ├── fetch-recurring-job-rule.controller.ts │ │ │ │ ├── list-recurring-job-rules.controller.ts │ │ │ │ ├── toggle-recurring-job-rule.controller.ts │ │ │ │ └── update-recurring-job-rule.controller.ts │ │ │ └── scheduled-job-rules/ │ │ │ ├── create-scheduled-job-rule.controller.ts │ │ │ ├── delete-scheduled-job-rule.controller.ts │ │ │ ├── fetch-scheduled-job-rule.controller.ts │ │ │ ├── list-scheduled-job-rules.controller.ts │ │ │ └── update-scheduled-job-rule.controller.ts │ │ └── tsconfig.json │ ├── rowboatx/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app/ │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── components/ │ │ │ ├── ai-elements/ │ │ │ │ ├── artifact.tsx │ │ │ │ ├── canvas.tsx │ │ │ │ ├── chain-of-thought.tsx │ │ │ │ ├── checkpoint.tsx │ │ │ │ ├── code-block.tsx │ │ │ │ ├── confirmation.tsx │ │ │ │ ├── connection.tsx │ │ │ │ ├── context.tsx │ │ │ │ ├── controls.tsx │ │ │ │ ├── conversation.tsx │ │ │ │ ├── edge.tsx │ │ │ │ ├── image.tsx │ │ │ │ ├── inline-citation.tsx │ │ │ │ ├── loader.tsx │ │ │ │ ├── message.tsx │ │ │ │ ├── model-selector.tsx │ │ │ │ ├── node.tsx │ │ │ │ ├── open-in-chat.tsx │ │ │ │ ├── panel.tsx │ │ │ │ ├── plan.tsx │ │ │ │ ├── prompt-input.tsx │ │ │ │ ├── queue.tsx │ │ │ │ ├── reasoning.tsx │ │ │ │ ├── shimmer.tsx │ │ │ │ ├── sources.tsx │ │ │ │ ├── suggestion.tsx │ │ │ │ ├── task.tsx │ │ │ │ ├── tool.tsx │ │ │ │ ├── toolbar.tsx │ │ │ │ └── web-preview.tsx │ │ │ ├── app-sidebar.tsx │ │ │ ├── json-editor.css │ │ │ ├── json-editor.tsx │ │ │ ├── markdown-viewer.css │ │ │ ├── markdown-viewer.tsx │ │ │ ├── nav-main.tsx │ │ │ ├── nav-projects.tsx │ │ │ ├── nav-user.tsx │ │ │ ├── team-switcher.tsx │ │ │ ├── tiptap-markdown-editor.css │ │ │ ├── tiptap-markdown-editor.tsx │ │ │ └── ui/ │ │ │ ├── alert.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── button-group.tsx │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── carousel.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── dialog.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input-group.tsx │ │ │ ├── input.tsx │ │ │ ├── progress.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── sidebar.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── textarea.tsx │ │ │ └── tooltip.tsx │ │ ├── components.json │ │ ├── eslint.config.mjs │ │ ├── global.d.ts │ │ ├── hooks/ │ │ │ └── use-mobile.ts │ │ ├── lib/ │ │ │ └── utils.ts │ │ ├── next.config.ts │ │ ├── package.json │ │ ├── postcss.config.mjs │ │ ├── tsconfig.json │ │ └── types/ │ │ └── turndown.d.ts │ └── x/ │ ├── .gitignore │ ├── apps/ │ │ ├── main/ │ │ │ ├── .gitignore │ │ │ ├── bundle.mjs │ │ │ ├── forge.config.cjs │ │ │ ├── icons/ │ │ │ │ └── icon.icns │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── auth-server.ts │ │ │ │ ├── composio-handler.ts │ │ │ │ ├── ipc.ts │ │ │ │ ├── main.ts │ │ │ │ ├── oauth-handler.ts │ │ │ │ └── test-agent.ts │ │ │ └── tsconfig.json │ │ ├── preload/ │ │ │ ├── .gitignore │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ └── preload.ts │ │ │ └── tsconfig.json │ │ └── renderer/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── components.json │ │ ├── eslint.config.js │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── components/ │ │ │ │ ├── ai-elements/ │ │ │ │ │ ├── ask-human-request.tsx │ │ │ │ │ ├── context.tsx │ │ │ │ │ ├── conversation.tsx │ │ │ │ │ ├── file-path-card.tsx │ │ │ │ │ ├── markdown-code-override.tsx │ │ │ │ │ ├── message.tsx │ │ │ │ │ ├── permission-request.tsx │ │ │ │ │ ├── prompt-input.tsx │ │ │ │ │ ├── reasoning.tsx │ │ │ │ │ ├── shimmer.tsx │ │ │ │ │ ├── suggestions.tsx │ │ │ │ │ ├── tool.tsx │ │ │ │ │ └── web-search-result.tsx │ │ │ │ ├── background-task-detail.tsx │ │ │ │ ├── chat-button.tsx │ │ │ │ ├── chat-input-with-mentions.tsx │ │ │ │ ├── chat-message-attachments.tsx │ │ │ │ ├── chat-sidebar.tsx │ │ │ │ ├── composio-api-key-modal.tsx │ │ │ │ ├── connectors-popover.tsx │ │ │ │ ├── editor-toolbar.tsx │ │ │ │ ├── google-client-id-modal.tsx │ │ │ │ ├── graph-view.tsx │ │ │ │ ├── help-popover.tsx │ │ │ │ ├── markdown-editor.tsx │ │ │ │ ├── mention-popover.tsx │ │ │ │ ├── onboarding-modal.tsx │ │ │ │ ├── search-dialog.tsx │ │ │ │ ├── settings-dialog.tsx │ │ │ │ ├── sidebar-content.tsx │ │ │ │ ├── tab-bar.tsx │ │ │ │ ├── ui/ │ │ │ │ │ ├── alert-dialog.tsx │ │ │ │ │ ├── badge.tsx │ │ │ │ │ ├── button-group.tsx │ │ │ │ │ ├── button.tsx │ │ │ │ │ ├── collapsible.tsx │ │ │ │ │ ├── command.tsx │ │ │ │ │ ├── context-menu.tsx │ │ │ │ │ ├── dialog.tsx │ │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ │ ├── hover-card.tsx │ │ │ │ │ ├── input-group.tsx │ │ │ │ │ ├── input.tsx │ │ │ │ │ ├── popover.tsx │ │ │ │ │ ├── progress.tsx │ │ │ │ │ ├── select.tsx │ │ │ │ │ ├── separator.tsx │ │ │ │ │ ├── sheet.tsx │ │ │ │ │ ├── sidebar.tsx │ │ │ │ │ ├── skeleton.tsx │ │ │ │ │ ├── sonner.tsx │ │ │ │ │ ├── switch.tsx │ │ │ │ │ ├── textarea.tsx │ │ │ │ │ └── tooltip.tsx │ │ │ │ └── version-history-panel.tsx │ │ │ ├── contexts/ │ │ │ │ ├── file-card-context.tsx │ │ │ │ ├── sidebar-context.tsx │ │ │ │ └── theme-context.tsx │ │ │ ├── extensions/ │ │ │ │ ├── image-upload.tsx │ │ │ │ └── wiki-link.ts │ │ │ ├── global.d.ts │ │ │ ├── hooks/ │ │ │ │ ├── use-debounce.ts │ │ │ │ ├── use-mention-detection.ts │ │ │ │ ├── use-mobile.ts │ │ │ │ └── useOAuth.ts │ │ │ ├── index.css │ │ │ ├── lib/ │ │ │ │ ├── attachment-presentation.ts │ │ │ │ ├── chat-conversation.ts │ │ │ │ ├── file-utils.ts │ │ │ │ ├── google-client-id-store.ts │ │ │ │ ├── mention-files.ts │ │ │ │ ├── mention-highlights.ts │ │ │ │ ├── textarea-caret.ts │ │ │ │ ├── toast.ts │ │ │ │ ├── utils.ts │ │ │ │ └── wiki-links.ts │ │ │ ├── main.tsx │ │ │ └── styles/ │ │ │ └── editor.css │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── eslint.config.mts │ ├── package.json │ ├── packages/ │ │ ├── core/ │ │ │ ├── .gitignore │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent-schedule/ │ │ │ │ │ ├── repo.ts │ │ │ │ │ ├── runner.ts │ │ │ │ │ └── state-repo.ts │ │ │ │ ├── agents/ │ │ │ │ │ ├── repo.ts │ │ │ │ │ └── runtime.ts │ │ │ │ ├── application/ │ │ │ │ │ ├── assistant/ │ │ │ │ │ │ ├── agent.ts │ │ │ │ │ │ ├── instructions.ts │ │ │ │ │ │ ├── runtime-context.ts │ │ │ │ │ │ └── skills/ │ │ │ │ │ │ ├── background-agents/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── builtin-tools/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── create-presentations/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── deletion-guardrails/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── doc-collab/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── draft-emails/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── mcp-integration/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── meeting-prep/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── organize-files/ │ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ │ ├── slack/ │ │ │ │ │ │ │ ├── skill.ts │ │ │ │ │ │ │ └── tool-catalog.ts │ │ │ │ │ │ └── web-search/ │ │ │ │ │ │ └── skill.ts │ │ │ │ │ └── lib/ │ │ │ │ │ ├── builtin-tools.ts │ │ │ │ │ ├── bus.ts │ │ │ │ │ ├── command-executor.ts │ │ │ │ │ ├── exec-tool.ts │ │ │ │ │ ├── id-gen.ts │ │ │ │ │ └── message-queue.ts │ │ │ │ ├── auth/ │ │ │ │ │ ├── client-repo.ts │ │ │ │ │ ├── oauth-client.ts │ │ │ │ │ ├── provider-client-id.ts │ │ │ │ │ ├── providers.ts │ │ │ │ │ ├── repo.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── composio/ │ │ │ │ │ ├── client.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── repo.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── config/ │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── initConfigs.ts │ │ │ │ │ ├── note_creation_config.ts │ │ │ │ │ ├── security.ts │ │ │ │ │ └── strictness_analyzer.ts │ │ │ │ ├── di/ │ │ │ │ │ └── container.ts │ │ │ │ ├── index.ts │ │ │ │ ├── knowledge/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build_graph.ts │ │ │ │ │ ├── fireflies-client-factory.ts │ │ │ │ │ ├── google-client-factory.ts │ │ │ │ │ ├── granola/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── repo.ts │ │ │ │ │ │ ├── sync.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── graph_state.ts │ │ │ │ │ ├── knowledge_index.ts │ │ │ │ │ ├── limit_event_items.ts │ │ │ │ │ ├── note_creation_high.ts │ │ │ │ │ ├── note_creation_low.ts │ │ │ │ │ ├── note_creation_medium.ts │ │ │ │ │ ├── sync_calendar.ts │ │ │ │ │ ├── sync_fireflies.ts │ │ │ │ │ ├── sync_gmail.ts │ │ │ │ │ ├── version_history.ts │ │ │ │ │ └── welcome.md │ │ │ │ ├── mcp/ │ │ │ │ │ ├── mcp.ts │ │ │ │ │ └── repo.ts │ │ │ │ ├── models/ │ │ │ │ │ ├── models-dev.ts │ │ │ │ │ ├── models.ts │ │ │ │ │ └── repo.ts │ │ │ │ ├── pre_built/ │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── email-draft.md │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── meeting-prep.md │ │ │ │ │ ├── runner.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── runs/ │ │ │ │ │ ├── abort-registry.ts │ │ │ │ │ ├── bus.ts │ │ │ │ │ ├── lock.ts │ │ │ │ │ ├── repo.ts │ │ │ │ │ └── runs.ts │ │ │ │ ├── search/ │ │ │ │ │ └── search.ts │ │ │ │ ├── services/ │ │ │ │ │ ├── service_bus.ts │ │ │ │ │ └── service_logger.ts │ │ │ │ └── workspace/ │ │ │ │ ├── watcher.ts │ │ │ │ ├── wiki-link-rewrite.ts │ │ │ │ └── workspace.ts │ │ │ └── tsconfig.json │ │ └── shared/ │ │ ├── .gitignore │ │ ├── package.json │ │ ├── src/ │ │ │ ├── agent-schedule-state.ts │ │ │ ├── agent-schedule.ts │ │ │ ├── agent.ts │ │ │ ├── example.ts │ │ │ ├── index.ts │ │ │ ├── ipc.ts │ │ │ ├── llm-step-events.ts │ │ │ ├── mcp.ts │ │ │ ├── message.ts │ │ │ ├── models.ts │ │ │ ├── prefix-logger.ts │ │ │ ├── runs.ts │ │ │ ├── service-events.ts │ │ │ └── workspace.ts │ │ └── tsconfig.json │ ├── pnpm-workspace.yaml │ └── tsconfig.base.json ├── build-electron.sh ├── docker-compose.yml ├── google-setup.md └── start.sh