@letta-ai/letta-code 0.29.4 → 0.29.5
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/letta.js
CHANGED
|
@@ -5462,7 +5462,7 @@ var package_default;
|
|
|
5462
5462
|
var init_package = __esm(() => {
|
|
5463
5463
|
package_default = {
|
|
5464
5464
|
name: "@letta-ai/letta-code",
|
|
5465
|
-
version: "0.29.
|
|
5465
|
+
version: "0.29.5",
|
|
5466
5466
|
description: "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
|
|
5467
5467
|
type: "module",
|
|
5468
5468
|
packageManager: "bun@1.3.0",
|
|
@@ -127383,6 +127383,9 @@ function validatePiProviderRegistration(providerName, config3) {
|
|
|
127383
127383
|
}
|
|
127384
127384
|
|
|
127385
127385
|
// src/backend/dev/pi-provider-mod-registry.ts
|
|
127386
|
+
function getPiProviderRegistryRevision() {
|
|
127387
|
+
return revisionCounter;
|
|
127388
|
+
}
|
|
127386
127389
|
function bumpProviderRevision(providerName) {
|
|
127387
127390
|
revisionCounter += 1;
|
|
127388
127391
|
providerRevisions.set(providerName, revisionCounter);
|
|
@@ -345981,6 +345984,7 @@ async function loadLocalMods(options3) {
|
|
|
345981
345984
|
const builtinCommandIds = new Set([...options3.builtinCommandIds ?? []]);
|
|
345982
345985
|
const reservedToolNames = new Set([...options3.reservedToolNames ?? []]);
|
|
345983
345986
|
const registry2 = createEmptyModRegistry(sources, generation2, capabilities, options3.registerCapabilitiesGlobally !== false);
|
|
345987
|
+
options3.onRegistryCreated?.(registry2);
|
|
345984
345988
|
for (const source2 of sources) {
|
|
345985
345989
|
for (const diagnostic of source2.diagnostics ?? []) {
|
|
345986
345990
|
const owner = createModOwner(diagnostic.path, source2, generation2);
|
|
@@ -346191,6 +346195,13 @@ function createModEngine(options3) {
|
|
|
346191
346195
|
const nextRegistry = await loadLocalMods({
|
|
346192
346196
|
...modOptions,
|
|
346193
346197
|
generation: loadGeneration,
|
|
346198
|
+
onRegistryCreated: (registry2) => {
|
|
346199
|
+
loadingRegistry = registry2;
|
|
346200
|
+
if (!disposed && loadGeneration === generation2) {
|
|
346201
|
+
activeRegistry = registry2;
|
|
346202
|
+
publish();
|
|
346203
|
+
}
|
|
346204
|
+
},
|
|
346194
346205
|
onChange: () => {
|
|
346195
346206
|
if (!disposed && loadingRegistry && loadGeneration === generation2) {
|
|
346196
346207
|
activeRegistry = loadingRegistry;
|
|
@@ -499514,6 +499525,8 @@ function ModelSelector({
|
|
|
499514
499525
|
const [byokProviderAliases, setByokProviderAliases] = import_react91.useState(() => buildByokProviderAliases([]));
|
|
499515
499526
|
const [openAICompatibleProxyHandles, setOpenAICompatibleProxyHandles] = import_react91.useState(() => getCachedOpenAICompatibleProxyHandles() ?? new Set);
|
|
499516
499527
|
const [openAICompatibleProxyProviders, setOpenAICompatibleProxyProviders] = import_react91.useState(new Set);
|
|
499528
|
+
const providerRegistryRevision = import_react91.useSyncExternalStore(subscribePiProviderRegistry, getPiProviderRegistryRevision, getPiProviderRegistryRevision);
|
|
499529
|
+
const previousProviderRegistryRevision = import_react91.useRef(providerRegistryRevision);
|
|
499517
499530
|
const mountedRef = import_react91.useRef(true);
|
|
499518
499531
|
import_react91.useEffect(() => {
|
|
499519
499532
|
mountedRef.current = true;
|
|
@@ -499576,8 +499589,12 @@ function ModelSelector({
|
|
|
499576
499589
|
}
|
|
499577
499590
|
});
|
|
499578
499591
|
import_react91.useEffect(() => {
|
|
499592
|
+
if (previousProviderRegistryRevision.current !== providerRegistryRevision) {
|
|
499593
|
+
previousProviderRegistryRevision.current = providerRegistryRevision;
|
|
499594
|
+
clearAvailableModelsCache();
|
|
499595
|
+
}
|
|
499579
499596
|
loadModels.current(forceRefreshOnMount ?? false);
|
|
499580
|
-
}, [forceRefreshOnMount]);
|
|
499597
|
+
}, [forceRefreshOnMount, providerRegistryRevision]);
|
|
499581
499598
|
import_react91.useEffect(() => {
|
|
499582
499599
|
if (localModelCatalog) {
|
|
499583
499600
|
setByokProviderAliases(buildByokProviderAliases([]));
|
|
@@ -500263,6 +500280,7 @@ var init_ModelSelector = __esm(async () => {
|
|
|
500263
500280
|
init_available_models();
|
|
500264
500281
|
init_model();
|
|
500265
500282
|
init_remote_model_catalog();
|
|
500283
|
+
init_pi_provider_mod_registry();
|
|
500266
500284
|
init_byok_providers();
|
|
500267
500285
|
init_settings_manager();
|
|
500268
500286
|
init_colors();
|
|
@@ -500549,8 +500567,9 @@ function ProviderSelector({
|
|
|
500549
500567
|
const [awsProfiles, setAwsProfiles] = import_react94.useState([]);
|
|
500550
500568
|
const [profileIndex, setProfileIndex] = import_react94.useState(0);
|
|
500551
500569
|
const [isLoadingProfiles, setIsLoadingProfiles] = import_react94.useState(false);
|
|
500552
|
-
|
|
500553
|
-
const
|
|
500570
|
+
import_react94.useSyncExternalStore(subscribePiProviderRegistry, getPiProviderRegistryRevision, getPiProviderRegistryRevision);
|
|
500571
|
+
const providers = getProviderConfigs(selectedTarget);
|
|
500572
|
+
const filteredProviders = filterProviderConfigs(providers, searchQuery);
|
|
500554
500573
|
const showProviderStoreTabs = shouldShowProviderStoreTabs(hasCloudCredentials2);
|
|
500555
500574
|
const connectedProviders = import_react94.useMemo(() => connectedProvidersByTarget[selectedTarget] ?? new Map, [connectedProvidersByTarget, selectedTarget]);
|
|
500556
500575
|
const isLoading = isProviderTargetLoading({
|
|
@@ -501824,6 +501843,7 @@ function ProviderSelector({
|
|
|
501824
501843
|
var import_react94, jsx_dev_runtime70, SOLID_LINE17 = "─", VISIBLE_PROVIDERS = 8;
|
|
501825
501844
|
var init_ProviderSelector = __esm(async () => {
|
|
501826
501845
|
init_available_models();
|
|
501846
|
+
init_pi_provider_mod_registry();
|
|
501827
501847
|
init_use_terminal_width();
|
|
501828
501848
|
init_byok_providers();
|
|
501829
501849
|
init_chatgpt_usage_service();
|
|
@@ -541297,4 +541317,4 @@ function registerBunOAuthFlows() {
|
|
|
541297
541317
|
registerBunOAuthFlows();
|
|
541298
541318
|
await init_src5().then(() => exports_src2);
|
|
541299
541319
|
|
|
541300
|
-
//# debugId=
|
|
541320
|
+
//# debugId=E5837E6C26403C1164756E2164756E21
|
package/package.json
CHANGED
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
"timeoutMs": 15000,
|
|
16
16
|
"reason": "Imports the real media module while Slack adapter tests replace it."
|
|
17
17
|
},
|
|
18
|
+
{
|
|
19
|
+
"path": "src/cli/components/provider-mod-selector-refresh.test.tsx",
|
|
20
|
+
"timeoutMs": 15000,
|
|
21
|
+
"reason": "Renders Ink while mutating the backend mode, backend instance, provider registry, settings singleton, and model cache."
|
|
22
|
+
},
|
|
18
23
|
{
|
|
19
24
|
"path": "src/cli/message-search-cache-warm.test.ts",
|
|
20
25
|
"timeoutMs": 15000,
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"src/cli/app/use-submit-handler.ts": 4077,
|
|
14
14
|
"src/cli/components/AgentSelector.tsx": 1111,
|
|
15
15
|
"src/cli/components/InputRich.tsx": 2219,
|
|
16
|
-
"src/cli/components/ModelSelector.tsx":
|
|
17
|
-
"src/cli/components/ProviderSelector.tsx":
|
|
16
|
+
"src/cli/components/ModelSelector.tsx": 1262,
|
|
17
|
+
"src/cli/components/ProviderSelector.tsx": 1692,
|
|
18
18
|
"src/cli/components/ToolCallMessageRich.tsx": 1109,
|
|
19
19
|
"src/cli/helpers/accumulator.ts": 1596,
|
|
20
20
|
"src/cli/helpers/reflection-transcript.ts": 1956,
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"src/hooks/integration.test.ts": 1147,
|
|
27
27
|
"src/index.ts": 2802,
|
|
28
28
|
"src/mods/learning-harness.ts": 2434,
|
|
29
|
-
"src/mods/mod-engine.test.ts":
|
|
30
|
-
"src/mods/mod-engine.ts":
|
|
29
|
+
"src/mods/mod-engine.test.ts": 2153,
|
|
30
|
+
"src/mods/mod-engine.ts": 1847,
|
|
31
31
|
"src/mods/package-installer.test.ts": 1248,
|
|
32
32
|
"src/mods/package-installer.ts": 1201,
|
|
33
33
|
"src/mods/package-registry.ts": 1033,
|