clawdi 0.1.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.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: clawdi
3
+ description: "Cross-agent long-term memory for the current user: their preferences, coding habits, named projects / repos / tools, past bugs and architecture decisions, and anything they reference with 'my', 'I usually', 'like last time', 'the one we set up', etc. Surface this skill BEFORE answering any question about the user themselves, their work, or their history — even when phrased abstractly (e.g. 'what do I usually use for X'). Also provides connected-service tools (Gmail, GitHub, Notion, Drive, Calendar, etc.)."
4
+ ---
5
+
6
+ # Clawdi Cloud
7
+
8
+ You have access to Clawdi Cloud tools via the `clawdi` MCP server. Use them aggressively — memory retrieval is the highest-leverage tool you have here.
9
+
10
+ ## Memory
11
+
12
+ Three tools for cross-agent memory:
13
+
14
+ - `memory_search` — Search long-term memory by natural-language query (any language).
15
+ - `memory_add` — Save a durable memory for cross-agent recall. Categories: `fact` (technical facts, API details, config values), `preference` (user preferences, coding style, workflow choices), `pattern` (recurring patterns, pitfalls, team conventions), `decision` (architecture decisions and their reasoning), `context` (project context, deadlines, ongoing work).
16
+ - `memory_extract` — Batch-extract durable memories from the CURRENT conversation. Call this when the user says "extract memories", "save what we discussed", "remember this conversation", or equivalent. The tool returns instructions that walk you through a list-then-confirm flow using `memory_search` and `memory_add` — follow them exactly, including **waiting for the user's approval before writing anything**. Never skip the confirmation step, never save more than 5 memories in one invocation, and do not narrate your internal workflow to the user.
17
+
18
+ ### When to search — bias toward calling
19
+
20
+ **Default assumption: the user has stored context you don't have. Call `memory_search` BEFORE answering any question about them, their project, their preferences, or their history. A call that returns empty costs ~100ms; a missed hit makes you look amnesic and forces them to re-teach you every session.**
21
+
22
+ The single most common failure mode is NOT calling memory_search on abstract self-referential questions. If the user's message has any of these shapes, you MUST call it — no judgment, no exceptions:
23
+
24
+ 1. **Preference / habit questions**, even without a specific entity named.
25
+ Examples: "what do I usually use for X", "how do I normally do Y", "what's my preferred tool for Z", "what's my coding style". Pass a short paraphrase as the query.
26
+ 2. **Callbacks to prior context.** "as I mentioned", "like last time", "you know the one", "we discussed before", "what was that X we set up".
27
+ 3. **Named entities specific to this user.** Their project / repo / service / team / tool name. A person by name.
28
+ 4. **Past bugs, decisions, investigations, design choices.**
29
+ 5. **Start of a new session where they reference anything about themselves or their work.**
30
+
31
+ Do NOT search for:
32
+ - Purely textbook programming questions with no user-specific signal ("how does `useEffect` work", "what is the time complexity of quicksort").
33
+ - Questions the current code already answers directly.
34
+
35
+ **When unsure, search.** Empty results cost you nothing. Missing the user's context costs you their trust.
36
+
37
+ ### When to save
38
+
39
+ - After fixing a non-obvious bug (save root cause + fix)
40
+ - After making an architecture decision (save reasoning)
41
+ - After discovering a useful pattern or workaround
42
+ - When the user explicitly says "remember this" / "save this"
43
+ - After learning a user preference you'd otherwise have to re-ask ("I prefer rg", "I always use pnpm")
44
+
45
+ Write memories as standalone sentences with full context — include names, not pronouns. A future session will read this without knowing today's conversation.
46
+
47
+ Do NOT save trivial facts that are obvious from the code itself, or generic programming knowledge.
48
+
49
+ ## Connectors
50
+
51
+ Connected service tools (Gmail, GitHub, Notion, etc.) are dynamically registered from the user's Clawdi Cloud dashboard. They appear as individual tools like `gmail_fetch_emails`, `github_list_issues`, etc.
52
+
53
+ - These tools are already authenticated — no OAuth needed at runtime
54
+ - If a tool call fails with "No connected account", tell the user to connect the service in the Clawdi Cloud dashboard
55
+ - File downloads from connectors return signed URLs — download them with `curl` or `fetch` before processing
56
+ - Confirm with the user before side-effecting operations (sending email, creating issues, etc.)
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "clawdi",
3
+ "version": "0.1.0",
4
+ "description": "iCloud for AI Agents — cross-agent sessions, skills, memory, and vault.",
5
+ "license": "SEE LICENSE IN LICENSE",
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "bin": {
9
+ "clawdi": "bin/clawdi.mjs"
10
+ },
11
+ "files": [
12
+ "bin",
13
+ "dist",
14
+ "LICENSE",
15
+ "README.md"
16
+ ],
17
+ "engines": {
18
+ "node": ">=18"
19
+ },
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "scripts": {
24
+ "dev": "bun run src/index.ts",
25
+ "build": "rm -rf dist && bun build src/index.ts --outdir dist --target node --minify --define 'process.env.CLAWDI_DEFAULT_API_URL=\"https://cloud-api.clawdi.ai\"' && cp -r skills dist/skills",
26
+ "build:dev": "rm -rf dist && bun build src/index.ts --outdir dist --target node && cp -r skills dist/skills",
27
+ "typecheck": "tsc --noEmit",
28
+ "test": "bun test",
29
+ "test:watch": "bun test --watch",
30
+ "generate-api": "bun x openapi-typescript http://localhost:8000/openapi.json -o src/lib/api-types.generated.ts",
31
+ "prepublishOnly": "bun run build"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/Clawdi-AI/clawdi.git",
36
+ "directory": "packages/cli"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/Clawdi-AI/clawdi/issues"
40
+ },
41
+ "homepage": "https://github.com/Clawdi-AI/clawdi#readme",
42
+ "keywords": [
43
+ "cli",
44
+ "claude-code",
45
+ "codex",
46
+ "openclaw",
47
+ "hermes",
48
+ "ai-agents",
49
+ "skills",
50
+ "memory",
51
+ "vault",
52
+ "mcp"
53
+ ],
54
+ "dependencies": {
55
+ "@clack/prompts": "^1.2.0",
56
+ "@modelcontextprotocol/sdk": "^1.29.0",
57
+ "chalk": "^5.4.0",
58
+ "commander": "^13.0.0",
59
+ "openapi-fetch": "^0.17.0",
60
+ "tar": "^7.5.13",
61
+ "zod": "^4.3.6"
62
+ },
63
+ "devDependencies": {
64
+ "@types/bun": "^1.3.12",
65
+ "@types/node": "^22.0.0",
66
+ "typescript": "^5.9.0"
67
+ }
68
+ }