hoomanjs 1.45.0 → 1.45.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.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/dist/acp/acp-agent.js +0 -6
  3. package/dist/acp/acp-agent.js.map +1 -1
  4. package/dist/chat/app.js +0 -2
  5. package/dist/chat/app.js.map +1 -1
  6. package/dist/core/agent/index.js +57 -36
  7. package/dist/core/agent/index.js.map +1 -1
  8. package/dist/core/agent/lazy-tool-registry.d.ts +42 -0
  9. package/dist/core/agent/lazy-tool-registry.js +136 -0
  10. package/dist/core/agent/lazy-tool-registry.js.map +1 -0
  11. package/dist/core/mcp/manager.d.ts +3 -2
  12. package/dist/core/mcp/manager.js.map +1 -1
  13. package/dist/core/mcp/oauth/provider.js +12 -4
  14. package/dist/core/mcp/oauth/provider.js.map +1 -1
  15. package/dist/core/mcp/oauth/service.js +3 -1
  16. package/dist/core/mcp/oauth/service.js.map +1 -1
  17. package/dist/core/mcp/prefixed-mcp-tool.d.ts +1 -0
  18. package/dist/core/mcp/prefixed-mcp-tool.js +2 -0
  19. package/dist/core/mcp/prefixed-mcp-tool.js.map +1 -1
  20. package/dist/core/modes/definitions.js +4 -0
  21. package/dist/core/modes/definitions.js.map +1 -1
  22. package/dist/core/prompts/static/mcp-discovery.md +10 -0
  23. package/dist/core/prompts/system.js +1 -0
  24. package/dist/core/prompts/system.js.map +1 -1
  25. package/dist/core/state/active-mcp-tools.d.ts +10 -0
  26. package/dist/core/state/active-mcp-tools.js +22 -0
  27. package/dist/core/state/active-mcp-tools.js.map +1 -0
  28. package/dist/core/state/tool-approvals.js +4 -0
  29. package/dist/core/state/tool-approvals.js.map +1 -1
  30. package/dist/core/subagents/index.d.ts +1 -1
  31. package/dist/core/subagents/index.js +1 -1
  32. package/dist/core/subagents/index.js.map +1 -1
  33. package/dist/core/subagents/registry.d.ts +2 -2
  34. package/dist/core/subagents/registry.js +2 -2
  35. package/dist/core/subagents/registry.js.map +1 -1
  36. package/dist/core/tools/index.d.ts +1 -0
  37. package/dist/core/tools/index.js +1 -0
  38. package/dist/core/tools/index.js.map +1 -1
  39. package/dist/core/tools/mcp-discovery.d.ts +15 -0
  40. package/dist/core/tools/mcp-discovery.js +209 -0
  41. package/dist/core/tools/mcp-discovery.js.map +1 -0
  42. package/dist/core/tools/plan.js +0 -3
  43. package/dist/core/tools/plan.js.map +1 -1
  44. package/dist/index.d.ts +2 -3
  45. package/dist/index.js +2 -3
  46. package/dist/index.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/core/agent/mode-aware-tool-registry.d.ts +0 -18
  49. package/dist/core/agent/mode-aware-tool-registry.js +0 -71
  50. package/dist/core/agent/mode-aware-tool-registry.js.map +0 -1
  51. package/dist/core/agent/sync-tool-registry-mode.d.ts +0 -6
  52. package/dist/core/agent/sync-tool-registry-mode.js +0 -15
  53. package/dist/core/agent/sync-tool-registry-mode.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hoomanjs",
3
- "version": "1.45.0",
3
+ "version": "1.45.2",
4
4
  "description": "Hackable AI agent toolkit for building local CLI, ACP, MCP, and channel-driven workflows.",
5
5
  "author": {
6
6
  "name": "Vaibhav Pandey",
@@ -1,18 +0,0 @@
1
- import type { Tool } from "@strands-agents/sdk";
2
- import type { SessionMode } from "../state/session-mode.js";
3
- /**
4
- * Tool registry that mirrors Strands SDK registry semantics (name validation, map storage)
5
- * and filters tools by {@link SessionMode}. Avoids extending SDK-internal `ToolRegistry`, which
6
- * is not exported and breaks under hoisted `@strands-agents/sdk`.
7
- */
8
- export declare class ModeAwareToolRegistry {
9
- #private;
10
- private readonly _tools;
11
- private mode;
12
- constructor(tools?: Tool[]);
13
- setSessionMode(mode: SessionMode): void;
14
- add(tool: Tool | Tool[]): void;
15
- get(name: string): Tool | undefined;
16
- remove(name: string): void;
17
- list(): Tool[];
18
- }
@@ -1,71 +0,0 @@
1
- import { ToolValidationError } from "@strands-agents/sdk";
2
- import { DEFAULT_SESSION_MODE } from "../modes/schema.js";
3
- import { isToolVisible } from "../state/tool-approvals.js";
4
- function toolVisibilityOptions(tool) {
5
- if ("mcpReadOnlyHint" in tool &&
6
- tool.mcpReadOnlyHint === true) {
7
- return { mcpReadOnlyHint: true };
8
- }
9
- return undefined;
10
- }
11
- /**
12
- * Tool registry that mirrors Strands SDK registry semantics (name validation, map storage)
13
- * and filters tools by {@link SessionMode}. Avoids extending SDK-internal `ToolRegistry`, which
14
- * is not exported and breaks under hoisted `@strands-agents/sdk`.
15
- */
16
- export class ModeAwareToolRegistry {
17
- _tools = new Map();
18
- mode = DEFAULT_SESSION_MODE;
19
- constructor(tools) {
20
- if (tools) {
21
- this.add(tools);
22
- }
23
- }
24
- setSessionMode(mode) {
25
- this.mode = mode;
26
- }
27
- add(tool) {
28
- const tools = Array.isArray(tool) ? tool : [tool];
29
- for (const t of tools) {
30
- this.#validate(t);
31
- this._tools.set(t.name, t);
32
- }
33
- }
34
- get(name) {
35
- const t = this._tools.get(name);
36
- if (!t) {
37
- return undefined;
38
- }
39
- if (!isToolVisible(this.mode, name, toolVisibilityOptions(t))) {
40
- return undefined;
41
- }
42
- return t;
43
- }
44
- remove(name) {
45
- this._tools.delete(name);
46
- }
47
- list() {
48
- return Array.from(this._tools.values()).filter((t) => isToolVisible(this.mode, t.name, toolVisibilityOptions(t)));
49
- }
50
- #validate(tool) {
51
- if (typeof tool.name !== "string") {
52
- throw new ToolValidationError("Tool name must be a string");
53
- }
54
- if (tool.name.length < 1 || tool.name.length > 64) {
55
- throw new ToolValidationError("Tool name must be between 1 and 64 characters");
56
- }
57
- const validNamePattern = /^[a-zA-Z0-9_-]+$/;
58
- if (!validNamePattern.test(tool.name)) {
59
- throw new ToolValidationError("Tool name must contain only alphanumeric characters, hyphens, and underscores");
60
- }
61
- if (tool.description !== undefined && tool.description !== null) {
62
- if (typeof tool.description !== "string" || tool.description.length < 1) {
63
- throw new ToolValidationError("Tool description must be a non-empty string");
64
- }
65
- }
66
- if (this._tools.has(tool.name)) {
67
- throw new ToolValidationError(`Tool with name '${tool.name}' already registered`);
68
- }
69
- }
70
- }
71
- //# sourceMappingURL=mode-aware-tool-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mode-aware-tool-registry.js","sourceRoot":"","sources":["../../../src/core/agent/mode-aware-tool-registry.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { getModeState } from "../state/session-mode.js";
2
- type SyncAgent = Parameters<typeof getModeState>[0] & {
3
- toolRegistry: unknown;
4
- };
5
- export declare function applySessionMode(agent: SyncAgent): void;
6
- export {};
@@ -1,15 +0,0 @@
1
- import { clearPlanState } from "../state/plan.js";
2
- import { getModeState } from "../state/session-mode.js";
3
- import { ModeAwareToolRegistry } from "./mode-aware-tool-registry.js";
4
- export function applySessionMode(agent) {
5
- const registry = agent.toolRegistry;
6
- if (!(registry instanceof ModeAwareToolRegistry)) {
7
- return;
8
- }
9
- const { mode } = getModeState(agent);
10
- registry.setSessionMode(mode);
11
- if (mode !== "plan") {
12
- clearPlanState(agent);
13
- }
14
- }
15
- //# sourceMappingURL=sync-tool-registry-mode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-tool-registry-mode.js","sourceRoot":"","sources":["../../../src/core/agent/sync-tool-registry-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAMtE,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;IACpC,IAAI,CAAC,CAAC,QAAQ,YAAY,qBAAqB,CAAC,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}