superun-ai-cli 0.1.27 → 0.1.28
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 +4 -2
- package/README.md +4 -2
- package/dist/api/agent-command-api.d.ts +0 -1
- package/dist/api/agent-command-api.js.map +1 -1
- package/dist/commands/chat/message.d.ts +1 -1
- package/dist/commands/chat/message.js +4 -24
- package/dist/commands/chat/message.js.map +1 -1
- package/package.json +1 -1
- package/dist/api/upload-api.d.ts +0 -8
- package/dist/api/upload-api.js +0 -71
- package/dist/api/upload-api.js.map +0 -1
package/README.en.md
CHANGED
|
@@ -292,9 +292,11 @@ After the user explicitly asks to launch the site, use `chat publish status <ses
|
|
|
292
292
|
|
|
293
293
|
`chat publish start --indexing allow|deny` controls search-engine indexing, not visitor access. Change site visibility with `chat publish visibility`. If the service requires acknowledgment of cloud costs, review them before explicitly passing `--acknowledge-cloud-fee`.
|
|
294
294
|
|
|
295
|
-
##
|
|
295
|
+
## Text input and result files
|
|
296
296
|
|
|
297
|
-
`chat create/send` accepts
|
|
297
|
+
`chat create/send/test/review` accepts plain text only. Neither `--file` nor JSON `attachments` (including an empty array) is supported. Use `--message <text>` or load JSON containing only `content` or `message` with `--input <file>` / `--input -`; the two text fields are mutually exclusive. `--input` reads request JSON and does not upload the file.
|
|
298
|
+
|
|
299
|
+
Put the complete requirements and text material in `content`, for example `{"content":"Full requirements\n\n## Reference material\nFull material text"}`. Hosts should read text files and include their contents in the text, rather than saying “see attachment” or passing only a local path. Report any material that cannot be read instead of claiming it was submitted.
|
|
298
300
|
|
|
299
301
|
`session get --include-attachments` returns visible attachments. `chat state --include-file <name>` reads a named visible file. System files and secret configuration are not returned as result attachments.
|
|
300
302
|
|
package/README.md
CHANGED
|
@@ -420,9 +420,11 @@ superun-ai chat publish visibility <sessionId> private
|
|
|
420
420
|
|
|
421
421
|
`chat publish start --indexing allow|deny` 控制搜索引擎索引,不限制用户访问;站点上下线使用 `chat publish visibility`。若服务端要求确认云服务费用,了解费用后可显式传入 `--acknowledge-cloud-fee`。
|
|
422
422
|
|
|
423
|
-
##
|
|
423
|
+
## 文本输入与结果文件
|
|
424
424
|
|
|
425
|
-
`chat create/send`
|
|
425
|
+
`chat create/send/test/review` 只接受纯文本,不支持 `--file` 或 JSON `attachments`(包括空数组)。通过 `--message <text>` 传入文本,或通过 `--input <file>` / `--input -` 读取仅含 `content` 或 `message` 字段的 JSON,两个文本字段不能同时提供。`--input` 读取的是请求 JSON,不会上传该文件。
|
|
426
|
+
|
|
427
|
+
需求及文本素材应完整放入 `content`,例如 `{"content":"完整需求正文\n\n## 参考素材\n完整素材正文"}`。宿主读取文本文件后应将正文并入文本,不使用“正文见附件”或只传本地路径;不能读取的素材应明确告知用户,不能假装已经提交。
|
|
426
428
|
|
|
427
429
|
`session get --include-attachments` 返回可见附件清单;`chat state --include-file <name>` 读取指定可见附件正文。系统文件和密钥配置文件不会作为结果附件返回。
|
|
428
430
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-command-api.js","sourceRoot":"","sources":["../../src/api/agent-command-api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-command-api.js","sourceRoot":"","sources":["../../src/api/agent-command-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** 创建与续写共用的纯文本消息输入和发送流程。@author xiuyu.yi */
|
|
2
2
|
import type { Command } from 'commander';
|
|
3
3
|
import type { CommandContext } from '../shared.js';
|
|
4
4
|
export declare const appendValue: (value: string, previous: Array<string>) => Array<string>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { object, text } from '../../contracts/value.js';
|
|
3
3
|
import { CliError } from '../../output/exit-codes.js';
|
|
4
|
-
import { uploadAttachment } from '../../api/upload-api.js';
|
|
5
4
|
import { currentRound, roundMessage } from '../../conversation/round-selector.js';
|
|
6
5
|
import { AUTO_TEST_DEFAULT_MESSAGE, AUTO_TEST_OPERATION_KEY, AUTO_TEST_SOURCE_KEY, } from '../../conversation/auto-test.js';
|
|
7
6
|
import { hasCompletedCreationResult } from '../../conversation/next-actions.js';
|
|
@@ -11,25 +10,13 @@ const inputSchema = z
|
|
|
11
10
|
.object({
|
|
12
11
|
content: z.string().optional(),
|
|
13
12
|
message: z.string().optional(),
|
|
14
|
-
attachments: z
|
|
15
|
-
.array(z
|
|
16
|
-
.object({
|
|
17
|
-
name: z.string(),
|
|
18
|
-
mediaType: z.string().optional(),
|
|
19
|
-
content: z.string().optional(),
|
|
20
|
-
url: z.string().url().optional(),
|
|
21
|
-
meta: z.record(z.unknown()).optional(),
|
|
22
|
-
})
|
|
23
|
-
.strict())
|
|
24
|
-
.default([]),
|
|
25
13
|
})
|
|
26
14
|
.strict();
|
|
27
15
|
export const appendValue = (value, previous) => [...previous, value];
|
|
28
16
|
export function messageOptions(command) {
|
|
29
17
|
return withWait(command
|
|
30
18
|
.option('--message <text>', '需求文本')
|
|
31
|
-
.option('--input <file>', 'JSON
|
|
32
|
-
.option('--file <path>', '附加本地文件,可重复使用', appendValue, []));
|
|
19
|
+
.option('--input <file>', '仅含 content 或 message 文本字段的 JSON 文件,- 表示标准输入'));
|
|
33
20
|
}
|
|
34
21
|
export async function sendMessage(context, sessionId, command, check) {
|
|
35
22
|
const options = object(command.opts());
|
|
@@ -56,13 +43,10 @@ export async function sendMessage(context, sessionId, command, check) {
|
|
|
56
43
|
};
|
|
57
44
|
const parsed = inputSchema.safeParse(raw);
|
|
58
45
|
if (!parsed.success || (parsed.data.content !== undefined && parsed.data.message !== undefined))
|
|
59
|
-
throw new CliError('INVALID_ARGUMENT', '输入只接受 content
|
|
46
|
+
throw new CliError('INVALID_ARGUMENT', '输入只接受 content 或 message 文本字段,不能同时提供;不支持附件,请将完整文本放入 content');
|
|
60
47
|
const input = parsed.data, content = input.content ?? input.message ?? '';
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
throw new CliError('INVALID_ARGUMENT', '需求或附件不能为空');
|
|
64
|
-
if (check && !content.trim())
|
|
65
|
-
throw new CliError('INVALID_ARGUMENT', `${label}范围不能为空;省略 --message 可检查刚才完成的内容`);
|
|
48
|
+
if (!content.trim())
|
|
49
|
+
throw new CliError('INVALID_ARGUMENT', check ? `${label}范围不能为空;省略 --message 可检查刚才完成的内容` : '需求文本不能为空');
|
|
66
50
|
const service = await runtime(context, command);
|
|
67
51
|
const previous = sessionId && (options.wait !== false || checkKind) ? await service.load(sessionId) : undefined;
|
|
68
52
|
let operation;
|
|
@@ -83,15 +67,11 @@ export async function sendMessage(context, sessionId, command, check) {
|
|
|
83
67
|
});
|
|
84
68
|
operation = check ?? 'repair';
|
|
85
69
|
}
|
|
86
|
-
const attachments = [...input.attachments];
|
|
87
|
-
for (const file of files)
|
|
88
|
-
attachments.push(await uploadAttachment(service, file));
|
|
89
70
|
const previousMessageId = previous ? roundMessage(previous, currentRound(previous))?.messageId : undefined;
|
|
90
71
|
const create = sessionId ? undefined : await service.config.creation(content);
|
|
91
72
|
const response = await businessWrite(context, service, sessionId, () => service.command.chat({
|
|
92
73
|
sessionId,
|
|
93
74
|
content,
|
|
94
|
-
attachments,
|
|
95
75
|
model: text(options.model),
|
|
96
76
|
workspaceId: text(options.workspaceId),
|
|
97
77
|
...(operation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/commands/chat/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/commands/chat/message.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/api/upload-api.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { CreationRuntime } from '../runtime.js';
|
|
2
|
-
export type InputAttachment = {
|
|
3
|
-
name: string;
|
|
4
|
-
mediaType: string;
|
|
5
|
-
content?: string;
|
|
6
|
-
url?: string;
|
|
7
|
-
};
|
|
8
|
-
export declare function uploadAttachment(service: CreationRuntime, path: string): Promise<InputAttachment>;
|
package/dist/api/upload-api.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/** 文件上传凭据申请、内容上传和审核状态查询。@author xiuyu.yi */
|
|
2
|
-
import { readFile, stat } from 'node:fs/promises';
|
|
3
|
-
import { basename, extname } from 'node:path';
|
|
4
|
-
import { list, object, text, requiredText } from '../contracts/value.js';
|
|
5
|
-
import { pollOperation } from '../commands/shared.js';
|
|
6
|
-
import { CliError } from '../output/exit-codes.js';
|
|
7
|
-
const MIME = {
|
|
8
|
-
txt: 'text/plain',
|
|
9
|
-
md: 'text/markdown',
|
|
10
|
-
json: 'application/json',
|
|
11
|
-
csv: 'text/csv',
|
|
12
|
-
pdf: 'application/pdf',
|
|
13
|
-
png: 'image/png',
|
|
14
|
-
jpg: 'image/jpeg',
|
|
15
|
-
jpeg: 'image/jpeg',
|
|
16
|
-
webp: 'image/webp',
|
|
17
|
-
gif: 'image/gif',
|
|
18
|
-
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
19
|
-
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
20
|
-
};
|
|
21
|
-
export async function uploadAttachment(service, path) {
|
|
22
|
-
const name = basename(path), extension = extname(name).slice(1).toLowerCase();
|
|
23
|
-
const mediaType = MIME[extension];
|
|
24
|
-
if (!mediaType)
|
|
25
|
-
throw new CliError('INVALID_ARGUMENT', '不支持该附件扩展名');
|
|
26
|
-
const info = await stat(path).catch(() => undefined);
|
|
27
|
-
if (!info?.isFile() || info.size > 20 * 1024 * 1024)
|
|
28
|
-
throw new CliError('INVALID_ARGUMENT', '附件必须为不超过 20MB 的普通文件');
|
|
29
|
-
const bytes = await readFile(path);
|
|
30
|
-
if (['txt', 'md', 'json', 'csv'].includes(extension) && bytes.length <= 256_000)
|
|
31
|
-
return { name, mediaType, content: bytes.toString('utf8') };
|
|
32
|
-
const tokenResponse = await service.client.request(`/api/uxa-center/support/FileUpload/getUploadToken?fileType=${encodeURIComponent(extension)}`, undefined, { method: 'GET' });
|
|
33
|
-
const token = object(tokenResponse.data), credential = requiredText(token.token, '上传凭据');
|
|
34
|
-
service.output.registerSecret(credential);
|
|
35
|
-
const encryptedId = requiredText(token.encryptedId, '上传记录');
|
|
36
|
-
const form = new FormData();
|
|
37
|
-
form.append('token', credential);
|
|
38
|
-
form.append('file', new Blob([bytes], { type: mediaType }), name);
|
|
39
|
-
let uploaded;
|
|
40
|
-
try {
|
|
41
|
-
uploaded = await fetch('https://upload-na0.qiniup.com', {
|
|
42
|
-
method: 'POST',
|
|
43
|
-
body: form,
|
|
44
|
-
redirect: 'error',
|
|
45
|
-
signal: service.client.signal
|
|
46
|
-
? AbortSignal.any([service.client.signal, AbortSignal.timeout(60_000)])
|
|
47
|
-
: AbortSignal.timeout(60_000),
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
throw new CliError('OUTCOME_UNKNOWN', '附件上传结果不确定,尚未发送创作消息');
|
|
52
|
-
}
|
|
53
|
-
if (!uploaded.ok)
|
|
54
|
-
throw new CliError('BUSINESS_ERROR', '附件上传失败,尚未发送创作消息');
|
|
55
|
-
const file = await pollOperation(async () => {
|
|
56
|
-
const result = object(await service.client.call('/api/uxa-center/support/FileUpload/queryFileUrl', {
|
|
57
|
-
encryptedIds: [encryptedId],
|
|
58
|
-
}));
|
|
59
|
-
const item = object(list(result.items)[0]);
|
|
60
|
-
if (item.auditStatus === 1 || item.auditStatus === 4)
|
|
61
|
-
return item;
|
|
62
|
-
if (item.auditStatus === 0)
|
|
63
|
-
return item;
|
|
64
|
-
throw new CliError('BUSINESS_ERROR', '附件审核未通过');
|
|
65
|
-
}, (item) => item.auditStatus !== 0, { timeout: 180, signal: service.client.signal });
|
|
66
|
-
const url = text(file.url);
|
|
67
|
-
if (!url)
|
|
68
|
-
throw new CliError('PROTOCOL_ERROR', '附件审核完成但没有可用地址');
|
|
69
|
-
return { name, mediaType, url };
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=upload-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload-api.js","sourceRoot":"","sources":["../../src/api/upload-api.ts"],"names":[],"mappings":"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"}
|