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
@@ -2,19 +2,19 @@ import { z } from "zod";
2
2
  /**
3
3
  * Zod schemas for runtime configuration validation
4
4
  */
5
- export const HackMDConfigSchema = z.object({
5
+ const HackMDConfigSchema = z.object({
6
6
  apiBaseUrl: z.url().optional(),
7
7
  mcpBaseUrl: z.url().optional(),
8
8
  apiToken: z.string().min(1, "API token is required"),
9
9
  });
10
- export const LLMProviderSchema = z.object({
10
+ const LLMProviderSchema = z.object({
11
11
  type: z.enum(["anthropic", "openai", "ollama"]),
12
12
  apiKey: z.string().min(1, "API key is required").optional(),
13
13
  baseUrl: z.url().optional(),
14
14
  organizationId: z.string().optional(),
15
15
  projectId: z.string().optional(),
16
16
  });
17
- export const LLMModelSchema = z.object({
17
+ const LLMModelSchema = z.object({
18
18
  provider: z.string().min(1, "Provider name is required"),
19
19
  model: z.string().min(1, "Model name is required"),
20
20
  maxContextSize: z
@@ -22,11 +22,11 @@ export const LLMModelSchema = z.object({
22
22
  .int()
23
23
  .positive("Max context size must be positive"),
24
24
  });
25
- export const LoopControlSchema = z.object({
25
+ const LoopControlSchema = z.object({
26
26
  maxStepsPerRun: z.number().int().positive().default(100),
27
27
  maxRetriesPerStep: z.number().int().nonnegative().default(3),
28
28
  });
29
- export const ConfigurationSchema = z.object({
29
+ const ConfigurationSchema = z.object({
30
30
  defaultModel: z.string(),
31
31
  models: z.record(z.string(), LLMModelSchema),
32
32
  providers: z.record(z.string(), LLMProviderSchema),
@@ -35,12 +35,6 @@ export const ConfigurationSchema = z.object({
35
35
  }),
36
36
  loopControl: LoopControlSchema,
37
37
  });
38
- /**
39
- * Validate configuration object
40
- */
41
- export function validateConfiguration(data) {
42
- return ConfigurationSchema.parse(data);
43
- }
44
38
  /**
45
39
  * Safely validate configuration with detailed error messages
46
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigSchema.js","sourceRoot":"","sources":["../../src/config/ConfigSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigSchema.js","sourceRoot":"","sources":["../../src/config/ConfigSchema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurationLoader.d.ts","sourceRoot":"","sources":["../../src/config/ConfigurationLoader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAexD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,UAAU,CAIvB;WAEW,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;WA2F9B,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAsCxD"}
1
+ {"version":3,"file":"ConfigurationLoader.d.ts","sourceRoot":"","sources":["../../src/config/ConfigurationLoader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAsBxD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,UAAU,CAIvB;WAEW,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;WAkI9B,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAsCxD"}
@@ -3,9 +3,11 @@ import * as path from 'path';
3
3
  import * as os from 'os';
4
4
  import { safeValidateConfiguration } from './ConfigSchema.js';
5
5
  import { discoverProviders, discoverModels } from './ProviderDiscovery.js';
6
+ import { loadHackMDCLIConfig } from './HackMDConfigLoader.js';
6
7
  import { ErrorFactory } from '../utils/ErrorTypes.js';
7
8
  import { Logger } from '../utils/Logger.js';
8
- import { CONFIG_DIR, CONFIG_FILE, DEFAULT_HACKMD_API_URL, DEFAULT_HACKMD_MCP_URL, DEFAULT_MODEL, DEFAULT_MAX_STEPS_PER_RUN, DEFAULT_MAX_RETRIES_PER_STEP, } from './constants.js';
9
+ import { SensitiveDataRedactor } from '../utils/SensitiveDataRedactor.js';
10
+ import { CONFIG_DIR, CONFIG_FILE, DEFAULT_HACKMD_API_URL, DEFAULT_HACKMD_MCP_URL, DEFAULT_MODEL, DEFAULT_MAX_STEPS_PER_RUN, DEFAULT_MAX_RETRIES_PER_STEP, HACKMD_CLI_TOKEN_ENV, HACKMD_CLI_ENDPOINT_ENV, HACKWRITER_TOKEN_ENV, HACKWRITER_API_URL_ENV, HACKWRITER_MCP_URL_ENV, } from './constants.js';
9
11
  export class ConfigurationLoader {
10
12
  static configPath = path.join(os.homedir(), CONFIG_DIR, CONFIG_FILE);
11
13
  static async load() {
@@ -13,7 +15,9 @@ export class ConfigurationLoader {
13
15
  // 1. Discover providers and models from environment
14
16
  const discoveredProviders = discoverProviders();
15
17
  const discoveredModels = await discoverModels(discoveredProviders);
16
- Logger.debug('ConfigLoader', `Discovered ${Object.keys(discoveredProviders).length} providers, ${Object.keys(discoveredModels).length} models`);
18
+ // Redact sensitive data before logging
19
+ const redactedProviders = SensitiveDataRedactor.redact(discoveredProviders);
20
+ Logger.debug('ConfigLoader', `Discovered ${Object.keys(discoveredProviders).length} providers, ${Object.keys(discoveredModels).length} models`, { providers: redactedProviders });
17
21
  // 2. Load user config (if exists)
18
22
  let userConfig = {};
19
23
  try {
@@ -36,10 +40,41 @@ export class ConfigurationLoader {
36
40
  const defaultModel = userConfig.defaultModel ??
37
41
  Object.keys(models)[0] ??
38
42
  DEFAULT_MODEL;
39
- // 5. Load HackMD config from env if not in config
40
- const hackmdToken = userConfig.services?.hackmd?.apiToken ?? process.env.HACKMD_API_TOKEN;
41
- const hackmdApiBaseUrl = userConfig.services?.hackmd?.apiBaseUrl ?? process.env.HACKMD_API_URL ?? DEFAULT_HACKMD_API_URL;
42
- const hackmdMcpBaseUrl = userConfig.services?.hackmd?.mcpBaseUrl ?? process.env.HACKMD_MCP_URL ?? DEFAULT_HACKMD_MCP_URL;
43
+ // 5. Load HackMD config with priority order:
44
+ // 1. Environment variables (HackWriter)
45
+ // 2. Environment variables (HackMD CLI)
46
+ // 3. HackWriter config file
47
+ // 4. HackMD CLI config file
48
+ // 5. Default values
49
+ // Load HackMD CLI config as fallback
50
+ const hackmdCLIConfig = await loadHackMDCLIConfig();
51
+ const hackmdToken = process.env[HACKWRITER_TOKEN_ENV] ?? // Priority 1: HACKMD_API_TOKEN
52
+ process.env[HACKMD_CLI_TOKEN_ENV] ?? // Priority 2: HMD_API_ACCESS_TOKEN
53
+ userConfig.services?.hackmd?.apiToken ?? // Priority 3: HackWriter config
54
+ hackmdCLIConfig?.accessToken; // Priority 4: HackMD CLI config
55
+ const hackmdApiBaseUrl = process.env[HACKWRITER_API_URL_ENV] ?? // Priority 1: HACKMD_API_URL
56
+ process.env[HACKMD_CLI_ENDPOINT_ENV] ?? // Priority 2: HMD_API_ENDPOINT_URL
57
+ userConfig.services?.hackmd?.apiBaseUrl ?? // Priority 3: HackWriter config
58
+ hackmdCLIConfig?.hackmdAPIEndpointURL ?? // Priority 4: HackMD CLI config
59
+ DEFAULT_HACKMD_API_URL; // Priority 5: Default
60
+ const hackmdMcpBaseUrl = process.env[HACKWRITER_MCP_URL_ENV] ?? // Priority 1: HACKMD_MCP_URL
61
+ userConfig.services?.hackmd?.mcpBaseUrl ??
62
+ DEFAULT_HACKMD_MCP_URL;
63
+ // Log configuration source for debugging
64
+ if (hackmdToken) {
65
+ if (process.env[HACKWRITER_TOKEN_ENV]) {
66
+ Logger.debug('ConfigLoader', 'Using HackMD token from HACKMD_API_TOKEN');
67
+ }
68
+ else if (process.env[HACKMD_CLI_TOKEN_ENV]) {
69
+ Logger.debug('ConfigLoader', 'Using HackMD token from HMD_API_ACCESS_TOKEN (HackMD CLI)');
70
+ }
71
+ else if (userConfig.services?.hackmd?.apiToken) {
72
+ Logger.debug('ConfigLoader', 'Using HackMD token from HackWriter config');
73
+ }
74
+ else if (hackmdCLIConfig?.accessToken) {
75
+ Logger.debug('ConfigLoader', 'Using HackMD token from HackMD CLI config (~/.hackmd/config.json)');
76
+ }
77
+ }
43
78
  const config = {
44
79
  defaultModel,
45
80
  models,
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurationLoader.js","sourceRoot":"","sources":["../../src/config/ConfigurationLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigurationLoader.js","sourceRoot":"","sources":["../../src/config/ConfigurationLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * HackMD CLI configuration structure
3
+ * Located at ~/.hackmd/config.json
4
+ */
5
+ export interface HackMDCLIConfig {
6
+ accessToken?: string;
7
+ hackmdAPIEndpointURL?: string;
8
+ }
9
+ /**
10
+ * Load HackMD CLI configuration from ~/.hackmd/config.json
11
+ * This provides compatibility with the official HackMD CLI tool
12
+ *
13
+ * @returns HackMD CLI config object or null if not found
14
+ */
15
+ export declare function loadHackMDCLIConfig(): Promise<HackMDCLIConfig | null>;
16
+ /**
17
+ * Check if HackMD CLI config exists
18
+ */
19
+ export declare function hasHackMDCLIConfig(): Promise<boolean>;
20
+ //# sourceMappingURL=HackMDConfigLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HackMDConfigLoader.d.ts","sourceRoot":"","sources":["../../src/config/HackMDConfigLoader.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA8B3E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS3D"}
@@ -0,0 +1,51 @@
1
+ import { promises as fs } from 'fs';
2
+ import * as path from 'path';
3
+ import * as os from 'os';
4
+ import { Logger } from '../utils/Logger.js';
5
+ /**
6
+ * Load HackMD CLI configuration from ~/.hackmd/config.json
7
+ * This provides compatibility with the official HackMD CLI tool
8
+ *
9
+ * @returns HackMD CLI config object or null if not found
10
+ */
11
+ export async function loadHackMDCLIConfig() {
12
+ const configPath = path.join(os.homedir(), '.hackmd', 'config.json');
13
+ try {
14
+ const content = await fs.readFile(configPath, 'utf-8');
15
+ const config = JSON.parse(content);
16
+ Logger.debug('HackMDConfigLoader', 'Loaded HackMD CLI config', {
17
+ hasToken: !!config.accessToken,
18
+ hasEndpoint: !!config.hackmdAPIEndpointURL,
19
+ });
20
+ return config;
21
+ }
22
+ catch (error) {
23
+ if (error.code === 'ENOENT') {
24
+ Logger.debug('HackMDConfigLoader', 'No HackMD CLI config found at ~/.hackmd/config.json');
25
+ return null;
26
+ }
27
+ // Log parsing errors but don't throw
28
+ if (error instanceof SyntaxError) {
29
+ Logger.warn('HackMDConfigLoader', 'Failed to parse HackMD CLI config', {
30
+ error: error.message,
31
+ });
32
+ return null;
33
+ }
34
+ // Re-throw other errors
35
+ throw error;
36
+ }
37
+ }
38
+ /**
39
+ * Check if HackMD CLI config exists
40
+ */
41
+ export async function hasHackMDCLIConfig() {
42
+ const configPath = path.join(os.homedir(), '.hackmd', 'config.json');
43
+ try {
44
+ await fs.access(configPath);
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ //# sourceMappingURL=HackMDConfigLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HackMDConfigLoader.js","sourceRoot":"","sources":["../../src/config/HackMDConfigLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAW5C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;QAEtD,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,0BAA0B,EAAE;YAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW;YAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB;SAC3C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,qDAAqD,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qCAAqC;QACrC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,mCAAmC,EAAE;gBACrE,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wBAAwB;QACxB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIDiscovery.d.ts","sourceRoot":"","sources":["../../src/config/OpenAIDiscovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAc7D;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAwCrF"}
1
+ {"version":3,"file":"OpenAIDiscovery.d.ts","sourceRoot":"","sources":["../../src/config/OpenAIDiscovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAc7D;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA6CrF"}
@@ -31,7 +31,10 @@ export async function discoverOpenAIModels(apiKey) {
31
31
  const order = ['gpt-4o', 'gpt-4', 'gpt-3.5', 'o1', 'o3'];
32
32
  const aIndex = order.findIndex(prefix => a.id.startsWith(prefix));
33
33
  const bIndex = order.findIndex(prefix => b.id.startsWith(prefix));
34
- return (aIndex === -1 ? 999 : aIndex) - (bIndex === -1 ? 999 : bIndex);
34
+ // Use 999 as default priority for unknown models (push to end)
35
+ const aPriority = aIndex === -1 ? 999 : aIndex;
36
+ const bPriority = bIndex === -1 ? 999 : bIndex;
37
+ return aPriority - bPriority;
35
38
  });
36
39
  }
37
40
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIDiscovery.js","sourceRoot":"","sources":["../../src/config/OpenAIDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAe5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAc;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kCAAkC,EAAE;YAC/D,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;aACpC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1E,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0B,CAAC;QAC3D,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,2EAA2E;YAC3E,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,KAAK,CAAC,EAAE;oBACd,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC1C,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,qBAAqB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,8BAA8B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE1F,8BAA8B;IAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kCAAkC;IAClC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,MAAM,CAAC,CAAC,UAAU;AAC3B,CAAC"}
1
+ {"version":3,"file":"OpenAIDiscovery.js","sourceRoot":"","sources":["../../src/config/OpenAIDiscovery.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,12 @@ export interface ModelDefinition {
4
4
  contextWindow: number;
5
5
  maxTokens?: number;
6
6
  }
7
- export interface ProviderDefinition {
7
+ interface ProviderDefinition {
8
8
  type: 'anthropic' | 'openai' | 'ollama';
9
9
  envKey?: string;
10
10
  defaultBaseUrl?: string;
11
11
  defaultModels: ModelDefinition[];
12
12
  }
13
13
  export declare const BUILT_IN_PROVIDERS: Record<string, ProviderDefinition>;
14
- export declare function getProviderDefinition(providerType: string): ProviderDefinition | undefined;
15
- export declare function getAllProviderDefinitions(): Record<string, ProviderDefinition>;
14
+ export {};
16
15
  //# sourceMappingURL=ProviderRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderRegistry.d.ts","sourceRoot":"","sources":["../../src/config/ProviderRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAsCjE,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GACnB,kBAAkB,GAAG,SAAS,CAEhC;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAE9E"}
1
+ {"version":3,"file":"ProviderRegistry.d.ts","sourceRoot":"","sources":["../../src/config/ProviderRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAsCjE,CAAC"}
@@ -37,10 +37,4 @@ export const BUILT_IN_PROVIDERS = {
37
37
  defaultModels: [], // Discovered dynamically from API
38
38
  },
39
39
  };
40
- export function getProviderDefinition(providerType) {
41
- return BUILT_IN_PROVIDERS[providerType];
42
- }
43
- export function getAllProviderDefinitions() {
44
- return BUILT_IN_PROVIDERS;
45
- }
46
40
  //# sourceMappingURL=ProviderRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../src/config/ProviderRegistry.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,kBAAkB,GAAuC;IACpE,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,mBAAmB;QAC3B,aAAa,EAAE;YACb;gBACE,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,kBAAkB;gBACxB,aAAa,EAAE,MAAM;aACtB;YACD;gBACE,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,mBAAmB;gBACzB,aAAa,EAAE,MAAM;aACtB;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE;YACb;gBACE,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,MAAM;aACtB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,MAAM;aACtB;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,4BAA4B;QAC5C,aAAa,EAAE,EAAE,EAAE,kCAAkC;KACtD;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,YAAoB;IAEpB,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../src/config/ProviderRegistry.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,kBAAkB,GAAuC;IACpE,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,mBAAmB;QAC3B,aAAa,EAAE;YACb;gBACE,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,kBAAkB;gBACxB,aAAa,EAAE,MAAM;aACtB;YACD;gBACE,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,mBAAmB;gBACzB,aAAa,EAAE,MAAM;aACtB;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE;YACb;gBACE,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,MAAM;aACtB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,MAAM;aACtB;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,4BAA4B;QAC5C,aAAa,EAAE,EAAE,EAAE,kCAAkC;KACtD;CACF,CAAC"}
@@ -9,14 +9,14 @@ export declare const MAX_FILE_SIZE: number;
9
9
  export declare const MAX_HACKMD_CONTENT_SIZE: number;
10
10
  export declare const MAX_FILE_DISPLAY_SIZE: number;
11
11
  export declare const MAX_FILES_DISPLAY = 100;
12
- export declare const DEFAULT_RATE_LIMIT_REQUESTS = 10;
13
- export declare const DEFAULT_RATE_LIMIT_WINDOW_MS = 60000;
14
- export declare const DEFAULT_MAX_RETRIES = 3;
15
- export declare const DEFAULT_RETRY_DELAY_MS = 1000;
16
- export declare const DEFAULT_MAX_RETRY_DELAY_MS = 30000;
17
12
  export declare const DEFAULT_HACKMD_API_URL = "https://api.hackmd.io/v1";
18
13
  export declare const DEFAULT_HACKMD_MCP_URL = "https://mcp.hackmd.io/v1";
19
- export declare const DEFAULT_MODEL = "anthropic-claude-3-5-haiku-latest";
14
+ export declare const HACKMD_CLI_TOKEN_ENV = "HMD_API_ACCESS_TOKEN";
15
+ export declare const HACKMD_CLI_ENDPOINT_ENV = "HMD_API_ENDPOINT_URL";
16
+ export declare const HACKWRITER_TOKEN_ENV = "HACKMD_API_TOKEN";
17
+ export declare const HACKWRITER_API_URL_ENV = "HACKMD_API_URL";
18
+ export declare const HACKWRITER_MCP_URL_ENV = "HACKMD_MCP_URL";
19
+ export declare const DEFAULT_MODEL = "anthropic-claude-3-5-haiku-20241022";
20
20
  export declare const DEFAULT_MAX_STEPS_PER_RUN = 100;
21
21
  export declare const DEFAULT_MAX_RETRIES_PER_STEP = 3;
22
22
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,UAAU,gBAAgB,CAAC;AACxC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,YAAY,aAAa,CAAC;AAGvC,eAAO,MAAM,aAAa,QAAmB,CAAC;AAC9C,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,eAAO,MAAM,qBAAqB,QAAc,CAAC;AAGjD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAGrC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAGlD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAGhD,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAGjE,eAAO,MAAM,aAAa,sCAAsC,CAAC;AAGjE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,4BAA4B,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,UAAU,gBAAgB,CAAC;AACxC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,YAAY,aAAa,CAAC;AAGvC,eAAO,MAAM,aAAa,QAAmB,CAAC;AAC9C,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,eAAO,MAAM,qBAAqB,QAAc,CAAC;AAGjD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAGrC,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAGjE,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAGvD,eAAO,MAAM,aAAa,wCAAwC,CAAC;AAGnE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,4BAA4B,IAAI,CAAC"}
@@ -12,18 +12,17 @@ export const MAX_HACKMD_CONTENT_SIZE = 5 * 1024 * 1024; // 5MB for HackMD API
12
12
  export const MAX_FILE_DISPLAY_SIZE = 1024 * 1024; // 1MB display limit
13
13
  // Display limits
14
14
  export const MAX_FILES_DISPLAY = 100; // Maximum files to display in list
15
- // Rate limiting defaults
16
- export const DEFAULT_RATE_LIMIT_REQUESTS = 10; // requests per window
17
- export const DEFAULT_RATE_LIMIT_WINDOW_MS = 60000; // 1 minute
18
- // Retry defaults
19
- export const DEFAULT_MAX_RETRIES = 3;
20
- export const DEFAULT_RETRY_DELAY_MS = 1000;
21
- export const DEFAULT_MAX_RETRY_DELAY_MS = 30000;
22
15
  // HackMD API defaults
23
16
  export const DEFAULT_HACKMD_API_URL = 'https://api.hackmd.io/v1';
24
17
  export const DEFAULT_HACKMD_MCP_URL = 'https://mcp.hackmd.io/v1';
18
+ // HackMD CLI compatibility - environment variable names
19
+ export const HACKMD_CLI_TOKEN_ENV = 'HMD_API_ACCESS_TOKEN';
20
+ export const HACKMD_CLI_ENDPOINT_ENV = 'HMD_API_ENDPOINT_URL';
21
+ export const HACKWRITER_TOKEN_ENV = 'HACKMD_API_TOKEN';
22
+ export const HACKWRITER_API_URL_ENV = 'HACKMD_API_URL';
23
+ export const HACKWRITER_MCP_URL_ENV = 'HACKMD_MCP_URL';
25
24
  // Model defaults
26
- export const DEFAULT_MODEL = 'anthropic-claude-3-5-haiku-latest';
25
+ export const DEFAULT_MODEL = 'anthropic-claude-3-5-haiku-20241022';
27
26
  // Loop control defaults
28
27
  export const DEFAULT_MAX_STEPS_PER_RUN = 100;
29
28
  export const DEFAULT_MAX_RETRIES_PER_STEP = 3;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AAEvC,mBAAmB;AACnB,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,qBAAqB;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,oBAAoB;AAEtE,iBAAiB;AACjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,mCAAmC;AAEzE,yBAAyB;AACzB,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,CAAC,sBAAsB;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,CAAC,WAAW;AAE9D,iBAAiB;AACjB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,sBAAsB;AACtB,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAEjE,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAEjE,wBAAwB;AACxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AAEvC,mBAAmB;AACnB,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,qBAAqB;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,oBAAoB;AAEtE,iBAAiB;AACjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,mCAAmC;AAEzE,sBAAsB;AACtB,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAEjE,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAAG,qCAAqC,CAAC;AAEnE,wBAAwB;AACxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Disposable } from "../utils/ResourceManager.js";
1
2
  export interface MCPClientConfig {
2
3
  serverUrl: string;
3
4
  apiToken: string;
@@ -14,16 +15,22 @@ export interface MCPToolCallResult {
14
15
  }[];
15
16
  isError?: boolean;
16
17
  }
17
- export declare class MCPClient {
18
+ export declare class MCPClient implements Disposable {
18
19
  private client;
19
20
  private transport;
20
21
  private config;
21
22
  private connected;
23
+ private packageVersion;
24
+ private retryPolicy;
22
25
  constructor(config: MCPClientConfig);
23
26
  /**
24
- * Connect to MCP server
27
+ * Connect to MCP server with retry logic
25
28
  */
26
29
  connect(): Promise<void>;
30
+ /**
31
+ * Internal connection logic (called by retry policy)
32
+ */
33
+ private connectInternal;
27
34
  /**
28
35
  * Disconnect from MCP server
29
36
  */
@@ -52,5 +59,9 @@ export declare class MCPClient {
52
59
  * Read a resource from MCP server
53
60
  */
54
61
  readResource(uri: string): Promise<string>;
62
+ /**
63
+ * Dispose of resources (implements Disposable interface)
64
+ */
65
+ dispose(): Promise<void>;
55
66
  }
56
67
  //# sourceMappingURL=MCPClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCPClient.d.ts","sourceRoot":"","sources":["../../src/mcp/MCPClient.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,eAAe;IAInC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAa/C;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkB5F;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAanF;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgBjD"}
1
+ {"version":3,"file":"MCPClient.d.ts","sourceRoot":"","sources":["../../src/mcp/MCPClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAM9D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,eAAe;IAUnC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B;;OAEG;YACW,eAAe;IAuD7B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAa/C;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkB5F;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAanF;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBhD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
@@ -1,29 +1,49 @@
1
1
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
2
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
3
3
  import { Logger } from "../utils/Logger.js";
4
- import { readFileSync } from "fs";
5
4
  import { dirname, join } from "path";
6
5
  import { fileURLToPath } from "url";
6
+ import { AsyncPackageLoader } from "../utils/AsyncPackageLoader.js";
7
+ import { RetryPolicy } from "../utils/RetryPolicy.js";
7
8
  const __filename = fileURLToPath(import.meta.url);
8
9
  const __dirname = dirname(__filename);
9
- const packageJson = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf-8"));
10
10
  export class MCPClient {
11
11
  client = null;
12
12
  transport = null;
13
13
  config;
14
14
  connected = false;
15
+ packageVersion = "unknown";
16
+ retryPolicy;
15
17
  constructor(config) {
16
18
  this.config = config;
19
+ this.retryPolicy = new RetryPolicy({
20
+ maxRetries: 3,
21
+ initialDelayMs: 1000,
22
+ maxDelayMs: 10000,
23
+ backoffMultiplier: 2,
24
+ });
17
25
  }
18
26
  /**
19
- * Connect to MCP server
27
+ * Connect to MCP server with retry logic
20
28
  */
21
29
  async connect() {
22
30
  if (this.connected) {
23
31
  Logger.debug("MCPClient", "Already connected");
24
32
  return;
25
33
  }
34
+ await this.retryPolicy.execute(async () => {
35
+ await this.connectInternal();
36
+ });
37
+ }
38
+ /**
39
+ * Internal connection logic (called by retry policy)
40
+ */
41
+ async connectInternal() {
26
42
  Logger.debug("MCPClient", `Connecting to ${this.config.serverUrl}`);
43
+ // Load package.json asynchronously
44
+ const packagePath = join(__dirname, "../../package.json");
45
+ const packageJson = await AsyncPackageLoader.load(packagePath);
46
+ this.packageVersion = packageJson.version;
27
47
  this.transport = new StreamableHTTPClientTransport(new URL(this.config.serverUrl), {
28
48
  requestInit: {
29
49
  headers: {
@@ -33,13 +53,37 @@ export class MCPClient {
33
53
  });
34
54
  this.client = new Client({
35
55
  name: "hackwriter-cli",
36
- version: packageJson.version,
56
+ version: this.packageVersion,
37
57
  }, {
38
58
  capabilities: {},
39
59
  });
40
- await this.client.connect(this.transport);
41
- this.connected = true;
42
- Logger.info("MCPClient", "Connected to MCP server");
60
+ try {
61
+ await this.client.connect(this.transport);
62
+ this.connected = true;
63
+ Logger.info("MCPClient", "Connected to MCP server");
64
+ }
65
+ catch (error) {
66
+ // Clean up partial state on failure
67
+ if (this.client) {
68
+ try {
69
+ await this.client.close();
70
+ }
71
+ catch {
72
+ // Ignore cleanup errors
73
+ }
74
+ this.client = null;
75
+ }
76
+ if (this.transport) {
77
+ try {
78
+ await this.transport.close();
79
+ }
80
+ catch {
81
+ // Ignore cleanup errors
82
+ }
83
+ this.transport = null;
84
+ }
85
+ throw error;
86
+ }
43
87
  }
44
88
  /**
45
89
  * Disconnect from MCP server
@@ -130,5 +174,12 @@ export class MCPClient {
130
174
  .join("\n");
131
175
  return textContents;
132
176
  }
177
+ /**
178
+ * Dispose of resources (implements Disposable interface)
179
+ */
180
+ async dispose() {
181
+ Logger.debug("MCPClient", "Disposing resources");
182
+ await this.disconnect();
183
+ }
133
184
  }
134
185
  //# sourceMappingURL=MCPClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../src/mcp/MCPClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../src/mcp/MCPClient.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { MCPClient, MCPToolDefinition } from "./MCPClient.js";
3
3
  /**
4
4
  * Interface matching Tool abstract class for compatibility
5
5
  */
6
- export interface ToolLike {
6
+ interface ToolLike {
7
7
  name: string;
8
8
  description: string;
9
9
  inputSchema: ToolSchema;
@@ -25,4 +25,5 @@ export declare class MCPToolAdapter implements ToolLike {
25
25
  */
26
26
  private extractBrief;
27
27
  }
28
+ export {};
28
29
  //# sourceMappingURL=MCPToolAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCPToolAdapter.d.ts","sourceRoot":"","sources":["../../src/mcp/MCPToolAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAM3C,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IANjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;gBAGvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB;IAU9B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IA0ChE;;OAEG;IACH,OAAO,CAAC,YAAY;CAyBrB"}
1
+ {"version":3,"file":"MCPToolAdapter.d.ts","sourceRoot":"","sources":["../../src/mcp/MCPToolAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnE;;GAEG;AACH,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAM3C,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IANjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;gBAGvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB;IAU9B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IA0ChE;;OAEG;IACH,OAAO,CAAC,YAAY;CAyBrB"}
@@ -1,3 +1,3 @@
1
- export { MCPClient, type MCPClientConfig, type MCPToolDefinition } from "./MCPClient.js";
1
+ export { MCPClient } from "./MCPClient.js";
2
2
  export { MCPToolAdapter } from "./MCPToolAdapter.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgD,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}