deepagentsdk 0.13.0 → 0.15.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/dist/adapters/elements/index.cjs +322 -82
- package/dist/adapters/elements/index.cjs.map +1 -1
- package/dist/adapters/elements/index.d.cts +28 -3
- package/dist/adapters/elements/index.d.mts +28 -3
- package/dist/adapters/elements/index.mjs +321 -82
- package/dist/adapters/elements/index.mjs.map +1 -1
- package/dist/{agent-BDM-PIu8.d.mts → agent-DHUp_-Fx.d.mts} +114 -4
- package/dist/{agent-DToEVxs-.d.cts → agent-tfRthBvX.d.cts} +114 -4
- package/dist/{chunk-C5azi7Hr.cjs → chunk-DUZBydyJ.cjs} +7 -0
- package/dist/cli/index.cjs +2 -2
- package/dist/cli/index.mjs +1 -1
- package/dist/{file-saver-Hj5so3dV.mjs → file-saver-CQWTIr8z.mjs} +87 -4
- package/dist/file-saver-CQWTIr8z.mjs.map +1 -0
- package/dist/{file-saver-BYPKakT4.cjs → file-saver-ZDVH1zHI.cjs} +84 -4
- package/dist/file-saver-ZDVH1zHI.cjs.map +1 -0
- package/dist/index.cjs +27508 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +299 -2
- package/dist/index.d.mts +301 -4
- package/dist/index.mjs +27499 -4
- package/dist/index.mjs.map +1 -1
- package/dist/{load-BrRAKlO6.cjs → load-BnaAQyCo.cjs} +4 -4
- package/dist/{load-BrRAKlO6.cjs.map → load-BnaAQyCo.cjs.map} +1 -1
- package/dist/load-CLVcFzo7.cjs +4 -0
- package/dist/{load-BDxe6Cet.mjs → load-DRzSpESX.mjs} +1 -1
- package/dist/{load-BBYEnMwz.mjs → load-FjxJSusX.mjs} +2 -2
- package/dist/{load-BBYEnMwz.mjs.map → load-FjxJSusX.mjs.map} +1 -1
- package/package.json +5 -1
- package/dist/file-saver-BYPKakT4.cjs.map +0 -1
- package/dist/file-saver-Hj5so3dV.mjs.map +0 -1
- package/dist/load-DqllBbDc.cjs +0 -4
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-
|
|
1
|
+
const require_chunk = require('./chunk-DUZBydyJ.cjs');
|
|
2
|
+
let node_os = require("node:os");
|
|
3
|
+
node_os = require_chunk.__toESM(node_os);
|
|
2
4
|
let node_path = require("node:path");
|
|
3
5
|
node_path = require_chunk.__toESM(node_path);
|
|
4
6
|
let node_fs_promises = require("node:fs/promises");
|
|
5
7
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
6
|
-
let node_os = require("node:os");
|
|
7
|
-
node_os = require_chunk.__toESM(node_os);
|
|
8
8
|
|
|
9
9
|
//#region src/utils/project-detection.ts
|
|
10
10
|
/**
|
|
@@ -160,4 +160,4 @@ Object.defineProperty(exports, 'parseSkillMetadata', {
|
|
|
160
160
|
return parseSkillMetadata;
|
|
161
161
|
}
|
|
162
162
|
});
|
|
163
|
-
//# sourceMappingURL=load-
|
|
163
|
+
//# sourceMappingURL=load-BnaAQyCo.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-
|
|
1
|
+
{"version":3,"file":"load-BnaAQyCo.cjs","names":["path","fs","fs","path","os"],"sources":["../src/utils/project-detection.ts","../src/skills/load.ts"],"sourcesContent":["import * as fs from 'node:fs/promises';\nimport * as path from 'node:path';\n\n/**\n * Find the git root by walking up the directory tree.\n * Returns null if no .git directory is found.\n *\n * @param startPath - Starting directory (defaults to process.cwd())\n * @returns Absolute path to git root, or null if not in a git repository\n */\nexport async function findGitRoot(startPath?: string): Promise<string | null> {\n let current = path.resolve(startPath || process.cwd());\n const root = path.parse(current).root;\n\n while (current !== root) {\n try {\n const gitPath = path.join(current, '.git');\n const stat = await fs.stat(gitPath);\n\n if (stat.isDirectory()) {\n return current;\n }\n } catch {\n // .git doesn't exist at this level, continue upward\n }\n\n // Move up one directory\n current = path.dirname(current);\n }\n\n return null;\n}\n","import * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport os from \"node:os\";\nimport type { SkillMetadata, SkillLoadOptions } from \"./types\";\nimport { findGitRoot } from \"../utils/project-detection\";\n\n/**\n * Parse YAML frontmatter from a SKILL.md file.\n *\n * Expected format:\n * ---\n * name: skill-name\n * description: What this skill does\n * ---\n *\n * # Skill Content\n * ...\n */\nexport async function parseSkillMetadata(\n skillMdPath: string,\n source: 'user' | 'project'\n): Promise<SkillMetadata | null> {\n try {\n const content = await fs.readFile(skillMdPath, 'utf-8');\n\n // Match YAML frontmatter between --- delimiters\n const frontmatterPattern = /^---\\s*\\n(.*?)\\n---\\s*\\n/s;\n const match = content.match(frontmatterPattern);\n\n if (!match) {\n console.warn(`[Skills] No frontmatter found in ${skillMdPath}`);\n return null;\n }\n\n const frontmatter = match[1];\n if (!frontmatter) {\n console.warn(`[Skills] Empty frontmatter in ${skillMdPath}`);\n return null;\n }\n\n // Parse key-value pairs from YAML (simple parsing, no full YAML parser needed)\n const metadata: Record<string, string> = {};\n for (const line of frontmatter.split('\\n')) {\n const kvMatch = line.match(/^(\\w+):\\s*(.+)$/);\n if (kvMatch) {\n const [, key, value] = kvMatch;\n if (key && value) {\n metadata[key] = value.trim();\n }\n }\n }\n\n // Validate required fields\n if (!metadata.name || !metadata.description) {\n console.warn(\n `[Skills] Missing required fields (name, description) in ${skillMdPath}`\n );\n return null;\n }\n\n return {\n name: metadata.name,\n description: metadata.description,\n path: skillMdPath,\n source,\n };\n } catch (error) {\n console.warn(`[Skills] Failed to parse ${skillMdPath}:`, error);\n return null;\n }\n}\n\n/**\n * List all skills in a directory.\n * Scans for subdirectories containing SKILL.md files.\n */\nasync function listSkillsInDirectory(\n skillsDir: string,\n source: 'user' | 'project'\n): Promise<SkillMetadata[]> {\n try {\n // Security: Resolve to prevent path traversal\n const resolvedDir = path.resolve(skillsDir);\n\n // Check if directory exists\n try {\n const stat = await fs.stat(resolvedDir);\n if (!stat.isDirectory()) {\n return [];\n }\n } catch {\n return []; // Directory doesn't exist\n }\n\n const entries = await fs.readdir(resolvedDir, { withFileTypes: true });\n const skills: SkillMetadata[] = [];\n\n for (const entry of entries) {\n // Skip non-directories and hidden directories\n if (!entry.isDirectory() || entry.name.startsWith('.')) {\n continue;\n }\n\n // Security: Skip symlinks to prevent traversal attacks\n if (entry.isSymbolicLink()) {\n console.warn(\n `[Skills] Skipping symlink: ${path.join(resolvedDir, entry.name)}`\n );\n continue;\n }\n\n // Look for SKILL.md in subdirectory\n const skillMdPath = path.join(resolvedDir, entry.name, 'SKILL.md');\n\n try {\n await fs.access(skillMdPath);\n const metadata = await parseSkillMetadata(skillMdPath, source);\n if (metadata) {\n skills.push(metadata);\n }\n } catch {\n // SKILL.md doesn't exist in this directory, skip\n continue;\n }\n }\n\n return skills;\n } catch (error) {\n console.warn(`[Skills] Failed to list skills in ${skillsDir}:`, error);\n return [];\n }\n}\n\n/**\n * List all skills from user and project directories.\n * Project skills override user skills with the same name.\n *\n * Supports two modes:\n * 1. Legacy mode: Use userSkillsDir and projectSkillsDir directly (deprecated)\n * 2. Agent mode: Use agentId to load from ~/.deepagents/{agentId}/skills/ and .deepagents/skills/\n */\nexport async function listSkills(\n options: SkillLoadOptions\n): Promise<SkillMetadata[]> {\n const { userSkillsDir, projectSkillsDir, agentId, workingDirectory } = options;\n const skillsMap = new Map<string, SkillMetadata>();\n\n // Determine directories based on mode\n let resolvedUserSkillsDir = userSkillsDir;\n let resolvedProjectSkillsDir = projectSkillsDir;\n\n if (agentId) {\n // Agent mode: Load from .deepagents/{agentId}/skills/\n resolvedUserSkillsDir = path.join(os.homedir(), '.deepagents', agentId, 'skills');\n\n // Detect project root and use .deepagents/skills/ (shared across agents)\n const gitRoot = await findGitRoot(workingDirectory || process.cwd());\n if (gitRoot) {\n resolvedProjectSkillsDir = path.join(gitRoot, '.deepagents', 'skills');\n }\n\n // Show deprecation warning if old params are used alongside agentId\n if (userSkillsDir || projectSkillsDir) {\n console.warn(\n '[Skills] agentId parameter takes precedence over userSkillsDir/projectSkillsDir. ' +\n 'The latter parameters are deprecated and will be ignored.'\n );\n }\n } else if (!userSkillsDir && !projectSkillsDir) {\n // No skills directories provided at all\n return [];\n }\n\n // Load user skills first\n if (resolvedUserSkillsDir) {\n const userSkills = await listSkillsInDirectory(resolvedUserSkillsDir, 'user');\n for (const skill of userSkills) {\n skillsMap.set(skill.name, skill);\n }\n }\n\n // Load project skills second (override user skills)\n if (resolvedProjectSkillsDir) {\n const projectSkills = await listSkillsInDirectory(resolvedProjectSkillsDir, 'project');\n for (const skill of projectSkills) {\n skillsMap.set(skill.name, skill); // Override user skill if exists\n }\n }\n\n return Array.from(skillsMap.values());\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import os from "node:os";
|
|
1
2
|
import * as path from "node:path";
|
|
2
3
|
import * as fs from "node:fs/promises";
|
|
3
|
-
import os from "node:os";
|
|
4
4
|
|
|
5
5
|
//#region src/utils/project-detection.ts
|
|
6
6
|
/**
|
|
@@ -139,4 +139,4 @@ async function listSkills(options) {
|
|
|
139
139
|
|
|
140
140
|
//#endregion
|
|
141
141
|
export { parseSkillMetadata as n, findGitRoot as r, listSkills as t };
|
|
142
|
-
//# sourceMappingURL=load-
|
|
142
|
+
//# sourceMappingURL=load-FjxJSusX.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-
|
|
1
|
+
{"version":3,"file":"load-FjxJSusX.mjs","names":[],"sources":["../src/utils/project-detection.ts","../src/skills/load.ts"],"sourcesContent":["import * as fs from 'node:fs/promises';\nimport * as path from 'node:path';\n\n/**\n * Find the git root by walking up the directory tree.\n * Returns null if no .git directory is found.\n *\n * @param startPath - Starting directory (defaults to process.cwd())\n * @returns Absolute path to git root, or null if not in a git repository\n */\nexport async function findGitRoot(startPath?: string): Promise<string | null> {\n let current = path.resolve(startPath || process.cwd());\n const root = path.parse(current).root;\n\n while (current !== root) {\n try {\n const gitPath = path.join(current, '.git');\n const stat = await fs.stat(gitPath);\n\n if (stat.isDirectory()) {\n return current;\n }\n } catch {\n // .git doesn't exist at this level, continue upward\n }\n\n // Move up one directory\n current = path.dirname(current);\n }\n\n return null;\n}\n","import * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport os from \"node:os\";\nimport type { SkillMetadata, SkillLoadOptions } from \"./types\";\nimport { findGitRoot } from \"../utils/project-detection\";\n\n/**\n * Parse YAML frontmatter from a SKILL.md file.\n *\n * Expected format:\n * ---\n * name: skill-name\n * description: What this skill does\n * ---\n *\n * # Skill Content\n * ...\n */\nexport async function parseSkillMetadata(\n skillMdPath: string,\n source: 'user' | 'project'\n): Promise<SkillMetadata | null> {\n try {\n const content = await fs.readFile(skillMdPath, 'utf-8');\n\n // Match YAML frontmatter between --- delimiters\n const frontmatterPattern = /^---\\s*\\n(.*?)\\n---\\s*\\n/s;\n const match = content.match(frontmatterPattern);\n\n if (!match) {\n console.warn(`[Skills] No frontmatter found in ${skillMdPath}`);\n return null;\n }\n\n const frontmatter = match[1];\n if (!frontmatter) {\n console.warn(`[Skills] Empty frontmatter in ${skillMdPath}`);\n return null;\n }\n\n // Parse key-value pairs from YAML (simple parsing, no full YAML parser needed)\n const metadata: Record<string, string> = {};\n for (const line of frontmatter.split('\\n')) {\n const kvMatch = line.match(/^(\\w+):\\s*(.+)$/);\n if (kvMatch) {\n const [, key, value] = kvMatch;\n if (key && value) {\n metadata[key] = value.trim();\n }\n }\n }\n\n // Validate required fields\n if (!metadata.name || !metadata.description) {\n console.warn(\n `[Skills] Missing required fields (name, description) in ${skillMdPath}`\n );\n return null;\n }\n\n return {\n name: metadata.name,\n description: metadata.description,\n path: skillMdPath,\n source,\n };\n } catch (error) {\n console.warn(`[Skills] Failed to parse ${skillMdPath}:`, error);\n return null;\n }\n}\n\n/**\n * List all skills in a directory.\n * Scans for subdirectories containing SKILL.md files.\n */\nasync function listSkillsInDirectory(\n skillsDir: string,\n source: 'user' | 'project'\n): Promise<SkillMetadata[]> {\n try {\n // Security: Resolve to prevent path traversal\n const resolvedDir = path.resolve(skillsDir);\n\n // Check if directory exists\n try {\n const stat = await fs.stat(resolvedDir);\n if (!stat.isDirectory()) {\n return [];\n }\n } catch {\n return []; // Directory doesn't exist\n }\n\n const entries = await fs.readdir(resolvedDir, { withFileTypes: true });\n const skills: SkillMetadata[] = [];\n\n for (const entry of entries) {\n // Skip non-directories and hidden directories\n if (!entry.isDirectory() || entry.name.startsWith('.')) {\n continue;\n }\n\n // Security: Skip symlinks to prevent traversal attacks\n if (entry.isSymbolicLink()) {\n console.warn(\n `[Skills] Skipping symlink: ${path.join(resolvedDir, entry.name)}`\n );\n continue;\n }\n\n // Look for SKILL.md in subdirectory\n const skillMdPath = path.join(resolvedDir, entry.name, 'SKILL.md');\n\n try {\n await fs.access(skillMdPath);\n const metadata = await parseSkillMetadata(skillMdPath, source);\n if (metadata) {\n skills.push(metadata);\n }\n } catch {\n // SKILL.md doesn't exist in this directory, skip\n continue;\n }\n }\n\n return skills;\n } catch (error) {\n console.warn(`[Skills] Failed to list skills in ${skillsDir}:`, error);\n return [];\n }\n}\n\n/**\n * List all skills from user and project directories.\n * Project skills override user skills with the same name.\n *\n * Supports two modes:\n * 1. Legacy mode: Use userSkillsDir and projectSkillsDir directly (deprecated)\n * 2. Agent mode: Use agentId to load from ~/.deepagents/{agentId}/skills/ and .deepagents/skills/\n */\nexport async function listSkills(\n options: SkillLoadOptions\n): Promise<SkillMetadata[]> {\n const { userSkillsDir, projectSkillsDir, agentId, workingDirectory } = options;\n const skillsMap = new Map<string, SkillMetadata>();\n\n // Determine directories based on mode\n let resolvedUserSkillsDir = userSkillsDir;\n let resolvedProjectSkillsDir = projectSkillsDir;\n\n if (agentId) {\n // Agent mode: Load from .deepagents/{agentId}/skills/\n resolvedUserSkillsDir = path.join(os.homedir(), '.deepagents', agentId, 'skills');\n\n // Detect project root and use .deepagents/skills/ (shared across agents)\n const gitRoot = await findGitRoot(workingDirectory || process.cwd());\n if (gitRoot) {\n resolvedProjectSkillsDir = path.join(gitRoot, '.deepagents', 'skills');\n }\n\n // Show deprecation warning if old params are used alongside agentId\n if (userSkillsDir || projectSkillsDir) {\n console.warn(\n '[Skills] agentId parameter takes precedence over userSkillsDir/projectSkillsDir. ' +\n 'The latter parameters are deprecated and will be ignored.'\n );\n }\n } else if (!userSkillsDir && !projectSkillsDir) {\n // No skills directories provided at all\n return [];\n }\n\n // Load user skills first\n if (resolvedUserSkillsDir) {\n const userSkills = await listSkillsInDirectory(resolvedUserSkillsDir, 'user');\n for (const skill of userSkills) {\n skillsMap.set(skill.name, skill);\n }\n }\n\n // Load project skills second (override user skills)\n if (resolvedProjectSkillsDir) {\n const projectSkills = await listSkillsInDirectory(resolvedProjectSkillsDir, 'project');\n for (const skill of projectSkills) {\n skillsMap.set(skill.name, skill); // Override user skill if exists\n }\n }\n\n return Array.from(skillsMap.values());\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deepagentsdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Deep Agent implementation using Vercel AI SDK - build controllable AI agents with planning, filesystem, and subagent capabilities",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -60,14 +60,18 @@
|
|
|
60
60
|
"@ai-sdk/anthropic": "^3.0.9",
|
|
61
61
|
"@ai-sdk/openai": "^3.0.7",
|
|
62
62
|
"@ai-sdk/react": "^3.0.9",
|
|
63
|
+
"@daytonaio/sdk": "^0.129.0",
|
|
64
|
+
"@e2b/code-interpreter": "^2.3.3",
|
|
63
65
|
"@inkjs/ui": "^1.0.0",
|
|
64
66
|
"@mozilla/readability": "^0.6.0",
|
|
67
|
+
"@runloop/api-client": "^1.0.0",
|
|
65
68
|
"@tavily/core": "^0.6.1",
|
|
66
69
|
"ai": "^6.0.19",
|
|
67
70
|
"fast-glob": "^3.3.3",
|
|
68
71
|
"ink": "^5.1.0",
|
|
69
72
|
"jsdom": "^25.0.1",
|
|
70
73
|
"micromatch": "^4.0.8",
|
|
74
|
+
"modal": "^0.6.0",
|
|
71
75
|
"react": "^18.2.0",
|
|
72
76
|
"react-devtools-core": "^5.3.2",
|
|
73
77
|
"turndown": "^7.2.0",
|