@zhijiewang/openharness 0.11.0 → 0.12.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 (114) hide show
  1. package/README.md +203 -23
  2. package/dist/DeferredTool.d.ts +34 -0
  3. package/dist/DeferredTool.d.ts.map +1 -0
  4. package/dist/DeferredTool.js +62 -0
  5. package/dist/DeferredTool.js.map +1 -0
  6. package/dist/DeferredTool.test.d.ts +2 -0
  7. package/dist/DeferredTool.test.d.ts.map +1 -0
  8. package/dist/DeferredTool.test.js +79 -0
  9. package/dist/DeferredTool.test.js.map +1 -0
  10. package/dist/agents/roles.d.ts.map +1 -1
  11. package/dist/agents/roles.js +20 -6
  12. package/dist/agents/roles.js.map +1 -1
  13. package/dist/agents/roles.test.js +26 -2
  14. package/dist/agents/roles.test.js.map +1 -1
  15. package/dist/harness/config.d.ts +15 -0
  16. package/dist/harness/config.d.ts.map +1 -1
  17. package/dist/harness/config.js +45 -23
  18. package/dist/harness/config.js.map +1 -1
  19. package/dist/harness/memory-consolidation.test.d.ts +2 -0
  20. package/dist/harness/memory-consolidation.test.d.ts.map +1 -0
  21. package/dist/harness/memory-consolidation.test.js +152 -0
  22. package/dist/harness/memory-consolidation.test.js.map +1 -0
  23. package/dist/harness/memory.d.ts +12 -0
  24. package/dist/harness/memory.d.ts.map +1 -1
  25. package/dist/harness/memory.js +53 -2
  26. package/dist/harness/memory.js.map +1 -1
  27. package/dist/harness/memory.test.js +43 -1
  28. package/dist/harness/memory.test.js.map +1 -1
  29. package/dist/harness/session.test.js +36 -0
  30. package/dist/harness/session.test.js.map +1 -1
  31. package/dist/harness/verification.d.ts +41 -0
  32. package/dist/harness/verification.d.ts.map +1 -0
  33. package/dist/harness/verification.js +197 -0
  34. package/dist/harness/verification.js.map +1 -0
  35. package/dist/harness/verification.test.d.ts +2 -0
  36. package/dist/harness/verification.test.d.ts.map +1 -0
  37. package/dist/harness/verification.test.js +181 -0
  38. package/dist/harness/verification.test.js.map +1 -0
  39. package/dist/query/index.d.ts.map +1 -1
  40. package/dist/query/index.js +9 -1
  41. package/dist/query/index.js.map +1 -1
  42. package/dist/query/tools.d.ts.map +1 -1
  43. package/dist/query/tools.js +30 -4
  44. package/dist/query/tools.js.map +1 -1
  45. package/dist/renderer/index.d.ts +2 -0
  46. package/dist/renderer/index.d.ts.map +1 -1
  47. package/dist/renderer/index.js +26 -16
  48. package/dist/renderer/index.js.map +1 -1
  49. package/dist/repl.d.ts.map +1 -1
  50. package/dist/repl.js +90 -15
  51. package/dist/repl.js.map +1 -1
  52. package/dist/services/AgentDispatcher.d.ts +1 -0
  53. package/dist/services/AgentDispatcher.d.ts.map +1 -1
  54. package/dist/services/AgentDispatcher.js +10 -1
  55. package/dist/services/AgentDispatcher.js.map +1 -1
  56. package/dist/services/CronExecutor.d.ts +38 -0
  57. package/dist/services/CronExecutor.d.ts.map +1 -0
  58. package/dist/services/CronExecutor.js +130 -0
  59. package/dist/services/CronExecutor.js.map +1 -0
  60. package/dist/services/CronExecutor.test.d.ts +2 -0
  61. package/dist/services/CronExecutor.test.d.ts.map +1 -0
  62. package/dist/services/CronExecutor.test.js +128 -0
  63. package/dist/services/CronExecutor.test.js.map +1 -0
  64. package/dist/services/StreamingToolExecutor.d.ts.map +1 -1
  65. package/dist/services/StreamingToolExecutor.js +28 -0
  66. package/dist/services/StreamingToolExecutor.js.map +1 -1
  67. package/dist/services/cron.d.ts +4 -0
  68. package/dist/services/cron.d.ts.map +1 -1
  69. package/dist/services/cron.js +27 -0
  70. package/dist/services/cron.js.map +1 -1
  71. package/dist/tools/AgentTool/index.d.ts +3 -0
  72. package/dist/tools/AgentTool/index.d.ts.map +1 -1
  73. package/dist/tools/AgentTool/index.js +17 -4
  74. package/dist/tools/AgentTool/index.js.map +1 -1
  75. package/dist/tools/CronTool/index.d.ts +40 -0
  76. package/dist/tools/CronTool/index.d.ts.map +1 -0
  77. package/dist/tools/CronTool/index.js +59 -0
  78. package/dist/tools/CronTool/index.js.map +1 -0
  79. package/dist/tools/EnterWorktreeTool/index.d.ts +12 -0
  80. package/dist/tools/EnterWorktreeTool/index.d.ts.map +1 -0
  81. package/dist/tools/EnterWorktreeTool/index.js +27 -0
  82. package/dist/tools/EnterWorktreeTool/index.js.map +1 -0
  83. package/dist/tools/ExitWorktreeTool/index.d.ts +15 -0
  84. package/dist/tools/ExitWorktreeTool/index.d.ts.map +1 -0
  85. package/dist/tools/ExitWorktreeTool/index.js +33 -0
  86. package/dist/tools/ExitWorktreeTool/index.js.map +1 -0
  87. package/dist/tools/KillProcessTool/index.d.ts +18 -0
  88. package/dist/tools/KillProcessTool/index.d.ts.map +1 -0
  89. package/dist/tools/KillProcessTool/index.js +43 -0
  90. package/dist/tools/KillProcessTool/index.js.map +1 -0
  91. package/dist/tools/MemoryTool/index.d.ts +30 -0
  92. package/dist/tools/MemoryTool/index.d.ts.map +1 -0
  93. package/dist/tools/MemoryTool/index.js +56 -0
  94. package/dist/tools/MemoryTool/index.js.map +1 -0
  95. package/dist/tools/MultiEditTool/index.d.ts +32 -0
  96. package/dist/tools/MultiEditTool/index.d.ts.map +1 -0
  97. package/dist/tools/MultiEditTool/index.js +53 -0
  98. package/dist/tools/MultiEditTool/index.js.map +1 -0
  99. package/dist/tools/RemoteTriggerTool/index.d.ts +21 -0
  100. package/dist/tools/RemoteTriggerTool/index.d.ts.map +1 -0
  101. package/dist/tools/RemoteTriggerTool/index.js +43 -0
  102. package/dist/tools/RemoteTriggerTool/index.js.map +1 -0
  103. package/dist/tools/SendMessageTool/index.d.ts +18 -0
  104. package/dist/tools/SendMessageTool/index.d.ts.map +1 -0
  105. package/dist/tools/SendMessageTool/index.js +29 -0
  106. package/dist/tools/SendMessageTool/index.js.map +1 -0
  107. package/dist/tools/ToolSearchTool/index.d.ts.map +1 -1
  108. package/dist/tools/ToolSearchTool/index.js +7 -0
  109. package/dist/tools/ToolSearchTool/index.js.map +1 -1
  110. package/dist/tools.d.ts +8 -0
  111. package/dist/tools.d.ts.map +1 -1
  112. package/dist/tools.js +56 -25
  113. package/dist/tools.js.map +1 -1
  114. package/package.json +2 -1
package/dist/tools.d.ts CHANGED
@@ -1,9 +1,17 @@
1
1
  /**
2
2
  * Tool registry — aggregates all available tools.
3
+ *
4
+ * Tools are split into core (always fully loaded) and extended (deferred).
5
+ * Deferred tools contribute only a one-liner to the system prompt until
6
+ * activated via ToolSearch or first invocation.
3
7
  */
4
8
  import type { Tools } from "./Tool.js";
5
9
  /**
6
10
  * Returns all registered tools.
11
+ *
12
+ * Core tools (~17) are fully loaded with complete prompts.
13
+ * Extended tools (~18) are deferred — they show a one-liner in the system
14
+ * prompt and resolve full schema on first use or via ToolSearch.
7
15
  */
8
16
  export declare function getAllTools(): Tools;
9
17
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AA+BvC;;GAEG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAoCnC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAwCvC;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAoDnC"}
package/dist/tools.js CHANGED
@@ -1,7 +1,12 @@
1
1
  /**
2
2
  * Tool registry — aggregates all available tools.
3
+ *
4
+ * Tools are split into core (always fully loaded) and extended (deferred).
5
+ * Deferred tools contribute only a one-liner to the system prompt until
6
+ * activated via ToolSearch or first invocation.
3
7
  */
4
- // Core tools
8
+ import { DeferredTool } from "./DeferredTool.js";
9
+ // Core tools — always fully loaded with complete prompts
5
10
  import { BashTool } from "./tools/BashTool/index.js";
6
11
  import { FileReadTool } from "./tools/FileReadTool/index.js";
7
12
  import { FileWriteTool } from "./tools/FileWriteTool/index.js";
@@ -9,31 +14,43 @@ import { FileEditTool } from "./tools/FileEditTool/index.js";
9
14
  import { GlobTool } from "./tools/GlobTool/index.js";
10
15
  import { GrepTool } from "./tools/GrepTool/index.js";
11
16
  import { LSTool } from "./tools/LSTool/index.js";
12
- import { WebFetchTool } from "./tools/WebFetchTool/index.js";
13
- // Advanced tools
14
- import { WebSearchTool } from "./tools/WebSearchTool/index.js";
17
+ import { AskUserTool } from "./tools/AskUserTool/index.js";
18
+ import { AgentTool } from "./tools/AgentTool/index.js";
15
19
  import { TaskCreateTool } from "./tools/TaskCreateTool/index.js";
16
20
  import { TaskUpdateTool } from "./tools/TaskUpdateTool/index.js";
17
21
  import { TaskListTool } from "./tools/TaskListTool/index.js";
22
+ import { EnterPlanModeTool } from "./tools/EnterPlanModeTool/index.js";
23
+ import { ExitPlanModeTool } from "./tools/ExitPlanModeTool/index.js";
24
+ import { ToolSearchTool } from "./tools/ToolSearchTool/index.js";
25
+ import { MemoryTool } from "./tools/MemoryTool/index.js";
26
+ import { ImageReadTool } from "./tools/ImageReadTool/index.js";
27
+ // Extended tools — deferred loading (minimal prompt until first use)
28
+ import { WebFetchTool } from "./tools/WebFetchTool/index.js";
29
+ import { WebSearchTool } from "./tools/WebSearchTool/index.js";
18
30
  import { TaskGetTool } from "./tools/TaskGetTool/index.js";
19
31
  import { TaskStopTool } from "./tools/TaskStopTool/index.js";
20
32
  import { TaskOutputTool } from "./tools/TaskOutputTool/index.js";
21
- import { AskUserTool } from "./tools/AskUserTool/index.js";
22
33
  import { SkillTool } from "./tools/SkillTool/index.js";
23
- import { AgentTool } from "./tools/AgentTool/index.js";
24
- import { EnterPlanModeTool } from "./tools/EnterPlanModeTool/index.js";
25
- import { ExitPlanModeTool } from "./tools/ExitPlanModeTool/index.js";
26
34
  import { NotebookEditTool } from "./tools/NotebookEditTool/index.js";
27
- import { ImageReadTool } from "./tools/ImageReadTool/index.js";
28
35
  import { DiagnosticsTool } from "./tools/DiagnosticsTool/index.js";
29
36
  import { ParallelAgentTool } from "./tools/ParallelAgentTool/index.js";
30
- import { ToolSearchTool } from "./tools/ToolSearchTool/index.js";
37
+ import { SendMessageTool } from "./tools/SendMessageTool/index.js";
38
+ import { CronCreateTool, CronDeleteTool, CronListTool } from "./tools/CronTool/index.js";
39
+ import { EnterWorktreeTool } from "./tools/EnterWorktreeTool/index.js";
40
+ import { ExitWorktreeTool } from "./tools/ExitWorktreeTool/index.js";
41
+ import { KillProcessTool } from "./tools/KillProcessTool/index.js";
42
+ import { RemoteTriggerTool } from "./tools/RemoteTriggerTool/index.js";
43
+ import { MultiEditTool } from "./tools/MultiEditTool/index.js";
31
44
  /**
32
45
  * Returns all registered tools.
46
+ *
47
+ * Core tools (~17) are fully loaded with complete prompts.
48
+ * Extended tools (~18) are deferred — they show a one-liner in the system
49
+ * prompt and resolve full schema on first use or via ToolSearch.
33
50
  */
34
51
  export function getAllTools() {
35
- return [
36
- // Core (always available)
52
+ const core = [
53
+ // File operations
37
54
  BashTool,
38
55
  FileReadTool,
39
56
  ImageReadTool,
@@ -42,30 +59,44 @@ export function getAllTools() {
42
59
  GlobTool,
43
60
  GrepTool,
44
61
  LSTool,
45
- WebFetchTool,
46
- WebSearchTool,
62
+ // Agent interaction
63
+ AskUserTool,
64
+ AgentTool,
47
65
  // Task management
48
66
  TaskCreateTool,
49
67
  TaskUpdateTool,
50
68
  TaskListTool,
69
+ // Planning
70
+ EnterPlanModeTool,
71
+ ExitPlanModeTool,
72
+ // Tool Discovery
73
+ ToolSearchTool,
74
+ // Memory management
75
+ MemoryTool,
76
+ ];
77
+ const extended = [
78
+ WebFetchTool,
79
+ WebSearchTool,
51
80
  TaskGetTool,
52
81
  TaskStopTool,
53
82
  TaskOutputTool,
54
- // Agent interaction
55
- AskUserTool,
56
83
  SkillTool,
57
- AgentTool,
58
- // Planning
59
- EnterPlanModeTool,
60
- ExitPlanModeTool,
61
- // Notebooks
62
84
  NotebookEditTool,
63
- // Code Intelligence
64
85
  DiagnosticsTool,
65
- // Parallel Agents
66
86
  ParallelAgentTool,
67
- // Tool Discovery
68
- ToolSearchTool,
87
+ SendMessageTool,
88
+ CronCreateTool,
89
+ CronDeleteTool,
90
+ CronListTool,
91
+ EnterWorktreeTool,
92
+ ExitWorktreeTool,
93
+ KillProcessTool,
94
+ RemoteTriggerTool,
95
+ MultiEditTool,
96
+ ];
97
+ return [
98
+ ...core,
99
+ ...extended.map(t => new DeferredTool(t)),
69
100
  ];
70
101
  }
71
102
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,0BAA0B;QAC1B,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,aAAa;QACb,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,aAAa;QACb,kBAAkB;QAClB,cAAc;QACd,cAAc;QACd,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,cAAc;QACd,oBAAoB;QACpB,WAAW;QACX,SAAS;QACT,SAAS;QACT,WAAW;QACX,iBAAiB;QACjB,gBAAgB;QAChB,YAAY;QACZ,gBAAgB;QAChB,oBAAoB;QACpB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhijiewang/openharness",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Open-source terminal coding agent. Works with any LLM.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -39,6 +39,7 @@
39
39
  "@types/node": "^22.0.0",
40
40
  "@types/react": "^18.3.0",
41
41
  "c8": "^11.0.0",
42
+ "sharp": "^0.34.5",
42
43
  "tsx": "^4.19.0",
43
44
  "typescript": "^5.8.0"
44
45
  },