freddie 0.0.107 → 0.0.108
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/package.json +3 -3
- package/src/agent/llm_resolver.js +19 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "freddie",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.108",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Open JS agent harness built on pi-mono, floosie, xstate, and anentrypoint-design",
|
|
6
6
|
"bin": {
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@mariozechner/pi-ai": "^0.70.6",
|
|
27
27
|
"@mariozechner/pi-coding-agent": "^0.70.6",
|
|
28
28
|
"@mariozechner/pi-tui": "^0.70.6",
|
|
29
|
-
"acptoapi": "^1.0.
|
|
30
|
-
"anentrypoint-design": "^0.0.
|
|
29
|
+
"acptoapi": "^1.0.106",
|
|
30
|
+
"anentrypoint-design": "^0.0.132",
|
|
31
31
|
"commander": "^14.0.0",
|
|
32
32
|
"express": "^5.0.0",
|
|
33
33
|
"flatspace": "^1.0.18",
|
|
@@ -4,11 +4,20 @@ import { MATRIX_FILE } from './model-matrix.js'
|
|
|
4
4
|
import { callLLM as bridgeCall, isReachable as bridgeReachable } from './acptoapi-bridge.js'
|
|
5
5
|
export { matrixUsable } from './model-matrix.js'
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
// In browser bundles createRequire('acptoapi') resolves to an empty/stub
|
|
8
|
+
// module — acptoapi is a node-only CJS package. Guard so consumers (browser
|
|
9
|
+
// freddie) fall through to the acptoapi-bridge HTTP path instead of crashing
|
|
10
|
+
// with 'sdk.buildAutoChain is not a function'.
|
|
11
|
+
let sdk = {}
|
|
12
|
+
try {
|
|
13
|
+
const _require = createRequire(import.meta.url)
|
|
14
|
+
sdk = _require('acptoapi') || {}
|
|
15
|
+
} catch {
|
|
16
|
+
sdk = {}
|
|
17
|
+
}
|
|
9
18
|
|
|
10
|
-
export const PROVIDER_KEYS = sdk.PROVIDER_KEYS
|
|
11
|
-
export const DEFAULTS = sdk.PROVIDER_DEFAULTS
|
|
19
|
+
export const PROVIDER_KEYS = sdk.PROVIDER_KEYS || {}
|
|
20
|
+
export const DEFAULTS = sdk.PROVIDER_DEFAULTS || {}
|
|
12
21
|
|
|
13
22
|
const toTools = s => s?.length ? s.map(t => ({ type: 'function', function: { name: t.name, description: t.description || '', parameters: t.parameters || { type: 'object', properties: {} } } })) : undefined
|
|
14
23
|
|
|
@@ -45,7 +54,7 @@ function buildModel({ provider, model, inputModel }) {
|
|
|
45
54
|
const links = pref.map(p => `${p.provider}/${p.model || DEFAULTS[p.provider] || ''}`.replace(/\/$/, '')).filter(s => s.includes('/'))
|
|
46
55
|
if (links.length) return links.join(', ')
|
|
47
56
|
}
|
|
48
|
-
const auto = sdk.buildAutoChain(undefined)
|
|
57
|
+
const auto = typeof sdk.buildAutoChain === 'function' ? sdk.buildAutoChain(undefined) : []
|
|
49
58
|
const keyed = Array.isArray(auto) ? auto.filter(l => { const p = l.model.split('/')[0]; const env = PROVIDER_KEYS[p]; return env && process.env[env] }) : []
|
|
50
59
|
if (keyed.length) return keyed.map(l => l.model).join(', ')
|
|
51
60
|
return null
|
|
@@ -55,7 +64,7 @@ export function resolveCallLLM({ provider, model } = {}) {
|
|
|
55
64
|
return async (input) => {
|
|
56
65
|
const m = buildModel({ provider, model, inputModel: input.model })
|
|
57
66
|
if (!m) {
|
|
58
|
-
const status = sdk.getStatus().map(s => `${s.provider}(ok=${s.ok},fails=${s.failCount})`).join(', ')
|
|
67
|
+
const status = typeof sdk.getStatus === 'function' ? sdk.getStatus().map(s => `${s.provider}(ok=${s.ok},fails=${s.failCount})`).join(', ') : ''
|
|
59
68
|
throw new Error('no LLM backend reachable: set a provider API key or start acptoapi (http://127.0.0.1:4800/v1)' + (status ? ' | sampler: ' + status : ''))
|
|
60
69
|
}
|
|
61
70
|
try {
|
|
@@ -69,6 +78,10 @@ export function resolveCallLLM({ provider, model } = {}) {
|
|
|
69
78
|
if (/^queue\//.test(m)) opts.queuesMap = getConfigValue('agent.model_queues', {}) || {}
|
|
70
79
|
if (m.includes(',') || /^queue\//.test(m)) opts.matrixSource = process.env.FREDDIE_MATRIX_URL || MATRIX_FILE
|
|
71
80
|
|
|
81
|
+
if (typeof sdk.chat !== 'function') {
|
|
82
|
+
// Browser context: no node-side sdk; route via HTTP bridge.
|
|
83
|
+
return await bridgeCall({ ...input, model: m })
|
|
84
|
+
}
|
|
72
85
|
const r = await sdk.chat(opts)
|
|
73
86
|
return adapt(r)
|
|
74
87
|
} catch (e) {
|