@duetso/agent 0.3.12 → 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/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 +19 -39
- 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
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duetso/agent",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.13",
|
|
4
4
|
"description": "An opinionated full-stack agent turn runner with native memories, interrupts, and multi-agent orchestration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"build:compile": "bun build src/cli-entry.ts --compile --outfile dist/duet"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@earendil-works/pi-agent-core": "^0.
|
|
66
|
-
"@earendil-works/pi-ai": "^0.
|
|
67
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
65
|
+
"@earendil-works/pi-agent-core": "^0.84.2",
|
|
66
|
+
"@earendil-works/pi-ai": "^0.84.2",
|
|
67
|
+
"@earendil-works/pi-coding-agent": "^0.84.2",
|
|
68
68
|
"@electric-sql/pglite": "^0.4.5",
|
|
69
69
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
70
70
|
"@opentui/core": "^0.2.5",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"jstoxml": "^7.1.0",
|
|
78
78
|
"ms": "^2.1.3",
|
|
79
79
|
"nanoid": "^5.0.0",
|
|
80
|
-
"typebox": "^1.
|
|
80
|
+
"typebox": "^1.3.7"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@types/bun": "^1.3.13",
|
|
@@ -95,6 +95,6 @@
|
|
|
95
95
|
},
|
|
96
96
|
"packageManager": "bun@1.3.11",
|
|
97
97
|
"patchedDependencies": {
|
|
98
|
-
"@earendil-works/pi-ai@0.
|
|
98
|
+
"@earendil-works/pi-ai@0.84.2": "patches/@earendil-works%2Fpi-ai@0.84.2.patch"
|
|
99
99
|
}
|
|
100
100
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OAuthAuth } from "@earendil-works/pi-ai";
|
|
1
2
|
import { probeConnectedProvider } from "../connected-providers/capability-probe.js";
|
|
2
3
|
import { type ConnectedProviderId, type ConnectedProviderStore } from "../connected-providers/store.js";
|
|
3
4
|
export interface ConnectCommandIO {
|
|
@@ -17,6 +18,12 @@ export interface ConnectCommandIO {
|
|
|
17
18
|
openUrl?: (url: string) => void;
|
|
18
19
|
/** Read browser-flow fallback input or Copilot enterprise-domain input. */
|
|
19
20
|
prompt?: (message: string) => Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* OAuth implementation seam. An implementation hangs off its provider, so a
|
|
23
|
+
* test that needs a different one injects it here rather than swapping a
|
|
24
|
+
* registry out from under the command.
|
|
25
|
+
*/
|
|
26
|
+
oauth?: (id: ConnectedProviderId) => OAuthAuth;
|
|
20
27
|
/** Capability seam; production performs a real one-token provider completion. */
|
|
21
28
|
probe?: typeof probeConnectedProvider;
|
|
22
29
|
/** Clock used for persisted timestamps and device-code expiry events. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/cli/connect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/cli/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EACL,sBAAsB,EAEvB,MAAM,4CAA4C,CAAC;AAMpD,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE5B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,mBAAmB,KAAK,SAAS,CAAC;IAC/C,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACtC,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAOD,MAAM,MAAM,yBAAyB,GACjC;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,WAAW,GAAG,iBAAiB,GAAG,cAAc,CAAC;CACzD,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FhG"}
|
package/dist/src/cli/connect.js
CHANGED
|
@@ -131,39 +131,58 @@ async function connectProvider(id, options) {
|
|
|
131
131
|
const emit = (event) => writeEvent(options.write, event);
|
|
132
132
|
let credentials;
|
|
133
133
|
try {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
134
|
+
// pi-ai returns its canonical tagged credential; Duet's store holds the
|
|
135
|
+
// untagged token, and the tag is re-added at each pi-ai call site.
|
|
136
|
+
// pi-ai replaced the named login callbacks with one `notify` stream and one
|
|
137
|
+
// `prompt`, so the CLI switches on the event instead of registering a
|
|
138
|
+
// handler per kind. The device-code branch stays the only one a VM can use.
|
|
139
|
+
const { type: _tag, ...token } = await (options.oauth?.(id) ?? entry.oauth()).login({
|
|
140
|
+
signal: new AbortController().signal,
|
|
141
|
+
notify: (event) => {
|
|
142
|
+
if (event.type === "auth_url") {
|
|
143
|
+
options.writeError(`Open ${event.url} to connect ${entry.label}.\n`);
|
|
144
|
+
if (!options.noBrowser)
|
|
145
|
+
openUrl(event.url, options.openUrl);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (event.type === "device_code") {
|
|
149
|
+
if (options.json) {
|
|
150
|
+
emit({
|
|
151
|
+
type: "device_code",
|
|
152
|
+
provider: id,
|
|
153
|
+
verificationUri: event.verificationUri,
|
|
154
|
+
userCode: event.userCode,
|
|
155
|
+
expiresAt: now() + (event.expiresInSeconds ?? 900) * 1000,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
options.writeError(`User code: ${event.userCode}\nVerification URL: ${event.verificationUri}\n`);
|
|
160
|
+
}
|
|
161
|
+
if (!options.noBrowser && !options.json) {
|
|
162
|
+
openUrl(event.verificationUri, options.openUrl);
|
|
163
|
+
}
|
|
164
|
+
return;
|
|
149
165
|
}
|
|
150
|
-
|
|
151
|
-
options.writeError(`
|
|
166
|
+
if (event.type === "progress" && !options.json) {
|
|
167
|
+
options.writeError(`Connecting ${entry.label}…\n`);
|
|
152
168
|
}
|
|
153
|
-
if (!options.noBrowser && !options.json)
|
|
154
|
-
openUrl(verificationUri, options.openUrl);
|
|
155
169
|
},
|
|
156
|
-
|
|
157
|
-
if (
|
|
170
|
+
prompt: async (request) => {
|
|
171
|
+
if (request.type === "select") {
|
|
172
|
+
const wanted = options.forceDeviceCode ? "device_code" : "browser";
|
|
173
|
+
// A provider that offers no choice still gets our preference back;
|
|
174
|
+
// there is nothing to pick from, and every answer is equally arbitrary.
|
|
175
|
+
return (request.options.find((option) => option.id === wanted)?.id ??
|
|
176
|
+
request.options[0]?.id ??
|
|
177
|
+
wanted);
|
|
178
|
+
}
|
|
179
|
+
// Copilot's flow prompts for an optional value the VM cannot answer.
|
|
180
|
+
if (id === "github-copilot" && !options.prompt)
|
|
158
181
|
return "";
|
|
159
|
-
return (options.prompt ?? promptInput)(message);
|
|
160
|
-
},
|
|
161
|
-
onProgress: () => {
|
|
162
|
-
if (!options.json)
|
|
163
|
-
options.writeError(`Connecting ${entry.label}…\n`);
|
|
182
|
+
return (options.prompt ?? promptInput)(request.message);
|
|
164
183
|
},
|
|
165
|
-
onSelect: async () => (options.forceDeviceCode ? "device_code" : "browser"),
|
|
166
184
|
});
|
|
185
|
+
credentials = token;
|
|
167
186
|
}
|
|
168
187
|
catch (error) {
|
|
169
188
|
const code = loginErrorCode(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/cli/connect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/cli/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-probe.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/capability-probe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capability-probe.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/capability-probe.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAK7E,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,WAAW,EAAE,qBAAqB,CAAC;IACnC,6DAA6D;IAC7D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,mBAAmB,EACvB,WAAW,EAAE,gBAAgB,EAC7B,IAAI,GAAE,2BAAgC,GACrC,OAAO,CAAC,qBAAqB,CAAC,CAmDhC"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import { complete
|
|
1
|
+
import { complete } from "@earendil-works/pi-ai/compat";
|
|
2
2
|
import { connectedProviders } from "./registry.js";
|
|
3
3
|
const CHATGPT_SERVED_MODEL_IDS = ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"];
|
|
4
4
|
const CHATGPT_PROBE_MODEL_ID = "gpt-5.6-luna";
|
|
5
5
|
export async function probeConnectedProvider(id, credentials, deps = {}) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
?.oauth();
|
|
9
|
-
if (!provider)
|
|
6
|
+
const entry = connectedProviders().find((candidate) => candidate.id === id);
|
|
7
|
+
if (!entry)
|
|
10
8
|
return unknown("Provider is not registered.");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
9
|
+
const oauth = entry.oauth();
|
|
10
|
+
const credential = { ...credentials, type: "oauth" };
|
|
11
|
+
// The provider owns its model list: a configured fake issuer stands in for
|
|
12
|
+
// the whole provider, and its models carry the fixture's baseUrl/transport.
|
|
13
|
+
const provider = entry.provider();
|
|
14
|
+
const catalog = provider.getModels();
|
|
15
|
+
// Account-specific availability is the provider's, not the OAuth
|
|
16
|
+
// implementation's: an ineligible Copilot plan filters every model out.
|
|
17
|
+
const available = provider.filterModels?.(catalog, credential) ?? catalog;
|
|
13
18
|
const servedModelIds = id === "openai-codex" ? [...CHATGPT_SERVED_MODEL_IDS] : available.map((model) => model.id);
|
|
14
19
|
const copilotHasNoModels = id === "github-copilot" && hasEmptyAvailableModelIds(credentials);
|
|
15
20
|
// An ineligible Copilot account filters every model out. Probe a catalog donor
|
|
@@ -23,7 +28,7 @@ export async function probeConnectedProvider(id, credentials, deps = {}) {
|
|
|
23
28
|
systemPrompt: "Return one short token.",
|
|
24
29
|
messages: [{ role: "user", content: "ok", timestamp: Date.now() }],
|
|
25
30
|
}, {
|
|
26
|
-
apiKey:
|
|
31
|
+
apiKey: (await oauth.toAuth(credential)).apiKey,
|
|
27
32
|
maxTokens: 1,
|
|
28
33
|
onResponse: (response) => {
|
|
29
34
|
responseStatus = response.status;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-probe.js","sourceRoot":"","sources":["../../../src/connected-providers/capability-probe.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"capability-probe.js","sourceRoot":"","sources":["../../../src/connected-providers/capability-probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Provider } from "@earendil-works/pi-ai";
|
|
2
|
+
import type { ConnectedProviderId } from "./store.js";
|
|
1
3
|
export declare const FAKE_ISSUER_ENV = "DUET_CONNECT_FAKE_ISSUER_URL";
|
|
2
4
|
/** Concrete RFC-8628 contract imported by both client and issuer conformance tests. */
|
|
3
5
|
export declare const FAKE_ISSUER_WIRE_TABLE: {
|
|
@@ -56,6 +58,19 @@ export declare const FAKE_ISSUER_WIRE_TABLE: {
|
|
|
56
58
|
};
|
|
57
59
|
};
|
|
58
60
|
};
|
|
59
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Point the connected-provider registry at a fake issuer when one is
|
|
63
|
+
* configured.
|
|
64
|
+
*
|
|
65
|
+
* An OAuth implementation hangs off the provider that uses it, so standing in
|
|
66
|
+
* for the real issuer means standing in for the whole provider:
|
|
67
|
+
* `connectedProviders()` reads what this publishes in place of the built-in
|
|
68
|
+
* one. Being a read rather than a global mutation is what keeps the swap
|
|
69
|
+
* visible at the seam that consumes it.
|
|
70
|
+
*/
|
|
60
71
|
export declare function installFakeIssuerIfConfigured(env?: Record<string, string | undefined>): "installed" | "skipped";
|
|
72
|
+
/** Forget any installed fake, so one test's issuer cannot leak into the next. */
|
|
73
|
+
export declare function resetFakeIssuer(): void;
|
|
74
|
+
/** The fake standing in for `id`, or undefined when none is configured. */
|
|
75
|
+
export declare function fakeConnectedProvider(id: ConnectedProviderId): Provider | undefined;
|
|
61
76
|
//# sourceMappingURL=fake-issuer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-issuer.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/fake-issuer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fake-issuer.d.ts","sourceRoot":"","sources":["../../../src/connected-providers/fake-issuer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,eAAO,MAAM,eAAe,iCAAiC,CAAC;AAE9D,uFAAuF;AACvF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CzB,CAAC;AAqBX;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,WAAW,GAAG,SAAS,CAYzB;AAED,iFAAiF;AACjF,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,mBAAmB,GAAG,QAAQ,GAAG,SAAS,CAEnF"}
|
|
@@ -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"}
|