@keycardai/eve 0.3.0 → 0.4.0
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 +18 -4
- package/dist/esm/connections.d.ts +17 -5
- package/dist/esm/connections.d.ts.map +1 -1
- package/dist/esm/connections.js +3 -3
- package/dist/esm/connections.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/interactive.d.ts +1 -1
- package/dist/esm/interactive.js +3 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -16,8 +16,9 @@ Three adapters, each one plugging into an eve primitive instead of wrapping it:
|
|
|
16
16
|
pnpm add @keycardai/eve
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
`eve` is a peer dependency, pinned to `>=0.
|
|
20
|
-
built and verified against eve `0.
|
|
19
|
+
`eve` is a peer dependency, pinned to `>=0.71.3 <0.72.0`: this package
|
|
20
|
+
requires eve 0.71 and was built and verified against eve `0.71.3`. eve is in
|
|
21
|
+
public beta and ships
|
|
21
22
|
releases most days, and its connection and auth surfaces are still moving, so
|
|
22
23
|
the range deliberately stops at the next minor rather than tracking `^`. Widen
|
|
23
24
|
it only after re-running this package's tests against the newer eve.
|
|
@@ -27,7 +28,15 @@ range current: a consumer who runs a newer eve and installs this anyway —
|
|
|
27
28
|
`--legacy-peer-deps` — silently loses the check, and the incompatibilities
|
|
28
29
|
surface at build time instead. Two of them are what the 0.47 → 0.54 bump had to
|
|
29
30
|
fix: an `auth` key list that `displayName` is not in, and a `requireAuth`
|
|
30
|
-
options type with no `reason` field.
|
|
31
|
+
options type with no `reason` field. The 0.54 → 0.71 bump moved non-interactive
|
|
32
|
+
connection auth from `principalType` to `credentialOwner`.
|
|
33
|
+
|
|
34
|
+
Upgrading an agent across eve 0.70 signs Slack users in once more: eve changed
|
|
35
|
+
the Slack principal to `slack:<install team>:<user>`, and this package keys
|
|
36
|
+
user-scoped tokens and grants by that principal, so the entries stored under the
|
|
37
|
+
old principal are no longer found. Nothing else about the integration moves
|
|
38
|
+
with the upgrade; the per-attempt callback
|
|
39
|
+
(`/eve/v1/connections/:name/callback/:attemptId/:token`) is unchanged.
|
|
31
40
|
|
|
32
41
|
eve itself declares `engines.node: ">=24"` and is ESM only. This package
|
|
33
42
|
imports eve for types only (`import type { ... } from "eve/connections"`), so
|
|
@@ -106,6 +115,11 @@ export default defineMcpClientConnection({
|
|
|
106
115
|
the connection app-scoped; a function receives the connection principal and
|
|
107
116
|
makes it user-scoped.
|
|
108
117
|
|
|
118
|
+
Each factory declares eve 0.71's `credentialOwner` (`"app"` or `"user"`) for
|
|
119
|
+
the pattern it implements, which is how eve decides whether to cache the token
|
|
120
|
+
once per connection or once per connection principal. Interactive definitions
|
|
121
|
+
(below) keep eve's `principalType: "user"`.
|
|
122
|
+
|
|
109
123
|
Nothing falls back to the agent's authority. A user-pattern connection with no
|
|
110
124
|
user principal, a turn whose subject token was never retained, and an expired
|
|
111
125
|
subject token all fail, each with its own reason: `principal_required`,
|
|
@@ -264,7 +278,7 @@ export function redisGrantStore(redis: {
|
|
|
264
278
|
|
|
265
279
|
Every method is async, and `put` with an `id` already held replaces that grant
|
|
266
280
|
(a refresh rewrites the rotated pair under the same `id`). The same three
|
|
267
|
-
methods map onto
|
|
281
|
+
methods map onto Upstash Redis's `hgetall`, `hset` and `hdel`, or any other
|
|
268
282
|
key-value backend.
|
|
269
283
|
|
|
270
284
|
Choosing a durable store puts refresh tokens at rest in that backend. Each one
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
import type { ConnectionPrincipal, NonInteractiveAuthorizationDefinition } from "eve/connections";
|
|
1
|
+
import type { ConnectionPrincipal, CredentialOwner, NonInteractiveAuthorizationDefinition } from "eve/connections";
|
|
2
2
|
import { type KeycardConnectionOptions } from "./config.js";
|
|
3
|
+
/**
|
|
4
|
+
* A non-interactive connection auth definition as eve 0.71 accepts it:
|
|
5
|
+
* `credentialOwner` declares whether the credential belongs to the agent
|
|
6
|
+
* (`"app"`, one token per connection across sessions) or to the end user
|
|
7
|
+
* (`"user"`, one token per connection principal). eve deprecated
|
|
8
|
+
* `principalType` on non-interactive auth in favor of it; interactive
|
|
9
|
+
* definitions still use `principalType: "user"`.
|
|
10
|
+
*/
|
|
11
|
+
export type KeycardConnectionAuth = Omit<NonInteractiveAuthorizationDefinition, "principalType"> & {
|
|
12
|
+
readonly credentialOwner: CredentialOwner;
|
|
13
|
+
};
|
|
3
14
|
/**
|
|
4
15
|
* None of these definitions carry a `displayName`. eve validates an authored
|
|
5
16
|
* connection's `auth` against a closed key list (`completeAuthorization`,
|
|
6
|
-
* `evict`, `getToken`, `principalType`,
|
|
17
|
+
* `credentialOwner`, `evict`, `getToken`, `principalType`,
|
|
18
|
+
* `startAuthorization`, `vercelConnect`),
|
|
7
19
|
* and a definition carrying any other key fails the build with
|
|
8
20
|
* `The "auth" field Unknown key "displayName"`. The only consumer of the field
|
|
9
21
|
* is eve's `stampChallengeDisplayName`, which resolves
|
|
@@ -27,7 +39,7 @@ export interface KeycardImpersonateOptions extends KeycardConnectionOptions {
|
|
|
27
39
|
* user, so this works on schedules and subagent turns. No exchange and no
|
|
28
40
|
* impersonation, so nothing about the caller reaches the zone.
|
|
29
41
|
*/
|
|
30
|
-
export declare function asSelf(options: KeycardConnectionOptions):
|
|
42
|
+
export declare function asSelf(options: KeycardConnectionOptions): KeycardConnectionAuth;
|
|
31
43
|
/**
|
|
32
44
|
* Connection auth that exchanges the caller's token for a resource token.
|
|
33
45
|
*
|
|
@@ -43,7 +55,7 @@ export declare function asSelf(options: KeycardConnectionOptions): NonInteractiv
|
|
|
43
55
|
* the sign-in signal, decided by a decode-only expiry check so an already
|
|
44
56
|
* dead token never costs an exchange round trip.
|
|
45
57
|
*/
|
|
46
|
-
export declare function onBehalfOf(options: KeycardConnectionOptions):
|
|
58
|
+
export declare function onBehalfOf(options: KeycardConnectionOptions): KeycardConnectionAuth;
|
|
47
59
|
/**
|
|
48
60
|
* Connection auth that acts for a named user the agent holds no token for.
|
|
49
61
|
*
|
|
@@ -56,5 +68,5 @@ export declare function onBehalfOf(options: KeycardConnectionOptions): NonIntera
|
|
|
56
68
|
* `principal_required` rejection; a fixed identifier needs no caller, so the
|
|
57
69
|
* connection is app-scoped and runs on schedules.
|
|
58
70
|
*/
|
|
59
|
-
export declare function impersonate(options: KeycardImpersonateOptions):
|
|
71
|
+
export declare function impersonate(options: KeycardImpersonateOptions): KeycardConnectionAuth;
|
|
60
72
|
//# sourceMappingURL=connections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../src/connections.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,mBAAmB,EACnB,qCAAqC,EAEtC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAsC,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAKhG
|
|
1
|
+
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../src/connections.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,qCAAqC,EAEtC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAsC,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAKhG;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,qCAAqC,EACrC,eAAe,CAChB,GAAG;IACF,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C,CAAC;AAEF;;;;;;;;;;;;GAYG;AAEH,uCAAuC;AACvC,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;IACzE;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,mBAAmB,KAAK,MAAM,CAAC,CAAC;CACvE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,wBAAwB,GAChC,qBAAqB,CAkBvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,wBAAwB,GAChC,qBAAqB,CAkDvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,yBAAyB,GACjC,qBAAqB,CAsCvB"}
|
package/dist/esm/connections.js
CHANGED
|
@@ -13,7 +13,7 @@ import { principalKey, readSubjectToken } from "./subjectTokens.js";
|
|
|
13
13
|
export function asSelf(options) {
|
|
14
14
|
const config = resolveConnectionConfig(options, "asSelf");
|
|
15
15
|
return {
|
|
16
|
-
|
|
16
|
+
credentialOwner: "app",
|
|
17
17
|
async getToken() {
|
|
18
18
|
const request = {
|
|
19
19
|
resource: config.resource,
|
|
@@ -42,7 +42,7 @@ export function asSelf(options) {
|
|
|
42
42
|
export function onBehalfOf(options) {
|
|
43
43
|
const config = resolveConnectionConfig(options, "onBehalfOf");
|
|
44
44
|
return {
|
|
45
|
-
|
|
45
|
+
credentialOwner: "user",
|
|
46
46
|
async getToken({ principal }) {
|
|
47
47
|
requireUser(principal, config.connectionName);
|
|
48
48
|
const subjectToken = readSubjectToken(principal, config.subjectTokens);
|
|
@@ -100,7 +100,7 @@ export function impersonate(options) {
|
|
|
100
100
|
throw new AuthProviderConfigurationError("impersonate requires a non-empty user identifier");
|
|
101
101
|
}
|
|
102
102
|
return {
|
|
103
|
-
|
|
103
|
+
credentialOwner: typeof identifier === "function" ? "user" : "app",
|
|
104
104
|
async getToken({ principal }) {
|
|
105
105
|
let userIdentifier;
|
|
106
106
|
if (typeof identifier === "function") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,SAAS,GAIV,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/connections.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
export { keycardAuth } from "./auth.js";
|
|
18
18
|
export type { KeycardAuthOptions, SubjectTokenRetention } from "./auth.js";
|
|
19
19
|
export { asSelf, impersonate, onBehalfOf } from "./connections.js";
|
|
20
|
-
export type { KeycardImpersonateOptions } from "./connections.js";
|
|
20
|
+
export type { KeycardConnectionAuth, KeycardImpersonateOptions } from "./connections.js";
|
|
21
21
|
export { interactive, memoryAuthorizedTokenStore } from "./interactive.js";
|
|
22
22
|
export type { AuthorizedGrant, GrantStore, KeycardInteractiveOptions, KeycardResumeState, RegisterAttemptClientOptions, RegisteredClient, WebAppFlow, } from "./interactive.js";
|
|
23
23
|
export type { KeycardConnectionOptions } from "./config.js";
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3E,YAAY,EACV,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,gBAAgB,EAChB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;;EAKlB,CAAC"}
|
|
@@ -41,7 +41,7 @@ export interface AuthorizedGrant {
|
|
|
41
41
|
* `getToken` after that; this store is what makes a later step reuse the grant
|
|
42
42
|
* a user already completed instead of parking again. `put` with an `id` the
|
|
43
43
|
* store already holds replaces that grant. The default is process-local, so a
|
|
44
|
-
* fresh process re-parks. A durable implementation (Redis,
|
|
44
|
+
* fresh process re-parks. A durable implementation (Redis, Upstash Redis) keeps the
|
|
45
45
|
* grant, refresh token included, at rest in that backend; eve's session
|
|
46
46
|
* attributes are never used, so no credential enters eve's durable state.
|
|
47
47
|
*/
|
package/dist/esm/interactive.js
CHANGED
|
@@ -177,9 +177,9 @@ export function interactive(options) {
|
|
|
177
177
|
principalType: "user",
|
|
178
178
|
/**
|
|
179
179
|
* No definition-level `displayName`: eve validates an authored connection's
|
|
180
|
-
* `auth` against a closed key list (`completeAuthorization`,
|
|
181
|
-
* `
|
|
182
|
-
* omits it. The name rides on the challenge instead, where eve's
|
|
180
|
+
* `auth` against a closed key list (`completeAuthorization`,
|
|
181
|
+
* `credentialOwner`, `evict`, `getToken`, `principalType`,
|
|
182
|
+
* `startAuthorization`, `vercelConnect`) that omits it. The name rides on the challenge instead, where eve's
|
|
183
183
|
* `stampChallengeDisplayName` falls back to it.
|
|
184
184
|
*/
|
|
185
185
|
async getToken({ principal }) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keycardai/eve",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "[Preview] Keycard auth adapters for eve agents: a zone token verifier for the channel auth walk, Keycard-backed connection auth, and interactive authorization over the zone's web flow",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"@keycardai/oauth": "0.25.0"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"eve": ">=0.
|
|
36
|
+
"eve": ">=0.71.3 <0.72.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@jest/globals": "^30.0.4",
|
|
40
40
|
"@types/node": "^25.6.0",
|
|
41
|
-
"eve": "0.
|
|
41
|
+
"eve": "0.71.3",
|
|
42
42
|
"jest": "^30.0.4",
|
|
43
43
|
"ts-jest": "^29.4.7",
|
|
44
44
|
"typescript": "^5.8.3"
|