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.
- package/README.md +29 -59
- package/dist/agent/CompactionPrompt.d.ts +0 -7
- package/dist/agent/CompactionPrompt.d.ts.map +1 -1
- package/dist/agent/CompactionPrompt.js +1 -1
- package/dist/agent/CompactionPrompt.js.map +1 -1
- package/dist/agent/ConversationContext.d.ts +9 -0
- package/dist/agent/ConversationContext.d.ts.map +1 -1
- package/dist/agent/ConversationContext.js +16 -1
- package/dist/agent/ConversationContext.js.map +1 -1
- package/dist/agent/ModelFactory.d.ts.map +1 -1
- package/dist/agent/ModelFactory.js +4 -1
- package/dist/agent/ModelFactory.js.map +1 -1
- package/dist/cli.js +38 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +73 -22
- package/dist/commands/setup.js.map +1 -1
- package/dist/config/ConfigSchema.d.ts +2 -36
- package/dist/config/ConfigSchema.d.ts.map +1 -1
- package/dist/config/ConfigSchema.js +5 -11
- package/dist/config/ConfigSchema.js.map +1 -1
- package/dist/config/ConfigurationLoader.d.ts.map +1 -1
- package/dist/config/ConfigurationLoader.js +41 -6
- package/dist/config/ConfigurationLoader.js.map +1 -1
- package/dist/config/HackMDConfigLoader.d.ts +20 -0
- package/dist/config/HackMDConfigLoader.d.ts.map +1 -0
- package/dist/config/HackMDConfigLoader.js +51 -0
- package/dist/config/HackMDConfigLoader.js.map +1 -0
- package/dist/config/OpenAIDiscovery.d.ts.map +1 -1
- package/dist/config/OpenAIDiscovery.js +4 -1
- package/dist/config/OpenAIDiscovery.js.map +1 -1
- package/dist/config/ProviderRegistry.d.ts +2 -3
- package/dist/config/ProviderRegistry.d.ts.map +1 -1
- package/dist/config/ProviderRegistry.js +0 -6
- package/dist/config/ProviderRegistry.js.map +1 -1
- package/dist/config/constants.d.ts +6 -6
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +7 -8
- package/dist/config/constants.js.map +1 -1
- package/dist/mcp/MCPClient.d.ts +13 -2
- package/dist/mcp/MCPClient.d.ts.map +1 -1
- package/dist/mcp/MCPClient.js +58 -7
- package/dist/mcp/MCPClient.js.map +1 -1
- package/dist/mcp/MCPToolAdapter.d.ts +2 -1
- package/dist/mcp/MCPToolAdapter.d.ts.map +1 -1
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/messaging/MessageBus.d.ts +6 -1
- package/dist/messaging/MessageBus.d.ts.map +1 -1
- package/dist/messaging/MessageBus.js +6 -0
- package/dist/messaging/MessageBus.js.map +1 -1
- package/dist/tools/base/Tool.d.ts +0 -1
- package/dist/tools/base/Tool.d.ts.map +1 -1
- package/dist/tools/base/Tool.js.map +1 -1
- package/dist/tools/file/ListFilesTool.d.ts.map +1 -1
- package/dist/tools/file/ListFilesTool.js +10 -8
- package/dist/tools/file/ListFilesTool.js.map +1 -1
- package/dist/tools/file/ReadFileTool.d.ts.map +1 -1
- package/dist/tools/file/ReadFileTool.js +9 -8
- package/dist/tools/file/ReadFileTool.js.map +1 -1
- package/dist/tools/file/WriteFileTool.d.ts.map +1 -1
- package/dist/tools/file/WriteFileTool.js +9 -7
- package/dist/tools/file/WriteFileTool.js.map +1 -1
- package/dist/ui/shell/InteractiveShell.d.ts +6 -1
- package/dist/ui/shell/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/shell/InteractiveShell.js +10 -0
- package/dist/ui/shell/InteractiveShell.js.map +1 -1
- package/dist/utils/AsyncPackageLoader.d.ts +29 -0
- package/dist/utils/AsyncPackageLoader.d.ts.map +1 -0
- package/dist/utils/AsyncPackageLoader.js +56 -0
- package/dist/utils/AsyncPackageLoader.js.map +1 -0
- package/dist/utils/BatchWriter.d.ts +42 -0
- package/dist/utils/BatchWriter.d.ts.map +1 -0
- package/dist/utils/BatchWriter.js +130 -0
- package/dist/utils/BatchWriter.js.map +1 -0
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +14 -4
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/PathValidator.d.ts +35 -0
- package/dist/utils/PathValidator.d.ts.map +1 -0
- package/dist/utils/PathValidator.js +70 -0
- package/dist/utils/PathValidator.js.map +1 -0
- package/dist/utils/RateLimiter.d.ts +3 -1
- package/dist/utils/RateLimiter.d.ts.map +1 -1
- package/dist/utils/RateLimiter.js +9 -24
- package/dist/utils/RateLimiter.js.map +1 -1
- package/dist/utils/ResourceManager.d.ts +7 -0
- package/dist/utils/ResourceManager.d.ts.map +1 -0
- package/dist/utils/ResourceManager.js +2 -0
- package/dist/utils/ResourceManager.js.map +1 -0
- package/dist/utils/RetryPolicy.d.ts +29 -0
- package/dist/utils/RetryPolicy.d.ts.map +1 -0
- package/dist/utils/RetryPolicy.js +73 -0
- package/dist/utils/RetryPolicy.js.map +1 -0
- package/dist/utils/SensitiveDataRedactor.d.ts +40 -0
- package/dist/utils/SensitiveDataRedactor.d.ts.map +1 -0
- package/dist/utils/SensitiveDataRedactor.js +122 -0
- package/dist/utils/SensitiveDataRedactor.js.map +1 -0
- package/dist/utils/SlidingWindowRateLimiter.d.ts +36 -0
- package/dist/utils/SlidingWindowRateLimiter.d.ts.map +1 -0
- package/dist/utils/SlidingWindowRateLimiter.js +74 -0
- package/dist/utils/SlidingWindowRateLimiter.js.map +1 -0
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,MAAM,
|
|
1
|
+
{"version":3,"file":"ConfigSchema.js","sourceRoot":"","sources":["../../src/config/ConfigSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAC3D,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;IACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IAClD,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,CAAC,mCAAmC,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACxD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;KACtC,CAAC;IACF,WAAW,EAAE,iBAAiB;CAC/B,CAAC,CAAC;AAKH;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAa;IAKrD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -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;
|
|
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 {
|
|
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
|
-
|
|
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
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,yBAAyB,EACzB,4BAA4B,
|
|
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,
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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"}
|
package/dist/config/constants.js
CHANGED
|
@@ -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-
|
|
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,
|
|
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"}
|
package/dist/mcp/MCPClient.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/mcp/MCPClient.js
CHANGED
|
@@ -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:
|
|
56
|
+
version: this.packageVersion,
|
|
37
57
|
}, {
|
|
38
58
|
capabilities: {},
|
|
39
59
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,
|
|
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
|
-
|
|
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,
|
|
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"}
|
package/dist/mcp/index.d.ts
CHANGED
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,
|
|
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"}
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,
|
|
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"}
|