hoomanjs 1.34.0 → 1.35.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.
Files changed (106) hide show
  1. package/README.md +43 -7
  2. package/dist/acp/acp-agent.js +2 -16
  3. package/dist/acp/acp-agent.js.map +1 -1
  4. package/dist/acp/sessions/store.d.ts +0 -2
  5. package/dist/acp/sessions/store.js.map +1 -1
  6. package/dist/acp/utils/tool-kind.js +10 -2
  7. package/dist/acp/utils/tool-kind.js.map +1 -1
  8. package/dist/chat/app.d.ts +2 -1
  9. package/dist/chat/app.js +89 -4
  10. package/dist/chat/app.js.map +1 -1
  11. package/dist/chat/components/BottomChrome.d.ts +6 -2
  12. package/dist/chat/components/BottomChrome.js +2 -2
  13. package/dist/chat/components/BottomChrome.js.map +1 -1
  14. package/dist/chat/components/ChromePicker.d.ts +7 -2
  15. package/dist/chat/components/ChromePicker.js +8 -1
  16. package/dist/chat/components/ChromePicker.js.map +1 -1
  17. package/dist/chat/components/StatusBar.d.ts +1 -2
  18. package/dist/chat/components/StatusBar.js +3 -12
  19. package/dist/chat/components/StatusBar.js.map +1 -1
  20. package/dist/chat/components/ToolEvent.js +1 -1
  21. package/dist/chat/components/ToolEvent.js.map +1 -1
  22. package/dist/chat/index.d.ts +2 -1
  23. package/dist/chat/index.js +7 -0
  24. package/dist/chat/index.js.map +1 -1
  25. package/dist/cli.js +120 -4
  26. package/dist/cli.js.map +1 -1
  27. package/dist/configure/app.js +5 -5
  28. package/dist/configure/app.js.map +1 -1
  29. package/dist/core/agent/index.d.ts +13 -3
  30. package/dist/core/agent/index.js +79 -12
  31. package/dist/core/agent/index.js.map +1 -1
  32. package/dist/core/config.d.ts +9 -7
  33. package/dist/core/config.js +102 -13
  34. package/dist/core/config.js.map +1 -1
  35. package/dist/core/index.d.ts +1 -2
  36. package/dist/core/index.js +6 -7
  37. package/dist/core/index.js.map +1 -1
  38. package/dist/core/mcp/config.d.ts +7 -1
  39. package/dist/core/mcp/config.js +41 -8
  40. package/dist/core/mcp/config.js.map +1 -1
  41. package/dist/core/memory/index.d.ts +1 -0
  42. package/dist/core/memory/index.js +1 -0
  43. package/dist/core/memory/index.js.map +1 -1
  44. package/dist/core/memory/model-extractor.js.map +1 -0
  45. package/dist/core/modes/definitions.js +6 -2
  46. package/dist/core/modes/definitions.js.map +1 -1
  47. package/dist/core/prompts/agents/research.md +8 -4
  48. package/dist/core/prompts/agents/review.md +26 -0
  49. package/dist/core/prompts/agents/test-investigator.md +26 -0
  50. package/dist/core/prompts/modes/ask.md +1 -1
  51. package/dist/core/prompts/modes/plan.md +1 -1
  52. package/dist/core/prompts/runtime.js +2 -30
  53. package/dist/core/prompts/runtime.js.map +1 -1
  54. package/dist/core/prompts/static/subagents.md +12 -8
  55. package/dist/core/prompts/system.js +1 -1
  56. package/dist/core/prompts/system.js.map +1 -1
  57. package/dist/core/runtime-config.d.ts +16 -0
  58. package/dist/core/runtime-config.js +44 -0
  59. package/dist/core/runtime-config.js.map +1 -0
  60. package/dist/core/session-config.js +2 -1
  61. package/dist/core/session-config.js.map +1 -1
  62. package/dist/core/sessions/flat-file-storage.js.map +1 -0
  63. package/dist/core/sessions/lazy-session-manager.js.map +1 -0
  64. package/dist/core/sessions/list-cli-sessions.d.ts +12 -0
  65. package/dist/core/sessions/list-cli-sessions.js +174 -0
  66. package/dist/core/sessions/list-cli-sessions.js.map +1 -0
  67. package/dist/core/skills/built-in/hooman-config/SKILL.md +12 -9
  68. package/dist/core/state/tool-approvals.js +4 -3
  69. package/dist/core/state/tool-approvals.js.map +1 -1
  70. package/dist/core/subagents/index.d.ts +2 -3
  71. package/dist/core/subagents/index.js +2 -3
  72. package/dist/core/subagents/index.js.map +1 -1
  73. package/dist/core/subagents/registry.d.ts +22 -0
  74. package/dist/core/subagents/registry.js +96 -0
  75. package/dist/core/subagents/registry.js.map +1 -0
  76. package/dist/core/subagents/tool.d.ts +6 -14
  77. package/dist/core/subagents/tool.js +73 -53
  78. package/dist/core/subagents/tool.js.map +1 -1
  79. package/dist/core/utils/discover-files.d.ts +12 -0
  80. package/dist/core/utils/discover-files.js +47 -0
  81. package/dist/core/utils/discover-files.js.map +1 -0
  82. package/dist/index.d.ts +5 -5
  83. package/dist/index.js +4 -3
  84. package/dist/index.js.map +1 -1
  85. package/package.json +1 -1
  86. package/dist/acp/meta/system-prompt.d.ts +0 -12
  87. package/dist/acp/meta/system-prompt.js +0 -41
  88. package/dist/acp/meta/system-prompt.js.map +0 -1
  89. package/dist/core/context/flat-file-storage.js.map +0 -1
  90. package/dist/core/context/index.d.ts +0 -22
  91. package/dist/core/context/index.js +0 -74
  92. package/dist/core/context/index.js.map +0 -1
  93. package/dist/core/context/lazy-session-manager.js.map +0 -1
  94. package/dist/core/context/model-extractor.js.map +0 -1
  95. package/dist/core/subagents/research.d.ts +0 -16
  96. package/dist/core/subagents/research.js +0 -58
  97. package/dist/core/subagents/research.js.map +0 -1
  98. package/dist/core/subagents/runner.d.ts +0 -37
  99. package/dist/core/subagents/runner.js +0 -273
  100. package/dist/core/subagents/runner.js.map +0 -1
  101. /package/dist/core/{context → memory}/model-extractor.d.ts +0 -0
  102. /package/dist/core/{context → memory}/model-extractor.js +0 -0
  103. /package/dist/core/{context → sessions}/flat-file-storage.d.ts +0 -0
  104. /package/dist/core/{context → sessions}/flat-file-storage.js +0 -0
  105. /package/dist/core/{context → sessions}/lazy-session-manager.d.ts +0 -0
  106. /package/dist/core/{context → sessions}/lazy-session-manager.js +0 -0
@@ -1,7 +1,13 @@
1
- import { Agent, BeforeInvocationEvent, HookOrder, } from "@strands-agents/sdk";
2
- import { create as createContext } from "../context/index.js";
1
+ import { Agent, BeforeInvocationEvent, HookOrder, IntervalTrigger, SessionManager, SummarizingConversationManager, } from "@strands-agents/sdk";
2
+ import { ContextInjector } from "@strands-agents/sdk/vended-plugins/context-injector";
3
+ import { ContextOffloader, FileStorage, } from "@strands-agents/sdk/vended-plugins/context-offloader";
4
+ import { join } from "node:path";
5
+ import { FileMemoryStore } from "../memory/index.js";
6
+ import { ToolBasedModelExtractor } from "../memory/model-extractor.js";
3
7
  import { modelProviders } from "../models/index.js";
4
- import { createRunSubagentTools, loadResearchSubagent, } from "../subagents/index.js";
8
+ import { FlatFileStorage } from "../sessions/flat-file-storage.js";
9
+ import { LazySessionManager } from "../sessions/lazy-session-manager.js";
10
+ import { createSubagentTools, loadSubagentRegistry, } from "../subagents/index.js";
5
11
  import { createByeTools, createTodoTools, createFetchTools, createFilesystemTools, createGrepTools, clearReadTimeAgentInstructionState, createPlanTools, createSleepTools, createShellTools, createThinkingTools, createTimeTools, createWebSearchTools, } from "../tools/index.js";
6
12
  import { createSessionModePromptPlugin } from "../prompts/session-mode-appendix.js";
7
13
  import { clearAgentSkillsPromptInjectionState, createAgentSkillsPlugin, } from "../skills/index.js";
@@ -10,7 +16,14 @@ import { applySessionMode } from "./sync-tool-registry-mode.js";
10
16
  import { clearTodoState } from "../state/todos.js";
11
17
  import { MODE_STATE_KEY } from "../state/session-mode.js";
12
18
  import { YOLO_STATE_KEY } from "../state/yolo.js";
19
+ import { memoryPath, sessionsPath } from "../utils/paths.js";
13
20
  const SECTION_BREAK = "\n\n---\n\n";
21
+ const OFFLOADED_CONTENT_DIR = "offloaded-content";
22
+ const OFFLOADING_MAX_RESULT_TOKENS = 5_000;
23
+ const OFFLOADING_PREVIEW_TOKENS = 2_000;
24
+ const MEMORY_STORE_NAME = "long_term";
25
+ const MEMORY_EXTRACTION_TURNS = 5;
26
+ const MEMORY_MAX_SEARCH_RESULTS = 5;
14
27
  const agentConversationManagers = new WeakMap();
15
28
  const agentSessionManagers = new WeakMap();
16
29
  export function getAgentConversationManager(agent) {
@@ -32,9 +45,7 @@ export async function create(config, system, mcp, print = false, meta) {
32
45
  async function buildBaseSystemPrompt() {
33
46
  await system.reload();
34
47
  const appendNext = await mcp.manager.listServerInstructions();
35
- return [system.content, meta.systemPrompt, ...appendNext]
36
- .filter(Boolean)
37
- .join(SECTION_BREAK);
48
+ return [system.content, ...appendNext].filter(Boolean).join(SECTION_BREAK);
38
49
  }
39
50
  const base = await buildBaseSystemPrompt();
40
51
  const model = llm.create(activeLlm.providerOptions, activeLlm.llmOptions);
@@ -52,17 +63,16 @@ export async function create(config, system, mcp, print = false, meta) {
52
63
  ...createPlanTools(),
53
64
  ...prefixed,
54
65
  ];
55
- if (config.tools.agents.enabled) {
56
- const research = loadResearchSubagent(config, {
66
+ if (config.tools.subagents.enabled) {
67
+ const registry = loadSubagentRegistry(config, {
57
68
  knownTools: tools.map((entry) => entry.name),
58
69
  baseSystemPrompt: base,
59
70
  });
60
- tools.push(...createRunSubagentTools({
71
+ tools.push(...createSubagentTools({
61
72
  parent: config.name,
62
- research,
73
+ registry,
63
74
  tools,
64
75
  createModel: () => llm.create(activeLlm.providerOptions, activeLlm.llmOptions),
65
- concurrency: config.tools.agents.concurrency,
66
76
  }));
67
77
  }
68
78
  const agent = new Agent({
@@ -73,7 +83,7 @@ export async function create(config, system, mcp, print = false, meta) {
73
83
  ...(userId ? { userId } : {}),
74
84
  ...(sessionId ? { sessionId } : {}),
75
85
  ...(meta.yolo ? { [YOLO_STATE_KEY]: true } : {}),
76
- ...(meta.sessionMode ? { [MODE_STATE_KEY]: meta.sessionMode } : {}),
86
+ ...(meta.mode ? { [MODE_STATE_KEY]: meta.mode } : {}),
77
87
  },
78
88
  plugins: [skillsPlugin, sessionModePlugin, ...contextPlugins],
79
89
  interventions: meta.interventions ?? [],
@@ -101,4 +111,61 @@ export async function create(config, system, mcp, print = false, meta) {
101
111
  applySessionMode(agent);
102
112
  return agent;
103
113
  }
114
+ export function createContext(sessionId) {
115
+ const conversationManager = new SummarizingConversationManager({
116
+ summaryRatio: 0.5,
117
+ preserveRecentMessages: 5,
118
+ });
119
+ const storage = new FlatFileStorage(sessionsPath());
120
+ const offloadingPlugins = createOffloadingPlugins();
121
+ const memoryManager = createMemoryManager();
122
+ if (!sessionId) {
123
+ return {
124
+ plugins: [...offloadingPlugins, new LazySessionManager({ storage })],
125
+ conversationManager,
126
+ memoryManager,
127
+ };
128
+ }
129
+ const sessionManager = new SessionManager({
130
+ sessionId,
131
+ storage: { snapshot: storage },
132
+ });
133
+ return {
134
+ plugins: offloadingPlugins,
135
+ sessionManager,
136
+ conversationManager,
137
+ memoryManager,
138
+ };
139
+ }
140
+ function createOffloadingPlugins() {
141
+ return [
142
+ new ContextInjector({
143
+ name: "hooman:clock",
144
+ trigger: "userTurn",
145
+ renderContent: async () => `<now>${new Date().toISOString()}</now>`,
146
+ }),
147
+ new ContextOffloader({
148
+ storage: new FileStorage(join(sessionsPath(), OFFLOADED_CONTENT_DIR)),
149
+ maxResultTokens: OFFLOADING_MAX_RESULT_TOKENS,
150
+ previewTokens: OFFLOADING_PREVIEW_TOKENS,
151
+ includeRetrievalTool: true,
152
+ }),
153
+ ];
154
+ }
155
+ function createMemoryManager() {
156
+ const store = new FileMemoryStore({
157
+ baseDir: memoryPath(),
158
+ name: MEMORY_STORE_NAME,
159
+ description: "Durable facts, preferences, recurring tasks, and stable context learned about the current user across sessions.",
160
+ maxSearchResults: MEMORY_MAX_SEARCH_RESULTS,
161
+ writable: true,
162
+ extraction: {
163
+ trigger: new IntervalTrigger({ turns: MEMORY_EXTRACTION_TURNS }),
164
+ extractor: new ToolBasedModelExtractor(),
165
+ },
166
+ });
167
+ return {
168
+ stores: [store],
169
+ };
170
+ }
104
171
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/agent/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/agent/index.ts"],"names":[],"mappings":"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"}
@@ -161,9 +161,8 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
161
161
  sleep: z.ZodOptional<z.ZodObject<{
162
162
  enabled: z.ZodOptional<z.ZodBoolean>;
163
163
  }, z.core.$strip>>;
164
- agents: z.ZodOptional<z.ZodObject<{
164
+ subagents: z.ZodOptional<z.ZodObject<{
165
165
  enabled: z.ZodOptional<z.ZodBoolean>;
166
- concurrency: z.ZodOptional<z.ZodNumber>;
167
166
  }, z.core.$strip>>;
168
167
  }, z.core.$strip>>>;
169
168
  compaction: z.ZodOptional<z.ZodNullable<z.ZodObject<{
@@ -315,9 +314,8 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
315
314
  sleep: {
316
315
  enabled: boolean;
317
316
  };
318
- agents: {
317
+ subagents: {
319
318
  enabled: boolean;
320
- concurrency: number;
321
319
  };
322
320
  };
323
321
  compaction: {
@@ -469,9 +467,8 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
469
467
  sleep?: {
470
468
  enabled?: boolean | undefined;
471
469
  } | undefined;
472
- agents?: {
470
+ subagents?: {
473
471
  enabled?: boolean | undefined;
474
- concurrency?: number | undefined;
475
472
  } | undefined;
476
473
  } | null | undefined;
477
474
  compaction?: {
@@ -497,12 +494,16 @@ export type CompactionConfig = ConfigData["compaction"];
497
494
  export type PromptsConfig = ConfigData["prompts"];
498
495
  export type SearchConfig = ConfigData["search"];
499
496
  export type ToolsConfig = ConfigData["tools"];
497
+ export type ConfigOptions = {
498
+ overlayPaths?: readonly string[];
499
+ };
500
500
  export { LlmProvider };
501
501
  export type { NamedLlmConfig, NamedProviderConfig };
502
502
  export declare class Config {
503
503
  private data;
504
504
  private readonly path;
505
- constructor(path: string);
505
+ private readonly overlayPaths;
506
+ constructor(path: string, options?: ConfigOptions);
506
507
  get name(): string;
507
508
  private resolveNamedLlm;
508
509
  get providers(): NamedProviderConfig[];
@@ -515,6 +516,7 @@ export declare class Config {
515
516
  get tools(): ToolsConfig;
516
517
  get compaction(): CompactionConfig;
517
518
  private readJson;
519
+ private readOverlay;
518
520
  reload(): void;
519
521
  persist(): void;
520
522
  update(partial: Partial<ConfigData>): void;
@@ -21,9 +21,8 @@ const PromptsPartialSchema = z.object({
21
21
  execution: z.boolean().optional(),
22
22
  guardrails: z.boolean().optional(),
23
23
  });
24
- const AgentsPartialSchema = z.object({
24
+ const SubagentsPartialSchema = z.object({
25
25
  enabled: z.boolean().optional(),
26
- concurrency: z.number().int().min(1).optional(),
27
26
  });
28
27
  const SearchPartialSchema = z.object({
29
28
  enabled: z.boolean().optional(),
@@ -40,7 +39,7 @@ const ToolsPartialSchema = z.object({
40
39
  filesystem: ToolTogglePartialSchema.optional(),
41
40
  shell: ToolTogglePartialSchema.optional(),
42
41
  sleep: ToolTogglePartialSchema.optional(),
43
- agents: AgentsPartialSchema.optional(),
42
+ subagents: SubagentsPartialSchema.optional(),
44
43
  });
45
44
  const DEFAULT_COMPACTION = { ratio: 0.75, keep: 5 };
46
45
  const DEFAULT_PROMPTS = {
@@ -107,9 +106,8 @@ const ConfigSchema = z
107
106
  filesystem: { enabled: input.tools?.filesystem?.enabled ?? true },
108
107
  shell: { enabled: input.tools?.shell?.enabled ?? true },
109
108
  sleep: { enabled: input.tools?.sleep?.enabled ?? true },
110
- agents: {
111
- enabled: input.tools?.agents?.enabled ?? true,
112
- concurrency: input.tools?.agents?.concurrency ?? 3,
109
+ subagents: {
110
+ enabled: input.tools?.subagents?.enabled ?? true,
113
111
  },
114
112
  },
115
113
  compaction: {
@@ -117,6 +115,17 @@ const ConfigSchema = z
117
115
  keep: input.compaction?.keep ?? DEFAULT_COMPACTION.keep,
118
116
  },
119
117
  }));
118
+ const ConfigOverlaySchema = z
119
+ .object({
120
+ name: z.string().min(1).optional(),
121
+ providers: z.array(NamedProviderConfigSchema).optional(),
122
+ llms: z.array(NamedLlmConfigSchema).optional(),
123
+ search: SearchPartialSchema.optional(),
124
+ prompts: PromptsPartialSchema.optional(),
125
+ tools: ToolsPartialSchema.optional(),
126
+ compaction: CompactionPartialSchema.optional(),
127
+ })
128
+ .strict();
120
129
  const defaultConfigData = () => ({
121
130
  name: "Hooman",
122
131
  providers: [
@@ -152,7 +161,7 @@ const defaultConfigData = () => ({
152
161
  filesystem: { enabled: true },
153
162
  shell: { enabled: true },
154
163
  sleep: { enabled: true },
155
- agents: { enabled: true, concurrency: 2 },
164
+ subagents: { enabled: true },
156
165
  },
157
166
  compaction: {
158
167
  ratio: 0.75,
@@ -162,12 +171,59 @@ const defaultConfigData = () => ({
162
171
  function clone(value) {
163
172
  return structuredClone(value);
164
173
  }
174
+ function mergeNamedEntries(base, overlay) {
175
+ const merged = new Map(base.map((entry) => [entry.name, entry]));
176
+ for (const entry of overlay) {
177
+ merged.set(entry.name, entry);
178
+ }
179
+ return [...merged.values()];
180
+ }
181
+ function isPlainObject(value) {
182
+ return typeof value === "object" && value !== null && !Array.isArray(value);
183
+ }
184
+ function deepMerge(base, overlay) {
185
+ if (!isPlainObject(base) || !isPlainObject(overlay)) {
186
+ return overlay;
187
+ }
188
+ const result = { ...base };
189
+ for (const [key, value] of Object.entries(overlay)) {
190
+ if (value === undefined) {
191
+ continue;
192
+ }
193
+ const current = result[key];
194
+ if (isPlainObject(current) && isPlainObject(value)) {
195
+ result[key] = deepMerge(current, value);
196
+ continue;
197
+ }
198
+ result[key] = value;
199
+ }
200
+ return result;
201
+ }
202
+ function applyOverlay(base, overlay) {
203
+ const { providers, llms, ...remaining } = overlay;
204
+ const mergedBase = deepMerge(base, remaining);
205
+ return {
206
+ ...mergedBase,
207
+ providers: providers
208
+ ? mergeNamedEntries(mergedBase.providers, providers)
209
+ : mergedBase.providers,
210
+ llms: llms ? mergeNamedEntries(mergedBase.llms, llms) : mergedBase.llms,
211
+ };
212
+ }
213
+ function formatLoadError(path, error) {
214
+ const message = error instanceof Error ? error.message : "Unknown configuration error.";
215
+ return new Error(`Failed to load config from "${path}": ${message}`, {
216
+ cause: error instanceof Error ? error : undefined,
217
+ });
218
+ }
165
219
  export { LlmProvider };
166
220
  export class Config {
167
221
  data;
168
222
  path;
169
- constructor(path) {
223
+ overlayPaths;
224
+ constructor(path, options) {
170
225
  this.path = path;
226
+ this.overlayPaths = [...(options?.overlayPaths ?? [])];
171
227
  this.reload();
172
228
  }
173
229
  get name() {
@@ -220,15 +276,48 @@ export class Config {
220
276
  get compaction() {
221
277
  return clone(this.data.compaction);
222
278
  }
223
- readJson() {
224
- if (!existsSync(this.path)) {
225
- return defaultConfigData();
279
+ readJson(path, fallback) {
280
+ if (!existsSync(path)) {
281
+ return fallback;
282
+ }
283
+ try {
284
+ return JSON.parse(readFileSync(path, "utf8"));
285
+ }
286
+ catch (error) {
287
+ throw formatLoadError(path, error);
288
+ }
289
+ }
290
+ readOverlay(path) {
291
+ try {
292
+ return ConfigOverlaySchema.parse(this.readJson(path, {}));
293
+ }
294
+ catch (error) {
295
+ throw formatLoadError(path, error);
226
296
  }
227
- return JSON.parse(readFileSync(this.path, "utf8"));
228
297
  }
229
298
  reload() {
230
299
  const wasMissing = !existsSync(this.path);
231
- this.data = ConfigSchema.parse(this.readJson());
300
+ let resolved;
301
+ try {
302
+ resolved = ConfigSchema.parse(this.readJson(this.path, defaultConfigData()));
303
+ }
304
+ catch (error) {
305
+ throw formatLoadError(this.path, error);
306
+ }
307
+ for (const overlayPath of this.overlayPaths) {
308
+ resolved = applyOverlay(resolved, this.readOverlay(overlayPath));
309
+ }
310
+ try {
311
+ this.data = ConfigSchema.parse(resolved);
312
+ }
313
+ catch (error) {
314
+ const origins = [this.path, ...this.overlayPaths].join(", ");
315
+ throw new Error(`Failed to validate merged config (sources: ${origins}): ${error instanceof Error
316
+ ? error.message
317
+ : "Unknown configuration error."}`, {
318
+ cause: error instanceof Error ? error : undefined,
319
+ });
320
+ }
232
321
  if (wasMissing) {
233
322
  this.persist();
234
323
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export type BootstrapMeta = {
9
9
  /** When true, seeds `hooman.yolo` on the agent appState (auto-approve tools). */
10
10
  yolo?: boolean;
11
11
  /** Seeds session mode on agent appState (`agent`, `ask`, or `plan`). */
12
- sessionMode?: SessionMode;
12
+ mode?: SessionMode;
13
13
  interventions?: InterventionHandler[];
14
14
  createInterventions?: (deps: {
15
15
  manager: McpConnectionManager;
@@ -18,7 +18,6 @@ export type BootstrapMeta = {
18
18
  };
19
19
  export type BootstrapMode = "default" | "daemon" | "acp";
20
20
  export type AcpMeta = {
21
- systemPrompt?: string;
22
21
  mcpServers?: NamedMcpTransport[];
23
22
  };
24
23
  export declare function bootstrap(mode: BootstrapMode, meta: BootstrapMeta, print?: boolean, config?: Config): Promise<{
@@ -1,11 +1,11 @@
1
- import { Config } from "./config.js";
2
1
  import { create as createAgent } from "./agent/index.js";
3
- import { createMcpConfig, createMcpManager, } from "./mcp/index.js";
2
+ import { createMcpManager, } from "./mcp/index.js";
3
+ import { createRuntimeConfig, createRuntimeMcpConfig, } from "./runtime-config.js";
4
4
  import { createSkillsRegistry } from "./skills/index.js";
5
5
  import { system as createSystemPrompt } from "./prompts/index.js";
6
- import { basePath, configJsonPath, instructionsMdPath, mcpJsonPath, } from "./utils/paths.js";
7
- export async function bootstrap(mode, meta, print = false, config = new Config(configJsonPath())) {
8
- const mcpConfig = createMcpConfig(mcpJsonPath());
6
+ import { basePath, instructionsMdPath } from "./utils/paths.js";
7
+ export async function bootstrap(mode, meta, print = false, config = createRuntimeConfig()) {
8
+ const mcpConfig = createRuntimeMcpConfig();
9
9
  const mcpManager = createMcpManager(mcpConfig, mode === "acp", meta.acp?.mcpServers ?? []);
10
10
  const mcp = { config: mcpConfig, manager: mcpManager };
11
11
  const registry = createSkillsRegistry(basePath());
@@ -17,9 +17,8 @@ export async function bootstrap(mode, meta, print = false, config = new Config(c
17
17
  const agent = await createAgent(config, system, mcp, print, {
18
18
  userId: meta?.userId ?? meta?.sessionId,
19
19
  sessionId: meta?.sessionId,
20
- systemPrompt: meta?.acp?.systemPrompt,
21
20
  yolo: meta?.yolo,
22
- sessionMode: meta?.sessionMode,
21
+ mode: meta?.mode,
23
22
  interventions,
24
23
  });
25
24
  return { config, agent, mcp, registry };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,eAAe,EACf,gBAAgB,GAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAuB1B,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAmB,EACnB,IAAmB,EACnB,QAAiB,KAAK,EACtB,SAAiB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;IAO7C,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,gBAAgB,CACjC,SAAS,EACT,IAAI,KAAK,KAAK,EACd,IAAI,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE,CAC3B,CAAC;IACF,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG;QACpB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;KAC/D,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;QAC1D,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,SAAS;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY;QACrC,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,aAAa;KACd,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,gBAAgB,GAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAsBhE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAmB,EACnB,IAAmB,EACnB,QAAiB,KAAK,EACtB,SAAiB,mBAAmB,EAAE;IAOtC,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,gBAAgB,CACjC,SAAS,EACT,IAAI,KAAK,KAAK,EACd,IAAI,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE,CAC3B,CAAC;IACF,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG;QACpB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;KAC/D,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;QAC1D,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,SAAS;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,aAAa;KACd,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC"}
@@ -46,6 +46,9 @@ declare const McpServersFileSchema: z.ZodObject<{
46
46
  }, z.core.$strip>], "type">>>;
47
47
  }, z.core.$strip>;
48
48
  export type McpServersFile = z.infer<typeof McpServersFileSchema>;
49
+ export type ConfigOptions = {
50
+ overlayPaths?: readonly string[];
51
+ };
49
52
  /** One named MCP transport from the config file. */
50
53
  export type NamedMcpTransport = {
51
54
  name: string;
@@ -56,9 +59,12 @@ export type NamedMcpTransport = {
56
59
  */
57
60
  export declare class Config {
58
61
  private readonly path;
62
+ private readonly overlayPaths;
59
63
  private servers;
60
- constructor(path: string);
64
+ constructor(path: string, options?: ConfigOptions);
61
65
  private readJson;
66
+ private parse;
67
+ private mergedServers;
62
68
  /** Reload servers from disk (overwrites unsaved in-memory changes). */
63
69
  reload(): void;
64
70
  /** All configured servers, stable sort by name. */
@@ -9,23 +9,56 @@ const McpServersFileSchema = z.object({
9
9
  */
10
10
  export class Config {
11
11
  path;
12
+ overlayPaths;
12
13
  servers;
13
- constructor(path) {
14
+ constructor(path, options) {
14
15
  this.path = path;
16
+ this.overlayPaths = [...(options?.overlayPaths ?? [])];
15
17
  this.servers = {};
16
18
  this.reload();
17
19
  }
18
- readJson() {
19
- if (!existsSync(this.path)) {
20
- return { mcpServers: {} };
20
+ readJson(path, fallback) {
21
+ if (!existsSync(path)) {
22
+ return fallback;
21
23
  }
22
- const raw = readFileSync(this.path, "utf8");
23
- return JSON.parse(raw);
24
+ try {
25
+ const raw = readFileSync(path, "utf8");
26
+ return JSON.parse(raw);
27
+ }
28
+ catch (error) {
29
+ const message = error instanceof Error ? error.message : "Unknown configuration error.";
30
+ throw new Error(`Failed to load MCP config from "${path}": ${message}`, {
31
+ cause: error instanceof Error ? error : undefined,
32
+ });
33
+ }
34
+ }
35
+ parse(path, fallback) {
36
+ try {
37
+ return McpServersFileSchema.parse(this.readJson(path, fallback));
38
+ }
39
+ catch (error) {
40
+ const message = error instanceof Error ? error.message : "Unknown configuration error.";
41
+ throw new Error(`Failed to parse MCP config from "${path}": ${message}`, {
42
+ cause: error instanceof Error ? error : undefined,
43
+ });
44
+ }
45
+ }
46
+ mergedServers() {
47
+ const primary = this.parse(this.path, { mcpServers: {} });
48
+ const merged = { ...primary.mcpServers };
49
+ for (const overlayPath of this.overlayPaths) {
50
+ const overlay = this.parse(overlayPath, { mcpServers: {} });
51
+ Object.assign(merged, overlay.mcpServers);
52
+ }
53
+ return merged;
24
54
  }
25
55
  /** Reload servers from disk (overwrites unsaved in-memory changes). */
26
56
  reload() {
27
- const parsed = McpServersFileSchema.parse(this.readJson());
28
- this.servers = { ...parsed.mcpServers };
57
+ const wasMissing = !existsSync(this.path);
58
+ this.servers = this.mergedServers();
59
+ if (wasMissing) {
60
+ this.persist();
61
+ }
29
62
  }
30
63
  /** All configured servers, stable sort by name. */
31
64
  list() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/mcp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAEnE,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxE,CAAC,CAAC;AAOH;;GAEG;AACH,MAAM,OAAO,MAAM;IACA,IAAI,CAAS;IACtB,OAAO,CAA+B;IAE9C,YAAmB,IAAY;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAC3C,CAAC;IAED,uEAAuE;IAChE,MAAM;QACX,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,mDAAmD;IAC5C,IAAI;QACT,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;aAChC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEO,OAAO;QACb,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1D,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,SAAuB;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,mBAAmB,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,SAAuB;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,mBAAmB,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,IAAY;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,mBAAmB,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/mcp/config.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export { FileMemoryStore } from "./file-store.js";
2
+ export { ToolBasedModelExtractor } from "./model-extractor.js";
2
3
  export { currentMemoryScope, flushAgentMemory, runWithAgentMemoryScope, } from "./runtime.js";
@@ -1,3 +1,4 @@
1
1
  export { FileMemoryStore } from "./file-store.js";
2
+ export { ToolBasedModelExtractor } from "./model-extractor.js";
2
3
  export { currentMemoryScope, flushAgentMemory, runWithAgentMemoryScope, } from "./runtime.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-extractor.js","sourceRoot":"","sources":["../../../src/core/memory/model-extractor.ts"],"names":[],"mappings":"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"}