superun-ai-cli 0.1.9 → 0.1.11

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 (67) hide show
  1. package/README.md +128 -2
  2. package/dist/api/agent-command-api.js +11 -1
  3. package/dist/api/agent-command-api.js.map +1 -1
  4. package/dist/api/agent-query-api.d.ts +6 -0
  5. package/dist/api/agent-query-api.js +18 -0
  6. package/dist/api/agent-query-api.js.map +1 -1
  7. package/dist/commands/chat/index.js +4 -0
  8. package/dist/commands/chat/index.js.map +1 -1
  9. package/dist/commands/chat/message.d.ts +1 -1
  10. package/dist/commands/chat/message.js +64 -5
  11. package/dist/commands/chat/message.js.map +1 -1
  12. package/dist/commands/chat/review.d.ts +4 -0
  13. package/dist/commands/chat/review.js +7 -0
  14. package/dist/commands/chat/review.js.map +1 -0
  15. package/dist/commands/chat/send.js +4 -1
  16. package/dist/commands/chat/send.js.map +1 -1
  17. package/dist/commands/chat/style.js +1 -1
  18. package/dist/commands/chat/test.d.ts +4 -0
  19. package/dist/commands/chat/test.js +7 -0
  20. package/dist/commands/chat/test.js.map +1 -0
  21. package/dist/commands/chat/wait.js +8 -1
  22. package/dist/commands/chat/wait.js.map +1 -1
  23. package/dist/contracts/cli-output.d.ts +23 -1
  24. package/dist/conversation/auto-test-tasks.d.ts +14 -0
  25. package/dist/conversation/auto-test-tasks.js +120 -0
  26. package/dist/conversation/auto-test-tasks.js.map +1 -0
  27. package/dist/conversation/auto-test.d.ts +14 -0
  28. package/dist/conversation/auto-test.js +25 -0
  29. package/dist/conversation/auto-test.js.map +1 -0
  30. package/dist/conversation/check-context.d.ts +20 -0
  31. package/dist/conversation/check-context.js +67 -0
  32. package/dist/conversation/check-context.js.map +1 -0
  33. package/dist/conversation/check-question-context.d.ts +4 -0
  34. package/dist/conversation/check-question-context.js +57 -0
  35. package/dist/conversation/check-question-context.js.map +1 -0
  36. package/dist/conversation/code-review.d.ts +14 -0
  37. package/dist/conversation/code-review.js +26 -0
  38. package/dist/conversation/code-review.js.map +1 -0
  39. package/dist/conversation/next-actions.d.ts +3 -1
  40. package/dist/conversation/next-actions.js +167 -10
  41. package/dist/conversation/next-actions.js.map +1 -1
  42. package/dist/conversation/round-selector.d.ts +2 -0
  43. package/dist/conversation/round-selector.js +9 -2
  44. package/dist/conversation/round-selector.js.map +1 -1
  45. package/dist/conversation/session-waiter.js +6 -4
  46. package/dist/conversation/session-waiter.js.map +1 -1
  47. package/dist/conversation/task-progress-reader.d.ts +9 -2
  48. package/dist/conversation/task-progress-reader.js +54 -3
  49. package/dist/conversation/task-progress-reader.js.map +1 -1
  50. package/dist/interactions/handlers/reply-universal-ask.js +25 -1
  51. package/dist/interactions/handlers/reply-universal-ask.js.map +1 -1
  52. package/dist/output/task-reminder.d.ts +12 -0
  53. package/dist/output/task-reminder.js +35 -0
  54. package/dist/output/task-reminder.js.map +1 -0
  55. package/dist/output/writer.d.ts +6 -1
  56. package/dist/output/writer.js +42 -1
  57. package/dist/output/writer.js.map +1 -1
  58. package/dist/program.js +1 -1
  59. package/dist/program.js.map +1 -1
  60. package/dist/runner.js +21 -1
  61. package/dist/runner.js.map +1 -1
  62. package/dist/runtime.d.ts +4 -0
  63. package/dist/runtime.js +219 -33
  64. package/dist/runtime.js.map +1 -1
  65. package/dist/update/version-gate.js +53 -51
  66. package/dist/update/version-gate.js.map +1 -1
  67. package/package.json +2 -2
@@ -0,0 +1,35 @@
1
+ /** 任务进行中的通用定时提醒,由顶层输出管理生命周期。@author xiuyu.yi */
2
+ import { randomUUID } from 'node:crypto';
3
+ export class TaskReminder {
4
+ emit;
5
+ timer;
6
+ constructor(emit) {
7
+ this.emit = emit;
8
+ }
9
+ start() {
10
+ if (this.timer)
11
+ return;
12
+ const taskId = randomUUID();
13
+ let sequence = 0;
14
+ this.timer = setInterval(() => {
15
+ try {
16
+ this.emit({
17
+ id: `${taskId}:${++sequence}`,
18
+ message: '任务还在进行中,可以去 superun.ai 查看详情。',
19
+ url: 'https://superun.ai',
20
+ });
21
+ }
22
+ catch {
23
+ // 提醒输出失败只停止提醒,不中断业务执行。
24
+ this.stop();
25
+ }
26
+ }, 5 * 60 * 1000);
27
+ this.timer.unref();
28
+ }
29
+ stop() {
30
+ if (this.timer)
31
+ clearInterval(this.timer);
32
+ this.timer = undefined;
33
+ }
34
+ }
35
+ //# sourceMappingURL=task-reminder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-reminder.js","sourceRoot":"","sources":["../../src/output/task-reminder.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC,MAAM,OAAO,YAAY;IAGM;IAFrB,KAAK,CAAkC;IAE/C,YAA6B,IAA4C;QAA5C,SAAI,GAAJ,IAAI,CAAwC;IAAG,CAAC;IAE7E,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,WAAW,CACtB,GAAG,EAAE;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,GAAG,MAAM,IAAI,EAAE,QAAQ,EAAE;oBAC7B,OAAO,EAAE,8BAA8B;oBACvC,GAAG,EAAE,oBAAoB;iBAC1B,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;gBACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;QACH,CAAC,EACD,CAAC,GAAG,EAAE,GAAG,IAAI,CACd,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;CACF"}
@@ -4,12 +4,17 @@ export declare class OutputWriter {
4
4
  private readonly stderr;
5
5
  private written;
6
6
  private readonly secrets;
7
+ private readonly shownMessages;
8
+ private disposed;
9
+ private readonly taskReminder;
7
10
  constructor(stdout?: (text: string) => void, stderr?: (text: string) => void);
8
11
  registerSecret(secret: string): void;
9
12
  redact(text: string): string;
10
13
  log(text: string): void;
14
+ dispose(): void;
15
+ startTaskReminder(): void;
11
16
  /** stderr 输出过程事件,stdout 仍只输出一次最终结果。 */
12
- progress(data: Pick<CreationResult, 'sessionId' | 'messageId' | 'taskProgress'>): void;
17
+ progress(data: Pick<CreationResult, 'sessionId' | 'messageId' | 'taskProgress'> & Partial<Pick<CreationResult, 'autoTest' | 'codeReview' | 'messages'>>): void;
13
18
  write(data: unknown): void;
14
19
  fail(error: unknown): number;
15
20
  private emit;
@@ -1,12 +1,23 @@
1
1
  /** stdout 单结果输出,敏感值统一脱敏。@author xiuyu.yi */
2
2
  import { SCHEMA_VERSION } from '../config/constants.js';
3
3
  import { CliError, EXIT_CODES } from './exit-codes.js';
4
+ import { TaskReminder } from './task-reminder.js';
4
5
  const SENSITIVE_KEY = /^(?:pat|token|access[-_]?token|private[-_]?token|gatewayToken|authorization|password|secret|secrets|secretValues|apiKey|api_key|rowKey|authToken)$/i;
5
6
  export class OutputWriter {
6
7
  stdout;
7
8
  stderr;
8
9
  written = false;
9
10
  secrets = new Set();
11
+ shownMessages = new Map();
12
+ disposed = false;
13
+ taskReminder = new TaskReminder((data) => {
14
+ this.stderr(`${this.serialize({
15
+ schemaVersion: SCHEMA_VERSION,
16
+ event: 'task_reminder',
17
+ data,
18
+ instruction: '立即原样展示 data.message,将 superun.ai 链接到 data.url。同一 data.id 不重复展示;不同 ID 是每隔 5 分钟的再次提醒,文案相同也要展示。继续等待当前任务,不结束等待、不重新提交任务。',
19
+ })}\n`);
20
+ });
10
21
  constructor(stdout = (text) => process.stdout.write(text), stderr = (text) => process.stderr.write(text)) {
11
22
  this.stdout = stdout;
12
23
  this.stderr = stderr;
@@ -24,8 +35,35 @@ export class OutputWriter {
24
35
  log(text) {
25
36
  this.stderr(`${this.redact(text)}\n`);
26
37
  }
38
+ dispose() {
39
+ this.disposed = true;
40
+ this.taskReminder.stop();
41
+ }
42
+ startTaskReminder() {
43
+ if (!this.written && !this.disposed)
44
+ this.taskReminder.start();
45
+ }
27
46
  /** stderr 输出过程事件,stdout 仍只输出一次最终结果。 */
28
47
  progress(data) {
48
+ const checkName = data.codeReview ? '代码审查' : data.autoTest ? '自动测试' : undefined;
49
+ if (checkName) {
50
+ const messages = data.messages?.filter((message) => {
51
+ if (message.role !== 'assistant' || !message.text.trim())
52
+ return false;
53
+ const key = `${data.sessionId}:${message.id}`;
54
+ if (this.shownMessages.get(key) === message.text)
55
+ return false;
56
+ this.shownMessages.set(key, message.text);
57
+ return true;
58
+ }) ?? [];
59
+ if (messages.length)
60
+ this.stderr(`${this.serialize({
61
+ schemaVersion: SCHEMA_VERSION,
62
+ event: 'conversation_message',
63
+ data: { sessionId: data.sessionId, messageId: data.messageId, messages },
64
+ instruction: `及时展示这些${checkName}或修复的实际对话消息,保留发现的问题与修复前告知;同一消息 id 更新正文,不重复追加。该事件只是过程,继续等待当前命令,不表示${checkName}或修复已全部完成,不展示继续创作或上线运营菜单。`,
65
+ })}\n`);
66
+ }
29
67
  if (!data.taskProgress)
30
68
  return;
31
69
  this.stderr(`${this.serialize({
@@ -36,7 +74,9 @@ export class OutputWriter {
36
74
  messageId: data.messageId,
37
75
  taskProgress: data.taskProgress,
38
76
  },
39
- instruction: '每次查询都展示 data.taskProgress.markdown 中当前开发中的功能及步骤,即使 changed 为 false 也展示;不要从历史消息补回已完成的功能或旧步骤。支持原位更新时按卡片 id 更新,否则每次展示当前快照。不追加执行详情或工具次数。这是过程更新,继续等待当前命令的最终结果,不代表整个任务结束,不重复提交任务。',
77
+ instruction: checkName
78
+ ? `展示 data.taskProgress.markdown 中实际任务进度,不把功能步骤数当作${checkName}的问题数或通过数。及时展示 conversation_message 中发现的问题和修复说明。继续等待当前命令的最终结果,不重复提交任务、不展示操作菜单。`
79
+ : '每次查询都展示 data.taskProgress.markdown 中当前开发中的功能及步骤,即使 changed 为 false 也展示;不要从历史消息补回已完成的功能或旧步骤。支持原位更新时按卡片 id 更新,否则每次展示当前快照。不追加执行详情或工具次数。这是过程更新,继续等待当前命令的最终结果,不代表整个任务结束,不重复提交任务。',
40
80
  })}\n`);
41
81
  }
42
82
  write(data) {
@@ -60,6 +100,7 @@ export class OutputWriter {
60
100
  emit(value) {
61
101
  if (this.written)
62
102
  return;
103
+ this.dispose();
63
104
  this.written = true;
64
105
  this.stdout(`${this.serialize(value)}\n`);
65
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/output/writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/output/writer.ts"],"names":[],"mappings":"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"}
package/dist/program.js CHANGED
@@ -10,7 +10,7 @@ import { registerVersion } from './commands/system/version.js';
10
10
  export function createProgram(context, hooks) {
11
11
  const program = new Command()
12
12
  .name(COMMAND_NAME)
13
- .description('superun-ai 项目管理、对话创作和应用发布')
13
+ .description('通过需求梳理、架构设计与开发协作,将网站和应用的想法转化为可持续迭代、可部署运维的生产级系统。')
14
14
  .version(PACKAGE_VERSION)
15
15
  .option('--endpoint <URL>', 'API 地址')
16
16
  .option('--locale <language>', '回复语言', 'zh-CN')
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,aAAa,CAC3B,OAAuB,EACvB,KAGC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CAAC,2BAA2B,CAAC;SACxC,OAAO,CAAC,eAAe,CAAC;SACxB,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC;SAC9C,YAAY,EAAE;SACd,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAChD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QACzF,MAAM,OAAO,GACX,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC5E,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO;QAC1C,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;YAC7C,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,aAAa,CAC3B,OAAuB,EACvB,KAGC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CACV,iDAAiD,CAClD;SACA,OAAO,CAAC,eAAe,CAAC;SACxB,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC;SAC9C,YAAY,EAAE;SACd,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAChD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QACzF,MAAM,OAAO,GACX,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC5E,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO;QAC1C,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;YAC7C,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/runner.js CHANGED
@@ -14,7 +14,11 @@ class Reexecuted extends Error {
14
14
  }
15
15
  export async function runCli(argv, options = {}) {
16
16
  const output = options.output ?? new OutputWriter(), controller = new AbortController();
17
- const interrupt = () => controller.abort();
17
+ let afterInput;
18
+ const interrupt = () => {
19
+ output.dispose();
20
+ controller.abort();
21
+ };
18
22
  process.once('SIGINT', interrupt);
19
23
  process.once('SIGTERM', interrupt);
20
24
  const checkVersion = options.checkVersion ?? versionGate;
@@ -33,6 +37,19 @@ export async function runCli(argv, options = {}) {
33
37
  },
34
38
  update: () => versionGate(argv, output, true),
35
39
  });
40
+ // 认证完成后,仅为持续等待的业务命令启用旁路提醒;不改动各命令的执行逻辑。
41
+ program.hook('preAction', (_root, command) => {
42
+ const commandOptions = command.opts();
43
+ if (!(commandOptions.wait === true || (command.name() === 'wait' && command.parent?.name() === 'chat')))
44
+ return;
45
+ // 等待用户从标准输入提供需求或回答时不计时,也不额外读取输入流。
46
+ if (commandOptions.input === '-' && !process.stdin.readableEnded) {
47
+ afterInput = () => output.startTaskReminder();
48
+ process.stdin.once('end', afterInput);
49
+ }
50
+ else
51
+ output.startTaskReminder();
52
+ });
36
53
  await program.parseAsync(argv, { from: 'user' });
37
54
  return 0;
38
55
  }
@@ -47,6 +64,9 @@ export async function runCli(argv, options = {}) {
47
64
  return output.fail(error);
48
65
  }
49
66
  finally {
67
+ output.dispose();
68
+ if (afterInput)
69
+ process.stdin.off('end', afterInput);
50
70
  process.off('SIGINT', interrupt);
51
71
  process.off('SIGTERM', interrupt);
52
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,MAAM,UAAW,SAAQ,KAAK;IACP;IAArB,YAAqB,QAAgB;QACnC,KAAK,CAAC,YAAY,CAAC,CAAC;QADD,aAAQ,GAAR,QAAQ,CAAQ;IAErC,CAAC;CACF;AAOD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAmB,EAAE,UAAyB,EAAE;IAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,YAAY,EAAE,EACjD,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,WAAW,CAAC;IACzD,MAAM,OAAO,GAAmB;QAC9B,MAAM;QACN,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,QAAQ,EAAE;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE;YACrC,cAAc,EAAE,KAAK,IAAI,EAAE;gBACzB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAChD,IAAI,MAAM,CAAC,UAAU;oBAAE,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,UAAU;YAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;QACvD,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -17,6 +17,7 @@ import type { GuidanceResult } from './conversation/next-actions.js';
17
17
  import { SessionWaiter } from './conversation/session-waiter.js';
18
18
  import type { WaitOptions } from './conversation/session-waiter.js';
19
19
  import { TaskProgressReader } from './conversation/task-progress-reader.js';
20
+ import { AutoTestTasks } from './conversation/auto-test-tasks.js';
20
21
  export declare class CreationRuntime {
21
22
  readonly client: ApiClient;
22
23
  readonly output: OutputWriter;
@@ -30,11 +31,13 @@ export declare class CreationRuntime {
30
31
  readonly previewVersions: PreviewVersionApi;
31
32
  readonly waiter: SessionWaiter;
32
33
  readonly taskProgress: TaskProgressReader;
34
+ readonly autoTestTasks: AutoTestTasks;
33
35
  private demoSnapshotSync?;
34
36
  constructor(client: ApiClient, output: OutputWriter);
35
37
  load(sessionId: string): Promise<SessionView>;
36
38
  choices(sessionId: string, anchor?: string, view?: SessionView): Promise<Array<Choice>>;
37
39
  inspect(view: SessionView, styleTarget?: StyleWaitTarget): Promise<CreationResult>;
40
+ resolveChecks(view: SessionView): Promise<Pick<CreationResult, 'autoTest' | 'codeReview'>>;
38
41
  state(sessionId: string): Promise<CreationResult>;
39
42
  withGuidance<T extends GuidanceResult>(result: T): T & {
40
43
  nextActions: import("./contracts/cli-output.js").NextAction[];
@@ -45,6 +48,7 @@ export declare class CreationRuntime {
45
48
  } | undefined;
46
49
  };
47
50
  wait(sessionId: string, options: WaitOptions): Promise<CreationResult>;
51
+ private approveStylePlan;
48
52
  accepted(response: JsonObject, sessionId: string | undefined, wait: boolean, options: WaitOptions): Promise<CreationResult>;
49
53
  generateStyles(sessionId: string, content: string, count: number, preReplyMessageId?: string): Promise<JsonObject>;
50
54
  selectStyle(sessionId: string, choiceId: string): Promise<JsonObject>;