@darkhorseprojects/circuitry 0.2.29 → 0.2.31
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/dist/node.js +23 -13
- package/package.json +1 -1
package/dist/node.js
CHANGED
|
@@ -619,6 +619,17 @@ var extractAssistantText = (message) => {
|
|
|
619
619
|
if (!Array.isArray(message.content)) return "";
|
|
620
620
|
return message.content.filter((part) => part?.type === "text" && typeof part.text === "string").map((part) => part.text).join("");
|
|
621
621
|
};
|
|
622
|
+
var findRequestedModel = (modelRegistry, available, requestedModel) => {
|
|
623
|
+
const [provider, ...modelParts] = requestedModel.split("/");
|
|
624
|
+
const modelId = modelParts.join("/");
|
|
625
|
+
const found = (provider && modelId ? modelRegistry.find(provider, modelId) : void 0) || available.find(
|
|
626
|
+
(entry) => `${entry.provider}/${entry.id}` === requestedModel || entry.id === requestedModel
|
|
627
|
+
);
|
|
628
|
+
if (!found) {
|
|
629
|
+
throw new Error(`Requested Pi model is not available: ${requestedModel}`);
|
|
630
|
+
}
|
|
631
|
+
return found;
|
|
632
|
+
};
|
|
622
633
|
var withTimeout = async (promise, timeoutMs) => {
|
|
623
634
|
let timeout;
|
|
624
635
|
try {
|
|
@@ -655,25 +666,20 @@ var runNodeWithPiSDK = async ({
|
|
|
655
666
|
].join("\n")
|
|
656
667
|
);
|
|
657
668
|
}
|
|
658
|
-
const { AuthStorage, ModelRegistry, SessionManager, createAgentSession } = sdk;
|
|
669
|
+
const { AuthStorage, ModelRegistry, SessionManager, SettingsManager, createAgentSession } = sdk;
|
|
659
670
|
const authStorage = AuthStorage.create();
|
|
660
671
|
const modelRegistry = ModelRegistry.create(authStorage);
|
|
661
|
-
const
|
|
662
|
-
|
|
663
|
-
const
|
|
664
|
-
const selectedModel =
|
|
665
|
-
if (!modelId) return false;
|
|
666
|
-
return `${entry.provider}/${entry.id}` === `${provider}/${modelId}` || entry.id === modelId;
|
|
667
|
-
}) || available[0];
|
|
668
|
-
if (!selectedModel) {
|
|
669
|
-
throw new Error("No Pi SDK models are available. Configure ~/.pi/agent/auth.json");
|
|
670
|
-
}
|
|
672
|
+
const settingsManager = SettingsManager.create(process.cwd());
|
|
673
|
+
await settingsManager.reload();
|
|
674
|
+
const requestedModel = String(model || "");
|
|
675
|
+
const selectedModel = requestedModel && requestedModel !== "inherit" ? findRequestedModel(modelRegistry, await modelRegistry.getAvailable(), requestedModel) : void 0;
|
|
671
676
|
const { session } = await createAgentSession({
|
|
672
|
-
model: selectedModel,
|
|
677
|
+
...selectedModel ? { model: selectedModel } : {},
|
|
673
678
|
thinkingLevel,
|
|
674
679
|
sessionManager: SessionManager.inMemory(),
|
|
675
680
|
authStorage,
|
|
676
|
-
modelRegistry
|
|
681
|
+
modelRegistry,
|
|
682
|
+
settingsManager
|
|
677
683
|
});
|
|
678
684
|
session.setActiveToolsByName(Array.isArray(tools) ? tools.map((tool) => String(tool)) : []);
|
|
679
685
|
let output = "";
|
|
@@ -692,6 +698,10 @@ var runNodeWithPiSDK = async ({
|
|
|
692
698
|
source: { type: "base64", mediaType: image.mediaType, data: image.data }
|
|
693
699
|
}));
|
|
694
700
|
await withTimeout(session.prompt(prompt, { images: promptImages }), 18e4);
|
|
701
|
+
const assistantMessage = [...session.messages].reverse().find((message) => message.role === "assistant");
|
|
702
|
+
if (assistantMessage?.errorMessage || assistantMessage?.stopReason === "error") {
|
|
703
|
+
throw new Error(assistantMessage.errorMessage || "Pi SDK model returned an error");
|
|
704
|
+
}
|
|
695
705
|
return { output: output.trim() };
|
|
696
706
|
} finally {
|
|
697
707
|
unsubscribe();
|