obsidian-agent-fleet 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Denis Berekchiyan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -14,19 +14,25 @@ Agent Fleet is an Obsidian plugin that lets you build, configure, and run AI age
14
14
 
15
15
  🤖 **AI Agents** — Create specialized agents with system prompts, skills, permissions, heartbeat schedules, and memory. Each agent is a folder of markdown files you fully own and control.
16
16
 
17
- 💬 **Interactive Chat** — Dock a chat panel anywhere in Obsidian. Switch between agents. Attach documents and images. Send follow-up messages while the agent works.
17
+ 📚 **Wiki Keeper** — Turn any folder in your vault into a self-maintaining wiki. Drop sources into an inbox, point at existing note folders as passive watched sources, and a scoped keeper agent ingests them nightly into an interlinked `_topics/` tree with cross-references, citations, and a log. Scales from one whole-vault keeper to many project-scoped instances. Any other agent (e.g. a PM agent) can reference a keeper's scope and query or contribute to it. See the [Wiki Keeper Guide](WIKI_KEEPER_GUIDE.md).
18
+
19
+ 💬 **Interactive Chat** — Dock a chat panel anywhere in Obsidian. Switch between agents. Attach documents and images. Send follow-up messages while the agent works. **Inline threads** under any assistant reply let you tangent without polluting the main thread — each thread has its own Claude session, its own context, its own stats.
20
+
21
+ 📊 **Live chat stats** — Compact terminal-style strip under the composer shows the model and a context-usage bar so you always know where you stand on context.
18
22
 
19
23
  📡 **Slack & Telegram** — Chat with your agents from Slack or Telegram. Multi-agent routing via `@agent-name` prefix or interactive buttons. Slack Assistants API with native "is thinking..." indicator. Telegram with inline keyboard agent picker and typing dots. Session persistence across restarts.
20
24
 
21
25
  💓 **Heartbeat** — Autonomous periodic agent runs. Define what an agent does when no one is asking — monitoring, reports, health checks — with results posted to Slack.
22
26
 
23
- 📋 **Task Board** — Kanban view with scheduling, priority, real-time progress tracking, and abort. Tasks run on cron schedules or on-demand.
27
+ 📋 **Task Board** — Kanban view with scheduling, priority, real-time progress tracking, and abort. Tasks run on cron schedules or on-demand. Per-task model override lets you route a simple nightly summary to Haiku while keeping the agent on Opus.
28
+
29
+ 🎛️ **Model picker** — Choose between aliases (`opus` / `sonnet` / `haiku` / `opusplan` — backend-agnostic), pinned IDs, or Bedrock/Vertex/Foundry formats. One place to configure: settings default, per-agent, or per-task override. Runs log both the requested alias and the concrete resolved model.
24
30
 
25
31
  🔌 **MCP Integration** — Add, remove, authenticate, and inspect MCP servers from the dashboard. One-click OAuth 2.1 with automatic CLI token injection — agents can use authenticated servers immediately.
26
32
 
27
33
  🧠 **Agent Memory** — Agents persist context across sessions using `[REMEMBER]` tags stored as markdown.
28
34
 
29
- 📊 **Dashboard** — Overview with run charts, success rates, token/cost tracking, activity timeline, fleet status, and streaming output from active agents.
35
+ 📊 **Dashboard** — Overview with run charts, success rates, token/cost tracking, activity timeline, fleet status, streaming output from active agents, and focused run-detail panels that lead with the final result and hide the full reasoning transcript behind a toggle.
30
36
 
31
37
  ---
32
38
 
@@ -53,7 +59,7 @@ The installer automatically finds your Obsidian vaults and copies the plugin fil
53
59
 
54
60
  ### Requirements
55
61
 
56
- - **Obsidian** 1.6.0+ (desktop only)
62
+ - **Obsidian** 1.6.0+ (desktop — macOS, Windows, Linux)
57
63
  - **[Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code)** — the engine behind all agent execution:
58
64
  ```bash
59
65
  npm install -g @anthropic-ai/claude-code
@@ -415,7 +421,7 @@ Click any run in the dashboard to see full details in a slideover panel.
415
421
  |---------|---------|-------------|
416
422
  | Fleet Folder | `_fleet` | Root folder for all fleet data |
417
423
  | Claude CLI Path | `claude` | Path to Claude Code CLI |
418
- | Default Model | `default` | Default model for new agents |
424
+ | Default Model | `default` | Default model for new agents. Pick Default / Alias (opus/sonnet/haiku/opusplan) / Custom (manual ID for Bedrock/Vertex/etc.) |
419
425
  | AWS Region | `us-east-1` | For AWS Bedrock model support |
420
426
  | Max Concurrent Runs | `2` | Parallel task execution limit |
421
427
  | Run Log Retention | `30` days | Auto-cleanup old logs |
@@ -464,8 +470,8 @@ Not necessarily. Agent Fleet works with your **Claude Max or Pro subscription**
464
470
  **Q: Does it work without internet?**
465
471
  No — agents need the Claude API to run. But all your data (agents, tasks, skills, memory) is local markdown.
466
472
 
467
- **Q: Can I use different models per agent?**
468
- Yes. Each agent has its own model setting. Supports Anthropic direct (Opus, Sonnet, Haiku) and AWS Bedrock models.
473
+ **Q: Can I use different models per agent or per task?**
474
+ Yes. Each agent has its own model setting, and you can override it per task (e.g. keep the agent on Opus but run a simple nightly summary task on Haiku to cut cost). Supports Anthropic direct, AWS Bedrock, Google Vertex, Foundry, and Mantle. Aliases `opus` / `sonnet` / `haiku` / `opusplan` work on every backend — pick those unless you need a pinned version. Resolution order: task → agent → settings → Claude CLI default.
469
475
 
470
476
  **Q: What happens if I delete the plugin?**
471
477
  Your `_fleet/` folder stays. All agents, tasks, skills, run logs, and memory are plain markdown files in your vault.
@@ -499,4 +505,4 @@ An autonomous periodic run — what an agent does on a schedule without user inp
499
505
 
500
506
  ---
501
507
 
502
- © 2026 Denis Berekchiyan. All rights reserved.
508
+ MIT License — © 2026 Denis Berekchiyan
package/bin/cli.js CHANGED
@@ -37,6 +37,29 @@ function getVaults() {
37
37
 
38
38
  function resolveClaudePath() {
39
39
  const { execSync } = require("child_process");
40
+
41
+ if (process.platform === "win32") {
42
+ // Windows: use `where` to find claude on PATH
43
+ try {
44
+ const result = execSync("where claude", {
45
+ encoding: "utf8",
46
+ timeout: 5000,
47
+ stdio: ["pipe", "pipe", "pipe"],
48
+ }).trim().split(/\r?\n/)[0];
49
+ if (result && fs.existsSync(result)) return result;
50
+ } catch { /* skip */ }
51
+ // Check common Windows install locations
52
+ const candidates = [
53
+ path.join(process.env.APPDATA || "", "Claude", "claude.exe"),
54
+ path.join(process.env.LOCALAPPDATA || "", "Claude", "claude.exe"),
55
+ ];
56
+ for (const c of candidates) {
57
+ if (fs.existsSync(c)) return c;
58
+ }
59
+ return null;
60
+ }
61
+
62
+ // macOS / Linux: use shell login to find claude via `which`
40
63
  const shells = ["/bin/zsh", "/bin/bash", "/bin/sh"];
41
64
  for (const shell of shells) {
42
65
  if (!fs.existsSync(shell)) continue;
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "obsidian-agent-fleet",
3
- "version": "0.7.1",
3
+ "version": "0.9.0",
4
4
  "description": "Obsidian plugin for file-backed AI agents, task scheduling, channels (Slack), heartbeat, and interactive chat.",
5
+ "license": "MIT",
5
6
  "main": "plugin/main.js",
6
7
  "bin": {
7
8
  "agent-fleet": "bin/cli.js"
@@ -12,7 +13,9 @@
12
13
  "plugin/manifest.json",
13
14
  "plugin/styles.css",
14
15
  "README.md",
15
- "SLACK_SETUP.md"
16
+ "SLACK_SETUP.md",
17
+ "LICENSE",
18
+ "screenshot.png"
16
19
  ],
17
20
  "scripts": {
18
21
  "build": "node esbuild.config.mjs production",