@remnic/plugin-openclaw 9.54.5 → 9.54.7

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/README.md CHANGED
@@ -44,7 +44,7 @@ launchctl kickstart -k gui/501/ai.openclaw.gateway
44
44
  ## Compatibility Policy
45
45
 
46
46
  Remnic supports OpenClaw releases from at least the previous 60 days. As of
47
- June 26, 2026, that means releases back to April 27, 2026.
47
+ August 14, 2026, that means releases back to June 15, 2026.
48
48
  The package metadata keeps the installer compatibility floor at the single
49
49
  `>=2026.4.1` shape OpenClaw setup expects because that older floor is still
50
50
  more permissive than the active 60-day requirement.
@@ -75,6 +75,10 @@ When adding newer OpenClaw manifest surfaces, keep older-compatible metadata in
75
75
  place for hosts inside that 60-day window unless an upstream breaking change is
76
76
  documented and unavoidable.
77
77
 
78
+ The August 14 sweep covered the Support Passport manifest and gateway route.
79
+ The existing `>=2026.4.1` installer floor remains more permissive than the
80
+ active window, so this change does not raise it.
81
+
78
82
  ## Benchmarking The OpenClaw Chain
79
83
 
80
84
  The benchmark CLI can now exercise the real OpenClaw-backed answer path instead
@@ -0,0 +1,40 @@
1
+ // src/support-passport-model-route.ts
2
+ import { gatewayTaskChainOptions } from "@remnic/core/fallback-llm";
3
+ function hasConfiguredExplicitRoute(config) {
4
+ if (config.modelSource !== "gateway") return true;
5
+ if (config.taskModelChain !== void 0) {
6
+ return typeof config.taskModelChain.primary === "string" && config.taskModelChain.primary.trim().length > 0;
7
+ }
8
+ const agentId = config.gatewayAgentId.trim();
9
+ if (agentId.length === 0) return true;
10
+ const persona = config.gatewayConfig?.agents?.list?.find((agent) => agent.id === agentId);
11
+ return typeof persona?.model?.primary === "string" && persona.model.primary.trim().length > 0;
12
+ }
13
+ function createOpenClawSupportPassportModelRoute(config, client) {
14
+ const routeConfig = { ...config, gatewayAgentId: config.gatewayAgentId.trim() };
15
+ const explicitRouteAvailable = hasConfiguredExplicitRoute(routeConfig);
16
+ const routeSelection = gatewayTaskChainOptions(routeConfig);
17
+ return {
18
+ kind: "gateway",
19
+ invoke: async (messages, options) => {
20
+ if (!explicitRouteAvailable) return null;
21
+ const routeOptions = {
22
+ temperature: options.temperature,
23
+ maxTokens: options.maxTokens,
24
+ timeoutMs: options.timeoutMs,
25
+ signal: options.signal,
26
+ store: false,
27
+ responsesJsonSchema: options.jsonSchema,
28
+ redactProviderErrors: true,
29
+ includeDefaultModelFallback: false,
30
+ acceptResponse: options.acceptResponse,
31
+ ...routeSelection
32
+ };
33
+ return await client.chatCompletion(messages, routeOptions);
34
+ }
35
+ };
36
+ }
37
+
38
+ export {
39
+ createOpenClawSupportPassportModelRoute
40
+ };