superun-ai-cli 0.1.22 → 0.1.24
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.en.md +24 -15
- package/README.md +23 -15
- package/dist/api/managed-agent-api.d.ts +31 -0
- package/dist/api/managed-agent-api.js +98 -0
- package/dist/api/managed-agent-api.js.map +1 -0
- package/dist/commands/chat/interaction.d.ts +0 -1
- package/dist/commands/chat/interaction.js +15 -16
- package/dist/commands/chat/interaction.js.map +1 -1
- package/dist/commands/chat/plugin.d.ts +0 -1
- package/dist/commands/chat/plugin.js +11 -0
- package/dist/commands/chat/plugin.js.map +1 -1
- package/dist/contracts/cli-output.d.ts +14 -2
- package/dist/contracts/interaction-view.d.ts +64 -0
- package/dist/contracts/interaction-view.js +2 -0
- package/dist/contracts/interaction-view.js.map +1 -0
- package/dist/conversation/managed-agent-entry.d.ts +23 -0
- package/dist/conversation/managed-agent-entry.js +56 -0
- package/dist/conversation/managed-agent-entry.js.map +1 -0
- package/dist/conversation/next-actions.d.ts +1 -1
- package/dist/conversation/next-actions.js +48 -26
- package/dist/conversation/next-actions.js.map +1 -1
- package/dist/conversation/state-resolver.js +21 -5
- package/dist/conversation/state-resolver.js.map +1 -1
- package/dist/conversation/text-projector.js +3 -1
- package/dist/conversation/text-projector.js.map +1 -1
- package/dist/interactions/draft-store.d.ts +10 -0
- package/dist/interactions/draft-store.js +102 -0
- package/dist/interactions/draft-store.js.map +1 -0
- package/dist/interactions/handlers/index.js +7 -0
- package/dist/interactions/handlers/index.js.map +1 -1
- package/dist/interactions/managed-agent-model.d.ts +95 -0
- package/dist/interactions/managed-agent-model.js +195 -0
- package/dist/interactions/managed-agent-model.js.map +1 -0
- package/dist/interactions/managed-agent-wizard.d.ts +18 -0
- package/dist/interactions/managed-agent-wizard.js +341 -0
- package/dist/interactions/managed-agent-wizard.js.map +1 -0
- package/dist/interactions/parsers/style-selection.d.ts +3 -1
- package/dist/interactions/parsers/style-selection.js +29 -6
- package/dist/interactions/parsers/style-selection.js.map +1 -1
- package/dist/interactions/question-pages.d.ts +12 -0
- package/dist/interactions/question-pages.js +146 -0
- package/dist/interactions/question-pages.js.map +1 -0
- package/dist/interactions/questions.js +3 -1
- package/dist/interactions/questions.js.map +1 -1
- package/dist/interactions/registry.js +33 -14
- package/dist/interactions/registry.js.map +1 -1
- package/dist/interactions/view-adapter.d.ts +21 -0
- package/dist/interactions/view-adapter.js +365 -0
- package/dist/interactions/view-adapter.js.map +1 -0
- package/dist/output/writer.js +4 -2
- package/dist/output/writer.js.map +1 -1
- package/dist/runtime.d.ts +7 -0
- package/dist/runtime.js +99 -1
- package/dist/runtime.js.map +1 -1
- package/dist/transport/api-client.d.ts +3 -1
- package/dist/transport/api-client.js +7 -0
- package/dist/transport/api-client.js.map +1 -1
- package/dist/transport/http-client.d.ts +1 -0
- package/dist/transport/http-client.js +3 -0
- package/dist/transport/http-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/** Parallel 多批次结果映射为稳定候选 ID。@author xiuyu.yi */
|
|
2
2
|
import { enabled, list, object, text } from '../../contracts/value.js';
|
|
3
3
|
import { currentRound, roundMessage } from '../../conversation/round-selector.js';
|
|
4
|
+
import { fingerprint } from '../draft-store.js';
|
|
5
|
+
import { interactionView } from '../view-adapter.js';
|
|
4
6
|
import { CliError } from '../../output/exit-codes.js';
|
|
5
7
|
import { DEFAULT_ENDPOINT } from '../../config/constants.js';
|
|
6
8
|
import { getSuperunHostingDomain } from '../../config/runtime-config.js';
|
|
@@ -60,14 +62,12 @@ export function styleBatchState(choices) {
|
|
|
60
62
|
return 'RUNNING';
|
|
61
63
|
return choices.some((choice) => choice.status === 'success') ? 'NEEDS_SELECTION' : 'FAILED';
|
|
62
64
|
}
|
|
63
|
-
/** 与 Glow 的分支 iframe
|
|
65
|
+
/** 与 Glow 的分支 iframe 同源,使用后端加密 ID;snapshotUrl 是图片,不回退数字 ID。 */
|
|
64
66
|
function stylePreviewUrl(item, endpoint) {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
: text(item.snapshotId)?.trim();
|
|
68
|
-
if (!snapshotId || !/^[a-zA-Z0-9_-]+$/.test(snapshotId))
|
|
67
|
+
const encryptedSnapshotId = text(item.encryptedSnapshotId)?.trim();
|
|
68
|
+
if (!encryptedSnapshotId || !/^[a-zA-Z0-9_-]+$/.test(encryptedSnapshotId))
|
|
69
69
|
return undefined;
|
|
70
|
-
const url = new URL(`https://snapshot--${
|
|
70
|
+
const url = new URL(`https://snapshot--${encryptedSnapshotId}.${getSuperunHostingDomain(endpoint)}`);
|
|
71
71
|
if (typeof item.updateTimestamp === 'number' &&
|
|
72
72
|
Number.isSafeInteger(item.updateTimestamp) &&
|
|
73
73
|
item.updateTimestamp > 0)
|
|
@@ -105,4 +105,27 @@ export function projectChoices(response, anchor, endpoint = DEFAULT_ENDPOINT) {
|
|
|
105
105
|
});
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
+
/** 将当前就绪候选提供为通用选择,执行仍沿用 selectStyle。 */
|
|
109
|
+
export function styleInteraction(sessionId, messageId, anchor, choices) {
|
|
110
|
+
if (!readyStyleChoices(choices).length)
|
|
111
|
+
return undefined;
|
|
112
|
+
const interaction = {
|
|
113
|
+
interactionId: `style_${fingerprint([sessionId, anchor])}`,
|
|
114
|
+
kind: 'STYLE_SELECTION',
|
|
115
|
+
source: {
|
|
116
|
+
roundId: anchor,
|
|
117
|
+
messageId: messageId ?? anchor,
|
|
118
|
+
contentId: 'style-selection',
|
|
119
|
+
variant: 'style-selection',
|
|
120
|
+
},
|
|
121
|
+
questions: [],
|
|
122
|
+
actions: ['SELECT'],
|
|
123
|
+
answerSchema: {
|
|
124
|
+
type: 'object',
|
|
125
|
+
required: ['action', 'choiceId'],
|
|
126
|
+
properties: { action: { const: 'SELECT' }, choiceId: { type: 'string' } },
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
return { ...interaction, view: interactionView(interaction, { choices }).view };
|
|
130
|
+
}
|
|
108
131
|
//# sourceMappingURL=style-selection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-selection.js","sourceRoot":"","sources":["../../../src/interactions/parsers/style-selection.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"style-selection.js","sourceRoot":"","sources":["../../../src/interactions/parsers/style-selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { InteractionBinding } from './context.js';
|
|
2
|
+
import type { JsonObject } from '../contracts/value.js';
|
|
3
|
+
import { InteractionDraftStore } from './draft-store.js';
|
|
4
|
+
export declare const isQuestionnaire: (binding: InteractionBinding) => boolean;
|
|
5
|
+
export declare class QuestionPages {
|
|
6
|
+
private readonly store;
|
|
7
|
+
constructor(store: InteractionDraftStore);
|
|
8
|
+
private key;
|
|
9
|
+
private read;
|
|
10
|
+
project(binding: InteractionBinding): Promise<InteractionBinding>;
|
|
11
|
+
reply(binding: InteractionBinding, input: JsonObject, send: (input: JsonObject) => Promise<JsonObject>): Promise<JsonObject>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/** 普通问卷逐题展示,答案齐全后仍按原协议整组提交。@author xiuyu.yi */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { CliError } from '../output/exit-codes.js';
|
|
4
|
+
import { InteractionDraftStore, fingerprint } from './draft-store.js';
|
|
5
|
+
import { ANSWER_JSON_SCHEMA, resolveAnswers } from './questions.js';
|
|
6
|
+
const answer = z
|
|
7
|
+
.object({
|
|
8
|
+
questionId: z.string(),
|
|
9
|
+
selectedIndices: z.array(z.number().int().nonnegative()).default([]),
|
|
10
|
+
otherValue: z.string().default(''),
|
|
11
|
+
})
|
|
12
|
+
.strict();
|
|
13
|
+
const draftSchema = z.object({
|
|
14
|
+
revision: z.number().int().nonnegative(),
|
|
15
|
+
index: z.number().int().nonnegative(),
|
|
16
|
+
answers: z.array(answer),
|
|
17
|
+
sending: z.boolean().default(false),
|
|
18
|
+
});
|
|
19
|
+
export const isQuestionnaire = (binding) => ['PRD_CLARIFICATION', 'ASK_USER_TOOL', 'ASK_USER_MESSAGE'].includes(binding.interaction.kind) &&
|
|
20
|
+
binding.interaction.questions.length > 0;
|
|
21
|
+
export class QuestionPages {
|
|
22
|
+
store;
|
|
23
|
+
constructor(store) {
|
|
24
|
+
this.store = store;
|
|
25
|
+
}
|
|
26
|
+
key(binding) {
|
|
27
|
+
return `${binding.interaction.interactionId}:${fingerprint(binding.interaction.questions)}`;
|
|
28
|
+
}
|
|
29
|
+
async read(binding) {
|
|
30
|
+
const raw = await this.store.read(this.key(binding));
|
|
31
|
+
if (raw === undefined)
|
|
32
|
+
return { revision: 0, index: 0, answers: [], sending: false };
|
|
33
|
+
const parsed = draftSchema.safeParse(raw);
|
|
34
|
+
if (!parsed.success || parsed.data.index >= binding.interaction.questions.length)
|
|
35
|
+
throw new CliError('PROTOCOL_ERROR', '问卷草稿损坏,未提交回答');
|
|
36
|
+
return parsed.data;
|
|
37
|
+
}
|
|
38
|
+
async project(binding) {
|
|
39
|
+
if (!isQuestionnaire(binding))
|
|
40
|
+
return binding;
|
|
41
|
+
const draft = await this.read(binding), interaction = binding.interaction;
|
|
42
|
+
const question = interaction.questions[draft.index];
|
|
43
|
+
if (!question)
|
|
44
|
+
throw new CliError('PROTOCOL_ERROR', '问题页码无效');
|
|
45
|
+
const revision = fingerprint([this.key(binding), draft.revision]);
|
|
46
|
+
return {
|
|
47
|
+
...binding,
|
|
48
|
+
interaction: {
|
|
49
|
+
...interaction,
|
|
50
|
+
questions: draft.sending ? [] : [question],
|
|
51
|
+
actions: draft.sending ? [] : [...interaction.actions, ...(draft.index > 0 ? ['BACK'] : [])],
|
|
52
|
+
page: {
|
|
53
|
+
id: question.id,
|
|
54
|
+
revision,
|
|
55
|
+
index: draft.index + 1,
|
|
56
|
+
total: interaction.questions.length,
|
|
57
|
+
title: `第 ${draft.index + 1} / ${interaction.questions.length} 题`,
|
|
58
|
+
},
|
|
59
|
+
details: {
|
|
60
|
+
...interaction.details,
|
|
61
|
+
savedAnswers: draft.answers,
|
|
62
|
+
...(draft.sending ? { notice: '回答已提交或结果尚待核对,请查询服务端状态,勿重复提交。' } : {}),
|
|
63
|
+
},
|
|
64
|
+
answerSchema: {
|
|
65
|
+
...ANSWER_JSON_SCHEMA,
|
|
66
|
+
required: ['action'],
|
|
67
|
+
properties: {
|
|
68
|
+
...ANSWER_JSON_SCHEMA.properties,
|
|
69
|
+
action: {
|
|
70
|
+
enum: draft.sending ? [] : [...interaction.actions, ...(draft.index > 0 ? ['BACK'] : [])],
|
|
71
|
+
},
|
|
72
|
+
pageRevision: { const: revision },
|
|
73
|
+
},
|
|
74
|
+
allOf: [
|
|
75
|
+
{
|
|
76
|
+
if: { properties: { action: { enum: ['SUBMIT', 'GENERATE_STYLES'] } } },
|
|
77
|
+
then: { required: ['answers'] },
|
|
78
|
+
},
|
|
79
|
+
{ if: { properties: { action: { const: 'BACK' } } }, then: { required: ['pageRevision'] } },
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
async reply(binding, input, send) {
|
|
86
|
+
return this.store.locked(this.key(binding), async () => {
|
|
87
|
+
const draft = await this.read(binding), interaction = binding.interaction;
|
|
88
|
+
if (draft.sending)
|
|
89
|
+
throw new CliError('OUTCOME_UNKNOWN', '本组回答已提交或结果未确认,请查询状态,勿重复提交');
|
|
90
|
+
if (Object.keys(input).some((key) => !['action', 'answers', 'pageRevision', 'saveOnly'].includes(key)))
|
|
91
|
+
throw new CliError('INVALID_ARGUMENT', '回答包含不支持的字段');
|
|
92
|
+
if (input.saveOnly !== undefined && typeof input.saveOnly !== 'boolean')
|
|
93
|
+
throw new CliError('INVALID_ARGUMENT', 'saveOnly 必须为布尔值');
|
|
94
|
+
const action = input.action ?? (interaction.kind === 'PRD_CLARIFICATION' ? 'GENERATE_STYLES' : 'SUBMIT');
|
|
95
|
+
const revision = fingerprint([this.key(binding), draft.revision]);
|
|
96
|
+
if (input.pageRevision !== undefined && input.pageRevision !== revision)
|
|
97
|
+
throw new CliError('STALE_INTERACTION', '问题页面已变化,请重新查询');
|
|
98
|
+
if (action === 'BACK') {
|
|
99
|
+
if (input.pageRevision !== revision || draft.index === 0)
|
|
100
|
+
throw new CliError('INVALID_ARGUMENT', '无法返回上一题,请使用当前页面版本');
|
|
101
|
+
draft.index--;
|
|
102
|
+
draft.revision++;
|
|
103
|
+
await this.store.write(this.key(binding), draft);
|
|
104
|
+
return { localInteraction: true, sessionId: binding.round.sessionId };
|
|
105
|
+
}
|
|
106
|
+
if (!interaction.actions.includes(String(action)))
|
|
107
|
+
throw new CliError('INVALID_ARGUMENT', '当前交互不支持该动作');
|
|
108
|
+
if (action !== 'SKIP') {
|
|
109
|
+
const parsed = z.array(answer).min(1).safeParse(input.answers);
|
|
110
|
+
if (!parsed.success)
|
|
111
|
+
throw new CliError('INVALID_ARGUMENT', '请提供当前问题的有效答案');
|
|
112
|
+
// 内部处理器接收整组或部分答案;部分回答必须携带页面版本。
|
|
113
|
+
if (parsed.data.length !== interaction.questions.length && input.pageRevision !== revision)
|
|
114
|
+
throw new CliError('STALE_INTERACTION', '逐题回答需要携带当前 pageRevision');
|
|
115
|
+
const ids = parsed.data.map((item) => item.questionId);
|
|
116
|
+
const questions = interaction.questions.filter((item) => ids.includes(item.id));
|
|
117
|
+
resolveAnswers(questions, parsed.data);
|
|
118
|
+
const byId = new Map(draft.answers.map((item) => [item.questionId, item]));
|
|
119
|
+
parsed.data.forEach((item) => byId.set(item.questionId, item));
|
|
120
|
+
draft.answers = [...byId.values()];
|
|
121
|
+
const missing = interaction.questions.findIndex((item) => !byId.has(item.id));
|
|
122
|
+
if (missing >= 0 || input.saveOnly === true) {
|
|
123
|
+
draft.index = missing >= 0 ? missing : interaction.questions.length - 1;
|
|
124
|
+
draft.revision++;
|
|
125
|
+
await this.store.write(this.key(binding), draft);
|
|
126
|
+
return { localInteraction: true, sessionId: binding.round.sessionId };
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
draft.sending = true;
|
|
130
|
+
draft.revision++;
|
|
131
|
+
await this.store.write(this.key(binding), draft);
|
|
132
|
+
try {
|
|
133
|
+
return await send({ action, ...(action === 'SKIP' ? {} : { answers: draft.answers }) });
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (error instanceof CliError &&
|
|
137
|
+
['INVALID_ARGUMENT', 'AUTH_REQUIRED', 'BUSINESS_ERROR', 'STALE_INTERACTION'].includes(error.code)) {
|
|
138
|
+
draft.sending = false;
|
|
139
|
+
await this.store.write(this.key(binding), draft);
|
|
140
|
+
}
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=question-pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-pages.js","sourceRoot":"","sources":["../../src/interactions/question-pages.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACpE,MAAM,MAAM,GAAG,CAAC;KACb,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACnC,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACrC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA2B,EAAE,EAAE,CAC7D,CAAC,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IAC7F,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,KAA4B;QAA5B,UAAK,GAAL,KAAK,CAAuB;IAAG,CAAC;IACrD,GAAG,CAAC,OAA2B;QACrC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IAC9F,CAAC;IACO,KAAK,CAAC,IAAI,CAAC,OAA2B;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,GAAG,KAAK,SAAS;YACnB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAiC,CAAC;QAC/F,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM;YAC9E,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EACpC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE;gBACX,GAAG,WAAW;gBACd,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5F,IAAI,EAAE;oBACJ,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,QAAQ;oBACR,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC;oBACtB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;oBACnC,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI;iBAClE;gBACD,OAAO,EAAE;oBACP,GAAG,WAAW,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,OAAO;oBAC3B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrE;gBACD,YAAY,EAAE;oBACZ,GAAG,kBAAkB;oBACrB,QAAQ,EAAE,CAAC,QAAQ,CAAC;oBACpB,UAAU,EAAE;wBACV,GAAG,kBAAkB,CAAC,UAAU;wBAChC,MAAM,EAAE;4BACN,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBAC1F;wBACD,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;qBAClC;oBACD,KAAK,EAAE;wBACL;4BACE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE;4BACvE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;yBAChC;wBACD,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE;qBAC5F;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,KAAK,CACT,OAA2B,EAC3B,KAAiB,EACjB,IAAgD;QAEhD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EACpC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACpC,IAAI,KAAK,CAAC,OAAO;gBACf,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;YACrE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACpG,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS;gBACrE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;YAC5D,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5F,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,QAAQ;gBACrE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;YAC3D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;oBACtD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;gBAC9D,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;gBACjD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;YACvD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/D,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAC5E,+BAA+B;gBAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,QAAQ;oBACxF,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;gBACrE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChF,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC/D,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC5C,KAAK,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBACxE,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;oBACjD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxE,CAAC;YACH,CAAC;YACD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,KAAK,YAAY,QAAQ;oBACzB,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EACjG,CAAC;oBACD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;oBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -26,7 +26,7 @@ export function projectQuestions(raw, preserveIds = false) {
|
|
|
26
26
|
question: label,
|
|
27
27
|
header: text(question.header),
|
|
28
28
|
multiSelect: question.multiSelect === true,
|
|
29
|
-
allowOther:
|
|
29
|
+
allowOther: question.allowOther !== false,
|
|
30
30
|
options,
|
|
31
31
|
...(typeof recommended === 'number' &&
|
|
32
32
|
Number.isInteger(recommended) &&
|
|
@@ -57,6 +57,8 @@ export function resolveAnswers(questions, input) {
|
|
|
57
57
|
if (!answer || new Set(answer.selectedIndices).size !== answer.selectedIndices.length)
|
|
58
58
|
throw new CliError('INVALID_ARGUMENT', '问题 ID 或选项下标重复/无效');
|
|
59
59
|
const otherValue = answer.otherValue.trim();
|
|
60
|
+
if (otherValue && !question.allowOther)
|
|
61
|
+
throw new CliError('INVALID_ARGUMENT', '当前问题不允许自定义回答');
|
|
60
62
|
if (!answer.selectedIndices.length && !otherValue)
|
|
61
63
|
throw new CliError('INVALID_ARGUMENT', `请回答:${question.question}`);
|
|
62
64
|
if (!question.multiSelect && answer.selectedIndices.length + (otherValue ? 1 : 0) > 1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/interactions/questions.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,UAAU,gBAAgB,CAAC,GAAY,EAAE,WAAW,GAAG,KAAK;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAChE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;gBAAE,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;YACvF,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;aAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QAC/C,OAAO;YACL,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE;YAClE,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW,KAAK,IAAI;YAC1C,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/interactions/questions.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,9 @@ import { parsePlugin } from './parsers/plugin-action.js';
|
|
|
8
8
|
import { parseDdl } from './parsers/ddl-approval.js';
|
|
9
9
|
import { semanticInteraction } from './parsers/semantic-action.js';
|
|
10
10
|
import { isStyleSelected } from './parsers/style-selection.js';
|
|
11
|
-
import { pendingTool, toolId } from './context.js';
|
|
12
|
-
import {
|
|
11
|
+
import { pendingTool, toolId, bind } from './context.js';
|
|
12
|
+
import { interactionId } from './interaction-id.js';
|
|
13
|
+
import { text } from '../contracts/value.js';
|
|
13
14
|
const parsers = {
|
|
14
15
|
prd_questions: parsePrd,
|
|
15
16
|
ask_user_question: parseAskTool,
|
|
@@ -18,6 +19,7 @@ const parsers = {
|
|
|
18
19
|
tool_plugin_secrets_create: parseSecret,
|
|
19
20
|
tool_plugin: parsePlugin,
|
|
20
21
|
tool_execute_ddl: parseDdl,
|
|
22
|
+
managed_agent_wizard: (context) => pendingTool(context.item) ? bind(context, 'MANAGED_AGENT_WIZARD', { actions: [] }) : undefined,
|
|
21
23
|
};
|
|
22
24
|
export function collectInteractions(view, styleSelected = isStyleSelected(view)) {
|
|
23
25
|
const latest = currentRound(view);
|
|
@@ -26,23 +28,40 @@ export function collectInteractions(view, styleSelected = isStyleSelected(view))
|
|
|
26
28
|
if (round.meta?.consult || round.meta?.passive)
|
|
27
29
|
continue;
|
|
28
30
|
for (const item of round.agentItems) {
|
|
31
|
+
const parser = parsers[item.variant];
|
|
29
32
|
if (pendingTool(item) &&
|
|
30
|
-
!
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
(!parser ||
|
|
34
|
+
(!toolId(item) && !(item.variant === 'tool_execute_ddl' && item.payload.autoApprove === true)))) {
|
|
35
|
+
const source = {
|
|
36
|
+
roundId: round.roundId,
|
|
37
|
+
messageId: item.source?.messageId ?? text(item.payload.messageId) ?? '',
|
|
38
|
+
contentId: item.source?.contentId ?? text(item.payload.contentId) ?? item.id,
|
|
33
39
|
variant: item.variant,
|
|
34
|
-
|
|
40
|
+
toolId: toolId(item),
|
|
41
|
+
};
|
|
42
|
+
bindings.push({
|
|
43
|
+
item,
|
|
44
|
+
round,
|
|
45
|
+
view,
|
|
46
|
+
current: round.roundId === latest?.roundId,
|
|
47
|
+
interaction: {
|
|
48
|
+
interactionId: interactionId(round.sessionId, source),
|
|
49
|
+
kind: 'UNSUPPORTED',
|
|
50
|
+
source,
|
|
51
|
+
supported: false,
|
|
52
|
+
questions: [],
|
|
53
|
+
actions: [],
|
|
54
|
+
answerSchema: {},
|
|
55
|
+
details: {
|
|
56
|
+
variant: item.variant,
|
|
57
|
+
notice: '当前 CLI 暂不支持该交互或缺少回复标识,请到 Superun 网页处理。',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
35
60
|
});
|
|
36
|
-
}
|
|
37
|
-
const parser = parsers[item.variant];
|
|
38
|
-
if (!parser) {
|
|
39
|
-
if (pendingTool(item))
|
|
40
|
-
throw new CliError('UNSUPPORTED_INTERACTION', '当前 CLI 尚未支持该阻断交互', {
|
|
41
|
-
variant: item.variant,
|
|
42
|
-
sessionId: view.session.sessionId,
|
|
43
|
-
});
|
|
44
61
|
continue;
|
|
45
62
|
}
|
|
63
|
+
if (!parser)
|
|
64
|
+
continue;
|
|
46
65
|
const binding = parser({
|
|
47
66
|
item,
|
|
48
67
|
round,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/interactions/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/interactions/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,MAAM,OAAO,GAAsC;IACjD,aAAa,EAAE,QAAQ;IACvB,iBAAiB,EAAE,YAAY;IAC/B,kBAAkB,EAAE,iBAAiB;IACrC,mBAAmB,EAAE,WAAW;IAChC,0BAA0B,EAAE,WAAW;IACvC,WAAW,EAAE,WAAW;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CAChC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;CACjG,CAAC;AAEF,MAAM,UAAU,mBAAmB,CACjC,IAAiB,EACjB,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC;IAErC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO;YAAE,SAAS;QACzD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IACE,WAAW,CAAC,IAAI,CAAC;gBACjB,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EACjG,CAAC;gBACD,MAAM,MAAM,GAAG;oBACb,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;oBACvE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE;oBAC5E,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;iBACrB,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI;oBACJ,KAAK;oBACL,IAAI;oBACJ,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO;oBAC1C,WAAW,EAAE;wBACX,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;wBACrD,IAAI,EAAE,aAAa;wBACnB,MAAM;wBACN,SAAS,EAAE,KAAK;wBAChB,SAAS,EAAE,EAAE;wBACb,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE;4BACP,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,MAAM,EAAE,wCAAwC;yBACjD;qBACF;iBACF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,OAAO,GAAG,MAAM,CAAC;gBACrB,IAAI;gBACJ,KAAK;gBACL,IAAI;gBACJ,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO;gBAC1C,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;aACnC,CAAC,CAAC;YACH,IAAI,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/E,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,iBAAiB,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAChG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxG,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Interaction, Question, Choice } from '../contracts/cli-output.js';
|
|
2
|
+
import type { FieldValue, InteractionView, InteractionViewAction } from '../contracts/interaction-view.js';
|
|
3
|
+
import { type JsonObject } from '../contracts/value.js';
|
|
4
|
+
type Context = {
|
|
5
|
+
questions?: Question[];
|
|
6
|
+
messages?: string[];
|
|
7
|
+
choices?: Choice[];
|
|
8
|
+
};
|
|
9
|
+
type Binding = {
|
|
10
|
+
action: InteractionViewAction;
|
|
11
|
+
lower: (values: Record<string, FieldValue>) => JsonObject;
|
|
12
|
+
};
|
|
13
|
+
export declare function interactionView(interaction: Interaction, context?: Context): {
|
|
14
|
+
view: InteractionView;
|
|
15
|
+
bindings: Binding[];
|
|
16
|
+
};
|
|
17
|
+
/** 通用输入在 CLI 内翻译;不允许把回复中的字段名直接拼成业务请求。 */
|
|
18
|
+
export declare function translateResponse(interaction: Interaction, input: JsonObject, context?: Context): JsonObject;
|
|
19
|
+
/** 输出唯一的通用交互格式,不同时发布内部问题/答案模型。 */
|
|
20
|
+
export declare function presentInteractions(data: unknown): unknown;
|
|
21
|
+
export {};
|