@animalabs/agent-framework 0.22.3 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -3
- package/dist/src/agent.d.ts +36 -10
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +76 -32
- package/dist/src/agent.js.map +1 -1
- package/dist/src/code-execution/index.d.ts +1 -1
- package/dist/src/code-execution/index.d.ts.map +1 -1
- package/dist/src/code-execution/index.js.map +1 -1
- package/dist/src/code-execution/py-runner.d.ts +34 -2
- package/dist/src/code-execution/py-runner.d.ts.map +1 -1
- package/dist/src/code-execution/py-runner.js +72 -16
- package/dist/src/code-execution/py-runner.js.map +1 -1
- package/dist/src/code-execution/runtime-py.d.ts +3 -2
- package/dist/src/code-execution/runtime-py.d.ts.map +1 -1
- package/dist/src/code-execution/runtime-py.js +47 -7
- package/dist/src/code-execution/runtime-py.js.map +1 -1
- package/dist/src/code-execution/tool-definition.d.ts +12 -7
- package/dist/src/code-execution/tool-definition.d.ts.map +1 -1
- package/dist/src/code-execution/tool-definition.js +59 -11
- package/dist/src/code-execution/tool-definition.js.map +1 -1
- package/dist/src/config-checks.d.ts +2 -2
- package/dist/src/config-checks.d.ts.map +1 -1
- package/dist/src/config-checks.js +6 -2
- package/dist/src/config-checks.js.map +1 -1
- package/dist/src/framework.d.ts +744 -120
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +3546 -906
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +13 -6
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/held-writes.d.ts +16 -0
- package/dist/src/held-writes.d.ts.map +1 -0
- package/dist/src/held-writes.js +56 -0
- package/dist/src/held-writes.js.map +1 -0
- package/dist/src/index.d.ts +7 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcpl/capability-grant.d.ts +4 -0
- package/dist/src/mcpl/capability-grant.d.ts.map +1 -1
- package/dist/src/mcpl/capability-grant.js +1 -1
- package/dist/src/mcpl/capability-grant.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +95 -18
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +578 -150
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/convert-block.d.ts +2 -2
- package/dist/src/mcpl/convert-block.d.ts.map +1 -1
- package/dist/src/mcpl/convert-block.js +6 -7
- package/dist/src/mcpl/convert-block.js.map +1 -1
- package/dist/src/mcpl/index.d.ts +5 -1
- package/dist/src/mcpl/index.d.ts.map +1 -1
- package/dist/src/mcpl/index.js +3 -1
- package/dist/src/mcpl/index.js.map +1 -1
- package/dist/src/mcpl/inference-router.d.ts +4 -2
- package/dist/src/mcpl/inference-router.d.ts.map +1 -1
- package/dist/src/mcpl/inference-router.js +6 -7
- package/dist/src/mcpl/inference-router.js.map +1 -1
- package/dist/src/mcpl/log-value.d.ts +7 -0
- package/dist/src/mcpl/log-value.d.ts.map +1 -1
- package/dist/src/mcpl/log-value.js +9 -0
- package/dist/src/mcpl/log-value.js.map +1 -1
- package/dist/src/mcpl/modern-connection.d.ts +227 -0
- package/dist/src/mcpl/modern-connection.d.ts.map +1 -0
- package/dist/src/mcpl/modern-connection.js +1088 -0
- package/dist/src/mcpl/modern-connection.js.map +1 -0
- package/dist/src/mcpl/prefix-rule.d.ts +18 -0
- package/dist/src/mcpl/prefix-rule.d.ts.map +1 -0
- package/dist/src/mcpl/prefix-rule.js +25 -0
- package/dist/src/mcpl/prefix-rule.js.map +1 -0
- package/dist/src/mcpl/protocol-family.d.ts +179 -0
- package/dist/src/mcpl/protocol-family.d.ts.map +1 -0
- package/dist/src/mcpl/protocol-family.js +697 -0
- package/dist/src/mcpl/protocol-family.js.map +1 -0
- package/dist/src/mcpl/push-coalescer.d.ts +38 -19
- package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
- package/dist/src/mcpl/push-coalescer.js +52 -23
- package/dist/src/mcpl/push-coalescer.js.map +1 -1
- package/dist/src/mcpl/reference-fetcher.d.ts +66 -15
- package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
- package/dist/src/mcpl/reference-fetcher.js +243 -76
- package/dist/src/mcpl/reference-fetcher.js.map +1 -1
- package/dist/src/mcpl/references.d.ts +63 -18
- package/dist/src/mcpl/references.d.ts.map +1 -1
- package/dist/src/mcpl/references.js +117 -32
- package/dist/src/mcpl/references.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +326 -30
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +995 -212
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/server-registry.d.ts +25 -5
- package/dist/src/mcpl/server-registry.d.ts.map +1 -1
- package/dist/src/mcpl/server-registry.js +51 -12
- package/dist/src/mcpl/server-registry.js.map +1 -1
- package/dist/src/mcpl/tool-result-normalize.d.ts +54 -0
- package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -0
- package/dist/src/mcpl/tool-result-normalize.js +232 -0
- package/dist/src/mcpl/tool-result-normalize.js.map +1 -0
- package/dist/src/mcpl/transport.d.ts +56 -13
- package/dist/src/mcpl/transport.d.ts.map +1 -1
- package/dist/src/mcpl/transport.js +206 -70
- package/dist/src/mcpl/transport.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +66 -20
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/mcpl/visible-content.d.ts +2 -1
- package/dist/src/mcpl/visible-content.d.ts.map +1 -1
- package/dist/src/mcpl/visible-content.js +2 -1
- package/dist/src/mcpl/visible-content.js.map +1 -1
- package/dist/src/module-registry.d.ts +16 -6
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +65 -6
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/api/index.d.ts +1 -1
- package/dist/src/modules/api/index.d.ts.map +1 -1
- package/dist/src/modules/api/index.js +3 -2
- package/dist/src/modules/api/index.js.map +1 -1
- package/dist/src/modules/discord/discord-js-client.d.ts +42 -2
- package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
- package/dist/src/modules/discord/discord-js-client.js +268 -65
- package/dist/src/modules/discord/discord-js-client.js.map +1 -1
- package/dist/src/modules/discord/index.d.ts +27 -5
- package/dist/src/modules/discord/index.d.ts.map +1 -1
- package/dist/src/modules/discord/index.js +366 -76
- package/dist/src/modules/discord/index.js.map +1 -1
- package/dist/src/modules/discord/refusal.d.ts +14 -0
- package/dist/src/modules/discord/refusal.d.ts.map +1 -0
- package/dist/src/modules/discord/refusal.js +14 -0
- package/dist/src/modules/discord/refusal.js.map +1 -0
- package/dist/src/modules/discord/types.d.ts +17 -7
- package/dist/src/modules/discord/types.d.ts.map +1 -1
- package/dist/src/modules/health/index.d.ts.map +1 -1
- package/dist/src/modules/health/index.js +6 -2
- package/dist/src/modules/health/index.js.map +1 -1
- package/dist/src/modules/index.d.ts +1 -1
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +1 -1
- package/dist/src/modules/index.js.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.d.ts +25 -2
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.js +45 -5
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
- package/dist/src/modules/workspace/effects.d.ts +2 -1
- package/dist/src/modules/workspace/effects.d.ts.map +1 -1
- package/dist/src/modules/workspace/effects.js +19 -9
- package/dist/src/modules/workspace/effects.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +214 -42
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +667 -113
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +240 -8
- package/dist/src/modules/workspace/observe.d.ts.map +1 -1
- package/dist/src/modules/workspace/observe.js +554 -24
- package/dist/src/modules/workspace/observe.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +10 -1
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/modules/workspace/watcher.d.ts +42 -0
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +130 -25
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/silent-heartbeat.d.ts +112 -39
- package/dist/src/silent-heartbeat.d.ts.map +1 -1
- package/dist/src/silent-heartbeat.js +100 -29
- package/dist/src/silent-heartbeat.js.map +1 -1
- package/dist/src/tool-args.d.ts +40 -0
- package/dist/src/tool-args.d.ts.map +1 -0
- package/dist/src/tool-args.js +207 -0
- package/dist/src/tool-args.js.map +1 -0
- package/dist/src/tool-presentation.d.ts.map +1 -1
- package/dist/src/tool-presentation.js +9 -2
- package/dist/src/tool-presentation.js.map +1 -1
- package/dist/src/types/agent.d.ts +27 -17
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +8 -0
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +17 -2
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +54 -10
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +2 -2
- package/dist/src/types/trace.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/agent.ts +99 -36
- package/src/code-execution/index.ts +1 -0
- package/src/code-execution/py-runner.ts +104 -17
- package/src/code-execution/runtime-py.ts +47 -7
- package/src/code-execution/tool-definition.ts +65 -11
- package/src/config-checks.ts +4 -2
- package/src/framework.ts +3633 -956
- package/src/gate/event-gate.ts +14 -6
- package/src/held-writes.ts +59 -0
- package/src/index.ts +19 -4
- package/src/mcpl/capability-grant.ts +1 -1
- package/src/mcpl/channel-registry.ts +613 -160
- package/src/mcpl/convert-block.ts +15 -7
- package/src/mcpl/index.ts +14 -1
- package/src/mcpl/inference-router.ts +8 -7
- package/src/mcpl/log-value.ts +10 -0
- package/src/mcpl/modern-connection.ts +1182 -0
- package/src/mcpl/prefix-rule.ts +32 -0
- package/src/mcpl/protocol-family.ts +691 -0
- package/src/mcpl/push-coalescer.ts +67 -29
- package/src/mcpl/reference-fetcher.ts +288 -82
- package/src/mcpl/references.ts +123 -33
- package/src/mcpl/server-connection.ts +1050 -221
- package/src/mcpl/server-registry.ts +50 -12
- package/src/mcpl/tool-result-normalize.ts +294 -0
- package/src/mcpl/transport.ts +204 -62
- package/src/mcpl/types.ts +67 -20
- package/src/mcpl/visible-content.ts +2 -1
- package/src/module-registry.ts +68 -13
- package/src/modules/api/index.ts +3 -2
- package/src/modules/discord/discord-js-client.ts +288 -72
- package/src/modules/discord/index.ts +380 -77
- package/src/modules/discord/refusal.ts +13 -0
- package/src/modules/discord/types.ts +17 -9
- package/src/modules/health/index.ts +6 -2
- package/src/modules/index.ts +1 -1
- package/src/modules/workspace/disk-agreement.ts +46 -5
- package/src/modules/workspace/effects.ts +18 -7
- package/src/modules/workspace/index.ts +722 -124
- package/src/modules/workspace/observe.ts +591 -22
- package/src/modules/workspace/types.ts +10 -1
- package/src/modules/workspace/watcher.ts +126 -25
- package/src/silent-heartbeat.ts +184 -59
- package/src/tool-args.ts +213 -0
- package/src/tool-presentation.ts +9 -2
- package/src/types/agent.ts +27 -17
- package/src/types/events.ts +8 -0
- package/src/types/framework.ts +17 -2
- package/src/types/module.ts +55 -10
- package/src/types/trace.ts +2 -2
package/src/gate/event-gate.ts
CHANGED
|
@@ -45,6 +45,15 @@ const MAX_TRACE_SNIPPET = 80;
|
|
|
45
45
|
const MAX_INFERENCE_BUFFER = 100;
|
|
46
46
|
/** Minimum interval between filesystem checks for config changes (ms). */
|
|
47
47
|
const RELOAD_THROTTLE_MS = 1000;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Parse a gate file's text as JSON. Some Windows editors save UTF-8 with a
|
|
51
|
+
* leading U+FEFF (BOM), which `readFileSync(…, 'utf-8')` keeps and
|
|
52
|
+
* `JSON.parse` rejects; drop exactly one before parsing (#395).
|
|
53
|
+
*/
|
|
54
|
+
function parseGateJson(text: string): unknown {
|
|
55
|
+
return JSON.parse(text.charCodeAt(0) === 0xfeff ? text.slice(1) : text);
|
|
56
|
+
}
|
|
48
57
|
/** Minimum debounce value (ms). */
|
|
49
58
|
const MIN_DEBOUNCE_MS = 100;
|
|
50
59
|
/** Maximum debounce value (ms). */
|
|
@@ -723,7 +732,7 @@ export class EventGate {
|
|
|
723
732
|
const raw = readFileSync(this.configPath, 'utf-8');
|
|
724
733
|
const stat = statSync(this.configPath);
|
|
725
734
|
this.configMtime = stat.mtimeMs;
|
|
726
|
-
const config = validateConfig(
|
|
735
|
+
const config = validateConfig(parseGateJson(raw));
|
|
727
736
|
this.configSource = 'file';
|
|
728
737
|
this.configErrors = [];
|
|
729
738
|
return config;
|
|
@@ -1870,7 +1879,7 @@ export class EventGate {
|
|
|
1870
1879
|
return;
|
|
1871
1880
|
}
|
|
1872
1881
|
this.privilegedMtime = statSync(this.privilegedUsersPath).mtimeMs;
|
|
1873
|
-
const raw =
|
|
1882
|
+
const raw: any = parseGateJson(readFileSync(this.privilegedUsersPath, 'utf8'));
|
|
1874
1883
|
const ids = Array.isArray(raw) ? raw : Array.isArray(raw?.userIds) ? raw.userIds : [];
|
|
1875
1884
|
this.privilegedUserIds = new Set(ids.map((x: unknown) => String(x)));
|
|
1876
1885
|
} catch (err) {
|
|
@@ -2003,10 +2012,9 @@ export class EventGate {
|
|
|
2003
2012
|
// a turn whose exit didn't end it (a retry stop() cancelled, a successor
|
|
2004
2013
|
// stop() refused) would make every debounced batch buffer until that
|
|
2005
2014
|
// agent's next turn ended. A turn that continues after the start() takes
|
|
2006
|
-
// its entry again (onInferenceResumed). A
|
|
2007
|
-
//
|
|
2008
|
-
//
|
|
2009
|
-
// a start() during a stop() yet.
|
|
2015
|
+
// its entry again (onInferenceResumed). A start() made during the stop()
|
|
2016
|
+
// is refused, so no turn of a new lifecycle can have begun before this
|
|
2017
|
+
// runs.
|
|
2010
2018
|
this.inferring.clear();
|
|
2011
2019
|
}
|
|
2012
2020
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { MessageId, MessageQuery, StoredMessage } from '@animalabs/context-manager';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The id a module holds for a write the framework holds. addMessage holds a
|
|
5
|
+
* write while its agent's turn is alive or the host is quiesced, and stores
|
|
6
|
+
* it at a later boundary. Until then, a module's context answers its id as a
|
|
7
|
+
* handle: `held:` and the write's id in the deferred queue. The context's
|
|
8
|
+
* getMessage, editMessage and removeMessage take the handle as they take a
|
|
9
|
+
* stored id, as a process answer's edits and removals do, and once the write
|
|
10
|
+
* lands, the handle names the stored row, which carries the write's id as
|
|
11
|
+
* `metadata.deferredWriteId`.
|
|
12
|
+
*/
|
|
13
|
+
const HELD = 'held:';
|
|
14
|
+
|
|
15
|
+
export function heldHandle(writeId: string): MessageId {
|
|
16
|
+
return `${HELD}${writeId}`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** The deferred write a handle names, or undefined for any other id. A value
|
|
20
|
+
* that isn't a string, which only an untyped caller passes, is no handle,
|
|
21
|
+
* and goes on to the store as it did before handles. */
|
|
22
|
+
export function heldWriteId(id: MessageId): string | undefined {
|
|
23
|
+
return typeof id === 'string' && id.startsWith(HELD) ? id.slice(HELD.length) : undefined;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Whether a row matches `filter` as context-manager's queryMessages matches a
|
|
28
|
+
* stored one. That's its MessageStore's private matchesFilter at 0.14.1, which
|
|
29
|
+
* the package doesn't export, so the rule is copied here, and a test compares
|
|
30
|
+
* the two on the same rows. A row matches the external source, one of the
|
|
31
|
+
* external ids (an empty list filters nothing), the participant, and each
|
|
32
|
+
* metadata path, dot-separated, by strict equality.
|
|
33
|
+
*/
|
|
34
|
+
export function matchesMessageQuery(row: Pick<StoredMessage, 'participant' | 'metadata'>, filter: MessageQuery): boolean {
|
|
35
|
+
const external = row.metadata?.external as { source?: unknown; id?: unknown } | undefined;
|
|
36
|
+
if (filter.source !== undefined && external?.source !== filter.source) return false;
|
|
37
|
+
if (
|
|
38
|
+
filter.externalIds !== undefined &&
|
|
39
|
+
filter.externalIds.length > 0 &&
|
|
40
|
+
(!external?.id || !filter.externalIds.includes(external.id as string))
|
|
41
|
+
) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
if (filter.participant !== undefined && row.participant !== filter.participant) return false;
|
|
45
|
+
if (filter.metadata !== undefined) {
|
|
46
|
+
for (const [path, value] of Object.entries(filter.metadata)) {
|
|
47
|
+
if (valueAt(row.metadata, path) !== value) return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function valueAt(value: unknown, path: string): unknown {
|
|
54
|
+
for (const part of path.split('.')) {
|
|
55
|
+
if (value === undefined || value === null || typeof value !== 'object') return undefined;
|
|
56
|
+
value = (value as Record<string, unknown>)[part];
|
|
57
|
+
}
|
|
58
|
+
return value;
|
|
59
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -74,6 +74,7 @@ export type {
|
|
|
74
74
|
ExecResult,
|
|
75
75
|
PyRunnerOptions,
|
|
76
76
|
ScriptToolCallHandler,
|
|
77
|
+
ScriptToolResult,
|
|
77
78
|
} from './code-execution/index.js';
|
|
78
79
|
export type { SessionUsage, AgentUsage, SessionUsageSnapshot, UsageUpdatedEvent } from './usage/index.js';
|
|
79
80
|
|
|
@@ -97,10 +98,23 @@ export type {
|
|
|
97
98
|
// connectMcplServer / disconnectMcplServer / restartMcplServer)
|
|
98
99
|
export type { McplServerConfig } from './mcpl/index.js';
|
|
99
100
|
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
|
|
101
|
+
// Both engines' client connections, and the configuration helpers and
|
|
102
|
+
// protocol revisions they share (exposed so external tooling, such as server
|
|
103
|
+
// playtests, health probes and protocol harnesses, can reach a server
|
|
104
|
+
// exactly the way the framework host does: MCPL over stdio or WebSocket, and
|
|
105
|
+
// modern MCP over stdio or Streamable HTTP)
|
|
106
|
+
export { McplServerConnection, McplRequestError, McplProtocolVersionError, McplUnreapedLaunchError } from './mcpl/index.js';
|
|
107
|
+
export { ModernMcpConnection } from './mcpl/index.js';
|
|
108
|
+
export type { ModernToolCallResult } from './mcpl/index.js';
|
|
109
|
+
export {
|
|
110
|
+
LEGACY_MCP_PROTOCOL_VERSION,
|
|
111
|
+
MODERN_MCP_PROTOCOL_VERSION,
|
|
112
|
+
resolveServerBinding,
|
|
113
|
+
serverConfigProblems,
|
|
114
|
+
serverConfigWarnings,
|
|
115
|
+
checkServerConfig,
|
|
116
|
+
} from './mcpl/index.js';
|
|
117
|
+
export type { McpProtocolFamily, McpTransportKind, ServerBinding } from './mcpl/index.js';
|
|
104
118
|
export type { McplHostCapabilities, McplConnectionCloseInfo } from './mcpl/index.js';
|
|
105
119
|
|
|
106
120
|
// MCPL tool lifecycle (RFC-007) and tool classes (RFC-008): the types a host
|
|
@@ -168,6 +182,7 @@ export * from "./tool-presentation.js";
|
|
|
168
182
|
export {
|
|
169
183
|
SILENT_HEARTBEAT_SEPARATOR,
|
|
170
184
|
silentHeartbeatOf,
|
|
185
|
+
type RequestOnlyPrompt,
|
|
171
186
|
type SilentHeartbeatStamp,
|
|
172
187
|
type SilentHeartbeatTick,
|
|
173
188
|
} from './silent-heartbeat.js';
|
|
@@ -223,7 +223,7 @@ export function capabilityPatternMatches(pattern: string, path: string): boolean
|
|
|
223
223
|
/** §13.4: denied unless explicitly enabled by host config. RFC-007 adds both
|
|
224
224
|
* tool-lifecycle leaves: observing other servers' tool use (and, above all,
|
|
225
225
|
* their arguments) is an operator decision, never a default. */
|
|
226
|
-
const DENY_BY_DEFAULT: readonly string[] = [
|
|
226
|
+
export const DENY_BY_DEFAULT: readonly string[] = [
|
|
227
227
|
'contextHooks.beforeInference.inject.system',
|
|
228
228
|
'toolLifecycle.observe',
|
|
229
229
|
'toolLifecycle.inputs',
|