@adonis-agora/agent 0.16.0 → 0.18.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/CHANGELOG.md +139 -0
- package/README.md +210 -0
- package/dist/providers/agent_provider.d.ts +6 -4
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +23 -16
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/agent-deps-factory.d.ts +6 -0
- package/dist/src/agent-deps-factory.d.ts.map +1 -1
- package/dist/src/agent-deps-factory.js +5 -1
- package/dist/src/agent-deps-factory.js.map +1 -1
- package/dist/src/agent-deps.d.ts +6 -1
- package/dist/src/agent-deps.d.ts.map +1 -1
- package/dist/src/agent-deps.js.map +1 -1
- package/dist/src/agent-loop.d.ts +11 -2
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +69 -2
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/data/tenant-scope.d.ts +16 -1
- package/dist/src/data/tenant-scope.d.ts.map +1 -1
- package/dist/src/data/tenant-scope.js +50 -7
- package/dist/src/data/tenant-scope.js.map +1 -1
- package/dist/src/define_config.d.ts +25 -9
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/governance-gate.d.ts +24 -8
- package/dist/src/governance-gate.d.ts.map +1 -1
- package/dist/src/governance-gate.js +14 -3
- package/dist/src/governance-gate.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/rag/chunk.d.ts +35 -0
- package/dist/src/rag/chunk.d.ts.map +1 -1
- package/dist/src/rag/chunk.js +60 -0
- package/dist/src/rag/chunk.js.map +1 -1
- package/dist/src/rag/index.d.ts +1 -1
- package/dist/src/rag/index.d.ts.map +1 -1
- package/dist/src/rag/index.js +1 -1
- package/dist/src/rag/index.js.map +1 -1
- package/dist/src/rag/memory-vector-store.d.ts +20 -1
- package/dist/src/rag/memory-vector-store.d.ts.map +1 -1
- package/dist/src/rag/memory-vector-store.js +56 -1
- package/dist/src/rag/memory-vector-store.js.map +1 -1
- package/dist/src/rag/pg-vector-store.d.ts +32 -1
- package/dist/src/rag/pg-vector-store.d.ts.map +1 -1
- package/dist/src/rag/pg-vector-store.js +69 -0
- package/dist/src/rag/pg-vector-store.js.map +1 -1
- package/dist/src/rag/qdrant-store.d.ts +89 -2
- package/dist/src/rag/qdrant-store.d.ts.map +1 -1
- package/dist/src/rag/qdrant-store.js +155 -2
- package/dist/src/rag/qdrant-store.js.map +1 -1
- package/dist/src/rag/vector-store.d.ts +144 -0
- package/dist/src/rag/vector-store.d.ts.map +1 -1
- package/dist/src/rag/vector-store.js +73 -0
- package/dist/src/rag/vector-store.js.map +1 -1
- package/package.json +14 -9
|
@@ -9,6 +9,7 @@ import type { RolesPolicy } from './spi/roles-policy.js';
|
|
|
9
9
|
import type { TokenStreamSink } from './spi/token-stream-sink.js';
|
|
10
10
|
import type { ToolRegistry } from './tool-registry.js';
|
|
11
11
|
import type { ToolTransientRetrySetting } from './tool-retry.js';
|
|
12
|
+
import type { Actor } from './types.js';
|
|
12
13
|
/** The synthesized `agent`-kind tool name an orchestrator uses to delegate to `target`. */
|
|
13
14
|
export declare function delegateToolName(target: string): string;
|
|
14
15
|
/**
|
|
@@ -36,6 +37,11 @@ export interface AgentDepsFactoryConfig {
|
|
|
36
37
|
retriever?: Retriever;
|
|
37
38
|
/** How many passages inject-mode retrieval requests. Undefined → 5. */
|
|
38
39
|
retrievalTopK?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Shared hook deriving the inject-mode retrieval filter from the run's actor, applied for every
|
|
42
|
+
* agent. Without it, retrieval is UNSCOPED. See the doc comment on `AgentConfig.retrievalFilter`.
|
|
43
|
+
*/
|
|
44
|
+
retrievalFilter?: (actor: Actor) => Record<string, unknown>;
|
|
39
45
|
/**
|
|
40
46
|
* Shared in-place transient-retry policy applied to every agent's tool invocations (DB deadlock /
|
|
41
47
|
* lock-wait timeout / serialization failure). Undefined → the loop default; `false` disables it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-deps-factory.d.ts","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-deps-factory.d.ts","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAA4B,MAAM,YAAY,CAAC;AAElE,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAyBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CA2B3F;AAED,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,uGAAuG;IACvG,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D;;;OAGG;IACH,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,sBAAsB;IAE3D,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,cAAc;IAWtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;CAkCxC"}
|
|
@@ -5,7 +5,8 @@ export function delegateToolName(target) {
|
|
|
5
5
|
/**
|
|
6
6
|
* The `{ task: string }` input a delegate (`agent`-kind) tool takes, as a zero-dependency Standard
|
|
7
7
|
* Schema so synthesizing delegate tools never pulls in `zod` (an optional peer). The loop validates
|
|
8
|
-
* against it before delegating
|
|
8
|
+
* against it in the delegation branch of `agent-loop.ts` before delegating, mirroring
|
|
9
|
+
* `ToolRegistry.invoke`'s input gate for every other tool kind.
|
|
9
10
|
*/
|
|
10
11
|
const delegateInputSchema = {
|
|
11
12
|
'~standard': {
|
|
@@ -101,6 +102,9 @@ export class AgentDepsFactory {
|
|
|
101
102
|
...(this.config.retrievalTopK !== undefined
|
|
102
103
|
? { retrievalTopK: this.config.retrievalTopK }
|
|
103
104
|
: {}),
|
|
105
|
+
...(this.config.retrievalFilter !== undefined
|
|
106
|
+
? { retrievalFilter: this.config.retrievalFilter }
|
|
107
|
+
: {}),
|
|
104
108
|
...(this.config.toolTransientRetry !== undefined
|
|
105
109
|
? { toolTransientRetry: this.config.toolTransientRetry }
|
|
106
110
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-deps-factory.js","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"AAcA,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;AACxD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"agent-deps-factory.js","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/src/agent-deps.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { RolesPolicy } from './spi/roles-policy.js';
|
|
|
7
7
|
import type { TokenStreamSink } from './spi/token-stream-sink.js';
|
|
8
8
|
import type { ToolRegistry } from './tool-registry.js';
|
|
9
9
|
import type { ToolTransientRetrySetting } from './tool-retry.js';
|
|
10
|
-
import type { Persona, PromptBuilder } from './types.js';
|
|
10
|
+
import type { Actor, Persona, PromptBuilder } from './types.js';
|
|
11
11
|
/** Everything `runAgentLoop` needs, minus the per-run `day` the runner stamps. */
|
|
12
12
|
export interface AgentDeps {
|
|
13
13
|
model: ModelProvider;
|
|
@@ -30,6 +30,11 @@ export interface AgentDeps {
|
|
|
30
30
|
retriever?: Retriever;
|
|
31
31
|
/** How many passages inject-mode retrieval requests. Undefined → 5. */
|
|
32
32
|
retrievalTopK?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Derives the metadata filter applied to inject-mode RAG retrieval, from the run's actor.
|
|
35
|
+
* Without it, retrieval is UNSCOPED. See the doc comment on `AgentConfig.retrievalFilter`.
|
|
36
|
+
*/
|
|
37
|
+
retrievalFilter?: (actor: Actor) => Record<string, unknown>;
|
|
33
38
|
/**
|
|
34
39
|
* In-place transient-retry policy for a tool's own invocation (DB deadlock / lock-wait timeout /
|
|
35
40
|
* serialization failure). Undefined → the loop's default (`{ attempts: 2, backoffMs: 150 }`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-deps.d.ts","sourceRoot":"","sources":["../../src/agent-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-deps.d.ts","sourceRoot":"","sources":["../../src/agent-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,kFAAkF;AAClF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,oFAAoF;IACpF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oGAAoG;IACpG,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,oGAAoG;AACpG,wBAAgB,MAAM,CAAC,IAAI,OAAa,GAAG,MAAM,CAEhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-deps.js","sourceRoot":"","sources":["../../src/agent-deps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-deps.js","sourceRoot":"","sources":["../../src/agent-deps.ts"],"names":[],"mappings":"AA8CA,oGAAoG;AACpG,MAAM,UAAU,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;IACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/src/agent-loop.d.ts
CHANGED
|
@@ -6,9 +6,9 @@ import type { Retriever } from './spi/retriever.js';
|
|
|
6
6
|
import type { RolesPolicy } from './spi/roles-policy.js';
|
|
7
7
|
import type { SinkWriter } from './spi/token-stream-sink.js';
|
|
8
8
|
import type { AiToolCtx } from './spi/tool.js';
|
|
9
|
-
import type
|
|
9
|
+
import { type ToolRegistry } from './tool-registry.js';
|
|
10
10
|
import { type ToolTransientRetrySetting } from './tool-retry.js';
|
|
11
|
-
import type { AgentRunInput, Decision, PromptBuilder, ToolCallRequest } from './types.js';
|
|
11
|
+
import type { Actor, AgentRunInput, Decision, PromptBuilder, ToolCallRequest } from './types.js';
|
|
12
12
|
export interface AgentLoopDeps {
|
|
13
13
|
model: ModelProvider;
|
|
14
14
|
store: AgentStore;
|
|
@@ -45,6 +45,15 @@ export interface AgentLoopDeps {
|
|
|
45
45
|
retriever?: Retriever;
|
|
46
46
|
/** How many passages inject-mode retrieval requests. Undefined → 5. */
|
|
47
47
|
retrievalTopK?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Derives the metadata filter applied to inject-mode RAG retrieval, from the run's actor.
|
|
50
|
+
* Without it, retrieval is UNSCOPED: every passage in the corpus is eligible for every actor's
|
|
51
|
+
* system prompt. Any deployment sharing one corpus across tenants must set this. The returned
|
|
52
|
+
* object is passed verbatim as `RetrieveOptions.filter` and is interpreted by the store (see the
|
|
53
|
+
* `audience` ACL pattern in docs/retrieval/rag.mdx). A throwing hook fails the turn rather than
|
|
54
|
+
* falling back to unfiltered retrieval — a filter that fails open is worse than no filter.
|
|
55
|
+
*/
|
|
56
|
+
retrievalFilter?: (actor: Actor) => Record<string, unknown>;
|
|
48
57
|
/**
|
|
49
58
|
* Retries a tool's own invocation, in place, when it throws a classified-transient error (a DB
|
|
50
59
|
* deadlock, a lock-wait timeout, a serialization failure — see {@link isTransientToolError}) —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/src/agent-loop.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { publishAgentDelegated, publishAgentMessage, publishAgentRetrieved, publishAgentRunFinished, publishAgentRunStarted, publishAgentToolCall, publishAgentToolRetry, spannedAgent, } from './diagnostics.js';
|
|
2
2
|
import { estimateCost, } from './spi/pricing-store.js';
|
|
3
|
+
import { ToolForbiddenError, ToolInputInvalidError } from './tool-registry.js';
|
|
3
4
|
import { invokeWithTransientRetry } from './tool-retry.js';
|
|
4
5
|
/** Renders retrieved passages as a numbered, citable context block appended to the system prompt. */
|
|
5
6
|
function buildContextBlock(passages) {
|
|
@@ -144,7 +145,24 @@ export async function runAgentLoop(deps, input, hooks) {
|
|
|
144
145
|
const topK = deps.retrievalTopK ?? 5;
|
|
145
146
|
// Span the retrieval INSIDE the step body so durable replay (which returns the cached passages)
|
|
146
147
|
// never re-emits it. traceId = runId correlates it into the turn's waterfall.
|
|
147
|
-
|
|
148
|
+
//
|
|
149
|
+
// The filter is derived HERE, inside the step body, not before `hooks.step` is called: durable
|
|
150
|
+
// replay must reuse the cached passages rather than recomputing a filter that might have
|
|
151
|
+
// changed since. `retrievalFilter` is called synchronously — if it throws, that throw
|
|
152
|
+
// propagates out of the step (the `async` wrapper below turns a synchronous throw into a
|
|
153
|
+
// rejection) and fails the turn. It must NEVER be caught here and treated as "no filter": a
|
|
154
|
+
// filter that fails open is worse than no filter, because the operator believes it is on.
|
|
155
|
+
// With no hook configured, `filter` is omitted from `options` entirely (not set to
|
|
156
|
+
// `undefined`) so existing single-tenant deployments send byte-identical options.
|
|
157
|
+
const passages = await hooks.step('retrieve', async () => {
|
|
158
|
+
const options = {
|
|
159
|
+
topK,
|
|
160
|
+
...(deps.retrievalFilter !== undefined
|
|
161
|
+
? { filter: deps.retrievalFilter(input.actor) }
|
|
162
|
+
: {}),
|
|
163
|
+
};
|
|
164
|
+
return spannedAgent('retrieval', hooks.runId, { runId: hooks.runId, queryLength: input.userText.length, topK }, () => retriever.retrieve(input.userText, options), (retrieved) => ({ count: retrieved.length }));
|
|
165
|
+
});
|
|
148
166
|
if (passages.length > 0) {
|
|
149
167
|
injectedPassages = passages;
|
|
150
168
|
system = `${system}\n\n${buildContextBlock(passages)}`;
|
|
@@ -263,9 +281,58 @@ export async function runAgentLoop(deps, input, hooks) {
|
|
|
263
281
|
};
|
|
264
282
|
// Delegation: an `agent`-kind tool runs another agent. Handled at the LOOP level (not in a
|
|
265
283
|
// step) because the durable runner maps it to `ctx.child`, a ctx-level suspend point.
|
|
284
|
+
//
|
|
285
|
+
// This bypasses `ToolRegistry.invoke`, so it must apply the same two gates `invoke` applies
|
|
286
|
+
// itself — the role/ability re-check AND the offered-tools (persona/agent allow-list) filter
|
|
287
|
+
// — BEFORE any persistence or event publication. Synthesized delegate specs
|
|
288
|
+
// (`registerDelegateTools` in agent-deps-factory.ts) carry no `roles`/`ability` on purpose —
|
|
289
|
+
// under `DefaultRolesPolicy` that is ADMIN-only, under an authz posture a tool with no
|
|
290
|
+
// `ability` is always denied — so an unauthorized delegate call must fail closed here exactly
|
|
291
|
+
// like `ToolRegistry.invoke` fails closed for every other tool kind.
|
|
266
292
|
if (toolType === 'agent') {
|
|
267
293
|
const targetAgent = spec?.targetAgent ?? call.name;
|
|
268
|
-
|
|
294
|
+
let task;
|
|
295
|
+
try {
|
|
296
|
+
if (spec === undefined) {
|
|
297
|
+
// Never actually reachable today (an unresolved name defaults `toolType` to 'read'
|
|
298
|
+
// above), but an `agent`-kind call with no resolvable spec must fail closed rather than
|
|
299
|
+
// fall through — and this narrows `spec` to `ToolSpec` for the `rolesPolicy.can` call
|
|
300
|
+
// below.
|
|
301
|
+
throw new ToolForbiddenError(call.name);
|
|
302
|
+
}
|
|
303
|
+
const offeredAllow = intersectAllow(persona?.allowedTools, deps.toolAllowList);
|
|
304
|
+
if (offeredAllow !== undefined && !offeredAllow.includes(call.name)) {
|
|
305
|
+
// A tool the model was not offered must not run, even if the model names it anyway.
|
|
306
|
+
throw new ToolForbiddenError(call.name);
|
|
307
|
+
}
|
|
308
|
+
if (!(await deps.rolesPolicy.can(input.actor, spec))) {
|
|
309
|
+
throw new ToolForbiddenError(call.name);
|
|
310
|
+
}
|
|
311
|
+
// The third gate `ToolRegistry.invoke` applies, in the same order: authorization first,
|
|
312
|
+
// then shape. Delegation bypasses `invoke` (it is a ctx-level suspend point), so the gate
|
|
313
|
+
// has to be re-applied here or a malformed input is silently coerced instead of rejected.
|
|
314
|
+
const validation = await spec.inputSchema['~standard'].validate(call.input);
|
|
315
|
+
if (validation.issues !== undefined) {
|
|
316
|
+
throw new ToolInputInvalidError(call.name, validation.issues);
|
|
317
|
+
}
|
|
318
|
+
task = extractTask(validation.value);
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
322
|
+
// A denied delegation is recorded `failed` directly — never `auto_executed` even
|
|
323
|
+
// transiently — and never emits `agent.delegated`.
|
|
324
|
+
await hooks.step(`persist:toolcall:${call.id}`, () => deps.store.recordToolCall({
|
|
325
|
+
toolCallId: call.id,
|
|
326
|
+
messageId: assistant.id,
|
|
327
|
+
toolName: call.name,
|
|
328
|
+
toolType: 'read',
|
|
329
|
+
input: call.input,
|
|
330
|
+
status: 'failed',
|
|
331
|
+
runId: hooks.runId,
|
|
332
|
+
}));
|
|
333
|
+
results.push({ id: call.id, name: call.name, output: null, error: message });
|
|
334
|
+
continue;
|
|
335
|
+
}
|
|
269
336
|
await hooks.step(`persist:toolcall:${call.id}`, () => deps.store.recordToolCall({
|
|
270
337
|
toolCallId: call.id,
|
|
271
338
|
messageId: assistant.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,23 @@ export declare class TenantScopeRewriter {
|
|
|
32
32
|
constructor(config: TenantScopeConfig, parser: SqlParserLike);
|
|
33
33
|
/** Rewrite `sql` to constrain scoped tables to `tenantRef`. Strictly-`undefined` → pass through. */
|
|
34
34
|
rewrite(sql: string, tenantRef: string | undefined): string;
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Every tenant-column `=` predicate anywhere in the tree (recurses into both `AND` and `OR`).
|
|
37
|
+
* Used ONLY for the mismatch check: a query naming a foreign tenant anywhere must be rejected,
|
|
38
|
+
* even where that predicate cannot be relied on to actually constrain the result set.
|
|
39
|
+
*/
|
|
40
|
+
private collectAllTenantPredicates;
|
|
41
|
+
/**
|
|
42
|
+
* Tenant-column `=` predicates on the top-level `AND` spine only. Descent stops at `OR` (and at
|
|
43
|
+
* any operator other than `AND`/`=`, e.g. `NOT`, which the parser represents as a `unary_expr`
|
|
44
|
+
* and so is never a `binary_expr` here) because only a conjunctively-combined predicate is
|
|
45
|
+
* guaranteed to hold for every row the query can return. Used for coverage: a table alias is
|
|
46
|
+
* "already scoped" only when one of these covers it.
|
|
47
|
+
*/
|
|
48
|
+
private collectConjunctiveTenantPredicates;
|
|
49
|
+
private extractTenantPredicate;
|
|
36
50
|
private buildTenantEquality;
|
|
37
51
|
private andCondition;
|
|
52
|
+
private forceParens;
|
|
38
53
|
}
|
|
39
54
|
//# sourceMappingURL=tenant-scope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-scope.d.ts","sourceRoot":"","sources":["../../../src/data/tenant-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,+FAA+F;IAC/F,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"tenant-scope.d.ts","sourceRoot":"","sources":["../../../src/data/tenant-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,+FAA+F;IAC/F,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAiDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,mBAAmB;IAM5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;gBAGzC,MAAM,EAAE,iBAAiB,EACR,MAAM,EAAE,aAAa;IAMxC,oGAAoG;IACpG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAiE3D;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,WAAW;CAIpB"}
|
|
@@ -51,13 +51,21 @@ export class TenantScopeRewriter {
|
|
|
51
51
|
const scopedFrom = fromEntries.filter((entry) => typeof entry.table === 'string' && this.scopedTables.has(entry.table));
|
|
52
52
|
if (scopedFrom.length === 0)
|
|
53
53
|
return sql;
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
// Mismatch rejection looks at every tenant literal anywhere in the tree — including under an
|
|
55
|
+
// OR or NOT — because a query that so much as *names* a foreign tenant is suspicious and must
|
|
56
|
+
// throw, not silently be AND-ed down to zero rows.
|
|
57
|
+
const allPredicates = this.collectAllTenantPredicates(ast.where);
|
|
58
|
+
for (const predicate of allPredicates) {
|
|
56
59
|
if (predicate.value !== tenantRef) {
|
|
57
60
|
throw new Error('tenant scope: tenant mismatch — query targets a tenant other than the current session');
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
|
-
|
|
63
|
+
// Coverage is a different question: a predicate only actually constrains every row the query
|
|
64
|
+
// can return when it is on the top-level AND spine. A predicate under an OR (or NOT, or any
|
|
65
|
+
// other non-conjunctive operator) does not guarantee the constraint holds, so it must NOT
|
|
66
|
+
// suppress the AND-ed constraint below — see `collectConjunctiveTenantPredicates`.
|
|
67
|
+
const conjunctive = this.collectConjunctiveTenantPredicates(ast.where);
|
|
68
|
+
const coveredAliases = new Set(conjunctive.map((predicate) => predicate.tableAlias));
|
|
61
69
|
for (const entry of scopedFrom) {
|
|
62
70
|
const alias = entry.as ?? entry.table;
|
|
63
71
|
const isAmbiguous = scopedFrom.length > 1;
|
|
@@ -68,15 +76,41 @@ export class TenantScopeRewriter {
|
|
|
68
76
|
}
|
|
69
77
|
return this.parser.sqlify(ast, { database: 'MySQL' });
|
|
70
78
|
}
|
|
71
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Every tenant-column `=` predicate anywhere in the tree (recurses into both `AND` and `OR`).
|
|
81
|
+
* Used ONLY for the mismatch check: a query naming a foreign tenant anywhere must be rejected,
|
|
82
|
+
* even where that predicate cannot be relied on to actually constrain the result set.
|
|
83
|
+
*/
|
|
84
|
+
collectAllTenantPredicates(where) {
|
|
72
85
|
if (!isBinaryExpr(where))
|
|
73
86
|
return [];
|
|
74
87
|
if (where.operator === 'AND' || where.operator === 'OR') {
|
|
75
88
|
return [
|
|
76
|
-
...this.
|
|
77
|
-
...this.
|
|
89
|
+
...this.collectAllTenantPredicates(where.left),
|
|
90
|
+
...this.collectAllTenantPredicates(where.right),
|
|
78
91
|
];
|
|
79
92
|
}
|
|
93
|
+
return this.extractTenantPredicate(where);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Tenant-column `=` predicates on the top-level `AND` spine only. Descent stops at `OR` (and at
|
|
97
|
+
* any operator other than `AND`/`=`, e.g. `NOT`, which the parser represents as a `unary_expr`
|
|
98
|
+
* and so is never a `binary_expr` here) because only a conjunctively-combined predicate is
|
|
99
|
+
* guaranteed to hold for every row the query can return. Used for coverage: a table alias is
|
|
100
|
+
* "already scoped" only when one of these covers it.
|
|
101
|
+
*/
|
|
102
|
+
collectConjunctiveTenantPredicates(where) {
|
|
103
|
+
if (!isBinaryExpr(where))
|
|
104
|
+
return [];
|
|
105
|
+
if (where.operator === 'AND') {
|
|
106
|
+
return [
|
|
107
|
+
...this.collectConjunctiveTenantPredicates(where.left),
|
|
108
|
+
...this.collectConjunctiveTenantPredicates(where.right),
|
|
109
|
+
];
|
|
110
|
+
}
|
|
111
|
+
return this.extractTenantPredicate(where);
|
|
112
|
+
}
|
|
113
|
+
extractTenantPredicate(where) {
|
|
80
114
|
if (where.operator !== '=')
|
|
81
115
|
return [];
|
|
82
116
|
const lhs = where.left;
|
|
@@ -101,10 +135,19 @@ export class TenantScopeRewriter {
|
|
|
101
135
|
return {
|
|
102
136
|
type: 'binary_expr',
|
|
103
137
|
operator: 'AND',
|
|
104
|
-
|
|
138
|
+
// Force `parentheses: true` regardless of whether the original SQL already had explicit
|
|
139
|
+
// parens here — see the doc comment on `BinaryExpr.parentheses`. Without it, an OR-rooted
|
|
140
|
+
// `existing` prints without the grouping parens a real database needs to apply the AND-ed
|
|
141
|
+
// tenant predicate to the WHOLE existing expression rather than just its last disjunct.
|
|
142
|
+
left: this.forceParens(existing),
|
|
105
143
|
right: added,
|
|
106
144
|
};
|
|
107
145
|
}
|
|
146
|
+
forceParens(node) {
|
|
147
|
+
if (typeof node !== 'object' || node === null)
|
|
148
|
+
return node;
|
|
149
|
+
return { ...node, parentheses: true };
|
|
150
|
+
}
|
|
108
151
|
}
|
|
109
152
|
function isBinaryExpr(value) {
|
|
110
153
|
return (typeof value === 'object' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-scope.js","sourceRoot":"","sources":["../../../src/data/tenant-scope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tenant-scope.js","sourceRoot":"","sources":["../../../src/data/tenant-scope.ts"],"names":[],"mappings":"AAuDA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAE/F;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,mBAAmB;IAMX;IALF,YAAY,CAAS;IACrB,YAAY,CAAc;IAE3C,YACE,MAAyB,EACR,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAEtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,oGAAoG;IACpG,OAAO,CAAC,GAAW,EAAE,SAA6B;QAChD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAc,CAAC;QAEtE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CACnC,CAAC,KAAK,EAA0C,EAAE,CAChD,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CACxE,CAAC;QACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAExC,6FAA6F;QAC7F,8FAA8F;QAC9F,mDAAmD;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjE,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6FAA6F;QAC7F,4FAA4F;QAC5F,0FAA0F;QAC1F,mFAAmF;QACnF,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACrF,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC;YACtC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACxF,IAAI,OAAO;gBAAE,SAAS;YACtB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAC3B,GAAG,CAAC,KAAK,EACT,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAChE,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAqB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACK,0BAA0B,CAAC,KAAc;QAC/C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO;gBACL,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9C,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC;aAChD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACK,kCAAkC,CAAC,KAAc;QACvD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO;gBACL,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtD,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,KAAK,CAAC;aACxD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEO,sBAAsB,CAAC,KAAiB;QAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEO,mBAAmB,CAAC,UAAyB,EAAE,SAAiB;QACtE,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE;YAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE;SACzD,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,QAAiB,EAAE,KAAiB;QACvD,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,KAAK;YACf,wFAAwF;YACxF,0FAA0F;YAC1F,0FAA0F;YAC1F,wFAAwF;YACxF,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAChC,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,IAAa;QAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3D,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;CACF;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAA4B,CAAC,IAAI,KAAK,aAAa,CACrD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAA4B,CAAC,IAAI,KAAK,YAAY,CACpD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACtD,oBAAoB,CAAC,GAAG,CAAE,KAA0B,CAAC,IAAI,CAAC;QAC1D,OAAQ,KAA6B,CAAC,KAAK,KAAK,QAAQ,CACzD,CAAC;AACJ,CAAC"}
|
|
@@ -13,7 +13,7 @@ import type { TokenStreamSink } from './spi/token-stream-sink.js';
|
|
|
13
13
|
import { actorDirectories, attachmentStores, governanceQueries, pricingStores, quotas, retrievers, stores, streamTransports, tokenSinks } from './stores/factory.js';
|
|
14
14
|
import type { ActorDirectoryFactory, AttachmentStagingContext, AttachmentStagingFactory, EmbeddingFactory, GovernanceQueriesContext, GovernanceQueriesFactory, LucidGovernanceConfig, LucidPricingConfig, LucidStoreConfig, MemoryActorDirectoryConfig, MemoryRetrieverConfig, MemoryStoreConfig, PgVectorRetrieverConfig, PricingContext, PricingFactory, QuotaConfig, QuotaContext, QuotaFactory, RedisTokenSinkConfig, RetrieverContext, RetrieverFactory, StoreContext, StoreFactory, TokenSinkFactory } from './stores/factory.js';
|
|
15
15
|
import type { ToolTransientRetrySetting } from './tool-retry.js';
|
|
16
|
-
import type { AgentDefinition } from './types.js';
|
|
16
|
+
import type { Actor, AgentDefinition } from './types.js';
|
|
17
17
|
/** A lazy factory thunk, so the peer (`ai`/a provider SDK) is imported only when the config loads. */
|
|
18
18
|
export type ModelFactory = () => ModelProvider | Promise<ModelProvider>;
|
|
19
19
|
/** A lazy {@link TokenStreamSink} factory, receiving the app context (for container access). Omit to use the in-process sink. */
|
|
@@ -87,15 +87,23 @@ export interface AgentConfig {
|
|
|
87
87
|
* Authorization gate for the cross-actor `/agent/governance/*` read routes. It runs after the actor
|
|
88
88
|
* is resolved (the caller is authenticated) and decides whether THIS actor may read the platform-wide
|
|
89
89
|
* governance read-model — every actor's spend, usage, threads, and pending HITL approvals. Return
|
|
90
|
-
* `false` to deny (the route replies `403`).
|
|
91
|
-
* historical behavior, correct only when every authenticated caller is trusted staff); typically set
|
|
92
|
-
* it to an ADMIN check.
|
|
90
|
+
* `false` to deny (the route replies `403`).
|
|
93
91
|
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
92
|
+
* **The routes mount only when this gate exists.** Omit it and `/agent/governance/*` is NOT mounted
|
|
93
|
+
* at all (every route answers `404`), because an ungated cross-actor read-model exposes every
|
|
94
|
+
* actor's spend/usage/threads/approvals to any authenticated caller. Set it — typically an ADMIN
|
|
95
|
+
* check — to mount the routes gated, or set `governanceAuthorize: () => true` to deliberately
|
|
96
|
+
* restore the old behaviour of letting ANY authenticated actor read them. The provider logs a boot
|
|
97
|
+
* warning naming both paths when the read-model resolved but no gate is configured.
|
|
98
|
+
*
|
|
99
|
+
* This does NOT gate the per-actor `GET /agent/approvals/mine` route, which is unaffected: it stays
|
|
100
|
+
* mounted whenever the governance read-model resolves, and is always scoped to the calling actor's
|
|
101
|
+
* OWN pending approvals — so a non-admin surface (e.g. a coordinator's chat) can poll its own
|
|
102
|
+
* approvals even while the cross-actor governance read-model is ADMIN-only.
|
|
103
|
+
*
|
|
104
|
+
* `@adonis-agora/agent-dashboard`'s console reads these routes from the browser, so it mounts only
|
|
105
|
+
* when this gate exists too; its `dashboard.authorize` hook takes the same shape, so the JSON routes
|
|
106
|
+
* and the console SPA can be gated with the same predicate.
|
|
99
107
|
*/
|
|
100
108
|
governanceAuthorize?: AgentGovernanceAuthorize;
|
|
101
109
|
/**
|
|
@@ -107,6 +115,14 @@ export interface AgentConfig {
|
|
|
107
115
|
retriever?: Retriever | RetrieverFactory;
|
|
108
116
|
/** How many passages inject-mode retrieval requests per run. Default 5. */
|
|
109
117
|
retrievalTopK?: number;
|
|
118
|
+
/**
|
|
119
|
+
* Derives the metadata filter applied to inject-mode RAG retrieval, from the run's actor.
|
|
120
|
+
* Without it, retrieval is UNSCOPED: every passage in the corpus is eligible for every
|
|
121
|
+
* actor's system prompt. Any deployment sharing one corpus across tenants must set this.
|
|
122
|
+
* The returned object is passed verbatim as `RetrieveOptions.filter` and is interpreted by
|
|
123
|
+
* the store (see the `audience` ACL pattern in docs/retrieval/rag.mdx).
|
|
124
|
+
*/
|
|
125
|
+
retrievalFilter?: (actor: Actor) => Record<string, unknown>;
|
|
110
126
|
/**
|
|
111
127
|
* Upload-side seam for message attachments (image/PDF). When set, the provider mounts the optional
|
|
112
128
|
* `POST /agent/attachments` route, which stages an uploaded file through this store and returns a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,UAAU,GACX,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,UAAU,GACX,MAAM,qBAAqB,CAAC;AA4M7B,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,CAAC"}
|