@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.
Files changed (125) hide show
  1. package/.claude/CLAUDE.md +18 -40
  2. package/AGENTS.md +75 -0
  3. package/CHANGELOG.md +25 -0
  4. package/dist/bin/droid.js +3064 -54
  5. package/dist/commands/setup.d.ts +1 -1
  6. package/dist/commands/setup.d.ts.map +1 -1
  7. package/dist/commands/tui/components/Badge.d.ts +13 -0
  8. package/dist/commands/tui/components/Badge.d.ts.map +1 -0
  9. package/dist/commands/tui/components/Markdown.d.ts +5 -0
  10. package/dist/commands/tui/components/Markdown.d.ts.map +1 -0
  11. package/dist/commands/tui/components/SettingsDetails.d.ts +5 -0
  12. package/dist/commands/tui/components/SettingsDetails.d.ts.map +1 -0
  13. package/dist/commands/tui/components/TabBar.d.ts +10 -0
  14. package/dist/commands/tui/components/TabBar.d.ts.map +1 -0
  15. package/dist/commands/tui/components/ToolDetails.d.ts +8 -0
  16. package/dist/commands/tui/components/ToolDetails.d.ts.map +1 -0
  17. package/dist/commands/tui/components/ToolItem.d.ts +9 -0
  18. package/dist/commands/tui/components/ToolItem.d.ts.map +1 -0
  19. package/dist/commands/tui/constants.d.ts +16 -0
  20. package/dist/commands/tui/constants.d.ts.map +1 -0
  21. package/dist/commands/tui/hooks/useAppUpdate.d.ts +13 -0
  22. package/dist/commands/tui/hooks/useAppUpdate.d.ts.map +1 -0
  23. package/dist/commands/tui/hooks/useToolUpdates.d.ts +22 -0
  24. package/dist/commands/tui/hooks/useToolUpdates.d.ts.map +1 -0
  25. package/dist/commands/tui/types.d.ts +5 -0
  26. package/dist/commands/tui/types.d.ts.map +1 -0
  27. package/dist/commands/tui/views/ReadmeViewer.d.ts +7 -0
  28. package/dist/commands/tui/views/ReadmeViewer.d.ts.map +1 -0
  29. package/dist/commands/tui/views/SetupScreen.d.ts +8 -0
  30. package/dist/commands/tui/views/SetupScreen.d.ts.map +1 -0
  31. package/dist/commands/tui/views/SkillConfigScreen.d.ts +8 -0
  32. package/dist/commands/tui/views/SkillConfigScreen.d.ts.map +1 -0
  33. package/dist/commands/tui/views/ToolExplorer.d.ts +8 -0
  34. package/dist/commands/tui/views/ToolExplorer.d.ts.map +1 -0
  35. package/dist/commands/tui/views/ToolUpdatePrompt.d.ts +10 -0
  36. package/dist/commands/tui/views/ToolUpdatePrompt.d.ts.map +1 -0
  37. package/dist/commands/tui/views/WelcomeScreen.d.ts +11 -0
  38. package/dist/commands/tui/views/WelcomeScreen.d.ts.map +1 -0
  39. package/dist/commands/tui.d.ts.map +1 -1
  40. package/dist/index.d.ts +4 -4
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +952 -6
  43. package/dist/lib/agents.d.ts +1 -1
  44. package/dist/lib/agents.d.ts.map +1 -1
  45. package/dist/lib/config.d.ts +1 -1
  46. package/dist/lib/config.d.ts.map +1 -1
  47. package/dist/lib/platforms.d.ts +1 -1
  48. package/dist/lib/platforms.d.ts.map +1 -1
  49. package/dist/lib/skill-config.d.ts +1 -1
  50. package/dist/lib/skill-config.d.ts.map +1 -1
  51. package/dist/lib/skills.d.ts +1 -1
  52. package/dist/lib/skills.d.ts.map +1 -1
  53. package/dist/lib/tools.d.ts +1 -1
  54. package/dist/lib/tools.d.ts.map +1 -1
  55. package/package.json +3 -3
  56. package/scripts/build.ts +78 -0
  57. package/src/bin/droid.ts +8 -8
  58. package/src/commands/config.ts +1 -1
  59. package/src/commands/install.ts +3 -3
  60. package/src/commands/setup.test.ts +1 -1
  61. package/src/commands/setup.ts +3 -3
  62. package/src/commands/skills.ts +4 -4
  63. package/src/commands/tui/components/Badge.tsx +86 -0
  64. package/src/commands/tui/components/Markdown.tsx +48 -0
  65. package/src/commands/tui/components/SettingsDetails.tsx +70 -0
  66. package/src/commands/tui/components/TabBar.tsx +26 -0
  67. package/src/commands/tui/components/ToolDetails.tsx +117 -0
  68. package/src/commands/tui/components/ToolItem.tsx +39 -0
  69. package/src/commands/tui/constants.ts +17 -0
  70. package/src/commands/tui/hooks/useAppUpdate.ts +67 -0
  71. package/src/commands/tui/hooks/useToolUpdates.ts +110 -0
  72. package/src/commands/tui/types.ts +4 -0
  73. package/src/commands/tui/views/ReadmeViewer.tsx +93 -0
  74. package/src/commands/tui/views/SetupScreen.tsx +242 -0
  75. package/src/commands/tui/views/SkillConfigScreen.tsx +278 -0
  76. package/src/commands/tui/views/ToolExplorer.tsx +190 -0
  77. package/src/commands/tui/views/ToolUpdatePrompt.tsx +109 -0
  78. package/src/commands/tui/views/WelcomeScreen.tsx +149 -0
  79. package/src/commands/tui.tsx +65 -1587
  80. package/src/commands/uninstall.ts +2 -2
  81. package/src/commands/update.ts +1 -1
  82. package/src/index.ts +4 -4
  83. package/src/lib/agents.ts +4 -4
  84. package/src/lib/config.ts +1 -1
  85. package/src/lib/platforms.ts +1 -1
  86. package/src/lib/skill-config.ts +2 -2
  87. package/src/lib/skills.test.ts +2 -2
  88. package/src/lib/skills.ts +5 -5
  89. package/src/lib/tools.ts +3 -3
  90. package/src/lib/types.test.ts +1 -1
  91. package/src/lib/version.test.ts +1 -1
  92. package/dist/bin/droid.js.map +0 -1
  93. package/dist/commands/config.js +0 -67
  94. package/dist/commands/config.js.map +0 -1
  95. package/dist/commands/install.js +0 -45
  96. package/dist/commands/install.js.map +0 -1
  97. package/dist/commands/setup.js +0 -269
  98. package/dist/commands/setup.js.map +0 -1
  99. package/dist/commands/skills.js +0 -144
  100. package/dist/commands/skills.js.map +0 -1
  101. package/dist/commands/tui.js +0 -1008
  102. package/dist/commands/tui.js.map +0 -1
  103. package/dist/commands/uninstall.js +0 -26
  104. package/dist/commands/uninstall.js.map +0 -1
  105. package/dist/commands/update.js +0 -45
  106. package/dist/commands/update.js.map +0 -1
  107. package/dist/index.js.map +0 -1
  108. package/dist/lib/agents.js +0 -248
  109. package/dist/lib/agents.js.map +0 -1
  110. package/dist/lib/config.js +0 -196
  111. package/dist/lib/config.js.map +0 -1
  112. package/dist/lib/platforms.js +0 -52
  113. package/dist/lib/platforms.js.map +0 -1
  114. package/dist/lib/quotes.js +0 -24
  115. package/dist/lib/quotes.js.map +0 -1
  116. package/dist/lib/skill-config.js +0 -80
  117. package/dist/lib/skill-config.js.map +0 -1
  118. package/dist/lib/skills.js +0 -582
  119. package/dist/lib/skills.js.map +0 -1
  120. package/dist/lib/tools.js +0 -145
  121. package/dist/lib/tools.js.map +0 -1
  122. package/dist/lib/types.js +0 -50
  123. package/dist/lib/types.js.map +0 -1
  124. package/dist/lib/version.js +0 -100
  125. package/dist/lib/version.js.map +0 -1
package/.claude/CLAUDE.md CHANGED
@@ -1,52 +1,30 @@
1
1
  # CLAUDE.md
2
2
 
3
- Project instructions for Claude Code when working in this repository.
3
+ @../AGENTS.md
4
4
 
5
- ## Project Overview
5
+ ## Claude-Specific Instructions
6
6
 
7
- Droid is a TUI dashboard for managing AI tools. Each tool bundles related skills, commands, and agents. Installs to Claude Code (`~/.claude/`) and OpenCode (`~/.config/opencode/`).
8
-
9
- ## Build & Test
10
-
11
- ```bash
12
- bun run build # Compile TypeScript and copy tools to dist/
13
- bun run dev # Watch mode
14
- bun run test # Run tests
15
- bun run lint # Run ESLint
16
- bun run start # Run the TUI (bun dist/bin/droid.js)
17
- ```
18
-
19
- ## Git Rules
7
+ ### Git Rules
20
8
 
21
9
  - **NEVER push directly to main**. Always create a branch and PR, even for small changes. The only exception is if the user explicitly says "push to main" in their message.
22
10
  - Branch naming: `tf/<ticket-or-description>` (e.g., `tf/tools-architecture`)
23
- - Use changesets for version bumps: `npx changeset`
24
11
  - **Changeset package name must be `"@orderful/droid"`** (not `"droid"`)
25
12
 
26
- ## Structure
13
+ ### Changesets (IMPORTANT)
27
14
 
28
- ```
29
- src/
30
- ├── bin/ # CLI entry point
31
- ├── commands/ # CLI commands (tui.tsx is the main dashboard)
32
- ├── lib/ # Core logic (tools.ts, skills.ts, agents.ts, config.ts)
33
- └── tools/ # Bundled tools
34
- └── {tool}/
35
- ├── TOOL.yaml # Tool manifest (version, includes, config)
36
- ├── skills/{skill}/
37
- │ ├── SKILL.md # Frontmatter + instructions
38
- │ └── references/ # Optional context files
39
- ├── commands/
40
- │ └── {command}.md # Frontmatter + instructions
41
- └── agents/
42
- └── {agent}.md # Frontmatter + instructions
43
- ```
15
+ **Before creating a PR**, add a changeset describing the change:
44
16
 
45
- ## Key Patterns
17
+ ```bash
18
+ # Create .changeset/{name}.md manually (npx changeset is interactive)
19
+ mkdir -p .changeset && cat > .changeset/descriptive-name.md << 'EOF'
20
+ ---
21
+ "@orderful/droid": patch # or minor/major
22
+ ---
23
+
24
+ Brief description of the change
25
+ EOF
26
+ ```
46
27
 
47
- - Tools are the user-facing abstraction over skills, commands, and agents
48
- - `TOOL.yaml` defines tool-level metadata and lists what's included (just names)
49
- - Each artifact (.md file) owns its metadata in YAML frontmatter
50
- - Skills use folders (can have `references/` subdir), commands/agents are flat files
51
- - Install targets: `~/.claude/skills/`, `~/.claude/commands/`, `~/.claude/agents/`
52
- - TUI uses Ink (React for CLI)
28
+ - **patch**: Bug fixes, small improvements, internal refactors
29
+ - **minor**: New features, new tools/skills/commands
30
+ - **major**: Breaking changes
package/AGENTS.md ADDED
@@ -0,0 +1,75 @@
1
+ # AGENTS.md
2
+
3
+ Project instructions for AI coding assistants.
4
+
5
+ ## Overview
6
+
7
+ Droid is a TUI dashboard for managing AI tools. Each tool bundles related skills, commands, and agents. Installs to Claude Code (`~/.claude/`) and OpenCode (`~/.config/opencode/`).
8
+
9
+ ## Quick Start
10
+
11
+ ```bash
12
+ bun install # Install dependencies
13
+ bun run build # Compile TypeScript and copy tools to dist/
14
+ bun run dev # Watch mode
15
+ bun run test # Run tests
16
+ bun run lint # Run ESLint
17
+ bun run start # Run the TUI (bun dist/bin/droid.js)
18
+ ```
19
+
20
+ ## Structure
21
+
22
+ ```
23
+ src/
24
+ ├── bin/ # CLI entry point
25
+ ├── commands/ # CLI commands
26
+ │ ├── tui.tsx # Main TUI dashboard (Ink/React)
27
+ │ └── tui/ # TUI components, views, hooks
28
+ ├── lib/ # Core logic (tools.ts, skills.ts, agents.ts, config.ts)
29
+ └── tools/ # Bundled tools
30
+ └── {tool}/
31
+ ├── TOOL.yaml # Tool manifest (version, includes, config)
32
+ ├── skills/{skill}/
33
+ │ ├── SKILL.md # Frontmatter + instructions
34
+ │ └── references/ # Optional context files
35
+ ├── commands/
36
+ │ └── {command}.md # Frontmatter + instructions
37
+ └── agents/
38
+ └── {agent}.md # Frontmatter + instructions
39
+ ```
40
+
41
+ ## Key Patterns
42
+
43
+ - Tools are the user-facing abstraction over skills, commands, and agents
44
+ - `TOOL.yaml` defines tool-level metadata and lists what's included (just names)
45
+ - Each artifact (.md file) owns its metadata in YAML frontmatter
46
+ - Skills use folders (can have `references/` subdir), commands/agents are flat files
47
+ - Install targets: `~/.claude/skills/`, `~/.claude/commands/`, `~/.claude/agents/`
48
+
49
+ ## UI Libraries
50
+
51
+ We use **two** terminal UI libraries for different purposes:
52
+
53
+ | Library | Purpose | Used In |
54
+ |---------|---------|---------|
55
+ | **Ink** | Full React-based TUI dashboard | `tui.tsx`, `tui/components/`, `tui/views/` |
56
+ | **Inquirer** | Simple CLI prompts (select, confirm, input) | `skills.ts`, `setup.ts`, `skill-config.ts` |
57
+
58
+ **Why both?**
59
+ - **Ink** is for the interactive dashboard—stateful, component-based, keyboard navigation
60
+ - **Inquirer** is for quick sequential prompts ("Which tool?", "Configure now? y/n")
61
+
62
+ Don't consolidate them. Using Ink for simple prompts would be overkill.
63
+
64
+ ## Do Not Touch
65
+
66
+ - `.env` files and secrets
67
+ - `node_modules/`, `dist/`
68
+ - User config files (`~/.droid/`)
69
+
70
+ ## Code Style
71
+
72
+ - TypeScript strict mode
73
+ - Prefer `const` over `let`
74
+ - Use Canadian/British spelling (behaviour, colour, favourite)
75
+ - Use "allow list/deny list" not "whitelist/blacklist"
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @orderful/droid
2
2
 
3
+ ## 0.16.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#83](https://github.com/Orderful/droid/pull/83) [`023660a`](https://github.com/Orderful/droid/commit/023660a951ae1674989ae69d16b29e432a198300) Thanks [@frytyler](https://github.com/frytyler)! - Add AGENTS.md standard for cross-AI-tool compatibility
8
+
9
+ Introduces AGENTS.md at repo root with shared project instructions that work across Claude Code, Cursor, Copilot, and other AI coding assistants. CLAUDE.md now imports AGENTS.md and only contains Claude-specific instructions (git rules, changesets).
10
+
11
+ - [#85](https://github.com/Orderful/droid/pull/85) [`d5a1637`](https://github.com/Orderful/droid/commit/d5a1637974805ffb35d93726ec56db4580c556b5) Thanks [@frytyler](https://github.com/frytyler)! - Fix ESM module resolution for npm global installs
12
+
13
+ Switches build from tsc to esbuild bundling. This fixes the ERR_MODULE_NOT_FOUND error when running droid after npm install -g, caused by Node ESM requiring explicit .js extensions that TypeScript doesn't add.
14
+
15
+ ## 0.16.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [#81](https://github.com/Orderful/droid/pull/81) [`b857210`](https://github.com/Orderful/droid/commit/b85721091cb85c95c8ef7fa878de3358ced7952f) Thanks [@frytyler](https://github.com/frytyler)! - Refactor TUI into modular component architecture
20
+ - Extract constants, types, and presentational components (Phase 1)
21
+ - Extract view components: WelcomeScreen, ToolUpdatePrompt, SetupScreen, ReadmeViewer (Phase 2)
22
+ - Extract hooks: useAppUpdate, useToolUpdates (Phase 3)
23
+ - Extract detail components: ToolItem, ToolDetails, SettingsDetails, ToolExplorer, SkillConfigScreen (Phase 4)
24
+ - Consolidate settings UX into single edit flow
25
+ - Add ESLint checking for .tsx files
26
+ - Remove unnecessary .js extensions from imports
27
+
3
28
  ## 0.15.0
4
29
 
5
30
  ### Minor Changes