holycodex 0.3.0 → 0.3.2
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/README.md +0 -14
- package/package.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/agents/explorer.toml +1 -1
- package/plugin/agents/librarian.toml +1 -1
- package/plugin/agents/worker.toml +1 -1
- package/plugin/runtime/bootstrap.js +3 -1
- package/plugin/runtime/cli.js +2 -2
- package/plugin/runtime/core-instructions-CKS8xwZK.js +4 -0
- package/plugin/runtime/git-bash.js +1 -1
- package/plugin/runtime/lsp.js +1 -1
- package/plugin/runtime/rules.js +5 -1
package/README.md
CHANGED
|
@@ -79,20 +79,6 @@ Cleanup backs up affected files, removes only HolyCodex-owned configuration and
|
|
|
79
79
|
- `packages/` — Git Bash and LSP MCP source.
|
|
80
80
|
- `test/` — CLI, lifecycle, catalogue, rules, bootstrap, and MCP tests.
|
|
81
81
|
|
|
82
|
-
### Versioning for maintainers
|
|
83
|
-
|
|
84
|
-
HolyCodex follows [ZeroVer](https://0ver.org/): versions stay below `1.0.0`; fixes increment the third component, while breaking changes increment the second.
|
|
85
|
-
|
|
86
|
-
```sh
|
|
87
|
-
npm run version:check # verify every package/runtime version matches
|
|
88
|
-
npm run version:patch # compatible release: 0.2.0 -> 0.2.1
|
|
89
|
-
npm run version:minor # breaking release: 0.2.7 -> 0.3.0
|
|
90
|
-
npm run version:set -- 0.4.3
|
|
91
|
-
node scripts/version.mjs patch --dry-run
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
The helper updates the root package, plugin manifest, private workspace packages, CLI/cache version, MCP server versions, and pinned tests together. It does not commit, tag, publish, or push. After a bump, review the diff and run the four checks printed by the command.
|
|
95
|
-
|
|
96
82
|
## Thanks
|
|
97
83
|
|
|
98
84
|
HolyCodex exists because of the work of:
|
package/package.json
CHANGED
|
@@ -2,5 +2,5 @@ description = "Read-only internal repository explorer. Use for a narrow unfamili
|
|
|
2
2
|
model = "gpt-5.6-luna"
|
|
3
3
|
model_reasoning_effort = "low"
|
|
4
4
|
developer_instructions = """
|
|
5
|
-
Inspect assigned internal area only. Use
|
|
5
|
+
Start: "I detect investigation intent — [reason]. [action]." Inspect assigned internal area only. Use git_bash MCP for every shell command. Read-only: search, read, diagnostics, history. No edit, install, external write, or subagent. Do not broaden scope. Return concise findings with exact paths, symbols, evidence, uncertainty. Stop when assigned question answered.
|
|
6
6
|
"""
|
|
@@ -2,5 +2,5 @@ description = "Read-only external-source researcher. Use when current primary do
|
|
|
2
2
|
model = "gpt-5.6-luna"
|
|
3
3
|
model_reasoning_effort = "low"
|
|
4
4
|
developer_instructions = """
|
|
5
|
-
Research assigned external sources only. Use
|
|
5
|
+
Start: "I detect research intent — [reason]. [action]." Research assigned external sources only. Use git_bash MCP for every shell command. Read-only. Prefer primary current sources. No implementation, external write, or subagent. Do not broaden query. Return concise claim, citation, version/date, conflict, uncertainty. Stop when assigned question answered.
|
|
6
6
|
"""
|
|
@@ -2,5 +2,5 @@ description = "Isolated implementation worker. Use only for a bounded independen
|
|
|
2
2
|
model = "gpt-5.6-luna"
|
|
3
3
|
model_reasoning_effort = "medium"
|
|
4
4
|
developer_instructions = """
|
|
5
|
-
Implement only explicit files, scope, acceptance criteria. Use
|
|
5
|
+
Start: "I detect implementation intent — [reason]. [action]." Implement only explicit files, scope, acceptance criteria. Use git_bash MCP for every shell command. Prompt, skill, or instruction task: load caveman skill first; write terse without losing constraints. Preserve architecture, API, behavior, naming, style. Smallest correct change. No speculative cleanup, abstraction, dependency, docs, or subagent. Respect user work. Run smallest targeted proof. Return changed paths, checks, blocker.
|
|
6
6
|
"""
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as CORE_INSTRUCTIONS } from "./core-instructions-CKS8xwZK.js";
|
|
1
2
|
import { access } from "node:fs/promises";
|
|
2
3
|
import { join } from "node:path";
|
|
3
4
|
//#region src/bootstrap.ts
|
|
@@ -14,7 +15,8 @@ async function readinessContext(pluginRoot) {
|
|
|
14
15
|
if (error instanceof Error && "code" in error && error.code === "ENOENT") missing.push(file);
|
|
15
16
|
else throw error;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
if (missing.length === 0) return CORE_INSTRUCTIONS;
|
|
19
|
+
return `${CORE_INSTRUCTIONS}\n\nHolyCodex incomplete: missing runtime/${missing.join(", runtime/")}. Reinstall HolyCodex before using its local MCPs or hooks.`;
|
|
18
20
|
}
|
|
19
21
|
//#endregion
|
|
20
22
|
//#region src/bootstrap-cli.ts
|
package/plugin/runtime/cli.js
CHANGED
|
@@ -120,7 +120,7 @@ function paths(home = process.env.CODEX_HOME ?? join(homedir(), ".codex")) {
|
|
|
120
120
|
home,
|
|
121
121
|
config: join(home, "config.toml"),
|
|
122
122
|
cacheRoot,
|
|
123
|
-
cache: join(cacheRoot, "0.3.
|
|
123
|
+
cache: join(cacheRoot, "0.3.2"),
|
|
124
124
|
agents: join(home, "holycodex", "agents"),
|
|
125
125
|
legacy: [
|
|
126
126
|
join(home, "plugins", "cache", "sisyphuslabs", "omo"),
|
|
@@ -208,7 +208,7 @@ async function cleanup(_options) {
|
|
|
208
208
|
}
|
|
209
209
|
//#endregion
|
|
210
210
|
//#region src/cli.ts
|
|
211
|
-
var VERSION = "0.3.
|
|
211
|
+
var VERSION = "0.3.2";
|
|
212
212
|
var HELP = `HolyCodex ${VERSION}\n\nUsage: holycodex <install|cleanup> [options]\n\nOptions:\n --help Show help\n --version Show version\n --no-tui Accepted; commands are noninteractive\n --codex-autonomous Set autonomous Codex permissions\n --json Print machine-readable result\n`;
|
|
213
213
|
async function main() {
|
|
214
214
|
const args = process$1.argv.slice(2);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
//#region src/core-instructions.ts
|
|
2
|
+
var CORE_INSTRUCTIONS = "HolyCodex core: Start first user-facing update: \"I detect [fix/implementation/investigation/pure question] intent — [reason]. [action].\" Then act. Use git_bash MCP for every shell command. Use exec_command only when git_bash is unavailable or work is not a shell command. Prompt, skill, or instruction task: load caveman skill first; write terse without losing constraints. Primary agent keeps control. Subagents reduce cost, never simulate an organization. Delegate bounded labor, never responsibility. Spend intelligence only where complexity requires it.";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { CORE_INSTRUCTIONS as t };
|
|
@@ -166,7 +166,7 @@ async function handleGitBashMcpRequest(input, options = {}) {
|
|
|
166
166
|
capabilities: { tools: { listChanged: false } },
|
|
167
167
|
serverInfo: {
|
|
168
168
|
name: "git_bash",
|
|
169
|
-
version: "0.3.
|
|
169
|
+
version: "0.3.2"
|
|
170
170
|
},
|
|
171
171
|
protocolVersion: protocolVersionFromInput(input) ?? "2024-11-05"
|
|
172
172
|
});
|
package/plugin/runtime/lsp.js
CHANGED
|
@@ -3072,7 +3072,7 @@ function coerceToolArguments(value) {
|
|
|
3072
3072
|
//#endregion
|
|
3073
3073
|
//#region packages/lsp-core/src/mcp.ts
|
|
3074
3074
|
var SERVER_NAME = "lsp";
|
|
3075
|
-
var SERVER_VERSION = "0.3.
|
|
3075
|
+
var SERVER_VERSION = "0.3.2";
|
|
3076
3076
|
async function handleLspMcpRequest(input) {
|
|
3077
3077
|
if (!isPlainRecord(input)) return errorResponse(null, -32600, "Invalid Request");
|
|
3078
3078
|
const id = jsonRpcId(input["id"]);
|
package/plugin/runtime/rules.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { t as CORE_INSTRUCTIONS } from "./core-instructions-CKS8xwZK.js";
|
|
2
3
|
import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
|
|
3
4
|
import { dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
4
5
|
import { stdin, stdout } from "node:process";
|
|
@@ -44,7 +45,10 @@ async function runRulesHook(input) {
|
|
|
44
45
|
const cache = cachePath(input.session_id);
|
|
45
46
|
if (event === "PostCompact") {
|
|
46
47
|
await rm(cache, { force: true });
|
|
47
|
-
return
|
|
48
|
+
return `${JSON.stringify({ hookSpecificOutput: {
|
|
49
|
+
hookEventName: event,
|
|
50
|
+
additionalContext: CORE_INSTRUCTIONS
|
|
51
|
+
} })}\n`;
|
|
48
52
|
}
|
|
49
53
|
const target = event === "PostToolUse" ? editPath(input.tool_input, input.cwd) : void 0;
|
|
50
54
|
if (event === "PostToolUse" && target === void 0) return "";
|