Initial commit

This commit is contained in:
Dynamitos
2026-06-09 11:08:04 +02:00
commit 67a4d0e0ec
148 changed files with 34596 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
{}
+1
View File
@@ -0,0 +1 @@
{}
+3
View File
@@ -0,0 +1,3 @@
[
"yolo"
]
File diff suppressed because one or more lines are too long
+33
View File
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}
+22
View File
@@ -0,0 +1,22 @@
{
"collapse-filter": true,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": true,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1,
"close": true
}
+105
View File
@@ -0,0 +1,105 @@
{
"claude": {
"id": "claude-code-acp",
"displayName": "Claude Code",
"apiKey": "",
"command": "claude-agent-acp",
"args": [],
"env": []
},
"codex": {
"id": "codex-acp",
"displayName": "Codex",
"apiKey": "",
"command": "codex-acp",
"args": [],
"env": []
},
"gemini": {
"id": "gemini-cli",
"displayName": "Gemini CLI",
"apiKey": "",
"command": "gemini",
"args": [
"--experimental-acp"
],
"env": []
},
"customAgents": [
{
"id": "llama3.1",
"displayName": "Llama3.1",
"command": "opencode",
"args": [
"acp"
],
"env": []
}
],
"defaultAgentId": "llama3.1",
"autoAllowPermissions": false,
"autoMentionActiveNote": true,
"enableSystemNotifications": true,
"debugMode": false,
"nodePath": "/usr/bin/node",
"exportSettings": {
"defaultFolder": "Agent Client",
"filenameTemplate": "agent_client_{date}_{time}",
"autoExportOnNewChat": false,
"autoExportOnCloseChat": false,
"openFileAfterExport": true,
"includeImages": true,
"imageLocation": "obsidian",
"imageCustomFolder": "Agent Client",
"frontmatterTag": "agent-client"
},
"windowsWslMode": false,
"sendMessageShortcut": "enter",
"chatViewLocation": "right-tab",
"displaySettings": {
"autoCollapseDiffs": false,
"diffCollapseThreshold": 10,
"maxNoteLength": 10000,
"maxSelectionLength": 10000,
"showEmojis": true,
"fontSize": null
},
"savedSessions": [
{
"sessionId": "ses_1ed40d9d9ffe6xBP145sV755Wk",
"agentId": "llama3.1",
"cwd": "/home/dynamitos/Documents/VNGame",
"title": "organize the following conversation into structure...",
"createdAt": "2026-05-10T16:36:35.882Z",
"updatedAt": "2026-05-10T16:36:35.882Z"
},
{
"sessionId": "ses_1ed41b31affepnZGfYVduv4th2",
"agentId": "llama3.1",
"cwd": "/home/dynamitos/Documents/VNGame",
"title": "organize the following conversation into structure...",
"createdAt": "2026-05-10T16:36:15.735Z",
"updatedAt": "2026-05-10T16:36:15.735Z"
},
{
"sessionId": "ses_1ed449357ffeiuGN2CvVk6WjzN",
"agentId": "llama3.1",
"cwd": "/home/dynamitos/Documents/VNGame",
"title": "I had the following conversation with you in the c...",
"createdAt": "2026-05-10T16:33:29.641Z",
"updatedAt": "2026-05-10T16:33:29.641Z"
}
],
"lastUsedModels": {
"llama3.1": "ollama/llama3.1"
},
"lastUsedModes": {},
"enableFloatingChat": false,
"floatingButtonImage": "",
"floatingWindowSize": {
"width": 400,
"height": 500
},
"floatingWindowPosition": null,
"floatingButtonPosition": null
}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
{"id":"agent-client","name":"Agent Client","version":"0.10.2","minAppVersion":"0.15.0","description":"Chat with AI agents via the Agent Client Protocol directly from your vault.","author":"RAIT-09","authorUrl":"https://github.com/RAIT-09","fundingUrl":"https://www.buymeacoffee.com/rait09","isDesktopOnly":true}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,34 @@
{
"version": 1,
"sessionId": "ses_1ed41b31affepnZGfYVduv4th2",
"agentId": "llama3.1",
"messages": [
{
"id": "673e192d-9b24-4c9c-9cc7-befda1c47782",
"role": "user",
"content": [
{
"type": "text_with_context",
"text": "organize the following conversation into structured markdown files",
"autoMentionContext": {
"noteName": "World",
"notePath": "World.md"
}
}
],
"timestamp": "2026-05-10T16:36:08.254Z"
},
{
"id": "753db995-8a6d-4588-943b-bb8ec0bafd36",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Here is an organized version of the conversation in a structured Markdown format:\n\n**Conversation Summary**\n=======================\n\nThis conversation revolves around organizing tasks and utilizing various tools to aid in coding and development tasks. It provides examples of when to use a todo list and how it can help with complex tasks.\n\n**Using Todo Lists**\n==================\n\n### Why Use Todo Lists?\n\n* For complex tasks that involve multiple steps\n* To ensure all requirements are met successfully\n* To be proactive in task management, demonstrating attentiveness and effectiveness\n\n### Task States and Management\n\n1. **Task States**: Track progress with these states:\n * `pending`: Task not yet started\n * `in_progress`: Currently working on (limit to ONE task at a time)\n * `completed`: Task finished successfully\n * `cancelled`: Task no longer needed\n2. **Task Management**:\n * Update task status in real-time as you work\n * Mark tasks complete immediately after finishing (don't batch completions)\n * Only have ONE task `in_progress` at any time\n * Complete current tasks before starting new ones\n * Cancel tasks that become irrelevant\n\n### Task Breakdown and Example Usage\n\n* Create specific, actionable items\n* Break complex tasks into smaller, manageable steps\n* Use clear, descriptive task names\n Example:\n\n User: Help me implement a dark mode toggle in my application settings.\n Assistant: Let's create a todo list to track this implementation.\n \n *Creates todo list with the following items:*\n 1. Create dark mode toggle component in Settings page\n 2. Add dark mode state management (context/store)\n 3. Implement CSS-in-JS styles for dark theme\n 4. Update existing components to support theme switching\n 5. Run tests and build process, addressing any failures or errors that occur\n\n**Tools for Task Management**\n==============================\n\n### Todo List Tool (`todos`)\n\n* Use this tool to create, manage, and track tasks\n* Input format: `{\"todos\": [{ \"content\": \"Task description\", \"priority\": \"optional\", \"status\": \"pending\"}]}`\n Example:\n\n `tasks todos add {\"content\": \"Implement dark mode toggle\", \"priority\": \"high\", \"status\": \"pending\"}`\n `tasks todos manage [{\"title\": \"Implement dark mode toggle\", \"description\": \"...\"}, ...]`\n\n### Other Tools\n\n* **Webfetch**: Fetches content from a specified URL\n Usage:\n \n * `webfetch url` (returns content in Markdown format by default)\n Example:\n\n User: Get the latest news about programming.\n Assistant: I'll help you with that.\n\n `webfetch https://www.example.com/programming-news`\n\n* **Read**: Reads a file"
}
],
"timestamp": "2026-05-10T16:36:09.550Z"
}
],
"savedAt": "2026-05-10T16:36:15.745Z"
}
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+489
View File
@@ -0,0 +1,489 @@
{
"userId": "84acb726-d954-4b6a-b87d-11a650f2b628",
"isPlusUser": false,
"plusLicenseKey": "",
"openAIApiKey": "",
"openAIOrgId": "",
"huggingfaceApiKey": "",
"cohereApiKey": "",
"anthropicApiKey": "",
"azureOpenAIApiKey": "",
"azureOpenAIApiInstanceName": "",
"azureOpenAIApiDeploymentName": "",
"azureOpenAIApiVersion": "",
"azureOpenAIApiEmbeddingDeploymentName": "",
"googleApiKey": "",
"openRouterAiApiKey": "",
"xaiApiKey": "",
"mistralApiKey": "",
"deepseekApiKey": "",
"amazonBedrockApiKey": "",
"amazonBedrockRegion": "",
"siliconflowApiKey": "",
"githubCopilotAccessToken": "",
"githubCopilotToken": "",
"githubCopilotTokenExpiresAt": 0,
"defaultChainType": "vault_qa",
"defaultModelKey": "qwen2.5:7b|ollama",
"embeddingModelKey": "nomic-embed-text|ollama",
"temperature": 0.1,
"maxTokens": 6000,
"contextTurns": 15,
"userSystemPrompt": "",
"openAIProxyBaseUrl": "",
"openAIEmbeddingProxyBaseUrl": "",
"stream": true,
"defaultSaveFolder": "copilot/copilot-conversations",
"defaultConversationTag": "copilot-conversation",
"autosaveChat": true,
"generateAIChatTitleOnSave": true,
"autoAddActiveContentToContext": true,
"defaultOpenArea": "view",
"defaultSendShortcut": "enter",
"customPromptsFolder": "copilot/copilot-custom-prompts",
"indexVaultToVectorStore": "ON MODE SWITCH",
"qaExclusions": "copilot",
"qaInclusions": "",
"chatNoteContextPath": "",
"chatNoteContextTags": [],
"enableIndexSync": true,
"debug": false,
"enableEncryption": false,
"maxSourceChunks": 30,
"enableInlineCitations": true,
"groqApiKey": "",
"activeModels": [
{
"name": "copilot-plus-flash",
"provider": "copilot-plus",
"enabled": true,
"isBuiltIn": true,
"core": true,
"plusExclusive": true,
"projectEnabled": false,
"capabilities": [
"vision"
],
"maxTokens": 100,
"temperature": 0
},
{
"name": "google/gemini-2.5-flash",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"projectEnabled": true,
"capabilities": [
"vision"
],
"temperature": 0,
"maxTokens": 100
},
{
"name": "gpt-5.4",
"provider": "openai",
"enabled": false,
"isBuiltIn": true,
"core": true,
"capabilities": [
"vision"
]
},
{
"name": "gpt-5-mini",
"provider": "openai",
"enabled": false,
"isBuiltIn": true,
"core": true,
"capabilities": [
"vision"
]
},
{
"name": "qwen2.5:7b",
"provider": "ollama",
"enabled": true,
"isBuiltIn": false,
"baseUrl": "",
"apiKey": "",
"isEmbeddingModel": false,
"capabilities": [],
"stream": true,
"displayName": "Qwen 2.5 7B",
"numCtx": 16384,
"maxTokens": 23200
},
{
"name": "claude-sonnet-4-6",
"provider": "anthropic",
"enabled": false,
"isBuiltIn": true,
"capabilities": [
"reasoning",
"vision"
]
},
{
"name": "gemini-3.1-flash-lite-preview",
"provider": "google",
"enabled": false,
"isBuiltIn": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "gemini-2.5-flash",
"provider": "google",
"enabled": false,
"isBuiltIn": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "google/gemini-3-flash-preview",
"provider": "openrouterai",
"enabled": false,
"isBuiltIn": true,
"capabilities": [
"reasoning",
"vision"
]
},
{
"name": "google/gemini-3.1-pro-preview",
"provider": "openrouterai",
"enabled": false,
"isBuiltIn": true,
"capabilities": [
"reasoning",
"vision"
]
},
{
"name": "google/gemini-2.5-pro",
"provider": "openrouterai",
"enabled": false,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "openai/gpt-5.4",
"provider": "openrouterai",
"enabled": false,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "openai/gpt-5-mini",
"provider": "openrouterai",
"enabled": false,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "grok-4-1-fast",
"provider": "xai",
"enabled": false,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "x-ai/grok-4.1-fast",
"provider": "openrouterai",
"enabled": false,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "gpt-4.1",
"provider": "openai",
"enabled": false,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "gpt-4.1-mini",
"provider": "openai",
"enabled": false,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "claude-opus-4-6",
"provider": "anthropic",
"enabled": false,
"isBuiltIn": true,
"capabilities": [
"reasoning",
"vision"
]
},
{
"name": "gemini-3-flash-preview",
"provider": "google",
"enabled": false,
"isBuiltIn": true,
"capabilities": [
"reasoning",
"vision"
]
},
{
"name": "gemini-3.1-pro-preview",
"provider": "google",
"enabled": false,
"isBuiltIn": true,
"capabilities": [
"reasoning",
"vision"
]
},
{
"name": "gemini-2.5-pro",
"provider": "google",
"enabled": false,
"isBuiltIn": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "deepseek-chat",
"provider": "deepseek",
"enabled": false,
"isBuiltIn": true
},
{
"name": "deepseek-reasoner",
"provider": "deepseek",
"enabled": false,
"isBuiltIn": true,
"capabilities": [
"reasoning"
]
},
{
"name": "deepseek-ai/DeepSeek-V3",
"provider": "siliconflow",
"enabled": false,
"isBuiltIn": false,
"baseUrl": "https://api.siliconflow.com/v1"
},
{
"name": "deepseek-ai/DeepSeek-R1",
"provider": "siliconflow",
"enabled": false,
"isBuiltIn": false,
"baseUrl": "https://api.siliconflow.com/v1",
"capabilities": [
"reasoning"
]
}
],
"activeEmbeddingModels": [
{
"name": "copilot-plus-small",
"provider": "copilot-plus",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"plusExclusive": true
},
{
"name": "copilot-plus-large",
"provider": "copilot-plus-jina",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"plusExclusive": true,
"believerExclusive": true,
"dimensions": 1024
},
{
"name": "copilot-plus-multilingual",
"provider": "copilot-plus-jina",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"plusExclusive": true,
"dimensions": 512
},
{
"name": "openai/text-embedding-3-small",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true
},
{
"name": "text-embedding-3-small",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true
},
{
"name": "gemini-embedding-001",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true
},
{
"name": "gemini-embedding-2-preview",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true
},
{
"name": "Qwen/Qwen3-Embedding-0.6B",
"provider": "siliconflow",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"baseUrl": "https://api.siliconflow.com/v1"
},
{
"name": "text-embedding-3-large",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
},
{
"name": "embed-multilingual-light-v3.0",
"provider": "cohereai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
},
{
"name": "text-embedding-004",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
},
{
"name": "azure-openai",
"provider": "azure openai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
},
{
"name": "nomic-embed-text",
"provider": "ollama",
"enabled": true,
"isBuiltIn": false,
"baseUrl": "",
"apiKey": "",
"isEmbeddingModel": true,
"capabilities": [],
"displayName": "Nomic Embed",
"enableCors": false
}
],
"embeddingRequestsPerMin": 60,
"embeddingBatchSize": 16,
"disableIndexOnMobile": true,
"showSuggestedPrompts": true,
"showRelevantNotes": true,
"numPartitions": 1,
"lexicalSearchRamLimit": 100,
"promptUsageTimestamps": {},
"promptSortStrategy": "timestamp",
"chatHistorySortStrategy": "recent",
"projectListSortStrategy": "recent",
"defaultConversationNoteName": "{$topic}@{$date}_{$time}",
"inlineEditCommands": [],
"projectList": [],
"lastDismissedVersion": null,
"passMarkdownImages": true,
"enableAutonomousAgent": true,
"enableCustomPromptTemplating": true,
"enableSemanticSearchV3": true,
"enableSelfHostMode": false,
"enableMiyo": false,
"miyoSearchAll": false,
"selfHostModeValidatedAt": null,
"selfHostValidationCount": 0,
"selfHostUrl": "",
"selfHostApiKey": "",
"miyoServerUrl": "",
"selfHostSearchProvider": "firecrawl",
"firecrawlApiKey": "",
"perplexityApiKey": "",
"supadataApiKey": "",
"enableLexicalBoosts": true,
"suggestedDefaultCommands": true,
"autonomousAgentMaxIterations": 4,
"autonomousAgentEnabledToolIds": [
"localSearch",
"readNote",
"webSearch",
"pomodoro",
"youtubeTranscription",
"writeFile",
"editFile",
"updateMemory"
],
"reasoningEffort": "low",
"verbosity": "medium",
"memoryFolderName": "copilot/memory",
"enableRecentConversations": true,
"maxRecentConversations": 30,
"enableSavedMemory": true,
"quickCommandIncludeNoteContext": true,
"autoIncludeTextSelection": false,
"autoAddSelectionToContext": false,
"autoAcceptEdits": true,
"diffViewMode": "split",
"userSystemPromptsFolder": "copilot/system-prompts",
"defaultSystemPromptTitle": "",
"autoCompactThreshold": 128000,
"convertedDocOutputFolder": ""
}
File diff suppressed because one or more lines are too long
+13
View File
@@ -0,0 +1,13 @@
{
"id": "copilot",
"name": "Copilot",
"version": "3.2.8",
"minAppVersion": "0.15.0",
"description": "Your AI Copilot: Chat with Your Second Brain, Learn Faster, Work Smarter.",
"author": "Logan Yang",
"authorUrl": "https://twitter.com/logancyang",
"fundingUrl": {
"Buy Me a Coffee": "https://www.buymeacoffee.com/logancyang",
"GitHub Sponsor": "https://github.com/sponsors/logancyang"
}
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
{
"appliedMigrations": [
"tokens-to-secretstorage-v1"
]
}
+17
View File
@@ -0,0 +1,17 @@
{
"pluginList": [],
"pluginSubListFrozenVersion": [],
"themesList": [],
"updateAtStartup": true,
"updateThemesAtStartup": true,
"enableAfterInstall": true,
"loggingEnabled": false,
"loggingPath": "BRAT-log",
"loggingVerboseEnabled": false,
"debuggingMode": false,
"notificationsEnabled": true,
"globalTokenName": "",
"personalAccessToken": "",
"selectLatestPluginVersionByDefault": false,
"allowIncompatiblePlugins": false
}
File diff suppressed because one or more lines are too long
+14
View File
@@ -0,0 +1,14 @@
{
"id": "obsidian42-brat",
"name": "BRAT",
"version": "2.0.4",
"minAppVersion": "1.11.4",
"description": "Easily install a beta version of a plugin for testing.",
"author": "TfTHacker",
"authorUrl": "https://github.com/TfTHacker/obsidian42-brat",
"helpUrl": "https://tfthacker.com/BRAT",
"isDesktopOnly": false,
"fundingUrl": {
"Visit my site": "https://tfthacker.com"
}
}
+152
View File
@@ -0,0 +1,152 @@
.brat-modal .modal-button-container {
margin-top: 5px;
}
.brat-modal .disabled-setting {
opacity: 0.5;
}
.brat-modal .disabled-setting:hover {
cursor: not-allowed;
}
/* Input validation styles */
.brat-settings .valid-input,
.brat-modal .valid-repository {
border-color: var(--color-green);
}
.brat-settings .invalid-input,
.brat-modal .invalid-repository {
border-color: var(--color-red);
}
.brat-settings .validation-error,
.brat-modal .validation-error {
border-color: var(--color-orange);
}
/* Version selector */
.brat-version-selector {
width: 100%;
max-width: 400px;
justify-content: left;
}
.brat-token-input {
min-width: 33%;
}
/* Token info container styles */
.brat-token-info {
margin-top: 8px;
font-size: 0.8em;
padding: 8px;
border-radius: 4px;
background-color: var(--background-secondary);
}
/* Token status indicators */
.brat-token-info.valid,
.brat-token-status.valid {
color: var(--color-green);
}
.brat-token-info.invalid,
.brat-token-status.invalid {
color: var(--color-red);
}
.brat-token-info.valid {
border-left: 3px solid var(--color-green);
}
.brat-token-info.invalid {
border-left: 3px solid var(--color-red);
}
/* Token details and status */
.brat-token-status {
margin-bottom: 4px;
}
.brat-token-details {
margin-top: 4px;
color: var(--text-muted);
}
/* Token warnings */
.brat-token-warning {
color: var(--color-orange);
margin-top: 4px;
}
/* Token additional info */
.brat-token-scopes,
.brat-token-rate {
color: var(--text-muted);
margin-top: 2px;
}
/* Flex break utility */
.brat-modal .break {
flex-basis: 100%;
height: 0;
}
/* Validation status */
.brat-modal .validation-status-error {
color: var(--text-error);
}
.brat-modal .validation-status {
margin-top: 0.5em;
margin-bottom: 0.5em;
font-size: 0.8em;
text-align: left;
}
.confirm-modal .ok-button {
margin-right: 10px;
margin-top: 20px;
}
/* Hide filtered plugin items */
.brat-plugin-item[hidden] {
display: none !important;
}
/* Hide filtered theme items */
.brat-theme-item[hidden] {
display: none !important;
}
/* Filter and button layout */
.brat-filter-and-button {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin: 0.75em 0;
}
.brat-filter-input {
max-width: 300px;
padding: 4px 8px;
border: 1px solid var(--background-modifier-border);
border-radius: 4px;
background-color: var(--background-secondary);
color: var(--text-normal);
}
.brat-filter-input:focus {
outline: none;
border-color: var(--interactive-accent);
}
.brat-filter-and-button .setting-item {
border: none;
padding: 0;
}
.brat-filter-and-button .setting-item-control {
justify-content: flex-end;
}
+273
View File
@@ -0,0 +1,273 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/main.ts
var main_exports = {};
__export(main_exports, {
default: () => main_default
});
module.exports = __toCommonJS(main_exports);
// src/service/kebabCase.ts
function kebabCase(str) {
return str.replace(/[^a-zA-Z0-9 ]/g, " ").replace(/\s+/g, "-").toLocaleLowerCase();
}
// src/Ollama.ts
var import_obsidian2 = require("obsidian");
// src/OllamaSettingTab.ts
var import_obsidian = require("obsidian");
// src/data/defaultSettings.ts
var DEFAULT_SETTINGS = {
ollamaUrl: "http://localhost:11434",
commands: [
{
name: "Summarize selection",
prompt: "Act as a writer. Summarize the text in a view sentences highlighting the key takeaways. Output only the text and nothing else, do not chat, no preamble, get to the point.",
model: "llama2"
},
{
name: "Explain selection",
prompt: "Act as a writer. Explain the text in simple and concise terms keeping the same meaning. Output only the text and nothing else, do not chat, no preamble, get to the point.",
model: "llama2"
},
{
name: "Expand selection",
prompt: "Act as a writer. Expand the text by adding more details while keeping the same meaning. Output only the text and nothing else, do not chat, no preamble, get to the point.",
model: "llama2"
},
{
name: "Rewrite selection (formal)",
prompt: "Act as a writer. Rewrite the text in a more formal style while keeping the same meaning. Output only the text and nothing else, do not chat, no preamble, get to the point.",
model: "llama2"
},
{
name: "Rewrite selection (casual)",
prompt: "Act as a writer. Rewrite the text in a more casual style while keeping the same meaning. Output only the text and nothing else, do not chat, no preamble, get to the point.",
model: "llama2"
},
{
name: "Rewrite selection (active voice)",
prompt: "Act as a writer. Rewrite the text in with an active voice while keeping the same meaning. Output only the text and nothing else, do not chat, no preamble, get to the point.",
model: "llama2"
},
{
name: "Rewrite selection (bullet points)",
prompt: "Act as a writer. Rewrite the text into bullet points while keeping the same meaning. Output only the text and nothing else, do not chat, no preamble, get to the point.",
model: "llama2"
},
{
name: "Caption selection",
prompt: "Act as a writer. Create only one single heading for the whole text that is giving a good understanding of what the reader can expect. Output only the caption and nothing else, do not chat, no preamble, get to the point. Your format should be ## Caption.",
model: "llama2"
}
]
};
// src/OllamaSettingTab.ts
var OllamaSettingTab = class extends import_obsidian.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
const { containerEl } = this;
containerEl.empty();
new import_obsidian.Setting(containerEl).setName("Ollama URL").setDesc("URL of the Ollama server (e.g. http://localhost:11434)").addText(
(text) => text.setPlaceholder("http://localhost:11434").setValue(this.plugin.settings.ollamaUrl).onChange(async (value) => {
this.plugin.settings.ollamaUrl = value;
await this.plugin.saveSettings();
})
);
containerEl.createEl("h3", { text: "Commands" });
const newCommand = {
name: "",
prompt: "",
model: "",
temperature: void 0
};
new import_obsidian.Setting(containerEl).setName("New command name").addText((text) => {
text.setPlaceholder("e.g. Summarize selection");
text.onChange(async (value) => {
newCommand.name = value;
});
});
new import_obsidian.Setting(containerEl).setName("New command prompt").addTextArea((text) => {
text.setPlaceholder(
"e.g. Act as a writer. Summarize the text in a view sentences highlighting the key takeaways. Output only the text and nothing else, do not chat, no preamble, get to the point."
);
text.onChange(async (value) => {
newCommand.prompt = value;
});
});
new import_obsidian.Setting(containerEl).setName("New command model").addText((text) => {
text.setPlaceholder("e.g. llama2");
text.onChange(async (value) => {
newCommand.model = value;
});
});
new import_obsidian.Setting(containerEl).setName("New command temperature").addSlider((slider) => {
slider.setLimits(0, 1, 0.01);
slider.setValue(0.2);
slider.onChange(async (value) => {
newCommand.temperature = value;
});
});
new import_obsidian.Setting(containerEl).setDesc("This requires a reload of obsidian to take effect.").addButton(
(button) => button.setButtonText("Add Command").onClick(async () => {
if (!newCommand.name) {
new import_obsidian.Notice("Please enter a name for the command.");
return;
}
if (this.plugin.settings.commands.find(
(command) => command.name === newCommand.name
)) {
new import_obsidian.Notice(
`A command with the name "${newCommand.name}" already exists.`
);
return;
}
if (!newCommand.prompt) {
new import_obsidian.Notice("Please enter a prompt for the command.");
return;
}
if (!newCommand.model) {
new import_obsidian.Notice("Please enter a model for the command.");
return;
}
this.plugin.settings.commands.push(newCommand);
await this.plugin.saveSettings();
this.display();
})
);
containerEl.createEl("h4", { text: "Existing Commands" });
this.plugin.settings.commands.forEach((command) => {
new import_obsidian.Setting(containerEl).setName(command.name).setDesc(`${command.prompt} - ${command.model}`).addButton(
(button) => button.setButtonText("Remove").onClick(async () => {
this.plugin.settings.commands = this.plugin.settings.commands.filter(
(c) => c.name !== command.name
);
await this.plugin.saveSettings();
this.display();
})
);
});
containerEl.createEl("h4", { text: "Reset Commands" });
new import_obsidian.Setting(containerEl).setName("Update Commands").setDesc(
"Update commands to the default commands. This cannot be undone and will overwrite some commands by matching names. This requires a reload of obsidian to take effect."
).addButton((button) => {
button.setWarning();
return button.setButtonText("Update").onClick(async () => {
DEFAULT_SETTINGS.commands.forEach((command) => {
const existingCommand = this.plugin.settings.commands.find(
(c) => c.name === command.name
);
if (existingCommand) {
existingCommand.prompt = command.prompt;
existingCommand.model = command.model;
existingCommand.temperature = command.temperature;
} else {
this.plugin.settings.commands.push(command);
}
});
await this.plugin.saveSettings();
this.display();
});
});
new import_obsidian.Setting(containerEl).setName("Reset Commands").setDesc(
"Reset all commands to the default commands. This cannot be undone and will delete all your custom commands. This requires a reload of obsidian to take effect."
).addButton((button) => {
button.setWarning();
return button.setButtonText("Reset").onClick(async () => {
this.plugin.settings.commands = DEFAULT_SETTINGS.commands;
await this.plugin.saveSettings();
this.display();
});
});
}
};
// src/Ollama.ts
var Ollama = class extends import_obsidian2.Plugin {
async onload() {
await this.loadSettings();
this.addPromptCommands();
this.addSettingTab(new OllamaSettingTab(this.app, this));
}
addPromptCommands() {
this.settings.commands.forEach((command) => {
this.addCommand({
id: kebabCase(command.name),
name: command.name,
editorCallback: (editor) => {
const selection = editor.getSelection();
const text = selection ? selection : editor.getValue();
const cursorPosition = editor.getCursor();
editor.replaceRange("\u270D\uFE0F", cursorPosition);
(0, import_obsidian2.requestUrl)({
method: "POST",
url: `${this.settings.ollamaUrl}/api/generate`,
body: JSON.stringify({
prompt: command.prompt + "\n\n" + text,
model: command.model,
options: {
temperature: command.temperature || 0.2
}
})
}).then((response) => {
const steps = response.text.split("\n").filter((step) => step && step.length > 0).map((step) => JSON.parse(step));
editor.replaceRange(
steps.map((step) => step.response).join("").trim(),
cursorPosition,
{
ch: cursorPosition.ch + 1,
line: cursorPosition.line
}
);
}).catch((error) => {
new import_obsidian2.Notice(`Error while generating text: ${error.message}`);
editor.replaceRange("", cursorPosition, {
ch: cursorPosition.ch + 1,
line: cursorPosition.line
});
});
}
});
});
}
onunload() {
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
};
// src/main.ts
var main_default = Ollama;
/* nosourcemap */
+10
View File
@@ -0,0 +1,10 @@
{
"id": "ollama",
"name": "Ollama",
"version": "0.0.1",
"minAppVersion": "0.15.0",
"description": "This is a plugin for Obsidian that enables the usage of Ollama within your notes.",
"author": "hinterdupfinger",
"authorUrl": "https://github.com/hinterdupfinger",
"isDesktopOnly": true
}
+206
View File
@@ -0,0 +1,206 @@
{
"version": 51,
"providers": [
{
"id": "ollama",
"presetType": "ollama",
"apiType": "openai-compatible",
"baseUrl": "http://127.0.0.1:11434",
"apiKey": ""
}
],
"chatModels": [
{
"providerId": "ollama",
"id": "ollama/qwen2.5:7b",
"model": "qwen2.5:7b",
"name": "qwen2.5:7b",
"modalities": [
"text"
],
"toolType": "none",
"gptTools": {
"webSearch": {
"enabled": false
}
},
"reasoningType": "none",
"enable": true
}
],
"embeddingModels": [
{
"providerId": "ollama",
"id": "ollama/nomic-embed-text:latest",
"model": "nomic-embed-text:latest",
"name": "nomic-embed-text:latest",
"dimension": 768,
"nativeDimension": 768
}
],
"chatModelId": "ollama/qwen2.5:7b",
"chatTitleModelId": "ollama/qwen2.5:7b",
"embeddingModelId": "ollama/nomic-embed-text:latest",
"systemPrompt": "",
"ragOptions": {
"enabled": true,
"chunkSize": 1000,
"thresholdTokens": 20000,
"minSimilarity": 0,
"limit": 10,
"excludePatterns": [],
"includePatterns": [],
"indexPdf": true,
"autoUpdateEnabled": true,
"autoUpdateIntervalHours": 0,
"lastAutoUpdateAt": 1778518294409
},
"mcp": {
"servers": [],
"builtinToolOptions": {}
},
"webSearch": {
"providers": [],
"common": {
"resultSize": 10,
"searchTimeoutMs": 120000,
"scrapeTimeoutMs": 20000
}
},
"skills": {
"disabledSkillIds": []
},
"yolo": {
"baseDir": "YOLO"
},
"debug": {
"logModelRequestContext": false
},
"chatOptions": {
"includeCurrentFileContent": true,
"mentionDisplayMode": "inline",
"mentionContextMode": "light",
"chatApplyMode": "review-required",
"chatTitlePrompt": "",
"chatMode": "chat",
"agentModeWarningConfirmed": false,
"reasoningLevelByModelId": {},
"historyArchiveEnabled": true,
"historyArchiveThreshold": 50,
"autoContextCompactionEnabled": false,
"autoContextCompactionThresholdMode": "tokens",
"autoContextCompactionThresholdTokens": 24000,
"autoContextCompactionThresholdRatio": 0.8,
"imageReadingEnabled": true,
"imageCompressionEnabled": true,
"imageCompressionQuality": 85,
"externalImageFetchEnabled": false
},
"notificationOptions": {
"enabled": false,
"channel": "sound",
"timing": "when-unfocused",
"notifyOnApprovalRequired": true,
"notifyOnTaskCompleted": true
},
"continuationOptions": {
"continuationModelId": "",
"enableSmartSpace": true,
"enableSelectionChat": true,
"persistSelectionHighlight": true,
"manualContextEnabled": false,
"manualContextFolders": [],
"referenceRuleFolders": [],
"knowledgeBaseFolders": [],
"stream": true,
"maxContinuationChars": 8000,
"enableTabCompletion": false,
"tabCompletionModelId": "",
"tabCompletionOptions": {
"idleTriggerEnabled": false,
"autoTriggerDelayMs": 3000,
"autoTriggerCooldownMs": 15000,
"triggerDelayMs": 3000,
"minContextLength": 20,
"contextRange": 4000,
"maxSuggestionLength": 2000,
"temperature": 0.5,
"requestTimeoutMs": 12000
},
"tabCompletionTriggers": [
{
"id": "sentence-end-comma",
"type": "string",
"pattern": ", ",
"enabled": true
},
{
"id": "sentence-end-chinese-comma",
"type": "string",
"pattern": "",
"enabled": true
},
{
"id": "sentence-end-colon",
"type": "string",
"pattern": ": ",
"enabled": true
},
{
"id": "sentence-end-chinese-colon",
"type": "string",
"pattern": "",
"enabled": true
},
{
"id": "newline",
"type": "regex",
"pattern": "\\n$",
"enabled": true
},
{
"id": "list-item",
"type": "regex",
"pattern": "(?:^|\\n)[-*+]\\s$",
"enabled": true
}
],
"tabCompletionSystemPrompt": "Your job is to predict the most logical text that should be written at the location of the <mask/>. Your answer can be either code, a single word, or multiple sentences. Your answer must be in the same language as the text that is already there.\n\nAdditional constraints:\n{{tab_completion_constraints}}\n\nOutput only the text that should appear at the <mask/>. Do not include explanations, labels, or formatting.",
"tabCompletionConstraints": "",
"tabCompletionLengthPreset": "medium",
"smartSpaceTriggerMode": "single-space",
"smartSpaceUseWebSearch": false,
"smartSpaceUseUrlContext": false,
"enableQuickAsk": true,
"quickAskTrigger": "@",
"quickAskMode": "chat",
"quickAskAutoDockToTopRight": true,
"quickAskContextBeforeChars": 5000,
"quickAskContextAfterChars": 2000,
"streamFallbackRecoveryEnabled": true,
"primaryRequestTimeoutMs": 60000
},
"assistants": [
{
"id": "__default_agent__",
"name": "Default",
"description": "Default editing agent for sidebar chat.",
"systemPrompt": "",
"modelId": "ollama/qwen2.5:7b",
"persona": "balanced",
"enableTools": true,
"includeBuiltinTools": true,
"enabledToolNames": [],
"toolPreferences": {},
"enabledSkills": [],
"skillPreferences": {},
"createdAt": 1778518156827,
"updatedAt": 1778518242609
}
],
"currentAssistantId": "__default_agent__",
"__meta": {
"updatedAt": 1778518302206,
"deviceId": "513eb0fd-60a0-459a-a9d8-bdfbdee0f714"
}
}
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "yolo",
"name": "YOLO",
"version": "1.5.7.5",
"minAppVersion": "1.8.0",
"description": "Agent-native AI assistant — chat, write, search, orchestrate, all in one.",
"author": "Lapix0x0",
"authorUrl": "https://github.com/Lapis0x0",
"fundingUrl": "https://afdian.com/a/lapis0x0",
"isDesktopOnly": false
}
@@ -0,0 +1,4 @@
{
"version": "pglite-runtime-0.4.4-r1",
"readyAt": 1778518291420
}
@@ -0,0 +1,29 @@
{
"runtimeVersion": "pglite-runtime-0.4.4-r1",
"files": [
{
"name": "pglite.data",
"size": 5289109,
"sha256": "4507d476e23421aab8201ee9d58059c53736db40e1bfe5d14bb86124e59a116d",
"url": "https://github.com/Lapis0x0/obsidian-yolo/releases/download/pglite-runtime-0.4.4-r1/pglite.data"
},
{
"name": "pglite.wasm",
"size": 8739902,
"sha256": "551cf9bcfb34e4b0ea118b8e658b5e3e85b20d620a6f365239ce02f32ffc20e9",
"url": "https://github.com/Lapis0x0/obsidian-yolo/releases/download/pglite-runtime-0.4.4-r1/pglite.wasm"
},
{
"name": "initdb.wasm",
"size": 169969,
"sha256": "13ed8475e33d092d03e2378d6b78d52da0c4d497b1df2c2a62d33fe32ceb67e2",
"url": "https://github.com/Lapis0x0/obsidian-yolo/releases/download/pglite-runtime-0.4.4-r1/initdb.wasm"
},
{
"name": "vector.tar.gz",
"size": 46052,
"sha256": "3d968eee93191a2a0073b8c18a773c8aa315f4d4b4734cf5ff5e1fe6d100485b",
"url": "https://github.com/Lapis0x0/obsidian-yolo/releases/download/pglite-runtime-0.4.4-r1/vector.tar.gz"
}
]
}
File diff suppressed because it is too large Load Diff
+262
View File
@@ -0,0 +1,262 @@
{
"main": {
"id": "57b8444dba9f22e6",
"type": "split",
"children": [
{
"id": "db826df6282b4fa4",
"type": "tabs",
"children": [
{
"id": "00c99d665bea087c",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Blessing Ideas.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Blessing Ideas"
}
},
{
"id": "0b676211187f3b77",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Mora.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Mora"
}
},
{
"id": "410cd755824f26ee",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "End.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "End"
}
},
{
"id": "27b7bbc01da3cac1",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Blessing Ideas.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Blessing Ideas"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "f47f1d3ffdee43ee",
"type": "split",
"children": [
{
"id": "126cd60656d56cec",
"type": "tabs",
"children": [
{
"id": "55c3d4069420e861",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "85504bd9566f86fc",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "73090fff461d22fb",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "43810faef7a93b26",
"type": "split",
"children": [
{
"id": "4ebf036f1e2e4112",
"type": "tabs",
"children": [
{
"id": "7c42c5355f223394",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "Blessings.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for Blessings"
}
},
{
"id": "1544e92d4b41a7e4",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "Blessings.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from Blessings"
}
},
{
"id": "3e3c362bcf215bfa",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "36072a2d0e01b06d",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "All properties"
}
},
{
"id": "5dca4108df73a383",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "Blessing Ideas.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of Blessing Ideas"
}
},
{
"id": "cfa1d349e502f4df",
"type": "leaf",
"state": {
"type": "smtcmp-chat-view",
"state": {},
"icon": "wand-sparkles",
"title": "新对话"
}
}
],
"currentTab": 5
}
],
"direction": "horizontal",
"width": 470.5
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"bases:Create new base": false,
"obsidian42-brat:BRAT": false,
"agent-client:Open agent client": false,
"copilot:Open Copilot Chat": false,
"yolo:Open chat": false
}
},
"active": "cfa1d349e502f4df",
"lastOpenFiles": [
"YOLO",
"copilot/copilot-conversations/Final_Event_Alternatives@20260510_201609.md",
"Blessings.md",
"Conversation.md",
"End.md",
"Gameplay Mechanics.md",
"Mora.md",
"World.md",
"Blessing Ideas.md",
"Basics.md",
"Untitled.base",
"copilot/copilot-conversations/Conversation_Restructuring_Plan@20260510_201609.md",
"copilot/copilot-conversations/Error_in_File_Splitting_Request@20260510_192223.md",
"copilot/copilot-conversations",
"copilot/Copilot-Indexed-Files-10-05-2026.md",
"copilot",
"Welcome.md"
]
}