@downcity/agent 1.1.324 → 1.1.328
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/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineRunner.js +66 -3
- package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
- package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineSignals.js +9 -4
- package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +2 -0
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +1 -1
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +1 -1
- package/bin/index.d.ts +1 -1
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js.map +1 -1
- package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +1 -1
- package/bin/session/messages/SessionAssistantMessageWriter.js +6 -1
- package/bin/session/messages/SessionAssistantMessageWriter.js.map +1 -1
- package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +1 -1
- package/bin/session/messages/SessionMessageInteractionWriter.js +9 -4
- package/bin/session/messages/SessionMessageInteractionWriter.js.map +1 -1
- package/bin/tools/ask/AskQuestionsTool.d.ts +4 -6
- package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
- package/bin/tools/ask/AskQuestionsTool.js +6 -1
- package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
- package/bin/tools/ask/AskQuestionsToolSchemas.d.ts +5 -7
- package/bin/tools/ask/AskQuestionsToolSchemas.d.ts.map +1 -1
- package/bin/tools/ask/AskQuestionsToolSchemas.js +5 -9
- package/bin/tools/ask/AskQuestionsToolSchemas.js.map +1 -1
- package/bin/tools/index.d.ts +1 -1
- package/bin/tools/index.d.ts.map +1 -1
- package/bin/types/session/SessionInteraction.d.ts +17 -1
- package/bin/types/session/SessionInteraction.d.ts.map +1 -1
- package/bin/types/tools/ask/AskQuestionsTool.d.ts +11 -2
- package/bin/types/tools/ask/AskQuestionsTool.d.ts.map +1 -1
- package/package.json +1 -1
- package/scripts/session-ask-question.test.mjs +14 -6
- package/scripts/session-tool-approval.test.mjs +171 -0
- package/src/executor/core-engine/CoreEngineRunner.ts +83 -5
- package/src/executor/core-engine/CoreEngineSignals.ts +10 -4
- package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +3 -1
- package/src/index.ts +2 -0
- package/src/session/messages/SessionAssistantMessageWriter.ts +8 -1
- package/src/session/messages/SessionMessageInteractionWriter.ts +12 -6
- package/src/tools/ask/AskQuestionsTool.ts +6 -1
- package/src/tools/ask/AskQuestionsToolSchemas.ts +5 -9
- package/src/tools/index.ts +1 -0
- package/src/types/session/SessionInteraction.ts +27 -1
- package/src/types/tools/ask/AskQuestionsTool.ts +12 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionMessageInteractionWriter.js","sourceRoot":"","sources":["../../../src/session/messages/SessionMessageInteractionWriter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkCH,0DAA0D;AAC1D,MAAM,OAAO,+BAA+B;IACzB,OAAO,CAAyC;IAEjE,YAAY,OAA+C;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,qDAAqD;IACrD,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3D,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;YAC5D,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBACtD,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC,CAAC,EAAE,CACP;YACH,CAAC,CAAC,EAAE,CACP,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,OAAO,CACX,OAAkC;QAElC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;YAC/C,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU;YACrE,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,UAAU,CAAC;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;YAC7D,IACE,OAAO,CAAC,KAAK,CAAC,IAAI,CAChB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,aAAa;gBAC3B,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,CACjD,EACD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACtE,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CACb,mCAAmC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CACjE,CAAC;gBACJ,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"SessionMessageInteractionWriter.js","sourceRoot":"","sources":["../../../src/session/messages/SessionMessageInteractionWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,13 +22,11 @@ import type { ActionResult } from "../../types/action/ActionResult.js";
|
|
|
22
22
|
export declare const AskQuestionsTool: import("ai").Tool<{
|
|
23
23
|
title: string;
|
|
24
24
|
questions: ({
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
response_type: "text";
|
|
25
|
+
question: string;
|
|
26
|
+
type: "text";
|
|
28
27
|
} | {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
response_type: "single_select" | "multi_select";
|
|
28
|
+
question: string;
|
|
29
|
+
type: "single_select" | "multi_select";
|
|
32
30
|
options: {
|
|
33
31
|
value: string;
|
|
34
32
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskQuestionsTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"AskQuestionsTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;wCA2D3B,CAAC"}
|
|
@@ -42,7 +42,12 @@ export const AskQuestionsTool = tool({
|
|
|
42
42
|
tool_name: "ask_question",
|
|
43
43
|
},
|
|
44
44
|
title: input.title,
|
|
45
|
-
questions: input.questions
|
|
45
|
+
questions: input.questions.map((question) => ({
|
|
46
|
+
question_id: `question:${generate_id()}`,
|
|
47
|
+
prompt: question.question,
|
|
48
|
+
response_type: question.type,
|
|
49
|
+
...(question.options ? { options: question.options } : {}),
|
|
50
|
+
})),
|
|
46
51
|
created_at: Date.now(),
|
|
47
52
|
});
|
|
48
53
|
const result = await handle.result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskQuestionsTool.js","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAA6B,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAM1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,WAAW,EACT,kcAAkc;IACpc,WAAW,EAAE,0BAA0B;IACvC,OAAO,EAAE,KAAK,EACZ,KAA4B,EAC5B,iBAAuC,EACQ,EAAE;QACjD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,oBAE/B,CAAC;QACd,MAAM,YAAY,GAAG,iBAAiB,EAAE,oBAAoB,CAAC;QAC7D,MAAM,gBAAgB,GAAG,YAAY,EAAE,YAAY,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;YAC5C,cAAc,EAAE,eAAe,WAAW,EAAE,EAAE;YAC9C,OAAO;YACP,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,YAAY;gBACZ,SAAS,EAAE,cAAc;aAC1B;YACD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"AskQuestionsTool.js","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAA6B,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAM1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,WAAW,EACT,kcAAkc;IACpc,WAAW,EAAE,0BAA0B;IACvC,OAAO,EAAE,KAAK,EACZ,KAA4B,EAC5B,iBAAuC,EACQ,EAAE;QACjD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,oBAE/B,CAAC;QACd,MAAM,YAAY,GAAG,iBAAiB,EAAE,oBAAoB,CAAC;QAC7D,MAAM,gBAAgB,GAAG,YAAY,EAAE,YAAY,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;YAC5C,cAAc,EAAE,eAAe,WAAW,EAAE,EAAE;YAC9C,OAAO;YACP,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,YAAY;gBACZ,SAAS,EAAE,cAAc;aAC1B;YACD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC5C,WAAW,EAAE,YAAY,WAAW,EAAE,EAAE;gBACxC,MAAM,EAAE,QAAQ,CAAC,QAAQ;gBACzB,aAAa,EAAE,QAAQ,CAAC,IAAI;gBAC5B,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC,CAAC;YACH,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;aACjC;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -9,13 +9,11 @@ import { z } from "zod";
|
|
|
9
9
|
export declare const ask_questions_input_schema: z.ZodObject<{
|
|
10
10
|
title: z.ZodString;
|
|
11
11
|
questions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
response_type: z.ZodLiteral<"text">;
|
|
12
|
+
question: z.ZodString;
|
|
13
|
+
type: z.ZodLiteral<"text">;
|
|
15
14
|
}, z.core.$strict>, z.ZodObject<{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
response_type: z.ZodEnum<{
|
|
15
|
+
question: z.ZodString;
|
|
16
|
+
type: z.ZodEnum<{
|
|
19
17
|
single_select: "single_select";
|
|
20
18
|
multi_select: "multi_select";
|
|
21
19
|
}>;
|
|
@@ -24,6 +22,6 @@ export declare const ask_questions_input_schema: z.ZodObject<{
|
|
|
24
22
|
label: z.ZodString;
|
|
25
23
|
description: z.ZodOptional<z.ZodString>;
|
|
26
24
|
}, z.core.$strict>>;
|
|
27
|
-
}, z.core.$strict>], "
|
|
25
|
+
}, z.core.$strict>], "type">>;
|
|
28
26
|
}, z.core.$strict>;
|
|
29
27
|
//# sourceMappingURL=AskQuestionsToolSchemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskQuestionsToolSchemas.d.ts","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsToolSchemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"AskQuestionsToolSchemas.d.ts","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsToolSchemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmCxB,yCAAyC;AACzC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;kBAY5B,CAAC"}
|
|
@@ -17,20 +17,16 @@ const option_schema = z
|
|
|
17
17
|
.strict();
|
|
18
18
|
const text_question_schema = z
|
|
19
19
|
.object({
|
|
20
|
-
|
|
21
|
-
.describe("Stable question identifier unique within this request."),
|
|
22
|
-
prompt: z.string().trim().min(1)
|
|
20
|
+
question: z.string().trim().min(1)
|
|
23
21
|
.describe("Complete question shown to the user."),
|
|
24
|
-
|
|
22
|
+
type: z.literal("text"),
|
|
25
23
|
})
|
|
26
24
|
.strict();
|
|
27
25
|
const select_question_schema = z
|
|
28
26
|
.object({
|
|
29
|
-
|
|
30
|
-
.describe("Stable question identifier unique within this request."),
|
|
31
|
-
prompt: z.string().trim().min(1)
|
|
27
|
+
question: z.string().trim().min(1)
|
|
32
28
|
.describe("Complete question shown to the user."),
|
|
33
|
-
|
|
29
|
+
type: z.enum(["single_select", "multi_select"]),
|
|
34
30
|
options: z.array(option_schema).min(1)
|
|
35
31
|
.describe("Required selectable options. Every option MUST include both value and label, for example { value: 'cn', label: '中国' }."),
|
|
36
32
|
})
|
|
@@ -41,7 +37,7 @@ export const ask_questions_input_schema = z
|
|
|
41
37
|
title: z.string().trim().min(1)
|
|
42
38
|
.describe("Short title for the question card."),
|
|
43
39
|
questions: z
|
|
44
|
-
.array(z.discriminatedUnion("
|
|
40
|
+
.array(z.discriminatedUnion("type", [
|
|
45
41
|
text_question_schema,
|
|
46
42
|
select_question_schema,
|
|
47
43
|
]))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskQuestionsToolSchemas.js","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsToolSchemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B,QAAQ,CACP,2HAA2H,CAC5H;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B,QAAQ,CAAC,mEAAmE,CAAC;IAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC7C,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,
|
|
1
|
+
{"version":3,"file":"AskQuestionsToolSchemas.js","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsToolSchemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B,QAAQ,CACP,2HAA2H,CAC5H;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B,QAAQ,CAAC,mEAAmE,CAAC;IAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC7C,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/B,QAAQ,CAAC,sCAAsC,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACxB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/B,QAAQ,CAAC,sCAAsC,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACnC,QAAQ,CACP,wHAAwH,CACzH;CACJ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,yCAAyC;AACzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B,QAAQ,CAAC,oCAAoC,CAAC;IACjD,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAClC,oBAAoB;QACpB,sBAAsB;KACvB,CAAC,CAAC;SACF,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,gEAAgE,CAAC;CAC9E,CAAC;KACD,MAAM,EAAE,CAAC"}
|
package/bin/tools/index.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* `AgentOptions.tools` 显式完成组合。
|
|
6
6
|
*/
|
|
7
7
|
export { AskQuestionsTool } from "./ask/AskQuestionsTool.js";
|
|
8
|
-
export type { AskQuestionsToolInput, AskQuestionsToolOutput, } from "../types/tools/ask/AskQuestionsTool.js";
|
|
8
|
+
export type { AskQuestionsToolQuestion, AskQuestionsToolInput, AskQuestionsToolOutput, } from "../types/tools/ask/AskQuestionsTool.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/bin/tools/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EACV,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Interaction 表示当前 Turn 在执行过程中需要用户参与。执行方发起请求后等待,
|
|
5
5
|
* Session 先持久化请求并通知客户端;客户端响应完成持久化后,原执行才会恢复。
|
|
6
6
|
*/
|
|
7
|
+
import type { JsonValue } from "../../types/common/Json.js";
|
|
7
8
|
/** Interaction 当前生命周期状态。 */
|
|
8
9
|
export type SessionInteractionStatus = "pending" | "resolved" | "expired" | "cancelled";
|
|
9
10
|
/** 高风险操作请求是否需要用户逐次确认。 */
|
|
@@ -34,7 +35,7 @@ export interface SessionInteractionRequestBase {
|
|
|
34
35
|
expires_at?: number;
|
|
35
36
|
}
|
|
36
37
|
/** 高风险操作审批请求。 */
|
|
37
|
-
export interface
|
|
38
|
+
export interface SessionShellApprovalInteractionRequest extends SessionInteractionRequestBase {
|
|
38
39
|
/** Interaction 类型固定为 approval。 */
|
|
39
40
|
kind: "approval";
|
|
40
41
|
/** 审批界面展示标题。 */
|
|
@@ -50,6 +51,21 @@ export interface SessionApprovalInteractionRequest extends SessionInteractionReq
|
|
|
50
51
|
/** 当前审批对应的操作类别。 */
|
|
51
52
|
operation: "exec" | "start" | "write";
|
|
52
53
|
}
|
|
54
|
+
/** 普通 Tool 在执行前等待用户决定的审批请求。 */
|
|
55
|
+
export interface SessionToolApprovalInteractionRequest extends SessionInteractionRequestBase {
|
|
56
|
+
/** Interaction 类型固定为 approval。 */
|
|
57
|
+
kind: "approval";
|
|
58
|
+
/** 审批操作类型固定为普通 Tool。 */
|
|
59
|
+
operation: "tool";
|
|
60
|
+
/** Tool schema 校验通过后的真实调用输入。 */
|
|
61
|
+
validated_input: JsonValue;
|
|
62
|
+
/** Tool 定义提供的稳定能力说明。 */
|
|
63
|
+
tool_description?: string;
|
|
64
|
+
/** 模型为当前调用给出的可选解释;该字段不构成安全依据。 */
|
|
65
|
+
model_explanation?: string;
|
|
66
|
+
}
|
|
67
|
+
/** Session 支持的全部审批请求。 */
|
|
68
|
+
export type SessionApprovalInteractionRequest = SessionShellApprovalInteractionRequest | SessionToolApprovalInteractionRequest;
|
|
53
69
|
/** Question 支持的回答形式。 */
|
|
54
70
|
export type SessionInteractionQuestionResponseType = "text" | "single_select" | "multi_select";
|
|
55
71
|
/** Question 选择项。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionInteraction.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionInteraction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4BAA4B;AAC5B,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,CAAC;AAEhB,yBAAyB;AACzB,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,cAAc,CAAC;AAEzD,yBAAyB;AACzB,MAAM,MAAM,wBAAwB,GAChC;IACE,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,oCAAoC;IACpC,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEN,0BAA0B;AAC1B,MAAM,WAAW,6BAA6B;IAC5C,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,MAAM,EAAE,wBAAwB,CAAC;IACjC,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iBAAiB;AACjB,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"SessionInteraction.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionInteraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,22 @@
|
|
|
4
4
|
* 该协议只描述模型发起问题和收到回答时可见的数据;Interaction 标识、Turn 标识与
|
|
5
5
|
* 生命周期状态由 Session 运行时维护,不交给模型生成。
|
|
6
6
|
*/
|
|
7
|
-
import type { SessionInteractionAnswer, SessionInteractionQuestion } from "../../../types/session/SessionInteraction.js";
|
|
7
|
+
import type { SessionInteractionAnswer, SessionInteractionOption, SessionInteractionQuestion } from "../../../types/session/SessionInteraction.js";
|
|
8
|
+
/** 模型调用 ask_question 时提交的一条问题。 */
|
|
9
|
+
export interface AskQuestionsToolQuestion {
|
|
10
|
+
/** 向用户展示的完整问题文本。 */
|
|
11
|
+
question: string;
|
|
12
|
+
/** 当前问题要求的回答形式,所有问题都必须显式提供。 */
|
|
13
|
+
type: SessionInteractionQuestion["response_type"];
|
|
14
|
+
/** 单选或多选问题允许选择的候选项。 */
|
|
15
|
+
options?: SessionInteractionOption[];
|
|
16
|
+
}
|
|
8
17
|
/** 模型调用 ask_question 时提交的结构化输入。 */
|
|
9
18
|
export interface AskQuestionsToolInput {
|
|
10
19
|
/** 问题卡片向用户展示的简短标题。 */
|
|
11
20
|
title: string;
|
|
12
21
|
/** 本次需要用户完整回答的一到多条问题。 */
|
|
13
|
-
questions:
|
|
22
|
+
questions: AskQuestionsToolQuestion[];
|
|
14
23
|
}
|
|
15
24
|
/** 用户完成回答后返回给模型的结构化 Tool Result。 */
|
|
16
25
|
export interface AskQuestionsToolOutput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskQuestionsTool.d.ts","sourceRoot":"","sources":["../../../../src/types/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,uCAAuC,CAAC;AAE/C,mCAAmC;AACnC,MAAM,WAAW,qBAAqB;IACpC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"AskQuestionsTool.d.ts","sourceRoot":"","sources":["../../../../src/types/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,uCAAuC,CAAC;AAE/C,kCAAkC;AAClC,MAAM,WAAW,wBAAwB;IACvC,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,EAAE,0BAA0B,CAAC,eAAe,CAAC,CAAC;IAClD,uBAAuB;IACvB,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED,mCAAmC;AACnC,MAAM,WAAW,qBAAqB;IACpC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC;AAED,oCAAoC;AACpC,MAAM,WAAW,sBAAsB;IACrC,oBAAoB;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,+BAA+B;IAC/B,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC"}
|
package/package.json
CHANGED
|
@@ -30,9 +30,8 @@ function create_question_stream() {
|
|
|
30
30
|
title: "选择部署区域",
|
|
31
31
|
questions: [
|
|
32
32
|
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
response_type: "single_select",
|
|
33
|
+
question: "需要部署到哪个区域?",
|
|
34
|
+
type: "single_select",
|
|
36
35
|
options: [
|
|
37
36
|
{ value: "cn", label: "中国" },
|
|
38
37
|
{ value: "us", label: "美国" },
|
|
@@ -164,7 +163,10 @@ test("显式注入的 ask_question 等待回答并继续同一个 Turn", async (
|
|
|
164
163
|
interaction_id: mutation.part.interaction_id,
|
|
165
164
|
response: {
|
|
166
165
|
kind: "question",
|
|
167
|
-
answers: [{
|
|
166
|
+
answers: [{
|
|
167
|
+
question_id: pending_interaction.request.questions[0].question_id,
|
|
168
|
+
value: "cn",
|
|
169
|
+
}],
|
|
168
170
|
},
|
|
169
171
|
});
|
|
170
172
|
});
|
|
@@ -184,7 +186,10 @@ test("显式注入的 ask_question 等待回答并继续同一个 Turn", async (
|
|
|
184
186
|
interaction_id: pending_interaction.interaction_id,
|
|
185
187
|
response: {
|
|
186
188
|
kind: "question",
|
|
187
|
-
answers: [{
|
|
189
|
+
answers: [{
|
|
190
|
+
question_id: pending_interaction.request.questions[0].question_id,
|
|
191
|
+
value: "cn",
|
|
192
|
+
}],
|
|
188
193
|
},
|
|
189
194
|
});
|
|
190
195
|
|
|
@@ -201,7 +206,10 @@ test("显式注入的 ask_question 等待回答并继续同一个 Turn", async (
|
|
|
201
206
|
assert.equal(tool_part?.state, "completed");
|
|
202
207
|
assert.deepEqual(tool_part?.output, {
|
|
203
208
|
status: "resolved",
|
|
204
|
-
answers: [{
|
|
209
|
+
answers: [{
|
|
210
|
+
question_id: pending_interaction.request.questions[0].question_id,
|
|
211
|
+
value: "cn",
|
|
212
|
+
}],
|
|
205
213
|
});
|
|
206
214
|
assert.equal(interaction_part?.status, "resolved");
|
|
207
215
|
assert.equal(interaction_part?.request.source.type, "tool");
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file 验证 AI SDK Tool needsApproval 接入 Session Interaction。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - Tool 自己声明审批意图,Agent 不持有审批配置。
|
|
6
|
+
* - Runtime 展示真实 Tool Call,用户响应后继续原 Turn。
|
|
7
|
+
* - 拒绝时 Tool execute 不能产生副作用。
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import test from "node:test";
|
|
11
|
+
import assert from "node:assert/strict";
|
|
12
|
+
import fs from "node:fs/promises";
|
|
13
|
+
import os from "node:os";
|
|
14
|
+
import path from "node:path";
|
|
15
|
+
import { MockLanguageModelV3 } from "ai/test";
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
import { Agent, Workspace } from "@downcity/agent";
|
|
18
|
+
|
|
19
|
+
function create_usage() {
|
|
20
|
+
return {
|
|
21
|
+
inputTokens: { total: 0, noCache: 0, cacheRead: 0, cacheWrite: 0 },
|
|
22
|
+
outputTokens: { total: 0, text: 0, reasoning: 0 },
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function create_tool_call_stream() {
|
|
27
|
+
const input = { value: "approval-value" };
|
|
28
|
+
return {
|
|
29
|
+
stream: new ReadableStream({
|
|
30
|
+
start(controller) {
|
|
31
|
+
controller.enqueue({ type: "stream-start", warnings: [] });
|
|
32
|
+
controller.enqueue({
|
|
33
|
+
type: "tool-input-start",
|
|
34
|
+
id: "call_custom_approval",
|
|
35
|
+
toolName: "custom_approval",
|
|
36
|
+
});
|
|
37
|
+
controller.enqueue({
|
|
38
|
+
type: "tool-input-delta",
|
|
39
|
+
id: "call_custom_approval",
|
|
40
|
+
delta: JSON.stringify(input),
|
|
41
|
+
});
|
|
42
|
+
controller.enqueue({ type: "tool-input-end", id: "call_custom_approval" });
|
|
43
|
+
controller.enqueue({
|
|
44
|
+
type: "tool-call",
|
|
45
|
+
toolCallId: "call_custom_approval",
|
|
46
|
+
toolName: "custom_approval",
|
|
47
|
+
input: JSON.stringify(input),
|
|
48
|
+
});
|
|
49
|
+
controller.enqueue({
|
|
50
|
+
type: "finish",
|
|
51
|
+
finishReason: { unified: "tool-calls", raw: "tool-calls" },
|
|
52
|
+
usage: create_usage(),
|
|
53
|
+
});
|
|
54
|
+
controller.close();
|
|
55
|
+
},
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function create_final_text_stream() {
|
|
61
|
+
return {
|
|
62
|
+
stream: new ReadableStream({
|
|
63
|
+
start(controller) {
|
|
64
|
+
controller.enqueue({ type: "stream-start", warnings: [] });
|
|
65
|
+
controller.enqueue({ type: "text-start", id: "text_1" });
|
|
66
|
+
controller.enqueue({ type: "text-delta", id: "text_1", delta: "finished" });
|
|
67
|
+
controller.enqueue({ type: "text-end", id: "text_1" });
|
|
68
|
+
controller.enqueue({
|
|
69
|
+
type: "finish",
|
|
70
|
+
finishReason: { unified: "stop", raw: "stop" },
|
|
71
|
+
usage: create_usage(),
|
|
72
|
+
});
|
|
73
|
+
controller.close();
|
|
74
|
+
},
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async function run_approval_case(decision) {
|
|
80
|
+
const project_root = await fs.mkdtemp(
|
|
81
|
+
path.join(os.tmpdir(), "downcity-native-tool-approval-"),
|
|
82
|
+
);
|
|
83
|
+
let execution_count = 0;
|
|
84
|
+
let tool_stream_count = 0;
|
|
85
|
+
const model = new MockLanguageModelV3({
|
|
86
|
+
modelId: "native-tool-approval-model",
|
|
87
|
+
doStream: async (options) => {
|
|
88
|
+
if (!Array.isArray(options.tools) || options.tools.length === 0) {
|
|
89
|
+
return create_final_text_stream();
|
|
90
|
+
}
|
|
91
|
+
tool_stream_count += 1;
|
|
92
|
+
return tool_stream_count === 1
|
|
93
|
+
? create_tool_call_stream()
|
|
94
|
+
: create_final_text_stream();
|
|
95
|
+
},
|
|
96
|
+
doGenerate: async () => ({
|
|
97
|
+
content: [{ type: "text", text: "Approval test" }],
|
|
98
|
+
finishReason: { unified: "stop", raw: "stop" },
|
|
99
|
+
usage: create_usage(),
|
|
100
|
+
warnings: [],
|
|
101
|
+
}),
|
|
102
|
+
});
|
|
103
|
+
const agent = new Agent({
|
|
104
|
+
id: `native_tool_approval_${decision}`,
|
|
105
|
+
workspace: new Workspace({ path: project_root }),
|
|
106
|
+
model,
|
|
107
|
+
tools: {
|
|
108
|
+
custom_approval: {
|
|
109
|
+
description: "Execute a custom operation after approval.",
|
|
110
|
+
inputSchema: z.object({ value: z.string() }),
|
|
111
|
+
needsApproval: true,
|
|
112
|
+
execute: async () => {
|
|
113
|
+
execution_count += 1;
|
|
114
|
+
return "tool-result";
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
try {
|
|
121
|
+
const session = await agent.sessions.create({ session_id: "tool_approval" });
|
|
122
|
+
let pending_request;
|
|
123
|
+
let response_promise;
|
|
124
|
+
const unsubscribe = session.subscribe((mutation) => {
|
|
125
|
+
if (
|
|
126
|
+
mutation.variant !== "part" ||
|
|
127
|
+
mutation.type !== "interaction" ||
|
|
128
|
+
mutation.part.status !== "pending" ||
|
|
129
|
+
mutation.part.request.kind !== "approval" ||
|
|
130
|
+
mutation.part.request.operation !== "tool"
|
|
131
|
+
) return;
|
|
132
|
+
pending_request = mutation.part.request;
|
|
133
|
+
response_promise = session.respond({
|
|
134
|
+
interaction_id: mutation.part.interaction_id,
|
|
135
|
+
response: { kind: "approval", decision },
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
const turn = await session.prompt({ query: "run custom approval tool" });
|
|
140
|
+
const result = await turn.finished;
|
|
141
|
+
unsubscribe();
|
|
142
|
+
|
|
143
|
+
assert.equal(result.success, true, result.error);
|
|
144
|
+
assert.equal(result.text, "finished");
|
|
145
|
+
assert.equal(execution_count, decision === "approved" ? 1 : 0);
|
|
146
|
+
assert.ok(pending_request);
|
|
147
|
+
assert.equal(pending_request.source.tool_name, "custom_approval");
|
|
148
|
+
assert.deepEqual(pending_request.validated_input, {
|
|
149
|
+
value: "approval-value",
|
|
150
|
+
});
|
|
151
|
+
assert.equal(
|
|
152
|
+
pending_request.tool_description,
|
|
153
|
+
"Execute a custom operation after approval.",
|
|
154
|
+
);
|
|
155
|
+
assert.equal("title" in pending_request, false);
|
|
156
|
+
assert.equal("reason" in pending_request, false);
|
|
157
|
+
assert.ok(response_promise);
|
|
158
|
+
await response_promise;
|
|
159
|
+
} finally {
|
|
160
|
+
await agent.dispose();
|
|
161
|
+
await fs.rm(project_root, { recursive: true, force: true });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
test("needsApproval 批准后执行 Tool 并恢复原 Turn", async () => {
|
|
166
|
+
await run_approval_case("approved");
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
test("needsApproval 拒绝后不执行 Tool 副作用", async () => {
|
|
170
|
+
await run_approval_case("denied");
|
|
171
|
+
});
|