superun-ai-cli 0.1.30 → 0.1.33

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 (54) hide show
  1. package/README.en.md +2 -0
  2. package/README.md +45 -2
  3. package/dist/api/agent-friendly-api.d.ts +16 -0
  4. package/dist/api/agent-friendly-api.js +83 -0
  5. package/dist/api/agent-friendly-api.js.map +1 -0
  6. package/dist/api/security-review-api.d.ts +20 -0
  7. package/dist/api/security-review-api.js +75 -0
  8. package/dist/api/security-review-api.js.map +1 -0
  9. package/dist/commands/chat/agent-friendly.d.ts +4 -0
  10. package/dist/commands/chat/agent-friendly.js +97 -0
  11. package/dist/commands/chat/agent-friendly.js.map +1 -0
  12. package/dist/commands/chat/index.js +4 -0
  13. package/dist/commands/chat/index.js.map +1 -1
  14. package/dist/commands/chat/publish.js +7 -0
  15. package/dist/commands/chat/publish.js.map +1 -1
  16. package/dist/commands/chat/security.d.ts +4 -0
  17. package/dist/commands/chat/security.js +57 -0
  18. package/dist/commands/chat/security.js.map +1 -0
  19. package/dist/commands/chat/state.js +6 -2
  20. package/dist/commands/chat/state.js.map +1 -1
  21. package/dist/commands/chat/stop.js +17 -0
  22. package/dist/commands/chat/stop.js.map +1 -1
  23. package/dist/commands/chat/wait.js +5 -1
  24. package/dist/commands/chat/wait.js.map +1 -1
  25. package/dist/commands/shared.d.ts +1 -0
  26. package/dist/commands/shared.js +2 -0
  27. package/dist/commands/shared.js.map +1 -1
  28. package/dist/contracts/cli-output.d.ts +4 -1
  29. package/dist/contracts/security-review.d.ts +102 -0
  30. package/dist/contracts/security-review.js +47 -0
  31. package/dist/contracts/security-review.js.map +1 -0
  32. package/dist/conversation/agent-friendly-prompts.d.ts +11 -0
  33. package/dist/conversation/agent-friendly-prompts.js +57 -0
  34. package/dist/conversation/agent-friendly-prompts.js.map +1 -0
  35. package/dist/conversation/agent-friendly.d.ts +24 -0
  36. package/dist/conversation/agent-friendly.js +165 -0
  37. package/dist/conversation/agent-friendly.js.map +1 -0
  38. package/dist/conversation/next-actions.d.ts +1 -1
  39. package/dist/conversation/next-actions.js +22 -10
  40. package/dist/conversation/next-actions.js.map +1 -1
  41. package/dist/conversation/security-review.d.ts +129 -0
  42. package/dist/conversation/security-review.js +246 -0
  43. package/dist/conversation/security-review.js.map +1 -0
  44. package/dist/conversation/session-waiter.d.ts +3 -1
  45. package/dist/conversation/session-waiter.js +5 -2
  46. package/dist/conversation/session-waiter.js.map +1 -1
  47. package/dist/interactions/managed-agent-model.d.ts +13 -13
  48. package/dist/output/writer.d.ts +1 -1
  49. package/dist/output/writer.js +8 -3
  50. package/dist/output/writer.js.map +1 -1
  51. package/dist/runtime.d.ts +4 -2
  52. package/dist/runtime.js +12 -5
  53. package/dist/runtime.js.map +1 -1
  54. package/package.json +1 -1
@@ -1,24 +1,28 @@
1
1
  import { z } from 'zod';
2
- import { object } from '../../contracts/value.js';
2
+ import { object, text } from '../../contracts/value.js';
3
3
  import { applySnapshot } from '../../conversation/session-waiter.js';
4
4
  import { runtime } from '../shared.js';
5
5
  import { appendValue } from './message.js';
6
+ import { CliError } from '../../output/exit-codes.js';
6
7
  export function registerState(chat, context) {
7
8
  chat
8
9
  .command('state <sessionId>')
9
10
  .description('查询当前任务和交互')
10
11
  .option('--message-id <messageId>', '刷新指定消息快照')
12
+ .option('--review-id <reviewId>', '查询指定的本次安全扫描及报告')
11
13
  .option('--progress-revision <revision>', '上次已展示的任务进度版本')
12
14
  .option('--include-file <name>', '包含指定可见附件正文,可重复使用', appendValue, [])
13
15
  .action(async (sessionId, _options, command) => {
14
16
  const service = await runtime(context, command), options = object(command.opts());
17
+ if (options.reviewId && options.messageId)
18
+ throw new CliError('INVALID_ARGUMENT', '扫描 ID 与消息 ID 不能同时指定');
15
19
  let view = await service.load(sessionId);
16
20
  if (typeof options.messageId === 'string') {
17
21
  const snapshot = await service.conversation.snapshot(sessionId, options.messageId);
18
22
  if (snapshot.pipeline)
19
23
  view = applySnapshot(view, snapshot.pipeline);
20
24
  }
21
- const result = await service.inspect(view), names = z.array(z.string()).parse(options.includeFile);
25
+ const result = await service.inspect(view, undefined, text(options.reviewId)), names = z.array(z.string()).parse(options.includeFile);
22
26
  if (result.taskProgress)
23
27
  result.taskProgress.changed = result.taskProgress.revision !== options.progressRevision;
24
28
  if (names.length)
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/commands/chat/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,OAAuB;IAClE,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,0BAA0B,EAAE,UAAU,CAAC;SAC9C,MAAM,CAAC,gCAAgC,EAAE,cAAc,CAAC;SACxD,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,QAAQ,CAAC,QAAQ;gBAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EACxC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,YAAY;YACrB,MAAM,CAAC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC;QAC1F,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/commands/chat/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,OAAuB;IAClE,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,0BAA0B,EAAE,UAAU,CAAC;SAC9C,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;SAClD,MAAM,CAAC,gCAAgC,EAAE,cAAc,CAAC;SACxD,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS;YACvC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;QAChE,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,QAAQ,CAAC,QAAQ;gBAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAC3E,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,YAAY;YACrB,MAAM,CAAC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC;QAC1F,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,14 +1,31 @@
1
1
  import { Option } from 'commander';
2
2
  import { object, text } from '../../contracts/value.js';
3
3
  import { runtime, businessWrite } from '../shared.js';
4
+ import { securityActive } from '../../api/security-review-api.js';
5
+ import { CliError } from '../../output/exit-codes.js';
4
6
  export function registerStop(chat, context) {
5
7
  chat
6
8
  .command('stop <sessionId>')
7
9
  .description('停止远端任务')
8
10
  .option('--message-id <messageId>', '指定任务消息')
11
+ .option('--review-id <reviewId>', '只取消指定安全扫描及其自动修复')
9
12
  .addOption(new Option('--scope <scope>', '停止范围').choices(['own', 'all']).default('own'))
10
13
  .action(async (sessionId, _options, command) => {
11
14
  const service = await runtime(context, command), options = object(command.opts());
15
+ if (options.reviewId && (options.messageId || options.scope === 'all'))
16
+ throw new CliError('INVALID_ARGUMENT', '指定安全扫描时不能同时指定消息或全部停止');
17
+ const reviewId = text(options.reviewId);
18
+ if (reviewId) {
19
+ const review = await service.security.query(sessionId, reviewId);
20
+ if (!review.found || !securityActive(review))
21
+ throw new CliError('INVALID_ARGUMENT', '该安全扫描已结束或不存在,无需取消', {
22
+ sessionId,
23
+ reviewId,
24
+ });
25
+ await businessWrite(context, service, sessionId, () => service.security.cancel(sessionId, reviewId));
26
+ context.output.write(await service.state(sessionId, reviewId));
27
+ return;
28
+ }
12
29
  await businessWrite(context, service, sessionId, () => service.command.stop(sessionId, options.scope === 'all' ? 'all' : 'own', text(options.messageId)));
13
30
  context.output.write({ state: 'COMPLETED', sessionId });
14
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/chat/stop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAuB;IACjE,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,0BAA0B,EAAE,QAAQ,CAAC;SAC5C,SAAS,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CACpD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAClG,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/chat/stop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAuB;IACjE,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,0BAA0B,EAAE,QAAQ,CAAC;SAC5C,MAAM,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;SACnD,SAAS,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC;YACpE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC1C,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,EAAE;oBAC1D,SAAS;oBACT,QAAQ;iBACT,CAAC,CAAC;YACL,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CACpD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAClG,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,18 +1,22 @@
1
1
  import { runtime, positive, waitOptions } from '../shared.js';
2
+ import { CliError } from '../../output/exit-codes.js';
2
3
  export function registerWait(chat, context) {
3
4
  chat
4
5
  .command('wait <sessionId>')
5
6
  .description('等待当前交互或任务结果,期间持续展示任务进度')
6
7
  .option('--message-id <messageId>', '起始消息 ID')
8
+ .option('--review-id <reviewId>', '持续跟进指定安全扫描,直到报告生成')
7
9
  .option('--timeout <seconds>', '本地等待上限;不传则持续等待', positive)
8
10
  .option('--interval <seconds>', '轮询最小间隔', positive)
9
11
  .option('--progress-revision <revision>', '上次已展示的任务进度版本;仅输出变化的进度')
10
12
  .action(async (sessionId, _options, command) => {
11
13
  const options = waitOptions(command);
14
+ if (options.reviewId && options.messageId)
15
+ throw new CliError('INVALID_ARGUMENT', '扫描 ID 与消息 ID 不能同时指定');
12
16
  context.output.write(await (await runtime(context, command)).wait(sessionId, {
13
17
  ...options,
14
18
  // no-wait 回执带的新消息也必须先入流,不能返回前一轮结果。
15
- requiredMessageId: options.messageId,
19
+ requiredMessageId: options.reviewId ? undefined : options.messageId,
16
20
  }));
17
21
  });
18
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/commands/chat/wait.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAuB;IACjE,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,0BAA0B,EAAE,SAAS,CAAC;SAC7C,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,gCAAgC,EAAE,uBAAuB,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,CACJ,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAC,IAAI,CAAC,SAAS,EAAE;YAChB,GAAG,OAAO;YACV,mCAAmC;YACnC,iBAAiB,EAAE,OAAO,CAAC,SAAS;SACrC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/commands/chat/wait.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAuB;IACjE,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,0BAA0B,EAAE,SAAS,CAAC;SAC7C,MAAM,CAAC,wBAAwB,EAAE,mBAAmB,CAAC;SACrD,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,gCAAgC,EAAE,uBAAuB,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS;YACvC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,CACJ,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAC,IAAI,CAAC,SAAS,EAAE;YAChB,GAAG,OAAO;YACV,mCAAmC;YACnC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;SACpE,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -29,6 +29,7 @@ export declare function waitOptions(command: Command): {
29
29
  interval?: number;
30
30
  messageId?: string;
31
31
  progressRevision?: string;
32
+ reviewId?: string;
32
33
  };
33
34
  export declare function withWait(command: Command, noWaitDescription?: string): Command;
34
35
  export declare function readInput(path: string): Promise<JsonObject>;
@@ -41,6 +41,7 @@ const projectOperations = new Set([
41
41
  'send',
42
42
  'test',
43
43
  'review',
44
+ 'security',
44
45
  'stop',
45
46
  'retry',
46
47
  'demo',
@@ -95,6 +96,7 @@ export function waitOptions(command) {
95
96
  interval: typeof options.interval === 'number' ? options.interval : undefined,
96
97
  messageId: text(options.messageId),
97
98
  progressRevision: text(options.progressRevision),
99
+ reviewId: text(options.reviewId),
98
100
  };
99
101
  }
100
102
  export function withWait(command, noWaitDescription = '服务端接受请求后立即返回') {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAgB/D,KAAK,UAAU,qBAAqB,CAClC,OAAuB,EACvB,OAAgB,EAChB,YAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;QACjC,KAAK,EAAE,OAAO,CAAC,QAAQ;QACvB,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY;KACb,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,OAAO,GACX,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC;QAC7C,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxG,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAuB,EACvB,OAAgB,EAChB,YAAY,GAAG,KAAK;IAEpB,OAAO,CAAC,UAAU,KAAK,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC,UAAU,CAAC;AAC5B,CAAC;AAED,iCAAiC;AACjC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,MAAM;IACN,MAAM;IACN,QAAQ;IACR,UAAU;IACV,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,oBAAoB;CACrB,CAAC,CAAC;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB,EAAE,OAAgB;IACrE,MAAM,OAAO,GAAG,CAAC,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACrE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAmB,OAAO,CAAC;IACrC,OAAO,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,MAAM,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,SAAS,KAAK,QAAQ;QACrG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,KAAK,UAAU,aAAa,CAAC,OAAuB,EAAE,OAAwB,EAAE,SAAiB;IAC/F,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO;IACpD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACxC,CAAC;AACD,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAuB,EAAE,OAAwB;IACpF,OAAO,CAAC,cAAc,KAAK,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3D,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;IACF,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,OAAgB;IAO1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO;QACL,OAAO,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC1E,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC7E,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAClC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAChD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACjC,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,iBAAiB,GAAG,cAAc;IAC3E,OAAO,OAAO;SACX,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC;SACjC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC;SACtC,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS;gBACxC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS;YACxC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,OAAwB,EACxB,SAA6B,EAC7B,MAA8B;IAE9B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO;QACV,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,SAAS;QAAE,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GACZ,KAAK,YAAY,QAAQ;gBACzB,CAAC,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,KAAK,YAAY,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YACrE,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC5C,GAAG,KAAK,CAAC,OAAO;gBAChB,SAAS;gBACT,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;gBACxC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;aACrC,CAAC,CAAC;QACL,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,SAAS,EAAE,CAAC;YAC/E,IAAI,aAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,aAAa,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB;YACvB,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,6BAA6B,EAAE;gBACnE,GAAG,KAAK,CAAC,OAAO;gBAChB,SAAS;gBACT,aAAa;gBACb,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;YACxB,MAAM,IAAI,QAAQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACpE,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,iCAAiC,EAAE;gBACvE,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC1F,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,2CAA2C,EAC3C;gBACE,SAAS,EAAE,gBAAgB;gBAC3B,cAAc,EAAE,IAAI;gBACpB,SAAS,EAAE,KAAK;aACjB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAsB,EACtB,UAAiC,EACjC,OAAmD;IAEnD,MAAM,QAAQ,GACZ,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACjG,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;YACxB,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  /** 面向终端、Agent 和 MCP 调用方的稳定输出协议。@author xiuyu.yi */
2
+ import type { SecurityReviewResult } from './security-review.js';
2
3
  export type CreationState = 'ACCEPTED' | 'QUEUED' | 'RUNNING' | 'PAUSED' | 'NEEDS_INPUT' | 'NEEDS_SELECTION' | 'COMPLETED' | 'FAILED' | 'INTERRUPTED' | 'CANCELLED';
3
4
  export type InteractionKind = 'PRD_CLARIFICATION' | 'ASK_USER_TOOL' | 'ASK_USER_MESSAGE' | 'SECRET_INPUT' | 'PLUGIN_SECRET_INPUT' | 'PLUGIN_ACTION' | 'DDL_CONFIRMATION' | 'STYLE_SELECTION' | 'ENTER_IDEATION' | 'APPROVE_ARCHITECTURE_PLAN' | 'SELECT_FEATURES' | 'START_EXECUTION' | 'MANAGED_AGENT_WIZARD' | 'UNSUPPORTED';
4
5
  export type Question = {
@@ -106,7 +107,7 @@ export type DevelopmentProgress = {
106
107
  export type TaskProgressStatus = 'submitted' | 'queued' | 'running' | 'waiting' | 'needs_input' | 'completed' | 'failed' | 'interrupted' | 'unknown';
107
108
  export type TaskProgressItem = {
108
109
  id: string;
109
- kind: 'feature' | 'message' | 'consult' | 'subtask' | 'style' | 'other-member' | 'request';
110
+ kind: 'feature' | 'message' | 'consult' | 'subtask' | 'style' | 'other-member' | 'request' | 'security';
110
111
  title: string;
111
112
  status: TaskProgressStatus;
112
113
  detail?: string;
@@ -169,6 +170,8 @@ export type CreationResult = {
169
170
  /** 自动测试及其后续修复的上下文;不以会话完成推断测试通过。 */
170
171
  autoTest?: CheckContext<'test'>;
171
172
  codeReview?: CheckContext<'review'>;
173
+ /** 本次安全扫描的完整生命周期;不以任意单条聊天消息结束判定完成。 */
174
+ securityReview?: SecurityReviewResult;
172
175
  messages: Array<{
173
176
  id: string;
174
177
  role: 'user' | 'assistant';
@@ -0,0 +1,102 @@
1
+ /** 安全扫描接口和 CLI 输出共用的数据契约。@author xiuyu.yi */
2
+ import { z } from 'zod';
3
+ export declare const securityReviewSchema: z.ZodObject<{
4
+ found: z.ZodBoolean;
5
+ reviewId: z.ZodOptional<z.ZodString>;
6
+ reviewSeqNo: z.ZodOptional<z.ZodNumber>;
7
+ stage: z.ZodOptional<z.ZodNumber>;
8
+ stageDesc: z.ZodOptional<z.ZodString>;
9
+ currentCheckCategory: z.ZodOptional<z.ZodNullable<z.ZodString>>;
10
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
11
+ category: z.ZodString;
12
+ label: z.ZodOptional<z.ZodString>;
13
+ status: z.ZodNumber;
14
+ statusDesc: z.ZodOptional<z.ZodString>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ status: number;
17
+ category: string;
18
+ label?: string | undefined;
19
+ statusDesc?: string | undefined;
20
+ }, {
21
+ status: number;
22
+ category: string;
23
+ label?: string | undefined;
24
+ statusDesc?: string | undefined;
25
+ }>, "many">>;
26
+ assessmentStatus: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27
+ remediationRequired: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
28
+ remediationStatus: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
29
+ reportStatus: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
30
+ reportStatusDesc: z.ZodOptional<z.ZodString>;
31
+ reportResult: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ reportPdfUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
+ reportGeneratedAt: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
34
+ invalidatedReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ found: boolean;
37
+ reviewId?: string | undefined;
38
+ reviewSeqNo?: number | undefined;
39
+ stage?: number | undefined;
40
+ stageDesc?: string | undefined;
41
+ currentCheckCategory?: string | null | undefined;
42
+ checks?: {
43
+ status: number;
44
+ category: string;
45
+ label?: string | undefined;
46
+ statusDesc?: string | undefined;
47
+ }[] | undefined;
48
+ assessmentStatus?: number | null | undefined;
49
+ remediationRequired?: boolean | null | undefined;
50
+ remediationStatus?: number | null | undefined;
51
+ reportStatus?: number | null | undefined;
52
+ reportStatusDesc?: string | undefined;
53
+ reportResult?: string | null | undefined;
54
+ reportPdfUrl?: string | null | undefined;
55
+ reportGeneratedAt?: string | number | null | undefined;
56
+ invalidatedReason?: string | null | undefined;
57
+ }, {
58
+ found: boolean;
59
+ reviewId?: string | undefined;
60
+ reviewSeqNo?: number | undefined;
61
+ stage?: number | undefined;
62
+ stageDesc?: string | undefined;
63
+ currentCheckCategory?: string | null | undefined;
64
+ checks?: {
65
+ status: number;
66
+ category: string;
67
+ label?: string | undefined;
68
+ statusDesc?: string | undefined;
69
+ }[] | undefined;
70
+ assessmentStatus?: number | null | undefined;
71
+ remediationRequired?: boolean | null | undefined;
72
+ remediationStatus?: number | null | undefined;
73
+ reportStatus?: number | null | undefined;
74
+ reportStatusDesc?: string | undefined;
75
+ reportResult?: string | null | undefined;
76
+ reportPdfUrl?: string | null | undefined;
77
+ reportGeneratedAt?: string | number | null | undefined;
78
+ invalidatedReason?: string | null | undefined;
79
+ }>;
80
+ export type SecurityReviewView = z.infer<typeof securityReviewSchema>;
81
+ export type SecurityReviewResult = Omit<SecurityReviewView, 'found'> & {
82
+ reviewId: string;
83
+ };
84
+ export declare const SecurityStage: {
85
+ readonly CREATED: 0;
86
+ readonly CHECKING: 1;
87
+ readonly ASSESSING: 2;
88
+ readonly REMEDIATING: 3;
89
+ readonly REPORTING: 4;
90
+ readonly COMPLETED: 5;
91
+ readonly FAILED: 6;
92
+ readonly CANCELLED: 7;
93
+ readonly INVALIDATED: 8;
94
+ };
95
+ export declare const SecurityStatus: {
96
+ readonly SKIPPED: 0;
97
+ readonly PENDING: 1;
98
+ readonly RUNNING: 2;
99
+ readonly SUCCEEDED: 3;
100
+ readonly FAILED: 4;
101
+ readonly CANCELLED: 5;
102
+ };
@@ -0,0 +1,47 @@
1
+ /** 安全扫描接口和 CLI 输出共用的数据契约。@author xiuyu.yi */
2
+ import { z } from 'zod';
3
+ const status = z.number().int().min(0).max(5);
4
+ const checkSchema = z.object({
5
+ category: z.string().min(1),
6
+ label: z.string().optional(),
7
+ status,
8
+ statusDesc: z.string().optional(),
9
+ });
10
+ export const securityReviewSchema = z.object({
11
+ found: z.boolean(),
12
+ reviewId: z.string().min(1).optional(),
13
+ reviewSeqNo: z.number().optional(),
14
+ stage: z.number().int().min(0).max(8).optional(),
15
+ stageDesc: z.string().optional(),
16
+ currentCheckCategory: z.string().nullish(),
17
+ checks: z.array(checkSchema).optional(),
18
+ assessmentStatus: status.nullish(),
19
+ remediationRequired: z.boolean().nullish(),
20
+ remediationStatus: status.nullish(),
21
+ reportStatus: status.nullish(),
22
+ reportStatusDesc: z.string().optional(),
23
+ reportResult: z.string().nullish(),
24
+ reportPdfUrl: z.string().nullish(),
25
+ reportGeneratedAt: z.union([z.number(), z.string()]).nullish(),
26
+ invalidatedReason: z.string().nullish(),
27
+ });
28
+ export const SecurityStage = {
29
+ CREATED: 0,
30
+ CHECKING: 1,
31
+ ASSESSING: 2,
32
+ REMEDIATING: 3,
33
+ REPORTING: 4,
34
+ COMPLETED: 5,
35
+ FAILED: 6,
36
+ CANCELLED: 7,
37
+ INVALIDATED: 8,
38
+ };
39
+ export const SecurityStatus = {
40
+ SKIPPED: 0,
41
+ PENDING: 1,
42
+ RUNNING: 2,
43
+ SUCCEEDED: 3,
44
+ FAILED: 4,
45
+ CANCELLED: 5,
46
+ };
47
+ //# sourceMappingURL=security-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-review.js","sourceRoot":"","sources":["../../src/contracts/security-review.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE;IAClC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;IAC1C,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE;IACnC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE;IAC9B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAClC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;IAC9D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;CACxC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;CACN,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;CACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** 与 Glow origin/pre 29112fe11d 同源的技能协议及两种完整接入指令。@author xiuyu.yi */
2
+ import type { ChatInput } from '../api/agent-command-api.js';
3
+ export type AgentFriendlyMethod = 'skill' | 'connector';
4
+ export declare const AGENT_FRIENDLY_DESCRIPTION = "\u8BA9\u4F60\u7684 AI \u5E94\u7528\u4F7F\u7528\u8FD9\u4E2A\u9879\u76EE\uFF0C\u53EF\u4EE5\u628A\u9879\u76EE\u8FDE\u63A5\u5230\u4F60\u6B63\u5728\u4F7F\u7528\u7684 AI \u5E94\u7528\uFF0C\u901A\u8FC7\u5BF9\u8BDD\u67E5\u8BE2\u6570\u636E\u3001\u4F7F\u7528\u9879\u76EE\u529F\u80FD\u3002";
5
+ export declare function agentFriendlyChat(sessionId: string): ChatInput;
6
+ export declare function agentFriendlyPrompt(method: AgentFriendlyMethod, connection: {
7
+ appName: string;
8
+ supabaseUrl: string;
9
+ anonKey: string;
10
+ manifestUrl: string;
11
+ }): string;
@@ -0,0 +1,57 @@
1
+ import { AGENT_FRIENDLY_SKILL_ID } from '../api/agent-friendly-api.js';
2
+ export const AGENT_FRIENDLY_DESCRIPTION = '让你的 AI 应用使用这个项目,可以把项目连接到你正在使用的 AI 应用,通过对话查询数据、使用项目功能。';
3
+ export function agentFriendlyChat(sessionId) {
4
+ return {
5
+ sessionId,
6
+ content: [
7
+ '<command-message>连接 AI 应用</command-message>',
8
+ `<command-name>${AGENT_FRIENDLY_SKILL_ID}</command-name>`,
9
+ '<command-args>请生成「连接 AI 应用」:按照该技能的 SOP 为当前项目准备技能和连接器两种接入方式,并在完成后将该技能状态更新为 ENABLED。</command-args>',
10
+ '<command-type>skill</command-type>',
11
+ ].join('\n'),
12
+ roundExtra: { special_skill_scope: 'official' },
13
+ businessParams: {
14
+ skill_display: {
15
+ skillId: AGENT_FRIENDLY_SKILL_ID,
16
+ name: '连接 AI 应用',
17
+ category: 'technical',
18
+ description: '连接常用的 AI 应用,并在其中使用 superun 部分功能、查询数据。',
19
+ },
20
+ },
21
+ };
22
+ }
23
+ const SKILL_PROMPT = '请把这个 superun 项目作为一个技能接入你当前所在的AI应用,并完成一次真实查询验证。\n\n请按顺序执行:\n1. 先确认当前应用支持安装或导入技能;如果不支持,请明确告诉我,不要声称已经接入。\n2. 确认本机有 Node.js 20 或更高版本,然后执行:\n{{installCommand}}\n3. 先检查项目是否已经存在:\n{{inspectCommand}}\n只有明确提示项目未注册或不存在时,才执行:\n{{initCommand}}\n不要重复初始化已有项目。\n4. 完成登录并刷新项目能力:\n{{loginCommand}}\n{{refreshCommand}}\n5. 从 {{skillUrl}} 下载技能说明,安装到当前应用的技能目录中。保留已有其他技能,不要覆盖无关文件。\n6. 按技能说明执行一次只读的真实项目查询。只有拿到真实结果后才告诉我接入成功;如果失败,请说明失败步骤和错误信息。';
24
+ const CONNECTOR_PROMPT = '请把这个 superun 项目接入你当前所在的智能体或 MCP 客户端,并用一次真实查询确认连接成功。先确认当前客户端支持运行本地 MCP 服务(stdio);如果不支持,请直接说明,不能假装接入成功。然后按以下步骤执行:\n\n1. 检查 Node.js 版本为 20 或更高,然后安装 CLI:\n{{installCommand}}\n\n2. 先检查这个项目是否已经注册:\n{{inspectCommand}}\n如果命令成功,复用现有项目配置,不要重复执行 init,以免覆盖已有设置。只有明确提示项目未注册或不存在时,才执行:\n{{initCommand}}\n初始化后再次运行上述 app show 命令,并记录返回的 id(如有)。\n\n3. 使用浏览器登录:\n{{loginCommand}}\n请让我在浏览器中完成授权,不要要求我在对话中粘贴 access token 或 refresh token。\n\n4. 优先使用当前客户端自带的 MCP 设置页面或命令。如果必须修改配置文件,先确认该客户端官方规定的配置位置和格式,再把下面的本地 MCP 服务参数合并进去;如果客户端使用 mcpServers 结构,可以直接采用下面的配置,否则请转换成作用相同的格式。必须保留已有的其他 MCP 服务,不要覆盖整个配置。如果 app show 返回 id,优先使用该 id 替换下方 args 中 --app 后的名称;如果当前客户端找不到 superun 命令,请先找到它的绝对路径再写入:\n{{mcpConfig}}\n\n5. 让客户端重新加载 MCP 服务并确认已经发现可用工具,然后实际调用 project_status,再执行一次只读项目查询。只有真实查询成功后,才告诉我配置完成;失败时请保留原配置并说明具体原因。不要开启不受限制的高权限模式。每次调用 call_function 前,先展示具体函数名和参数并等待我明确确认;只有确认后才将 userConfirmed 设为 true,未确认不得调用。';
25
+ /** 保留 Glow 的命令形状,转义项目名中的 Shell 特殊字符。 */
26
+ function shellName(name) {
27
+ return '"' + name.replace(/[\\"$`]/g, '\\$&') + '"';
28
+ }
29
+ export function agentFriendlyPrompt(method, connection) {
30
+ const { appName, supabaseUrl, anonKey, manifestUrl } = connection;
31
+ const app = `superun --app ${shellName(appName)} --env production`;
32
+ const login = `${app} login --browser`;
33
+ const refresh = `${app} app refresh`;
34
+ const serverName = `superun-${appName
35
+ .trim()
36
+ .replace(/[^a-zA-Z0-9._-]+/g, '-')
37
+ .replace(/^-+|-+$/g, '') || 'project'}`;
38
+ const values = {
39
+ installCommand: 'npm install -g superun-cli',
40
+ inspectCommand: `${app} app show`,
41
+ initCommand: `superun init --name ${shellName(appName)} --url ${supabaseUrl} --anon-key ${anonKey} --manifest ${manifestUrl} --environment production`,
42
+ loginCommand: method === 'skill' ? login : `${login}\n${refresh}`,
43
+ refreshCommand: refresh,
44
+ skillUrl: 'https://raw.githubusercontent.com/AiGuangInc/superun-cli/main/skills/superun/SKILL.md',
45
+ mcpConfig: JSON.stringify({
46
+ mcpServers: {
47
+ [serverName]: {
48
+ type: 'stdio',
49
+ command: 'superun',
50
+ args: ['--app', appName, '--env', 'production', 'mcp'],
51
+ },
52
+ },
53
+ }, null, 2),
54
+ };
55
+ return (method === 'skill' ? SKILL_PROMPT : CONNECTOR_PROMPT).replace(/{{(\w+)}}/g, (_, key) => values[key]);
56
+ }
57
+ //# sourceMappingURL=agent-friendly-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-friendly-prompts.js","sourceRoot":"","sources":["../../src/conversation/agent-friendly-prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,MAAM,CAAC,MAAM,0BAA0B,GACrC,uDAAuD,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO;QACL,SAAS;QACT,OAAO,EAAE;YACP,6CAA6C;YAC7C,iBAAiB,uBAAuB,iBAAiB;YACzD,mGAAmG;YACnG,oCAAoC;SACrC,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,UAAU,EAAE,EAAE,mBAAmB,EAAE,UAAU,EAAE;QAC/C,cAAc,EAAE;YACd,aAAa,EAAE;gBACb,OAAO,EAAE,uBAAuB;gBAChC,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,WAAW;gBACrB,WAAW,EAAE,uCAAuC;aACrD;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAChB,qaAAqa,CAAC;AACxa,MAAM,gBAAgB,GACpB,02BAA02B,CAAC;AAE72B,wCAAwC;AACxC,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAA2B,EAC3B,UAKC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IAClE,MAAM,GAAG,GAAG,iBAAiB,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACnE,MAAM,KAAK,GAAG,GAAG,GAAG,kBAAkB,CAAC;IACvC,MAAM,OAAO,GAAG,GAAG,GAAG,cAAc,CAAC;IACrC,MAAM,UAAU,GAAG,WACjB,OAAO;SACJ,IAAI,EAAE;SACN,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC;SACjC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAChC,EAAE,CAAC;IACH,MAAM,MAAM,GAA2B;QACrC,cAAc,EAAE,4BAA4B;QAC5C,cAAc,EAAE,GAAG,GAAG,WAAW;QACjC,WAAW,EAAE,uBAAuB,SAAS,CAAC,OAAO,CAAC,UAAU,WAAW,eAAe,OAAO,eAAe,WAAW,2BAA2B;QACtJ,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE;QACjE,cAAc,EAAE,OAAO;QACvB,QAAQ,EAAE,uFAAuF;QACjG,SAAS,EAAE,IAAI,CAAC,SAAS,CACvB;YACE,UAAU,EAAE;gBACV,CAAC,UAAU,CAAC,EAAE;oBACZ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC;iBACvD;aACF;SACF,EACD,IAAI,EACJ,CAAC,CACF;KACF,CAAC;IACF,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CACnE,YAAY,EACZ,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAE,CACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /** Agent 友好的独立结果与引导,不改变普通会话的状态判断。@author xiuyu.yi */
2
+ import type { CreationResult } from '../contracts/cli-output.js';
3
+ import type { SessionView } from '../contracts/node-wire.js';
4
+ import type { CreationRuntime } from '../runtime.js';
5
+ import { AgentFriendlyApi } from '../api/agent-friendly-api.js';
6
+ import { type AgentFriendlyMethod } from './agent-friendly-prompts.js';
7
+ export type AgentFriendlyResult = CreationResult & {
8
+ agentFriendly: {
9
+ stage: 'GENERATING' | 'NOT_READY' | 'READY' | 'INSTRUCTIONS';
10
+ method?: AgentFriendlyMethod;
11
+ prompt?: string;
12
+ methods?: Array<{
13
+ value: AgentFriendlyMethod;
14
+ label: string;
15
+ description: string;
16
+ }>;
17
+ };
18
+ };
19
+ export declare function isAgentFriendlyRound(view: SessionView): boolean;
20
+ export declare function agentFriendlyGuidance(service: CreationRuntime, result: AgentFriendlyResult): AgentFriendlyResult;
21
+ export declare function agentFriendlyNotReady(sessionId: string, notice: string): AgentFriendlyResult;
22
+ export declare function readyAgentFriendly(service: CreationRuntime, api: AgentFriendlyApi, view: SessionView, method?: AgentFriendlyMethod): Promise<AgentFriendlyResult>;
23
+ /** 只包装新命令的等待结果,普通 chat state/wait 保持原有行为。 */
24
+ export declare function projectAgentFriendlyGeneration(service: CreationRuntime, api: AgentFriendlyApi, view: SessionView): Promise<AgentFriendlyResult>;