hoomanjs 1.34.0 → 1.35.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/README.md +43 -7
- package/dist/acp/acp-agent.js +2 -16
- package/dist/acp/acp-agent.js.map +1 -1
- package/dist/acp/sessions/store.d.ts +0 -2
- package/dist/acp/sessions/store.js.map +1 -1
- package/dist/acp/utils/tool-kind.js +10 -2
- package/dist/acp/utils/tool-kind.js.map +1 -1
- package/dist/chat/app.d.ts +2 -1
- package/dist/chat/app.js +89 -4
- package/dist/chat/app.js.map +1 -1
- package/dist/chat/components/BottomChrome.d.ts +6 -2
- package/dist/chat/components/BottomChrome.js +2 -2
- package/dist/chat/components/BottomChrome.js.map +1 -1
- package/dist/chat/components/ChromePicker.d.ts +7 -2
- package/dist/chat/components/ChromePicker.js +8 -1
- package/dist/chat/components/ChromePicker.js.map +1 -1
- package/dist/chat/components/StatusBar.d.ts +1 -2
- package/dist/chat/components/StatusBar.js +3 -12
- package/dist/chat/components/StatusBar.js.map +1 -1
- package/dist/chat/components/ToolEvent.js +1 -1
- package/dist/chat/components/ToolEvent.js.map +1 -1
- package/dist/chat/index.d.ts +2 -1
- package/dist/chat/index.js +7 -0
- package/dist/chat/index.js.map +1 -1
- package/dist/cli.js +120 -4
- package/dist/cli.js.map +1 -1
- package/dist/configure/app.js +5 -5
- package/dist/configure/app.js.map +1 -1
- package/dist/core/agent/index.d.ts +13 -3
- package/dist/core/agent/index.js +79 -12
- package/dist/core/agent/index.js.map +1 -1
- package/dist/core/config.d.ts +9 -7
- package/dist/core/config.js +102 -13
- package/dist/core/config.js.map +1 -1
- package/dist/core/index.d.ts +1 -2
- package/dist/core/index.js +6 -7
- package/dist/core/index.js.map +1 -1
- package/dist/core/mcp/config.d.ts +7 -1
- package/dist/core/mcp/config.js +41 -8
- package/dist/core/mcp/config.js.map +1 -1
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.js +1 -0
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/model-extractor.js.map +1 -0
- package/dist/core/modes/definitions.js +6 -2
- package/dist/core/modes/definitions.js.map +1 -1
- package/dist/core/prompts/agents/research.md +8 -4
- package/dist/core/prompts/agents/review.md +26 -0
- package/dist/core/prompts/agents/test-investigator.md +26 -0
- package/dist/core/prompts/modes/ask.md +1 -1
- package/dist/core/prompts/modes/plan.md +1 -1
- package/dist/core/prompts/runtime.js +2 -30
- package/dist/core/prompts/runtime.js.map +1 -1
- package/dist/core/prompts/static/subagents.md +12 -8
- package/dist/core/prompts/system.js +1 -1
- package/dist/core/prompts/system.js.map +1 -1
- package/dist/core/runtime-config.d.ts +16 -0
- package/dist/core/runtime-config.js +44 -0
- package/dist/core/runtime-config.js.map +1 -0
- package/dist/core/session-config.js +2 -1
- package/dist/core/session-config.js.map +1 -1
- package/dist/core/sessions/flat-file-storage.js.map +1 -0
- package/dist/core/sessions/lazy-session-manager.js.map +1 -0
- package/dist/core/sessions/list-cli-sessions.d.ts +12 -0
- package/dist/core/sessions/list-cli-sessions.js +174 -0
- package/dist/core/sessions/list-cli-sessions.js.map +1 -0
- package/dist/core/skills/built-in/hooman-config/SKILL.md +12 -9
- package/dist/core/state/tool-approvals.js +4 -3
- package/dist/core/state/tool-approvals.js.map +1 -1
- package/dist/core/subagents/index.d.ts +2 -3
- package/dist/core/subagents/index.js +2 -3
- package/dist/core/subagents/index.js.map +1 -1
- package/dist/core/subagents/registry.d.ts +22 -0
- package/dist/core/subagents/registry.js +96 -0
- package/dist/core/subagents/registry.js.map +1 -0
- package/dist/core/subagents/tool.d.ts +6 -14
- package/dist/core/subagents/tool.js +73 -53
- package/dist/core/subagents/tool.js.map +1 -1
- package/dist/core/utils/discover-files.d.ts +12 -0
- package/dist/core/utils/discover-files.js +47 -0
- package/dist/core/utils/discover-files.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/acp/meta/system-prompt.d.ts +0 -12
- package/dist/acp/meta/system-prompt.js +0 -41
- package/dist/acp/meta/system-prompt.js.map +0 -1
- package/dist/core/context/flat-file-storage.js.map +0 -1
- package/dist/core/context/index.d.ts +0 -22
- package/dist/core/context/index.js +0 -74
- package/dist/core/context/index.js.map +0 -1
- package/dist/core/context/lazy-session-manager.js.map +0 -1
- package/dist/core/context/model-extractor.js.map +0 -1
- package/dist/core/subagents/research.d.ts +0 -16
- package/dist/core/subagents/research.js +0 -58
- package/dist/core/subagents/research.js.map +0 -1
- package/dist/core/subagents/runner.d.ts +0 -37
- package/dist/core/subagents/runner.js +0 -273
- package/dist/core/subagents/runner.js.map +0 -1
- /package/dist/core/{context → memory}/model-extractor.d.ts +0 -0
- /package/dist/core/{context → memory}/model-extractor.js +0 -0
- /package/dist/core/{context → sessions}/flat-file-storage.d.ts +0 -0
- /package/dist/core/{context → sessions}/flat-file-storage.js +0 -0
- /package/dist/core/{context → sessions}/lazy-session-manager.d.ts +0 -0
- /package/dist/core/{context → sessions}/lazy-session-manager.js +0 -0
|
@@ -20,7 +20,9 @@ export const MODE_DEFINITIONS = [
|
|
|
20
20
|
"strands_structured_output",
|
|
21
21
|
"update_todos",
|
|
22
22
|
"think",
|
|
23
|
-
"
|
|
23
|
+
"subagent_research",
|
|
24
|
+
"subagent_review",
|
|
25
|
+
"subagent_test_investigator",
|
|
24
26
|
"sleep",
|
|
25
27
|
"bye",
|
|
26
28
|
"convert_time",
|
|
@@ -51,7 +53,9 @@ export const MODE_DEFINITIONS = [
|
|
|
51
53
|
"strands_structured_output",
|
|
52
54
|
"update_todos",
|
|
53
55
|
"think",
|
|
54
|
-
"
|
|
56
|
+
"subagent_research",
|
|
57
|
+
"subagent_review",
|
|
58
|
+
"subagent_test_investigator",
|
|
55
59
|
"sleep",
|
|
56
60
|
"bye",
|
|
57
61
|
"convert_time",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/core/modes/definitions.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,6BAA6B;QAC1C,KAAK,EAAE,GAAG;KACX;IACD;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE;YACL,OAAO;YACP,YAAY;YACZ,QAAQ;YACR,4BAA4B;YAC5B,eAAe;YACf,2BAA2B;YAC3B,cAAc;YACd,OAAO;YACP,
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/core/modes/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,12 @@ Your job is to explore the relevant working directory and codebase, pull in exte
|
|
|
26
26
|
- Say what additional check would resolve each unknown.
|
|
27
27
|
- Suggest how the parent could **verify** conclusions (what to read, run, or compare)—without performing mutating steps yourself.
|
|
28
28
|
|
|
29
|
-
###
|
|
29
|
+
### Output contract
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
Return plain text with this exact section order:
|
|
32
|
+
|
|
33
|
+
- `Summary:` one concise sentence.
|
|
34
|
+
- `Findings:` short bullets with evidence.
|
|
35
|
+
- `Risks:` short bullets for uncertainty/regression risk.
|
|
36
|
+
- `Next actions:` short bullets for parent follow-up.
|
|
37
|
+
- `Confidence:` a single number between `0` and `1`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
## Review mode
|
|
2
|
+
|
|
3
|
+
You are in **review** mode: a delegated, read-only reviewer focused on risks, regressions, and validation quality.
|
|
4
|
+
|
|
5
|
+
### Scope
|
|
6
|
+
|
|
7
|
+
- Do not create, edit, move, or delete files.
|
|
8
|
+
- Do not run commands that mutate system state.
|
|
9
|
+
- Prioritize concrete evidence over intuition.
|
|
10
|
+
|
|
11
|
+
### How to work
|
|
12
|
+
|
|
13
|
+
1. Identify what is being proposed (feature, refactor, bug fix, migration, config change).
|
|
14
|
+
2. Check for behavior regressions, edge-case handling, and missing validations.
|
|
15
|
+
3. Prefer evidence from source paths, symbols, and concrete code behavior.
|
|
16
|
+
4. Call out test gaps explicitly.
|
|
17
|
+
|
|
18
|
+
### Output contract
|
|
19
|
+
|
|
20
|
+
Return plain text with this exact section order:
|
|
21
|
+
|
|
22
|
+
- `Summary:` one concise sentence.
|
|
23
|
+
- `Findings:` short bullets with evidence.
|
|
24
|
+
- `Risks:` short bullets for uncertainty/regression risk.
|
|
25
|
+
- `Next actions:` short bullets for parent follow-up.
|
|
26
|
+
- `Confidence:` a single number between `0` and `1`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
## Test Investigator mode
|
|
2
|
+
|
|
3
|
+
You are in **test-investigator** mode: a delegated, read-only investigator for build/test behavior and likely failure causes.
|
|
4
|
+
|
|
5
|
+
### Scope
|
|
6
|
+
|
|
7
|
+
- Do not create, edit, move, or delete files.
|
|
8
|
+
- Avoid commands that change persistent system state.
|
|
9
|
+
- Focus on diagnosis quality over breadth.
|
|
10
|
+
|
|
11
|
+
### How to work
|
|
12
|
+
|
|
13
|
+
1. Identify test/build surfaces relevant to the parent request.
|
|
14
|
+
2. Inspect scripts, config, and likely execution flow.
|
|
15
|
+
3. Isolate probable failure causes and confidence level.
|
|
16
|
+
4. Recommend minimal next verification steps.
|
|
17
|
+
|
|
18
|
+
### Output contract
|
|
19
|
+
|
|
20
|
+
Return plain text with this exact section order:
|
|
21
|
+
|
|
22
|
+
- `Summary:` one concise sentence.
|
|
23
|
+
- `Findings:` short bullets with evidence.
|
|
24
|
+
- `Risks:` short bullets for uncertainty/regression risk.
|
|
25
|
+
- `Next actions:` short bullets for parent follow-up.
|
|
26
|
+
- `Confidence:` a single number between `0` and `1`.
|
|
@@ -6,5 +6,5 @@ You are in **ask** mode: a narrowed tool surface for exploration, research, and
|
|
|
6
6
|
- Explain architecture, behavior, APIs, trade-offs, options, and risks from what you can inspect.
|
|
7
7
|
- Do not imply you can use tools that are not exposed in this phase.
|
|
8
8
|
- If the task needs a written plan on disk, use **plan** mode. If it needs implementation or unrestricted edits, use **agent** mode.
|
|
9
|
-
- When
|
|
9
|
+
- When subagent tools are available (`subagent_research`, `subagent_review`, `subagent_test_investigator`), use them only for read-only exploration; you remain responsible for the answer.
|
|
10
10
|
- Be direct and structured, and mention what you reviewed when that helps the user trust the conclusion.
|
|
@@ -9,7 +9,7 @@ You are in planning mode. **Implementation still requires an explicit go-ahead f
|
|
|
9
9
|
1. If the line above shows **—**, your first tool call must be **`enter_plan_mode`**. Do not explore first. Exception: if the user explicitly asked to read one specific path, you may read that path only, unless they also allow creating the plan document first.
|
|
10
10
|
2. Treat the plan file as the source of truth. Update it every turn after new user input or new facts.
|
|
11
11
|
3. Prefer updating the plan file over writing long plan summaries in chat.
|
|
12
|
-
4. Do not create, edit, move, or delete files other than the plan file shown above. Delegated
|
|
12
|
+
4. Do not create, edit, move, or delete files other than the plan file shown above. Delegated subagent work (`subagent_research`, `subagent_review`, `subagent_test_investigator`) must stay read-only.
|
|
13
13
|
5. Do not ship the final deliverable or execute substantive implementation here.
|
|
14
14
|
|
|
15
15
|
### Target shape
|
|
@@ -1,39 +1,11 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
3
|
+
import { candidateWalkUpPaths } from "../utils/discover-files.js";
|
|
3
4
|
const AGENTS_FILENAME = "AGENTS.md";
|
|
4
5
|
const AGENTS_CHAR_BUDGET = 32_000;
|
|
5
6
|
const AGENTS_TRUNCATION_MARKER = "<!-- Some AGENTS.md files were truncated or omitted to fit the 32k character budget. -->";
|
|
6
|
-
function agentInstructionSearchRoot(cwd) {
|
|
7
|
-
let current = resolve(cwd);
|
|
8
|
-
while (true) {
|
|
9
|
-
if (existsSync(join(current, ".git"))) {
|
|
10
|
-
return current;
|
|
11
|
-
}
|
|
12
|
-
const parent = dirname(current);
|
|
13
|
-
if (parent === current) {
|
|
14
|
-
return resolve(cwd);
|
|
15
|
-
}
|
|
16
|
-
current = parent;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
7
|
export function candidateAgentInstructionPaths(cwd = process.cwd()) {
|
|
20
|
-
|
|
21
|
-
const root = agentInstructionSearchRoot(resolvedCwd);
|
|
22
|
-
const directories = [];
|
|
23
|
-
let current = resolvedCwd;
|
|
24
|
-
while (true) {
|
|
25
|
-
directories.push(current);
|
|
26
|
-
if (current === root) {
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
const parent = dirname(current);
|
|
30
|
-
if (parent === current) {
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
current = parent;
|
|
34
|
-
}
|
|
35
|
-
directories.reverse();
|
|
36
|
-
return directories.map((dir) => join(dir, AGENTS_FILENAME));
|
|
8
|
+
return candidateWalkUpPaths(AGENTS_FILENAME, cwd);
|
|
37
9
|
}
|
|
38
10
|
function isWithinDirectory(baseDir, candidatePath) {
|
|
39
11
|
const rel = relative(resolve(baseDir), resolve(candidatePath));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/core/prompts/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/core/prompts/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
## Sub Agents
|
|
2
2
|
|
|
3
|
-
You can delegate
|
|
3
|
+
You can delegate focused work using the specialized subagent tools:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- `subagent_research`
|
|
6
|
+
- `subagent_review`
|
|
7
|
+
- `subagent_test_investigator`
|
|
8
|
+
|
|
9
|
+
Use these tools when delegation makes the response better:
|
|
6
10
|
|
|
7
11
|
- The task has independent parts that can run in parallel.
|
|
8
12
|
- You need deeper investigation before writing a final answer.
|
|
@@ -10,12 +14,12 @@ Use this tool when delegation makes the response better:
|
|
|
10
14
|
|
|
11
15
|
Use delegation thoughtfully:
|
|
12
16
|
|
|
13
|
-
-
|
|
14
|
-
- Write each
|
|
15
|
-
- Prefer concise
|
|
16
|
-
- Run only as many
|
|
17
|
+
- Call only the specialist that fits the specific subtask.
|
|
18
|
+
- Write each delegated query with enough context to be actionable.
|
|
19
|
+
- Prefer concise requests that state the expected output.
|
|
20
|
+
- Run only as many delegated calls as needed for quality and speed.
|
|
17
21
|
|
|
18
|
-
Do not
|
|
22
|
+
Do not delegate when:
|
|
19
23
|
|
|
20
24
|
- The task is simple and can be handled directly.
|
|
21
25
|
- The work is tightly coupled and cannot be split cleanly.
|
|
@@ -23,6 +27,6 @@ Do not use `run_subagents` when:
|
|
|
23
27
|
|
|
24
28
|
Output expectations:
|
|
25
29
|
|
|
26
|
-
- Child agents are read-only and return
|
|
30
|
+
- Child agents are read-only and should return plain text findings.
|
|
27
31
|
- You are responsible for synthesizing child outputs into one coherent response.
|
|
28
32
|
- If child outputs conflict, resolve the conflict explicitly and explain why.
|
|
@@ -61,7 +61,7 @@ export class System {
|
|
|
61
61
|
case "sleep.md":
|
|
62
62
|
return this.config.tools.sleep.enabled;
|
|
63
63
|
case "subagents.md":
|
|
64
|
-
return this.config.tools.
|
|
64
|
+
return this.config.tools.subagents.enabled;
|
|
65
65
|
case "daemon.md":
|
|
66
66
|
return this.mode === "daemon";
|
|
67
67
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/core/prompts/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;AAE/B,gEAAgE;AAChE,MAAM,mBAAmB,GAAG;IAC1B,aAAa;IACb,gBAAgB;IAChB,SAAS;IACT,aAAa;IACb,eAAe;IACf,UAAU;IACV,eAAe;IACf,UAAU;IACV,UAAU;IACV,QAAQ;IACR,WAAW;IACX,WAAW;IACX,cAAc;IACd,aAAa;CACL,CAAC;AAEX,MAAM,oBAAoB,GAAG;IAC3B,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE;IAC1C,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAClD,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE;IAC1C,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE;CACpC,CAAC;AAIX,MAAM,aAAa,GAAG,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,OAAO,MAAM;IACA,IAAI,CAAS;IACb,MAAM,CAAS;IACf,IAAI,CAAa;IAC1B,IAAI,GAAG,EAAE,CAAC;IACV,iBAAiB,GAAG,EAAE,CAAC;IACvB,gBAAgB,GAAsC,IAAI,CAAC;IAEnE,YACE,IAAY,EACZ,MAAc,EACd,OAAmB,SAAS;QAE5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEO,iBAAiB;QACvB,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;gBACzC,KAAK,eAAe;oBAClB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpC,KAAK,SAAS;oBACZ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBACxC,KAAK,eAAe;oBAClB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC9C,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;gBACzC,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;gBACzC,KAAK,cAAc;oBACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/core/prompts/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Config, type ConfigOptions } from "./config.js";
|
|
2
|
+
import { Config as McpConfig } from "./mcp/config.js";
|
|
3
|
+
export type RuntimeConfigSources = {
|
|
4
|
+
config: {
|
|
5
|
+
primaryPath: string;
|
|
6
|
+
overlayPaths: string[];
|
|
7
|
+
};
|
|
8
|
+
mcp: {
|
|
9
|
+
primaryPath: string;
|
|
10
|
+
overlayPaths: string[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare function runtimeConfigOptions(cwd?: string): ConfigOptions;
|
|
14
|
+
export declare function runtimeConfigSources(cwd?: string): RuntimeConfigSources;
|
|
15
|
+
export declare function createRuntimeConfig(cwd?: string): Config;
|
|
16
|
+
export declare function createRuntimeMcpConfig(cwd?: string): McpConfig;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { basename, resolve } from "node:path";
|
|
2
|
+
import { Config } from "./config.js";
|
|
3
|
+
import { Config as McpConfig } from "./mcp/config.js";
|
|
4
|
+
import { configJsonPath, mcpJsonPath } from "./utils/paths.js";
|
|
5
|
+
import { discoverWalkUpFiles } from "./utils/discover-files.js";
|
|
6
|
+
function overlayPathsFor(filename, primaryPath, cwd = process.cwd()) {
|
|
7
|
+
const primaryResolved = resolve(primaryPath);
|
|
8
|
+
return discoverWalkUpFiles(filename, cwd)
|
|
9
|
+
.map((path) => resolve(path))
|
|
10
|
+
.filter((path) => path !== primaryResolved);
|
|
11
|
+
}
|
|
12
|
+
export function runtimeConfigOptions(cwd = process.cwd()) {
|
|
13
|
+
const path = configJsonPath();
|
|
14
|
+
return {
|
|
15
|
+
overlayPaths: overlayPathsFor(basename(path), path, cwd),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function runtimeConfigSources(cwd = process.cwd()) {
|
|
19
|
+
const configPath = configJsonPath();
|
|
20
|
+
const mcpPath = mcpJsonPath();
|
|
21
|
+
return {
|
|
22
|
+
config: {
|
|
23
|
+
primaryPath: configPath,
|
|
24
|
+
overlayPaths: overlayPathsFor(basename(configPath), configPath, cwd),
|
|
25
|
+
},
|
|
26
|
+
mcp: {
|
|
27
|
+
primaryPath: mcpPath,
|
|
28
|
+
overlayPaths: overlayPathsFor(basename(mcpPath), mcpPath, cwd),
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function createRuntimeConfig(cwd = process.cwd()) {
|
|
33
|
+
const sources = runtimeConfigSources(cwd);
|
|
34
|
+
return new Config(sources.config.primaryPath, {
|
|
35
|
+
overlayPaths: sources.config.overlayPaths,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export function createRuntimeMcpConfig(cwd = process.cwd()) {
|
|
39
|
+
const sources = runtimeConfigSources(cwd);
|
|
40
|
+
return new McpConfig(sources.mcp.primaryPath, {
|
|
41
|
+
overlayPaths: sources.mcp.overlayPaths,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=runtime-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../../src/core/runtime-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOhE,SAAS,eAAe,CACtB,QAAgB,EAChB,WAAmB,EACnB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,OAAO,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,OAAO;QACL,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,OAAO;QACL,MAAM,EAAE;YACN,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC;SACrE;QACD,GAAG,EAAE;YACH,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC;SAC/D;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC7D,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAC5C,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAChE,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;QAC5C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;KACvC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Config } from "./config.js";
|
|
2
|
+
import { runtimeConfigOptions } from "./runtime-config.js";
|
|
2
3
|
import { configJsonPath } from "./utils/paths.js";
|
|
3
4
|
/**
|
|
4
5
|
* Session-scoped config keeps runtime chat/ACP overrides in memory without
|
|
@@ -10,6 +11,6 @@ export class SessionConfig extends Config {
|
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
export function createSessionConfig() {
|
|
13
|
-
return new SessionConfig(configJsonPath());
|
|
14
|
+
return new SessionConfig(configJsonPath(), runtimeConfigOptions());
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=session-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-config.js","sourceRoot":"","sources":["../../src/core/session-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,MAAM;IACvB,OAAO;QACrB,wDAAwD;IAC1D,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-config.js","sourceRoot":"","sources":["../../src/core/session-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,MAAM;IACvB,OAAO;QACrB,wDAAwD;IAC1D,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat-file-storage.js","sourceRoot":"","sources":["../../../src/core/sessions/flat-file-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC;;;GAGG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEhD,KAAK,CAAC,YAAY,CAAC,MAKlB;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;YAC5D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAGlB;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK,YAAY,KAAK;gBACtB,MAAM,IAAI,KAAK;gBACf,KAAK,CAAC,IAAI,KAAK,QAAQ,EACvB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,iDAAiD;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA6B;QAC/C,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC1C,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,yDAAyD;IAC3D,CAAC;IAEO,UAAU,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAEO,YAAY,CAClB,QAA0B,EAC1B,UAAmB;QAEnB,IAAI,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,IAAI,CACT,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EACnC,YAAY,UAAU,OAAO,CAC9B,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-session-manager.js","sourceRoot":"","sources":["../../../src/core/sessions/lazy-session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type CliSessionSummary = {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
title: string;
|
|
4
|
+
cwd: string | null;
|
|
5
|
+
updatedAt: string;
|
|
6
|
+
updatedAtMs: number;
|
|
7
|
+
messageCount: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function listCliSessions(params?: {
|
|
10
|
+
cwd?: string;
|
|
11
|
+
}): Promise<CliSessionSummary[]>;
|
|
12
|
+
export declare function latestCliSessionForCwd(cwd: string): Promise<CliSessionSummary | null>;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { readdir, readFile, stat } from "node:fs/promises";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { sessionsPath } from "../utils/paths.js";
|
|
4
|
+
const SNAPSHOT_FILE = "snapshot_latest.json";
|
|
5
|
+
const SKIPPED_DIRS = new Set(["acp", "offloaded-content"]);
|
|
6
|
+
export async function listCliSessions(params) {
|
|
7
|
+
const root = sessionsPath();
|
|
8
|
+
const names = await listSessionDirectoryNames(root);
|
|
9
|
+
const targetCwd = normalizePath(params?.cwd);
|
|
10
|
+
const sessions = [];
|
|
11
|
+
await Promise.all(names.map(async (sessionId) => {
|
|
12
|
+
const summary = await readSessionSummary(root, sessionId);
|
|
13
|
+
if (!summary) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (targetCwd) {
|
|
17
|
+
if (!summary.cwd) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (normalizePath(summary.cwd) !== targetCwd) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
sessions.push(summary);
|
|
25
|
+
}));
|
|
26
|
+
sessions.sort((a, b) => {
|
|
27
|
+
if (b.updatedAtMs !== a.updatedAtMs) {
|
|
28
|
+
return b.updatedAtMs - a.updatedAtMs;
|
|
29
|
+
}
|
|
30
|
+
return a.sessionId.localeCompare(b.sessionId);
|
|
31
|
+
});
|
|
32
|
+
return sessions;
|
|
33
|
+
}
|
|
34
|
+
export async function latestCliSessionForCwd(cwd) {
|
|
35
|
+
const sessions = await listCliSessions({ cwd });
|
|
36
|
+
return sessions[0] ?? null;
|
|
37
|
+
}
|
|
38
|
+
async function listSessionDirectoryNames(root) {
|
|
39
|
+
try {
|
|
40
|
+
const entries = await readdir(root, { withFileTypes: true });
|
|
41
|
+
return entries
|
|
42
|
+
.filter((entry) => entry.isDirectory() && !SKIPPED_DIRS.has(entry.name))
|
|
43
|
+
.map((entry) => entry.name);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function readSessionSummary(root, sessionId) {
|
|
50
|
+
const snapshotPath = join(root, sessionId, SNAPSHOT_FILE);
|
|
51
|
+
try {
|
|
52
|
+
const [raw, fileStat] = await Promise.all([
|
|
53
|
+
readFile(snapshotPath, "utf8"),
|
|
54
|
+
stat(snapshotPath),
|
|
55
|
+
]);
|
|
56
|
+
const parsed = JSON.parse(raw);
|
|
57
|
+
const data = parsed.data;
|
|
58
|
+
const messages = asMessages(data?.messages);
|
|
59
|
+
const title = deriveSessionTitle(messages) ?? "Untitled session";
|
|
60
|
+
const cwd = deriveSessionCwd(data);
|
|
61
|
+
const updatedAtDate = deriveUpdatedAt(fileStat.mtime, parsed.createdAt);
|
|
62
|
+
return {
|
|
63
|
+
sessionId,
|
|
64
|
+
title,
|
|
65
|
+
cwd,
|
|
66
|
+
updatedAt: updatedAtDate.toISOString(),
|
|
67
|
+
updatedAtMs: updatedAtDate.getTime(),
|
|
68
|
+
messageCount: messages.length,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function asMessages(value) {
|
|
76
|
+
if (!Array.isArray(value)) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
return value.filter((item) => {
|
|
80
|
+
return Boolean(item) && typeof item === "object";
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function deriveSessionTitle(messages) {
|
|
84
|
+
for (const message of messages) {
|
|
85
|
+
if (message.role !== "user") {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const text = extractMessageText(message.content).trim();
|
|
89
|
+
if (!text) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const firstLine = text.split(/\r?\n/, 1)[0]?.trim() ?? "";
|
|
93
|
+
if (!firstLine) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
return firstLine.length > 80 ? `${firstLine.slice(0, 77)}...` : firstLine;
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
function extractMessageText(content) {
|
|
101
|
+
if (typeof content === "string") {
|
|
102
|
+
return content;
|
|
103
|
+
}
|
|
104
|
+
if (!Array.isArray(content)) {
|
|
105
|
+
return "";
|
|
106
|
+
}
|
|
107
|
+
const parts = [];
|
|
108
|
+
for (const block of content) {
|
|
109
|
+
if (typeof block === "string") {
|
|
110
|
+
parts.push(block);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (!block || typeof block !== "object") {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const textValue = block.text;
|
|
117
|
+
if (typeof textValue === "string") {
|
|
118
|
+
parts.push(textValue);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return parts.join("\n");
|
|
122
|
+
}
|
|
123
|
+
function deriveSessionCwd(data) {
|
|
124
|
+
const stateCwd = extractStateCwd(data?.state);
|
|
125
|
+
if (stateCwd) {
|
|
126
|
+
return stateCwd;
|
|
127
|
+
}
|
|
128
|
+
const systemPrompt = data?.systemPrompt;
|
|
129
|
+
if (typeof systemPrompt !== "string") {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
const match = systemPrompt.match(/- Primary working directory:\s*`([^`]+)`/m);
|
|
133
|
+
return match?.[1]?.trim() || null;
|
|
134
|
+
}
|
|
135
|
+
function extractStateCwd(state) {
|
|
136
|
+
if (!state || typeof state !== "object") {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
const values = Object.values(state);
|
|
140
|
+
for (const value of values) {
|
|
141
|
+
if (!value || typeof value !== "object") {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const cwd = value.cwd;
|
|
145
|
+
if (typeof cwd === "string" && cwd.trim().length > 0) {
|
|
146
|
+
return cwd;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
function deriveUpdatedAt(fileMtime, snapshotCreatedAt) {
|
|
152
|
+
if (!Number.isNaN(fileMtime.getTime())) {
|
|
153
|
+
return fileMtime;
|
|
154
|
+
}
|
|
155
|
+
if (typeof snapshotCreatedAt === "string") {
|
|
156
|
+
const parsed = new Date(snapshotCreatedAt);
|
|
157
|
+
if (!Number.isNaN(parsed.getTime())) {
|
|
158
|
+
return parsed;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return new Date(0);
|
|
162
|
+
}
|
|
163
|
+
function normalizePath(value) {
|
|
164
|
+
if (!value) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
return resolve(value);
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return value;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=list-cli-sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-cli-sessions.js","sourceRoot":"","sources":["../../../src/core/sessions/list-cli-sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,12 @@ Use this skill when the user asks you to inspect, explain, or change Hooman's ow
|
|
|
14
14
|
- User instructions: `~/.hooman/instructions.md`.
|
|
15
15
|
- This skill does not cover `mcp.json`, installed skill directories, or bundled skill files.
|
|
16
16
|
|
|
17
|
+
## Effective Runtime View
|
|
18
|
+
|
|
19
|
+
Use `hooman config` to inspect the merged runtime `config.json` for
|
|
20
|
+
the current working directory (home config plus repo-local overlays). The
|
|
21
|
+
command prints full `config.json` shape and redacts credential-like values.
|
|
22
|
+
|
|
17
23
|
## Read/Write Rules
|
|
18
24
|
|
|
19
25
|
1. Read the existing JSON first. Preserve user values, comments are not supported, and secrets such as API keys may be present.
|
|
@@ -68,7 +74,7 @@ This is the default shape Hooman writes when `~/.hooman/config.json` is missing:
|
|
|
68
74
|
"filesystem": { "enabled": true },
|
|
69
75
|
"shell": { "enabled": true },
|
|
70
76
|
"sleep": { "enabled": true },
|
|
71
|
-
"
|
|
77
|
+
"subagents": { "enabled": true }
|
|
72
78
|
},
|
|
73
79
|
"compaction": {
|
|
74
80
|
"ratio": 0.75,
|
|
@@ -301,7 +307,7 @@ Simple toggles:
|
|
|
301
307
|
"filesystem": { "enabled": true },
|
|
302
308
|
"shell": { "enabled": true },
|
|
303
309
|
"sleep": { "enabled": true },
|
|
304
|
-
"
|
|
310
|
+
"subagents": { "enabled": true }
|
|
305
311
|
}
|
|
306
312
|
}
|
|
307
313
|
```
|
|
@@ -311,19 +317,16 @@ Subagents:
|
|
|
311
317
|
```json
|
|
312
318
|
{
|
|
313
319
|
"tools": {
|
|
314
|
-
"
|
|
315
|
-
"enabled": true
|
|
316
|
-
"concurrency": 3
|
|
320
|
+
"subagents": {
|
|
321
|
+
"enabled": true
|
|
317
322
|
}
|
|
318
323
|
}
|
|
319
324
|
}
|
|
320
325
|
```
|
|
321
326
|
|
|
322
|
-
Defaults: `todo`, `fetch`, `filesystem`, `shell`, `sleep`, and `
|
|
323
|
-
|
|
324
|
-
`agents`: the default file Hooman writes when `config.json` was missing includes `tools.agents.concurrency: 2`. On load, if `concurrency` is absent (for example `tools` or `tools.agents` is omitted), the merged config uses `3` until you set it explicitly.
|
|
327
|
+
Defaults: `todo`, `fetch`, `filesystem`, `shell`, `sleep`, and `subagents` enabled. MCP servers and installed skills are not controlled by these toggles; do not inspect or edit them for this skill.
|
|
325
328
|
|
|
326
|
-
|
|
329
|
+
`subagents`: the default file Hooman writes when `config.json` is missing includes `tools.subagents.enabled: true`. If `tools` or `tools.subagents` is omitted, the merged config still defaults this toggle to enabled.
|
|
327
330
|
|
|
328
331
|
## Instructions
|
|
329
332
|
|