azerclaw 1.0.0 → 1.0.2-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +8 -0
  2. package/bin/azerclaw.ts +575 -18
  3. package/dist/bin/azerclaw.d.ts +17 -8
  4. package/dist/bin/azerclaw.d.ts.map +1 -1
  5. package/dist/bin/azerclaw.js +506 -17
  6. package/dist/bin/azerclaw.js.map +1 -1
  7. package/dist/src/agents/builtin.js +1 -1
  8. package/dist/src/agents/builtin.js.map +1 -1
  9. package/dist/src/channels/adapter.d.ts +10 -1
  10. package/dist/src/channels/adapter.d.ts.map +1 -1
  11. package/dist/src/channels/adapter.js +89 -5
  12. package/dist/src/channels/adapter.js.map +1 -1
  13. package/dist/src/channels/pairing.d.ts +38 -0
  14. package/dist/src/channels/pairing.d.ts.map +1 -0
  15. package/dist/src/channels/pairing.js +171 -0
  16. package/dist/src/channels/pairing.js.map +1 -0
  17. package/dist/src/channels/routing.d.ts +14 -0
  18. package/dist/src/channels/routing.d.ts.map +1 -0
  19. package/dist/src/channels/routing.js +45 -0
  20. package/dist/src/channels/routing.js.map +1 -0
  21. package/dist/src/channels/security.d.ts +18 -0
  22. package/dist/src/channels/security.d.ts.map +1 -0
  23. package/dist/src/channels/security.js +80 -0
  24. package/dist/src/channels/security.js.map +1 -0
  25. package/dist/src/channels/slack.js +1 -1
  26. package/dist/src/channels/slack.js.map +1 -1
  27. package/dist/src/cli/animations/fish.d.ts +10 -7
  28. package/dist/src/cli/animations/fish.d.ts.map +1 -1
  29. package/dist/src/cli/animations/fish.js +116 -122
  30. package/dist/src/cli/animations/fish.js.map +1 -1
  31. package/dist/src/cli/commands/channels.d.ts +17 -0
  32. package/dist/src/cli/commands/channels.d.ts.map +1 -0
  33. package/dist/src/cli/commands/channels.js +173 -0
  34. package/dist/src/cli/commands/channels.js.map +1 -0
  35. package/dist/src/cli/commands/chat.d.ts +16 -0
  36. package/dist/src/cli/commands/chat.d.ts.map +1 -1
  37. package/dist/src/cli/commands/chat.js +157 -35
  38. package/dist/src/cli/commands/chat.js.map +1 -1
  39. package/dist/src/cli/commands/config.d.ts +1 -0
  40. package/dist/src/cli/commands/config.d.ts.map +1 -1
  41. package/dist/src/cli/commands/config.js +37 -11
  42. package/dist/src/cli/commands/config.js.map +1 -1
  43. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  44. package/dist/src/cli/commands/doctor.js +46 -2
  45. package/dist/src/cli/commands/doctor.js.map +1 -1
  46. package/dist/src/cli/commands/onboard.d.ts +12 -1
  47. package/dist/src/cli/commands/onboard.d.ts.map +1 -1
  48. package/dist/src/cli/commands/onboard.js +384 -64
  49. package/dist/src/cli/commands/onboard.js.map +1 -1
  50. package/dist/src/cli/commands/pairing.d.ts +7 -0
  51. package/dist/src/cli/commands/pairing.d.ts.map +1 -0
  52. package/dist/src/cli/commands/pairing.js +64 -0
  53. package/dist/src/cli/commands/pairing.js.map +1 -0
  54. package/dist/src/cli/commands/run.d.ts.map +1 -1
  55. package/dist/src/cli/commands/run.js +3 -2
  56. package/dist/src/cli/commands/run.js.map +1 -1
  57. package/dist/src/cli/commands/sandbox.d.ts +7 -0
  58. package/dist/src/cli/commands/sandbox.d.ts.map +1 -0
  59. package/dist/src/cli/commands/sandbox.js +98 -0
  60. package/dist/src/cli/commands/sandbox.js.map +1 -0
  61. package/dist/src/cli/commands/settings.d.ts +31 -0
  62. package/dist/src/cli/commands/settings.d.ts.map +1 -0
  63. package/dist/src/cli/commands/settings.js +566 -0
  64. package/dist/src/cli/commands/settings.js.map +1 -0
  65. package/dist/src/cli/commands/tui.d.ts +3 -0
  66. package/dist/src/cli/commands/tui.d.ts.map +1 -1
  67. package/dist/src/cli/commands/tui.js +212 -71
  68. package/dist/src/cli/commands/tui.js.map +1 -1
  69. package/dist/src/config/manager.d.ts +121 -9
  70. package/dist/src/config/manager.d.ts.map +1 -1
  71. package/dist/src/config/manager.js +363 -11
  72. package/dist/src/config/manager.js.map +1 -1
  73. package/dist/src/config/schema.d.ts +457 -9
  74. package/dist/src/config/schema.d.ts.map +1 -1
  75. package/dist/src/config/schema.js +117 -8
  76. package/dist/src/config/schema.js.map +1 -1
  77. package/dist/src/core/runtime.d.ts +9 -0
  78. package/dist/src/core/runtime.d.ts.map +1 -1
  79. package/dist/src/core/runtime.js +78 -24
  80. package/dist/src/core/runtime.js.map +1 -1
  81. package/dist/src/core/sandbox.d.ts +34 -0
  82. package/dist/src/core/sandbox.d.ts.map +1 -0
  83. package/dist/src/core/sandbox.js +127 -0
  84. package/dist/src/core/sandbox.js.map +1 -0
  85. package/dist/src/core/server.d.ts +15 -0
  86. package/dist/src/core/server.d.ts.map +1 -0
  87. package/dist/src/core/server.js +127 -0
  88. package/dist/src/core/server.js.map +1 -0
  89. package/dist/src/index.d.ts +4 -0
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js +4 -0
  92. package/dist/src/index.js.map +1 -1
  93. package/dist/src/providers/router.d.ts.map +1 -1
  94. package/dist/src/providers/router.js +16 -0
  95. package/dist/src/providers/router.js.map +1 -1
  96. package/dist/src/tools/advanced.d.ts.map +1 -1
  97. package/dist/src/tools/advanced.js +3 -0
  98. package/dist/src/tools/advanced.js.map +1 -1
  99. package/dist/src/tools/filesystem.d.ts.map +1 -1
  100. package/dist/src/tools/filesystem.js +4 -0
  101. package/dist/src/tools/filesystem.js.map +1 -1
  102. package/dist/src/tools/index.d.ts +9 -0
  103. package/dist/src/tools/index.d.ts.map +1 -0
  104. package/dist/src/tools/index.js +73 -0
  105. package/dist/src/tools/index.js.map +1 -0
  106. package/dist/src/tools/loader.d.ts +14 -0
  107. package/dist/src/tools/loader.d.ts.map +1 -0
  108. package/dist/src/tools/loader.js +115 -0
  109. package/dist/src/tools/loader.js.map +1 -0
  110. package/dist/src/tools/registry.d.ts +29 -1
  111. package/dist/src/tools/registry.d.ts.map +1 -1
  112. package/dist/src/tools/registry.js +84 -6
  113. package/dist/src/tools/registry.js.map +1 -1
  114. package/dist/src/tools/shell.d.ts.map +1 -1
  115. package/dist/src/tools/shell.js +1 -0
  116. package/dist/src/tools/shell.js.map +1 -1
  117. package/package.json +9 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../../../../src/cli/commands/pairing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDzG"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDzG"}
@@ -8,12 +8,12 @@ exports.runTask = runTask;
8
8
  const chalk = require('chalk');
9
9
  const gradientString = require('gradient-string');
10
10
  const { AgentRuntime } = require('../../core/runtime');
11
- const { registerAllTools } = require('./chat');
12
11
  const { FishThinkingAnimation, fishSuccess, fishError, fishBox } = require('../animations/fish');
13
12
  const LUXE = gradientString(['#c084fc', '#818cf8', '#60a5fa', '#34d399']);
14
13
  const OCEAN = gradientString(['#0ea5e9', '#06b6d4', '#14b8a6']);
15
14
  async function runTask(task, options) {
16
- registerAllTools();
15
+ const { registerAllTools } = require('../../tools/index');
16
+ await registerAllTools();
17
17
  const thinking = new FishThinkingAnimation('Working');
18
18
  let isThinking = false;
19
19
  let toolCount = 0;
@@ -21,6 +21,7 @@ async function runTask(task, options) {
21
21
  console.log(OCEAN(' ><(((º>') + chalk.dim(` Task: ${task.slice(0, 70)}${task.length > 70 ? '...' : ''}`));
22
22
  console.log('');
23
23
  const agent = new AgentRuntime({
24
+ sessionId: 'main:run',
24
25
  eventHandler: async (event) => {
25
26
  switch (event.type) {
26
27
  case 'thinking':
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function sandboxStatus(): void;
2
+ export declare function setSandboxMode(mode: string): void;
3
+ export declare function addSandboxAllowedTool(toolName: string): void;
4
+ export declare function removeSandboxAllowedTool(toolName: string): void;
5
+ export declare function addSandboxDeniedTool(toolName: string): void;
6
+ export declare function removeSandboxDeniedTool(toolName: string): void;
7
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sandbox.ts"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,IAAI,IAAI,CAgBpC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASjD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAS5D;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAa/D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAS3D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAa9D"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sandboxStatus = sandboxStatus;
4
+ exports.setSandboxMode = setSandboxMode;
5
+ exports.addSandboxAllowedTool = addSandboxAllowedTool;
6
+ exports.removeSandboxAllowedTool = removeSandboxAllowedTool;
7
+ exports.addSandboxDeniedTool = addSandboxDeniedTool;
8
+ exports.removeSandboxDeniedTool = removeSandboxDeniedTool;
9
+ const chalk = require('chalk');
10
+ const { getConfigManager } = require('../../config/manager');
11
+ const { resolveSandboxMode } = require('../../core/sandbox');
12
+ const { fishSuccess, fishError, fishBox, fishInfo } = require('../animations/fish');
13
+ const VALID_MODES = ['off', 'non-main', 'all'];
14
+ function unique(list) {
15
+ return Array.from(new Set(list.map(v => String(v || '').trim()).filter(Boolean)));
16
+ }
17
+ function sandboxStatus() {
18
+ const config = getConfigManager().getAll();
19
+ const agent = config.agent;
20
+ const mode = resolveSandboxMode(agent.sandboxMode);
21
+ const allowed = Array.isArray(agent.sandboxAllowedTools) ? agent.sandboxAllowedTools : [];
22
+ const denied = Array.isArray(agent.sandboxDeniedTools) ? agent.sandboxDeniedTools : [];
23
+ fishBox('🧱 Sandbox Isolation', [
24
+ '',
25
+ ` Mode: ${chalk.hex('#34d399')(mode)}`,
26
+ ` Allowed: ${chalk.dim(allowed.join(', ') || 'none (all except denied)')}`,
27
+ ` Denied: ${chalk.dim(denied.join(', ') || 'none')}`,
28
+ '',
29
+ chalk.dim('Main sessions are session IDs "main" or "main:*".'),
30
+ '',
31
+ ]);
32
+ }
33
+ function setSandboxMode(mode) {
34
+ if (!VALID_MODES.includes(mode)) {
35
+ fishError(`Invalid sandbox mode: ${mode}. Use one of: ${VALID_MODES.join(', ')}`);
36
+ return;
37
+ }
38
+ const config = getConfigManager();
39
+ config.set('agent.sandboxMode', mode);
40
+ fishSuccess(`Sandbox mode set to ${mode}`);
41
+ }
42
+ function addSandboxAllowedTool(toolName) {
43
+ const config = getConfigManager();
44
+ const all = config.getAll();
45
+ const current = Array.isArray(all.agent.sandboxAllowedTools)
46
+ ? all.agent.sandboxAllowedTools
47
+ : [];
48
+ const next = unique([...current, toolName]);
49
+ config.set('agent.sandboxAllowedTools', next);
50
+ fishSuccess(`Added allowed tool: ${toolName}`);
51
+ }
52
+ function removeSandboxAllowedTool(toolName) {
53
+ const config = getConfigManager();
54
+ const all = config.getAll();
55
+ const current = Array.isArray(all.agent.sandboxAllowedTools)
56
+ ? all.agent.sandboxAllowedTools
57
+ : [];
58
+ const next = current.filter((t) => t !== toolName);
59
+ if (next.length === current.length) {
60
+ fishError(`Tool not in allowed list: ${toolName}`);
61
+ return;
62
+ }
63
+ config.set('agent.sandboxAllowedTools', next);
64
+ fishInfo(`Removed allowed tool: ${toolName}`);
65
+ }
66
+ function addSandboxDeniedTool(toolName) {
67
+ const config = getConfigManager();
68
+ const all = config.getAll();
69
+ const current = Array.isArray(all.agent.sandboxDeniedTools)
70
+ ? all.agent.sandboxDeniedTools
71
+ : [];
72
+ const next = unique([...current, toolName]);
73
+ config.set('agent.sandboxDeniedTools', next);
74
+ fishSuccess(`Added denied tool: ${toolName}`);
75
+ }
76
+ function removeSandboxDeniedTool(toolName) {
77
+ const config = getConfigManager();
78
+ const all = config.getAll();
79
+ const current = Array.isArray(all.agent.sandboxDeniedTools)
80
+ ? all.agent.sandboxDeniedTools
81
+ : [];
82
+ const next = current.filter((t) => t !== toolName);
83
+ if (next.length === current.length) {
84
+ fishError(`Tool not in denied list: ${toolName}`);
85
+ return;
86
+ }
87
+ config.set('agent.sandboxDeniedTools', next);
88
+ fishInfo(`Removed denied tool: ${toolName}`);
89
+ }
90
+ module.exports = {
91
+ sandboxStatus,
92
+ setSandboxMode,
93
+ addSandboxAllowedTool,
94
+ removeSandboxAllowedTool,
95
+ addSandboxDeniedTool,
96
+ removeSandboxDeniedTool,
97
+ };
98
+ //# sourceMappingURL=sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../../src/cli/commands/sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 🐟 AZERCLAW Interactive Settings
3
+ * Mid-session provider, model, API key, and config switching.
4
+ *
5
+ * Provides all in-session slash commands:
6
+ * /config — Tabbed interactive settings menu
7
+ * /model — Switch model (with model picker)
8
+ * /provider — Switch provider
9
+ * /apikey — Change an API key
10
+ * /status — Show current status
11
+ * /init — Initialize project settings
12
+ * /compact — Compact conversation context
13
+ * /fallback — Configure fallback provider
14
+ *
15
+ * Also provides CLI helpers for non-interactive usage:
16
+ * azerclaw config provider [name]
17
+ * azerclaw config model [id]
18
+ * azerclaw config apikey [provider] [key]
19
+ */
20
+ export declare function showStatus(): void;
21
+ export declare function interactiveSettingsMenu(): Promise<void>;
22
+ export declare function interactiveProviderSwitch(): Promise<boolean>;
23
+ export declare function interactiveModelSwitch(): Promise<boolean>;
24
+ export declare function interactiveApiKeyChange(): Promise<boolean>;
25
+ export declare function interactiveFallbackConfig(): Promise<boolean>;
26
+ export declare function initProject(): void;
27
+ export declare function cliSwitchProvider(providerName: string): void;
28
+ export declare function cliSwitchModel(modelId: string, providerName?: string): void;
29
+ export declare function cliSetApiKey(providerName: string, apiKey: string): void;
30
+ export declare function cliSetFallback(providerName: string): void;
31
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmFH,wBAAgB,UAAU,IAAI,IAAI,CAoBjC;AAID,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C7D;AAID,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAiElE;AAID,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAiD/D;AAID,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAwChE;AAID,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAmDlE;AA+GD,wBAAgB,WAAW,IAAI,IAAI,CAelC;AAID,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAU5D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAM3E;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKvE;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAiBzD"}