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.
Files changed (61) hide show
  1. package/README.en.md +24 -15
  2. package/README.md +23 -15
  3. package/dist/api/managed-agent-api.d.ts +31 -0
  4. package/dist/api/managed-agent-api.js +98 -0
  5. package/dist/api/managed-agent-api.js.map +1 -0
  6. package/dist/commands/chat/interaction.d.ts +0 -1
  7. package/dist/commands/chat/interaction.js +15 -16
  8. package/dist/commands/chat/interaction.js.map +1 -1
  9. package/dist/commands/chat/plugin.d.ts +0 -1
  10. package/dist/commands/chat/plugin.js +11 -0
  11. package/dist/commands/chat/plugin.js.map +1 -1
  12. package/dist/contracts/cli-output.d.ts +14 -2
  13. package/dist/contracts/interaction-view.d.ts +64 -0
  14. package/dist/contracts/interaction-view.js +2 -0
  15. package/dist/contracts/interaction-view.js.map +1 -0
  16. package/dist/conversation/managed-agent-entry.d.ts +23 -0
  17. package/dist/conversation/managed-agent-entry.js +56 -0
  18. package/dist/conversation/managed-agent-entry.js.map +1 -0
  19. package/dist/conversation/next-actions.d.ts +1 -1
  20. package/dist/conversation/next-actions.js +48 -26
  21. package/dist/conversation/next-actions.js.map +1 -1
  22. package/dist/conversation/state-resolver.js +21 -5
  23. package/dist/conversation/state-resolver.js.map +1 -1
  24. package/dist/conversation/text-projector.js +3 -1
  25. package/dist/conversation/text-projector.js.map +1 -1
  26. package/dist/interactions/draft-store.d.ts +10 -0
  27. package/dist/interactions/draft-store.js +102 -0
  28. package/dist/interactions/draft-store.js.map +1 -0
  29. package/dist/interactions/handlers/index.js +7 -0
  30. package/dist/interactions/handlers/index.js.map +1 -1
  31. package/dist/interactions/managed-agent-model.d.ts +95 -0
  32. package/dist/interactions/managed-agent-model.js +195 -0
  33. package/dist/interactions/managed-agent-model.js.map +1 -0
  34. package/dist/interactions/managed-agent-wizard.d.ts +18 -0
  35. package/dist/interactions/managed-agent-wizard.js +341 -0
  36. package/dist/interactions/managed-agent-wizard.js.map +1 -0
  37. package/dist/interactions/parsers/style-selection.d.ts +3 -1
  38. package/dist/interactions/parsers/style-selection.js +29 -6
  39. package/dist/interactions/parsers/style-selection.js.map +1 -1
  40. package/dist/interactions/question-pages.d.ts +12 -0
  41. package/dist/interactions/question-pages.js +146 -0
  42. package/dist/interactions/question-pages.js.map +1 -0
  43. package/dist/interactions/questions.js +3 -1
  44. package/dist/interactions/questions.js.map +1 -1
  45. package/dist/interactions/registry.js +33 -14
  46. package/dist/interactions/registry.js.map +1 -1
  47. package/dist/interactions/view-adapter.d.ts +21 -0
  48. package/dist/interactions/view-adapter.js +365 -0
  49. package/dist/interactions/view-adapter.js.map +1 -0
  50. package/dist/output/writer.js +4 -2
  51. package/dist/output/writer.js.map +1 -1
  52. package/dist/runtime.d.ts +7 -0
  53. package/dist/runtime.js +99 -1
  54. package/dist/runtime.js.map +1 -1
  55. package/dist/transport/api-client.d.ts +3 -1
  56. package/dist/transport/api-client.js +7 -0
  57. package/dist/transport/api-client.js.map +1 -1
  58. package/dist/transport/http-client.d.ts +1 -0
  59. package/dist/transport/http-client.js +3 -0
  60. package/dist/transport/http-client.js.map +1 -1
  61. 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 同源,snapshotUrl 是图片,snapshotId 才用于生成页面地址。 */
65
+ /** 与 Glow 的分支 iframe 同源,使用后端加密 ID;snapshotUrl 是图片,不回退数字 ID。 */
64
66
  function stylePreviewUrl(item, endpoint) {
65
- const snapshotId = typeof item.snapshotId === 'number' && Number.isSafeInteger(item.snapshotId) && item.snapshotId > 0
66
- ? String(item.snapshotId)
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--${snapshotId}.${getSuperunHostingDomain(endpoint)}`);
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":"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"}
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":"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"}
@@ -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: true,
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":"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"}
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 { CliError } from '../output/exit-codes.js';
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
- !toolId(item) &&
31
- !(item.variant === 'tool_execute_ddl' && item.payload.autoApprove === true)) {
32
- throw new CliError('UNSUPPORTED_INTERACTION', '等待中的工具缺少可回复标识', {
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
- sessionId: view.session.sessionId,
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;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,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;CAC3B,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,IACE,WAAW,CAAC,IAAI,CAAC;gBACjB,CAAC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,EAC3E,CAAC;gBACD,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,eAAe,EAAE;oBAC7D,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;iBAClC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,WAAW,CAAC,IAAI,CAAC;oBACnB,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,kBAAkB,EAAE;wBAChE,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;qBAClC,CAAC,CAAC;gBACL,SAAS;YACX,CAAC;YACD,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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/interactions/registry.ts"],"names":[],"mappings":"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"}
@@ -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 {};