@link-assistant/hive-mind 1.13.0 → 1.14.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/CHANGELOG.md +16 -0
- package/README.md +34 -1
- package/package.json +1 -1
- package/src/agent.prompts.lib.mjs +2 -3
- package/src/claude.prompts.lib.mjs +2 -3
- package/src/codex.prompts.lib.mjs +2 -3
- package/src/experiments-examples.prompts.lib.mjs +48 -0
- package/src/hive.config.lib.mjs +10 -0
- package/src/hive.mjs +2 -0
- package/src/opencode.prompts.lib.mjs +2 -3
- package/src/solve.config.lib.mjs +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @link-assistant/hive-mind
|
|
2
2
|
|
|
3
|
+
## 1.14.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 3a48254: Add configurable experiments/examples folder paths with ability to disable
|
|
8
|
+
|
|
9
|
+
New CLI options for both `solve` and `hive` commands:
|
|
10
|
+
- `--prompt-experiments-folder <path>`: Path to experiments folder used in system prompt. Set to empty string to disable experiments folder prompt. Default: `./experiments`
|
|
11
|
+
- `--prompt-examples-folder <path>`: Path to examples folder used in system prompt. Set to empty string to disable examples folder prompt. Default: `./examples`
|
|
12
|
+
|
|
13
|
+
Features:
|
|
14
|
+
- Backwards compatible: defaults to `./experiments` and `./examples` as before
|
|
15
|
+
- Custom paths: Specify custom folder paths for experiments and examples
|
|
16
|
+
- Disable functionality: Set to empty string (`''`) to disable the experiments/examples prompt section entirely
|
|
17
|
+
- Works with all AI tools: claude, opencode, codex, and agent
|
|
18
|
+
|
|
3
19
|
## 1.13.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -106,7 +106,40 @@ bun install -g @link-assistant/hive-mind
|
|
|
106
106
|
npm install -g @link-assistant/hive-mind
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
-
### Docker
|
|
109
|
+
### Installing Docker
|
|
110
|
+
|
|
111
|
+
If you don't have Docker installed yet, follow these steps to install Docker Engine on Ubuntu:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Install prerequisites
|
|
115
|
+
sudo apt update
|
|
116
|
+
sudo apt install ca-certificates curl
|
|
117
|
+
|
|
118
|
+
# Add Docker's official GPG key
|
|
119
|
+
sudo install -m 0755 -d /etc/apt/keyrings
|
|
120
|
+
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
|
121
|
+
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
122
|
+
|
|
123
|
+
# Add Docker repository
|
|
124
|
+
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
|
|
125
|
+
Types: deb
|
|
126
|
+
URIs: https://download.docker.com/linux/ubuntu
|
|
127
|
+
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
|
|
128
|
+
Components: stable
|
|
129
|
+
Signed-By: /etc/apt/keyrings/docker.asc
|
|
130
|
+
EOF
|
|
131
|
+
|
|
132
|
+
# Install Docker
|
|
133
|
+
sudo apt update
|
|
134
|
+
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
135
|
+
|
|
136
|
+
# Verify installation
|
|
137
|
+
sudo docker run hello-world
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**For other operating systems** or detailed instructions, see the [official Docker documentation](https://docs.docker.com/engine/install/).
|
|
141
|
+
|
|
142
|
+
### Using Docker
|
|
110
143
|
|
|
111
144
|
Run the Hive Mind using Docker for safer local installation - no manual setup required:
|
|
112
145
|
|
package/package.json
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { getArchitectureCareSubPrompt } from './architecture-care.prompts.lib.mjs';
|
|
7
|
+
import { getExperimentsExamplesSubPrompt } from './experiments-examples.prompts.lib.mjs';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Build the user prompt for Agent
|
|
@@ -137,9 +138,7 @@ ${workspaceInstructions}General guidelines.
|
|
|
137
138
|
- When CI is failing, make sure you download the logs locally and carefully investigate them.
|
|
138
139
|
- When a code or log file has more than 1500 lines, read it in chunks of 1500 lines.
|
|
139
140
|
- When facing a complex problem, do as much tracing as possible and turn on all verbose modes.
|
|
140
|
-
|
|
141
|
-
- When testing your assumptions, use the experiment scripts, and add it to experiments folder.
|
|
142
|
-
- When your experiments can show real world use case of the software, add it to examples folder.
|
|
141
|
+
${getExperimentsExamplesSubPrompt(argv)}
|
|
143
142
|
- When you face something extremely hard, use divide and conquer — it always helps.
|
|
144
143
|
|
|
145
144
|
Initial research.
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { getArchitectureCareSubPrompt } from './architecture-care.prompts.lib.mjs';
|
|
7
|
+
import { getExperimentsExamplesSubPrompt } from './experiments-examples.prompts.lib.mjs';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Build the user prompt for Claude
|
|
@@ -163,9 +164,7 @@ ${workspaceInstructions}General guidelines.
|
|
|
163
164
|
Note: If user says "failing" but tools show "passing", this might indicate stale data - consider downloading fresh logs and checking timestamps to resolve the discrepancy.
|
|
164
165
|
- When a code or log file has more than 1500 lines, read it in chunks of 1500 lines.
|
|
165
166
|
- When facing a complex problem, do as much tracing as possible and turn on all verbose modes.
|
|
166
|
-
|
|
167
|
-
- When testing your assumptions, use the experiment scripts, and add it to experiments folder.
|
|
168
|
-
- When your experiments can show real world use case of the software, add it to examples folder.
|
|
167
|
+
${getExperimentsExamplesSubPrompt(argv)}
|
|
169
168
|
- When you face something extremely hard, use divide and conquer — it always helps.
|
|
170
169
|
|
|
171
170
|
Initial research.
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { getArchitectureCareSubPrompt } from './architecture-care.prompts.lib.mjs';
|
|
7
|
+
import { getExperimentsExamplesSubPrompt } from './experiments-examples.prompts.lib.mjs';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Build the user prompt for Codex
|
|
@@ -144,9 +145,7 @@ ${workspaceInstructions}General guidelines.
|
|
|
144
145
|
Note: If user says "failing" but tools show "passing", this might indicate stale data - consider downloading fresh logs and checking timestamps to resolve the discrepancy.
|
|
145
146
|
- When a code or log file has more than 1500 lines, read it in chunks of 1500 lines.
|
|
146
147
|
- When facing a complex problem, do as much tracing as possible and turn on all verbose modes.
|
|
147
|
-
|
|
148
|
-
- When testing your assumptions, use the experiment scripts, and add it to experiments folder.
|
|
149
|
-
- When your experiments can show real world use case of the software, add it to examples folder.
|
|
148
|
+
${getExperimentsExamplesSubPrompt(argv)}
|
|
150
149
|
- When you face something extremely hard, use divide and conquer — it always helps.
|
|
151
150
|
|
|
152
151
|
Initial research.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Experiments and examples folder prompts module
|
|
3
|
+
* Handles building configurable prompts for experiments/examples folders
|
|
4
|
+
*
|
|
5
|
+
* @see https://github.com/link-assistant/hive-mind/issues/1199
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Build the experiments/examples sub-prompt based on configuration
|
|
10
|
+
* @param {Object} argv - Command line arguments
|
|
11
|
+
* @param {string} argv.promptExperimentsFolder - Path to experiments folder (empty string to disable)
|
|
12
|
+
* @param {string} argv.promptExamplesFolder - Path to examples folder (empty string to disable)
|
|
13
|
+
* @returns {string} The formatted sub-prompt for experiments/examples folders
|
|
14
|
+
*/
|
|
15
|
+
export const getExperimentsExamplesSubPrompt = argv => {
|
|
16
|
+
const experimentsFolder = argv?.promptExperimentsFolder ?? './experiments';
|
|
17
|
+
const examplesFolder = argv?.promptExamplesFolder ?? './examples';
|
|
18
|
+
|
|
19
|
+
// If both are disabled, return empty string
|
|
20
|
+
if (!experimentsFolder && !examplesFolder) {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const lines = [];
|
|
25
|
+
|
|
26
|
+
// Both folders are enabled (with their respective paths)
|
|
27
|
+
if (experimentsFolder && examplesFolder) {
|
|
28
|
+
lines.push(` - When you create debug, test, or example/experiment scripts for fixing, always keep them in an ${examplesFolder} and/or ${experimentsFolder} folders so you can reuse them later.`);
|
|
29
|
+
lines.push(` - When testing your assumptions, use the experiment scripts, and add it to ${experimentsFolder} folder.`);
|
|
30
|
+
lines.push(` - When your experiments can show real world use case of the software, add it to ${examplesFolder} folder.`);
|
|
31
|
+
}
|
|
32
|
+
// Only experiments folder is enabled
|
|
33
|
+
else if (experimentsFolder) {
|
|
34
|
+
lines.push(` - When you create debug or test scripts for fixing, always keep them in ${experimentsFolder} folder so you can reuse them later.`);
|
|
35
|
+
lines.push(` - When testing your assumptions, use the experiment scripts, and add it to ${experimentsFolder} folder.`);
|
|
36
|
+
}
|
|
37
|
+
// Only examples folder is enabled
|
|
38
|
+
else if (examplesFolder) {
|
|
39
|
+
lines.push(` - When you create example scripts that show real world use cases, keep them in ${examplesFolder} folder.`);
|
|
40
|
+
lines.push(` - When your experiments can show real world use case of the software, add it to ${examplesFolder} folder.`);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return lines.join('\n');
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export default {
|
|
47
|
+
getExperimentsExamplesSubPrompt,
|
|
48
|
+
};
|
package/src/hive.config.lib.mjs
CHANGED
|
@@ -301,6 +301,16 @@ export const createYargsConfig = yargsInstance => {
|
|
|
301
301
|
description: 'Include prompt to check related/sibling pull requests when studying related work. Enabled by default, use --no-prompt-check-sibling-pull-requests to disable.',
|
|
302
302
|
default: true,
|
|
303
303
|
})
|
|
304
|
+
.option('prompt-experiments-folder', {
|
|
305
|
+
type: 'string',
|
|
306
|
+
description: 'Path to experiments folder used in system prompt. Set to empty string to disable experiments folder prompt. Default: ./experiments',
|
|
307
|
+
default: './experiments',
|
|
308
|
+
})
|
|
309
|
+
.option('prompt-examples-folder', {
|
|
310
|
+
type: 'string',
|
|
311
|
+
description: 'Path to examples folder used in system prompt. Set to empty string to disable examples folder prompt. Default: ./examples',
|
|
312
|
+
default: './examples',
|
|
313
|
+
})
|
|
304
314
|
.option('prompt-architecture-care', {
|
|
305
315
|
type: 'boolean',
|
|
306
316
|
description: '[EXPERIMENTAL] Include guidance for managing REQUIREMENTS.md and ARCHITECTURE.md files. When enabled, agents will update these documentation files when changes affect requirements or architecture.',
|
package/src/hive.mjs
CHANGED
|
@@ -770,6 +770,8 @@ if (isDirectExecution) {
|
|
|
770
770
|
if (argv.promptIssueReporting) args.push('--prompt-issue-reporting');
|
|
771
771
|
if (argv.promptCaseStudies) args.push('--prompt-case-studies');
|
|
772
772
|
if (argv.promptPlaywrightMcp !== undefined) args.push(argv.promptPlaywrightMcp ? '--prompt-playwright-mcp' : '--no-prompt-playwright-mcp');
|
|
773
|
+
if (argv.promptExperimentsFolder !== undefined) args.push('--prompt-experiments-folder', argv.promptExperimentsFolder);
|
|
774
|
+
if (argv.promptExamplesFolder !== undefined) args.push('--prompt-examples-folder', argv.promptExamplesFolder);
|
|
773
775
|
if (argv.executeToolWithBun) args.push('--execute-tool-with-bun');
|
|
774
776
|
if (argv.autoMerge) args.push('--auto-merge');
|
|
775
777
|
if (argv.autoRestartUntilMergable) args.push('--auto-restart-until-mergable');
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { getArchitectureCareSubPrompt } from './architecture-care.prompts.lib.mjs';
|
|
7
|
+
import { getExperimentsExamplesSubPrompt } from './experiments-examples.prompts.lib.mjs';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Build the user prompt for OpenCode
|
|
@@ -139,9 +140,7 @@ General guidelines.
|
|
|
139
140
|
- When CI is failing, make sure you download the logs locally and carefully investigate them.
|
|
140
141
|
- When a code or log file has more than 1500 lines, read it in chunks of 1500 lines.
|
|
141
142
|
- When facing a complex problem, do as much tracing as possible and turn on all verbose modes.
|
|
142
|
-
|
|
143
|
-
- When testing your assumptions, use the experiment scripts, and add it to experiments folder.
|
|
144
|
-
- When your experiments can show real world use case of the software, add it to examples folder.
|
|
143
|
+
${getExperimentsExamplesSubPrompt(argv)}
|
|
145
144
|
- When you face something extremely hard, use divide and conquer — it always helps.
|
|
146
145
|
${workspaceInstructions}
|
|
147
146
|
Initial research.
|
package/src/solve.config.lib.mjs
CHANGED
|
@@ -358,6 +358,16 @@ export const createYargsConfig = yargsInstance => {
|
|
|
358
358
|
description: 'Include prompt to check related/sibling pull requests when studying related work. Enabled by default, use --no-prompt-check-sibling-pull-requests to disable.',
|
|
359
359
|
default: true,
|
|
360
360
|
})
|
|
361
|
+
.option('prompt-experiments-folder', {
|
|
362
|
+
type: 'string',
|
|
363
|
+
description: 'Path to experiments folder used in system prompt. Set to empty string to disable experiments folder prompt. Default: ./experiments',
|
|
364
|
+
default: './experiments',
|
|
365
|
+
})
|
|
366
|
+
.option('prompt-examples-folder', {
|
|
367
|
+
type: 'string',
|
|
368
|
+
description: 'Path to examples folder used in system prompt. Set to empty string to disable examples folder prompt. Default: ./examples',
|
|
369
|
+
default: './examples',
|
|
370
|
+
})
|
|
361
371
|
.option('playwright-mcp-auto-cleanup', {
|
|
362
372
|
type: 'boolean',
|
|
363
373
|
description: 'Automatically remove .playwright-mcp/ folder before checking for uncommitted changes. This prevents browser automation artifacts from triggering auto-restart. Use --no-playwright-mcp-auto-cleanup to keep the folder for debugging.',
|