hackwriter 0.0.11 → 0.0.13

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 (104) hide show
  1. package/README.md +29 -59
  2. package/dist/agent/CompactionPrompt.d.ts +0 -7
  3. package/dist/agent/CompactionPrompt.d.ts.map +1 -1
  4. package/dist/agent/CompactionPrompt.js +1 -1
  5. package/dist/agent/CompactionPrompt.js.map +1 -1
  6. package/dist/agent/ConversationContext.d.ts +9 -0
  7. package/dist/agent/ConversationContext.d.ts.map +1 -1
  8. package/dist/agent/ConversationContext.js +16 -1
  9. package/dist/agent/ConversationContext.js.map +1 -1
  10. package/dist/agent/ModelFactory.d.ts.map +1 -1
  11. package/dist/agent/ModelFactory.js +4 -1
  12. package/dist/agent/ModelFactory.js.map +1 -1
  13. package/dist/cli.js +38 -0
  14. package/dist/cli.js.map +1 -1
  15. package/dist/commands/setup.d.ts.map +1 -1
  16. package/dist/commands/setup.js +73 -22
  17. package/dist/commands/setup.js.map +1 -1
  18. package/dist/config/ConfigSchema.d.ts +2 -36
  19. package/dist/config/ConfigSchema.d.ts.map +1 -1
  20. package/dist/config/ConfigSchema.js +5 -11
  21. package/dist/config/ConfigSchema.js.map +1 -1
  22. package/dist/config/ConfigurationLoader.d.ts.map +1 -1
  23. package/dist/config/ConfigurationLoader.js +41 -6
  24. package/dist/config/ConfigurationLoader.js.map +1 -1
  25. package/dist/config/HackMDConfigLoader.d.ts +20 -0
  26. package/dist/config/HackMDConfigLoader.d.ts.map +1 -0
  27. package/dist/config/HackMDConfigLoader.js +51 -0
  28. package/dist/config/HackMDConfigLoader.js.map +1 -0
  29. package/dist/config/OpenAIDiscovery.d.ts.map +1 -1
  30. package/dist/config/OpenAIDiscovery.js +4 -1
  31. package/dist/config/OpenAIDiscovery.js.map +1 -1
  32. package/dist/config/ProviderRegistry.d.ts +2 -3
  33. package/dist/config/ProviderRegistry.d.ts.map +1 -1
  34. package/dist/config/ProviderRegistry.js +0 -6
  35. package/dist/config/ProviderRegistry.js.map +1 -1
  36. package/dist/config/constants.d.ts +6 -6
  37. package/dist/config/constants.d.ts.map +1 -1
  38. package/dist/config/constants.js +7 -8
  39. package/dist/config/constants.js.map +1 -1
  40. package/dist/mcp/MCPClient.d.ts +13 -2
  41. package/dist/mcp/MCPClient.d.ts.map +1 -1
  42. package/dist/mcp/MCPClient.js +58 -7
  43. package/dist/mcp/MCPClient.js.map +1 -1
  44. package/dist/mcp/MCPToolAdapter.d.ts +2 -1
  45. package/dist/mcp/MCPToolAdapter.d.ts.map +1 -1
  46. package/dist/mcp/index.d.ts +1 -1
  47. package/dist/mcp/index.d.ts.map +1 -1
  48. package/dist/mcp/index.js.map +1 -1
  49. package/dist/messaging/MessageBus.d.ts +6 -1
  50. package/dist/messaging/MessageBus.d.ts.map +1 -1
  51. package/dist/messaging/MessageBus.js +6 -0
  52. package/dist/messaging/MessageBus.js.map +1 -1
  53. package/dist/tools/base/Tool.d.ts +0 -1
  54. package/dist/tools/base/Tool.d.ts.map +1 -1
  55. package/dist/tools/base/Tool.js.map +1 -1
  56. package/dist/tools/file/ListFilesTool.d.ts.map +1 -1
  57. package/dist/tools/file/ListFilesTool.js +10 -8
  58. package/dist/tools/file/ListFilesTool.js.map +1 -1
  59. package/dist/tools/file/ReadFileTool.d.ts.map +1 -1
  60. package/dist/tools/file/ReadFileTool.js +9 -8
  61. package/dist/tools/file/ReadFileTool.js.map +1 -1
  62. package/dist/tools/file/WriteFileTool.d.ts.map +1 -1
  63. package/dist/tools/file/WriteFileTool.js +9 -7
  64. package/dist/tools/file/WriteFileTool.js.map +1 -1
  65. package/dist/ui/shell/InteractiveShell.d.ts +6 -1
  66. package/dist/ui/shell/InteractiveShell.d.ts.map +1 -1
  67. package/dist/ui/shell/InteractiveShell.js +10 -0
  68. package/dist/ui/shell/InteractiveShell.js.map +1 -1
  69. package/dist/utils/AsyncPackageLoader.d.ts +29 -0
  70. package/dist/utils/AsyncPackageLoader.d.ts.map +1 -0
  71. package/dist/utils/AsyncPackageLoader.js +56 -0
  72. package/dist/utils/AsyncPackageLoader.js.map +1 -0
  73. package/dist/utils/BatchWriter.d.ts +42 -0
  74. package/dist/utils/BatchWriter.d.ts.map +1 -0
  75. package/dist/utils/BatchWriter.js +130 -0
  76. package/dist/utils/BatchWriter.js.map +1 -0
  77. package/dist/utils/Logger.d.ts.map +1 -1
  78. package/dist/utils/Logger.js +14 -4
  79. package/dist/utils/Logger.js.map +1 -1
  80. package/dist/utils/PathValidator.d.ts +35 -0
  81. package/dist/utils/PathValidator.d.ts.map +1 -0
  82. package/dist/utils/PathValidator.js +70 -0
  83. package/dist/utils/PathValidator.js.map +1 -0
  84. package/dist/utils/RateLimiter.d.ts +3 -1
  85. package/dist/utils/RateLimiter.d.ts.map +1 -1
  86. package/dist/utils/RateLimiter.js +9 -24
  87. package/dist/utils/RateLimiter.js.map +1 -1
  88. package/dist/utils/ResourceManager.d.ts +7 -0
  89. package/dist/utils/ResourceManager.d.ts.map +1 -0
  90. package/dist/utils/ResourceManager.js +2 -0
  91. package/dist/utils/ResourceManager.js.map +1 -0
  92. package/dist/utils/RetryPolicy.d.ts +29 -0
  93. package/dist/utils/RetryPolicy.d.ts.map +1 -0
  94. package/dist/utils/RetryPolicy.js +73 -0
  95. package/dist/utils/RetryPolicy.js.map +1 -0
  96. package/dist/utils/SensitiveDataRedactor.d.ts +40 -0
  97. package/dist/utils/SensitiveDataRedactor.d.ts.map +1 -0
  98. package/dist/utils/SensitiveDataRedactor.js +122 -0
  99. package/dist/utils/SensitiveDataRedactor.js.map +1 -0
  100. package/dist/utils/SlidingWindowRateLimiter.d.ts +36 -0
  101. package/dist/utils/SlidingWindowRateLimiter.d.ts.map +1 -0
  102. package/dist/utils/SlidingWindowRateLimiter.js +74 -0
  103. package/dist/utils/SlidingWindowRateLimiter.js.map +1 -0
  104. package/package.json +5 -3
@@ -1,11 +1,16 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import type { AgentMessage } from './MessageTypes.js';
3
- export declare class MessageBus extends EventEmitter {
3
+ import type { Disposable } from '../utils/ResourceManager.js';
4
+ export declare class MessageBus extends EventEmitter implements Disposable {
4
5
  private static instance;
5
6
  static getInstance(): MessageBus;
6
7
  publish(message: AgentMessage): void;
7
8
  subscribe(handler: (message: AgentMessage) => void): void;
8
9
  unsubscribe(handler: (message: AgentMessage) => void): void;
9
10
  clear(): void;
11
+ /**
12
+ * Dispose of resources (implements Disposable interface)
13
+ */
14
+ dispose(): void;
10
15
  }
11
16
  //# sourceMappingURL=MessageBus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageBus.d.ts","sourceRoot":"","sources":["../../src/messaging/MessageBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IAEpC,MAAM,CAAC,WAAW,IAAI,UAAU;IAOhC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIpC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAIzD,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAI3D,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"MessageBus.d.ts","sourceRoot":"","sources":["../../src/messaging/MessageBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,UAAW,SAAQ,YAAa,YAAW,UAAU;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IAEpC,MAAM,CAAC,WAAW,IAAI,UAAU;IAOhC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIpC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAIzD,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAI3D,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -19,5 +19,11 @@ export class MessageBus extends EventEmitter {
19
19
  clear() {
20
20
  this.removeAllListeners();
21
21
  }
22
+ /**
23
+ * Dispose of resources (implements Disposable interface)
24
+ */
25
+ dispose() {
26
+ this.removeAllListeners();
27
+ }
22
28
  }
23
29
  //# sourceMappingURL=MessageBus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageBus.js","sourceRoot":"","sources":["../../src/messaging/MessageBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,OAAO,UAAW,SAAQ,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAa;IAEpC,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,OAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,OAAwC;QAChD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAwC;QAClD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"MessageBus.js","sourceRoot":"","sources":["../../src/messaging/MessageBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,OAAO,UAAW,SAAQ,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAa;IAEpC,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,OAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,OAAwC;QAChD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAwC;QAClD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
1
  import type { JSONSchema7 } from "json-schema";
2
- export type ToolParams = Record<string, unknown>;
3
2
  export interface ToolResult {
4
3
  ok: boolean;
5
4
  output: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../../../src/tools/base/Tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,8BAAsB,IAAI,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE3D,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IAE1C,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAE7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU;IAI1E,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU;IAI5E,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAM9C"}
1
+ {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../../../src/tools/base/Tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,8BAAsB,IAAI,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE3D,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IAE1C,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAE7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU;IAI1E,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU;IAI5E,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAM9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.js","sourceRoot":"","sources":["../../../src/tools/base/Tool.ts"],"names":[],"mappings":"AAcA,MAAM,OAAgB,IAAI;IASd,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,KAAc;QAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,MAAc,EAAE,OAAe,EAAE,KAAc;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAES,WAAW,CAAC,KAAc;QAClC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"Tool.js","sourceRoot":"","sources":["../../../src/tools/base/Tool.ts"],"names":[],"mappings":"AAYA,MAAM,OAAgB,IAAI;IASd,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,KAAc;QAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,MAAc,EAAE,OAAe,EAAE,KAAc;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAES,WAAW,CAAC,KAAc;QAClC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListFilesTool.d.ts","sourceRoot":"","sources":["../../../src/tools/file/ListFilesTool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGzE,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,aAAc,SAAQ,IAAI,CAAC,eAAe,CAAC;IACtD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,qCAAqC;IACzD,QAAQ,CAAC,WAAW,EAAE,UAAU,CAiB9B;IAEI,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;YAoE1C,SAAS;IAmCvB,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"ListFilesTool.d.ts","sourceRoot":"","sources":["../../../src/tools/file/ListFilesTool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIzE,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,aAAc,SAAQ,IAAI,CAAC,eAAe,CAAC;IACtD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,qCAAqC;IACzD,QAAQ,CAAC,WAAW,EAAE,UAAU,CAiB9B;IAEI,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;YAmE1C,SAAS;IAmCvB,OAAO,CAAC,YAAY;CAMrB"}
@@ -1,7 +1,8 @@
1
1
  import { promises as fs } from 'node:fs';
2
- import { join, relative, dirname } from 'node:path';
2
+ import { join, relative } from 'node:path';
3
3
  import { Tool } from '../base/Tool.js';
4
4
  import { MAX_FILES_DISPLAY } from '../../config/constants.js';
5
+ import { PathValidator, SecurityError } from '../../utils/PathValidator.js';
5
6
  export class ListFilesTool extends Tool {
6
7
  name = 'list_files';
7
8
  description = 'List files in a local directory';
@@ -24,14 +25,15 @@ export class ListFilesTool extends Tool {
24
25
  required: ['directoryPath'],
25
26
  };
26
27
  async call(params) {
27
- // Validate directory path
28
- if (!params.directoryPath || params.directoryPath.trim() === '') {
29
- return this.error('Directory path cannot be empty', 'Directory path is required', 'Invalid path');
28
+ // Validate directory path using PathValidator
29
+ try {
30
+ PathValidator.validate(params.directoryPath);
30
31
  }
31
- // Prevent path traversal attacks
32
- const normalizedPath = dirname(params.directoryPath);
33
- if (normalizedPath.includes('..')) {
34
- return this.error('Path traversal is not allowed for security reasons', 'Security violation: path traversal detected', 'Security error');
32
+ catch (error) {
33
+ if (error instanceof SecurityError) {
34
+ return this.error(error.message, `Security violation: ${error.violation}`, 'Security error');
35
+ }
36
+ return this.error('Invalid directory path', 'Directory path validation failed', 'Invalid path');
35
37
  }
36
38
  try {
37
39
  const files = await this.listFiles(params.directoryPath, params.recursive ?? false, params.pattern);
@@ -1 +1 @@
1
- {"version":3,"file":"ListFilesTool.js","sourceRoot":"","sources":["../../../src/tools/file/ListFilesTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListFilesTool.js","sourceRoot":"","sources":["../../../src/tools/file/ListFilesTool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReadFileTool.d.ts","sourceRoot":"","sources":["../../../src/tools/file/ReadFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKzE,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,IAAI,CAAC,cAAc,CAAC;IACpD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,sCAAsC;IAC1D,QAAQ,CAAC,WAAW,EAAE,UAAU,CAS9B;IAEI,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;CA0DxD"}
1
+ {"version":3,"file":"ReadFileTool.d.ts","sourceRoot":"","sources":["../../../src/tools/file/ReadFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKzE,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,IAAI,CAAC,cAAc,CAAC;IACpD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,sCAAsC;IAC1D,QAAQ,CAAC,WAAW,EAAE,UAAU,CAS9B;IAEI,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;CAyDxD"}
@@ -1,7 +1,7 @@
1
1
  import { Tool } from '../base/Tool.js';
2
2
  import { promises as fs } from 'node:fs';
3
- import { dirname } from 'node:path';
4
3
  import { MAX_FILE_DISPLAY_SIZE } from '../../config/constants.js';
4
+ import { PathValidator, SecurityError } from '../../utils/PathValidator.js';
5
5
  export class ReadFileTool extends Tool {
6
6
  name = 'read_file';
7
7
  description = 'Read the content of a local file';
@@ -16,14 +16,15 @@ export class ReadFileTool extends Tool {
16
16
  required: ['filePath'],
17
17
  };
18
18
  async call(params) {
19
- // Validate file path
20
- if (!params.filePath || params.filePath.trim() === '') {
21
- return this.error('File path cannot be empty', 'File path is required', 'Invalid path');
19
+ // Validate file path using PathValidator
20
+ try {
21
+ PathValidator.validate(params.filePath);
22
22
  }
23
- // Prevent path traversal attacks
24
- const normalizedPath = dirname(params.filePath);
25
- if (normalizedPath.includes('..')) {
26
- return this.error('Path traversal is not allowed for security reasons', 'Security violation: path traversal detected', 'Security error');
23
+ catch (error) {
24
+ if (error instanceof SecurityError) {
25
+ return this.error(error.message, `Security violation: ${error.violation}`, 'Security error');
26
+ }
27
+ return this.error('Invalid file path', 'File path validation failed', 'Invalid path');
27
28
  }
28
29
  try {
29
30
  const content = await fs.readFile(params.filePath, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"ReadFileTool.js","sourceRoot":"","sources":["../../../src/tools/file/ReadFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoC,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAOlE,MAAM,OAAO,YAAa,SAAQ,IAAoB;IAC3C,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAAG,kCAAkC,CAAC;IACjD,WAAW,GAAe;QACjC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;aACxC;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,KAAK,CACf,2BAA2B,EAC3B,uBAAuB,EACvB,cAAc,CACf,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,KAAK,CACf,oDAAoD,EACpD,6CAA6C,EAC7C,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE7C,6BAA6B;YAC7B,IAAI,KAAK,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,EAAE,CACZ,0BAA0B,MAAM,SAAS;oBACzC,aAAa,MAAM,CAAC,QAAQ,IAAI;oBAChC,aAAa,KAAK,CAAC,IAAI,UAAU;oBACjC,iBAAiB,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM;oBACnD,4CAA4C,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,4BAA4B,EAC/G,0BAA0B,MAAM,CAAC,QAAQ,EAAE,EAC3C,kBAAkB,CACnB,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GACV,aAAa,MAAM,CAAC,QAAQ,IAAI;gBAChC,aAAa,KAAK,CAAC,IAAI,UAAU;gBACjC,iBAAiB,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM;gBACnD,yBAAyB,OAAO,UAAU,CAAC;YAE7C,OAAO,IAAI,CAAC,EAAE,CACZ,MAAM,EACN,2BAA2B,MAAM,CAAC,QAAQ,EAAE,EAC5C,MAAM,CACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,wBAAwB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,KAAK,CACf,QAAQ,EACR,QAAQ,EACR,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ReadFileTool.js","sourceRoot":"","sources":["../../../src/tools/file/ReadFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoC,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAO5E,MAAM,OAAO,YAAa,SAAQ,IAAoB;IAC3C,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAAG,kCAAkC,CAAC;IACjD,WAAW,GAAe;QACjC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;aACxC;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,yCAAyC;QACzC,IAAI,CAAC;YACH,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,KAAK,CACf,KAAK,CAAC,OAAO,EACb,uBAAuB,KAAK,CAAC,SAAS,EAAE,EACxC,gBAAgB,CACjB,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CACf,mBAAmB,EACnB,6BAA6B,EAC7B,cAAc,CACf,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE7C,6BAA6B;YAC7B,IAAI,KAAK,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,EAAE,CACZ,0BAA0B,MAAM,SAAS;oBACzC,aAAa,MAAM,CAAC,QAAQ,IAAI;oBAChC,aAAa,KAAK,CAAC,IAAI,UAAU;oBACjC,iBAAiB,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM;oBACnD,4CAA4C,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,4BAA4B,EAC/G,0BAA0B,MAAM,CAAC,QAAQ,EAAE,EAC3C,kBAAkB,CACnB,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GACV,aAAa,MAAM,CAAC,QAAQ,IAAI;gBAChC,aAAa,KAAK,CAAC,IAAI,UAAU;gBACjC,iBAAiB,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM;gBACnD,yBAAyB,OAAO,UAAU,CAAC;YAE7C,OAAO,IAAI,CAAC,EAAE,CACZ,MAAM,EACN,2BAA2B,MAAM,CAAC,QAAQ,EAAE,EAC5C,MAAM,CACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,wBAAwB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,KAAK,CACf,QAAQ,EACR,QAAQ,EACR,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"WriteFileTool.d.ts","sourceRoot":"","sources":["../../../src/tools/file/WriteFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAKtE,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,aAAc,SAAQ,IAAI,CAAC,eAAe,CAAC;IAsB1C,OAAO,CAAC,eAAe;IArBnC,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,mCAAmC;IACvD,QAAQ,CAAC,WAAW,EAAE,UAAU,CAiB9B;gBAEkB,eAAe,EAAE,eAAe;IAI9C,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;CA0EzD"}
1
+ {"version":3,"file":"WriteFileTool.d.ts","sourceRoot":"","sources":["../../../src/tools/file/WriteFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAMtE,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,aAAc,SAAQ,IAAI,CAAC,eAAe,CAAC;IAsB1C,OAAO,CAAC,eAAe;IArBnC,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,mCAAmC;IACvD,QAAQ,CAAC,WAAW,EAAE,UAAU,CAiB9B;gBAEkB,eAAe,EAAE,eAAe;IAI9C,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;CAyEzD"}
@@ -2,6 +2,7 @@ import { Tool } from '../base/Tool.js';
2
2
  import { promises as fs } from 'node:fs';
3
3
  import { dirname } from 'node:path';
4
4
  import { MAX_FILE_SIZE } from '../../config/constants.js';
5
+ import { PathValidator, SecurityError } from '../../utils/PathValidator.js';
5
6
  export class WriteFileTool extends Tool {
6
7
  approvalManager;
7
8
  name = 'write_file';
@@ -29,14 +30,15 @@ export class WriteFileTool extends Tool {
29
30
  this.approvalManager = approvalManager;
30
31
  }
31
32
  async call(params) {
32
- // Validate file path
33
- if (!params.filePath || params.filePath.trim() === '') {
34
- return this.error('File path cannot be empty', 'File path is required', 'Invalid path');
33
+ // Validate file path using PathValidator
34
+ try {
35
+ PathValidator.validate(params.filePath);
35
36
  }
36
- // Prevent path traversal attacks
37
- const normalizedPath = dirname(params.filePath);
38
- if (normalizedPath.includes('..')) {
39
- return this.error('Path traversal is not allowed for security reasons', 'Security violation: path traversal detected', 'Security error');
37
+ catch (error) {
38
+ if (error instanceof SecurityError) {
39
+ return this.error(error.message, `Security violation: ${error.violation}`, 'Security error');
40
+ }
41
+ return this.error('Invalid file path', 'File path validation failed', 'Invalid path');
40
42
  }
41
43
  // Check content size
42
44
  if (params.content.length > MAX_FILE_SIZE) {
@@ -1 +1 @@
1
- {"version":3,"file":"WriteFileTool.js","sourceRoot":"","sources":["../../../src/tools/file/WriteFileTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WriteFileTool.js","sourceRoot":"","sources":["../../../src/tools/file/WriteFileTool.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { AgentExecutor } from "../../agent/AgentExecutor.js";
3
3
  import type { Configuration } from "../../config/Configuration.js";
4
4
  import type { ConversationContext } from "../../agent/ConversationContext.js";
5
5
  import type { ToolRegistry } from "../../tools/base/ToolRegistry.js";
6
+ import type { Disposable } from "../../utils/ResourceManager.js";
6
7
  export interface ModelContext {
7
8
  currentModelName: string;
8
9
  config: Configuration;
@@ -10,7 +11,7 @@ export interface ModelContext {
10
11
  toolRegistry: ToolRegistry;
11
12
  systemPrompt: string;
12
13
  }
13
- export declare class InteractiveShell {
14
+ export declare class InteractiveShell implements Disposable {
14
15
  private executor;
15
16
  private renderer;
16
17
  private commandRegistry;
@@ -38,5 +39,9 @@ export declare class InteractiveShell {
38
39
  */
39
40
  recreateReadline(): void;
40
41
  private printWelcome;
42
+ /**
43
+ * Dispose of resources (implements Disposable interface)
44
+ */
45
+ dispose(): void;
41
46
  }
42
47
  //# sourceMappingURL=InteractiveShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InteractiveShell.d.ts","sourceRoot":"","sources":["../../../src/ui/shell/InteractiveShell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAOrE,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAe;gBAEvB,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY;IAazD,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAsCrC,WAAW;IAuBzB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,iBAAiB;IAYzB,eAAe,IAAI,YAAY;IAI/B,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK1C,IAAI,IAAI,IAAI;IAMZ,WAAW,IAAI,QAAQ,CAAC,SAAS;IAIjC;;;OAGG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAyBxB,OAAO,CAAC,YAAY;CAKrB"}
1
+ {"version":3,"file":"InteractiveShell.d.ts","sourceRoot":"","sources":["../../../src/ui/shell/InteractiveShell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAMrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAe;gBAEvB,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY;IAazD,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAsCrC,WAAW;IAuBzB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,iBAAiB;IAYzB,eAAe,IAAI,YAAY;IAI/B,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK1C,IAAI,IAAI,IAAI;IAMZ,WAAW,IAAI,QAAQ,CAAC,SAAS;IAIjC;;;OAGG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAyBxB,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB"}
@@ -153,5 +153,15 @@ export class InteractiveShell {
153
153
  console.log(chalk.gray("Writing agent for HackMD"));
154
154
  console.log(chalk.gray("Type /help for commands or /exit to quit\n"));
155
155
  }
156
+ /**
157
+ * Dispose of resources (implements Disposable interface)
158
+ */
159
+ dispose() {
160
+ Logger.debug("InteractiveShell", "Disposing resources");
161
+ if (!this.isClosed) {
162
+ this.rl.close();
163
+ this.isClosed = true;
164
+ }
165
+ }
156
166
  }
157
167
  //# sourceMappingURL=InteractiveShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InteractiveShell.js","sourceRoot":"","sources":["../../../src/ui/shell/InteractiveShell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractiveShell.js","sourceRoot":"","sources":["../../../src/ui/shell/InteractiveShell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ interface PackageJson {
2
+ version: string;
3
+ [key: string]: unknown;
4
+ }
5
+ /**
6
+ * AsyncPackageLoader loads package.json files asynchronously to avoid blocking the event loop.
7
+ * Caches loaded package data to avoid repeated file reads.
8
+ */
9
+ export declare class AsyncPackageLoader {
10
+ private static cache;
11
+ /**
12
+ * Load package.json asynchronously
13
+ * @param packagePath - Path to package.json file
14
+ * @returns Package data with at least a version field
15
+ */
16
+ static load(packagePath: string): Promise<PackageJson>;
17
+ /**
18
+ * Get cached package data if available
19
+ * @param packagePath - Path to package.json file
20
+ * @returns Cached package data or null if not cached
21
+ */
22
+ static getCached(packagePath: string): PackageJson | null;
23
+ /**
24
+ * Clear the cache (useful for testing)
25
+ */
26
+ static clearCache(): void;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=AsyncPackageLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncPackageLoader.d.ts","sourceRoot":"","sources":["../../src/utils/AsyncPackageLoader.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAkC;IAEtD;;;;OAIG;WACU,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgC5D;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIzD;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;CAG1B"}
@@ -0,0 +1,56 @@
1
+ import { promises as fs } from "fs";
2
+ import { Logger } from "./Logger.js";
3
+ /**
4
+ * AsyncPackageLoader loads package.json files asynchronously to avoid blocking the event loop.
5
+ * Caches loaded package data to avoid repeated file reads.
6
+ */
7
+ export class AsyncPackageLoader {
8
+ static cache = new Map();
9
+ /**
10
+ * Load package.json asynchronously
11
+ * @param packagePath - Path to package.json file
12
+ * @returns Package data with at least a version field
13
+ */
14
+ static async load(packagePath) {
15
+ // Check cache first
16
+ const cached = this.cache.get(packagePath);
17
+ if (cached) {
18
+ return cached;
19
+ }
20
+ try {
21
+ const content = await fs.readFile(packagePath, "utf-8");
22
+ const packageData = JSON.parse(content);
23
+ // Validate that version exists
24
+ if (!packageData.version) {
25
+ Logger.warn("AsyncPackageLoader", `Package at ${packagePath} missing version field`);
26
+ packageData.version = "unknown";
27
+ }
28
+ // Cache the result
29
+ this.cache.set(packagePath, packageData);
30
+ return packageData;
31
+ }
32
+ catch (error) {
33
+ Logger.error("AsyncPackageLoader", `Failed to load package.json from ${packagePath}`, {
34
+ error: error instanceof Error ? error.message : String(error),
35
+ });
36
+ // Return a default package with unknown version
37
+ const defaultPackage = { version: "unknown" };
38
+ return defaultPackage;
39
+ }
40
+ }
41
+ /**
42
+ * Get cached package data if available
43
+ * @param packagePath - Path to package.json file
44
+ * @returns Cached package data or null if not cached
45
+ */
46
+ static getCached(packagePath) {
47
+ return this.cache.get(packagePath) ?? null;
48
+ }
49
+ /**
50
+ * Clear the cache (useful for testing)
51
+ */
52
+ static clearCache() {
53
+ this.cache.clear();
54
+ }
55
+ }
56
+ //# sourceMappingURL=AsyncPackageLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncPackageLoader.js","sourceRoot":"","sources":["../../src/utils/AsyncPackageLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAOrC;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEtD;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAmB;QACnC,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;YAEvD,+BAA+B;YAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,cAAc,WAAW,wBAAwB,CAAC,CAAC;gBACrF,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC;YAClC,CAAC;YAED,mBAAmB;YACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAEzC,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,oCAAoC,WAAW,EAAE,EAAE;gBACpF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YAEH,gDAAgD;YAChD,MAAM,cAAc,GAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC3D,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC"}
@@ -0,0 +1,42 @@
1
+ interface BatchWriterOptions {
2
+ maxBatchSize?: number;
3
+ flushIntervalMs?: number;
4
+ maxFlushDelayMs?: number;
5
+ }
6
+ /**
7
+ * BatchWriter buffers write operations to reduce I/O overhead
8
+ * Automatically flushes based on size and time constraints
9
+ */
10
+ export declare class BatchWriter {
11
+ private filePath;
12
+ private buffer;
13
+ private flushTimer;
14
+ private isClosed;
15
+ private readonly maxBatchSize;
16
+ private readonly flushIntervalMs;
17
+ private readonly maxFlushDelayMs;
18
+ constructor(filePath: string, options?: BatchWriterOptions);
19
+ /**
20
+ * Add data to write buffer
21
+ * Automatically flushes if buffer reaches maxBatchSize
22
+ */
23
+ write(data: string): Promise<void>;
24
+ /**
25
+ * Force flush pending writes to disk
26
+ */
27
+ flush(): Promise<void>;
28
+ /**
29
+ * Close writer and flush remaining data
30
+ */
31
+ close(): Promise<void>;
32
+ /**
33
+ * Get unflushed data (for recovery)
34
+ */
35
+ getUnflushedData(): string[];
36
+ /**
37
+ * Schedule auto-flush based on idle time
38
+ */
39
+ private scheduleFlush;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=BatchWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchWriter.d.ts","sourceRoot":"","sources":["../../src/utils/BatchWriter.ts"],"names":[],"mappings":"AAGA,UAAU,kBAAkB;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAOD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAO1D;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,OAAO,CAAC,aAAa;CAsBtB"}
@@ -0,0 +1,130 @@
1
+ import { promises as fs } from 'fs';
2
+ import { Logger } from './Logger.js';
3
+ /**
4
+ * BatchWriter buffers write operations to reduce I/O overhead
5
+ * Automatically flushes based on size and time constraints
6
+ */
7
+ export class BatchWriter {
8
+ filePath;
9
+ buffer = [];
10
+ flushTimer = null;
11
+ isClosed = false;
12
+ maxBatchSize;
13
+ flushIntervalMs;
14
+ maxFlushDelayMs;
15
+ constructor(filePath, options) {
16
+ this.filePath = filePath;
17
+ this.maxBatchSize = options?.maxBatchSize ?? 50;
18
+ this.flushIntervalMs = options?.flushIntervalMs ?? 1000;
19
+ this.maxFlushDelayMs = options?.maxFlushDelayMs ?? 100;
20
+ }
21
+ /**
22
+ * Add data to write buffer
23
+ * Automatically flushes if buffer reaches maxBatchSize
24
+ */
25
+ async write(data) {
26
+ if (this.isClosed) {
27
+ throw new Error('BatchWriter is closed');
28
+ }
29
+ this.buffer.push({
30
+ data,
31
+ timestamp: Date.now(),
32
+ });
33
+ // Flush immediately if buffer is full
34
+ if (this.buffer.length >= this.maxBatchSize) {
35
+ await this.flush();
36
+ }
37
+ else {
38
+ // Schedule auto-flush
39
+ this.scheduleFlush();
40
+ }
41
+ }
42
+ /**
43
+ * Force flush pending writes to disk
44
+ */
45
+ async flush() {
46
+ if (this.buffer.length === 0) {
47
+ return;
48
+ }
49
+ // Clear any pending flush timer
50
+ if (this.flushTimer) {
51
+ clearTimeout(this.flushTimer);
52
+ this.flushTimer = null;
53
+ }
54
+ const recordsToFlush = this.buffer.splice(0);
55
+ try {
56
+ // Skip file operations for memory mode
57
+ if (this.filePath === ':memory:') {
58
+ Logger.debug('BatchWriter', `Flushed ${recordsToFlush.length} records (memory mode)`);
59
+ return;
60
+ }
61
+ // Combine all records into single write
62
+ const content = recordsToFlush.map(r => r.data).join('');
63
+ // Use appendFile for atomic writes
64
+ await fs.appendFile(this.filePath, content, 'utf-8');
65
+ Logger.debug('BatchWriter', `Flushed ${recordsToFlush.length} records to ${this.filePath}`);
66
+ }
67
+ catch (error) {
68
+ // On error, put records back in buffer for retry
69
+ this.buffer.unshift(...recordsToFlush);
70
+ Logger.error('BatchWriter', 'Flush failed, records preserved in buffer', error);
71
+ // Retry once
72
+ try {
73
+ const retryContent = recordsToFlush.map(r => r.data).join('');
74
+ await fs.appendFile(this.filePath, retryContent, 'utf-8');
75
+ // Remove from buffer on successful retry
76
+ this.buffer.splice(0, recordsToFlush.length);
77
+ Logger.debug('BatchWriter', 'Retry flush succeeded');
78
+ }
79
+ catch (retryError) {
80
+ Logger.error('BatchWriter', 'Retry flush also failed', retryError);
81
+ throw retryError;
82
+ }
83
+ }
84
+ }
85
+ /**
86
+ * Close writer and flush remaining data
87
+ */
88
+ async close() {
89
+ if (this.isClosed) {
90
+ return;
91
+ }
92
+ this.isClosed = true;
93
+ // Clear any pending timer
94
+ if (this.flushTimer) {
95
+ clearTimeout(this.flushTimer);
96
+ this.flushTimer = null;
97
+ }
98
+ // Flush remaining data
99
+ await this.flush();
100
+ }
101
+ /**
102
+ * Get unflushed data (for recovery)
103
+ */
104
+ getUnflushedData() {
105
+ return this.buffer.map(r => r.data);
106
+ }
107
+ /**
108
+ * Schedule auto-flush based on idle time
109
+ */
110
+ scheduleFlush() {
111
+ // Don't schedule if already scheduled
112
+ if (this.flushTimer) {
113
+ return;
114
+ }
115
+ this.flushTimer = setTimeout(() => {
116
+ this.flushTimer = null;
117
+ // Check if oldest record exceeds max delay
118
+ if (this.buffer.length > 0) {
119
+ const oldestTimestamp = this.buffer[0].timestamp;
120
+ const age = Date.now() - oldestTimestamp;
121
+ if (age >= this.maxFlushDelayMs) {
122
+ void this.flush().catch(error => {
123
+ Logger.error('BatchWriter', 'Auto-flush failed', error);
124
+ });
125
+ }
126
+ }
127
+ }, this.flushIntervalMs);
128
+ }
129
+ }
130
+ //# sourceMappingURL=BatchWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchWriter.js","sourceRoot":"","sources":["../../src/utils/BatchWriter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAsB;IAE1C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC,MAAM,CAAC,QAAQ,IAAI,QAAQ;IAI3B,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAWrE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAWpE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAWpE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAqBtE,OAAO,CAAC,MAAM,CAAC,GAAG;CAuBnB"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAGA,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAsB;IAE1C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC,MAAM,CAAC,QAAQ,IAAI,QAAQ;IAI3B,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAWrE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAWpE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAWpE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IA+BtE,OAAO,CAAC,MAAM,CAAC,GAAG;CAuBnB"}