@dexto/agent-management 1.3.0 → 1.5.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 (94) hide show
  1. package/dist/AgentFactory.cjs +152 -0
  2. package/dist/AgentFactory.d.ts +121 -0
  3. package/dist/AgentFactory.d.ts.map +1 -0
  4. package/dist/AgentFactory.js +132 -0
  5. package/dist/AgentManager.cjs +226 -0
  6. package/dist/AgentManager.d.ts +191 -0
  7. package/dist/AgentManager.d.ts.map +1 -0
  8. package/dist/AgentManager.js +192 -0
  9. package/dist/config/config-enrichment.cjs +23 -3
  10. package/dist/config/config-enrichment.d.ts +20 -5
  11. package/dist/config/config-enrichment.d.ts.map +1 -1
  12. package/dist/config/config-enrichment.js +22 -3
  13. package/dist/config/config-manager.cjs +340 -3
  14. package/dist/config/config-manager.d.ts +158 -7
  15. package/dist/config/config-manager.d.ts.map +1 -1
  16. package/dist/config/config-manager.js +325 -3
  17. package/dist/config/discover-prompts.cjs +103 -0
  18. package/dist/config/discover-prompts.d.ts +28 -0
  19. package/dist/config/discover-prompts.d.ts.map +1 -0
  20. package/dist/config/discover-prompts.js +73 -0
  21. package/dist/config/errors.cjs +2 -2
  22. package/dist/config/errors.js +2 -2
  23. package/dist/config/index.cjs +14 -2
  24. package/dist/config/index.d.ts +2 -2
  25. package/dist/config/index.d.ts.map +1 -1
  26. package/dist/config/index.js +21 -3
  27. package/dist/index.cjs +109 -6
  28. package/dist/index.d.ts +9 -6
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +111 -6
  31. package/dist/installation.cjs +239 -0
  32. package/dist/installation.d.ts +72 -0
  33. package/dist/installation.d.ts.map +1 -0
  34. package/dist/installation.js +202 -0
  35. package/dist/models/custom-models.cjs +157 -0
  36. package/dist/models/custom-models.d.ts +94 -0
  37. package/dist/models/custom-models.d.ts.map +1 -0
  38. package/dist/models/custom-models.js +117 -0
  39. package/dist/models/index.cjs +89 -0
  40. package/dist/models/index.d.ts +11 -0
  41. package/dist/models/index.d.ts.map +1 -0
  42. package/dist/models/index.js +68 -0
  43. package/dist/models/path-resolver.cjs +154 -0
  44. package/dist/models/path-resolver.d.ts +77 -0
  45. package/dist/models/path-resolver.d.ts.map +1 -0
  46. package/dist/models/path-resolver.js +108 -0
  47. package/dist/models/state-manager.cjs +220 -0
  48. package/dist/models/state-manager.d.ts +138 -0
  49. package/dist/models/state-manager.d.ts.map +1 -0
  50. package/dist/models/state-manager.js +184 -0
  51. package/dist/preferences/error-codes.cjs +2 -0
  52. package/dist/preferences/error-codes.d.ts +3 -1
  53. package/dist/preferences/error-codes.d.ts.map +1 -1
  54. package/dist/preferences/error-codes.js +2 -0
  55. package/dist/preferences/index.d.ts +1 -1
  56. package/dist/preferences/index.d.ts.map +1 -1
  57. package/dist/preferences/loader.cjs +32 -6
  58. package/dist/preferences/loader.d.ts +23 -4
  59. package/dist/preferences/loader.d.ts.map +1 -1
  60. package/dist/preferences/loader.js +32 -6
  61. package/dist/preferences/schemas.cjs +21 -3
  62. package/dist/preferences/schemas.d.ts +52 -24
  63. package/dist/preferences/schemas.d.ts.map +1 -1
  64. package/dist/preferences/schemas.js +28 -4
  65. package/dist/registry/registry.cjs +28 -45
  66. package/dist/registry/registry.d.ts +8 -6
  67. package/dist/registry/registry.d.ts.map +1 -1
  68. package/dist/registry/registry.js +26 -44
  69. package/dist/registry/types.d.ts +11 -13
  70. package/dist/registry/types.d.ts.map +1 -1
  71. package/dist/resolver.cjs +82 -43
  72. package/dist/resolver.d.ts +7 -5
  73. package/dist/resolver.d.ts.map +1 -1
  74. package/dist/resolver.js +83 -44
  75. package/dist/utils/api-key-resolver.cjs +19 -1
  76. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  77. package/dist/utils/api-key-resolver.js +19 -1
  78. package/dist/utils/api-key-store.cjs +46 -0
  79. package/dist/utils/api-key-store.d.ts +27 -0
  80. package/dist/utils/api-key-store.d.ts.map +1 -1
  81. package/dist/utils/api-key-store.js +44 -0
  82. package/dist/utils/env-file.cjs +20 -68
  83. package/dist/utils/env-file.d.ts +2 -1
  84. package/dist/utils/env-file.d.ts.map +1 -1
  85. package/dist/utils/env-file.js +20 -68
  86. package/dist/writer.cjs +20 -2
  87. package/dist/writer.d.ts +1 -0
  88. package/dist/writer.d.ts.map +1 -1
  89. package/dist/writer.js +20 -2
  90. package/package.json +2 -2
  91. package/dist/AgentOrchestrator.cjs +0 -263
  92. package/dist/AgentOrchestrator.d.ts +0 -191
  93. package/dist/AgentOrchestrator.d.ts.map +0 -1
  94. package/dist/AgentOrchestrator.js +0 -239
package/dist/index.cjs CHANGED
@@ -18,47 +18,97 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var index_exports = {};
20
20
  __export(index_exports, {
21
- AgentOrchestrator: () => import_AgentOrchestrator.AgentOrchestrator,
21
+ AgentFactory: () => import_AgentFactory.AgentFactory,
22
+ AgentManager: () => import_AgentManager.AgentManager,
23
+ CUSTOM_MODEL_PROVIDERS: () => import_custom_models.CUSTOM_MODEL_PROVIDERS,
22
24
  ConfigError: () => import_config.ConfigError,
23
25
  ConfigErrorCode: () => import_config.ConfigErrorCode,
24
- Dexto: () => import_AgentOrchestrator2.AgentOrchestrator,
26
+ CustomModelSchema: () => import_custom_models.CustomModelSchema,
25
27
  PROVIDER_API_KEY_MAP: () => import_api_key_resolver.PROVIDER_API_KEY_MAP,
26
28
  PreferenceError: () => import_errors2.PreferenceError,
27
29
  PreferenceErrorCode: () => import_errors2.PreferenceErrorCode,
28
30
  RegistryError: () => import_errors.RegistryError,
29
31
  RegistryErrorCode: () => import_error_codes.RegistryErrorCode,
32
+ SHARED_API_KEY_PROVIDERS: () => import_api_key_store.SHARED_API_KEY_PROVIDERS,
33
+ addInstalledModel: () => import_models.addInstalledModel,
34
+ addPromptToAgentConfig: () => import_config.addPromptToAgentConfig,
35
+ addToDownloadQueue: () => import_models.addToDownloadQueue,
30
36
  copyDirectory: () => import_path.copyDirectory,
31
37
  createInitialPreferences: () => import_loader.createInitialPreferences,
38
+ deleteCustomModel: () => import_custom_models.deleteCustomModel,
39
+ deleteModelDirectory: () => import_models.deleteModelDirectory,
40
+ deletePromptByMetadata: () => import_config.deletePromptByMetadata,
32
41
  deriveAgentId: () => import_config.deriveAgentId,
33
42
  deriveDisplayName: () => import_types.deriveDisplayName,
43
+ determineApiKeyStorage: () => import_api_key_store.determineApiKeyStorage,
34
44
  enrichAgentConfig: () => import_config.enrichAgentConfig,
35
45
  ensureDextoGlobalDirectory: () => import_path.ensureDextoGlobalDirectory,
46
+ ensureModelDirectory: () => import_models.ensureModelDirectory,
47
+ ensureModelsDirectory: () => import_models.ensureModelsDirectory,
36
48
  findDextoProjectRoot: () => import_execution_context.findDextoProjectRoot,
37
49
  findDextoSourceRoot: () => import_execution_context.findDextoSourceRoot,
38
50
  findPackageRoot: () => import_path.findPackageRoot,
51
+ formatSize: () => import_models.formatSize,
52
+ getActiveModel: () => import_models.getActiveModel,
53
+ getActiveModelId: () => import_models.getActiveModelId,
39
54
  getAgentRegistry: () => import_registry.getAgentRegistry,
55
+ getAllInstalledModels: () => import_models.getAllInstalledModels,
56
+ getCustomModel: () => import_custom_models.getCustomModel,
57
+ getCustomModelsPath: () => import_custom_models.getCustomModelsPath,
40
58
  getDextoEnvPath: () => import_path.getDextoEnvPath,
41
59
  getDextoGlobalPath: () => import_path.getDextoGlobalPath,
42
60
  getDextoPath: () => import_path.getDextoPath,
61
+ getDownloadQueue: () => import_models.getDownloadQueue,
43
62
  getExecutionContext: () => import_execution_context.getExecutionContext,
44
63
  getGlobalPreferencesPath: () => import_loader.getGlobalPreferencesPath,
64
+ getInstalledModel: () => import_models.getInstalledModel,
65
+ getInstalledModelCount: () => import_models.getInstalledModelCount,
66
+ getModelDirectory: () => import_models.getModelDirectory,
67
+ getModelFilePath: () => import_models.getModelFilePath,
68
+ getModelFileSize: () => import_models.getModelFileSize,
69
+ getModelStatePath: () => import_models.getModelStatePath,
70
+ getModelTempDirectory: () => import_models.getModelTempDirectory,
71
+ getModelsDirectory: () => import_models.getModelsDirectory,
72
+ getModelsDiskUsage: () => import_models.getModelsDiskUsage,
45
73
  getPrimaryApiKeyEnvVar: () => import_api_key_resolver.getPrimaryApiKeyEnvVar,
46
74
  getProviderKeyStatus: () => import_api_key_store.getProviderKeyStatus,
75
+ getTotalInstalledSize: () => import_models.getTotalInstalledSize,
47
76
  globalPreferencesExist: () => import_loader.globalPreferencesExist,
77
+ installBundledAgent: () => import_installation.installBundledAgent,
78
+ installCustomAgent: () => import_installation.installCustomAgent,
79
+ isModelInstalled: () => import_models.isModelInstalled,
48
80
  isPath: () => import_path.isPath,
81
+ listInstalledAgents: () => import_installation.listInstalledAgents,
82
+ listModelDirectories: () => import_models.listModelDirectories,
49
83
  listProviderKeyStatus: () => import_api_key_store.listProviderKeyStatus,
50
84
  loadAgentConfig: () => import_config.loadAgentConfig,
85
+ loadBundledRegistryAgents: () => import_registry.loadBundledRegistryAgents,
86
+ loadCustomModels: () => import_custom_models.loadCustomModels,
51
87
  loadGlobalPreferences: () => import_loader.loadGlobalPreferences,
88
+ loadModelState: () => import_models.loadModelState,
89
+ modelFileExists: () => import_models.modelFileExists,
90
+ registerManualModel: () => import_models.registerManualModel,
52
91
  reloadAgentConfigFromFile: () => import_config.reloadAgentConfigFromFile,
92
+ removeFromDownloadQueue: () => import_models.removeFromDownloadQueue,
93
+ removeInstalledModel: () => import_models.removeInstalledModel,
94
+ removeMcpServerFromConfig: () => import_config.removeMcpServerFromConfig,
95
+ removePromptFromAgentConfig: () => import_config.removePromptFromAgentConfig,
53
96
  resolveAgentPath: () => import_resolver.resolveAgentPath,
54
97
  resolveApiKeyForProvider: () => import_api_key_resolver.resolveApiKeyForProvider,
55
98
  resolveBundledScript: () => import_path.resolveBundledScript,
99
+ saveCustomModel: () => import_custom_models.saveCustomModel,
56
100
  saveGlobalPreferences: () => import_loader.saveGlobalPreferences,
101
+ saveModelState: () => import_models.saveModelState,
57
102
  saveProviderApiKey: () => import_api_key_store.saveProviderApiKey,
103
+ setActiveModel: () => import_models.setActiveModel,
104
+ syncStateWithFilesystem: () => import_models.syncStateWithFilesystem,
105
+ uninstallAgent: () => import_installation.uninstallAgent,
58
106
  updateAgentConfigFile: () => import_config.updateAgentConfigFile,
59
107
  updateDefaultAgentPreference: () => import_resolver.updateDefaultAgentPreference,
60
108
  updateEnvFile: () => import_env_file.updateEnvFile,
61
109
  updateGlobalPreferences: () => import_loader.updateGlobalPreferences,
110
+ updateMcpServerField: () => import_config.updateMcpServerField,
111
+ updateModelLastUsed: () => import_models.updateModelLastUsed,
62
112
  walkUpDirectories: () => import_fs_walk.walkUpDirectories,
63
113
  writeConfigFile: () => import_writer.writeConfigFile,
64
114
  writeLLMPreferences: () => import_writer.writeLLMPreferences,
@@ -73,8 +123,9 @@ var import_loader = require("./preferences/loader.js");
73
123
  var import_errors2 = require("./preferences/errors.js");
74
124
  var import_resolver = require("./resolver.js");
75
125
  var import_writer = require("./writer.js");
76
- var import_AgentOrchestrator = require("./AgentOrchestrator.js");
77
- var import_AgentOrchestrator2 = require("./AgentOrchestrator.js");
126
+ var import_AgentManager = require("./AgentManager.js");
127
+ var import_installation = require("./installation.js");
128
+ var import_AgentFactory = require("./AgentFactory.js");
78
129
  var import_path = require("./utils/path.js");
79
130
  var import_execution_context = require("./utils/execution-context.js");
80
131
  var import_fs_walk = require("./utils/fs-walk.js");
@@ -82,49 +133,101 @@ var import_env_file = require("./utils/env-file.js");
82
133
  var import_config = require("./config/index.js");
83
134
  var import_api_key_store = require("./utils/api-key-store.js");
84
135
  var import_api_key_resolver = require("./utils/api-key-resolver.js");
136
+ var import_custom_models = require("./models/custom-models.js");
137
+ var import_models = require("./models/index.js");
85
138
  // Annotate the CommonJS export names for ESM import in node:
86
139
  0 && (module.exports = {
87
- AgentOrchestrator,
140
+ AgentFactory,
141
+ AgentManager,
142
+ CUSTOM_MODEL_PROVIDERS,
88
143
  ConfigError,
89
144
  ConfigErrorCode,
90
- Dexto,
145
+ CustomModelSchema,
91
146
  PROVIDER_API_KEY_MAP,
92
147
  PreferenceError,
93
148
  PreferenceErrorCode,
94
149
  RegistryError,
95
150
  RegistryErrorCode,
151
+ SHARED_API_KEY_PROVIDERS,
152
+ addInstalledModel,
153
+ addPromptToAgentConfig,
154
+ addToDownloadQueue,
96
155
  copyDirectory,
97
156
  createInitialPreferences,
157
+ deleteCustomModel,
158
+ deleteModelDirectory,
159
+ deletePromptByMetadata,
98
160
  deriveAgentId,
99
161
  deriveDisplayName,
162
+ determineApiKeyStorage,
100
163
  enrichAgentConfig,
101
164
  ensureDextoGlobalDirectory,
165
+ ensureModelDirectory,
166
+ ensureModelsDirectory,
102
167
  findDextoProjectRoot,
103
168
  findDextoSourceRoot,
104
169
  findPackageRoot,
170
+ formatSize,
171
+ getActiveModel,
172
+ getActiveModelId,
105
173
  getAgentRegistry,
174
+ getAllInstalledModels,
175
+ getCustomModel,
176
+ getCustomModelsPath,
106
177
  getDextoEnvPath,
107
178
  getDextoGlobalPath,
108
179
  getDextoPath,
180
+ getDownloadQueue,
109
181
  getExecutionContext,
110
182
  getGlobalPreferencesPath,
183
+ getInstalledModel,
184
+ getInstalledModelCount,
185
+ getModelDirectory,
186
+ getModelFilePath,
187
+ getModelFileSize,
188
+ getModelStatePath,
189
+ getModelTempDirectory,
190
+ getModelsDirectory,
191
+ getModelsDiskUsage,
111
192
  getPrimaryApiKeyEnvVar,
112
193
  getProviderKeyStatus,
194
+ getTotalInstalledSize,
113
195
  globalPreferencesExist,
196
+ installBundledAgent,
197
+ installCustomAgent,
198
+ isModelInstalled,
114
199
  isPath,
200
+ listInstalledAgents,
201
+ listModelDirectories,
115
202
  listProviderKeyStatus,
116
203
  loadAgentConfig,
204
+ loadBundledRegistryAgents,
205
+ loadCustomModels,
117
206
  loadGlobalPreferences,
207
+ loadModelState,
208
+ modelFileExists,
209
+ registerManualModel,
118
210
  reloadAgentConfigFromFile,
211
+ removeFromDownloadQueue,
212
+ removeInstalledModel,
213
+ removeMcpServerFromConfig,
214
+ removePromptFromAgentConfig,
119
215
  resolveAgentPath,
120
216
  resolveApiKeyForProvider,
121
217
  resolveBundledScript,
218
+ saveCustomModel,
122
219
  saveGlobalPreferences,
220
+ saveModelState,
123
221
  saveProviderApiKey,
222
+ setActiveModel,
223
+ syncStateWithFilesystem,
224
+ uninstallAgent,
124
225
  updateAgentConfigFile,
125
226
  updateDefaultAgentPreference,
126
227
  updateEnvFile,
127
228
  updateGlobalPreferences,
229
+ updateMcpServerField,
230
+ updateModelLastUsed,
128
231
  walkUpDirectories,
129
232
  writeConfigFile,
130
233
  writeLLMPreferences,
package/dist/index.d.ts CHANGED
@@ -1,20 +1,23 @@
1
- export { getAgentRegistry } from './registry/registry.js';
1
+ export { getAgentRegistry, loadBundledRegistryAgents } from './registry/registry.js';
2
2
  export type { AgentRegistry, AgentRegistryEntry, Registry } from './registry/types.js';
3
3
  export { deriveDisplayName } from './registry/types.js';
4
4
  export { RegistryError } from './registry/errors.js';
5
5
  export { RegistryErrorCode } from './registry/error-codes.js';
6
- export { loadGlobalPreferences, saveGlobalPreferences, globalPreferencesExist, getGlobalPreferencesPath, createInitialPreferences, updateGlobalPreferences, type GlobalPreferencesUpdates, } from './preferences/loader.js';
6
+ export { loadGlobalPreferences, saveGlobalPreferences, globalPreferencesExist, getGlobalPreferencesPath, createInitialPreferences, updateGlobalPreferences, type GlobalPreferencesUpdates, type CreatePreferencesOptions, } from './preferences/loader.js';
7
7
  export type { GlobalPreferences } from './preferences/schemas.js';
8
8
  export { PreferenceError, PreferenceErrorCode } from './preferences/errors.js';
9
9
  export { resolveAgentPath, updateDefaultAgentPreference } from './resolver.js';
10
10
  export { writeConfigFile, writeLLMPreferences, writePreferencesToAgent, type LLMOverrides, } from './writer.js';
11
- export { AgentOrchestrator } from './AgentOrchestrator.js';
12
- export { AgentOrchestrator as Dexto } from './AgentOrchestrator.js';
11
+ export { AgentManager, type AgentMetadata } from './AgentManager.js';
12
+ export { installBundledAgent, installCustomAgent, uninstallAgent, listInstalledAgents, type InstallOptions, } from './installation.js';
13
+ export { AgentFactory, type CreateAgentOptions } from './AgentFactory.js';
13
14
  export { getDextoPath, getDextoGlobalPath, getDextoEnvPath, copyDirectory, isPath, findPackageRoot, resolveBundledScript, ensureDextoGlobalDirectory, } from './utils/path.js';
14
15
  export { getExecutionContext, findDextoSourceRoot, findDextoProjectRoot, type ExecutionContext, } from './utils/execution-context.js';
15
16
  export { walkUpDirectories } from './utils/fs-walk.js';
16
17
  export { updateEnvFile } from './utils/env-file.js';
17
- export { updateAgentConfigFile, reloadAgentConfigFromFile, loadAgentConfig, enrichAgentConfig, deriveAgentId, ConfigError, ConfigErrorCode, } from './config/index.js';
18
- export { saveProviderApiKey, getProviderKeyStatus, listProviderKeyStatus, } from './utils/api-key-store.js';
18
+ export { updateAgentConfigFile, reloadAgentConfigFromFile, loadAgentConfig, enrichAgentConfig, deriveAgentId, addPromptToAgentConfig, removePromptFromAgentConfig, deletePromptByMetadata, updateMcpServerField, removeMcpServerFromConfig, ConfigError, ConfigErrorCode, type FilePromptInput, type InlinePromptInput, type PromptInput, type PromptMetadataForDeletion, type PromptDeletionResult, } from './config/index.js';
19
+ export { saveProviderApiKey, getProviderKeyStatus, listProviderKeyStatus, determineApiKeyStorage, SHARED_API_KEY_PROVIDERS, type ApiKeyStorageStrategy, } from './utils/api-key-store.js';
19
20
  export { resolveApiKeyForProvider, getPrimaryApiKeyEnvVar, PROVIDER_API_KEY_MAP, } from './utils/api-key-resolver.js';
21
+ export { loadCustomModels, saveCustomModel, deleteCustomModel, getCustomModel, getCustomModelsPath, CustomModelSchema, CUSTOM_MODEL_PROVIDERS, type CustomModel, type CustomModelProvider, } from './models/custom-models.js';
22
+ export { getModelsDirectory, getModelFilePath, getModelDirectory, getModelStatePath, getModelTempDirectory, ensureModelsDirectory, ensureModelDirectory, modelFileExists, getModelFileSize, deleteModelDirectory, listModelDirectories, getModelsDiskUsage, formatSize, type ModelSource, type InstalledModel, type ModelState, loadModelState, saveModelState, addInstalledModel, removeInstalledModel, getInstalledModel, getAllInstalledModels, isModelInstalled, updateModelLastUsed, setActiveModel, getActiveModelId, getActiveModel, addToDownloadQueue, removeFromDownloadQueue, getDownloadQueue, syncStateWithFilesystem, getTotalInstalledSize, getInstalledModelCount, registerManualModel, } from './models/index.js';
20
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,wBAAwB,GAChC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAG/E,OAAO,EACH,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,YAAY,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,iBAAiB,IAAI,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,0BAA0B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,gBAAgB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EACH,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,eAAe,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getAgentRegistry } from "./registry/registry.js";
1
+ import { getAgentRegistry, loadBundledRegistryAgents } from "./registry/registry.js";
2
2
  import { deriveDisplayName } from "./registry/types.js";
3
3
  import { RegistryError } from "./registry/errors.js";
4
4
  import { RegistryErrorCode } from "./registry/error-codes.js";
@@ -17,8 +17,14 @@ import {
17
17
  writeLLMPreferences,
18
18
  writePreferencesToAgent
19
19
  } from "./writer.js";
20
- import { AgentOrchestrator } from "./AgentOrchestrator.js";
21
- import { AgentOrchestrator as AgentOrchestrator2 } from "./AgentOrchestrator.js";
20
+ import { AgentManager } from "./AgentManager.js";
21
+ import {
22
+ installBundledAgent,
23
+ installCustomAgent,
24
+ uninstallAgent,
25
+ listInstalledAgents
26
+ } from "./installation.js";
27
+ import { AgentFactory } from "./AgentFactory.js";
22
28
  import {
23
29
  getDextoPath,
24
30
  getDextoGlobalPath,
@@ -42,61 +48,160 @@ import {
42
48
  loadAgentConfig,
43
49
  enrichAgentConfig,
44
50
  deriveAgentId,
51
+ addPromptToAgentConfig,
52
+ removePromptFromAgentConfig,
53
+ deletePromptByMetadata,
54
+ updateMcpServerField,
55
+ removeMcpServerFromConfig,
45
56
  ConfigError,
46
57
  ConfigErrorCode
47
58
  } from "./config/index.js";
48
59
  import {
49
60
  saveProviderApiKey,
50
61
  getProviderKeyStatus,
51
- listProviderKeyStatus
62
+ listProviderKeyStatus,
63
+ determineApiKeyStorage,
64
+ SHARED_API_KEY_PROVIDERS
52
65
  } from "./utils/api-key-store.js";
53
66
  import {
54
67
  resolveApiKeyForProvider,
55
68
  getPrimaryApiKeyEnvVar,
56
69
  PROVIDER_API_KEY_MAP
57
70
  } from "./utils/api-key-resolver.js";
71
+ import {
72
+ loadCustomModels,
73
+ saveCustomModel,
74
+ deleteCustomModel,
75
+ getCustomModel,
76
+ getCustomModelsPath,
77
+ CustomModelSchema,
78
+ CUSTOM_MODEL_PROVIDERS
79
+ } from "./models/custom-models.js";
80
+ import {
81
+ getModelsDirectory,
82
+ getModelFilePath,
83
+ getModelDirectory,
84
+ getModelStatePath,
85
+ getModelTempDirectory,
86
+ ensureModelsDirectory,
87
+ ensureModelDirectory,
88
+ modelFileExists,
89
+ getModelFileSize,
90
+ deleteModelDirectory,
91
+ listModelDirectories,
92
+ getModelsDiskUsage,
93
+ formatSize,
94
+ loadModelState,
95
+ saveModelState,
96
+ addInstalledModel,
97
+ removeInstalledModel,
98
+ getInstalledModel,
99
+ getAllInstalledModels,
100
+ isModelInstalled,
101
+ updateModelLastUsed,
102
+ setActiveModel,
103
+ getActiveModelId,
104
+ getActiveModel,
105
+ addToDownloadQueue,
106
+ removeFromDownloadQueue,
107
+ getDownloadQueue,
108
+ syncStateWithFilesystem,
109
+ getTotalInstalledSize,
110
+ getInstalledModelCount,
111
+ registerManualModel
112
+ } from "./models/index.js";
58
113
  export {
59
- AgentOrchestrator,
114
+ AgentFactory,
115
+ AgentManager,
116
+ CUSTOM_MODEL_PROVIDERS,
60
117
  ConfigError,
61
118
  ConfigErrorCode,
62
- AgentOrchestrator2 as Dexto,
119
+ CustomModelSchema,
63
120
  PROVIDER_API_KEY_MAP,
64
121
  PreferenceError,
65
122
  PreferenceErrorCode,
66
123
  RegistryError,
67
124
  RegistryErrorCode,
125
+ SHARED_API_KEY_PROVIDERS,
126
+ addInstalledModel,
127
+ addPromptToAgentConfig,
128
+ addToDownloadQueue,
68
129
  copyDirectory,
69
130
  createInitialPreferences,
131
+ deleteCustomModel,
132
+ deleteModelDirectory,
133
+ deletePromptByMetadata,
70
134
  deriveAgentId,
71
135
  deriveDisplayName,
136
+ determineApiKeyStorage,
72
137
  enrichAgentConfig,
73
138
  ensureDextoGlobalDirectory,
139
+ ensureModelDirectory,
140
+ ensureModelsDirectory,
74
141
  findDextoProjectRoot,
75
142
  findDextoSourceRoot,
76
143
  findPackageRoot,
144
+ formatSize,
145
+ getActiveModel,
146
+ getActiveModelId,
77
147
  getAgentRegistry,
148
+ getAllInstalledModels,
149
+ getCustomModel,
150
+ getCustomModelsPath,
78
151
  getDextoEnvPath,
79
152
  getDextoGlobalPath,
80
153
  getDextoPath,
154
+ getDownloadQueue,
81
155
  getExecutionContext,
82
156
  getGlobalPreferencesPath,
157
+ getInstalledModel,
158
+ getInstalledModelCount,
159
+ getModelDirectory,
160
+ getModelFilePath,
161
+ getModelFileSize,
162
+ getModelStatePath,
163
+ getModelTempDirectory,
164
+ getModelsDirectory,
165
+ getModelsDiskUsage,
83
166
  getPrimaryApiKeyEnvVar,
84
167
  getProviderKeyStatus,
168
+ getTotalInstalledSize,
85
169
  globalPreferencesExist,
170
+ installBundledAgent,
171
+ installCustomAgent,
172
+ isModelInstalled,
86
173
  isPath,
174
+ listInstalledAgents,
175
+ listModelDirectories,
87
176
  listProviderKeyStatus,
88
177
  loadAgentConfig,
178
+ loadBundledRegistryAgents,
179
+ loadCustomModels,
89
180
  loadGlobalPreferences,
181
+ loadModelState,
182
+ modelFileExists,
183
+ registerManualModel,
90
184
  reloadAgentConfigFromFile,
185
+ removeFromDownloadQueue,
186
+ removeInstalledModel,
187
+ removeMcpServerFromConfig,
188
+ removePromptFromAgentConfig,
91
189
  resolveAgentPath,
92
190
  resolveApiKeyForProvider,
93
191
  resolveBundledScript,
192
+ saveCustomModel,
94
193
  saveGlobalPreferences,
194
+ saveModelState,
95
195
  saveProviderApiKey,
196
+ setActiveModel,
197
+ syncStateWithFilesystem,
198
+ uninstallAgent,
96
199
  updateAgentConfigFile,
97
200
  updateDefaultAgentPreference,
98
201
  updateEnvFile,
99
202
  updateGlobalPreferences,
203
+ updateMcpServerField,
204
+ updateModelLastUsed,
100
205
  walkUpDirectories,
101
206
  writeConfigFile,
102
207
  writeLLMPreferences,
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var installation_exports = {};
30
+ __export(installation_exports, {
31
+ installBundledAgent: () => installBundledAgent,
32
+ installCustomAgent: () => installCustomAgent,
33
+ listInstalledAgents: () => listInstalledAgents,
34
+ uninstallAgent: () => uninstallAgent
35
+ });
36
+ module.exports = __toCommonJS(installation_exports);
37
+ var import_fs = require("fs");
38
+ var import_path = __toESM(require("path"), 1);
39
+ var import_core = require("@dexto/core");
40
+ var import_path2 = require("./utils/path.js");
41
+ var import_errors = require("./registry/errors.js");
42
+ var import_errors2 = require("./config/errors.js");
43
+ function getAgentsDir(options) {
44
+ return options?.agentsDir ?? (0, import_path2.getDextoGlobalPath)("agents");
45
+ }
46
+ function getUserRegistryPath(agentsDir) {
47
+ return import_path.default.join(agentsDir, "registry.json");
48
+ }
49
+ async function loadUserRegistry(registryPath) {
50
+ try {
51
+ const content = await import_fs.promises.readFile(registryPath, "utf-8");
52
+ return JSON.parse(content);
53
+ } catch (error) {
54
+ if (error.code === "ENOENT") {
55
+ return { agents: [] };
56
+ }
57
+ throw error;
58
+ }
59
+ }
60
+ async function saveUserRegistry(registryPath, registry) {
61
+ await import_fs.promises.mkdir(import_path.default.dirname(registryPath), { recursive: true });
62
+ await import_fs.promises.writeFile(registryPath, JSON.stringify(registry, null, 2));
63
+ }
64
+ async function installBundledAgent(agentId, options) {
65
+ const agentsDir = getAgentsDir(options);
66
+ const bundledRegistryPath = (0, import_path2.resolveBundledScript)("agents/agent-registry.json");
67
+ import_core.logger.info(`Installing agent: ${agentId}`);
68
+ let bundledRegistry;
69
+ try {
70
+ const content = await import_fs.promises.readFile(bundledRegistryPath, "utf-8");
71
+ bundledRegistry = JSON.parse(content);
72
+ } catch (error) {
73
+ throw import_errors.RegistryError.registryParseError(
74
+ bundledRegistryPath,
75
+ error instanceof Error ? error.message : String(error)
76
+ );
77
+ }
78
+ const agentEntry = bundledRegistry.agents[agentId];
79
+ if (!agentEntry) {
80
+ const available = Object.keys(bundledRegistry.agents);
81
+ throw import_errors.RegistryError.agentNotFound(agentId, available);
82
+ }
83
+ const targetDir = import_path.default.join(agentsDir, agentId);
84
+ try {
85
+ await import_fs.promises.access(targetDir);
86
+ import_core.logger.info(`Agent '${agentId}' already installed`);
87
+ const mainFile = agentEntry.main || import_path.default.basename(agentEntry.source);
88
+ return import_path.default.join(targetDir, mainFile);
89
+ } catch {
90
+ }
91
+ await import_fs.promises.mkdir(agentsDir, { recursive: true });
92
+ const sourcePath = (0, import_path2.resolveBundledScript)(`agents/${agentEntry.source}`);
93
+ const tempDir = `${targetDir}.tmp.${Date.now()}`;
94
+ try {
95
+ if (agentEntry.source.endsWith("/")) {
96
+ await (0, import_path2.copyDirectory)(sourcePath, tempDir);
97
+ } else {
98
+ await import_fs.promises.mkdir(tempDir, { recursive: true });
99
+ const targetFile = import_path.default.join(tempDir, import_path.default.basename(sourcePath));
100
+ await import_fs.promises.copyFile(sourcePath, targetFile);
101
+ }
102
+ await import_fs.promises.rename(tempDir, targetDir);
103
+ import_core.logger.info(`\u2713 Installed agent '${agentId}' to ${targetDir}`);
104
+ const userRegistryPath = getUserRegistryPath(agentsDir);
105
+ const userRegistry = await loadUserRegistry(userRegistryPath);
106
+ if (!userRegistry.agents.some((a) => a.id === agentId)) {
107
+ const mainFile = agentEntry.main || import_path.default.basename(agentEntry.source);
108
+ userRegistry.agents.push({
109
+ id: agentId,
110
+ name: agentEntry.name,
111
+ description: agentEntry.description,
112
+ configPath: `./${agentId}/${mainFile}`,
113
+ author: agentEntry.author,
114
+ tags: agentEntry.tags
115
+ });
116
+ await saveUserRegistry(userRegistryPath, userRegistry);
117
+ }
118
+ return import_path.default.join(targetDir, agentEntry.main || import_path.default.basename(agentEntry.source));
119
+ } catch (error) {
120
+ try {
121
+ await import_fs.promises.rm(tempDir, { recursive: true, force: true });
122
+ } catch {
123
+ }
124
+ throw import_errors.RegistryError.installationFailed(
125
+ agentId,
126
+ error instanceof Error ? error.message : String(error)
127
+ );
128
+ }
129
+ }
130
+ async function installCustomAgent(agentId, sourcePath, metadata, options) {
131
+ const agentsDir = getAgentsDir(options);
132
+ const targetDir = import_path.default.join(agentsDir, agentId);
133
+ import_core.logger.info(`Installing custom agent: ${agentId}`);
134
+ try {
135
+ const bundledRegistryPath = (0, import_path2.resolveBundledScript)("agents/agent-registry.json");
136
+ const bundledContent = await import_fs.promises.readFile(bundledRegistryPath, "utf-8");
137
+ const bundledRegistry = JSON.parse(bundledContent);
138
+ if (agentId in bundledRegistry.agents) {
139
+ throw import_errors.RegistryError.customAgentNameConflict(agentId);
140
+ }
141
+ } catch (error) {
142
+ if (error instanceof Error && error.message.includes("conflicts with builtin")) {
143
+ throw error;
144
+ }
145
+ import_core.logger.debug(
146
+ `Could not validate against bundled registry: ${error instanceof Error ? error.message : String(error)}`
147
+ );
148
+ }
149
+ try {
150
+ await import_fs.promises.access(targetDir);
151
+ throw import_errors.RegistryError.agentAlreadyExists(agentId);
152
+ } catch (error) {
153
+ if (error.code !== "ENOENT") {
154
+ throw error;
155
+ }
156
+ }
157
+ const resolvedSource = import_path.default.resolve(sourcePath);
158
+ let stat;
159
+ try {
160
+ stat = await import_fs.promises.stat(resolvedSource);
161
+ } catch (_error) {
162
+ throw import_errors2.ConfigError.fileNotFound(resolvedSource);
163
+ }
164
+ await import_fs.promises.mkdir(agentsDir, { recursive: true });
165
+ try {
166
+ if (stat.isDirectory()) {
167
+ await (0, import_path2.copyDirectory)(resolvedSource, targetDir);
168
+ } else {
169
+ await import_fs.promises.mkdir(targetDir, { recursive: true });
170
+ const filename = import_path.default.basename(resolvedSource);
171
+ await import_fs.promises.copyFile(resolvedSource, import_path.default.join(targetDir, filename));
172
+ }
173
+ import_core.logger.info(`\u2713 Installed custom agent '${agentId}' to ${targetDir}`);
174
+ const userRegistryPath = getUserRegistryPath(agentsDir);
175
+ const userRegistry = await loadUserRegistry(userRegistryPath);
176
+ const configFile = stat.isDirectory() ? "agent.yml" : import_path.default.basename(resolvedSource);
177
+ userRegistry.agents.push({
178
+ id: agentId,
179
+ name: metadata.name || agentId,
180
+ description: metadata.description,
181
+ configPath: `./${agentId}/${configFile}`,
182
+ author: metadata.author,
183
+ tags: metadata.tags || []
184
+ });
185
+ await saveUserRegistry(userRegistryPath, userRegistry);
186
+ return import_path.default.join(targetDir, configFile);
187
+ } catch (error) {
188
+ try {
189
+ await import_fs.promises.rm(targetDir, { recursive: true, force: true });
190
+ } catch {
191
+ }
192
+ throw import_errors.RegistryError.installationFailed(
193
+ agentId,
194
+ error instanceof Error ? error.message : String(error)
195
+ );
196
+ }
197
+ }
198
+ async function uninstallAgent(agentId, options) {
199
+ const agentsDir = getAgentsDir(options);
200
+ const targetDir = import_path.default.join(agentsDir, agentId);
201
+ import_core.logger.info(`Uninstalling agent: ${agentId}`);
202
+ try {
203
+ await import_fs.promises.access(targetDir);
204
+ } catch (_error) {
205
+ throw import_errors.RegistryError.agentNotInstalled(agentId);
206
+ }
207
+ await import_fs.promises.rm(targetDir, { recursive: true, force: true });
208
+ import_core.logger.info(`\u2713 Removed agent directory: ${targetDir}`);
209
+ const userRegistryPath = getUserRegistryPath(agentsDir);
210
+ try {
211
+ const userRegistry = await loadUserRegistry(userRegistryPath);
212
+ userRegistry.agents = userRegistry.agents.filter((a) => a.id !== agentId);
213
+ await saveUserRegistry(userRegistryPath, userRegistry);
214
+ import_core.logger.info(`\u2713 Removed '${agentId}' from user registry`);
215
+ } catch (error) {
216
+ import_core.logger.warn(
217
+ `Failed to update user registry: ${error instanceof Error ? error.message : String(error)}`
218
+ );
219
+ }
220
+ }
221
+ async function listInstalledAgents(options) {
222
+ const agentsDir = getAgentsDir(options);
223
+ try {
224
+ const entries = await import_fs.promises.readdir(agentsDir, { withFileTypes: true });
225
+ return entries.filter((e) => e.isDirectory()).map((e) => e.name);
226
+ } catch (error) {
227
+ if (error.code === "ENOENT") {
228
+ return [];
229
+ }
230
+ throw error;
231
+ }
232
+ }
233
+ // Annotate the CommonJS export names for ESM import in node:
234
+ 0 && (module.exports = {
235
+ installBundledAgent,
236
+ installCustomAgent,
237
+ listInstalledAgents,
238
+ uninstallAgent
239
+ });