@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.
Files changed (2) hide show
  1. package/dist/node.js +23 -13
  2. 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 [provider, ...modelParts] = String(model || "").split("/");
662
- const modelId = modelParts.join("/");
663
- const available = await modelRegistry.getAvailable();
664
- const selectedModel = (provider && modelId ? modelRegistry.find(provider, modelId) : void 0) || available.find((entry) => {
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();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darkhorseprojects/circuitry",
3
- "version": "0.2.29",
3
+ "version": "0.2.31",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",