@orderful/droid 0.16.0 → 0.17.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/.claude/CLAUDE.md +3 -43
- package/AGENTS.md +75 -0
- package/CHANGELOG.md +18 -0
- package/bun.lock +12 -0
- package/dist/bin/droid.js +3064 -54
- package/dist/commands/tui/components/Badge.test.d.ts +2 -0
- package/dist/commands/tui/components/Badge.test.d.ts.map +1 -0
- package/dist/commands/tui/components/TabBar.test.d.ts +2 -0
- package/dist/commands/tui/components/TabBar.test.d.ts.map +1 -0
- package/dist/index.js +952 -6
- package/package.json +7 -2
- package/playwright.config.ts +20 -0
- package/scripts/build.ts +78 -0
- package/scripts/screenshot-tui.ts +126 -0
- package/src/commands/tui/components/Badge.test.tsx +94 -0
- package/src/commands/tui/components/TabBar.test.tsx +39 -0
- package/tests/e2e/tui.spec.ts +128 -0
- package/dist/bin/droid.js.map +0 -1
- package/dist/commands/config.js +0 -67
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/install.js +0 -45
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/setup.js +0 -269
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/skills.js +0 -144
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/tui/components/Badge.js +0 -29
- package/dist/commands/tui/components/Badge.js.map +0 -1
- package/dist/commands/tui/components/Markdown.js +0 -42
- package/dist/commands/tui/components/Markdown.js.map +0 -1
- package/dist/commands/tui/components/SettingsDetails.js +0 -11
- package/dist/commands/tui/components/SettingsDetails.js.map +0 -1
- package/dist/commands/tui/components/TabBar.js +0 -7
- package/dist/commands/tui/components/TabBar.js.map +0 -1
- package/dist/commands/tui/components/ToolDetails.js +0 -35
- package/dist/commands/tui/components/ToolDetails.js.map +0 -1
- package/dist/commands/tui/components/ToolItem.js +0 -11
- package/dist/commands/tui/components/ToolItem.js.map +0 -1
- package/dist/commands/tui/constants.js +0 -17
- package/dist/commands/tui/constants.js.map +0 -1
- package/dist/commands/tui/hooks/useAppUpdate.js +0 -52
- package/dist/commands/tui/hooks/useAppUpdate.js.map +0 -1
- package/dist/commands/tui/hooks/useToolUpdates.js +0 -77
- package/dist/commands/tui/hooks/useToolUpdates.js.map +0 -1
- package/dist/commands/tui/types.js +0 -2
- package/dist/commands/tui/types.js.map +0 -1
- package/dist/commands/tui/views/ReadmeViewer.js +0 -56
- package/dist/commands/tui/views/ReadmeViewer.js.map +0 -1
- package/dist/commands/tui/views/SetupScreen.js +0 -114
- package/dist/commands/tui/views/SetupScreen.js.map +0 -1
- package/dist/commands/tui/views/SkillConfigScreen.js +0 -148
- package/dist/commands/tui/views/SkillConfigScreen.js.map +0 -1
- package/dist/commands/tui/views/ToolExplorer.js +0 -86
- package/dist/commands/tui/views/ToolExplorer.js.map +0 -1
- package/dist/commands/tui/views/ToolUpdatePrompt.js +0 -38
- package/dist/commands/tui/views/ToolUpdatePrompt.js.map +0 -1
- package/dist/commands/tui/views/WelcomeScreen.js +0 -46
- package/dist/commands/tui/views/WelcomeScreen.js.map +0 -1
- package/dist/commands/tui.js +0 -307
- package/dist/commands/tui.js.map +0 -1
- package/dist/commands/uninstall.js +0 -26
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/commands/update.js +0 -45
- package/dist/commands/update.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/agents.js +0 -248
- package/dist/lib/agents.js.map +0 -1
- package/dist/lib/config.js +0 -196
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/platforms.js +0 -52
- package/dist/lib/platforms.js.map +0 -1
- package/dist/lib/quotes.js +0 -24
- package/dist/lib/quotes.js.map +0 -1
- package/dist/lib/skill-config.js +0 -80
- package/dist/lib/skill-config.js.map +0 -1
- package/dist/lib/skills.js +0 -582
- package/dist/lib/skills.js.map +0 -1
- package/dist/lib/tools.js +0 -145
- package/dist/lib/tools.js.map +0 -1
- package/dist/lib/types.js +0 -50
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/version.js +0 -100
- package/dist/lib/version.js.map +0 -1
package/dist/lib/tools.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { existsSync, readdirSync, readFileSync } from 'fs';
|
|
2
|
-
import { join, dirname } from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import YAML from 'yaml';
|
|
5
|
-
import { loadConfig } from './config';
|
|
6
|
-
import { getPlatformTools } from './types';
|
|
7
|
-
import { compareSemver } from './version';
|
|
8
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
-
const BUNDLED_TOOLS_DIR = join(__dirname, '../tools');
|
|
10
|
-
/**
|
|
11
|
-
* Get the path to bundled tools directory
|
|
12
|
-
*/
|
|
13
|
-
export function getBundledToolsDir() {
|
|
14
|
-
return BUNDLED_TOOLS_DIR;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Load a tool manifest from a tool directory
|
|
18
|
-
*/
|
|
19
|
-
export function loadToolManifest(toolDir) {
|
|
20
|
-
const manifestPath = join(toolDir, 'TOOL.yaml');
|
|
21
|
-
if (!existsSync(manifestPath)) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
try {
|
|
25
|
-
const content = readFileSync(manifestPath, 'utf-8');
|
|
26
|
-
const parsed = YAML.parse(content);
|
|
27
|
-
// Normalize includes structure
|
|
28
|
-
const includes = {
|
|
29
|
-
skills: parsed.includes?.skills || [],
|
|
30
|
-
commands: parsed.includes?.commands || [],
|
|
31
|
-
agents: parsed.includes?.agents || [],
|
|
32
|
-
};
|
|
33
|
-
return {
|
|
34
|
-
...parsed,
|
|
35
|
-
includes,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Get all bundled tools
|
|
44
|
-
*/
|
|
45
|
-
export function getBundledTools() {
|
|
46
|
-
if (!existsSync(BUNDLED_TOOLS_DIR)) {
|
|
47
|
-
return [];
|
|
48
|
-
}
|
|
49
|
-
const toolDirs = readdirSync(BUNDLED_TOOLS_DIR, { withFileTypes: true })
|
|
50
|
-
.filter((dirent) => dirent.isDirectory())
|
|
51
|
-
.map((dirent) => dirent.name);
|
|
52
|
-
const tools = [];
|
|
53
|
-
for (const toolName of toolDirs) {
|
|
54
|
-
const manifest = loadToolManifest(join(BUNDLED_TOOLS_DIR, toolName));
|
|
55
|
-
if (manifest) {
|
|
56
|
-
tools.push(manifest);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return tools;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Check if a tool is installed (any of its required skills are installed)
|
|
63
|
-
*/
|
|
64
|
-
export function isToolInstalled(toolName) {
|
|
65
|
-
const config = loadConfig();
|
|
66
|
-
const installedTools = getPlatformTools(config);
|
|
67
|
-
// A tool is installed if any of its required skills are in the installed tools
|
|
68
|
-
const tool = getBundledTools().find(t => t.name === toolName);
|
|
69
|
-
if (!tool)
|
|
70
|
-
return false;
|
|
71
|
-
const requiredSkills = tool.includes.skills
|
|
72
|
-
.filter(s => s.required)
|
|
73
|
-
.map(s => s.name);
|
|
74
|
-
// Tool is installed if at least one required skill is installed
|
|
75
|
-
return requiredSkills.some(skillName => skillName in installedTools);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Get the installed version of a tool (from its primary skill)
|
|
79
|
-
*/
|
|
80
|
-
export function getInstalledToolVersion(toolName) {
|
|
81
|
-
const config = loadConfig();
|
|
82
|
-
const installedTools = getPlatformTools(config);
|
|
83
|
-
const tool = getBundledTools().find(t => t.name === toolName);
|
|
84
|
-
if (!tool)
|
|
85
|
-
return null;
|
|
86
|
-
// Get version from the first installed required skill
|
|
87
|
-
const requiredSkills = tool.includes.skills
|
|
88
|
-
.filter(s => s.required)
|
|
89
|
-
.map(s => s.name);
|
|
90
|
-
for (const skillName of requiredSkills) {
|
|
91
|
-
if (installedTools[skillName]) {
|
|
92
|
-
return installedTools[skillName].version;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Check if a tool has an update available
|
|
99
|
-
*/
|
|
100
|
-
export function getToolUpdateStatus(toolName) {
|
|
101
|
-
const installedVersion = getInstalledToolVersion(toolName);
|
|
102
|
-
const tool = getBundledTools().find(t => t.name === toolName);
|
|
103
|
-
const bundledVersion = tool?.version || null;
|
|
104
|
-
if (!installedVersion || !bundledVersion) {
|
|
105
|
-
return {
|
|
106
|
-
name: toolName,
|
|
107
|
-
hasUpdate: false,
|
|
108
|
-
installedVersion,
|
|
109
|
-
bundledVersion,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
// Use semver comparison: bundled > installed means update available
|
|
113
|
-
const hasUpdate = compareSemver(bundledVersion, installedVersion) > 0;
|
|
114
|
-
return {
|
|
115
|
-
name: toolName,
|
|
116
|
-
hasUpdate,
|
|
117
|
-
installedVersion,
|
|
118
|
-
bundledVersion,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Get all installed tools that have updates available
|
|
123
|
-
*/
|
|
124
|
-
export function getToolsWithUpdates() {
|
|
125
|
-
const config = loadConfig();
|
|
126
|
-
const installedTools = getPlatformTools(config);
|
|
127
|
-
const bundledTools = getBundledTools();
|
|
128
|
-
const toolsWithUpdates = [];
|
|
129
|
-
// Check each bundled tool to see if it's installed and has an update
|
|
130
|
-
for (const tool of bundledTools) {
|
|
131
|
-
// Find if any of the tool's required skills are installed
|
|
132
|
-
const requiredSkills = tool.includes.skills
|
|
133
|
-
.filter(s => s.required)
|
|
134
|
-
.map(s => s.name);
|
|
135
|
-
const isInstalled = requiredSkills.some(skillName => skillName in installedTools);
|
|
136
|
-
if (isInstalled) {
|
|
137
|
-
const updateStatus = getToolUpdateStatus(tool.name);
|
|
138
|
-
if (updateStatus.hasUpdate) {
|
|
139
|
-
toolsWithUpdates.push(updateStatus);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return toolsWithUpdates;
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/lib/tools.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/lib/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
export var Platform;
|
|
2
|
-
(function (Platform) {
|
|
3
|
-
Platform["ClaudeCode"] = "claude-code";
|
|
4
|
-
Platform["OpenCode"] = "opencode";
|
|
5
|
-
})(Platform || (Platform = {}));
|
|
6
|
-
// Backwards compatibility alias - using different names to avoid redeclare error
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
|
-
const AIToolValue = Platform;
|
|
9
|
-
export { AIToolValue as AITool };
|
|
10
|
-
/**
|
|
11
|
-
* Get the AI's mention tag
|
|
12
|
-
* Always @droid - consistent branding regardless of underlying AI tool
|
|
13
|
-
*/
|
|
14
|
-
export function getAITag() {
|
|
15
|
-
return '@droid';
|
|
16
|
-
}
|
|
17
|
-
// Built-in output preferences (always available)
|
|
18
|
-
export var BuiltInOutput;
|
|
19
|
-
(function (BuiltInOutput) {
|
|
20
|
-
BuiltInOutput["Terminal"] = "terminal";
|
|
21
|
-
BuiltInOutput["Editor"] = "editor";
|
|
22
|
-
})(BuiltInOutput || (BuiltInOutput = {}));
|
|
23
|
-
export var SkillStatus;
|
|
24
|
-
(function (SkillStatus) {
|
|
25
|
-
SkillStatus["Stable"] = "stable";
|
|
26
|
-
SkillStatus["Beta"] = "beta";
|
|
27
|
-
SkillStatus["Alpha"] = "alpha";
|
|
28
|
-
})(SkillStatus || (SkillStatus = {}));
|
|
29
|
-
export var ConfigOptionType;
|
|
30
|
-
(function (ConfigOptionType) {
|
|
31
|
-
ConfigOptionType["String"] = "string";
|
|
32
|
-
ConfigOptionType["Boolean"] = "boolean";
|
|
33
|
-
ConfigOptionType["Select"] = "select";
|
|
34
|
-
})(ConfigOptionType || (ConfigOptionType = {}));
|
|
35
|
-
/**
|
|
36
|
-
* Get installed tools for the current platform
|
|
37
|
-
*/
|
|
38
|
-
export function getPlatformTools(config) {
|
|
39
|
-
return config.platforms[config.platform]?.tools ?? {};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Set installed tools for the current platform
|
|
43
|
-
*/
|
|
44
|
-
export function setPlatformTools(config, tools) {
|
|
45
|
-
if (!config.platforms[config.platform]) {
|
|
46
|
-
config.platforms[config.platform] = { tools: {} };
|
|
47
|
-
}
|
|
48
|
-
config.platforms[config.platform].tools = tools;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=types.js.map
|
package/dist/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,sCAA0B,CAAA;IAC1B,iCAAqB,CAAA;AACvB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,iFAAiF;AACjF,6DAA6D;AAC7D,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,CAAC;AAGjC;;;GAGG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;AACnB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAKD,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AA6BD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB,EAAE,KAAqC;IACzF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACpD,CAAC;IACD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AAClD,CAAC"}
|
package/dist/lib/version.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'fs';
|
|
2
|
-
import { fileURLToPath } from 'url';
|
|
3
|
-
import { dirname, join } from 'path';
|
|
4
|
-
import { execSync } from 'child_process';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
-
const packageJsonPath = join(__dirname, '../../package.json');
|
|
8
|
-
/**
|
|
9
|
-
* Get the current version from package.json
|
|
10
|
-
*/
|
|
11
|
-
export function getVersion() {
|
|
12
|
-
try {
|
|
13
|
-
const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
14
|
-
return pkg.version;
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
return '0.0.0';
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Compare two semver versions
|
|
22
|
-
* Returns: 1 if a > b, -1 if a < b, 0 if equal
|
|
23
|
-
*/
|
|
24
|
-
export function compareSemver(a, b) {
|
|
25
|
-
const partsA = a.split('.').map(Number);
|
|
26
|
-
const partsB = b.split('.').map(Number);
|
|
27
|
-
for (let i = 0; i < 3; i++) {
|
|
28
|
-
const numA = partsA[i] || 0;
|
|
29
|
-
const numB = partsB[i] || 0;
|
|
30
|
-
if (numA > numB)
|
|
31
|
-
return 1;
|
|
32
|
-
if (numA < numB)
|
|
33
|
-
return -1;
|
|
34
|
-
}
|
|
35
|
-
return 0;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Get update info synchronously (for TUI)
|
|
39
|
-
* Returns current version, latest version, and whether update is available
|
|
40
|
-
*/
|
|
41
|
-
export function getUpdateInfo() {
|
|
42
|
-
const currentVersion = getVersion();
|
|
43
|
-
try {
|
|
44
|
-
const latestVersion = execSync('npm view @orderful/droid version 2>/dev/null', {
|
|
45
|
-
encoding: 'utf-8',
|
|
46
|
-
timeout: 3000,
|
|
47
|
-
}).trim();
|
|
48
|
-
return {
|
|
49
|
-
hasUpdate: latestVersion ? compareSemver(latestVersion, currentVersion) > 0 : false,
|
|
50
|
-
currentVersion,
|
|
51
|
-
latestVersion: latestVersion || null,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
return {
|
|
56
|
-
hasUpdate: false,
|
|
57
|
-
currentVersion,
|
|
58
|
-
latestVersion: null,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Run droid update
|
|
64
|
-
*/
|
|
65
|
-
export function runUpdate() {
|
|
66
|
-
try {
|
|
67
|
-
execSync('npm install -g @orderful/droid@latest', {
|
|
68
|
-
encoding: 'utf-8',
|
|
69
|
-
stdio: 'pipe',
|
|
70
|
-
timeout: 60000,
|
|
71
|
-
});
|
|
72
|
-
return { success: true, message: 'Update complete!' };
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
return { success: false, message: `Update failed: ${error}` };
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Check for updates (non-blocking)
|
|
80
|
-
* Shows a message if a new version is available
|
|
81
|
-
*/
|
|
82
|
-
export async function checkForUpdates() {
|
|
83
|
-
try {
|
|
84
|
-
const currentVersion = getVersion();
|
|
85
|
-
// Use npm view to check latest version
|
|
86
|
-
const latestVersion = execSync('npm view @orderful/droid version 2>/dev/null', {
|
|
87
|
-
encoding: 'utf-8',
|
|
88
|
-
timeout: 3000,
|
|
89
|
-
}).trim();
|
|
90
|
-
// Only show update message if latest is actually newer
|
|
91
|
-
if (latestVersion && compareSemver(latestVersion, currentVersion) > 0) {
|
|
92
|
-
console.log(chalk.yellow(`\n⚠️ A new version of droid is available (${currentVersion} → ${latestVersion})`));
|
|
93
|
-
console.log(chalk.yellow(` Run ${chalk.bold('droid update')} to upgrade\n`));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
// Silently fail - update check is non-critical
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=version.js.map
|
package/dist/lib/version.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"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"}
|