azerclaw 2.1.1 → 2.1.4

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 (89) hide show
  1. package/README.md +3 -3
  2. package/bin/azerclaw.ts +22 -11
  3. package/dist/bin/azerclaw.js +22 -11
  4. package/dist/bin/azerclaw.js.map +1 -1
  5. package/dist/src/agents/builtin.js +12 -12
  6. package/dist/src/cli/animations/fish.d.ts.map +1 -1
  7. package/dist/src/cli/animations/fish.js +10 -0
  8. package/dist/src/cli/animations/fish.js.map +1 -1
  9. package/dist/src/cli/animations/markdown.d.ts +2 -0
  10. package/dist/src/cli/animations/markdown.d.ts.map +1 -0
  11. package/dist/src/cli/animations/markdown.js +35 -0
  12. package/dist/src/cli/animations/markdown.js.map +1 -0
  13. package/dist/src/cli/commands/chat.d.ts +1 -1
  14. package/dist/src/cli/commands/chat.d.ts.map +1 -1
  15. package/dist/src/cli/commands/chat.js +25 -8
  16. package/dist/src/cli/commands/chat.js.map +1 -1
  17. package/dist/src/cli/commands/models.js +27 -24
  18. package/dist/src/cli/commands/models.js.map +1 -1
  19. package/dist/src/cli/commands/onboard.d.ts +1 -1
  20. package/dist/src/cli/commands/onboard.js +1 -1
  21. package/dist/src/cli/commands/tui.d.ts.map +1 -1
  22. package/dist/src/cli/commands/tui.js +83 -11
  23. package/dist/src/cli/commands/tui.js.map +1 -1
  24. package/dist/src/config/manager.d.ts +1 -1
  25. package/dist/src/config/manager.d.ts.map +1 -1
  26. package/dist/src/config/manager.js +6 -14
  27. package/dist/src/config/manager.js.map +1 -1
  28. package/dist/src/config/schema.d.ts +43 -791
  29. package/dist/src/config/schema.d.ts.map +1 -1
  30. package/dist/src/config/schema.js +40 -109
  31. package/dist/src/config/schema.js.map +1 -1
  32. package/dist/src/core/runtime.js +1 -1
  33. package/dist/src/core/security.d.ts.map +1 -1
  34. package/dist/src/core/security.js +4 -2
  35. package/dist/src/core/security.js.map +1 -1
  36. package/dist/src/core/server.d.ts +14 -0
  37. package/dist/src/core/server.d.ts.map +1 -1
  38. package/dist/src/core/server.js +54 -8
  39. package/dist/src/core/server.js.map +1 -1
  40. package/dist/src/index.d.ts +0 -3
  41. package/dist/src/index.d.ts.map +1 -1
  42. package/dist/src/index.js +0 -3
  43. package/dist/src/index.js.map +1 -1
  44. package/dist/src/providers/openai.d.ts.map +1 -1
  45. package/dist/src/providers/openai.js +63 -26
  46. package/dist/src/providers/openai.js.map +1 -1
  47. package/dist/src/providers/router.d.ts +1 -2
  48. package/dist/src/providers/router.d.ts.map +1 -1
  49. package/dist/src/providers/router.js +46 -138
  50. package/dist/src/providers/router.js.map +1 -1
  51. package/dist/src/server/hq.js +1 -1
  52. package/dist/src/server/hq.js.map +1 -1
  53. package/dist/src/skills/loader.d.ts +1 -1
  54. package/dist/src/skills/loader.js +1 -1
  55. package/dist/src/tools/advanced.d.ts.map +1 -1
  56. package/dist/src/tools/advanced.js +23 -4
  57. package/dist/src/tools/advanced.js.map +1 -1
  58. package/dist/src/tools/registry.d.ts.map +1 -1
  59. package/dist/src/tools/registry.js +14 -3
  60. package/dist/src/tools/registry.js.map +1 -1
  61. package/dist/src/tools/specialized.d.ts.map +1 -1
  62. package/dist/src/tools/specialized.js +39 -3
  63. package/dist/src/tools/specialized.js.map +1 -1
  64. package/dist/src/tools/visual.d.ts.map +1 -1
  65. package/dist/src/tools/visual.js +1 -36
  66. package/dist/src/tools/visual.js.map +1 -1
  67. package/dist/src/workflow/engine.d.ts +1 -1
  68. package/dist/src/workflow/engine.js +1 -1
  69. package/package.json +5 -3
  70. package/dist/src/providers/anthropic.d.ts +0 -25
  71. package/dist/src/providers/anthropic.d.ts.map +0 -1
  72. package/dist/src/providers/anthropic.js +0 -163
  73. package/dist/src/providers/anthropic.js.map +0 -1
  74. package/dist/src/providers/google.d.ts +0 -23
  75. package/dist/src/providers/google.d.ts.map +0 -1
  76. package/dist/src/providers/google.js +0 -118
  77. package/dist/src/providers/google.js.map +0 -1
  78. package/dist/src/providers/ollama.d.ts +0 -24
  79. package/dist/src/providers/ollama.d.ts.map +0 -1
  80. package/dist/src/providers/ollama.js +0 -81
  81. package/dist/src/providers/ollama.js.map +0 -1
  82. package/dist/src/providers/openrouter.d.ts +0 -21
  83. package/dist/src/providers/openrouter.d.ts.map +0 -1
  84. package/dist/src/providers/openrouter.js +0 -65
  85. package/dist/src/providers/openrouter.js.map +0 -1
  86. package/dist/src/providers/vought.d.ts +0 -20
  87. package/dist/src/providers/vought.d.ts.map +0 -1
  88. package/dist/src/providers/vought.js +0 -35
  89. package/dist/src/providers/vought.js.map +0 -1
@@ -98,11 +98,22 @@ class ToolRegistry {
98
98
  }
99
99
  exports.ToolRegistry = ToolRegistry;
100
100
  let instance = null;
101
+ let creating = false;
101
102
  function getToolRegistry() {
102
103
  if (!instance) {
103
- const config = (0, manager_1.getConfigManager)().getAll();
104
- const sandboxMode = (0, sandbox_1.resolveSandboxMode)(config.agent.sandboxMode);
105
- instance = new ToolRegistry({ sandbox: sandboxMode === 'all' });
104
+ if (creating) {
105
+ // Re-entrant call during construction — return a bare instance to avoid infinite loop
106
+ return new ToolRegistry({ sandbox: false });
107
+ }
108
+ creating = true;
109
+ try {
110
+ const config = (0, manager_1.getConfigManager)().getAll();
111
+ const sandboxMode = (0, sandbox_1.resolveSandboxMode)(config.agent.sandboxMode);
112
+ instance = new ToolRegistry({ sandbox: sandboxMode === 'all' });
113
+ }
114
+ finally {
115
+ creating = false;
116
+ }
106
117
  }
107
118
  return instance;
108
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"specialized.d.ts","sourceRoot":"","sources":["../../../src/tools/specialized.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAc,MAAM,YAAY,CAAC;AAG9C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,IA4BjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,IAyB9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,IAyBhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,IAoB9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,IAwB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,IA+BvC,CAAC"}
1
+ {"version":3,"file":"specialized.d.ts","sourceRoot":"","sources":["../../../src/tools/specialized.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAc,MAAM,YAAY,CAAC;AAG9C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,IAwCjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,IAqC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,IAqChC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,IAoB9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,IAwB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,IA+BvC,CAAC"}
@@ -24,7 +24,19 @@ exports.reverseEngineerTool = {
24
24
  required: ['path'],
25
25
  },
26
26
  async execute(args) {
27
- const filePath = args.path;
27
+ const path = require('path');
28
+ const fs = require('fs');
29
+ const rawPath = args.path;
30
+ if (!rawPath || typeof rawPath !== 'string') {
31
+ return { success: false, output: '', error: 'reverse_engineer requires a "path" string' };
32
+ }
33
+ const filePath = path.resolve(rawPath);
34
+ if (!fs.existsSync(filePath)) {
35
+ return { success: false, output: '', error: `File not found: ${filePath}` };
36
+ }
37
+ if (/[;|&$`\\"'(){}\[\]!#~]/.test(filePath)) {
38
+ return { success: false, output: '', error: 'Path contains invalid characters' };
39
+ }
28
40
  try {
29
41
  const stats = execSync(`ls -lh "${filePath}"`, { encoding: 'utf-8' });
30
42
  const strings = execSync(`strings "${filePath}" | head -n 50`, { encoding: 'utf-8' });
@@ -56,7 +68,19 @@ exports.stealthAuditTool = {
56
68
  required: ['target'],
57
69
  },
58
70
  async execute(args) {
59
- const target = args.target;
71
+ const path = require('path');
72
+ const fs = require('fs');
73
+ const rawTarget = args.target;
74
+ if (!rawTarget || typeof rawTarget !== 'string') {
75
+ return { success: false, output: '', error: 'stealth_audit requires a "target" string' };
76
+ }
77
+ const target = path.resolve(rawTarget);
78
+ if (!fs.existsSync(target)) {
79
+ return { success: false, output: '', error: `Target not found: ${target}` };
80
+ }
81
+ if (/[;|&$`\\"'(){}\[\]!#~]/.test(target)) {
82
+ return { success: false, output: '', error: 'Target path contains invalid characters' };
83
+ }
60
84
  try {
61
85
  // Basic secret sniffing
62
86
  const secretScan = execSync(`grep -rEi "api_key|secret|password|token" "${target}" --exclude-dir=node_modules | head -n 20`, { encoding: 'utf-8' });
@@ -88,7 +112,19 @@ exports.patternSpotterTool = {
88
112
  required: ['path'],
89
113
  },
90
114
  async execute(args) {
91
- const filePath = args.path;
115
+ const path = require('path');
116
+ const fs = require('fs');
117
+ const rawPath = args.path;
118
+ if (!rawPath || typeof rawPath !== 'string') {
119
+ return { success: false, output: '', error: 'pattern_spotter requires a "path" string' };
120
+ }
121
+ const filePath = path.resolve(rawPath);
122
+ if (!fs.existsSync(filePath)) {
123
+ return { success: false, output: '', error: `File not found: ${filePath}` };
124
+ }
125
+ if (/[;|&$`\\"'(){}\[\]!#~]/.test(filePath)) {
126
+ return { success: false, output: '', error: 'Path contains invalid characters' };
127
+ }
92
128
  try {
93
129
  const patterns = execSync(`sort "${filePath}" | uniq -c | sort -rn | head -n 20`, { encoding: 'utf-8' });
94
130
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"specialized.js","sourceRoot":"","sources":["../../../src/tools/specialized.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specialized.js","sourceRoot":"","sources":["../../../src/tools/specialized.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../../src/tools/visual.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAc,MAAM,YAAY,CAAC;AAG9C,eAAO,MAAM,iBAAiB,EAAE,IAuD/B,CAAC"}
1
+ {"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../../src/tools/visual.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAc,MAAM,YAAY,CAAC;AAG9C,eAAO,MAAM,iBAAiB,EAAE,IAe/B,CAAC"}
@@ -5,7 +5,6 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.generateImageTool = void 0;
8
- const manager_1 = require("../config/manager");
9
8
  exports.generateImageTool = {
10
9
  name: 'generate_image',
11
10
  version: '2.0.0',
@@ -19,41 +18,7 @@ exports.generateImageTool = {
19
18
  required: ['prompt'],
20
19
  },
21
20
  async execute(args) {
22
- const config = (0, manager_1.getConfigManager)().getAll();
23
- const custom = config.ai.providers.custom;
24
- if (!custom || !custom.apiKey || !custom.baseUrl) {
25
- return { success: false, output: '', error: 'Cloudflare credentials not configured' };
26
- }
27
- try {
28
- const fetch = require('node-fetch');
29
- const fs = require('fs/promises');
30
- const path = require('path');
31
- const response = await fetch(`${custom.baseUrl}/black-forest-labs/flux-1-schnell`, {
32
- method: 'POST',
33
- headers: {
34
- 'Authorization': `Bearer ${custom.apiKey}`,
35
- 'Content-Type': 'application/json',
36
- },
37
- body: JSON.stringify({
38
- prompt: args.prompt,
39
- }),
40
- });
41
- if (!response.ok) {
42
- throw new Error(`Cloudflare AI Error: ${response.statusText}`);
43
- }
44
- const buffer = await response.buffer();
45
- const fileName = `evidence_${Date.now()}.png`;
46
- const filePath = path.join(process.cwd(), fileName);
47
- await fs.writeFile(filePath, buffer);
48
- return {
49
- success: true,
50
- output: `Image generated and saved to: ${filePath}\nPrompt: ${args.prompt}`,
51
- metadata: { filePath, fileName }
52
- };
53
- }
54
- catch (e) {
55
- return { success: false, output: '', error: e.message };
56
- }
21
+ return { success: false, output: '', error: 'Image generation is currently disabled. Vought Gate is offline.' };
57
22
  }
58
23
  };
59
24
  //# sourceMappingURL=visual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visual.js","sourceRoot":"","sources":["../../../src/tools/visual.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,+CAAqD;AAExC,QAAA,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,kGAAkG;IAC/G,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACtE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;SAC/E;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;QAE1C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;QACxF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,mCAAmC,EAAE;gBACjF,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;oBAC1C,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YAEpD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAErC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,iCAAiC,QAAQ,aAAa,IAAI,CAAC,MAAM,EAAE;gBAC3E,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"visual.js","sourceRoot":"","sources":["../../../src/tools/visual.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKU,QAAA,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,kGAAkG;IAC/G,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACtE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;SAC/E;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,iEAAiE,EAAE,CAAC;IAClH,CAAC;CACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 🐟 AZERCLAW Fishbone Workflow Engine
3
- * Deterministic, typed pipeline system — replaces OpenClaw's "Lobster" engine.
3
+ * Deterministic, typed pipeline system — replaces Azerclaw's "Fishbone" engine.
4
4
  * Supports .fishbone files for defining multi-step workflows with approval gates.
5
5
  */
6
6
  export interface FishboneStep {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * 🐟 AZERCLAW Fishbone Workflow Engine
4
- * Deterministic, typed pipeline system — replaces OpenClaw's "Lobster" engine.
4
+ * Deterministic, typed pipeline system — replaces Azerclaw's "Fishbone" engine.
5
5
  * Supports .fishbone files for defining multi-step workflows with approval gates.
6
6
  */
7
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azerclaw",
3
- "version": "2.1.1",
3
+ "version": "2.1.4",
4
4
  "description": "🐟 AZERCLAW — Open-source, BYOK AI agent for your terminal. Your AI, Your Keys, Your Way.",
5
5
  "main": "dist/src/index.js",
6
6
  "bin": {
@@ -68,8 +68,6 @@
68
68
  "LICENSE"
69
69
  ],
70
70
  "dependencies": {
71
- "@anthropic-ai/sdk": "^0.52.0",
72
- "@google/generative-ai": "^0.24.0",
73
71
  "@modelcontextprotocol/sdk": "^1.29.0",
74
72
  "boxen": "^5.1.2",
75
73
  "chalk": "^4.1.2",
@@ -85,6 +83,8 @@
85
83
  "gradient-string": "^2.0.2",
86
84
  "log-symbols": "^4.1.0",
87
85
  "lowdb": "^6.1.1",
86
+ "marked": "^15.0.12",
87
+ "marked-terminal": "^7.3.0",
88
88
  "nanoid": "^3.3.11",
89
89
  "node-fetch": "^3.3.2",
90
90
  "openai": "^4.97.0",
@@ -99,6 +99,8 @@
99
99
  },
100
100
  "devDependencies": {
101
101
  "@types/express": "^5.0.6",
102
+ "@types/gradient-string": "^1.1.6",
103
+ "@types/marked-terminal": "^6.1.1",
102
104
  "@types/node": "^22.19.18",
103
105
  "@types/pdfkit": "^0.17.6",
104
106
  "@types/ws": "^8.18.1",
@@ -1,25 +0,0 @@
1
- /**
2
- * 🐟 AZERCLAW Anthropic Provider
3
- * Claude models via the Anthropic API.
4
- */
5
- import { BaseProvider, CompletionOptions, CompletionResult, StreamChunk, ModelInfo } from './base';
6
- export declare class AnthropicProvider extends BaseProvider {
7
- readonly name = "anthropic";
8
- readonly displayName = "Anthropic";
9
- private client;
10
- private defaultModel;
11
- constructor(config: {
12
- apiKey: string;
13
- baseUrl?: string;
14
- defaultModel?: string;
15
- });
16
- isAvailable(): Promise<boolean>;
17
- complete(options: CompletionOptions): Promise<CompletionResult>;
18
- stream(options: CompletionOptions): AsyncGenerator<StreamChunk>;
19
- listModels(): Promise<ModelInfo[]>;
20
- validateConnection(): Promise<{
21
- valid: boolean;
22
- error?: string;
23
- }>;
24
- }
25
- //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACV,MAAM,QAAQ,CAAC;AAEhB,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,eAAe;IACnC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IASzE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2E9D,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,CAAC;IAqChE,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAQlC,kBAAkB,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAmBxE"}
@@ -1,163 +0,0 @@
1
- "use strict";
2
- /**
3
- * 🐟 AZERCLAW Anthropic Provider
4
- * Claude models via the Anthropic API.
5
- */
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.AnthropicProvider = void 0;
11
- const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
12
- const base_1 = require("./base");
13
- class AnthropicProvider extends base_1.BaseProvider {
14
- name = 'anthropic';
15
- displayName = 'Anthropic';
16
- client;
17
- defaultModel;
18
- constructor(config) {
19
- super();
20
- this.defaultModel = config.defaultModel || 'claude-sonnet-4-20250514';
21
- this.client = new sdk_1.default({
22
- apiKey: config.apiKey,
23
- baseURL: config.baseUrl || undefined,
24
- });
25
- }
26
- async isAvailable() {
27
- const result = await this.validateConnection();
28
- return result.valid;
29
- }
30
- async complete(options) {
31
- const model = options.model || this.defaultModel;
32
- try {
33
- const params = {
34
- model,
35
- max_tokens: options.maxTokens || 4096,
36
- messages: options.messages
37
- .filter(m => m.role !== 'system')
38
- .map(m => ({
39
- role: m.role === 'assistant' ? 'assistant' : 'user',
40
- content: m.content,
41
- })),
42
- };
43
- if (options.systemPrompt) {
44
- params.system = options.systemPrompt;
45
- }
46
- else {
47
- const sysMsg = options.messages.find(m => m.role === 'system');
48
- if (sysMsg) {
49
- params.system = sysMsg.content;
50
- }
51
- }
52
- if (options.tools && options.tools.length > 0) {
53
- params.tools = options.tools.map(t => ({
54
- name: t.function.name,
55
- description: t.function.description,
56
- input_schema: t.function.parameters,
57
- }));
58
- }
59
- const response = await this.client.messages.create(params);
60
- let content = '';
61
- const toolCalls = [];
62
- for (const block of response.content) {
63
- if (block.type === 'text') {
64
- content += block.text;
65
- }
66
- else if (block.type === 'tool_use') {
67
- toolCalls.push({
68
- id: block.id,
69
- type: 'function',
70
- function: {
71
- name: block.name,
72
- arguments: JSON.stringify(block.input),
73
- },
74
- });
75
- }
76
- }
77
- return {
78
- content,
79
- toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
80
- usage: {
81
- promptTokens: response.usage.input_tokens,
82
- completionTokens: response.usage.output_tokens,
83
- totalTokens: response.usage.input_tokens + response.usage.output_tokens,
84
- },
85
- model: response.model,
86
- provider: this.name,
87
- finishReason: response.stop_reason === 'tool_use' ? 'tool_calls' :
88
- response.stop_reason === 'max_tokens' ? 'length' : 'stop',
89
- };
90
- }
91
- catch (error) {
92
- return {
93
- content: '',
94
- model,
95
- provider: this.name,
96
- finishReason: 'error',
97
- };
98
- }
99
- }
100
- async *stream(options) {
101
- const model = options.model || this.defaultModel;
102
- try {
103
- const params = {
104
- model,
105
- max_tokens: options.maxTokens || 4096,
106
- stream: true,
107
- messages: options.messages
108
- .filter(m => m.role !== 'system')
109
- .map(m => ({
110
- role: m.role === 'assistant' ? 'assistant' : 'user',
111
- content: m.content,
112
- })),
113
- };
114
- if (options.systemPrompt) {
115
- params.system = options.systemPrompt;
116
- }
117
- const stream = this.client.messages.stream(params);
118
- for await (const event of stream) {
119
- if (event.type === 'content_block_delta') {
120
- const delta = event.delta;
121
- if (delta.type === 'text_delta') {
122
- yield { type: 'text', content: delta.text };
123
- }
124
- }
125
- else if (event.type === 'message_stop') {
126
- yield { type: 'done' };
127
- }
128
- }
129
- }
130
- catch (error) {
131
- yield { type: 'error', error: error.message || 'Unknown error' };
132
- }
133
- }
134
- async listModels() {
135
- return [
136
- { id: 'claude-opus-4-20250514', name: 'Claude Opus 4', provider: this.name, contextWindow: 200000, supportsTools: true, supportsStreaming: true },
137
- { id: 'claude-sonnet-4-20250514', name: 'Claude Sonnet 4', provider: this.name, contextWindow: 200000, supportsTools: true, supportsStreaming: true },
138
- { id: 'claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku', provider: this.name, contextWindow: 200000, supportsTools: true, supportsStreaming: true },
139
- ];
140
- }
141
- async validateConnection() {
142
- try {
143
- await this.client.messages.create({
144
- model: this.defaultModel,
145
- max_tokens: 10,
146
- messages: [{ role: 'user', content: 'hi' }],
147
- });
148
- return { valid: true };
149
- }
150
- catch (error) {
151
- if (error.status === 401) {
152
- return { valid: false, error: 'Invalid API key' };
153
- }
154
- // Rate limit or other errors still mean connection works
155
- if (error.status === 429) {
156
- return { valid: true };
157
- }
158
- return { valid: false, error: error.message || 'Connection failed' };
159
- }
160
- }
161
- }
162
- exports.AnthropicProvider = AnthropicProvider;
163
- //# sourceMappingURL=anthropic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * 🐟 AZERCLAW Google Gemini Provider
3
- */
4
- import { BaseProvider, CompletionOptions, CompletionResult, StreamChunk, ModelInfo } from './base';
5
- export declare class GoogleProvider extends BaseProvider {
6
- readonly name = "google";
7
- readonly displayName = "Google Gemini";
8
- private client;
9
- private defaultModel;
10
- constructor(config: {
11
- apiKey: string;
12
- defaultModel?: string;
13
- });
14
- isAvailable(): Promise<boolean>;
15
- complete(options: CompletionOptions): Promise<CompletionResult>;
16
- stream(options: CompletionOptions): AsyncGenerator<StreamChunk>;
17
- listModels(): Promise<ModelInfo[]>;
18
- validateConnection(): Promise<{
19
- valid: boolean;
20
- error?: string;
21
- }>;
22
- }
23
- //# sourceMappingURL=google.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/providers/google.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACV,MAAM,QAAQ,CAAC;AAEhB,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,mBAAmB;IACvC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAMvD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8C9D,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,CAAC;IA0ChE,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAQlC,kBAAkB,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAYxE"}
@@ -1,118 +0,0 @@
1
- "use strict";
2
- /**
3
- * 🐟 AZERCLAW Google Gemini Provider
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.GoogleProvider = void 0;
7
- const generative_ai_1 = require("@google/generative-ai");
8
- const base_1 = require("./base");
9
- class GoogleProvider extends base_1.BaseProvider {
10
- name = 'google';
11
- displayName = 'Google Gemini';
12
- client;
13
- defaultModel;
14
- constructor(config) {
15
- super();
16
- this.defaultModel = config.defaultModel || 'gemini-2.5-flash';
17
- this.client = new generative_ai_1.GoogleGenerativeAI(config.apiKey);
18
- }
19
- async isAvailable() {
20
- const result = await this.validateConnection();
21
- return result.valid;
22
- }
23
- async complete(options) {
24
- const modelId = options.model || this.defaultModel;
25
- try {
26
- const model = this.client.getGenerativeModel({ model: modelId });
27
- const systemPrompt = options.systemPrompt ||
28
- options.messages.find(m => m.role === 'system')?.content || '';
29
- const history = options.messages
30
- .filter(m => m.role !== 'system')
31
- .map(m => ({
32
- role: m.role === 'assistant' ? 'model' : 'user',
33
- parts: [{ text: m.content }],
34
- }));
35
- // Get the last user message
36
- const lastMessage = history.pop();
37
- if (!lastMessage) {
38
- return { content: '', model: modelId, provider: this.name, finishReason: 'error' };
39
- }
40
- const chat = model.startChat({
41
- history: history,
42
- systemInstruction: systemPrompt ? { role: 'system', parts: [{ text: systemPrompt }] } : undefined,
43
- });
44
- const result = await chat.sendMessage(lastMessage.parts[0].text);
45
- const response = result.response;
46
- return {
47
- content: response.text(),
48
- model: modelId,
49
- provider: this.name,
50
- finishReason: 'stop',
51
- usage: response.usageMetadata ? {
52
- promptTokens: response.usageMetadata.promptTokenCount || 0,
53
- completionTokens: response.usageMetadata.candidatesTokenCount || 0,
54
- totalTokens: response.usageMetadata.totalTokenCount || 0,
55
- } : undefined,
56
- };
57
- }
58
- catch (error) {
59
- return { content: '', model: modelId, provider: this.name, finishReason: 'error' };
60
- }
61
- }
62
- async *stream(options) {
63
- const modelId = options.model || this.defaultModel;
64
- try {
65
- const model = this.client.getGenerativeModel({ model: modelId });
66
- const systemPrompt = options.systemPrompt ||
67
- options.messages.find(m => m.role === 'system')?.content || '';
68
- const history = options.messages
69
- .filter(m => m.role !== 'system')
70
- .map(m => ({
71
- role: m.role === 'assistant' ? 'model' : 'user',
72
- parts: [{ text: m.content }],
73
- }));
74
- const lastMessage = history.pop();
75
- if (!lastMessage) {
76
- yield { type: 'error', error: 'No messages provided' };
77
- return;
78
- }
79
- const chat = model.startChat({
80
- history: history,
81
- systemInstruction: systemPrompt ? { role: 'system', parts: [{ text: systemPrompt }] } : undefined,
82
- });
83
- const result = await chat.sendMessageStream(lastMessage.parts[0].text);
84
- for await (const chunk of result.stream) {
85
- const text = chunk.text();
86
- if (text) {
87
- yield { type: 'text', content: text };
88
- }
89
- }
90
- yield { type: 'done' };
91
- }
92
- catch (error) {
93
- yield { type: 'error', error: error.message || 'Unknown error' };
94
- }
95
- }
96
- async listModels() {
97
- return [
98
- { id: 'gemini-2.5-pro', name: 'Gemini 2.5 Pro', provider: this.name, contextWindow: 1048576, supportsTools: true, supportsStreaming: true },
99
- { id: 'gemini-2.5-flash', name: 'Gemini 2.5 Flash', provider: this.name, contextWindow: 1048576, supportsTools: true, supportsStreaming: true },
100
- { id: 'gemini-2.0-flash', name: 'Gemini 2.0 Flash', provider: this.name, contextWindow: 1048576, supportsTools: true, supportsStreaming: true },
101
- ];
102
- }
103
- async validateConnection() {
104
- try {
105
- const model = this.client.getGenerativeModel({ model: this.defaultModel });
106
- await model.generateContent('test');
107
- return { valid: true };
108
- }
109
- catch (error) {
110
- if (error.message?.includes('API_KEY')) {
111
- return { valid: false, error: 'Invalid API key' };
112
- }
113
- return { valid: false, error: error.message || 'Connection failed' };
114
- }
115
- }
116
- }
117
- exports.GoogleProvider = GoogleProvider;
118
- //# sourceMappingURL=google.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/providers/google.ts"],"names":[],"mappings":"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"}