agent-world 0.12.3 → 0.13.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 +15 -0
- package/dist/cli/hitl.d.ts +5 -1
- package/dist/cli/hitl.js +9 -3
- package/dist/cli/index.js +11 -9
- package/dist/core/activity-tracker.d.ts +12 -2
- package/dist/core/activity-tracker.d.ts.map +1 -1
- package/dist/core/activity-tracker.js +41 -5
- package/dist/core/activity-tracker.js.map +1 -1
- package/dist/core/create-agent-tool.d.ts +23 -25
- package/dist/core/create-agent-tool.d.ts.map +1 -1
- package/dist/core/create-agent-tool.js +241 -141
- package/dist/core/create-agent-tool.js.map +1 -1
- package/dist/core/events/memory-manager.js +1 -1
- package/dist/core/events/memory-manager.js.map +1 -1
- package/dist/core/events/orchestrator.d.ts.map +1 -1
- package/dist/core/events/orchestrator.js +14 -5
- package/dist/core/events/orchestrator.js.map +1 -1
- package/dist/core/events/persistence.d.ts +1 -1
- package/dist/core/events/persistence.d.ts.map +1 -1
- package/dist/core/events/persistence.js +1 -27
- package/dist/core/events/persistence.js.map +1 -1
- package/dist/core/events/publishers.d.ts +0 -9
- package/dist/core/events/publishers.d.ts.map +1 -1
- package/dist/core/events/publishers.js +10 -27
- package/dist/core/events/publishers.js.map +1 -1
- package/dist/core/events/subscribers.d.ts +1 -1
- package/dist/core/events/subscribers.d.ts.map +1 -1
- package/dist/core/events/subscribers.js +15 -7
- package/dist/core/events/subscribers.js.map +1 -1
- package/dist/core/hitl-tool.d.ts +79 -0
- package/dist/core/hitl-tool.d.ts.map +1 -0
- package/dist/core/hitl-tool.js +306 -0
- package/dist/core/hitl-tool.js.map +1 -0
- package/dist/core/hitl.d.ts +26 -6
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +82 -32
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/llm-manager.d.ts +2 -0
- package/dist/core/llm-manager.d.ts.map +1 -1
- package/dist/core/llm-manager.js +16 -9
- package/dist/core/llm-manager.js.map +1 -1
- package/dist/core/managers.d.ts +24 -3
- package/dist/core/managers.d.ts.map +1 -1
- package/dist/core/managers.js +103 -52
- package/dist/core/managers.js.map +1 -1
- package/dist/core/mcp-server-registry.d.ts +3 -1
- package/dist/core/mcp-server-registry.d.ts.map +1 -1
- package/dist/core/mcp-server-registry.js +7 -1
- package/dist/core/mcp-server-registry.js.map +1 -1
- package/dist/core/tool-utils.d.ts +3 -1
- package/dist/core/tool-utils.d.ts.map +1 -1
- package/dist/core/tool-utils.js +55 -25
- package/dist/core/tool-utils.js.map +1 -1
- package/dist/core/types.d.ts +2 -17
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils.d.ts +9 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +28 -3
- package/dist/core/utils.js.map +1 -1
- package/dist/public/assets/index-BW41BxMy.css +1 -0
- package/dist/public/assets/index-kO6UJFwK.js +96 -0
- package/dist/public/index.html +2 -2
- package/dist/server/api.js +29 -41
- package/dist/server/sse-handler.d.ts +3 -2
- package/dist/server/sse-handler.js +19 -11
- package/package.json +1 -1
- package/dist/public/assets/index-BO20H4xt.js +0 -96
- package/dist/public/assets/index-ETY7W5_S.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishers.js","sourceRoot":"","sources":["../../../core/events/publishers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"publishers.js","sourceRoot":"","sources":["../../../core/events/publishers.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* - storage (runtime)
|
|
21
21
|
*
|
|
22
22
|
* Changes:
|
|
23
|
-
* - 2026-02-
|
|
23
|
+
* - 2026-02-20: Publish chat-title update notifications as structured `system` events (`chat-title-updated`).
|
|
24
24
|
* - 2026-02-13: Added no-activity user-message fallback title scheduling to cover edited chats with no agent response.
|
|
25
25
|
* - 2026-02-13: Switched title commit path to compare-and-set storage update to avoid concurrent overwrite races.
|
|
26
26
|
* - 2026-02-13: Added conditional commit checks and in-flight dedupe for idle title updates.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribers.d.ts","sourceRoot":"","sources":["../../../core/events/subscribers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,KAAK,EAGN,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"subscribers.d.ts","sourceRoot":"","sources":["../../../core/events/subscribers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,KAAK,EAGN,MAAM,aAAa,CAAC;AA+LrB;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,IAAI,CA6E/E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,IAAI,CAWjE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,IAAI,CAyBnE"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* - storage (runtime)
|
|
21
21
|
*
|
|
22
22
|
* Changes:
|
|
23
|
-
* - 2026-02-
|
|
23
|
+
* - 2026-02-20: Publish chat-title update notifications as structured `system` events (`chat-title-updated`).
|
|
24
24
|
* - 2026-02-13: Added no-activity user-message fallback title scheduling to cover edited chats with no agent response.
|
|
25
25
|
* - 2026-02-13: Switched title commit path to compare-and-set storage update to avoid concurrent overwrite races.
|
|
26
26
|
* - 2026-02-13: Added conditional commit checks and in-flight dedupe for idle title updates.
|
|
@@ -32,7 +32,7 @@ import { parseMessageContent } from '../message-prep.js';
|
|
|
32
32
|
import { extractParagraphBeginningMentions } from '../utils.js';
|
|
33
33
|
import { createCategoryLogger } from '../logger.js';
|
|
34
34
|
import { createStorageWithWrappers } from '../storage/storage-factory.js';
|
|
35
|
-
import {
|
|
35
|
+
import { publishEvent, subscribeToMessages } from './publishers.js';
|
|
36
36
|
import { saveIncomingMessageToMemory, resetLLMCallCountIfNeeded, generateChatTitleFromMessages } from './memory-manager.js';
|
|
37
37
|
import { processAgentMessage, shouldAgentRespond } from './orchestrator.js';
|
|
38
38
|
import { isDefaultChatTitle, NEW_CHAT_TITLE } from '../chat-constants.js';
|
|
@@ -165,10 +165,12 @@ async function tryGenerateAndApplyTitle(world, targetChatId, content, source) {
|
|
|
165
165
|
return;
|
|
166
166
|
}
|
|
167
167
|
currentChat.name = title;
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
168
|
+
publishEvent(world, 'system', {
|
|
169
|
+
eventType: 'chat-title-updated',
|
|
170
|
+
chatId: targetChatId,
|
|
171
|
+
title,
|
|
172
|
+
source,
|
|
173
|
+
message: `Chat title updated: ${title}`,
|
|
172
174
|
}, targetChatId);
|
|
173
175
|
}
|
|
174
176
|
finally {
|
|
@@ -236,7 +238,13 @@ export function subscribeAgentToMessages(world, agent) {
|
|
|
236
238
|
});
|
|
237
239
|
}
|
|
238
240
|
};
|
|
239
|
-
|
|
241
|
+
const unsubscribe = subscribeToMessages(world, handler);
|
|
242
|
+
// Track the unsubscribe function so deleteAgent can remove this listener.
|
|
243
|
+
if (!world._agentUnsubscribers) {
|
|
244
|
+
world._agentUnsubscribers = new Map();
|
|
245
|
+
}
|
|
246
|
+
world._agentUnsubscribers.set(agent.id, unsubscribe);
|
|
247
|
+
return unsubscribe;
|
|
240
248
|
}
|
|
241
249
|
/**
|
|
242
250
|
* Subscribe world to messages with cleanup function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribers.js","sourceRoot":"","sources":["../../../core/events/subscribers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"subscribers.js","sourceRoot":"","sources":["../../../core/events/subscribers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HITL Request Tool Module - Built-in tool for generic human-in-the-loop input
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* - Expose a built-in `human_intervention_request` tool that lets the model ask questions, offer options, and require explicit confirmation.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - Supports option-only response mode for deterministic user selection.
|
|
9
|
+
* - Uses existing world-scoped HITL option runtime.
|
|
10
|
+
* - Supports explicit confirmation/cancel flow with deterministic timeout behavior.
|
|
11
|
+
* - Returns structured JSON payloads for stable downstream model parsing.
|
|
12
|
+
*
|
|
13
|
+
* Implementation Notes:
|
|
14
|
+
* - Option values are normalized and deduplicated as display labels.
|
|
15
|
+
* - Free-text path is intentionally disabled to keep HITL interactions simple and auditable.
|
|
16
|
+
* - Tool execution requires world context; no external side effects beyond HITL events.
|
|
17
|
+
*
|
|
18
|
+
* Recent Changes:
|
|
19
|
+
* - 2026-02-20: Removed free-text mode from `human_intervention_request`; tool now enforces options-only interactions.
|
|
20
|
+
* - 2026-02-20: Added initial built-in `human_intervention_request` tool implementation.
|
|
21
|
+
*/
|
|
22
|
+
import { type World } from './types.js';
|
|
23
|
+
type HitlRequestToolArgs = {
|
|
24
|
+
question?: unknown;
|
|
25
|
+
options?: unknown;
|
|
26
|
+
requireConfirmation?: unknown;
|
|
27
|
+
confirmationMessage?: unknown;
|
|
28
|
+
timeoutMs?: unknown;
|
|
29
|
+
defaultOption?: unknown;
|
|
30
|
+
metadata?: unknown;
|
|
31
|
+
};
|
|
32
|
+
type HitlRequestToolContext = {
|
|
33
|
+
world?: World;
|
|
34
|
+
chatId?: string | null;
|
|
35
|
+
};
|
|
36
|
+
export declare function createHitlToolDefinition(): {
|
|
37
|
+
description: string;
|
|
38
|
+
parameters: {
|
|
39
|
+
type: string;
|
|
40
|
+
properties: {
|
|
41
|
+
question: {
|
|
42
|
+
type: string;
|
|
43
|
+
description: string;
|
|
44
|
+
};
|
|
45
|
+
options: {
|
|
46
|
+
type: string;
|
|
47
|
+
items: {
|
|
48
|
+
type: string;
|
|
49
|
+
};
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
requireConfirmation: {
|
|
53
|
+
type: string;
|
|
54
|
+
description: string;
|
|
55
|
+
};
|
|
56
|
+
confirmationMessage: {
|
|
57
|
+
type: string;
|
|
58
|
+
description: string;
|
|
59
|
+
};
|
|
60
|
+
timeoutMs: {
|
|
61
|
+
type: string;
|
|
62
|
+
description: string;
|
|
63
|
+
};
|
|
64
|
+
defaultOption: {
|
|
65
|
+
type: string;
|
|
66
|
+
description: string;
|
|
67
|
+
};
|
|
68
|
+
metadata: {
|
|
69
|
+
type: string;
|
|
70
|
+
description: string;
|
|
71
|
+
additionalProperties: boolean;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
required: string[];
|
|
75
|
+
additionalProperties: boolean;
|
|
76
|
+
};
|
|
77
|
+
execute: (rawArgs: HitlRequestToolArgs, _sequenceId?: string, _parentToolCall?: string, context?: HitlRequestToolContext) => Promise<string>;
|
|
78
|
+
};
|
|
79
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hitl-tool.d.ts","sourceRoot":"","sources":["../../core/hitl-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAOxC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AA4NF,wBAAgB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAyCX,mBAAmB,gBAAgB,MAAM,oBAAoB,MAAM,YAAY,sBAAsB;EAiFjI"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HITL Request Tool Module - Built-in tool for generic human-in-the-loop input
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* - Expose a built-in `human_intervention_request` tool that lets the model ask questions, offer options, and require explicit confirmation.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - Supports option-only response mode for deterministic user selection.
|
|
9
|
+
* - Uses existing world-scoped HITL option runtime.
|
|
10
|
+
* - Supports explicit confirmation/cancel flow with deterministic timeout behavior.
|
|
11
|
+
* - Returns structured JSON payloads for stable downstream model parsing.
|
|
12
|
+
*
|
|
13
|
+
* Implementation Notes:
|
|
14
|
+
* - Option values are normalized and deduplicated as display labels.
|
|
15
|
+
* - Free-text path is intentionally disabled to keep HITL interactions simple and auditable.
|
|
16
|
+
* - Tool execution requires world context; no external side effects beyond HITL events.
|
|
17
|
+
*
|
|
18
|
+
* Recent Changes:
|
|
19
|
+
* - 2026-02-20: Removed free-text mode from `human_intervention_request`; tool now enforces options-only interactions.
|
|
20
|
+
* - 2026-02-20: Added initial built-in `human_intervention_request` tool implementation.
|
|
21
|
+
*/
|
|
22
|
+
import { requestWorldOption } from './hitl.js';
|
|
23
|
+
const MODE_OPTION = 'option';
|
|
24
|
+
const CONFIRM_OPTION_ID = 'confirm';
|
|
25
|
+
const CANCEL_OPTION_ID = 'cancel';
|
|
26
|
+
const DEFAULT_TIMEOUT_MESSAGE = 'HITL request timed out before user confirmation.';
|
|
27
|
+
function stringifyResult(payload) {
|
|
28
|
+
return JSON.stringify(payload);
|
|
29
|
+
}
|
|
30
|
+
function normalizeQuestion(question) {
|
|
31
|
+
return String(question || '').trim();
|
|
32
|
+
}
|
|
33
|
+
function normalizeOptionList(options) {
|
|
34
|
+
if (!Array.isArray(options)) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
const normalized = [];
|
|
39
|
+
for (const option of options) {
|
|
40
|
+
const value = String(option || '').trim();
|
|
41
|
+
if (!value) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const key = value.toLowerCase();
|
|
45
|
+
if (seen.has(key)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
seen.add(key);
|
|
49
|
+
normalized.push(value);
|
|
50
|
+
}
|
|
51
|
+
return normalized;
|
|
52
|
+
}
|
|
53
|
+
function normalizeTimeoutMs(value) {
|
|
54
|
+
if (value === undefined || value === null || value === '') {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const parsed = Number(value);
|
|
58
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return Math.floor(parsed);
|
|
62
|
+
}
|
|
63
|
+
function validateAndNormalizeArgs(args) {
|
|
64
|
+
const question = normalizeQuestion(args.question);
|
|
65
|
+
if (!question) {
|
|
66
|
+
return { valid: false, error: 'Missing required parameter: question' };
|
|
67
|
+
}
|
|
68
|
+
const options = normalizeOptionList(args.options);
|
|
69
|
+
const requireConfirmation = args.requireConfirmation === true;
|
|
70
|
+
const confirmationMessage = typeof args.confirmationMessage === 'string' && args.confirmationMessage.trim()
|
|
71
|
+
? args.confirmationMessage.trim()
|
|
72
|
+
: null;
|
|
73
|
+
const timeoutMs = normalizeTimeoutMs(args.timeoutMs);
|
|
74
|
+
const defaultOption = typeof args.defaultOption === 'string' && args.defaultOption.trim()
|
|
75
|
+
? args.defaultOption.trim()
|
|
76
|
+
: null;
|
|
77
|
+
const metadata = args.metadata && typeof args.metadata === 'object'
|
|
78
|
+
? args.metadata
|
|
79
|
+
: null;
|
|
80
|
+
if (options.length === 0) {
|
|
81
|
+
return {
|
|
82
|
+
valid: false,
|
|
83
|
+
error: 'HITL request requires at least one option.',
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (defaultOption && options.length > 0) {
|
|
87
|
+
const hasDefaultOption = options.some((option) => option.toLowerCase() === defaultOption.toLowerCase());
|
|
88
|
+
if (!hasDefaultOption) {
|
|
89
|
+
return {
|
|
90
|
+
valid: false,
|
|
91
|
+
error: `defaultOption '${defaultOption}' does not match any provided option.`,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
valid: true,
|
|
97
|
+
args: {
|
|
98
|
+
question,
|
|
99
|
+
options,
|
|
100
|
+
requireConfirmation,
|
|
101
|
+
confirmationMessage,
|
|
102
|
+
timeoutMs,
|
|
103
|
+
defaultOption,
|
|
104
|
+
metadata,
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function resolveDefaultOptionId(options, defaultOption) {
|
|
109
|
+
if (!defaultOption) {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
const match = options.find((option) => option.label.toLowerCase() === defaultOption.toLowerCase());
|
|
113
|
+
return match?.id;
|
|
114
|
+
}
|
|
115
|
+
function buildOptionPromptOptions(optionLabels) {
|
|
116
|
+
return optionLabels.map((label, index) => ({
|
|
117
|
+
id: `opt_${index + 1}`,
|
|
118
|
+
label,
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
async function requestPrimaryResolution(options) {
|
|
122
|
+
const { world, chatId, args } = options;
|
|
123
|
+
const promptOptions = buildOptionPromptOptions(args.options);
|
|
124
|
+
const optionResolution = await requestWorldOption(world, {
|
|
125
|
+
title: 'Human input required',
|
|
126
|
+
message: args.question,
|
|
127
|
+
options: promptOptions,
|
|
128
|
+
chatId,
|
|
129
|
+
timeoutMs: args.timeoutMs ?? undefined,
|
|
130
|
+
defaultOptionId: resolveDefaultOptionId(promptOptions, args.defaultOption),
|
|
131
|
+
metadata: {
|
|
132
|
+
...(args.metadata || {}),
|
|
133
|
+
tool: 'human_intervention_request',
|
|
134
|
+
mode: MODE_OPTION,
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
const selectedOption = promptOptions.find((option) => option.id === optionResolution.optionId)?.label || null;
|
|
138
|
+
return {
|
|
139
|
+
requestId: optionResolution.requestId,
|
|
140
|
+
selectedOption,
|
|
141
|
+
source: optionResolution.source,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function buildConfirmationSummary(resolution) {
|
|
145
|
+
return `Selected option: ${resolution.selectedOption ?? ''}`;
|
|
146
|
+
}
|
|
147
|
+
async function requestConfirmation(options) {
|
|
148
|
+
const confirmation = await requestWorldOption(options.world, {
|
|
149
|
+
title: 'Confirm response',
|
|
150
|
+
message: [
|
|
151
|
+
options.question,
|
|
152
|
+
'',
|
|
153
|
+
buildConfirmationSummary(options.resolution),
|
|
154
|
+
'',
|
|
155
|
+
options.confirmationMessage || 'Please confirm to continue.',
|
|
156
|
+
].join('\n'),
|
|
157
|
+
chatId: options.chatId,
|
|
158
|
+
timeoutMs: options.timeoutMs ?? undefined,
|
|
159
|
+
defaultOptionId: CANCEL_OPTION_ID,
|
|
160
|
+
options: [
|
|
161
|
+
{ id: CONFIRM_OPTION_ID, label: 'Confirm', description: 'Use this response and continue.' },
|
|
162
|
+
{ id: CANCEL_OPTION_ID, label: 'Cancel', description: 'Cancel this HITL request.' },
|
|
163
|
+
],
|
|
164
|
+
metadata: {
|
|
165
|
+
...(options.metadata || {}),
|
|
166
|
+
tool: 'human_intervention_request',
|
|
167
|
+
mode: 'confirmation',
|
|
168
|
+
requestId: options.resolution.requestId,
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
if (confirmation.optionId === CONFIRM_OPTION_ID) {
|
|
172
|
+
return { confirmed: true, source: confirmation.source };
|
|
173
|
+
}
|
|
174
|
+
return { confirmed: false, source: confirmation.source };
|
|
175
|
+
}
|
|
176
|
+
function buildFinalResult(options) {
|
|
177
|
+
const ok = options.status === 'confirmed';
|
|
178
|
+
return stringifyResult({
|
|
179
|
+
ok,
|
|
180
|
+
status: options.status,
|
|
181
|
+
confirmed: ok,
|
|
182
|
+
selectedOption: options.selectedOption,
|
|
183
|
+
source: options.source,
|
|
184
|
+
requestId: options.requestId,
|
|
185
|
+
message: options.message,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
export function createHitlToolDefinition() {
|
|
189
|
+
return {
|
|
190
|
+
description: 'Ask a human a question, offer choices, and optionally require confirmation before returning the result.',
|
|
191
|
+
parameters: {
|
|
192
|
+
type: 'object',
|
|
193
|
+
properties: {
|
|
194
|
+
question: {
|
|
195
|
+
type: 'string',
|
|
196
|
+
description: 'Required question shown to the human.',
|
|
197
|
+
},
|
|
198
|
+
options: {
|
|
199
|
+
type: 'array',
|
|
200
|
+
items: { type: 'string' },
|
|
201
|
+
description: 'Required list of selectable options.',
|
|
202
|
+
},
|
|
203
|
+
requireConfirmation: {
|
|
204
|
+
type: 'boolean',
|
|
205
|
+
description: 'When true, human must explicitly confirm before completion.',
|
|
206
|
+
},
|
|
207
|
+
confirmationMessage: {
|
|
208
|
+
type: 'string',
|
|
209
|
+
description: 'Optional extra text shown in confirmation prompt.',
|
|
210
|
+
},
|
|
211
|
+
timeoutMs: {
|
|
212
|
+
type: 'number',
|
|
213
|
+
description: 'Optional timeout for HITL prompts in milliseconds.',
|
|
214
|
+
},
|
|
215
|
+
defaultOption: {
|
|
216
|
+
type: 'string',
|
|
217
|
+
description: 'Optional default option label for option mode.',
|
|
218
|
+
},
|
|
219
|
+
metadata: {
|
|
220
|
+
type: 'object',
|
|
221
|
+
description: 'Optional metadata attached to HITL system events.',
|
|
222
|
+
additionalProperties: true,
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
required: ['question', 'options'],
|
|
226
|
+
additionalProperties: false,
|
|
227
|
+
},
|
|
228
|
+
execute: async (rawArgs, _sequenceId, _parentToolCall, context) => {
|
|
229
|
+
const normalized = validateAndNormalizeArgs(rawArgs || {});
|
|
230
|
+
if (!normalized.valid) {
|
|
231
|
+
return buildFinalResult({
|
|
232
|
+
requestId: '',
|
|
233
|
+
selectedOption: null,
|
|
234
|
+
status: 'error',
|
|
235
|
+
source: 'system',
|
|
236
|
+
message: normalized.error,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
const world = context?.world;
|
|
240
|
+
const worldId = String(world?.id || '').trim();
|
|
241
|
+
if (!world || !worldId) {
|
|
242
|
+
return buildFinalResult({
|
|
243
|
+
requestId: '',
|
|
244
|
+
selectedOption: null,
|
|
245
|
+
status: 'error',
|
|
246
|
+
source: 'system',
|
|
247
|
+
message: 'human_intervention_request requires a valid world context.',
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
const chatId = context?.chatId ?? world.currentChatId ?? null;
|
|
251
|
+
try {
|
|
252
|
+
const primaryResolution = await requestPrimaryResolution({
|
|
253
|
+
world,
|
|
254
|
+
chatId,
|
|
255
|
+
args: normalized.args,
|
|
256
|
+
});
|
|
257
|
+
if (normalized.args.requireConfirmation) {
|
|
258
|
+
const confirmation = await requestConfirmation({
|
|
259
|
+
world,
|
|
260
|
+
chatId,
|
|
261
|
+
question: normalized.args.question,
|
|
262
|
+
resolution: primaryResolution,
|
|
263
|
+
timeoutMs: normalized.args.timeoutMs,
|
|
264
|
+
confirmationMessage: normalized.args.confirmationMessage,
|
|
265
|
+
metadata: normalized.args.metadata,
|
|
266
|
+
});
|
|
267
|
+
if (!confirmation.confirmed) {
|
|
268
|
+
return buildFinalResult({
|
|
269
|
+
requestId: primaryResolution.requestId,
|
|
270
|
+
selectedOption: primaryResolution.selectedOption,
|
|
271
|
+
status: confirmation.source === 'timeout' ? 'timeout' : 'canceled',
|
|
272
|
+
source: confirmation.source,
|
|
273
|
+
message: confirmation.source === 'timeout'
|
|
274
|
+
? DEFAULT_TIMEOUT_MESSAGE
|
|
275
|
+
: 'HITL request was canceled.',
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
else if (primaryResolution.source === 'timeout') {
|
|
280
|
+
return buildFinalResult({
|
|
281
|
+
requestId: primaryResolution.requestId,
|
|
282
|
+
selectedOption: primaryResolution.selectedOption,
|
|
283
|
+
status: 'timeout',
|
|
284
|
+
source: 'timeout',
|
|
285
|
+
message: DEFAULT_TIMEOUT_MESSAGE,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
return buildFinalResult({
|
|
289
|
+
requestId: primaryResolution.requestId,
|
|
290
|
+
selectedOption: primaryResolution.selectedOption,
|
|
291
|
+
status: 'confirmed',
|
|
292
|
+
source: 'user',
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
return buildFinalResult({
|
|
297
|
+
requestId: '',
|
|
298
|
+
selectedOption: null,
|
|
299
|
+
status: 'error',
|
|
300
|
+
source: 'system',
|
|
301
|
+
message: error instanceof Error ? error.message : String(error),
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
};
|
|
306
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hitl-tool.js","sourceRoot":"","sources":["../../core/hitl-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/core/hitl.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Human-in-the-Loop (HITL)
|
|
2
|
+
* Human-in-the-Loop (HITL) Runtime
|
|
3
3
|
*
|
|
4
4
|
* Purpose:
|
|
5
|
-
* - Provide a
|
|
5
|
+
* - Provide a world-scoped request/response flow for option-based HITL prompts.
|
|
6
6
|
*
|
|
7
7
|
* Key Features:
|
|
8
|
-
* - Emits structured system events for option prompts (`hitl-option-request`)
|
|
9
|
-
* - Resolves pending requests when renderer/API submits
|
|
10
|
-
* - Supports timeout fallback
|
|
11
|
-
* - Maintains pending request map for validation and lifecycle cleanup
|
|
8
|
+
* - Emits structured system events for option prompts (`hitl-option-request`).
|
|
9
|
+
* - Resolves pending requests when renderer/API submits an option response.
|
|
10
|
+
* - Supports deterministic timeout fallback for option requests.
|
|
11
|
+
* - Maintains pending request map for validation and lifecycle cleanup.
|
|
12
12
|
*
|
|
13
13
|
* Implementation Notes:
|
|
14
14
|
* - Requests are keyed by `(worldId, requestId)` to avoid cross-world collisions.
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* - Runtime is in-memory and process-local by design.
|
|
17
17
|
*
|
|
18
18
|
* Recent Changes:
|
|
19
|
+
* - 2026-02-20: Enforced global options-only HITL runtime by removing input-mode request/response paths.
|
|
19
20
|
* - 2026-02-14: Added initial generic HITL option request/response runtime.
|
|
20
21
|
*/
|
|
21
22
|
import { type World } from './types.js';
|
|
@@ -41,13 +42,32 @@ export interface HitlOptionResolution {
|
|
|
41
42
|
optionId: string;
|
|
42
43
|
source: 'user' | 'timeout';
|
|
43
44
|
}
|
|
45
|
+
export type HitlResponseResolution = {
|
|
46
|
+
requestId: string;
|
|
47
|
+
worldId: string;
|
|
48
|
+
chatId: string | null;
|
|
49
|
+
optionId: string;
|
|
50
|
+
source: 'user' | 'timeout';
|
|
51
|
+
};
|
|
44
52
|
export declare function requestWorldOption(world: World, request: HitlOptionRequest): Promise<HitlOptionResolution>;
|
|
45
53
|
export declare function submitWorldOptionResponse(params: {
|
|
46
54
|
worldId: string;
|
|
47
55
|
requestId: string;
|
|
48
56
|
optionId: string;
|
|
57
|
+
chatId?: string | null;
|
|
58
|
+
}): {
|
|
59
|
+
accepted: boolean;
|
|
60
|
+
reason?: string;
|
|
61
|
+
metadata?: Record<string, unknown> | null;
|
|
62
|
+
};
|
|
63
|
+
export declare function submitWorldHitlResponse(params: {
|
|
64
|
+
worldId: string;
|
|
65
|
+
requestId: string;
|
|
66
|
+
optionId: string;
|
|
67
|
+
chatId?: string | null;
|
|
49
68
|
}): {
|
|
50
69
|
accepted: boolean;
|
|
51
70
|
reason?: string;
|
|
71
|
+
metadata?: Record<string, unknown> | null;
|
|
52
72
|
};
|
|
53
73
|
export declare function clearHitlStateForTests(): void;
|
package/dist/core/hitl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../core/hitl.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../core/hitl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAyB,MAAM,YAAY,CAAC;AAG/D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAqGF,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CA0E/B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAAE,CAEpF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAAE,CAqCpF;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAO7C"}
|