agentfootprint 6.8.0 → 6.10.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/CLAUDE.md +8 -0
- package/dist/adapters/identity/agentcore.js +84 -0
- package/dist/adapters/identity/agentcore.js.map +1 -0
- package/dist/esm/adapters/identity/agentcore.js +80 -0
- package/dist/esm/adapters/identity/agentcore.js.map +1 -0
- package/dist/esm/identity/staticTokens.js +33 -0
- package/dist/esm/identity/staticTokens.js.map +1 -0
- package/dist/esm/identity/types.js +30 -0
- package/dist/esm/identity/types.js.map +1 -0
- package/dist/esm/identity.js +29 -0
- package/dist/esm/identity.js.map +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/injection-engine/index.js.map +1 -1
- package/dist/esm/lib/injection-engine/skillGraph.js +18 -6
- package/dist/esm/lib/injection-engine/skillGraph.js.map +1 -1
- package/dist/identity/staticTokens.js +37 -0
- package/dist/identity/staticTokens.js.map +1 -0
- package/dist/identity/types.js +34 -0
- package/dist/identity/types.js.map +1 -0
- package/dist/identity.js +35 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/injection-engine/index.js.map +1 -1
- package/dist/lib/injection-engine/skillGraph.js +18 -6
- package/dist/lib/injection-engine/skillGraph.js.map +1 -1
- package/dist/types/adapters/identity/agentcore.d.ts +57 -0
- package/dist/types/adapters/identity/agentcore.d.ts.map +1 -0
- package/dist/types/identity/staticTokens.d.ts +24 -0
- package/dist/types/identity/staticTokens.d.ts.map +1 -0
- package/dist/types/identity/types.d.ts +65 -0
- package/dist/types/identity/types.d.ts.map +1 -0
- package/dist/types/identity.d.ts +30 -0
- package/dist/types/identity.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/index.d.ts +1 -1
- package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/skillGraph.d.ts +21 -2
- package/dist/types/lib/injection-engine/skillGraph.d.ts.map +1 -1
- package/package.json +6 -1
package/CLAUDE.md
CHANGED
|
@@ -287,6 +287,14 @@ graph.nodes; graph.edges; // the drawn shape (for a custom render
|
|
|
287
287
|
(model-reachable via `read_skill`, drawn dashed). `.tree(decide(...))` compiles each
|
|
288
288
|
leaf to the conjunction of its root→leaf predicates (with sibling negation → exactly
|
|
289
289
|
one leaf).
|
|
290
|
+
- **On-demand tools (the headline win):** because a `.tree()` routes to exactly ONE leaf
|
|
291
|
+
per turn, each leaf is stamped `autoActivate: 'currentSkill'` **by default** — so a
|
|
292
|
+
skill's `inject.tools` reach the LLM ONLY when the tree routes there, instead of every
|
|
293
|
+
skill's tools landing in the always-on static registry on every call. (`read_skill`
|
|
294
|
+
stays as the escape hatch.) Opt out with `.tree(root, { scopeTools: false })`; a leaf
|
|
295
|
+
that sets its own `autoActivate` in `defineSkill(...)` is always respected. Flat
|
|
296
|
+
`.entry()`/`.route()` graphs are **not** auto-scoped (multiple may be active) — set
|
|
297
|
+
`autoActivate: 'currentSkill'` on those skills yourself if you want per-skill gating.
|
|
290
298
|
- **Routing provenance:** each compiled skill carries `metadata.skillGraph` (a
|
|
291
299
|
`SkillRouting` — `via` + decision `path`). At run time it rides out on
|
|
292
300
|
`context.evaluated.routing` (per active skill: id, path, edge label, unlocked tools),
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* agentCoreIdentity — AWS Bedrock AgentCore Identity adapter (peer-dep
|
|
4
|
+
* `@aws-sdk/client-bedrock-agentcore`).
|
|
5
|
+
*
|
|
6
|
+
* import { agentCoreIdentity } from 'agentfootprint/identity';
|
|
7
|
+
* const credentials = agentCoreIdentity({ region: 'us-east-1' });
|
|
8
|
+
*
|
|
9
|
+
* Maps the {@link CredentialProvider} port onto AgentCore Identity's
|
|
10
|
+
* `GetResourceOauth2Token` (the SDK's `@requires_access_token` underneath):
|
|
11
|
+
* - request.mode 'machine' → `M2M`; 'user' → `USER_FEDERATION`
|
|
12
|
+
* - request.service → the configured OAuth2 credential-provider name
|
|
13
|
+
* - a returned access token → `{ status: 'token' }`
|
|
14
|
+
* - a returned auth URL → `{ status: 'authorization-required' }` (3LO consent)
|
|
15
|
+
*
|
|
16
|
+
* The token vault + refresh-token handling live in AgentCore, so repeat calls
|
|
17
|
+
* usually return a token directly (no consent round-trip).
|
|
18
|
+
*
|
|
19
|
+
* Pattern: Adapter (GoF) + lazy peer-dep load — the AWS SDK is required only when
|
|
20
|
+
* `getCredential` first runs (or never, if you inject `_client`). NOTE: confirm
|
|
21
|
+
* the SDK command/field names against your installed
|
|
22
|
+
* `@aws-sdk/client-bedrock-agentcore` version — this adapter targets the
|
|
23
|
+
* `GetResourceOauth2Token` shape and is structured so the request→result mapping
|
|
24
|
+
* is unit-tested via the `_client` seam independent of the SDK.
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.agentCoreIdentity = void 0;
|
|
28
|
+
const lazyRequire_js_1 = require("../../lib/lazyRequire.js");
|
|
29
|
+
function resolveClient(options) {
|
|
30
|
+
if (options._client)
|
|
31
|
+
return options._client;
|
|
32
|
+
// Lazy peer-dep: only loaded when no _client is injected and getCredential runs.
|
|
33
|
+
const sdk = (0, lazyRequire_js_1.lazyRequire)('@aws-sdk/client-bedrock-agentcore');
|
|
34
|
+
const Ctor = sdk.BedrockAgentCoreClient;
|
|
35
|
+
if (!Ctor) {
|
|
36
|
+
throw new Error('agentCoreIdentity: @aws-sdk/client-bedrock-agentcore did not expose BedrockAgentCoreClient. ' +
|
|
37
|
+
'Install/upgrade the SDK, or pass `_client` for a custom integration.');
|
|
38
|
+
}
|
|
39
|
+
const client = new Ctor({ ...(options.region && { region: options.region }) });
|
|
40
|
+
if (typeof client.getResourceOauth2Token !== 'function') {
|
|
41
|
+
throw new Error('agentCoreIdentity: the SDK client has no getResourceOauth2Token. Confirm the ' +
|
|
42
|
+
'@aws-sdk/client-bedrock-agentcore version, or pass `_client`.');
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
getResourceOauth2Token: (input) => client.getResourceOauth2Token(input),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** Build a {@link CredentialProvider} backed by AWS Bedrock AgentCore Identity. */
|
|
49
|
+
function agentCoreIdentity(options = {}) {
|
|
50
|
+
let client;
|
|
51
|
+
const getClient = () => (client ??= resolveClient(options));
|
|
52
|
+
return {
|
|
53
|
+
id: options.id ?? 'agentcore-identity',
|
|
54
|
+
async getCredential(req) {
|
|
55
|
+
const res = await getClient().getResourceOauth2Token({
|
|
56
|
+
resourceCredentialProviderName: req.service,
|
|
57
|
+
scopes: req.scopes ?? [],
|
|
58
|
+
oauth2Flow: req.mode === 'user' ? 'USER_FEDERATION' : 'M2M',
|
|
59
|
+
forceAuthentication: req.forceReauth ?? false,
|
|
60
|
+
...(options.workloadIdentityToken && {
|
|
61
|
+
workloadIdentityToken: options.workloadIdentityToken,
|
|
62
|
+
}),
|
|
63
|
+
});
|
|
64
|
+
if (res.accessToken) {
|
|
65
|
+
return {
|
|
66
|
+
status: 'token',
|
|
67
|
+
token: res.accessToken,
|
|
68
|
+
...(res.expiresAt !== undefined && { expiresAt: res.expiresAt }),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (res.authorizationUrl) {
|
|
72
|
+
return {
|
|
73
|
+
status: 'authorization-required',
|
|
74
|
+
authorizationUrl: res.authorizationUrl,
|
|
75
|
+
sessionId: res.sessionId ?? '',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
throw new Error(`agentCoreIdentity: GetResourceOauth2Token for '${req.service}' returned neither ` +
|
|
79
|
+
'an access token nor an authorization URL.');
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
exports.agentCoreIdentity = agentCoreIdentity;
|
|
84
|
+
//# sourceMappingURL=agentcore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentcore.js","sourceRoot":"","sources":["../../../src/adapters/identity/agentcore.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAEH,6DAAuD;AAuCvD,SAAS,aAAa,CAAC,OAAiC;IACtD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAC5C,iFAAiF;IACjF,MAAM,GAAG,GAAG,IAAA,4BAAW,EAA0B,mCAAmC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,GAAG,CAAC,sBAEJ,CAAC;IACd,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,8FAA8F;YAC5F,sEAAsE,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAE5E,CAAC;IACF,IAAI,OAAO,MAAM,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC7E,+DAA+D,CAClE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,CAChC,MAAM,CAAC,sBAAuB,CAAC,KAAK,CAAoC;KAC3E,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,SAAgB,iBAAiB,CAAC,UAAoC,EAAE;IACtE,IAAI,MAA+C,CAAC;IACpD,MAAM,SAAS,GAAG,GAAgC,EAAE,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzF,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,oBAAoB;QACtC,KAAK,CAAC,aAAa,CAAC,GAAsB;YACxC,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC,sBAAsB,CAAC;gBACnD,8BAA8B,EAAE,GAAG,CAAC,OAAO;gBAC3C,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;gBACxB,UAAU,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK;gBAC3D,mBAAmB,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;gBAC7C,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI;oBACnC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;iBACrD,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,GAAG,CAAC,WAAW;oBACtB,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;iBACjE,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACzB,OAAO;oBACL,MAAM,EAAE,wBAAwB;oBAChC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;oBACtC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;iBAC/B,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CACb,kDAAkD,GAAG,CAAC,OAAO,qBAAqB;gBAChF,2CAA2C,CAC9C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AArCD,8CAqCC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentCoreIdentity — AWS Bedrock AgentCore Identity adapter (peer-dep
|
|
3
|
+
* `@aws-sdk/client-bedrock-agentcore`).
|
|
4
|
+
*
|
|
5
|
+
* import { agentCoreIdentity } from 'agentfootprint/identity';
|
|
6
|
+
* const credentials = agentCoreIdentity({ region: 'us-east-1' });
|
|
7
|
+
*
|
|
8
|
+
* Maps the {@link CredentialProvider} port onto AgentCore Identity's
|
|
9
|
+
* `GetResourceOauth2Token` (the SDK's `@requires_access_token` underneath):
|
|
10
|
+
* - request.mode 'machine' → `M2M`; 'user' → `USER_FEDERATION`
|
|
11
|
+
* - request.service → the configured OAuth2 credential-provider name
|
|
12
|
+
* - a returned access token → `{ status: 'token' }`
|
|
13
|
+
* - a returned auth URL → `{ status: 'authorization-required' }` (3LO consent)
|
|
14
|
+
*
|
|
15
|
+
* The token vault + refresh-token handling live in AgentCore, so repeat calls
|
|
16
|
+
* usually return a token directly (no consent round-trip).
|
|
17
|
+
*
|
|
18
|
+
* Pattern: Adapter (GoF) + lazy peer-dep load — the AWS SDK is required only when
|
|
19
|
+
* `getCredential` first runs (or never, if you inject `_client`). NOTE: confirm
|
|
20
|
+
* the SDK command/field names against your installed
|
|
21
|
+
* `@aws-sdk/client-bedrock-agentcore` version — this adapter targets the
|
|
22
|
+
* `GetResourceOauth2Token` shape and is structured so the request→result mapping
|
|
23
|
+
* is unit-tested via the `_client` seam independent of the SDK.
|
|
24
|
+
*/
|
|
25
|
+
import { lazyRequire } from '../../lib/lazyRequire.js';
|
|
26
|
+
function resolveClient(options) {
|
|
27
|
+
if (options._client)
|
|
28
|
+
return options._client;
|
|
29
|
+
// Lazy peer-dep: only loaded when no _client is injected and getCredential runs.
|
|
30
|
+
const sdk = lazyRequire('@aws-sdk/client-bedrock-agentcore');
|
|
31
|
+
const Ctor = sdk.BedrockAgentCoreClient;
|
|
32
|
+
if (!Ctor) {
|
|
33
|
+
throw new Error('agentCoreIdentity: @aws-sdk/client-bedrock-agentcore did not expose BedrockAgentCoreClient. ' +
|
|
34
|
+
'Install/upgrade the SDK, or pass `_client` for a custom integration.');
|
|
35
|
+
}
|
|
36
|
+
const client = new Ctor({ ...(options.region && { region: options.region }) });
|
|
37
|
+
if (typeof client.getResourceOauth2Token !== 'function') {
|
|
38
|
+
throw new Error('agentCoreIdentity: the SDK client has no getResourceOauth2Token. Confirm the ' +
|
|
39
|
+
'@aws-sdk/client-bedrock-agentcore version, or pass `_client`.');
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
getResourceOauth2Token: (input) => client.getResourceOauth2Token(input),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Build a {@link CredentialProvider} backed by AWS Bedrock AgentCore Identity. */
|
|
46
|
+
export function agentCoreIdentity(options = {}) {
|
|
47
|
+
let client;
|
|
48
|
+
const getClient = () => (client ??= resolveClient(options));
|
|
49
|
+
return {
|
|
50
|
+
id: options.id ?? 'agentcore-identity',
|
|
51
|
+
async getCredential(req) {
|
|
52
|
+
const res = await getClient().getResourceOauth2Token({
|
|
53
|
+
resourceCredentialProviderName: req.service,
|
|
54
|
+
scopes: req.scopes ?? [],
|
|
55
|
+
oauth2Flow: req.mode === 'user' ? 'USER_FEDERATION' : 'M2M',
|
|
56
|
+
forceAuthentication: req.forceReauth ?? false,
|
|
57
|
+
...(options.workloadIdentityToken && {
|
|
58
|
+
workloadIdentityToken: options.workloadIdentityToken,
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
if (res.accessToken) {
|
|
62
|
+
return {
|
|
63
|
+
status: 'token',
|
|
64
|
+
token: res.accessToken,
|
|
65
|
+
...(res.expiresAt !== undefined && { expiresAt: res.expiresAt }),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (res.authorizationUrl) {
|
|
69
|
+
return {
|
|
70
|
+
status: 'authorization-required',
|
|
71
|
+
authorizationUrl: res.authorizationUrl,
|
|
72
|
+
sessionId: res.sessionId ?? '',
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
throw new Error(`agentCoreIdentity: GetResourceOauth2Token for '${req.service}' returned neither ` +
|
|
76
|
+
'an access token nor an authorization URL.');
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=agentcore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentcore.js","sourceRoot":"","sources":["../../../../src/adapters/identity/agentcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAuCvD,SAAS,aAAa,CAAC,OAAiC;IACtD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAC5C,iFAAiF;IACjF,MAAM,GAAG,GAAG,WAAW,CAA0B,mCAAmC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,GAAG,CAAC,sBAEJ,CAAC;IACd,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,8FAA8F;YAC5F,sEAAsE,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAE5E,CAAC;IACF,IAAI,OAAO,MAAM,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC7E,+DAA+D,CAClE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,CAChC,MAAM,CAAC,sBAAuB,CAAC,KAAK,CAAoC;KAC3E,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,UAAoC,EAAE;IACtE,IAAI,MAA+C,CAAC;IACpD,MAAM,SAAS,GAAG,GAAgC,EAAE,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzF,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,oBAAoB;QACtC,KAAK,CAAC,aAAa,CAAC,GAAsB;YACxC,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC,sBAAsB,CAAC;gBACnD,8BAA8B,EAAE,GAAG,CAAC,OAAO;gBAC3C,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;gBACxB,UAAU,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK;gBAC3D,mBAAmB,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;gBAC7C,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI;oBACnC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;iBACrD,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,GAAG,CAAC,WAAW;oBACtB,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;iBACjE,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACzB,OAAO;oBACL,MAAM,EAAE,wBAAwB;oBAChC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;oBACtC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;iBAC/B,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CACb,kDAAkD,GAAG,CAAC,OAAO,qBAAqB;gBAChF,2CAA2C,CAC9C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* staticTokens — a dev/test {@link CredentialProvider} backed by canned tokens.
|
|
3
|
+
*
|
|
4
|
+
* No network, no SDK. Use it to develop tools that need credentials without
|
|
5
|
+
* standing up AgentCore Identity (or any IdP). Production swaps it for
|
|
6
|
+
* `agentCoreIdentity()` — the tool code never changes.
|
|
7
|
+
*
|
|
8
|
+
* const credentials = staticTokens({ github: 'ghp_dev_xxx', slack: 'xoxb-dev' });
|
|
9
|
+
* const r = await credentials.getCredential({ service: 'github' });
|
|
10
|
+
* if (r.status === 'token') useHeader(`Bearer ${r.token}`);
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Build a {@link CredentialProvider} from a `service → token` map. Always 2-legged
|
|
14
|
+
* (returns the token directly); throws if a requested service has no token.
|
|
15
|
+
*/
|
|
16
|
+
export function staticTokens(tokens, options = {}) {
|
|
17
|
+
return {
|
|
18
|
+
id: options.id ?? 'static-tokens',
|
|
19
|
+
getCredential(req) {
|
|
20
|
+
const token = tokens[req.service];
|
|
21
|
+
if (!token) {
|
|
22
|
+
return Promise.reject(new Error(`staticTokens: no token configured for service '${req.service}'. ` +
|
|
23
|
+
`Known services: ${Object.keys(tokens).join(', ') || '(none)'}.`));
|
|
24
|
+
}
|
|
25
|
+
return Promise.resolve({
|
|
26
|
+
status: 'token',
|
|
27
|
+
token,
|
|
28
|
+
...(options.expiresAt !== undefined && { expiresAt: options.expiresAt }),
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=staticTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticTokens.js","sourceRoot":"","sources":["../../../src/identity/staticTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAwC,EACxC,UAA+B,EAAE;IAEjC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,eAAe;QACjC,aAAa,CAAC,GAAG;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,kDAAkD,GAAG,CAAC,OAAO,KAAK;oBAChE,mBAAmB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CACnE,CACF,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,OAAO;gBACf,KAAK;gBACL,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;aACzE,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/identity — the CredentialProvider port.
|
|
3
|
+
*
|
|
4
|
+
* OUTBOUND auth: vend a credential/token so a tool can call a downstream service
|
|
5
|
+
* (GitHub, Slack, Google…) on behalf of the agent or the end user. This is
|
|
6
|
+
* DISTINCT from `agentfootprint/security` (authorization — "is this tool
|
|
7
|
+
* allowed"); identity answers "get me a token to call X".
|
|
8
|
+
*
|
|
9
|
+
* Pattern: Port (Hexagonal). Vendors plug in as adapters:
|
|
10
|
+
* - `agentCoreIdentity()` — AWS Bedrock AgentCore Identity (token vault + OAuth)
|
|
11
|
+
* - `staticTokens()` — dev/test (canned tokens, no network)
|
|
12
|
+
*
|
|
13
|
+
* Two flows, mirroring OAuth (and AgentCore's `M2M` vs `USER_FEDERATION`):
|
|
14
|
+
* - `mode: 'machine'` (2-legged) — client-credentials; returns a token directly.
|
|
15
|
+
* - `mode: 'user'` (3-legged) — user-delegated; may need consent. When it
|
|
16
|
+
* does, the provider returns `authorization-required` with a URL; the agent
|
|
17
|
+
* surfaces it to the human (e.g. via pause/resume) and retries after consent.
|
|
18
|
+
* (Most calls skip consent — providers cache refresh tokens.)
|
|
19
|
+
*
|
|
20
|
+
* **Security invariant:** a vended token is a SECRET. Callers MUST use it locally
|
|
21
|
+
* (e.g. as an HTTP header inside a tool's `execute`) and MUST NOT write it to
|
|
22
|
+
* tracked scope (`setValue`) — tracked writes flow to the commit log, recorders,
|
|
23
|
+
* and observability exporters, which would leak the token into the trace. Pair
|
|
24
|
+
* with `RedactionPolicy` for defence in depth.
|
|
25
|
+
*/
|
|
26
|
+
/** Narrow a {@link CredentialResult} to the token branch. */
|
|
27
|
+
export function isCredentialToken(r) {
|
|
28
|
+
return r.status === 'token';
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAyCH,6DAA6D;AAC7D,MAAM,UAAU,iBAAiB,CAAC,CAAmB;IACnD,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/identity — outbound credential vending for agent tools.
|
|
3
|
+
*
|
|
4
|
+
* The {@link CredentialProvider} port + adapters. A tool calls
|
|
5
|
+
* `provider.getCredential({ service })` to get a token for a downstream service;
|
|
6
|
+
* `agentCoreIdentity()` backs it with AWS Bedrock AgentCore Identity, or
|
|
7
|
+
* `staticTokens()` for dev/test.
|
|
8
|
+
*
|
|
9
|
+
* SECURITY: a vended token is a secret — use it locally inside a tool's
|
|
10
|
+
* `execute` (e.g. an HTTP header); never write it to tracked scope. See
|
|
11
|
+
* `./identity/types` for the full invariant.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { agentCoreIdentity } from 'agentfootprint/identity';
|
|
16
|
+
*
|
|
17
|
+
* const credentials = agentCoreIdentity({ region: 'us-east-1' });
|
|
18
|
+
* const r = await credentials.getCredential({ service: 'github', mode: 'user', scopes: ['repo'] });
|
|
19
|
+
* if (r.status === 'authorization-required') {
|
|
20
|
+
* // surface r.authorizationUrl to the user (e.g. pause the run), then retry.
|
|
21
|
+
* } else {
|
|
22
|
+
* callGitHub({ headers: { authorization: `Bearer ${r.token}` } });
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export { isCredentialToken } from './identity/types.js';
|
|
27
|
+
export { staticTokens } from './identity/staticTokens.js';
|
|
28
|
+
export { agentCoreIdentity, } from './adapters/identity/agentcore.js';
|
|
29
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AASH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAA4B,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACL,iBAAiB,GAIlB,MAAM,kCAAkC,CAAC"}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,oEAAoE;AACpE,8DAA8D;AAC9D,uEAAuE;AACvE,kEAAkE;AAClE,sEAAsE;AACtE,sDAAsD;AACtD,OAAO,8CAA8C,CAAC;AACtD,OAAO,2CAA2C,CAAC;AACnD,OAAO,4CAA4C,CAAC;AAsCpD,qCAAqC;AACrC,cAAc,mBAAmB,CAAC;AAMlC,OAAO,EACL,WAAW,EACX,eAAe,GAIhB,MAAM,sBAAsB,CAAC;AAE9B,aAAa;AACb,OAAO,EACL,eAAe,GAQhB,MAAM,wBAAwB,CAAC;AAEhC,6BAA6B;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc;AAEd,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,gBAAgB;AAChB,SAAS;AAET,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,6DAA6D;AAC7D,YAAY,GAGb,MAAM,kBAAkB,CAAC;AAC1B,oEAAoE;AACpE,yEAAyE;AACzE,wEAAwE;AACxE,qEAAqE;AACrE,kDAAkD;AAClD,OAAO,EACL,gBAAgB,GAMjB,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAmB,MAAM,uBAAuB,CAAC;AAE1F,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AACzE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,2EAA2E;AAC3E,8EAA8E;AAC9E,0DAA0D;AAC1D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GAKjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,UAAU,EAA0B,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAO7D,sEAAsE;AACtE,wEAAwE;AACxE,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,cAAc,EACd,QAAQ,GAET,MAAM,iBAAiB,CAAC;AAYzB,qEAAqE;AACrE,kEAAkE;AAClE,kEAAkE;AAClE,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GAGpB,MAAM,6DAA6D,CAAC;AAErE,gEAAgE;AAChE,sEAAsE;AACtE,uDAAuD;AACvD,sEAAsE;AACtE,+DAA+D;AAC/D,gEAAgE;AAChE,wEAAwE;AACxE,mCAAmC;AACnC,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,GAKjB,MAAM,qDAAqD,CAAC;AAE7D,qBAAqB;AACrB,OAAO,EACL,OAAO,EACP,cAAc,GAIf,MAAM,mBAAmB,CAAC;AAE3B,yEAAyE;AACzE,yEAAyE;AACzE,6EAA6E;AAC7E,OAAO,EACL,oBAAoB,GAErB,MAAM,sCAAsC,CAAC;AAE9C,2EAA2E;AAC3E,gFAAgF;AAChF,4EAA4E;AAC5E,2EAA2E;AAC3E,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,EACL,YAAY,GAIb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,GAGxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAA2B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,eAAe,GAIhB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,iEAAiE;AACjE,yDAAyD;AACzD,kEAAkE;AAClE,6DAA6D;AAC7D,wEAAwE;AACxE,kEAAkE;AAClE,2DAA2D;AAC3D,sEAAsE;AAEtE,4BAA4B;AAC5B,OAAO,EACL,QAAQ,EACR,eAAe,GAIhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,eAAe,GAQhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,WAAW,EACX,kBAAkB,GAKnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,IAAI,EACJ,WAAW,GAKZ,MAAM,qBAAqB,CAAC;AAE7B,2BAA2B;AAC3B,8EAA8E;AAC9E,wEAAwE;AACxE,mEAAmE;AACnE,qEAAqE;AACrE,EAAE;AACF,kEAAkE;AAClE,qEAAqE;AACrE,wEAAwE;AACxE,gEAAgE;AAChE,gEAAgE;AAChE,6CAA6C;AAC7C,EAAE;AACF,2FAA2F;AAC3F,wFAAwF;AACxF,OAAO,EACL,YAAY,EACZ,IAAI,GAGL,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,aAAa,EACb,qBAAqB,EAErB,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,cAAc,EACd,eAAe,GAIhB,MAAM,kCAAkC,CAAC;AAE1C,+DAA+D;AAC/D,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAEhF,oEAAoE;AACpE,gEAAgE;AAChE,OAAO;AAOL,SAAS;AACT,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB;AAGtB,6CAA6C;AAC7C,iBAAiB,EAEjB,WAAW,EACX,kBAAkB,EAClB,aAAa,EAEb,mBAAmB,EACnB,kBAAkB,EAMlB,cAAc,EAEd,UAAU;AAEV,0EAA0E;AAC1E,eAAe;AAGf,yCAAyC;AACzC,UAAU,EACV,MAAM,EACN,wBAAwB,GAYzB,MAAM,iCAAiC,CAAC;AAEzC,qEAAqE;AACrE,0DAA0D;AAC1D,cAAc,qBAAqB,CAAC;AAEpC,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,sEAAsE;AACtE,8CAA8C;AAC9C,OAAO;AACL,YAAY;AACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO;AACL,kBAAkB;AAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO;AACL,kBAAkB;AAClB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO;AACL,+DAA+D;AAC/D,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,oBAAoB;AAQpB,iEAAiE;AACjE,iEAAiE;AACjE,4BAA4B;AAC5B,aAAa,EACb,YAAY,EACZ,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,OAAO,EACL,SAAS,EAET,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAE5B,kEAAkE;AAClE,sEAAsE;AACtE,sEAAsE;AACtE,6BAA6B;AAC7B,OAAO,EACL,SAAS,EACT,aAAa,GASd,MAAM,oBAAoB,CAAC;AAE5B,wEAAwE;AACxE,qEAAqE;AACrE,mEAAmE;AACnE,sEAAsE;AACtE,sEAAsE;AACtE,OAAO,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,GAIjB,MAAM,2BAA2B,CAAC;AAEnC,wEAAwE;AACxE,wEAAwE;AACxE,uDAAuD;AACvD,OAAO,EACL,gBAAgB,EAChB,eAAe,GAIhB,MAAM,qBAAqB,CAAC;AAE7B,mEAAmE;AACnE,oEAAoE;AACpE,sDAAsD;AACtD,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/injection-engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,+DAA+D;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,2BAA2B,GAE5B,MAAM,kCAAkC,CAAC;AAE1C,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAiC,MAAM,kCAAkC,CAAC;AAEpG,OAAO,EACL,WAAW,EACX,kBAAkB,GAKnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,+BAA+B;AAC/B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAsB,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,cAAc,EAA8B,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EAAE,UAAU,EAA0B,MAAM,2BAA2B,CAAC;AAE/E,6EAA6E;AAC7E,0EAA0E;AAC1E,qDAAqD;AACrD,OAAO,EACL,eAAe,GAGhB,MAAM,gCAAgC,CAAC;AAExC,4EAA4E;AAC5E,8EAA8E;AAC9E,OAAO,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/injection-engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,+DAA+D;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,2BAA2B,GAE5B,MAAM,kCAAkC,CAAC;AAE1C,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAiC,MAAM,kCAAkC,CAAC;AAEpG,OAAO,EACL,WAAW,EACX,kBAAkB,GAKnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,+BAA+B;AAC/B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAsB,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,cAAc,EAA8B,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EAAE,UAAU,EAA0B,MAAM,2BAA2B,CAAC;AAE/E,6EAA6E;AAC7E,0EAA0E;AAC1E,qDAAqD;AACrD,OAAO,EACL,eAAe,GAGhB,MAAM,gCAAgC,CAAC;AAExC,4EAA4E;AAC5E,8EAA8E;AAC9E,OAAO,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,GAYzB,MAAM,iBAAiB,CAAC"}
|
|
@@ -42,6 +42,7 @@ export function skillGraph() {
|
|
|
42
42
|
const entries = [];
|
|
43
43
|
const routes = [];
|
|
44
44
|
let treeRoot;
|
|
45
|
+
let treeScopeTools = true;
|
|
45
46
|
const remember = (skill) => {
|
|
46
47
|
if (skill.flavor !== 'skill') {
|
|
47
48
|
throw new Error(`skillGraph: "${skill.id}" is not a skill (flavor='${skill.flavor}').`);
|
|
@@ -70,8 +71,10 @@ export function skillGraph() {
|
|
|
70
71
|
});
|
|
71
72
|
return builder;
|
|
72
73
|
},
|
|
73
|
-
tree(root) {
|
|
74
|
+
tree(root, opts) {
|
|
74
75
|
treeRoot = root;
|
|
76
|
+
if (opts?.scopeTools === false)
|
|
77
|
+
treeScopeTools = false;
|
|
75
78
|
return builder;
|
|
76
79
|
},
|
|
77
80
|
build() {
|
|
@@ -80,7 +83,7 @@ export function skillGraph() {
|
|
|
80
83
|
const edges = [];
|
|
81
84
|
if (treeRoot) {
|
|
82
85
|
// Decision-tree mode (v3): compile each leaf to a path-conjunction trigger.
|
|
83
|
-
compileTree(treeRoot, () => true, { skills, nodes, edges }, null, { n: 0 }, []);
|
|
86
|
+
compileTree(treeRoot, () => true, { skills, nodes, edges }, null, { n: 0 }, [], treeScopeTools);
|
|
84
87
|
}
|
|
85
88
|
else {
|
|
86
89
|
// Flat entry/route mode (v1).
|
|
@@ -141,7 +144,7 @@ function deriveTrigger(id, _skill, entries, routes) {
|
|
|
141
144
|
/** Walk a decision tree → push each leaf skill (with its path-conjunction trigger,
|
|
142
145
|
* earlier-sibling negation baked into the path) plus predicate/skill nodes +
|
|
143
146
|
* branch edges for drawing. */
|
|
144
|
-
function compileTree(node, pathCond, out, parent, counter, path) {
|
|
147
|
+
function compileTree(node, pathCond, out, parent, counter, path, scopeTools) {
|
|
145
148
|
if (isDecisionNode(node)) {
|
|
146
149
|
const id = `d${counter.n++}`;
|
|
147
150
|
const label = node.label ?? 'decide';
|
|
@@ -152,18 +155,27 @@ function compileTree(node, pathCond, out, parent, counter, path) {
|
|
|
152
155
|
kind: 'predicate',
|
|
153
156
|
label: parent?.branch,
|
|
154
157
|
});
|
|
155
|
-
compileTree(node.whenTrue, (ctx) => pathCond(ctx) && node.predicate(ctx), out, { id, branch: 'yes' }, counter, [...path, { label, branch: 'yes' }]);
|
|
156
|
-
compileTree(node.whenFalse, (ctx) => pathCond(ctx) && !node.predicate(ctx), out, { id, branch: 'no' }, counter, [...path, { label, branch: 'no' }]);
|
|
158
|
+
compileTree(node.whenTrue, (ctx) => pathCond(ctx) && node.predicate(ctx), out, { id, branch: 'yes' }, counter, [...path, { label, branch: 'yes' }], scopeTools);
|
|
159
|
+
compileTree(node.whenFalse, (ctx) => pathCond(ctx) && !node.predicate(ctx), out, { id, branch: 'no' }, counter, [...path, { label, branch: 'no' }], scopeTools);
|
|
157
160
|
}
|
|
158
161
|
else {
|
|
159
162
|
if (node.flavor !== 'skill') {
|
|
160
163
|
throw new Error(`skillGraph.tree: leaf "${node.id}" is not a skill (flavor='${node.flavor}').`);
|
|
161
164
|
}
|
|
162
165
|
const routing = { via: 'tree', path };
|
|
166
|
+
// On-demand tools: a tree routes to exactly one leaf per iteration, so scope
|
|
167
|
+
// each leaf's tools to itself (`autoActivate: 'currentSkill'`) unless the user
|
|
168
|
+
// opted out (`scopeTools: false`) or the skill already declared its own mode.
|
|
169
|
+
const existingAuto = node.metadata?.autoActivate;
|
|
170
|
+
const autoActivate = existingAuto ?? (scopeTools ? 'currentSkill' : undefined);
|
|
163
171
|
out.skills.push({
|
|
164
172
|
...node,
|
|
165
173
|
trigger: { kind: 'rule', activeWhen: pathCond },
|
|
166
|
-
metadata: {
|
|
174
|
+
metadata: {
|
|
175
|
+
...node.metadata,
|
|
176
|
+
[SKILL_GRAPH_METADATA_KEY]: routing,
|
|
177
|
+
...(autoActivate && { autoActivate }),
|
|
178
|
+
},
|
|
167
179
|
});
|
|
168
180
|
out.nodes.push({ id: node.id, kind: 'skill', label: node.id });
|
|
169
181
|
out.edges.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillGraph.js","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"skillGraph.js","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* staticTokens — a dev/test {@link CredentialProvider} backed by canned tokens.
|
|
4
|
+
*
|
|
5
|
+
* No network, no SDK. Use it to develop tools that need credentials without
|
|
6
|
+
* standing up AgentCore Identity (or any IdP). Production swaps it for
|
|
7
|
+
* `agentCoreIdentity()` — the tool code never changes.
|
|
8
|
+
*
|
|
9
|
+
* const credentials = staticTokens({ github: 'ghp_dev_xxx', slack: 'xoxb-dev' });
|
|
10
|
+
* const r = await credentials.getCredential({ service: 'github' });
|
|
11
|
+
* if (r.status === 'token') useHeader(`Bearer ${r.token}`);
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.staticTokens = void 0;
|
|
15
|
+
/**
|
|
16
|
+
* Build a {@link CredentialProvider} from a `service → token` map. Always 2-legged
|
|
17
|
+
* (returns the token directly); throws if a requested service has no token.
|
|
18
|
+
*/
|
|
19
|
+
function staticTokens(tokens, options = {}) {
|
|
20
|
+
return {
|
|
21
|
+
id: options.id ?? 'static-tokens',
|
|
22
|
+
getCredential(req) {
|
|
23
|
+
const token = tokens[req.service];
|
|
24
|
+
if (!token) {
|
|
25
|
+
return Promise.reject(new Error(`staticTokens: no token configured for service '${req.service}'. ` +
|
|
26
|
+
`Known services: ${Object.keys(tokens).join(', ') || '(none)'}.`));
|
|
27
|
+
}
|
|
28
|
+
return Promise.resolve({
|
|
29
|
+
status: 'token',
|
|
30
|
+
token,
|
|
31
|
+
...(options.expiresAt !== undefined && { expiresAt: options.expiresAt }),
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.staticTokens = staticTokens;
|
|
37
|
+
//# sourceMappingURL=staticTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticTokens.js","sourceRoot":"","sources":["../../src/identity/staticTokens.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAWH;;;GAGG;AACH,SAAgB,YAAY,CAC1B,MAAwC,EACxC,UAA+B,EAAE;IAEjC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,eAAe;QACjC,aAAa,CAAC,GAAG;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,kDAAkD,GAAG,CAAC,OAAO,KAAK;oBAChE,mBAAmB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CACnE,CACF,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,OAAO;gBACf,KAAK;gBACL,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;aACzE,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAvBD,oCAuBC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* agentfootprint/identity — the CredentialProvider port.
|
|
4
|
+
*
|
|
5
|
+
* OUTBOUND auth: vend a credential/token so a tool can call a downstream service
|
|
6
|
+
* (GitHub, Slack, Google…) on behalf of the agent or the end user. This is
|
|
7
|
+
* DISTINCT from `agentfootprint/security` (authorization — "is this tool
|
|
8
|
+
* allowed"); identity answers "get me a token to call X".
|
|
9
|
+
*
|
|
10
|
+
* Pattern: Port (Hexagonal). Vendors plug in as adapters:
|
|
11
|
+
* - `agentCoreIdentity()` — AWS Bedrock AgentCore Identity (token vault + OAuth)
|
|
12
|
+
* - `staticTokens()` — dev/test (canned tokens, no network)
|
|
13
|
+
*
|
|
14
|
+
* Two flows, mirroring OAuth (and AgentCore's `M2M` vs `USER_FEDERATION`):
|
|
15
|
+
* - `mode: 'machine'` (2-legged) — client-credentials; returns a token directly.
|
|
16
|
+
* - `mode: 'user'` (3-legged) — user-delegated; may need consent. When it
|
|
17
|
+
* does, the provider returns `authorization-required` with a URL; the agent
|
|
18
|
+
* surfaces it to the human (e.g. via pause/resume) and retries after consent.
|
|
19
|
+
* (Most calls skip consent — providers cache refresh tokens.)
|
|
20
|
+
*
|
|
21
|
+
* **Security invariant:** a vended token is a SECRET. Callers MUST use it locally
|
|
22
|
+
* (e.g. as an HTTP header inside a tool's `execute`) and MUST NOT write it to
|
|
23
|
+
* tracked scope (`setValue`) — tracked writes flow to the commit log, recorders,
|
|
24
|
+
* and observability exporters, which would leak the token into the trace. Pair
|
|
25
|
+
* with `RedactionPolicy` for defence in depth.
|
|
26
|
+
*/
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.isCredentialToken = void 0;
|
|
29
|
+
/** Narrow a {@link CredentialResult} to the token branch. */
|
|
30
|
+
function isCredentialToken(r) {
|
|
31
|
+
return r.status === 'token';
|
|
32
|
+
}
|
|
33
|
+
exports.isCredentialToken = isCredentialToken;
|
|
34
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/identity/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAyCH,6DAA6D;AAC7D,SAAgB,iBAAiB,CAAC,CAAmB;IACnD,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;AAC9B,CAAC;AAFD,8CAEC"}
|
package/dist/identity.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* agentfootprint/identity — outbound credential vending for agent tools.
|
|
4
|
+
*
|
|
5
|
+
* The {@link CredentialProvider} port + adapters. A tool calls
|
|
6
|
+
* `provider.getCredential({ service })` to get a token for a downstream service;
|
|
7
|
+
* `agentCoreIdentity()` backs it with AWS Bedrock AgentCore Identity, or
|
|
8
|
+
* `staticTokens()` for dev/test.
|
|
9
|
+
*
|
|
10
|
+
* SECURITY: a vended token is a secret — use it locally inside a tool's
|
|
11
|
+
* `execute` (e.g. an HTTP header); never write it to tracked scope. See
|
|
12
|
+
* `./identity/types` for the full invariant.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { agentCoreIdentity } from 'agentfootprint/identity';
|
|
17
|
+
*
|
|
18
|
+
* const credentials = agentCoreIdentity({ region: 'us-east-1' });
|
|
19
|
+
* const r = await credentials.getCredential({ service: 'github', mode: 'user', scopes: ['repo'] });
|
|
20
|
+
* if (r.status === 'authorization-required') {
|
|
21
|
+
* // surface r.authorizationUrl to the user (e.g. pause the run), then retry.
|
|
22
|
+
* } else {
|
|
23
|
+
* callGitHub({ headers: { authorization: `Bearer ${r.token}` } });
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.agentCoreIdentity = exports.staticTokens = exports.isCredentialToken = void 0;
|
|
29
|
+
var types_js_1 = require("./identity/types.js");
|
|
30
|
+
Object.defineProperty(exports, "isCredentialToken", { enumerable: true, get: function () { return types_js_1.isCredentialToken; } });
|
|
31
|
+
var staticTokens_js_1 = require("./identity/staticTokens.js");
|
|
32
|
+
Object.defineProperty(exports, "staticTokens", { enumerable: true, get: function () { return staticTokens_js_1.staticTokens; } });
|
|
33
|
+
var agentcore_js_1 = require("./adapters/identity/agentcore.js");
|
|
34
|
+
Object.defineProperty(exports, "agentCoreIdentity", { enumerable: true, get: function () { return agentcore_js_1.agentCoreIdentity; } });
|
|
35
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AASH,gDAAwD;AAA/C,6GAAA,iBAAiB,OAAA;AAC1B,8DAAoF;AAA3E,+GAAA,YAAY,OAAA;AACrB,iEAK0C;AAJxC,iHAAA,iBAAiB,OAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAYH,+DAA+D;AAC/D,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAE/B,SAAS;AACT,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,mFAG0C;AAFxC,6IAAA,2BAA2B,OAAA;AAI7B,gFAAgF;AAChF,yEAAoG;AAA3F,yHAAA,iBAAiB,OAAA;AAE1B,6DAOoC;AANlC,6GAAA,WAAW,OAAA;AACX,oHAAA,kBAAkB,OAAA;AAOpB,uDAA8E;AAArE,iHAAA,aAAa,OAAA;AAEtB,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,+BAA+B;AAC/B,iDAA8F;AAArF,oHAAA,mBAAmB,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AAEhD,mEAA2F;AAAlF,mHAAA,cAAc,OAAA;AAEvB,2DAA+E;AAAtE,2GAAA,UAAU,OAAA;AAEnB,6EAA6E;AAC7E,0EAA0E;AAC1E,qDAAqD;AACrD,qEAIwC;AAHtC,qHAAA,eAAe,OAAA;AAKjB,4EAA4E;AAC5E,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAYH,+DAA+D;AAC/D,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAE/B,SAAS;AACT,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,mFAG0C;AAFxC,6IAAA,2BAA2B,OAAA;AAI7B,gFAAgF;AAChF,yEAAoG;AAA3F,yHAAA,iBAAiB,OAAA;AAE1B,6DAOoC;AANlC,6GAAA,WAAW,OAAA;AACX,oHAAA,kBAAkB,OAAA;AAOpB,uDAA8E;AAArE,iHAAA,aAAa,OAAA;AAEtB,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,+BAA+B;AAC/B,iDAA8F;AAArF,oHAAA,mBAAmB,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AAEhD,mEAA2F;AAAlF,mHAAA,cAAc,OAAA;AAEvB,2DAA+E;AAAtE,2GAAA,UAAU,OAAA;AAEnB,6EAA6E;AAC7E,0EAA0E;AAC1E,qDAAqD;AACrD,qEAIwC;AAHtC,qHAAA,eAAe,OAAA;AAKjB,4EAA4E;AAC5E,8EAA8E;AAC9E,iDAeyB;AAdvB,2GAAA,UAAU,OAAA;AACV,uGAAA,MAAM,OAAA;AACN,yHAAA,wBAAwB,OAAA"}
|
|
@@ -46,6 +46,7 @@ function skillGraph() {
|
|
|
46
46
|
const entries = [];
|
|
47
47
|
const routes = [];
|
|
48
48
|
let treeRoot;
|
|
49
|
+
let treeScopeTools = true;
|
|
49
50
|
const remember = (skill) => {
|
|
50
51
|
if (skill.flavor !== 'skill') {
|
|
51
52
|
throw new Error(`skillGraph: "${skill.id}" is not a skill (flavor='${skill.flavor}').`);
|
|
@@ -74,8 +75,10 @@ function skillGraph() {
|
|
|
74
75
|
});
|
|
75
76
|
return builder;
|
|
76
77
|
},
|
|
77
|
-
tree(root) {
|
|
78
|
+
tree(root, opts) {
|
|
78
79
|
treeRoot = root;
|
|
80
|
+
if (opts?.scopeTools === false)
|
|
81
|
+
treeScopeTools = false;
|
|
79
82
|
return builder;
|
|
80
83
|
},
|
|
81
84
|
build() {
|
|
@@ -84,7 +87,7 @@ function skillGraph() {
|
|
|
84
87
|
const edges = [];
|
|
85
88
|
if (treeRoot) {
|
|
86
89
|
// Decision-tree mode (v3): compile each leaf to a path-conjunction trigger.
|
|
87
|
-
compileTree(treeRoot, () => true, { skills, nodes, edges }, null, { n: 0 }, []);
|
|
90
|
+
compileTree(treeRoot, () => true, { skills, nodes, edges }, null, { n: 0 }, [], treeScopeTools);
|
|
88
91
|
}
|
|
89
92
|
else {
|
|
90
93
|
// Flat entry/route mode (v1).
|
|
@@ -146,7 +149,7 @@ function deriveTrigger(id, _skill, entries, routes) {
|
|
|
146
149
|
/** Walk a decision tree → push each leaf skill (with its path-conjunction trigger,
|
|
147
150
|
* earlier-sibling negation baked into the path) plus predicate/skill nodes +
|
|
148
151
|
* branch edges for drawing. */
|
|
149
|
-
function compileTree(node, pathCond, out, parent, counter, path) {
|
|
152
|
+
function compileTree(node, pathCond, out, parent, counter, path, scopeTools) {
|
|
150
153
|
if (isDecisionNode(node)) {
|
|
151
154
|
const id = `d${counter.n++}`;
|
|
152
155
|
const label = node.label ?? 'decide';
|
|
@@ -157,18 +160,27 @@ function compileTree(node, pathCond, out, parent, counter, path) {
|
|
|
157
160
|
kind: 'predicate',
|
|
158
161
|
label: parent?.branch,
|
|
159
162
|
});
|
|
160
|
-
compileTree(node.whenTrue, (ctx) => pathCond(ctx) && node.predicate(ctx), out, { id, branch: 'yes' }, counter, [...path, { label, branch: 'yes' }]);
|
|
161
|
-
compileTree(node.whenFalse, (ctx) => pathCond(ctx) && !node.predicate(ctx), out, { id, branch: 'no' }, counter, [...path, { label, branch: 'no' }]);
|
|
163
|
+
compileTree(node.whenTrue, (ctx) => pathCond(ctx) && node.predicate(ctx), out, { id, branch: 'yes' }, counter, [...path, { label, branch: 'yes' }], scopeTools);
|
|
164
|
+
compileTree(node.whenFalse, (ctx) => pathCond(ctx) && !node.predicate(ctx), out, { id, branch: 'no' }, counter, [...path, { label, branch: 'no' }], scopeTools);
|
|
162
165
|
}
|
|
163
166
|
else {
|
|
164
167
|
if (node.flavor !== 'skill') {
|
|
165
168
|
throw new Error(`skillGraph.tree: leaf "${node.id}" is not a skill (flavor='${node.flavor}').`);
|
|
166
169
|
}
|
|
167
170
|
const routing = { via: 'tree', path };
|
|
171
|
+
// On-demand tools: a tree routes to exactly one leaf per iteration, so scope
|
|
172
|
+
// each leaf's tools to itself (`autoActivate: 'currentSkill'`) unless the user
|
|
173
|
+
// opted out (`scopeTools: false`) or the skill already declared its own mode.
|
|
174
|
+
const existingAuto = node.metadata?.autoActivate;
|
|
175
|
+
const autoActivate = existingAuto ?? (scopeTools ? 'currentSkill' : undefined);
|
|
168
176
|
out.skills.push({
|
|
169
177
|
...node,
|
|
170
178
|
trigger: { kind: 'rule', activeWhen: pathCond },
|
|
171
|
-
metadata: {
|
|
179
|
+
metadata: {
|
|
180
|
+
...node.metadata,
|
|
181
|
+
[exports.SKILL_GRAPH_METADATA_KEY]: routing,
|
|
182
|
+
...(autoActivate && { autoActivate }),
|
|
183
|
+
},
|
|
172
184
|
});
|
|
173
185
|
out.nodes.push({ id: node.id, kind: 'skill', label: node.id });
|
|
174
186
|
out.edges.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillGraph.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;
|
|
1
|
+
{"version":3,"file":"skillGraph.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentCoreIdentity — AWS Bedrock AgentCore Identity adapter (peer-dep
|
|
3
|
+
* `@aws-sdk/client-bedrock-agentcore`).
|
|
4
|
+
*
|
|
5
|
+
* import { agentCoreIdentity } from 'agentfootprint/identity';
|
|
6
|
+
* const credentials = agentCoreIdentity({ region: 'us-east-1' });
|
|
7
|
+
*
|
|
8
|
+
* Maps the {@link CredentialProvider} port onto AgentCore Identity's
|
|
9
|
+
* `GetResourceOauth2Token` (the SDK's `@requires_access_token` underneath):
|
|
10
|
+
* - request.mode 'machine' → `M2M`; 'user' → `USER_FEDERATION`
|
|
11
|
+
* - request.service → the configured OAuth2 credential-provider name
|
|
12
|
+
* - a returned access token → `{ status: 'token' }`
|
|
13
|
+
* - a returned auth URL → `{ status: 'authorization-required' }` (3LO consent)
|
|
14
|
+
*
|
|
15
|
+
* The token vault + refresh-token handling live in AgentCore, so repeat calls
|
|
16
|
+
* usually return a token directly (no consent round-trip).
|
|
17
|
+
*
|
|
18
|
+
* Pattern: Adapter (GoF) + lazy peer-dep load — the AWS SDK is required only when
|
|
19
|
+
* `getCredential` first runs (or never, if you inject `_client`). NOTE: confirm
|
|
20
|
+
* the SDK command/field names against your installed
|
|
21
|
+
* `@aws-sdk/client-bedrock-agentcore` version — this adapter targets the
|
|
22
|
+
* `GetResourceOauth2Token` shape and is structured so the request→result mapping
|
|
23
|
+
* is unit-tested via the `_client` seam independent of the SDK.
|
|
24
|
+
*/
|
|
25
|
+
import type { CredentialProvider } from '../../identity/types.js';
|
|
26
|
+
/** Raw result shape we consume from the AgentCore identity client. */
|
|
27
|
+
export interface AgentCoreOauthResponse {
|
|
28
|
+
readonly accessToken?: string;
|
|
29
|
+
readonly authorizationUrl?: string;
|
|
30
|
+
readonly sessionId?: string;
|
|
31
|
+
/** Unix seconds. */
|
|
32
|
+
readonly expiresAt?: number;
|
|
33
|
+
}
|
|
34
|
+
/** The minimal client surface the adapter calls — wraps `GetResourceOauth2Token`.
|
|
35
|
+
* The real AWS SDK client is adapted to this; tests inject a fake via `_client`. */
|
|
36
|
+
export interface AgentCoreIdentityClientLike {
|
|
37
|
+
getResourceOauth2Token(input: {
|
|
38
|
+
readonly resourceCredentialProviderName: string;
|
|
39
|
+
readonly scopes: readonly string[];
|
|
40
|
+
readonly oauth2Flow: 'M2M' | 'USER_FEDERATION';
|
|
41
|
+
readonly forceAuthentication: boolean;
|
|
42
|
+
readonly workloadIdentityToken?: string;
|
|
43
|
+
}): Promise<AgentCoreOauthResponse>;
|
|
44
|
+
}
|
|
45
|
+
export interface AgentCoreIdentityOptions {
|
|
46
|
+
readonly region?: string;
|
|
47
|
+
/** The agent's workload access token (AgentCore Runtime injects one in-container;
|
|
48
|
+
* supply it explicitly when running elsewhere). */
|
|
49
|
+
readonly workloadIdentityToken?: string;
|
|
50
|
+
/** Stable provider id (default 'agentcore-identity'). */
|
|
51
|
+
readonly id?: string;
|
|
52
|
+
/** Test seam — inject a client implementing {@link AgentCoreIdentityClientLike}. */
|
|
53
|
+
readonly _client?: AgentCoreIdentityClientLike;
|
|
54
|
+
}
|
|
55
|
+
/** Build a {@link CredentialProvider} backed by AWS Bedrock AgentCore Identity. */
|
|
56
|
+
export declare function agentCoreIdentity(options?: AgentCoreIdentityOptions): CredentialProvider;
|
|
57
|
+
//# sourceMappingURL=agentcore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentcore.d.ts","sourceRoot":"","sources":["../../../../src/adapters/identity/agentcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,yBAAyB,CAAC;AAEjC,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;qFACqF;AACrF,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB,CAAC,KAAK,EAAE;QAC5B,QAAQ,CAAC,8BAA8B,EAAE,MAAM,CAAC;QAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG,iBAAiB,CAAC;QAC/C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;QACtC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;KACzC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;wDACoD;IACpD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD;AA8BD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,kBAAkB,CAqC5F"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* staticTokens — a dev/test {@link CredentialProvider} backed by canned tokens.
|
|
3
|
+
*
|
|
4
|
+
* No network, no SDK. Use it to develop tools that need credentials without
|
|
5
|
+
* standing up AgentCore Identity (or any IdP). Production swaps it for
|
|
6
|
+
* `agentCoreIdentity()` — the tool code never changes.
|
|
7
|
+
*
|
|
8
|
+
* const credentials = staticTokens({ github: 'ghp_dev_xxx', slack: 'xoxb-dev' });
|
|
9
|
+
* const r = await credentials.getCredential({ service: 'github' });
|
|
10
|
+
* if (r.status === 'token') useHeader(`Bearer ${r.token}`);
|
|
11
|
+
*/
|
|
12
|
+
import type { CredentialProvider } from './types.js';
|
|
13
|
+
export interface StaticTokensOptions {
|
|
14
|
+
/** Optional id (defaults to 'static-tokens'). */
|
|
15
|
+
readonly id?: string;
|
|
16
|
+
/** Optional fixed expiry (unix seconds) applied to every token. */
|
|
17
|
+
readonly expiresAt?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build a {@link CredentialProvider} from a `service → token` map. Always 2-legged
|
|
21
|
+
* (returns the token directly); throws if a requested service has no token.
|
|
22
|
+
*/
|
|
23
|
+
export declare function staticTokens(tokens: Readonly<Record<string, string>>, options?: StaticTokensOptions): CredentialProvider;
|
|
24
|
+
//# sourceMappingURL=staticTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticTokens.d.ts","sourceRoot":"","sources":["../../../src/identity/staticTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACxC,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAoBpB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/identity — the CredentialProvider port.
|
|
3
|
+
*
|
|
4
|
+
* OUTBOUND auth: vend a credential/token so a tool can call a downstream service
|
|
5
|
+
* (GitHub, Slack, Google…) on behalf of the agent or the end user. This is
|
|
6
|
+
* DISTINCT from `agentfootprint/security` (authorization — "is this tool
|
|
7
|
+
* allowed"); identity answers "get me a token to call X".
|
|
8
|
+
*
|
|
9
|
+
* Pattern: Port (Hexagonal). Vendors plug in as adapters:
|
|
10
|
+
* - `agentCoreIdentity()` — AWS Bedrock AgentCore Identity (token vault + OAuth)
|
|
11
|
+
* - `staticTokens()` — dev/test (canned tokens, no network)
|
|
12
|
+
*
|
|
13
|
+
* Two flows, mirroring OAuth (and AgentCore's `M2M` vs `USER_FEDERATION`):
|
|
14
|
+
* - `mode: 'machine'` (2-legged) — client-credentials; returns a token directly.
|
|
15
|
+
* - `mode: 'user'` (3-legged) — user-delegated; may need consent. When it
|
|
16
|
+
* does, the provider returns `authorization-required` with a URL; the agent
|
|
17
|
+
* surfaces it to the human (e.g. via pause/resume) and retries after consent.
|
|
18
|
+
* (Most calls skip consent — providers cache refresh tokens.)
|
|
19
|
+
*
|
|
20
|
+
* **Security invariant:** a vended token is a SECRET. Callers MUST use it locally
|
|
21
|
+
* (e.g. as an HTTP header inside a tool's `execute`) and MUST NOT write it to
|
|
22
|
+
* tracked scope (`setValue`) — tracked writes flow to the commit log, recorders,
|
|
23
|
+
* and observability exporters, which would leak the token into the trace. Pair
|
|
24
|
+
* with `RedactionPolicy` for defence in depth.
|
|
25
|
+
*/
|
|
26
|
+
/** What a tool/agent asks for. `service` ↔ the provider's downstream service id. */
|
|
27
|
+
export interface CredentialRequest {
|
|
28
|
+
/** Downstream service id, e.g. 'github', 'slack', 'google'. */
|
|
29
|
+
readonly service: string;
|
|
30
|
+
/** OAuth scopes to request. */
|
|
31
|
+
readonly scopes?: readonly string[];
|
|
32
|
+
/** `machine` = 2-legged (M2M); `user` = 3-legged (on behalf of a user). Default `machine`. */
|
|
33
|
+
readonly mode?: 'machine' | 'user';
|
|
34
|
+
/** The principal/tenant the token is for (the agent + end-user identity). */
|
|
35
|
+
readonly identity?: {
|
|
36
|
+
readonly principal?: string;
|
|
37
|
+
readonly tenant?: string;
|
|
38
|
+
};
|
|
39
|
+
/** Force a fresh authorization, bypassing any cached/refresh token. */
|
|
40
|
+
readonly forceReauth?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** A ready-to-use credential. `token` is a SECRET — see the security invariant. */
|
|
43
|
+
export interface CredentialToken {
|
|
44
|
+
readonly status: 'token';
|
|
45
|
+
readonly token: string;
|
|
46
|
+
/** Unix seconds when the token expires, if known. */
|
|
47
|
+
readonly expiresAt?: number;
|
|
48
|
+
}
|
|
49
|
+
/** 3-legged consent is required: surface `authorizationUrl` to the user, then
|
|
50
|
+
* retry `getCredential` after they authorize (`sessionId` correlates the flow). */
|
|
51
|
+
export interface CredentialAuthorizationRequired {
|
|
52
|
+
readonly status: 'authorization-required';
|
|
53
|
+
readonly authorizationUrl: string;
|
|
54
|
+
readonly sessionId: string;
|
|
55
|
+
}
|
|
56
|
+
export type CredentialResult = CredentialToken | CredentialAuthorizationRequired;
|
|
57
|
+
/** The port. An adapter implements this against a specific identity backend. */
|
|
58
|
+
export interface CredentialProvider {
|
|
59
|
+
/** Stable id (for logging / "which provider vended this"). */
|
|
60
|
+
readonly id: string;
|
|
61
|
+
getCredential(req: CredentialRequest): Promise<CredentialResult>;
|
|
62
|
+
}
|
|
63
|
+
/** Narrow a {@link CredentialResult} to the token branch. */
|
|
64
|
+
export declare function isCredentialToken(r: CredentialResult): r is CredentialToken;
|
|
65
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;oFACoF;AACpF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,+BAA+B,CAAC;AAEjF,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAClE;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,IAAI,eAAe,CAE3E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/identity — outbound credential vending for agent tools.
|
|
3
|
+
*
|
|
4
|
+
* The {@link CredentialProvider} port + adapters. A tool calls
|
|
5
|
+
* `provider.getCredential({ service })` to get a token for a downstream service;
|
|
6
|
+
* `agentCoreIdentity()` backs it with AWS Bedrock AgentCore Identity, or
|
|
7
|
+
* `staticTokens()` for dev/test.
|
|
8
|
+
*
|
|
9
|
+
* SECURITY: a vended token is a secret — use it locally inside a tool's
|
|
10
|
+
* `execute` (e.g. an HTTP header); never write it to tracked scope. See
|
|
11
|
+
* `./identity/types` for the full invariant.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { agentCoreIdentity } from 'agentfootprint/identity';
|
|
16
|
+
*
|
|
17
|
+
* const credentials = agentCoreIdentity({ region: 'us-east-1' });
|
|
18
|
+
* const r = await credentials.getCredential({ service: 'github', mode: 'user', scopes: ['repo'] });
|
|
19
|
+
* if (r.status === 'authorization-required') {
|
|
20
|
+
* // surface r.authorizationUrl to the user (e.g. pause the run), then retry.
|
|
21
|
+
* } else {
|
|
22
|
+
* callGitHub({ headers: { authorization: `Bearer ${r.token}` } });
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export type { CredentialProvider, CredentialRequest, CredentialResult, CredentialToken, CredentialAuthorizationRequired, } from './identity/types.js';
|
|
27
|
+
export { isCredentialToken } from './identity/types.js';
|
|
28
|
+
export { staticTokens, type StaticTokensOptions } from './identity/staticTokens.js';
|
|
29
|
+
export { agentCoreIdentity, type AgentCoreIdentityOptions, type AgentCoreIdentityClientLike, type AgentCoreOauthResponse, } from './adapters/identity/agentcore.js';
|
|
30
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,+BAA+B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,MAAM,kCAAkC,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ export { browserAnthropic, BrowserAnthropicProvider, type BrowserAnthropicProvid
|
|
|
46
46
|
export { browserOpenai, BrowserOpenAIProvider, type BrowserOpenAIProviderOptions, browserAzureOpenai, BrowserAzureOpenAIProvider, type BrowserAzureOpenAIProviderOptions, } from './adapters/llm/BrowserOpenAIProvider.js';
|
|
47
47
|
export { createProvider, providerFromEnv, type ProviderKind, type CreateProviderOptions, type ProviderFromEnv, } from './adapters/llm/createProvider.js';
|
|
48
48
|
export { toSSE, SSEFormatter, encodeSSE, type ToSSEOptions } from './stream.js';
|
|
49
|
-
export { type Injection, type InjectionTrigger, type InjectionContent, type InjectionContext, type InjectionEvaluation, evaluateInjections, buildInjectionEngineSubflow, projectActiveInjection, type InjectionEngineConfig, type ActiveInjection, defineInstruction, type DefineInstructionOptions, defineSkill, resolveSurfaceMode, SkillRegistry, type SkillRegistryOptions, buildListSkillsTool, buildReadSkillTool, type SkillToolPair, type DefineSkillOptions, type SurfaceMode, type RefreshPolicy, type AutoActivateMode, defineSteering, type DefineSteeringOptions, defineFact, type DefineFactOptions, defineInjection, type DefineInjectionOptions, type InjectionFlavor, skillGraph, decide, SKILL_GRAPH_METADATA_KEY, type SkillGraph, type SkillGraphBuilder, type SkillRouteOptions, type SkillEntryOptions, type SkillEdge, type SkillEdgeKind, type SkillNode, type DecisionNode, type SkillRouting, type SkillRoutingStep, } from './lib/injection-engine/index.js';
|
|
49
|
+
export { type Injection, type InjectionTrigger, type InjectionContent, type InjectionContext, type InjectionEvaluation, evaluateInjections, buildInjectionEngineSubflow, projectActiveInjection, type InjectionEngineConfig, type ActiveInjection, defineInstruction, type DefineInstructionOptions, defineSkill, resolveSurfaceMode, SkillRegistry, type SkillRegistryOptions, buildListSkillsTool, buildReadSkillTool, type SkillToolPair, type DefineSkillOptions, type SurfaceMode, type RefreshPolicy, type AutoActivateMode, defineSteering, type DefineSteeringOptions, defineFact, type DefineFactOptions, defineInjection, type DefineInjectionOptions, type InjectionFlavor, skillGraph, decide, SKILL_GRAPH_METADATA_KEY, type SkillGraph, type SkillGraphBuilder, type SkillRouteOptions, type SkillEntryOptions, type TreeOptions, type SkillEdge, type SkillEdgeKind, type SkillNode, type DecisionNode, type SkillRouting, type SkillRoutingStep, } from './lib/injection-engine/index.js';
|
|
50
50
|
export * from './patterns/index.js';
|
|
51
51
|
export { defaultPipeline, ephemeralPipeline, factPipeline, narrativePipeline, semanticPipeline, autoPipeline, } from './memory/pipeline/index.js';
|
|
52
52
|
export { heuristicExtractor, llmExtractor, } from './memory/beats/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,5 +16,5 @@ export { buildListSkillsTool, buildReadSkillTool, type SkillToolPair } from './s
|
|
|
16
16
|
export { defineSteering, type DefineSteeringOptions } from './factories/defineSteering.js';
|
|
17
17
|
export { defineFact, type DefineFactOptions } from './factories/defineFact.js';
|
|
18
18
|
export { defineInjection, type DefineInjectionOptions, type InjectionFlavor, } from './factories/defineInjection.js';
|
|
19
|
-
export { skillGraph, decide, SKILL_GRAPH_METADATA_KEY, type SkillGraph, type SkillGraphBuilder, type SkillRouteOptions, type SkillEntryOptions, type SkillEdge, type SkillEdgeKind, type SkillNode, type DecisionNode, type SkillRouting, type SkillRoutingStep, } from './skillGraph.js';
|
|
19
|
+
export { skillGraph, decide, SKILL_GRAPH_METADATA_KEY, type SkillGraph, type SkillGraphBuilder, type SkillRouteOptions, type SkillEntryOptions, type TreeOptions, type SkillEdge, type SkillEdgeKind, type SkillNode, type DecisionNode, type SkillRouting, type SkillRoutingStep, } from './skillGraph.js';
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,2BAA2B,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEpG,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM9E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK/E,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,2BAA2B,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEpG,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM9E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK/E,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC"}
|
|
@@ -42,6 +42,23 @@ export interface SkillEntryOptions {
|
|
|
42
42
|
readonly when?: (ctx: InjectionContext) => boolean;
|
|
43
43
|
readonly label?: string;
|
|
44
44
|
}
|
|
45
|
+
/** Options for a decision `tree()`. */
|
|
46
|
+
export interface TreeOptions {
|
|
47
|
+
/**
|
|
48
|
+
* Scope the tool list to the routed leaf (the on-demand-tools default).
|
|
49
|
+
*
|
|
50
|
+
* A decision tree routes to EXACTLY ONE skill per iteration, so each leaf is
|
|
51
|
+
* stamped `autoActivate: 'currentSkill'` — its `inject.tools` reach the LLM
|
|
52
|
+
* ONLY when the tree routes there, instead of every skill's tools landing in
|
|
53
|
+
* the always-on static registry on every call. `read_skill` stays available as
|
|
54
|
+
* the escape hatch to reach another skill mid-run.
|
|
55
|
+
*
|
|
56
|
+
* Default `true`. Set `false` for the legacy additive behavior (all leaves'
|
|
57
|
+
* tools always visible). A leaf that sets its OWN `autoActivate` in
|
|
58
|
+
* `defineSkill(...)` is always respected — this only fills the default.
|
|
59
|
+
*/
|
|
60
|
+
readonly scopeTools?: boolean;
|
|
61
|
+
}
|
|
45
62
|
export type SkillEdgeKind = 'entry' | 'predicate' | 'on-tool-return' | 'model';
|
|
46
63
|
export interface SkillEdge {
|
|
47
64
|
/** Source skill id, or `null` for the synthetic START (an entry edge). */
|
|
@@ -121,8 +138,10 @@ export interface SkillGraphBuilder {
|
|
|
121
138
|
/** Declare an edge: after `from`'s work, `to` activates when the edge fires. */
|
|
122
139
|
route(from: Injection, to: Injection, opts?: SkillRouteOptions): SkillGraphBuilder;
|
|
123
140
|
/** Declare a decision TREE (v3): predicate nodes → skill leaves. Compiles each
|
|
124
|
-
* leaf to a path-conjunction trigger; renders as diamonds → boxes.
|
|
125
|
-
|
|
141
|
+
* leaf to a path-conjunction trigger; renders as diamonds → boxes. By default
|
|
142
|
+
* each leaf is tool-scoped (`autoActivate: 'currentSkill'`) so only the routed
|
|
143
|
+
* skill's tools reach the LLM — opt out with `{ scopeTools: false }`. */
|
|
144
|
+
tree(root: DecisionNode | Injection, opts?: TreeOptions): SkillGraphBuilder;
|
|
126
145
|
build(): SkillGraph;
|
|
127
146
|
}
|
|
128
147
|
export declare function skillGraph(): SkillGraphBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillGraph.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skillGraph.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentfootprint",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.10.0",
|
|
4
4
|
"description": "The explainable agent framework — build AI agents you can explain, audit, and trust. Built on footprintjs.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Sanjay Krishna Anbalagan",
|
|
@@ -145,6 +145,11 @@
|
|
|
145
145
|
"import": "./dist/esm/security/index.js",
|
|
146
146
|
"require": "./dist/security/index.js"
|
|
147
147
|
},
|
|
148
|
+
"./identity": {
|
|
149
|
+
"types": "./dist/types/identity.d.ts",
|
|
150
|
+
"import": "./dist/esm/identity.js",
|
|
151
|
+
"require": "./dist/identity.js"
|
|
152
|
+
},
|
|
148
153
|
"./reliability": {
|
|
149
154
|
"types": "./dist/types/reliability/index.d.ts",
|
|
150
155
|
"import": "./dist/esm/reliability/index.js",
|