@orderful/droid 0.15.0 ā 0.16.1
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 +18 -40
- package/AGENTS.md +75 -0
- package/CHANGELOG.md +25 -0
- package/dist/bin/droid.js +3064 -54
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/tui/components/Badge.d.ts +13 -0
- package/dist/commands/tui/components/Badge.d.ts.map +1 -0
- package/dist/commands/tui/components/Markdown.d.ts +5 -0
- package/dist/commands/tui/components/Markdown.d.ts.map +1 -0
- package/dist/commands/tui/components/SettingsDetails.d.ts +5 -0
- package/dist/commands/tui/components/SettingsDetails.d.ts.map +1 -0
- package/dist/commands/tui/components/TabBar.d.ts +10 -0
- package/dist/commands/tui/components/TabBar.d.ts.map +1 -0
- package/dist/commands/tui/components/ToolDetails.d.ts +8 -0
- package/dist/commands/tui/components/ToolDetails.d.ts.map +1 -0
- package/dist/commands/tui/components/ToolItem.d.ts +9 -0
- package/dist/commands/tui/components/ToolItem.d.ts.map +1 -0
- package/dist/commands/tui/constants.d.ts +16 -0
- package/dist/commands/tui/constants.d.ts.map +1 -0
- package/dist/commands/tui/hooks/useAppUpdate.d.ts +13 -0
- package/dist/commands/tui/hooks/useAppUpdate.d.ts.map +1 -0
- package/dist/commands/tui/hooks/useToolUpdates.d.ts +22 -0
- package/dist/commands/tui/hooks/useToolUpdates.d.ts.map +1 -0
- package/dist/commands/tui/types.d.ts +5 -0
- package/dist/commands/tui/types.d.ts.map +1 -0
- package/dist/commands/tui/views/ReadmeViewer.d.ts +7 -0
- package/dist/commands/tui/views/ReadmeViewer.d.ts.map +1 -0
- package/dist/commands/tui/views/SetupScreen.d.ts +8 -0
- package/dist/commands/tui/views/SetupScreen.d.ts.map +1 -0
- package/dist/commands/tui/views/SkillConfigScreen.d.ts +8 -0
- package/dist/commands/tui/views/SkillConfigScreen.d.ts.map +1 -0
- package/dist/commands/tui/views/ToolExplorer.d.ts +8 -0
- package/dist/commands/tui/views/ToolExplorer.d.ts.map +1 -0
- package/dist/commands/tui/views/ToolUpdatePrompt.d.ts +10 -0
- package/dist/commands/tui/views/ToolUpdatePrompt.d.ts.map +1 -0
- package/dist/commands/tui/views/WelcomeScreen.d.ts +11 -0
- package/dist/commands/tui/views/WelcomeScreen.d.ts.map +1 -0
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +952 -6
- package/dist/lib/agents.d.ts +1 -1
- package/dist/lib/agents.d.ts.map +1 -1
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/platforms.d.ts +1 -1
- package/dist/lib/platforms.d.ts.map +1 -1
- package/dist/lib/skill-config.d.ts +1 -1
- package/dist/lib/skill-config.d.ts.map +1 -1
- package/dist/lib/skills.d.ts +1 -1
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/tools.d.ts +1 -1
- package/dist/lib/tools.d.ts.map +1 -1
- package/package.json +3 -3
- package/scripts/build.ts +78 -0
- package/src/bin/droid.ts +8 -8
- package/src/commands/config.ts +1 -1
- package/src/commands/install.ts +3 -3
- package/src/commands/setup.test.ts +1 -1
- package/src/commands/setup.ts +3 -3
- package/src/commands/skills.ts +4 -4
- package/src/commands/tui/components/Badge.tsx +86 -0
- package/src/commands/tui/components/Markdown.tsx +48 -0
- package/src/commands/tui/components/SettingsDetails.tsx +70 -0
- package/src/commands/tui/components/TabBar.tsx +26 -0
- package/src/commands/tui/components/ToolDetails.tsx +117 -0
- package/src/commands/tui/components/ToolItem.tsx +39 -0
- package/src/commands/tui/constants.ts +17 -0
- package/src/commands/tui/hooks/useAppUpdate.ts +67 -0
- package/src/commands/tui/hooks/useToolUpdates.ts +110 -0
- package/src/commands/tui/types.ts +4 -0
- package/src/commands/tui/views/ReadmeViewer.tsx +93 -0
- package/src/commands/tui/views/SetupScreen.tsx +242 -0
- package/src/commands/tui/views/SkillConfigScreen.tsx +278 -0
- package/src/commands/tui/views/ToolExplorer.tsx +190 -0
- package/src/commands/tui/views/ToolUpdatePrompt.tsx +109 -0
- package/src/commands/tui/views/WelcomeScreen.tsx +149 -0
- package/src/commands/tui.tsx +65 -1587
- package/src/commands/uninstall.ts +2 -2
- package/src/commands/update.ts +1 -1
- package/src/index.ts +4 -4
- package/src/lib/agents.ts +4 -4
- package/src/lib/config.ts +1 -1
- package/src/lib/platforms.ts +1 -1
- package/src/lib/skill-config.ts +2 -2
- package/src/lib/skills.test.ts +2 -2
- package/src/lib/skills.ts +5 -5
- package/src/lib/tools.ts +3 -3
- package/src/lib/types.test.ts +1 -1
- package/src/lib/version.test.ts +1 -1
- 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.js +0 -1008
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import { uninstallSkill } from '../lib/skills
|
|
3
|
-
import { getBundledTools, isToolInstalled } from '../lib/tools
|
|
2
|
+
import { uninstallSkill } from '../lib/skills';
|
|
3
|
+
import { getBundledTools, isToolInstalled } from '../lib/tools';
|
|
4
4
|
|
|
5
5
|
export async function uninstallCommand(toolName: string): Promise<void> {
|
|
6
6
|
const tools = getBundledTools();
|
package/src/commands/update.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Re-export types and utilities for potential programmatic usage
|
|
2
|
-
export * from './lib/types
|
|
3
|
-
export * from './lib/config
|
|
4
|
-
export * from './lib/skills
|
|
5
|
-
export * from './lib/version
|
|
2
|
+
export * from './lib/types';
|
|
3
|
+
export * from './lib/config';
|
|
4
|
+
export * from './lib/skills';
|
|
5
|
+
export * from './lib/version';
|
package/src/lib/agents.ts
CHANGED
|
@@ -2,10 +2,10 @@ import { existsSync, readdirSync, readFileSync, writeFileSync, unlinkSync, mkdir
|
|
|
2
2
|
import { join, dirname } from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import YAML from 'yaml';
|
|
5
|
-
import { loadConfig } from './config
|
|
6
|
-
import { Platform } from './types
|
|
7
|
-
import { getAgentsPath } from './platforms
|
|
8
|
-
import { loadToolManifest } from './tools
|
|
5
|
+
import { loadConfig } from './config';
|
|
6
|
+
import { Platform } from './types';
|
|
7
|
+
import { getAgentsPath } from './platforms';
|
|
8
|
+
import { loadToolManifest } from './tools';
|
|
9
9
|
|
|
10
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
11
|
const BUNDLED_TOOLS_DIR = join(__dirname, '../tools');
|
package/src/lib/config.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
|
2
2
|
import { homedir } from 'os';
|
|
3
3
|
import { join } from 'path';
|
|
4
4
|
import YAML from 'yaml';
|
|
5
|
-
import { Platform, BuiltInOutput, type DroidConfig, type LegacyDroidConfig, type SkillOverrides, type AutoUpdateConfig } from './types
|
|
5
|
+
import { Platform, BuiltInOutput, type DroidConfig, type LegacyDroidConfig, type SkillOverrides, type AutoUpdateConfig } from './types';
|
|
6
6
|
|
|
7
7
|
const CONFIG_DIR = join(homedir(), '.droid');
|
|
8
8
|
const CONFIG_FILE = join(CONFIG_DIR, 'config.yaml');
|
package/src/lib/platforms.ts
CHANGED
package/src/lib/skill-config.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
|
-
import { saveSkillOverrides, loadConfig, loadSkillOverrides } from './config
|
|
4
|
-
import { ConfigOptionType, type SkillOverrides, type ConfigOption } from './types
|
|
3
|
+
import { saveSkillOverrides, loadConfig, loadSkillOverrides } from './config';
|
|
4
|
+
import { ConfigOptionType, type SkillOverrides, type ConfigOption } from './types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Prompt user to configure a skill after install
|
package/src/lib/skills.test.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { join } from 'path';
|
|
|
4
4
|
import { tmpdir } from 'os';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
6
|
import YAML from 'yaml';
|
|
7
|
-
import { Platform, SkillStatus } from './types
|
|
7
|
+
import { Platform, SkillStatus } from './types';
|
|
8
8
|
import {
|
|
9
9
|
getSkillsInstallPath,
|
|
10
10
|
getCommandsInstallPath,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
getSkillStatusDisplay,
|
|
13
13
|
getBundledSkillsDir,
|
|
14
14
|
loadSkillManifest,
|
|
15
|
-
} from './skills
|
|
15
|
+
} from './skills';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Parse YAML frontmatter from markdown content
|
package/src/lib/skills.ts
CHANGED
|
@@ -2,11 +2,11 @@ import { existsSync, readdirSync, readFileSync, mkdirSync, writeFileSync, rmSync
|
|
|
2
2
|
import { join, dirname } from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import YAML from 'yaml';
|
|
5
|
-
import { loadConfig, saveConfig } from './config
|
|
6
|
-
import { Platform, SkillStatus, type SkillManifest, type InstalledSkill, getPlatformTools, setPlatformTools } from './types
|
|
7
|
-
import { getInstalledAgentsDir, installAgentFromPath, uninstallAgent, isAgentInstalled } from './agents
|
|
8
|
-
import { getSkillsPath, getCommandsPath, getConfigPath } from './platforms
|
|
9
|
-
import { loadToolManifest } from './tools
|
|
5
|
+
import { loadConfig, saveConfig } from './config';
|
|
6
|
+
import { Platform, SkillStatus, type SkillManifest, type InstalledSkill, getPlatformTools, setPlatformTools } from './types';
|
|
7
|
+
import { getInstalledAgentsDir, installAgentFromPath, uninstallAgent, isAgentInstalled } from './agents';
|
|
8
|
+
import { getSkillsPath, getCommandsPath, getConfigPath } from './platforms';
|
|
9
|
+
import { loadToolManifest } from './tools';
|
|
10
10
|
|
|
11
11
|
// Marker comments for CLAUDE.md skill registration
|
|
12
12
|
const DROID_SKILLS_START = '<!-- droid-skills-start -->';
|
package/src/lib/tools.ts
CHANGED
|
@@ -2,9 +2,9 @@ import { existsSync, readdirSync, readFileSync } from 'fs';
|
|
|
2
2
|
import { join, dirname } from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import YAML from 'yaml';
|
|
5
|
-
import { loadConfig } from './config
|
|
6
|
-
import { type ToolManifest, type ToolIncludes, getPlatformTools } from './types
|
|
7
|
-
import { compareSemver } from './version
|
|
5
|
+
import { loadConfig } from './config';
|
|
6
|
+
import { type ToolManifest, type ToolIncludes, getPlatformTools } from './types';
|
|
7
|
+
import { compareSemver } from './version';
|
|
8
8
|
|
|
9
9
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
10
|
const BUNDLED_TOOLS_DIR = join(__dirname, '../tools');
|
package/src/lib/types.test.ts
CHANGED
package/src/lib/version.test.ts
CHANGED
package/dist/bin/droid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"droid.js","sourceRoot":"","sources":["../../src/bin/droid.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;KACxD,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;KACrD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,OAAO,EAAE,qBAAqB,CAAC;KACtC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,qCAAqC;AACrC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,UAAU,EAAE,CAAC;AACf,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
package/dist/commands/config.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { execSync } from 'child_process';
|
|
3
|
-
import { loadConfig, getConfigPath, getConfigValue, setConfigValue, configExists, } from '../lib/config.js';
|
|
4
|
-
export async function configCommand(options) {
|
|
5
|
-
// Handle --edit flag
|
|
6
|
-
if (options.edit) {
|
|
7
|
-
const configPath = getConfigPath();
|
|
8
|
-
const editor = process.env.EDITOR || 'vim';
|
|
9
|
-
if (!configExists()) {
|
|
10
|
-
console.log(chalk.yellow('No config file exists yet. Run `droid setup` first.'));
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
console.log(chalk.gray(`Opening ${configPath} in ${editor}...`));
|
|
14
|
-
try {
|
|
15
|
-
execSync(`${editor} "${configPath}"`, { stdio: 'inherit' });
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
console.error(chalk.red('Failed to open editor'));
|
|
19
|
-
}
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
// Handle --get flag
|
|
23
|
-
if (options.get) {
|
|
24
|
-
const value = getConfigValue(options.get);
|
|
25
|
-
if (value === undefined) {
|
|
26
|
-
console.log(chalk.yellow(`Config key '${options.get}' not found`));
|
|
27
|
-
process.exit(1);
|
|
28
|
-
}
|
|
29
|
-
if (typeof value === 'object') {
|
|
30
|
-
console.log(JSON.stringify(value, null, 2));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
console.log(value);
|
|
34
|
-
}
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
// Handle --set flag
|
|
38
|
-
if (options.set) {
|
|
39
|
-
const match = options.set.match(/^([^=]+)=(.*)$/);
|
|
40
|
-
if (!match) {
|
|
41
|
-
console.error(chalk.red('Invalid format. Use: --set key=value'));
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
const [, key, rawValue] = match;
|
|
45
|
-
// Try to parse as JSON, otherwise use as string
|
|
46
|
-
let value;
|
|
47
|
-
try {
|
|
48
|
-
value = JSON.parse(rawValue);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
value = rawValue;
|
|
52
|
-
}
|
|
53
|
-
setConfigValue(key, value);
|
|
54
|
-
console.log(chalk.green(`ā Set ${key} = ${JSON.stringify(value)}`));
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
// Default: show full config
|
|
58
|
-
if (!configExists()) {
|
|
59
|
-
console.log(chalk.yellow('No config file exists yet. Run `droid setup` first.'));
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
const config = loadConfig();
|
|
63
|
-
console.log(chalk.bold('\nš Droid Config\n'));
|
|
64
|
-
console.log(chalk.gray(`Path: ${getConfigPath()}\n`));
|
|
65
|
-
console.log(JSON.stringify(config, null, 2));
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/install.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { installSkill } from '../lib/skills.js';
|
|
3
|
-
import { getBundledTools, isToolInstalled } from '../lib/tools.js';
|
|
4
|
-
import { promptForSkillConfig } from '../lib/skill-config.js';
|
|
5
|
-
export async function installCommand(toolName) {
|
|
6
|
-
// Check if tool exists
|
|
7
|
-
const tools = getBundledTools();
|
|
8
|
-
const tool = tools.find((t) => t.name === toolName);
|
|
9
|
-
if (!tool) {
|
|
10
|
-
console.error(chalk.red(`\nā Tool '${toolName}' not found`));
|
|
11
|
-
console.log(chalk.gray('\nAvailable tools:'));
|
|
12
|
-
for (const t of tools) {
|
|
13
|
-
console.log(chalk.gray(` - ${t.name}`));
|
|
14
|
-
}
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
// Check if already installed
|
|
18
|
-
if (isToolInstalled(toolName)) {
|
|
19
|
-
console.log(chalk.yellow(`\nā Tool '${toolName}' is already installed`));
|
|
20
|
-
console.log(chalk.gray('Use `droid update` to update it, or uninstall first.'));
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
console.log(chalk.bold(`\nš¤ Installing ${toolName}...\n`));
|
|
24
|
-
// Install via primary skill
|
|
25
|
-
const primarySkill = tool.includes.skills.find(s => s.required)?.name || toolName;
|
|
26
|
-
const result = installSkill(primarySkill);
|
|
27
|
-
if (result.success) {
|
|
28
|
-
console.log(chalk.green(`ā Installed ${toolName}`));
|
|
29
|
-
// Check if tool has configurable options
|
|
30
|
-
if (tool.config_schema && Object.keys(tool.config_schema).length > 0) {
|
|
31
|
-
// If any config option lacks a default, go straight to config (it's required)
|
|
32
|
-
const hasRequiredConfig = Object.values(tool.config_schema).some((option) => option.default === undefined);
|
|
33
|
-
await promptForSkillConfig(primarySkill, tool.config_schema, !hasRequiredConfig);
|
|
34
|
-
}
|
|
35
|
-
// Show next steps
|
|
36
|
-
console.log(chalk.gray('\nNext steps:'));
|
|
37
|
-
console.log(chalk.gray(' - Run your AI tool to start using it'));
|
|
38
|
-
console.log(chalk.gray(` - Reconfigure anytime with \`droid\` ā Configure`));
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
console.error(chalk.red(`ā ${result.message}`));
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=install.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.js
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
import inquirer from 'inquirer';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { execSync } from 'child_process';
|
|
4
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
5
|
-
import { join } from 'path';
|
|
6
|
-
import { homedir } from 'os';
|
|
7
|
-
import { loadConfig, saveConfig, configExists } from '../lib/config.js';
|
|
8
|
-
import { getBundledSkills } from '../lib/skills.js';
|
|
9
|
-
import { Platform, BuiltInOutput } from '../lib/types.js';
|
|
10
|
-
/**
|
|
11
|
-
* Permissions droid needs to operate without constant prompts
|
|
12
|
-
*/
|
|
13
|
-
const DROID_PERMISSIONS = [
|
|
14
|
-
'Read(~/.droid/**)',
|
|
15
|
-
'Write(~/.droid/**)',
|
|
16
|
-
'Edit(~/.droid/**)',
|
|
17
|
-
'Glob(~/.droid/**)',
|
|
18
|
-
'Grep(~/.droid/**)',
|
|
19
|
-
];
|
|
20
|
-
/**
|
|
21
|
-
* Detect which platform is installed
|
|
22
|
-
*/
|
|
23
|
-
function detectPlatform() {
|
|
24
|
-
try {
|
|
25
|
-
execSync('claude --version', { stdio: 'ignore' });
|
|
26
|
-
return Platform.ClaudeCode;
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
// Claude Code not found
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
execSync('opencode --version', { stdio: 'ignore' });
|
|
33
|
-
return Platform.OpenCode;
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
// OpenCode not found
|
|
37
|
-
}
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Try to get git username
|
|
42
|
-
*/
|
|
43
|
-
function detectGitUsername() {
|
|
44
|
-
try {
|
|
45
|
-
return execSync('git config user.name', { encoding: 'utf-8' }).trim();
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
return '';
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* The opencode-skills plugin name for OpenCode
|
|
53
|
-
* This plugin enables Claude Code-style skills in OpenCode
|
|
54
|
-
* @see https://github.com/malhashemi/opencode-skills
|
|
55
|
-
*/
|
|
56
|
-
const OPENCODE_SKILLS_PLUGIN = 'opencode-skills';
|
|
57
|
-
/**
|
|
58
|
-
* Configure platform permissions for droid
|
|
59
|
-
*/
|
|
60
|
-
export function configurePlatformPermissions(platform) {
|
|
61
|
-
const added = [];
|
|
62
|
-
if (platform === Platform.ClaudeCode) {
|
|
63
|
-
const settingsPath = join(homedir(), '.claude', 'settings.json');
|
|
64
|
-
// Ensure .claude directory exists
|
|
65
|
-
const claudeDir = join(homedir(), '.claude');
|
|
66
|
-
if (!existsSync(claudeDir)) {
|
|
67
|
-
mkdirSync(claudeDir, { recursive: true });
|
|
68
|
-
}
|
|
69
|
-
// Load or create settings
|
|
70
|
-
let settings = {};
|
|
71
|
-
if (existsSync(settingsPath)) {
|
|
72
|
-
try {
|
|
73
|
-
settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
console.warn(chalk.yellow('ā Claude Code settings.json appears corrupted, resetting permissions'));
|
|
77
|
-
settings = {};
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Ensure permissions structure exists
|
|
81
|
-
if (!settings.permissions) {
|
|
82
|
-
settings.permissions = {};
|
|
83
|
-
}
|
|
84
|
-
if (!Array.isArray(settings.permissions.allow)) {
|
|
85
|
-
settings.permissions.allow = [];
|
|
86
|
-
}
|
|
87
|
-
// Add missing permissions
|
|
88
|
-
for (const perm of DROID_PERMISSIONS) {
|
|
89
|
-
if (!settings.permissions.allow.includes(perm)) {
|
|
90
|
-
settings.permissions.allow.push(perm);
|
|
91
|
-
added.push(perm);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// Save if we added anything
|
|
95
|
-
if (added.length > 0) {
|
|
96
|
-
try {
|
|
97
|
-
writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
|
|
98
|
-
}
|
|
99
|
-
catch (e) {
|
|
100
|
-
const message = e instanceof Error ? e.message : 'Unknown error';
|
|
101
|
-
return { added: [], alreadyPresent: false, error: `Failed to update Claude Code settings: ${message}` };
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return { added, alreadyPresent: added.length === 0 };
|
|
105
|
-
}
|
|
106
|
-
if (platform === Platform.OpenCode) {
|
|
107
|
-
// OpenCode uses opencode.json for config
|
|
108
|
-
// Check global config location: ~/.config/opencode/opencode.json
|
|
109
|
-
const globalConfigDir = join(homedir(), '.config', 'opencode');
|
|
110
|
-
const globalConfigPath = join(globalConfigDir, 'opencode.json');
|
|
111
|
-
// Ensure config directory exists
|
|
112
|
-
if (!existsSync(globalConfigDir)) {
|
|
113
|
-
mkdirSync(globalConfigDir, { recursive: true });
|
|
114
|
-
}
|
|
115
|
-
// Load or create config
|
|
116
|
-
let config = {};
|
|
117
|
-
if (existsSync(globalConfigPath)) {
|
|
118
|
-
try {
|
|
119
|
-
config = JSON.parse(readFileSync(globalConfigPath, 'utf-8'));
|
|
120
|
-
}
|
|
121
|
-
catch {
|
|
122
|
-
console.warn(chalk.yellow('ā OpenCode config appears corrupted, resetting'));
|
|
123
|
-
config = {};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
// Ensure plugin array exists
|
|
127
|
-
if (!Array.isArray(config.plugin)) {
|
|
128
|
-
config.plugin = [];
|
|
129
|
-
}
|
|
130
|
-
// Add opencode-skills plugin if not present
|
|
131
|
-
if (!config.plugin.includes(OPENCODE_SKILLS_PLUGIN)) {
|
|
132
|
-
config.plugin.push(OPENCODE_SKILLS_PLUGIN);
|
|
133
|
-
added.push(OPENCODE_SKILLS_PLUGIN);
|
|
134
|
-
}
|
|
135
|
-
// Save if we added anything
|
|
136
|
-
if (added.length > 0) {
|
|
137
|
-
try {
|
|
138
|
-
writeFileSync(globalConfigPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
139
|
-
}
|
|
140
|
-
catch (e) {
|
|
141
|
-
const message = e instanceof Error ? e.message : 'Unknown error';
|
|
142
|
-
return { added: [], alreadyPresent: false, error: `Failed to update OpenCode config: ${message}` };
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return { added, alreadyPresent: added.length === 0 };
|
|
146
|
-
}
|
|
147
|
-
return { added: [], alreadyPresent: true };
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Get available output options (built-in + skills that provide output)
|
|
151
|
-
*/
|
|
152
|
-
function getOutputOptions() {
|
|
153
|
-
const options = [
|
|
154
|
-
{ name: 'Terminal (display in CLI)', value: BuiltInOutput.Terminal },
|
|
155
|
-
{ name: 'Editor ($EDITOR)', value: BuiltInOutput.Editor },
|
|
156
|
-
];
|
|
157
|
-
// Add skills that provide output targets
|
|
158
|
-
const skills = getBundledSkills();
|
|
159
|
-
for (const skill of skills) {
|
|
160
|
-
if (skill.provides_output) {
|
|
161
|
-
options.push({
|
|
162
|
-
name: `${skill.name} (${skill.description})`,
|
|
163
|
-
value: skill.name,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return options;
|
|
168
|
-
}
|
|
169
|
-
export async function setupCommand() {
|
|
170
|
-
console.log(chalk.bold('\nš¤ Droid Setup\n'));
|
|
171
|
-
const hasExistingConfig = configExists();
|
|
172
|
-
if (hasExistingConfig) {
|
|
173
|
-
const { overwrite } = await inquirer.prompt([
|
|
174
|
-
{
|
|
175
|
-
type: 'confirm',
|
|
176
|
-
name: 'overwrite',
|
|
177
|
-
message: 'Config already exists. Overwrite?',
|
|
178
|
-
default: false,
|
|
179
|
-
},
|
|
180
|
-
]);
|
|
181
|
-
if (!overwrite) {
|
|
182
|
-
console.log(chalk.gray('Setup cancelled.'));
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// Detect platform
|
|
187
|
-
const detectedPlatform = detectPlatform();
|
|
188
|
-
if (detectedPlatform) {
|
|
189
|
-
console.log(chalk.green(`ā Detected ${detectedPlatform}\n`));
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
console.log(chalk.yellow('ā No platform detected (Claude Code or OpenCode)\n'));
|
|
193
|
-
}
|
|
194
|
-
// Detect git username
|
|
195
|
-
const detectedGitUsername = detectGitUsername();
|
|
196
|
-
// Get dynamic output options
|
|
197
|
-
const outputOptions = getOutputOptions();
|
|
198
|
-
const answers = await inquirer.prompt([
|
|
199
|
-
{
|
|
200
|
-
type: 'list',
|
|
201
|
-
name: 'platform',
|
|
202
|
-
message: 'Which platform are you using?',
|
|
203
|
-
choices: [
|
|
204
|
-
{ name: 'Claude Code', value: Platform.ClaudeCode },
|
|
205
|
-
{ name: 'OpenCode', value: Platform.OpenCode },
|
|
206
|
-
],
|
|
207
|
-
default: detectedPlatform || Platform.ClaudeCode,
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
type: 'input',
|
|
211
|
-
name: 'user_mention',
|
|
212
|
-
message: 'What @mention should be used for you?',
|
|
213
|
-
default: '@user',
|
|
214
|
-
filter: (input) => {
|
|
215
|
-
// Auto-add @ prefix if missing
|
|
216
|
-
return input.startsWith('@') ? input : `@${input}`;
|
|
217
|
-
},
|
|
218
|
-
},
|
|
219
|
-
{
|
|
220
|
-
type: 'list',
|
|
221
|
-
name: 'output_preference',
|
|
222
|
-
message: 'Default output preference for skill results?',
|
|
223
|
-
choices: outputOptions,
|
|
224
|
-
default: BuiltInOutput.Terminal,
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
type: 'input',
|
|
228
|
-
name: 'git_username',
|
|
229
|
-
message: 'Git username for attribution?',
|
|
230
|
-
default: detectedGitUsername || '',
|
|
231
|
-
},
|
|
232
|
-
]);
|
|
233
|
-
const existingConfig = loadConfig();
|
|
234
|
-
const config = {
|
|
235
|
-
...existingConfig,
|
|
236
|
-
platform: answers.platform,
|
|
237
|
-
user_mention: answers.user_mention,
|
|
238
|
-
output_preference: answers.output_preference,
|
|
239
|
-
git_username: answers.git_username,
|
|
240
|
-
};
|
|
241
|
-
saveConfig(config);
|
|
242
|
-
console.log(chalk.green('\nā Config saved to ~/.droid/config.yaml'));
|
|
243
|
-
// Configure platform permissions/plugins
|
|
244
|
-
const { added, alreadyPresent, error } = configurePlatformPermissions(answers.platform);
|
|
245
|
-
if (error) {
|
|
246
|
-
console.log(chalk.red(`ā ${error}`));
|
|
247
|
-
console.log(chalk.yellow(' You may need to manually configure your platform'));
|
|
248
|
-
}
|
|
249
|
-
else if (answers.platform === Platform.ClaudeCode) {
|
|
250
|
-
if (added.length > 0) {
|
|
251
|
-
console.log(chalk.green(`ā Added droid permissions to Claude Code settings`));
|
|
252
|
-
}
|
|
253
|
-
else if (alreadyPresent) {
|
|
254
|
-
console.log(chalk.gray(` Droid permissions already configured in Claude Code`));
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
else if (answers.platform === Platform.OpenCode) {
|
|
258
|
-
if (added.length > 0) {
|
|
259
|
-
console.log(chalk.green(`ā Added opencode-skills plugin to OpenCode config`));
|
|
260
|
-
console.log(chalk.gray(` This enables Claude Code-style skills in OpenCode`));
|
|
261
|
-
console.log(chalk.gray(` Restart OpenCode to activate the plugin`));
|
|
262
|
-
}
|
|
263
|
-
else if (alreadyPresent) {
|
|
264
|
-
console.log(chalk.gray(` opencode-skills plugin already configured in OpenCode`));
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
console.log(chalk.gray('\nRun `droid skills` to browse and install skills.'));
|
|
268
|
-
}
|
|
269
|
-
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAA2C,MAAM,iBAAiB,CAAC;AAEnG;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAkB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAEjE,kCAAkC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,0BAA0B;QAC1B,IAAI,QAAQ,GAA4E,EAAE,CAAC;QAC3F,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;gBACnG,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;QAClC,CAAC;QAED,0BAA0B;QAC1B,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACjE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,0CAA0C,OAAO,EAAE,EAAE,CAAC;YAC1G,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACnC,yCAAyC;QACzC,iEAAiE;QACjE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAEhE,iCAAiC;QACjC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,wBAAwB;QACxB,IAAI,MAAM,GAA0B,EAAE,CAAC;QACvC,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBAC7E,MAAM,GAAG,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,CAAC;QAED,4BAA4B;QAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACjE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,OAAO,EAAE,EAAE,CAAC;YACrG,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAqD;QAChE,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE;QACpE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE;KAC1D,CAAC;IAEF,yCAAyC;IACzC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,GAAG;gBAC5C,KAAK,EAAE,KAAK,CAAC,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE9C,MAAM,iBAAiB,GAAG,YAAY,EAAE,CAAC;IACzC,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAyB;YAClE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,mCAAmC;gBAC5C,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,MAAM,gBAAgB,GAAG,cAAc,EAAE,CAAC;IAC1C,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,gBAAgB,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,sBAAsB;IACtB,MAAM,mBAAmB,GAAG,iBAAiB,EAAE,CAAC;IAEhD,6BAA6B;IAC7B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAKlC;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE;gBACnD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;aAC/C;YACD,OAAO,EAAE,gBAAgB,IAAI,QAAQ,CAAC,UAAU;SACjD;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,uCAAuC;YAChD,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxB,+BAA+B;gBAC/B,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YACrD,CAAC;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,8CAA8C;YACvD,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,aAAa,CAAC,QAAQ;SAChC;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,mBAAmB,IAAI,EAAE;SACnC;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IACpC,MAAM,MAAM,GAAgB;QAC1B,GAAG,cAAc;QACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC;IAEF,UAAU,CAAC,MAAM,CAAC,CAAC;IAEnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAErE,yCAAyC;IACzC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;AAChF,CAAC"}
|