veryfront 0.1.950 → 0.1.952
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/esm/cli/commands/eval/command-help.js +1 -1
- package/esm/deno.js +1 -1
- package/esm/src/agent/runtime/agent-runtime-step.d.ts +3 -0
- package/esm/src/agent/runtime/agent-runtime-step.d.ts.map +1 -1
- package/esm/src/agent/runtime/agent-runtime-step.js +8 -2
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +22 -9
- package/esm/src/agent/runtime/model-capabilities.d.ts +2 -0
- package/esm/src/agent/runtime/model-capabilities.d.ts.map +1 -1
- package/esm/src/agent/runtime/model-capabilities.js +53 -0
- package/esm/src/agent/runtime/skill-policy-enforcement.d.ts +5 -0
- package/esm/src/agent/runtime/skill-policy-enforcement.d.ts.map +1 -1
- package/esm/src/agent/runtime/skill-policy-enforcement.js +41 -3
- package/esm/src/skill/allowed-tools.d.ts +8 -2
- package/esm/src/skill/allowed-tools.d.ts.map +1 -1
- package/esm/src/skill/allowed-tools.js +33 -7
- package/esm/src/skill/prompt-augmentation.js +2 -2
- package/esm/src/skill/tools.d.ts.map +1 -1
- package/esm/src/skill/tools.js +51 -2
- package/esm/src/skill/types.d.ts +2 -0
- package/esm/src/skill/types.d.ts.map +1 -1
- package/esm/src/tool/types.d.ts +14 -0
- package/esm/src/tool/types.d.ts.map +1 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
|
@@ -63,7 +63,7 @@ export const evalHelp = {
|
|
|
63
63
|
"veryfront eval eval:deep-research --report-dir .veryfront/evals/deep-research",
|
|
64
64
|
"veryfront eval eval:deep-research --report .veryfront/evals/deep-research/report.json --junit .veryfront/evals/deep-research/junit.xml",
|
|
65
65
|
"veryfront eval deep-research --baseline .veryfront/evals/baseline.json --json",
|
|
66
|
-
"veryfront eval deep-research --baseline-model anthropic/claude-sonnet-4-6 --candidate-model moonshotai/kimi-k2",
|
|
66
|
+
"veryfront eval deep-research --baseline-model anthropic/claude-sonnet-4-6 --candidate-model moonshotai/kimi-k2.6",
|
|
67
67
|
"veryfront eval deep-research --export braintrust,langfuse --json",
|
|
68
68
|
"veryfront eval deep-research --json",
|
|
69
69
|
],
|
package/esm/deno.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RemoteToolSource, ToolDefinition, ToolExecutionContext } from "../../tool/index.js";
|
|
2
2
|
import type { AgentConfig, Message } from "../types.js";
|
|
3
|
+
import { type SkillToolAvailability } from "../../skill/allowed-tools.js";
|
|
3
4
|
import type { ToolConfigEntry } from "./tool-helpers.js";
|
|
4
5
|
export type AgentRuntimeStepMode = "generate" | "stream";
|
|
5
6
|
export type RuntimeStepToolLoader = (toolsConfig: true | Record<string, ToolConfigEntry> | undefined, options?: {
|
|
@@ -18,7 +19,9 @@ export interface AgentRuntimeStepState {
|
|
|
18
19
|
export type RuntimeStepStateResolver = (messages: Message[], runtimeContext: Record<string, unknown> | undefined, mode: AgentRuntimeStepMode, step: number, systemPrompt: string) => Promise<AgentRuntimeStepState>;
|
|
19
20
|
export interface PrepareAgentRuntimeStepInput {
|
|
20
21
|
agentId: string;
|
|
22
|
+
activeSkillId?: string | undefined;
|
|
21
23
|
activeSkillPolicy: string[] | undefined;
|
|
24
|
+
activeSkillToolAvailability: SkillToolAvailability | undefined;
|
|
22
25
|
allowedRemoteToolNames: string[] | undefined;
|
|
23
26
|
config: AgentConfig;
|
|
24
27
|
forwardedRemoteToolDefinitions: ToolDefinition[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runtime-step.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/agent-runtime-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-runtime-step.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/agent-runtime-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,CAClC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC/D,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,8BAA8B,CAAC,EAAE,cAAc,EAAE,CAAC;IAClD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KACE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACnD,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,2BAA2B,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC/D,sBAAsB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,WAAW,CAAC;IACpB,8BAA8B,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC7D,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAClD,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,oBAAoB,CAAC;IAClC,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,0EAA0E;AAC1E,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,wBAAwB,CAAC,CAwCnC"}
|
|
@@ -4,6 +4,12 @@ import { filterToolsAfterSubmittedFormInput } from "./skill-policy-enforcement.j
|
|
|
4
4
|
export async function prepareAgentRuntimeStep(input) {
|
|
5
5
|
const runtimeState = await input.resolveRuntimeState(input.messages, input.runtimeContext, input.mode, input.step, input.systemPrompt);
|
|
6
6
|
const toolContext = { ...input.toolContextBase, ...runtimeState.context };
|
|
7
|
+
if (input.activeSkillId !== undefined) {
|
|
8
|
+
toolContext.activeSkillId = input.activeSkillId;
|
|
9
|
+
}
|
|
10
|
+
if (input.activeSkillToolAvailability !== undefined) {
|
|
11
|
+
toolContext.activeSkillToolAvailability = input.activeSkillToolAvailability;
|
|
12
|
+
}
|
|
7
13
|
let tools = input.isLocalModel ? [] : await input.getAvailableTools(input.config.tools, {
|
|
8
14
|
callerAgentId: input.agentId,
|
|
9
15
|
includeSkillTools: Boolean(input.config.skills),
|
|
@@ -12,8 +18,8 @@ export async function prepareAgentRuntimeStep(input) {
|
|
|
12
18
|
remoteToolSources: input.remoteToolSources,
|
|
13
19
|
remoteToolContext: toolContext,
|
|
14
20
|
});
|
|
15
|
-
if (input.activeSkillPolicy) {
|
|
16
|
-
tools = filterToolsForSkill(tools, input.activeSkillPolicy);
|
|
21
|
+
if (input.activeSkillPolicy || input.activeSkillToolAvailability) {
|
|
22
|
+
tools = filterToolsForSkill(tools, input.activeSkillPolicy, input.activeSkillToolAvailability);
|
|
17
23
|
}
|
|
18
24
|
tools = filterToolsAfterSubmittedFormInput(tools, input.messages, runtimeState.context);
|
|
19
25
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,aAAa,EAGlB,KAAK,OAAO,EAGZ,KAAK,QAAQ,EAGd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,aAAa,EAGlB,KAAK,OAAO,EAGZ,KAAK,QAAQ,EAGd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAwDpE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,8BAA8B,EAC9B,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,EAChC,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,+BAA+B,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAC;AA8EvC,+BAA+B;AAC/B,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAuB;gBAEzB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAW3C;;;;;;;OAOG;YACW,mBAAmB;YAMnB,qBAAqB;YAcrB,mBAAmB;YAsBnB,gBAAgB;IAS9B;;OAEG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,EACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,GAC/B,OAAO,CAAC,aAAa,CAAC;IAoDzB;;;OAGG;IACG,MAAM,CACV,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;QAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;KAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAmJtC;;OAEG;YACW,gBAAgB;IAsU9B;;;;OAIG;YACW,yBAAyB;IA4fvC;;OAEG;YACW,eAAe;IAgC7B;;OAEG;YACW,mBAAmB;IAOjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC;IAI5B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAIF;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
|
|
@@ -27,7 +27,7 @@ import { tryGetCacheKeyContext } from "../../cache/cache-key-builder.js";
|
|
|
27
27
|
import { isLocalModelRuntime } from "../../provider/runtime-inspection.js";
|
|
28
28
|
import { generateText, streamText } from "../../runtime/runtime-bridge.js";
|
|
29
29
|
import { captureStreamedToolCallInput, collectFinalStreamToolResults, collectGeneratedToolResults, createToolErrorMessage, createToolResultMessage, getProviderExecutedToolNames, getToolResultError, isRecoverablePlaceholderToolCall, isStreamedToolCallIncomplete, materializeStreamedToolCall, shouldContinueAfterStreamStep, } from "./tool-result-continuation.js";
|
|
30
|
-
import { enforceSkillPolicy, extractSkillId, extractSkillPolicy, FORM_INPUT_TOOL_ID, hasSubmittedFormInputResult, hydrateActiveSkillStateFromMessages, LOAD_SKILL_TOOL_ID, removeFormInputAfterSubmission, SUBMITTED_FORM_INPUT_CONTEXT_KEY, } from "./skill-policy-enforcement.js";
|
|
30
|
+
import { enforceSkillPolicy, extractSkillId, extractSkillPolicy, extractSkillToolAvailability, FORM_INPUT_TOOL_ID, hasSubmittedFormInputResult, hydrateActiveSkillStateFromMessages, INACTIVE_SKILL_TOOL_AVAILABILITY, LOAD_SKILL_TOOL_ID, removeFormInputAfterSubmission, SUBMITTED_FORM_INPUT_CONTEXT_KEY, } from "./skill-policy-enforcement.js";
|
|
31
31
|
import { getRuntimeAllowedRemoteTools, getRuntimeForwardedIntegrationToolDefs, getRuntimeProviderTools, } from "./runtime-tool-config.js";
|
|
32
32
|
import { prepareAgentRuntimeStep } from "./agent-runtime-step.js";
|
|
33
33
|
import { buildStreamedAssistantMessage } from "./streamed-assistant-message.js";
|
|
@@ -47,7 +47,7 @@ import { executeConfiguredTool, getAvailableTools, isDynamicTool } from "./tool-
|
|
|
47
47
|
import { accumulateUsage, getMaxSteps, normalizeInput } from "./input-utils.js";
|
|
48
48
|
import { resolveRuntimeModel } from "./model-resolution.js";
|
|
49
49
|
import { stringifyToolError, throwIfAborted } from "./error-utils.js";
|
|
50
|
-
import {
|
|
50
|
+
import { resolveTemperatureParameter } from "./model-capabilities.js";
|
|
51
51
|
import { applySkillDelegationOverridesToToolInput, extractSkillDelegationOverrides, } from "./skill-delegation-overrides.js";
|
|
52
52
|
import { resolveAgentModelTransport } from "./model-transport.js";
|
|
53
53
|
const logger = serverLogger.component("agent");
|
|
@@ -324,6 +324,7 @@ export class AgentRuntime {
|
|
|
324
324
|
const hydratedSkillState = hydrateActiveSkillStateFromMessages(currentMessages);
|
|
325
325
|
let activeSkillId = hydratedSkillState.activeSkillId;
|
|
326
326
|
let activeSkillPolicy = hydratedSkillState.activeSkillPolicy;
|
|
327
|
+
let activeSkillToolAvailability = hydratedSkillState.activeSkillToolAvailability;
|
|
327
328
|
let activeSkillDelegationOverrides = hydratedSkillState.activeSkillDelegationOverrides;
|
|
328
329
|
let hasSubmittedFormInputInLoop = hasSubmittedFormInputResult(currentMessages) ||
|
|
329
330
|
runtimeContext?.[SUBMITTED_FORM_INPUT_CONTEXT_KEY] === true;
|
|
@@ -341,7 +342,9 @@ export class AgentRuntime {
|
|
|
341
342
|
: currentRuntimeContext;
|
|
342
343
|
const preparedStep = await prepareAgentRuntimeStep({
|
|
343
344
|
agentId: this.id,
|
|
345
|
+
activeSkillId,
|
|
344
346
|
activeSkillPolicy,
|
|
347
|
+
activeSkillToolAvailability,
|
|
345
348
|
allowedRemoteToolNames,
|
|
346
349
|
config: this.config,
|
|
347
350
|
forwardedRemoteToolDefinitions,
|
|
@@ -360,7 +363,7 @@ export class AgentRuntime {
|
|
|
360
363
|
currentRuntimeContext = preparedStep.runtimeContext;
|
|
361
364
|
const toolContext = preparedStep.toolContext;
|
|
362
365
|
const tools = preparedStep.tools;
|
|
363
|
-
const temperature = this.resolveTemperature(temperatureModelString ?? effectiveModel);
|
|
366
|
+
const temperature = this.resolveTemperature(temperatureModelString ?? effectiveModel, providerOptions);
|
|
364
367
|
const response = await withSpan("agent.generate_text", async (span) => {
|
|
365
368
|
setSpanAttributes(span, {
|
|
366
369
|
"model.id": effectiveModel,
|
|
@@ -464,6 +467,7 @@ export class AgentRuntime {
|
|
|
464
467
|
}
|
|
465
468
|
const policyCheck = enforceSkillPolicy(tc.toolName, activeSkillPolicy, mustLoadSkillFirst, {
|
|
466
469
|
hasSubmittedFormInput: hasSubmittedFormInputInLoop,
|
|
470
|
+
skillToolAvailability: activeSkillToolAvailability,
|
|
467
471
|
});
|
|
468
472
|
if (!policyCheck.allowed) {
|
|
469
473
|
toolCall.status = "error";
|
|
@@ -513,6 +517,8 @@ export class AgentRuntime {
|
|
|
513
517
|
if (tc.toolName === LOAD_SKILL_TOOL_ID) {
|
|
514
518
|
activeSkillId = extractSkillId(result);
|
|
515
519
|
activeSkillPolicy = extractSkillPolicy(result);
|
|
520
|
+
activeSkillToolAvailability = extractSkillToolAvailability(result) ??
|
|
521
|
+
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
516
522
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
|
|
517
523
|
mustLoadSkillFirst = false;
|
|
518
524
|
}
|
|
@@ -572,6 +578,7 @@ export class AgentRuntime {
|
|
|
572
578
|
const hydratedSkillState = hydrateActiveSkillStateFromMessages(currentMessages);
|
|
573
579
|
let activeSkillId = hydratedSkillState.activeSkillId;
|
|
574
580
|
let activeSkillPolicy = hydratedSkillState.activeSkillPolicy;
|
|
581
|
+
let activeSkillToolAvailability = hydratedSkillState.activeSkillToolAvailability;
|
|
575
582
|
let activeSkillDelegationOverrides = hydratedSkillState.activeSkillDelegationOverrides;
|
|
576
583
|
let hasSubmittedFormInputInLoop = hasSubmittedFormInputResult(currentMessages) ||
|
|
577
584
|
runtimeContext?.[SUBMITTED_FORM_INPUT_CONTEXT_KEY] === true;
|
|
@@ -593,7 +600,9 @@ export class AgentRuntime {
|
|
|
593
600
|
: currentRuntimeContext;
|
|
594
601
|
const preparedStep = await prepareAgentRuntimeStep({
|
|
595
602
|
agentId: this.id,
|
|
603
|
+
activeSkillId,
|
|
596
604
|
activeSkillPolicy,
|
|
605
|
+
activeSkillToolAvailability,
|
|
597
606
|
allowedRemoteToolNames,
|
|
598
607
|
config: this.config,
|
|
599
608
|
forwardedRemoteToolDefinitions,
|
|
@@ -620,7 +629,7 @@ export class AgentRuntime {
|
|
|
620
629
|
providerTools: stepProviderTools,
|
|
621
630
|
});
|
|
622
631
|
const runtimeToolNames = Object.keys(runtimeTools ?? {});
|
|
623
|
-
const temperature = this.resolveTemperature(temperatureModelString ?? effectiveModel);
|
|
632
|
+
const temperature = this.resolveTemperature(temperatureModelString ?? effectiveModel, providerOptions);
|
|
624
633
|
const result = streamText({
|
|
625
634
|
model: languageModel,
|
|
626
635
|
system: currentSystemPrompt,
|
|
@@ -779,6 +788,8 @@ export class AgentRuntime {
|
|
|
779
788
|
if (tc.name === LOAD_SKILL_TOOL_ID) {
|
|
780
789
|
activeSkillId = extractSkillId(matchingResult.output);
|
|
781
790
|
activeSkillPolicy = extractSkillPolicy(matchingResult.output);
|
|
791
|
+
activeSkillToolAvailability = extractSkillToolAvailability(matchingResult.output) ??
|
|
792
|
+
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
782
793
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(matchingResult.output);
|
|
783
794
|
mustLoadSkillFirst = false;
|
|
784
795
|
}
|
|
@@ -803,6 +814,8 @@ export class AgentRuntime {
|
|
|
803
814
|
if (tc.name === LOAD_SKILL_TOOL_ID) {
|
|
804
815
|
activeSkillId = extractSkillId(persistedResult.result);
|
|
805
816
|
activeSkillPolicy = extractSkillPolicy(persistedResult.result);
|
|
817
|
+
activeSkillToolAvailability = extractSkillToolAvailability(persistedResult.result) ??
|
|
818
|
+
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
806
819
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(persistedResult.result);
|
|
807
820
|
mustLoadSkillFirst = false;
|
|
808
821
|
}
|
|
@@ -836,6 +849,7 @@ export class AgentRuntime {
|
|
|
836
849
|
}
|
|
837
850
|
const policyCheck = enforceSkillPolicy(tc.name, activeSkillPolicy, mustLoadSkillFirst, {
|
|
838
851
|
hasSubmittedFormInput: hasSubmittedFormInputInLoop,
|
|
852
|
+
skillToolAvailability: activeSkillToolAvailability,
|
|
839
853
|
});
|
|
840
854
|
if (!policyCheck.allowed) {
|
|
841
855
|
await this.recordToolError(toolCall, policyCheck.error, controller, encoder, currentMessages, toolCalls);
|
|
@@ -871,6 +885,8 @@ export class AgentRuntime {
|
|
|
871
885
|
if (tc.name === LOAD_SKILL_TOOL_ID) {
|
|
872
886
|
activeSkillId = extractSkillId(result);
|
|
873
887
|
activeSkillPolicy = extractSkillPolicy(result);
|
|
888
|
+
activeSkillToolAvailability = extractSkillToolAvailability(result) ??
|
|
889
|
+
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
874
890
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
|
|
875
891
|
mustLoadSkillFirst = false;
|
|
876
892
|
}
|
|
@@ -955,11 +971,8 @@ export class AgentRuntime {
|
|
|
955
971
|
const edgeMaxSteps = this.config.edge?.enabled ? this.config.edge.maxSteps : undefined;
|
|
956
972
|
return getMaxSteps(this.config.maxSteps, edgeMaxSteps, platformLimit);
|
|
957
973
|
}
|
|
958
|
-
resolveTemperature(modelString) {
|
|
959
|
-
|
|
960
|
-
return undefined;
|
|
961
|
-
}
|
|
962
|
-
return this.config.temperature ?? DEFAULT_TEMPERATURE;
|
|
974
|
+
resolveTemperature(modelString, providerOptions) {
|
|
975
|
+
return resolveTemperatureParameter(modelString, this.config.temperature, DEFAULT_TEMPERATURE, providerOptions);
|
|
963
976
|
}
|
|
964
977
|
resolveMaxOutputTokens(modelString, maxOutputTokensOverride) {
|
|
965
978
|
if (typeof maxOutputTokensOverride === "number" &&
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare function normalizeModelCapabilityId(modelString?: string): string | undefined;
|
|
2
2
|
export declare function supportsTemperatureParameter(modelString?: string): boolean;
|
|
3
|
+
export declare function getFixedTemperatureParameter(modelString?: string, providerOptions?: Record<string, unknown>): number | undefined;
|
|
4
|
+
export declare function resolveTemperatureParameter(modelString: string | undefined, requestedTemperature: number | undefined, defaultTemperature: number, providerOptions?: Record<string, unknown>): number | undefined;
|
|
3
5
|
//# sourceMappingURL=model-capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-capabilities.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/model-capabilities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-capabilities.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/model-capabilities.ts"],"names":[],"mappings":"AA6CA,wBAAgB,0BAA0B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnF;AAED,wBAAgB,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAI1E;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,kBAAkB,EAAE,MAAM,EAC1B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAM,GAAG,SAAS,CAWpB"}
|
|
@@ -3,6 +3,38 @@ const MODELS_WITHOUT_TEMPERATURE_PARAMETER = new Set([
|
|
|
3
3
|
"anthropic/claude-opus-4-7",
|
|
4
4
|
"anthropic/claude-opus-4-8",
|
|
5
5
|
]);
|
|
6
|
+
const KIMI_K2_6_MODEL_ID = "moonshotai/kimi-k2.6";
|
|
7
|
+
const KIMI_K2_6_THINKING_TEMPERATURE = 1;
|
|
8
|
+
const KIMI_K2_6_NON_THINKING_TEMPERATURE = 0.6;
|
|
9
|
+
function isRecord(value) {
|
|
10
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
11
|
+
}
|
|
12
|
+
function getRecord(record, key) {
|
|
13
|
+
const value = record[key];
|
|
14
|
+
return isRecord(value) ? value : undefined;
|
|
15
|
+
}
|
|
16
|
+
function isThinkingDisabled(options) {
|
|
17
|
+
const thinking = options ? getRecord(options, "thinking") : undefined;
|
|
18
|
+
return thinking?.type === "disabled";
|
|
19
|
+
}
|
|
20
|
+
function hasDisabledThinking(providerOptions) {
|
|
21
|
+
if (!providerOptions)
|
|
22
|
+
return false;
|
|
23
|
+
if (isThinkingDisabled(providerOptions))
|
|
24
|
+
return true;
|
|
25
|
+
for (const providerKey of ["moonshotai", "openai"]) {
|
|
26
|
+
const provider = getRecord(providerOptions, providerKey);
|
|
27
|
+
if (!provider)
|
|
28
|
+
continue;
|
|
29
|
+
if (isThinkingDisabled(provider))
|
|
30
|
+
return true;
|
|
31
|
+
for (const bodyKey of ["extraBody", "extra_body"]) {
|
|
32
|
+
if (isThinkingDisabled(getRecord(provider, bodyKey)))
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
6
38
|
export function normalizeModelCapabilityId(modelString) {
|
|
7
39
|
if (!modelString)
|
|
8
40
|
return undefined;
|
|
@@ -16,3 +48,24 @@ export function supportsTemperatureParameter(modelString) {
|
|
|
16
48
|
return true;
|
|
17
49
|
return !MODELS_WITHOUT_TEMPERATURE_PARAMETER.has(normalizedModel);
|
|
18
50
|
}
|
|
51
|
+
export function getFixedTemperatureParameter(modelString, providerOptions) {
|
|
52
|
+
const normalizedModel = normalizeModelCapabilityId(modelString);
|
|
53
|
+
if (!normalizedModel)
|
|
54
|
+
return undefined;
|
|
55
|
+
if (normalizedModel === KIMI_K2_6_MODEL_ID) {
|
|
56
|
+
return hasDisabledThinking(providerOptions)
|
|
57
|
+
? KIMI_K2_6_NON_THINKING_TEMPERATURE
|
|
58
|
+
: KIMI_K2_6_THINKING_TEMPERATURE;
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
export function resolveTemperatureParameter(modelString, requestedTemperature, defaultTemperature, providerOptions) {
|
|
63
|
+
if (!supportsTemperatureParameter(modelString)) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const fixedTemperature = getFixedTemperatureParameter(modelString, providerOptions);
|
|
67
|
+
if (fixedTemperature !== undefined) {
|
|
68
|
+
return fixedTemperature;
|
|
69
|
+
}
|
|
70
|
+
return requestedTemperature ?? defaultTemperature;
|
|
71
|
+
}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import type { Message } from "../types.js";
|
|
2
2
|
import type { ToolDefinition } from "../../tool/index.js";
|
|
3
|
+
import { type SkillToolAvailability } from "../../skill/allowed-tools.js";
|
|
3
4
|
import { type SkillDelegationOverrides } from "./skill-delegation-overrides.js";
|
|
4
5
|
export declare const LOAD_SKILL_TOOL_ID = "load_skill";
|
|
5
6
|
export declare const FORM_INPUT_TOOL_ID = "form_input";
|
|
6
7
|
export declare const INVOKE_AGENT_TOOL_ID = "invoke_agent";
|
|
7
8
|
export declare const SUBMITTED_FORM_INPUT_CONTEXT_KEY = "hasSubmittedFormInputResult";
|
|
9
|
+
export declare const INACTIVE_SKILL_TOOL_AVAILABILITY: SkillToolAvailability;
|
|
8
10
|
export declare function hydrateActiveSkillStateFromMessages(messages: readonly Message[]): {
|
|
9
11
|
activeSkillId: string | undefined;
|
|
10
12
|
activeSkillPolicy: string[] | undefined;
|
|
13
|
+
activeSkillToolAvailability: SkillToolAvailability | undefined;
|
|
11
14
|
activeSkillDelegationOverrides: SkillDelegationOverrides | undefined;
|
|
12
15
|
};
|
|
13
16
|
export declare function extractSkillId(result: unknown): string | undefined;
|
|
14
17
|
export declare function extractSkillPolicy(result: unknown): string[] | undefined;
|
|
18
|
+
export declare function extractSkillToolAvailability(result: unknown): SkillToolAvailability | undefined;
|
|
15
19
|
export declare function hasSubmittedFormInputResult(messages: readonly Message[]): boolean;
|
|
16
20
|
export declare function filterToolsAfterSubmittedFormInput(tools: readonly ToolDefinition[], messages: readonly Message[], runtimeContext?: Record<string, unknown>): ToolDefinition[];
|
|
17
21
|
export declare function removeFormInputAfterSubmission(toolName: string, result: unknown, activeSkillId: string | undefined, activeSkillPolicy: string[] | undefined): string[] | undefined;
|
|
@@ -24,6 +28,7 @@ export type SkillPolicyResult = {
|
|
|
24
28
|
};
|
|
25
29
|
export type SkillPolicyOptions = {
|
|
26
30
|
hasSubmittedFormInput?: boolean;
|
|
31
|
+
skillToolAvailability?: SkillToolAvailability;
|
|
27
32
|
};
|
|
28
33
|
export declare function enforceSkillPolicy(toolName: string, activeSkillPolicy: string[] | undefined, mustLoadSkillFirst: boolean, options?: SkillPolicyOptions): SkillPolicyResult;
|
|
29
34
|
//# sourceMappingURL=skill-policy-enforcement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-policy-enforcement.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/skill-policy-enforcement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-policy-enforcement.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/skill-policy-enforcement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAIzC,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AACnD,eAAO,MAAM,gCAAgC,gCAAgC,CAAC;AAE9E,eAAO,MAAM,gCAAgC,EAAE,qBAI9C,CAAC;AAYF,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B;IACD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,2BAA2B,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC/D,8BAA8B,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACtE,CAuBA;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAyBxE;AAQD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,GACd,qBAAqB,GAAG,SAAS,CAkBnC;AAqCD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAUjF;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,cAAc,EAAE,CAQlB;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,MAAM,EAAE,GAAG,SAAS,CAStB;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,MAAM,EAAE,GAAG,SAAS,CAoCtB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,EACvC,kBAAkB,EAAE,OAAO,EAC3B,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CA4BnB"}
|
|
@@ -7,6 +7,11 @@ export const LOAD_SKILL_TOOL_ID = "load_skill";
|
|
|
7
7
|
export const FORM_INPUT_TOOL_ID = "form_input";
|
|
8
8
|
export const INVOKE_AGENT_TOOL_ID = "invoke_agent";
|
|
9
9
|
export const SUBMITTED_FORM_INPUT_CONTEXT_KEY = "hasSubmittedFormInputResult";
|
|
10
|
+
export const INACTIVE_SKILL_TOOL_AVAILABILITY = {
|
|
11
|
+
hasActiveSkill: false,
|
|
12
|
+
references: [],
|
|
13
|
+
scripts: [],
|
|
14
|
+
};
|
|
10
15
|
const POST_SUBMITTED_FORM_INPUT_BLOCKED_TOOL_IDS = new Set([
|
|
11
16
|
FORM_INPUT_TOOL_ID,
|
|
12
17
|
LOAD_SKILL_TOOL_ID,
|
|
@@ -18,6 +23,7 @@ function getSkillActivationRequiredError(toolName) {
|
|
|
18
23
|
export function hydrateActiveSkillStateFromMessages(messages) {
|
|
19
24
|
let activeSkillId;
|
|
20
25
|
let activeSkillPolicy;
|
|
26
|
+
let activeSkillToolAvailability = INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
21
27
|
let activeSkillDelegationOverrides;
|
|
22
28
|
for (const message of messages) {
|
|
23
29
|
for (const part of message.parts) {
|
|
@@ -25,10 +31,17 @@ export function hydrateActiveSkillStateFromMessages(messages) {
|
|
|
25
31
|
continue;
|
|
26
32
|
activeSkillId = extractSkillId(part.result);
|
|
27
33
|
activeSkillPolicy = extractSkillPolicy(part.result);
|
|
34
|
+
activeSkillToolAvailability = extractSkillToolAvailability(part.result) ??
|
|
35
|
+
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
28
36
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(part.result);
|
|
29
37
|
}
|
|
30
38
|
}
|
|
31
|
-
return {
|
|
39
|
+
return {
|
|
40
|
+
activeSkillId,
|
|
41
|
+
activeSkillPolicy,
|
|
42
|
+
activeSkillToolAvailability,
|
|
43
|
+
activeSkillDelegationOverrides,
|
|
44
|
+
};
|
|
32
45
|
}
|
|
33
46
|
export function extractSkillId(result) {
|
|
34
47
|
if (!result || typeof result !== "object")
|
|
@@ -56,6 +69,31 @@ export function extractSkillPolicy(result) {
|
|
|
56
69
|
return [];
|
|
57
70
|
}
|
|
58
71
|
}
|
|
72
|
+
function extractStringArrayField(result, field) {
|
|
73
|
+
const raw = result[field];
|
|
74
|
+
if (!Array.isArray(raw))
|
|
75
|
+
return [];
|
|
76
|
+
return raw.filter((value) => typeof value === "string");
|
|
77
|
+
}
|
|
78
|
+
export function extractSkillToolAvailability(result) {
|
|
79
|
+
if (!result || typeof result !== "object")
|
|
80
|
+
return undefined;
|
|
81
|
+
const skillResult = result;
|
|
82
|
+
if (typeof skillResult.error === "string")
|
|
83
|
+
return undefined;
|
|
84
|
+
const looksLikeLoadedSkill = typeof skillResult.instructions === "string" ||
|
|
85
|
+
typeof skillResult.skillId === "string" ||
|
|
86
|
+
"allowedTools" in skillResult ||
|
|
87
|
+
"references" in skillResult ||
|
|
88
|
+
"scripts" in skillResult;
|
|
89
|
+
if (!looksLikeLoadedSkill)
|
|
90
|
+
return undefined;
|
|
91
|
+
return {
|
|
92
|
+
hasActiveSkill: true,
|
|
93
|
+
references: extractStringArrayField(skillResult, "references"),
|
|
94
|
+
scripts: extractStringArrayField(skillResult, "scripts"),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
59
97
|
function parseToolResultJson(result) {
|
|
60
98
|
try {
|
|
61
99
|
return JSON.parse(result);
|
|
@@ -145,10 +183,10 @@ export function enforceSkillPolicy(toolName, activeSkillPolicy, mustLoadSkillFir
|
|
|
145
183
|
error: `Tool "${toolName}" cannot run after a submitted form_input result exists. Continue with the submitted values.`,
|
|
146
184
|
};
|
|
147
185
|
}
|
|
148
|
-
if (
|
|
186
|
+
if (!isToolAllowedBySkill(toolName, activeSkillPolicy, options.skillToolAvailability)) {
|
|
149
187
|
return {
|
|
150
188
|
allowed: false,
|
|
151
|
-
error: `Tool "${toolName}" is not allowed by the active skill policy. Allowed: ${activeSkillPolicy
|
|
189
|
+
error: `Tool "${toolName}" is not allowed by the active skill policy. Allowed: ${activeSkillPolicy?.join(", ") ?? "none"}`,
|
|
152
190
|
};
|
|
153
191
|
}
|
|
154
192
|
return { allowed: true };
|
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
|
+
/** Active skill file-backed capabilities available to skill infrastructure tools. */
|
|
11
|
+
export type SkillToolAvailability = {
|
|
12
|
+
hasActiveSkill?: boolean;
|
|
13
|
+
references?: readonly string[];
|
|
14
|
+
scripts?: readonly string[];
|
|
15
|
+
};
|
|
10
16
|
/**
|
|
11
17
|
* Check if a tool name matches a single allowed-tools pattern.
|
|
12
18
|
*
|
|
@@ -27,7 +33,7 @@ export declare function matchesAllowedTool(toolName: string, pattern: string): b
|
|
|
27
33
|
*/
|
|
28
34
|
export declare function filterToolsForSkill<T extends {
|
|
29
35
|
name: string;
|
|
30
|
-
}>(tools: T[], allowedTools: string[] | undefined): T[];
|
|
36
|
+
}>(tools: T[], allowedTools: string[] | undefined, skillToolAvailability?: SkillToolAvailability): T[];
|
|
31
37
|
/**
|
|
32
38
|
* Layer 2: Check if a specific tool call is allowed at execution time.
|
|
33
39
|
*
|
|
@@ -35,7 +41,7 @@ export declare function filterToolsForSkill<T extends {
|
|
|
35
41
|
* @param allowedTools - Allowed tool patterns, or undefined for no restrictions
|
|
36
42
|
* @returns true if the tool call is allowed
|
|
37
43
|
*/
|
|
38
|
-
export declare function isToolAllowedBySkill(toolName: string, allowedTools: string[] | undefined): boolean;
|
|
44
|
+
export declare function isToolAllowedBySkill(toolName: string, allowedTools: string[] | undefined, skillToolAvailability?: SkillToolAvailability): boolean;
|
|
39
45
|
/**
|
|
40
46
|
* Validate allowed-tool patterns at parse time.
|
|
41
47
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowed-tools.d.ts","sourceRoot":"","sources":["../../../src/src/skill/allowed-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAc7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5D,KAAK,EAAE,CAAC,EAAE,EACV,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"allowed-tools.d.ts","sourceRoot":"","sources":["../../../src/src/skill/allowed-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAc7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5D,KAAK,EAAE,CAAC,EAAE,EACV,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,EAClC,qBAAqB,CAAC,EAAE,qBAAqB,GAC5C,CAAC,EAAE,CAoBL;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,EAClC,qBAAqB,CAAC,EAAE,qBAAqB,GAC5C,OAAO,CAKT;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAaxE"}
|
|
@@ -9,6 +9,24 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { SKILL_ALLOWED_TOOL_PATTERN_REGEX, SKILL_TOOL_IDS } from "./types.js";
|
|
11
11
|
import { createError, toError } from "../errors/veryfront-error.js";
|
|
12
|
+
const LOAD_SKILL_TOOL_ID = "load_skill";
|
|
13
|
+
const LOAD_SKILL_REFERENCE_TOOL_ID = "load_skill_reference";
|
|
14
|
+
const EXECUTE_SKILL_SCRIPT_TOOL_ID = "execute_skill_script";
|
|
15
|
+
function isSkillInfrastructureToolAllowed(toolName, availability = {}) {
|
|
16
|
+
if (!SKILL_TOOL_IDS.has(toolName)) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
if (toolName === LOAD_SKILL_TOOL_ID) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
if (toolName === LOAD_SKILL_REFERENCE_TOOL_ID) {
|
|
23
|
+
return availability.hasActiveSkill === true && (availability.references?.length ?? 0) > 0;
|
|
24
|
+
}
|
|
25
|
+
if (toolName === EXECUTE_SKILL_SCRIPT_TOOL_ID) {
|
|
26
|
+
return availability.hasActiveSkill === true && (availability.scripts?.length ?? 0) > 0;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
12
30
|
/**
|
|
13
31
|
* Check if a tool name matches a single allowed-tools pattern.
|
|
14
32
|
*
|
|
@@ -39,13 +57,20 @@ export function matchesAllowedTool(toolName, pattern) {
|
|
|
39
57
|
* @param allowedTools - Allowed tool patterns, or undefined for no restrictions
|
|
40
58
|
* @returns Filtered tool definitions
|
|
41
59
|
*/
|
|
42
|
-
export function filterToolsForSkill(tools, allowedTools) {
|
|
60
|
+
export function filterToolsForSkill(tools, allowedTools, skillToolAvailability) {
|
|
43
61
|
if (allowedTools === undefined) {
|
|
44
|
-
|
|
62
|
+
if (!skillToolAvailability) {
|
|
63
|
+
return tools;
|
|
64
|
+
}
|
|
65
|
+
return tools.filter((tool) => {
|
|
66
|
+
const skillToolAllowed = isSkillInfrastructureToolAllowed(tool.name, skillToolAvailability);
|
|
67
|
+
return skillToolAllowed ?? true;
|
|
68
|
+
});
|
|
45
69
|
}
|
|
46
70
|
return tools.filter((tool) => {
|
|
47
|
-
|
|
48
|
-
|
|
71
|
+
const skillToolAllowed = isSkillInfrastructureToolAllowed(tool.name, skillToolAvailability);
|
|
72
|
+
if (skillToolAllowed !== undefined)
|
|
73
|
+
return skillToolAllowed;
|
|
49
74
|
return allowedTools.some((pattern) => matchesAllowedTool(tool.name, pattern));
|
|
50
75
|
});
|
|
51
76
|
}
|
|
@@ -56,11 +81,12 @@ export function filterToolsForSkill(tools, allowedTools) {
|
|
|
56
81
|
* @param allowedTools - Allowed tool patterns, or undefined for no restrictions
|
|
57
82
|
* @returns true if the tool call is allowed
|
|
58
83
|
*/
|
|
59
|
-
export function isToolAllowedBySkill(toolName, allowedTools) {
|
|
84
|
+
export function isToolAllowedBySkill(toolName, allowedTools, skillToolAvailability) {
|
|
85
|
+
const skillToolAllowed = isSkillInfrastructureToolAllowed(toolName, skillToolAvailability);
|
|
86
|
+
if (skillToolAllowed !== undefined)
|
|
87
|
+
return skillToolAllowed;
|
|
60
88
|
if (allowedTools === undefined)
|
|
61
89
|
return true;
|
|
62
|
-
if (SKILL_TOOL_IDS.has(toolName))
|
|
63
|
-
return true;
|
|
64
90
|
return allowedTools.some((pattern) => matchesAllowedTool(toolName, pattern));
|
|
65
91
|
}
|
|
66
92
|
/**
|
|
@@ -30,7 +30,7 @@ export function buildSkillManifestPrompt(skills) {
|
|
|
30
30
|
lines.push("### Skill Tools (call these as tools, never write them as text)");
|
|
31
31
|
lines.push("");
|
|
32
32
|
lines.push("- load_skill: Call with { skillId } to load a skill's full instructions and available references/resources/scripts");
|
|
33
|
-
lines.push("- load_skill_reference: Call with { skillId, reference }
|
|
34
|
-
lines.push("- execute_skill_script: Call with { skillId, script, args?, env?, timeoutMs? }
|
|
33
|
+
lines.push("- load_skill_reference: Call with { skillId, reference } only after load_skill lists reference files for that skill");
|
|
34
|
+
lines.push("- execute_skill_script: Call with { skillId, script, args?, env?, timeoutMs? } only after load_skill lists scripts for that skill");
|
|
35
35
|
return lines.join("\n");
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/src/skill/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAwB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/src/skill/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAwB,MAAM,kBAAkB,CAAC;AAgKnE;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAoD1C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA+BnD;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAuCnD"}
|
package/esm/src/skill/tools.js
CHANGED
|
@@ -83,6 +83,39 @@ function buildSkillAvailabilityNote(references, scripts) {
|
|
|
83
83
|
}
|
|
84
84
|
return undefined;
|
|
85
85
|
}
|
|
86
|
+
function hasRuntimeSkillBoundary(context) {
|
|
87
|
+
if (!context)
|
|
88
|
+
return false;
|
|
89
|
+
return context.activeSkillId !== undefined ||
|
|
90
|
+
context.activeSkillToolAvailability !== undefined;
|
|
91
|
+
}
|
|
92
|
+
function assertActiveSkillFileAvailable(input, context) {
|
|
93
|
+
if (!hasRuntimeSkillBoundary(context))
|
|
94
|
+
return;
|
|
95
|
+
const activeSkillId = context.activeSkillId;
|
|
96
|
+
const availability = context.activeSkillToolAvailability;
|
|
97
|
+
if (!activeSkillId || availability?.hasActiveSkill !== true) {
|
|
98
|
+
throw toError(createError({
|
|
99
|
+
type: "agent",
|
|
100
|
+
message: `${input.toolName} requires an active loaded skill.`,
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
if (input.skillId !== activeSkillId) {
|
|
104
|
+
throw toError(createError({
|
|
105
|
+
type: "agent",
|
|
106
|
+
message: `${input.toolName} can only access the active loaded skill "${activeSkillId}". Requested "${input.requestedSkillId}".`,
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
const advertised = input.kind === "reference"
|
|
110
|
+
? availability.references ?? []
|
|
111
|
+
: availability.scripts ?? [];
|
|
112
|
+
if (!advertised.includes(input.path)) {
|
|
113
|
+
throw toError(createError({
|
|
114
|
+
type: "agent",
|
|
115
|
+
message: `${input.toolName} can only access ${input.kind} files advertised by load_skill.`,
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
86
119
|
/**
|
|
87
120
|
* Create the load_skill tool.
|
|
88
121
|
* Loads a skill's full instructions, available references, and scripts.
|
|
@@ -101,14 +134,16 @@ export function createLoadSkillTool() {
|
|
|
101
134
|
// Parse frontmatter to get instructions
|
|
102
135
|
const parsed = await parseSkillFrontmatter(content);
|
|
103
136
|
// List available files the agent can load through load_skill_reference.
|
|
104
|
-
const [references, resources, scripts] = await Promise.all([
|
|
137
|
+
const [references, resources, assets, scripts] = await Promise.all([
|
|
105
138
|
listSkillSubdir(skill.rootPath, SKILL_REFERENCES_DIR, skill.fsAdapter),
|
|
106
139
|
listSkillSubdir(skill.rootPath, SKILL_RESOURCES_DIR, skill.fsAdapter),
|
|
140
|
+
listSkillSubdir(skill.rootPath, SKILL_ASSETS_DIR, skill.fsAdapter),
|
|
107
141
|
listSkillSubdir(skill.rootPath, SKILL_SCRIPTS_DIR, skill.fsAdapter),
|
|
108
142
|
]);
|
|
109
|
-
const loadableReferences = [...references, ...resources];
|
|
143
|
+
const loadableReferences = [...references, ...resources, ...assets];
|
|
110
144
|
const note = buildSkillAvailabilityNote(loadableReferences, scripts);
|
|
111
145
|
return {
|
|
146
|
+
skillId: skill.id,
|
|
112
147
|
instructions: parsed.body,
|
|
113
148
|
allowedTools: skill.metadata.allowedTools,
|
|
114
149
|
references: loadableReferences,
|
|
@@ -130,6 +165,13 @@ export function createLoadSkillReferenceTool() {
|
|
|
130
165
|
inputSchema: getLoadSkillReferenceInputSchema(),
|
|
131
166
|
execute: async (input, context) => {
|
|
132
167
|
const skill = resolveVisibleSkillOrThrow(input.skillId, context);
|
|
168
|
+
assertActiveSkillFileAvailable({
|
|
169
|
+
toolName: "load_skill_reference",
|
|
170
|
+
skillId: skill.id,
|
|
171
|
+
requestedSkillId: input.skillId,
|
|
172
|
+
path: input.reference,
|
|
173
|
+
kind: "reference",
|
|
174
|
+
}, context);
|
|
133
175
|
// Validate path safety before reading skill-provided context.
|
|
134
176
|
const validatedPath = await validateSkillPath(skill.rootPath, input.reference, [SKILL_REFERENCES_DIR, SKILL_RESOURCES_DIR, SKILL_ASSETS_DIR], skill.fsAdapter);
|
|
135
177
|
const content = await readSkillFile(skill, validatedPath);
|
|
@@ -148,6 +190,13 @@ export function createExecuteSkillScriptTool() {
|
|
|
148
190
|
inputSchema: getExecuteSkillScriptInputSchema(),
|
|
149
191
|
execute: async (input, context) => {
|
|
150
192
|
const skill = resolveVisibleSkillOrThrow(input.skillId, context);
|
|
193
|
+
assertActiveSkillFileAvailable({
|
|
194
|
+
toolName: "execute_skill_script",
|
|
195
|
+
skillId: skill.id,
|
|
196
|
+
requestedSkillId: input.skillId,
|
|
197
|
+
path: input.script,
|
|
198
|
+
kind: "script",
|
|
199
|
+
}, context);
|
|
151
200
|
// Validate path safety (only scripts/ allowed)
|
|
152
201
|
const validatedPath = await validateSkillPath(skill.rootPath, input.script, [SKILL_SCRIPTS_DIR], skill.fsAdapter);
|
|
153
202
|
const scriptContent = await readSkillFile(skill, validatedPath);
|
package/esm/src/skill/types.d.ts
CHANGED
|
@@ -39,6 +39,8 @@ export interface SkillMetadata {
|
|
|
39
39
|
}
|
|
40
40
|
/** Full skill content returned by load_skill tool */
|
|
41
41
|
export interface SkillContent {
|
|
42
|
+
/** Loaded skill identifier */
|
|
43
|
+
skillId: string;
|
|
42
44
|
/** Markdown instructions (body after frontmatter) */
|
|
43
45
|
instructions: string;
|
|
44
46
|
/** Tool access restrictions from frontmatter */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/skill/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAE5D,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,QACiB,CAAC;AAE/D,+CAA+C;AAC/C,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,cAAc,aAIzB,CAAC;AAEH,sCAAsC;AACtC,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAIzC,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qCAAqC;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,gCAAgC;AAChC,MAAM,WAAW,KAAK;IACpB,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,QAAQ,EAAE,aAAa,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oCAAoC;AACpC,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtE;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/skill/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAE5D,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,QACiB,CAAC;AAE/D,+CAA+C;AAC/C,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,cAAc,aAIzB,CAAC;AAEH,sCAAsC;AACtC,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAIzC,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qCAAqC;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,gCAAgC;AAChC,MAAM,WAAW,KAAK;IACpB,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,QAAQ,EAAE,aAAa,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oCAAoC;AACpC,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtE;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
|
package/esm/src/tool/types.d.ts
CHANGED
|
@@ -72,6 +72,20 @@ export interface ToolExecutionContext {
|
|
|
72
72
|
branch?: string | null;
|
|
73
73
|
/** Environment name associated with project content */
|
|
74
74
|
environmentName?: string | null;
|
|
75
|
+
/** Canonical id of the active skill loaded by the current agent run step. */
|
|
76
|
+
activeSkillId?: string;
|
|
77
|
+
/**
|
|
78
|
+
* File-backed capabilities advertised by the active loaded skill.
|
|
79
|
+
*
|
|
80
|
+
* Framework skill file tools use this to reject references/scripts that were
|
|
81
|
+
* not listed by `load_skill`, even if the model guesses a valid path under a
|
|
82
|
+
* skill directory.
|
|
83
|
+
*/
|
|
84
|
+
activeSkillToolAvailability?: {
|
|
85
|
+
hasActiveSkill?: boolean;
|
|
86
|
+
references?: readonly string[];
|
|
87
|
+
scripts?: readonly string[];
|
|
88
|
+
};
|
|
75
89
|
/** Abort signal for cooperative cancellation during long-running tool execution */
|
|
76
90
|
abortSignal?: AbortSignal;
|
|
77
91
|
/** Progress token for sending progress notifications (MCP 2025-11-25) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/tool/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/tool/types.ts"],"names":[],"mappings":"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"}
|