@duetso/agent 0.3.11 → 0.3.13
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/package.json +6 -6
- package/dist/src/cli/connect.d.ts +7 -0
- package/dist/src/cli/connect.d.ts.map +1 -1
- package/dist/src/cli/connect.js +46 -27
- package/dist/src/cli/connect.js.map +1 -1
- package/dist/src/cli/train.d.ts.map +1 -1
- package/dist/src/cli/train.js +14 -2
- package/dist/src/cli/train.js.map +1 -1
- package/dist/src/connected-providers/capability-probe.d.ts.map +1 -1
- package/dist/src/connected-providers/capability-probe.js +13 -8
- package/dist/src/connected-providers/capability-probe.js.map +1 -1
- package/dist/src/connected-providers/fake-issuer.d.ts +16 -1
- package/dist/src/connected-providers/fake-issuer.d.ts.map +1 -1
- package/dist/src/connected-providers/fake-issuer.js +89 -42
- package/dist/src/connected-providers/fake-issuer.js.map +1 -1
- package/dist/src/connected-providers/refresh.d.ts.map +1 -1
- package/dist/src/connected-providers/refresh.js +9 -2
- package/dist/src/connected-providers/refresh.js.map +1 -1
- package/dist/src/connected-providers/registry.d.ts +8 -2
- package/dist/src/connected-providers/registry.d.ts.map +1 -1
- package/dist/src/connected-providers/registry.js +18 -3
- package/dist/src/connected-providers/registry.js.map +1 -1
- package/dist/src/connected-providers/tokens.d.ts.map +1 -1
- package/dist/src/connected-providers/tokens.js +10 -6
- package/dist/src/connected-providers/tokens.js.map +1 -1
- package/dist/src/core/structured-output.d.ts.map +1 -1
- package/dist/src/core/structured-output.js +2 -1
- package/dist/src/core/structured-output.js.map +1 -1
- package/dist/src/memory/observational.d.ts +0 -1
- package/dist/src/memory/observational.d.ts.map +1 -1
- package/dist/src/memory/observational.js +44 -24
- package/dist/src/memory/observational.js.map +1 -1
- package/dist/src/model-resolution/catalog.d.ts.map +1 -1
- package/dist/src/model-resolution/catalog.js +6 -9
- package/dist/src/model-resolution/catalog.js.map +1 -1
- package/dist/src/model-resolution/duet-gateway.d.ts +52 -45
- package/dist/src/model-resolution/duet-gateway.d.ts.map +1 -1
- package/dist/src/model-resolution/duet-gateway.js +192 -264
- package/dist/src/model-resolution/duet-gateway.js.map +1 -1
- package/dist/src/model-resolution/models.d.ts +24 -0
- package/dist/src/model-resolution/models.d.ts.map +1 -0
- package/dist/src/model-resolution/models.js +63 -0
- package/dist/src/model-resolution/models.js.map +1 -0
- package/dist/src/model-resolution/resolver.d.ts +1 -1
- package/dist/src/model-resolution/resolver.d.ts.map +1 -1
- package/dist/src/model-resolution/resolver.js +18 -17
- package/dist/src/model-resolution/resolver.js.map +1 -1
- package/dist/src/model-routing/advisor.js +9 -1
- package/dist/src/model-routing/advisor.js.map +1 -1
- package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
- package/dist/src/turn-runner/turn-runner.js +4 -0
- package/dist/src/turn-runner/turn-runner.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createProvider } from "@earendil-works/pi-ai";
|
|
2
|
+
import { openAICompletionsApi } from "@earendil-works/pi-ai/api/openai-completions.lazy";
|
|
3
|
+
import { getBuiltinModels } from "@earendil-works/pi-ai/providers/all";
|
|
2
4
|
export const FAKE_ISSUER_ENV = "DUET_CONNECT_FAKE_ISSUER_URL";
|
|
3
5
|
/** Concrete RFC-8628 contract imported by both client and issuer conformance tests. */
|
|
4
6
|
export const FAKE_ISSUER_WIRE_TABLE = {
|
|
@@ -51,7 +53,16 @@ export const FAKE_ISSUER_WIRE_TABLE = {
|
|
|
51
53
|
};
|
|
52
54
|
let installedBaseUrl;
|
|
53
55
|
let installedProviders;
|
|
54
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Point the connected-provider registry at a fake issuer when one is
|
|
58
|
+
* configured.
|
|
59
|
+
*
|
|
60
|
+
* An OAuth implementation hangs off the provider that uses it, so standing in
|
|
61
|
+
* for the real issuer means standing in for the whole provider:
|
|
62
|
+
* `connectedProviders()` reads what this publishes in place of the built-in
|
|
63
|
+
* one. Being a read rather than a global mutation is what keeps the swap
|
|
64
|
+
* visible at the seam that consumes it.
|
|
65
|
+
*/
|
|
55
66
|
export function installFakeIssuerIfConfigured(env = process.env) {
|
|
56
67
|
const configured = env[FAKE_ISSUER_ENV]?.trim();
|
|
57
68
|
if (!configured)
|
|
@@ -64,59 +75,95 @@ export function installFakeIssuerIfConfigured(env = process.env) {
|
|
|
64
75
|
createFakeProvider("github-copilot", "GitHub Copilot", baseUrl),
|
|
65
76
|
];
|
|
66
77
|
}
|
|
67
|
-
for (const provider of installedProviders)
|
|
68
|
-
registerOAuthProvider(provider);
|
|
69
78
|
return "installed";
|
|
70
79
|
}
|
|
80
|
+
/** Forget any installed fake, so one test's issuer cannot leak into the next. */
|
|
81
|
+
export function resetFakeIssuer() {
|
|
82
|
+
installedBaseUrl = undefined;
|
|
83
|
+
installedProviders = undefined;
|
|
84
|
+
}
|
|
85
|
+
/** The fake standing in for `id`, or undefined when none is configured. */
|
|
86
|
+
export function fakeConnectedProvider(id) {
|
|
87
|
+
return installedProviders?.find((provider) => provider.id === id);
|
|
88
|
+
}
|
|
71
89
|
function createFakeProvider(id, name, baseUrl) {
|
|
72
|
-
return {
|
|
90
|
+
return createProvider({
|
|
73
91
|
id,
|
|
74
92
|
name,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
expiresInSeconds: device.expires_in,
|
|
85
|
-
});
|
|
86
|
-
return pollOAuthDeviceCodeFlow({
|
|
87
|
-
intervalSeconds: device.interval,
|
|
88
|
-
expiresInSeconds: device.expires_in,
|
|
89
|
-
signal: callbacks.signal,
|
|
90
|
-
poll: async () => tokenPollResult(await postJson(`${baseUrl}/token`, {
|
|
91
|
-
device_code: device.device_code,
|
|
92
|
-
grant_type: "urn:ietf:params:oauth:grant-type:device_code",
|
|
93
|
-
})),
|
|
94
|
-
});
|
|
95
|
-
},
|
|
96
|
-
async refreshToken(credentials) {
|
|
97
|
-
const token = await postJson(`${baseUrl}/token`, {
|
|
98
|
-
refresh_token: credentials.refresh,
|
|
99
|
-
grant_type: "refresh_token",
|
|
100
|
-
});
|
|
101
|
-
return credentialsFromToken(token, credentials.refresh);
|
|
102
|
-
},
|
|
103
|
-
getApiKey(credentials) {
|
|
104
|
-
return credentials.access;
|
|
105
|
-
},
|
|
106
|
-
modifyModels(models) {
|
|
107
|
-
return models.map((model) => ({
|
|
108
|
-
...model,
|
|
93
|
+
baseUrl,
|
|
94
|
+
api: openAICompletionsApi(),
|
|
95
|
+
// The issuer under test is a plain OpenAI-compatible server, so the real
|
|
96
|
+
// provider's models are carried over its transport with the vendor
|
|
97
|
+
// extensions a fixture cannot serve turned off.
|
|
98
|
+
models: getBuiltinModels(id).map((model) => {
|
|
99
|
+
const carried = model;
|
|
100
|
+
return {
|
|
101
|
+
...carried,
|
|
109
102
|
api: "openai-completions",
|
|
110
103
|
baseUrl,
|
|
111
104
|
compat: {
|
|
112
|
-
...
|
|
105
|
+
...carried.compat,
|
|
113
106
|
supportsStore: false,
|
|
114
107
|
supportsDeveloperRole: false,
|
|
115
108
|
supportsReasoningEffort: false,
|
|
116
109
|
},
|
|
117
|
-
}
|
|
110
|
+
};
|
|
111
|
+
}),
|
|
112
|
+
auth: {
|
|
113
|
+
oauth: {
|
|
114
|
+
name,
|
|
115
|
+
async login(interaction) {
|
|
116
|
+
const device = await postJson(`${baseUrl}/device/code`, {
|
|
117
|
+
client_id: `duet-agent:${id}`,
|
|
118
|
+
scope: id === "openai-codex" ? "openid profile email" : "read:user",
|
|
119
|
+
});
|
|
120
|
+
interaction.notify({
|
|
121
|
+
type: "device_code",
|
|
122
|
+
userCode: device.user_code,
|
|
123
|
+
verificationUri: device.verification_uri,
|
|
124
|
+
intervalSeconds: device.interval,
|
|
125
|
+
expiresInSeconds: device.expires_in,
|
|
126
|
+
});
|
|
127
|
+
const credentials = await pollFakeDeviceCode(baseUrl, device, interaction.signal);
|
|
128
|
+
return { ...credentials, type: "oauth" };
|
|
129
|
+
},
|
|
130
|
+
async refresh(credential) {
|
|
131
|
+
const token = await postJson(`${baseUrl}/token`, {
|
|
132
|
+
refresh_token: credential.refresh,
|
|
133
|
+
grant_type: "refresh_token",
|
|
134
|
+
});
|
|
135
|
+
return { ...credentialsFromToken(token, credential.refresh), type: "oauth" };
|
|
136
|
+
},
|
|
137
|
+
async toAuth(credential) {
|
|
138
|
+
return { apiKey: credential.access, baseUrl };
|
|
139
|
+
},
|
|
140
|
+
},
|
|
118
141
|
},
|
|
119
|
-
};
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* RFC-8628 polling for the fake issuer — pending, slow_down, denied, expired.
|
|
146
|
+
* That is the whole protocol surface the conformance fixtures exercise, so it
|
|
147
|
+
* is spelled out here rather than reaching for a general implementation.
|
|
148
|
+
*/
|
|
149
|
+
async function pollFakeDeviceCode(baseUrl, device, signal) {
|
|
150
|
+
const deadline = Date.now() + (device.expires_in ?? 600) * 1000;
|
|
151
|
+
let intervalMs = (device.interval ?? 1) * 1000;
|
|
152
|
+
while (Date.now() < deadline) {
|
|
153
|
+
signal.throwIfAborted();
|
|
154
|
+
const result = tokenPollResult(await postJson(`${baseUrl}/token`, {
|
|
155
|
+
device_code: device.device_code,
|
|
156
|
+
grant_type: "urn:ietf:params:oauth:grant-type:device_code",
|
|
157
|
+
}));
|
|
158
|
+
if (result.status === "complete")
|
|
159
|
+
return result.value;
|
|
160
|
+
if (result.status === "failed")
|
|
161
|
+
throw new Error(result.message);
|
|
162
|
+
if (result.status === "slow_down")
|
|
163
|
+
intervalMs += 1000;
|
|
164
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
165
|
+
}
|
|
166
|
+
throw new Error("Device login expired.");
|
|
120
167
|
}
|
|
121
168
|
function tokenPollResult(response) {
|
|
122
169
|
if (response.status === "pending" || response.status === "slow_down") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-issuer.js","sourceRoot":"","sources":["../../../src/connected-providers/fake-issuer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fake-issuer.js","sourceRoot":"","sources":["../../../src/connected-providers/fake-issuer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/refresh.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMxE,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1E,2FAA2F;AAC3F,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/refresh.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMxE,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1E,2FAA2F;AAC3F,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAW3B;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,UAAgD,EAC3D,GAAG,GAAE,MAAM,MAAiB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CA6B3B"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { connectedProviders } from "./registry.js";
|
|
2
2
|
const OPENAI_TOKEN_URL = "https://auth.openai.com/oauth/token";
|
|
3
3
|
const OPENAI_CODEX_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
4
4
|
const OPENAI_CODEX_SCOPE = "openid profile email";
|
|
5
5
|
/** Refresh one connected-provider credential using the provider's supported OAuth flow. */
|
|
6
6
|
export async function refreshConnectedCredentials(provider, credentials) {
|
|
7
7
|
if (provider === "github-copilot") {
|
|
8
|
-
|
|
8
|
+
// pi-ai's OAuth implementations hang off their provider now, and the
|
|
9
|
+
// exchange is `refresh(credential, signal)` rather than `refreshToken`.
|
|
10
|
+
const oauth = connectedProviders()
|
|
11
|
+
.find((entry) => entry.id === provider)
|
|
12
|
+
?.oauth();
|
|
13
|
+
if (!oauth)
|
|
14
|
+
throw new Error(`OAuth provider is not registered: ${provider}`);
|
|
15
|
+
return oauth.refresh({ ...credentials, type: "oauth" }, new AbortController().signal);
|
|
9
16
|
}
|
|
10
17
|
return refreshOpenAICodexCredentials(credentials.refresh);
|
|
11
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/connected-providers/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/connected-providers/refresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { OAuthAuth, Provider } from "@earendil-works/pi-ai";
|
|
2
2
|
import type { ConnectedProviderId } from "./store.js";
|
|
3
3
|
export interface ConnectedProviderEntry {
|
|
4
4
|
/** Stable transport id used by pi-ai and the credential store. */
|
|
@@ -10,7 +10,13 @@ export interface ConnectedProviderEntry {
|
|
|
10
10
|
/** Login modes this provider can run; only device code is valid in a VM. */
|
|
11
11
|
loginModes: readonly ("device_code" | "browser")[];
|
|
12
12
|
/** Resolve the active pi-ai implementation, including an env-gated fake issuer. */
|
|
13
|
-
oauth():
|
|
13
|
+
oauth(): OAuthAuth;
|
|
14
|
+
/**
|
|
15
|
+
* The whole pi-ai provider. Model availability now hangs off the provider
|
|
16
|
+
* (`filterModels`) rather than the OAuth implementation, so a caller that
|
|
17
|
+
* asks "which models does this account get" needs this, not just `oauth()`.
|
|
18
|
+
*/
|
|
19
|
+
provider(): Provider;
|
|
14
20
|
}
|
|
15
21
|
export declare function connectedProviders(): readonly ConnectedProviderEntry[];
|
|
16
22
|
export declare function resolveConnectedProviderAlias(input: string): ConnectedProviderId | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,EAAE,EAAE,mBAAmB,CAAC;IACxB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,UAAU,EAAE,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC;IACnD,mFAAmF;IACnF,KAAK,IAAI,SAAS,CAAC;IACnB;;;;OAIG;IACH,QAAQ,IAAI,QAAQ,CAAC;CACtB;AAwCD,wBAAgB,kBAAkB,IAAI,SAAS,sBAAsB,EAAE,CAEtE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE5F"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { builtinProviders } from "@earendil-works/pi-ai/providers/all";
|
|
2
|
+
import { fakeConnectedProvider } from "./fake-issuer.js";
|
|
3
|
+
/**
|
|
4
|
+
* An OAuth implementation hangs off the model provider that uses it, so it is
|
|
5
|
+
* read from the built-in provider list rather than looked up by id. That makes
|
|
6
|
+
* this the single seam a configured fake issuer substitutes at, in view of
|
|
7
|
+
* every caller that goes through the registry.
|
|
8
|
+
*/
|
|
9
|
+
function piProvider(id) {
|
|
10
|
+
const provider = fakeConnectedProvider(id) ?? builtinProviders().find((candidate) => candidate.id === id);
|
|
4
11
|
if (!provider)
|
|
5
12
|
throw new Error(`OAuth provider is not registered: ${id}`);
|
|
6
13
|
return provider;
|
|
7
14
|
}
|
|
15
|
+
function oauthProvider(id) {
|
|
16
|
+
const oauth = piProvider(id).auth.oauth;
|
|
17
|
+
if (!oauth)
|
|
18
|
+
throw new Error(`OAuth provider is not registered: ${id}`);
|
|
19
|
+
return oauth;
|
|
20
|
+
}
|
|
8
21
|
const CONNECTED_PROVIDERS = [
|
|
9
22
|
{
|
|
10
23
|
id: "openai-codex",
|
|
@@ -12,6 +25,7 @@ const CONNECTED_PROVIDERS = [
|
|
|
12
25
|
alias: "chatgpt",
|
|
13
26
|
loginModes: ["device_code", "browser"],
|
|
14
27
|
oauth: () => oauthProvider("openai-codex"),
|
|
28
|
+
provider: () => piProvider("openai-codex"),
|
|
15
29
|
},
|
|
16
30
|
{
|
|
17
31
|
id: "github-copilot",
|
|
@@ -19,6 +33,7 @@ const CONNECTED_PROVIDERS = [
|
|
|
19
33
|
alias: "copilot",
|
|
20
34
|
loginModes: ["device_code"],
|
|
21
35
|
oauth: () => oauthProvider("github-copilot"),
|
|
36
|
+
provider: () => piProvider("github-copilot"),
|
|
22
37
|
},
|
|
23
38
|
];
|
|
24
39
|
export function connectedProviders() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/connected-providers/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/connected-providers/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAsBzD;;;;;GAKG;AACH,SAAS,UAAU,CAAC,EAAuB;IACzC,MAAM,QAAQ,GACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,EAAuB;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,mBAAmB,GAAsC;IAC7D;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;QACtC,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC;QAC1C,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;KAC3C;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC;QAC5C,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;KAC7C;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;AAC1F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,qBAAqB;IACpC,6FAA6F;IAC7F,YAAY,IAAI,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IACrD,oEAAoE;IACpE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,+EAA+E;IAC/E,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7E,0EAA0E;IAC1E,MAAM,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,0EAA0E;IAC1E,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzD,wEAAwE;IACxE,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC1E;AAED,UAAU,4BAA4B;IACpC,6EAA6E;IAC7E,KAAK,EAAE,sBAAsB,CAAC;IAC9B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,CACnB,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,gBAAgB,KAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAID,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAwFvB;AAUD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,CAAC,GACP,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,qBAAqB;IACpC,6FAA6F;IAC7F,YAAY,IAAI,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IACrD,oEAAoE;IACpE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,+EAA+E;IAC/E,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7E,0EAA0E;IAC1E,MAAM,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,0EAA0E;IAC1E,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzD,wEAAwE;IACxE,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC1E;AAED,UAAU,4BAA4B;IACpC,6EAA6E;IAC7E,KAAK,EAAE,sBAAsB,CAAC;IAC9B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,CACnB,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,gBAAgB,KAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAID,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAwFvB;AAUD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,CAAC,GACP,CAAC,GAAG,SAAS,CAaf;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAElF;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAEzF;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAErF;AAED,sFAAsF;AACtF,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -110,13 +110,17 @@ export function applyConnectedModelHook(provider, model) {
|
|
|
110
110
|
const credentials = connectedTokens.credentials(provider);
|
|
111
111
|
if (!credentials)
|
|
112
112
|
return model;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
// Account-specific model availability belongs to the provider, via
|
|
114
|
+
// `filterModels`.
|
|
115
|
+
const entry = connectedProviders().find((candidate) => candidate.id === provider);
|
|
116
|
+
const filterModels = entry?.provider().filterModels;
|
|
117
|
+
if (!filterModels)
|
|
117
118
|
return model;
|
|
118
|
-
const kept =
|
|
119
|
-
|
|
119
|
+
const kept = filterModels([model], {
|
|
120
|
+
...credentials,
|
|
121
|
+
type: "oauth",
|
|
122
|
+
});
|
|
123
|
+
return kept.find((candidate) => candidate.id === model.id);
|
|
120
124
|
}
|
|
121
125
|
export function loadConnectedTokensSnapshot() {
|
|
122
126
|
return connectedTokens.loadSnapshot();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/connected-providers/tokens.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/connected-providers/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../../src/core/structured-output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../../src/core/structured-output.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,IAAI,EAET,KAAK,KAAK,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAK/C,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;AAEhF,MAAM,WAAW,uBAAuB,CAAC,YAAY,SAAS,OAAO;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,wBAAsB,wBAAwB,CAAC,YAAY,SAAS,OAAO,EACzE,OAAO,EAAE,uBAAuB,CAAC,YAAY,CAAC,GAC7C,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CA4C/B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { complete
|
|
1
|
+
import { complete } from "@earendil-works/pi-ai/compat";
|
|
2
|
+
import { validateToolArguments, } from "@earendil-works/pi-ai";
|
|
2
3
|
import { resolveModelName } from "../model-resolution/resolver.js";
|
|
3
4
|
import { resolveProviderApiKey } from "../model-resolution/duet-gateway.js";
|
|
4
5
|
import { usageForTransport } from "../connected-providers/billing.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../../../src/core/structured-output.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../../../src/core/structured-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -314,7 +314,6 @@ export declare function createObservationalContextTransform(options: Observation
|
|
|
314
314
|
*/
|
|
315
315
|
export declare function compactObservationalContext(options: CompactObservationalContextOptions): Promise<AgentMessage[]>;
|
|
316
316
|
export declare function updateObservationalMemory(options: ObservationalMemoryUpdateOptions): Promise<ObservationalMemoryUpdateResult>;
|
|
317
|
-
export declare function optimizeObservationsForContext(observations: string): string;
|
|
318
317
|
/**
|
|
319
318
|
* Drop synthetic memory/continuation reminders injected by the actor
|
|
320
319
|
* context transform so callers see only the "real" conversation messages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observational.d.ts","sourceRoot":"","sources":["../../../src/memory/observational.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAarF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"observational.d.ts","sourceRoot":"","sources":["../../../src/memory/observational.ts"],"names":[],"mappings":"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"}
|
|
@@ -408,38 +408,57 @@ function renderObservationalContext(memory, retainedMessages) {
|
|
|
408
408
|
* (chronological compaction summary of the current session). The
|
|
409
409
|
* fixed render order matches the prompt assembly: system prompt →
|
|
410
410
|
* memory section → message history.
|
|
411
|
+
*
|
|
412
|
+
* Only the two observation layers pass through
|
|
413
|
+
* `optimizeObservationsForContext`. Its rules — drop bracketed text, collapse
|
|
414
|
+
* runs of spaces, strip arrows — clean up the observer's own telemetry
|
|
415
|
+
* shorthand, and they destroy an authored document: a markdown link loses its
|
|
416
|
+
* text, a nested bullet loses the indentation that nests it, and `->` in prose
|
|
417
|
+
* silently changes the sentence. Trained memories are authored, so the stored
|
|
418
|
+
* layer renders byte-for-byte.
|
|
411
419
|
*/
|
|
412
420
|
function renderContextPack(pack) {
|
|
413
421
|
const sections = [];
|
|
414
422
|
if (pack.stored.length > 0) {
|
|
415
|
-
sections.push(
|
|
416
|
-
"<stored_observations>",
|
|
417
|
-
STORED_OBSERVATIONS_HEADING,
|
|
418
|
-
STORED_OBSERVATIONS_HINT,
|
|
419
|
-
pack.stored.map((entry) => entry.content).join("\n\n"),
|
|
420
|
-
"</stored_observations>",
|
|
421
|
-
].join("\n\n"));
|
|
423
|
+
sections.push(renderMemorySection("stored_observations", STORED_OBSERVATIONS_HEADING, STORED_OBSERVATIONS_HINT, pack.stored.map(renderStoredMemory).join("\n\n")));
|
|
422
424
|
}
|
|
423
425
|
if (pack.global.length > 0) {
|
|
424
|
-
sections.push(
|
|
425
|
-
"<global_observations>",
|
|
426
|
-
GLOBAL_OBSERVATIONS_HEADING,
|
|
427
|
-
GLOBAL_OBSERVATIONS_HINT,
|
|
428
|
-
pack.global.map((observation) => observation.content).join("\n\n"),
|
|
429
|
-
"</global_observations>",
|
|
430
|
-
].join("\n\n"));
|
|
426
|
+
sections.push(renderMemorySection("global_observations", GLOBAL_OBSERVATIONS_HEADING, GLOBAL_OBSERVATIONS_HINT, renderObservations(pack.global)));
|
|
431
427
|
}
|
|
432
428
|
if (pack.local.length > 0) {
|
|
433
|
-
sections.push(
|
|
434
|
-
"<local_observations>",
|
|
435
|
-
LOCAL_OBSERVATIONS_HEADING,
|
|
436
|
-
LOCAL_OBSERVATIONS_HINT,
|
|
437
|
-
pack.local.map((observation) => observation.content).join("\n\n"),
|
|
438
|
-
"</local_observations>",
|
|
439
|
-
].join("\n\n"));
|
|
429
|
+
sections.push(renderMemorySection("local_observations", LOCAL_OBSERVATIONS_HEADING, LOCAL_OBSERVATIONS_HINT, renderObservations(pack.local)));
|
|
440
430
|
}
|
|
441
431
|
return sections.join("\n\n");
|
|
442
432
|
}
|
|
433
|
+
function renderMemorySection(tag, heading, hint, body) {
|
|
434
|
+
return [`<${tag}>`, heading, hint, body, `</${tag}>`].join("\n\n");
|
|
435
|
+
}
|
|
436
|
+
function renderObservations(observations) {
|
|
437
|
+
return optimizeObservationsForContext(observations.map((observation) => observation.content).join("\n\n"));
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* One trained memory as a discrete element. Each is an authored markdown
|
|
441
|
+
* document, so blank-line joining would run several of them together under
|
|
442
|
+
* repeating headings with nothing marking which fact came from which memory.
|
|
443
|
+
* The element is also what makes `headline` prompt-visible.
|
|
444
|
+
*/
|
|
445
|
+
function renderStoredMemory(entry) {
|
|
446
|
+
const headline = entry.headline ? ` headline="${escapeXmlAttribute(entry.headline)}"` : "";
|
|
447
|
+
return `<memory slug="${escapeXmlAttribute(entry.slug)}"${headline}>\n${entry.content}\n</memory>`;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Attribute-safe text. Deliberately not `observation-groups.ts`'s
|
|
451
|
+
* `escapeAttribute`, which escapes only `"` because it round-trips through
|
|
452
|
+
* `parseObservationGroups` and that parser does not unescape. This rendering is
|
|
453
|
+
* one-way — nothing parses the prompt — so it can escape completely.
|
|
454
|
+
*/
|
|
455
|
+
function escapeXmlAttribute(value) {
|
|
456
|
+
return value
|
|
457
|
+
.replace(/&/g, "&")
|
|
458
|
+
.replace(/"/g, """)
|
|
459
|
+
.replace(/</g, "<")
|
|
460
|
+
.replace(/>/g, ">");
|
|
461
|
+
}
|
|
443
462
|
export async function updateObservationalMemory(options) {
|
|
444
463
|
const settings = resolveObservationalMemorySettings(options.effectiveContext, options.settings);
|
|
445
464
|
validateObservationalMemorySettings(settings);
|
|
@@ -523,7 +542,7 @@ export async function updateObservationalMemory(options) {
|
|
|
523
542
|
}
|
|
524
543
|
return result;
|
|
525
544
|
}
|
|
526
|
-
|
|
545
|
+
function optimizeObservationsForContext(observations) {
|
|
527
546
|
let optimized = stripObservationGroups(observations);
|
|
528
547
|
optimized = optimized.replace(/🟡\s*/g, "");
|
|
529
548
|
optimized = optimized.replace(/🟢\s*/g, "");
|
|
@@ -544,10 +563,11 @@ function emitMemoryActivity(handler, event) {
|
|
|
544
563
|
handler?.(event);
|
|
545
564
|
}
|
|
546
565
|
function buildObservationContextMessage(observations) {
|
|
547
|
-
|
|
566
|
+
// Already layer-optimized by `renderContextPack` — optimizing again here
|
|
567
|
+
// would reach the stored layer, which must stay verbatim.
|
|
548
568
|
return {
|
|
549
569
|
role: "user",
|
|
550
|
-
content: `<system-reminder>${OBSERVATION_CONTEXT_PROMPT}\n\n<observations>\n${
|
|
570
|
+
content: `<system-reminder>${OBSERVATION_CONTEXT_PROMPT}\n\n<observations>\n${observations}\n</observations>\n\n${OBSERVATION_CONTEXT_INSTRUCTIONS}</system-reminder>`,
|
|
551
571
|
timestamp: Date.now(),
|
|
552
572
|
};
|
|
553
573
|
}
|