superun-ai-cli 0.1.44 → 0.1.65

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 (125) hide show
  1. package/README.en.md +189 -5
  2. package/README.md +208 -7
  3. package/dist/api/agent-query-api.d.ts +27 -0
  4. package/dist/api/agent-query-api.js +31 -0
  5. package/dist/api/agent-query-api.js.map +1 -1
  6. package/dist/api/bill-query-api.d.ts +61 -0
  7. package/dist/api/bill-query-api.js +92 -0
  8. package/dist/api/bill-query-api.js.map +1 -0
  9. package/dist/api/managed-agent-resource-api.d.ts +19 -0
  10. package/dist/api/managed-agent-resource-api.js +63 -0
  11. package/dist/api/managed-agent-resource-api.js.map +1 -0
  12. package/dist/api/market-query-api.d.ts +74 -0
  13. package/dist/api/market-query-api.js +145 -0
  14. package/dist/api/market-query-api.js.map +1 -0
  15. package/dist/api/order-query-api.d.ts +47 -0
  16. package/dist/api/order-query-api.js +96 -0
  17. package/dist/api/order-query-api.js.map +1 -0
  18. package/dist/api/ppt-api.d.ts +258 -0
  19. package/dist/api/ppt-api.js +111 -0
  20. package/dist/api/ppt-api.js.map +1 -0
  21. package/dist/api/publish-api.d.ts +1 -0
  22. package/dist/api/publish-api.js +3 -0
  23. package/dist/api/publish-api.js.map +1 -1
  24. package/dist/api/security-review-api.d.ts +1 -1
  25. package/dist/api/security-review-api.js +15 -1
  26. package/dist/api/security-review-api.js.map +1 -1
  27. package/dist/api/site-analysis-api.d.ts +85 -0
  28. package/dist/api/site-analysis-api.js +165 -0
  29. package/dist/api/site-analysis-api.js.map +1 -0
  30. package/dist/auth/browser-login.d.ts +1 -0
  31. package/dist/auth/browser-login.js +25 -2
  32. package/dist/auth/browser-login.js.map +1 -1
  33. package/dist/auth/credential-status.d.ts +4 -0
  34. package/dist/auth/credential-status.js +19 -0
  35. package/dist/auth/credential-status.js.map +1 -0
  36. package/dist/commands/agent/index.d.ts +3 -0
  37. package/dist/commands/agent/index.js +68 -0
  38. package/dist/commands/agent/index.js.map +1 -0
  39. package/dist/commands/auth/login.js +8 -3
  40. package/dist/commands/auth/login.js.map +1 -1
  41. package/dist/commands/auth/status.d.ts +1 -1
  42. package/dist/commands/auth/status.js +7 -2
  43. package/dist/commands/auth/status.js.map +1 -1
  44. package/dist/commands/bill/index.d.ts +3 -0
  45. package/dist/commands/bill/index.js +106 -0
  46. package/dist/commands/bill/index.js.map +1 -0
  47. package/dist/commands/chat/create.js +1 -0
  48. package/dist/commands/chat/create.js.map +1 -1
  49. package/dist/commands/chat/interaction.js +39 -6
  50. package/dist/commands/chat/interaction.js.map +1 -1
  51. package/dist/commands/chat/message.js +57 -33
  52. package/dist/commands/chat/message.js.map +1 -1
  53. package/dist/commands/chat/publish.js +72 -11
  54. package/dist/commands/chat/publish.js.map +1 -1
  55. package/dist/commands/chat/security.d.ts +1 -1
  56. package/dist/commands/chat/security.js +73 -29
  57. package/dist/commands/chat/security.js.map +1 -1
  58. package/dist/commands/independent-creation.d.ts +6 -0
  59. package/dist/commands/independent-creation.js +140 -0
  60. package/dist/commands/independent-creation.js.map +1 -0
  61. package/dist/commands/market/index.d.ts +3 -0
  62. package/dist/commands/market/index.js +111 -0
  63. package/dist/commands/market/index.js.map +1 -0
  64. package/dist/commands/order/index.d.ts +3 -0
  65. package/dist/commands/order/index.js +41 -0
  66. package/dist/commands/order/index.js.map +1 -0
  67. package/dist/commands/ppt/index.d.ts +3 -0
  68. package/dist/commands/ppt/index.js +159 -0
  69. package/dist/commands/ppt/index.js.map +1 -0
  70. package/dist/commands/session/diff.d.ts +4 -0
  71. package/dist/commands/session/diff.js +12 -0
  72. package/dist/commands/session/diff.js.map +1 -0
  73. package/dist/commands/session/history.d.ts +3 -0
  74. package/dist/commands/session/history.js +50 -0
  75. package/dist/commands/session/history.js.map +1 -0
  76. package/dist/commands/session/index.js +4 -0
  77. package/dist/commands/session/index.js.map +1 -1
  78. package/dist/commands/shared.d.ts +2 -2
  79. package/dist/commands/shared.js +5 -4
  80. package/dist/commands/shared.js.map +1 -1
  81. package/dist/commands/site/index.d.ts +3 -0
  82. package/dist/commands/site/index.js +113 -0
  83. package/dist/commands/site/index.js.map +1 -0
  84. package/dist/commands/system/version.js +13 -2
  85. package/dist/commands/system/version.js.map +1 -1
  86. package/dist/conversation/agent-friendly.js +2 -2
  87. package/dist/conversation/managed-agent-create-only.d.ts +26 -0
  88. package/dist/conversation/managed-agent-create-only.js +287 -0
  89. package/dist/conversation/managed-agent-create-only.js.map +1 -0
  90. package/dist/conversation/managed-agent-entry.d.ts +8 -8
  91. package/dist/conversation/ppt-preflight.d.ts +13 -0
  92. package/dist/conversation/ppt-preflight.js +68 -0
  93. package/dist/conversation/ppt-preflight.js.map +1 -0
  94. package/dist/conversation/project-check-preflight.d.ts +22 -0
  95. package/dist/conversation/project-check-preflight.js +89 -0
  96. package/dist/conversation/project-check-preflight.js.map +1 -0
  97. package/dist/conversation/publish-preflight.d.ts +44 -0
  98. package/dist/conversation/publish-preflight.js +123 -0
  99. package/dist/conversation/publish-preflight.js.map +1 -0
  100. package/dist/conversation/security-entry.d.ts +14 -0
  101. package/dist/conversation/security-entry.js +49 -0
  102. package/dist/conversation/security-entry.js.map +1 -0
  103. package/dist/conversation/security-review.d.ts +1 -1
  104. package/dist/conversation/security-review.js +1 -1
  105. package/dist/conversation/security-review.js.map +1 -1
  106. package/dist/conversation/snapshot-diff.d.ts +44 -0
  107. package/dist/conversation/snapshot-diff.js +134 -0
  108. package/dist/conversation/snapshot-diff.js.map +1 -0
  109. package/dist/interactions/managed-agent-model.d.ts +3 -0
  110. package/dist/interactions/managed-agent-model.js +2 -0
  111. package/dist/interactions/managed-agent-model.js.map +1 -1
  112. package/dist/interactions/managed-agent-wizard.d.ts +1 -1
  113. package/dist/interactions/managed-agent-wizard.js +38 -6
  114. package/dist/interactions/managed-agent-wizard.js.map +1 -1
  115. package/dist/program.js +12 -0
  116. package/dist/program.js.map +1 -1
  117. package/dist/runtime.d.ts +1 -1
  118. package/dist/runtime.js +2 -2
  119. package/dist/runtime.js.map +1 -1
  120. package/dist/site-analysis/pagespeed-report.d.ts +48 -0
  121. package/dist/site-analysis/pagespeed-report.js +163 -0
  122. package/dist/site-analysis/pagespeed-report.js.map +1 -0
  123. package/dist/transport/http-client.js +17 -3
  124. package/dist/transport/http-client.js.map +1 -1
  125. package/package.json +1 -1
@@ -0,0 +1,96 @@
1
+ /** 当前登录用户的购买订单查询,只保留展示所需字段。@author xiuyu.yi */
2
+ import { z } from 'zod';
3
+ import { parseWire } from '../contracts/node-wire.js';
4
+ import { CliError } from '../output/exit-codes.js';
5
+ const amount = z.number().int().safe().nullish();
6
+ const timestamp = z.number().int().safe().nullish();
7
+ const optionalText = z.string().nullish();
8
+ const orderPageSchema = z.object({
9
+ total: z.number().int().nonnegative().safe(),
10
+ items: z.array(z.object({
11
+ orderInfo: z.object({
12
+ orderNo: z.string().min(1),
13
+ status: z.number().int().safe().nullish(),
14
+ currencyCode: optionalText,
15
+ subtotal: amount,
16
+ discount: amount,
17
+ total: amount,
18
+ createdAt: timestamp,
19
+ bookedAt: timestamp,
20
+ paidAt: timestamp,
21
+ cancelledAt: timestamp,
22
+ expiringAt: timestamp,
23
+ invoiceStatus: z.number().int().safe().nullish(),
24
+ invoiceAppliedAt: timestamp,
25
+ invoiceDownloadUrl: optionalText,
26
+ invoiceOfdUrl: optionalText,
27
+ latestEffectiveInvoice: z
28
+ .object({
29
+ invoiceCode: optionalText,
30
+ invoiceNum: optionalText,
31
+ invoiceDate: timestamp,
32
+ currencyCode: optionalText,
33
+ invoiceAmount: amount,
34
+ })
35
+ .nullish(),
36
+ }),
37
+ orderItems: z.array(z.object({
38
+ title: optionalText,
39
+ num: z.number().int().safe().nullish(),
40
+ skuProperty: z.array(z.object({ k: optionalText, v: optionalText })).nullish(),
41
+ unitPrice: amount,
42
+ subTotal: amount,
43
+ total: amount,
44
+ })),
45
+ })),
46
+ });
47
+ const ORDER_STATUS_NAMES = {
48
+ 0: '初始化',
49
+ 10: '待支付',
50
+ 20: '已支付',
51
+ 50: '已完成',
52
+ 60: '已关闭',
53
+ 70: '已取消',
54
+ };
55
+ const INVOICE_STATUS_NAMES = {
56
+ 0: '未开票',
57
+ 1: '已申请',
58
+ 2: '开票成功',
59
+ 3: '开票中',
60
+ 4: '开票失败',
61
+ 5: '调整中',
62
+ 6: '已全额红冲',
63
+ };
64
+ function statusName(code, names) {
65
+ return code == null ? '未返回状态' : (names[code] ?? `未知状态(${code})`);
66
+ }
67
+ export class OrderQueryApi {
68
+ client;
69
+ constructor(client) {
70
+ this.client = client;
71
+ }
72
+ async page(page, pageSize, status) {
73
+ const result = parseWire(orderPageSchema, await this.client.call('/api/uxa-center/ecommerce/OrderQuery/pageOrder', {
74
+ page,
75
+ pageSize,
76
+ ...(status === undefined ? {} : { status }),
77
+ }));
78
+ if (result.items.length > pageSize || result.items.length > result.total)
79
+ throw new CliError('PROTOCOL_ERROR', '订单分页返回的数量与页大小或总数不一致');
80
+ if (status !== undefined && result.items.some((item) => item.orderInfo.status !== status))
81
+ throw new CliError('PROTOCOL_ERROR', '订单返回状态与本次筛选条件不一致');
82
+ return {
83
+ total: result.total,
84
+ // Zod 在每层对象剔除未声明字段,避免透出身份、支付对象和完整发票资料。
85
+ items: result.items.map((item) => ({
86
+ ...item,
87
+ orderInfo: {
88
+ ...item.orderInfo,
89
+ statusName: statusName(item.orderInfo.status, ORDER_STATUS_NAMES),
90
+ invoiceStatusName: statusName(item.orderInfo.invoiceStatus, INVOICE_STATUS_NAMES),
91
+ },
92
+ })),
93
+ };
94
+ }
95
+ }
96
+ //# sourceMappingURL=order-query-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-query-api.js","sourceRoot":"","sources":["../../src/api/order-query-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,258 @@
1
+ /** 项目级网页幻灯片协议,生成与新鲜度探测严格区分读写。@author xiuyu.yi */
2
+ import { z } from 'zod';
3
+ import type { ApiClient } from '../transport/api-client.js';
4
+ declare const querySchema: z.ZodObject<{
5
+ routePath: z.ZodLiteral<"__project__">;
6
+ status: z.ZodString;
7
+ deck: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8
+ deckId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9
+ routePath: z.ZodLiteral<"__project__">;
10
+ viewport: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
+ status: z.ZodString;
12
+ generationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13
+ type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14
+ playback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
15
+ kind: z.ZodString;
16
+ }, "strip", z.ZodTypeAny, {
17
+ kind: string;
18
+ }, {
19
+ kind: string;
20
+ }>>>;
21
+ updatedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
22
+ slides: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
23
+ id: z.ZodString;
24
+ title: z.ZodString;
25
+ order: z.ZodNumber;
26
+ routePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
+ displayMode: z.ZodString;
28
+ locator: z.ZodOptional<z.ZodNullable<z.ZodObject<{
29
+ superunId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
+ selector: z.ZodOptional<z.ZodNullable<z.ZodString>>;
31
+ xpath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ textHint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
+ tagName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ superunId?: string | null | undefined;
36
+ selector?: string | null | undefined;
37
+ xpath?: string | null | undefined;
38
+ textHint?: string | null | undefined;
39
+ tagName?: string | null | undefined;
40
+ }, {
41
+ superunId?: string | null | undefined;
42
+ selector?: string | null | undefined;
43
+ xpath?: string | null | undefined;
44
+ textHint?: string | null | undefined;
45
+ tagName?: string | null | undefined;
46
+ }>>>;
47
+ }, "strip", z.ZodTypeAny, {
48
+ id: string;
49
+ title: string;
50
+ order: number;
51
+ displayMode: string;
52
+ routePath?: string | null | undefined;
53
+ locator?: {
54
+ superunId?: string | null | undefined;
55
+ selector?: string | null | undefined;
56
+ xpath?: string | null | undefined;
57
+ textHint?: string | null | undefined;
58
+ tagName?: string | null | undefined;
59
+ } | null | undefined;
60
+ }, {
61
+ id: string;
62
+ title: string;
63
+ order: number;
64
+ displayMode: string;
65
+ routePath?: string | null | undefined;
66
+ locator?: {
67
+ superunId?: string | null | undefined;
68
+ selector?: string | null | undefined;
69
+ xpath?: string | null | undefined;
70
+ textHint?: string | null | undefined;
71
+ tagName?: string | null | undefined;
72
+ } | null | undefined;
73
+ }>, "many">>>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ status: string;
76
+ routePath: "__project__";
77
+ type?: string | null | undefined;
78
+ updatedAt?: number | null | undefined;
79
+ deckId?: string | null | undefined;
80
+ viewport?: string | null | undefined;
81
+ generationId?: string | null | undefined;
82
+ playback?: {
83
+ kind: string;
84
+ } | null | undefined;
85
+ slides?: {
86
+ id: string;
87
+ title: string;
88
+ order: number;
89
+ displayMode: string;
90
+ routePath?: string | null | undefined;
91
+ locator?: {
92
+ superunId?: string | null | undefined;
93
+ selector?: string | null | undefined;
94
+ xpath?: string | null | undefined;
95
+ textHint?: string | null | undefined;
96
+ tagName?: string | null | undefined;
97
+ } | null | undefined;
98
+ }[] | null | undefined;
99
+ }, {
100
+ status: string;
101
+ routePath: "__project__";
102
+ type?: string | null | undefined;
103
+ updatedAt?: number | null | undefined;
104
+ deckId?: string | null | undefined;
105
+ viewport?: string | null | undefined;
106
+ generationId?: string | null | undefined;
107
+ playback?: {
108
+ kind: string;
109
+ } | null | undefined;
110
+ slides?: {
111
+ id: string;
112
+ title: string;
113
+ order: number;
114
+ displayMode: string;
115
+ routePath?: string | null | undefined;
116
+ locator?: {
117
+ superunId?: string | null | undefined;
118
+ selector?: string | null | undefined;
119
+ xpath?: string | null | undefined;
120
+ textHint?: string | null | undefined;
121
+ tagName?: string | null | undefined;
122
+ } | null | undefined;
123
+ }[] | null | undefined;
124
+ }>>>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ status: string;
127
+ routePath: "__project__";
128
+ deck?: {
129
+ status: string;
130
+ routePath: "__project__";
131
+ type?: string | null | undefined;
132
+ updatedAt?: number | null | undefined;
133
+ deckId?: string | null | undefined;
134
+ viewport?: string | null | undefined;
135
+ generationId?: string | null | undefined;
136
+ playback?: {
137
+ kind: string;
138
+ } | null | undefined;
139
+ slides?: {
140
+ id: string;
141
+ title: string;
142
+ order: number;
143
+ displayMode: string;
144
+ routePath?: string | null | undefined;
145
+ locator?: {
146
+ superunId?: string | null | undefined;
147
+ selector?: string | null | undefined;
148
+ xpath?: string | null | undefined;
149
+ textHint?: string | null | undefined;
150
+ tagName?: string | null | undefined;
151
+ } | null | undefined;
152
+ }[] | null | undefined;
153
+ } | null | undefined;
154
+ }, {
155
+ status: string;
156
+ routePath: "__project__";
157
+ deck?: {
158
+ status: string;
159
+ routePath: "__project__";
160
+ type?: string | null | undefined;
161
+ updatedAt?: number | null | undefined;
162
+ deckId?: string | null | undefined;
163
+ viewport?: string | null | undefined;
164
+ generationId?: string | null | undefined;
165
+ playback?: {
166
+ kind: string;
167
+ } | null | undefined;
168
+ slides?: {
169
+ id: string;
170
+ title: string;
171
+ order: number;
172
+ displayMode: string;
173
+ routePath?: string | null | undefined;
174
+ locator?: {
175
+ superunId?: string | null | undefined;
176
+ selector?: string | null | undefined;
177
+ xpath?: string | null | undefined;
178
+ textHint?: string | null | undefined;
179
+ tagName?: string | null | undefined;
180
+ } | null | undefined;
181
+ }[] | null | undefined;
182
+ } | null | undefined;
183
+ }>;
184
+ export type PptDeckQuery = z.infer<typeof querySchema>;
185
+ export declare function requirePlayablePpt(result: PptDeckQuery, generationId: string): {
186
+ status: string;
187
+ routePath: "__project__";
188
+ type?: string | null | undefined;
189
+ updatedAt?: number | null | undefined;
190
+ deckId?: string | null | undefined;
191
+ viewport?: string | null | undefined;
192
+ generationId?: string | null | undefined;
193
+ playback?: {
194
+ kind: string;
195
+ } | null | undefined;
196
+ slides?: {
197
+ id: string;
198
+ title: string;
199
+ order: number;
200
+ displayMode: string;
201
+ routePath?: string | null | undefined;
202
+ locator?: {
203
+ superunId?: string | null | undefined;
204
+ selector?: string | null | undefined;
205
+ xpath?: string | null | undefined;
206
+ textHint?: string | null | undefined;
207
+ tagName?: string | null | undefined;
208
+ } | null | undefined;
209
+ }[] | null | undefined;
210
+ };
211
+ export declare class PptApi {
212
+ private readonly client;
213
+ constructor(client: ApiClient);
214
+ query(sessionId: string): Promise<{
215
+ status: string;
216
+ routePath: "__project__";
217
+ deck?: {
218
+ status: string;
219
+ routePath: "__project__";
220
+ type?: string | null | undefined;
221
+ updatedAt?: number | null | undefined;
222
+ deckId?: string | null | undefined;
223
+ viewport?: string | null | undefined;
224
+ generationId?: string | null | undefined;
225
+ playback?: {
226
+ kind: string;
227
+ } | null | undefined;
228
+ slides?: {
229
+ id: string;
230
+ title: string;
231
+ order: number;
232
+ displayMode: string;
233
+ routePath?: string | null | undefined;
234
+ locator?: {
235
+ superunId?: string | null | undefined;
236
+ selector?: string | null | undefined;
237
+ xpath?: string | null | undefined;
238
+ textHint?: string | null | undefined;
239
+ tagName?: string | null | undefined;
240
+ } | null | undefined;
241
+ }[] | null | undefined;
242
+ } | null | undefined;
243
+ }>;
244
+ status(sessionId: string): Promise<{
245
+ status: string;
246
+ routePath: "__project__";
247
+ updatedAt?: number | null | undefined;
248
+ deckId?: string | null | undefined;
249
+ generationId?: string | null | undefined;
250
+ }>;
251
+ ensure(sessionId: string, sourceMessageId: string, checkOnly: boolean): Promise<{
252
+ status: string;
253
+ generationId: string;
254
+ mode?: string | null | undefined;
255
+ changed?: boolean | null | undefined;
256
+ }>;
257
+ }
258
+ export {};
@@ -0,0 +1,111 @@
1
+ /** 项目级网页幻灯片协议,生成与新鲜度探测严格区分读写。@author xiuyu.yi */
2
+ import { z } from 'zod';
3
+ import { parseWire } from '../contracts/node-wire.js';
4
+ import { CliError } from '../output/exit-codes.js';
5
+ const PREFIX = '/api/uxa-center/agent/SlideDeck';
6
+ const optionalText = z.string().nullish();
7
+ const locatorSchema = z.object({
8
+ superunId: optionalText,
9
+ selector: optionalText,
10
+ xpath: optionalText,
11
+ textHint: optionalText,
12
+ tagName: optionalText,
13
+ });
14
+ const slideSchema = z.object({
15
+ id: z.string().min(1),
16
+ title: z.string(),
17
+ order: z.number().int().nonnegative().safe(),
18
+ routePath: optionalText,
19
+ displayMode: z.string(),
20
+ locator: locatorSchema.nullish(),
21
+ });
22
+ const deckSchema = z.object({
23
+ deckId: optionalText,
24
+ routePath: z.literal('__project__'),
25
+ viewport: optionalText,
26
+ status: z.string().min(1),
27
+ generationId: optionalText,
28
+ type: optionalText,
29
+ playback: z.object({ kind: z.string() }).nullish(),
30
+ updatedAt: z.number().int().safe().nullish(),
31
+ slides: z.array(slideSchema).nullish(),
32
+ });
33
+ const querySchema = z.object({
34
+ routePath: z.literal('__project__'),
35
+ status: z.string().min(1),
36
+ deck: deckSchema.nullish(),
37
+ });
38
+ const statusSchema = z.object({
39
+ routePath: z.literal('__project__'),
40
+ status: z.string().min(1),
41
+ deckId: optionalText,
42
+ generationId: optionalText,
43
+ updatedAt: z.number().int().safe().nullish(),
44
+ });
45
+ const ackSchema = z.object({
46
+ generationId: z.string().min(1),
47
+ status: z.string().min(1),
48
+ mode: optionalText,
49
+ changed: z.boolean().nullish(),
50
+ });
51
+ export function requirePlayablePpt(result, generationId) {
52
+ const deck = result.deck;
53
+ if (result.status !== 'ready' ||
54
+ !deck ||
55
+ deck.status !== 'ready' ||
56
+ deck.generationId !== generationId ||
57
+ !deck.deckId ||
58
+ deck.viewport !== 'desktop' ||
59
+ deck.type !== 'ppt' ||
60
+ !deck.slides?.length ||
61
+ !['web-node-present', 'ppt-node-present', 'ppt-native-controls'].includes(deck.playback?.kind ?? ''))
62
+ throw new CliError('STALE_INTERACTION', '尚未取得本次 generationId 对应的可播放 PPT,请继续查询原任务', {
63
+ generationId,
64
+ observedGenerationId: deck?.generationId ?? null,
65
+ status: result.status,
66
+ });
67
+ const ids = new Set();
68
+ for (const [index, slide] of deck.slides.entries()) {
69
+ const locator = slide.locator;
70
+ if (ids.has(slide.id) ||
71
+ slide.order !== index ||
72
+ slide.displayMode !== 'present' ||
73
+ !locator ||
74
+ !Object.values(locator).some((value) => typeof value === 'string' && value.trim()))
75
+ throw new CliError('PROTOCOL_ERROR', 'PPT 幻灯片顺序或定位信息不完整,不能确认可播放');
76
+ ids.add(slide.id);
77
+ }
78
+ return deck;
79
+ }
80
+ export class PptApi {
81
+ client;
82
+ constructor(client) {
83
+ this.client = client;
84
+ }
85
+ async query(sessionId) {
86
+ return parseWire(querySchema, await this.client.call(`${PREFIX}/querySlideDeck`, { sessionId }));
87
+ }
88
+ async status(sessionId) {
89
+ return parseWire(statusSchema, await this.client.call(`${PREFIX}/querySlideDeckStatus`, { sessionId }));
90
+ }
91
+ async ensure(sessionId, sourceMessageId, checkOnly) {
92
+ const raw = await this.client.call(`${PREFIX}/triggerSlideDeckGeneration`, {
93
+ sessionId,
94
+ messageId: sourceMessageId,
95
+ type: 'ppt',
96
+ ...(checkOnly ? { checkOnly: true } : {}),
97
+ }, !checkOnly);
98
+ try {
99
+ const ack = parseWire(ackSchema, raw);
100
+ if (!checkOnly && !['ready', 'generating', 'failed'].includes(ack.status))
101
+ throw new CliError('PROTOCOL_ERROR', 'PPT生成写请求返回了未知状态');
102
+ return ack;
103
+ }
104
+ catch (error) {
105
+ if (!checkOnly)
106
+ throw new CliError('OUTCOME_UNKNOWN', 'PPT 生成请求已发出,但未取得完整回执;请先查询原作品,勿重复生成', { sessionId, sourceMessageId, retryable: false });
107
+ throw error;
108
+ }
109
+ }
110
+ }
111
+ //# sourceMappingURL=ppt-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ppt-api.js","sourceRoot":"","sources":["../../src/api/ppt-api.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { JsonObject } from '../contracts/value.js';
4
4
  export declare class PublishApi {
5
5
  private readonly client;
6
6
  constructor(client: ApiClient);
7
+ preflightCost(sessionId: string): Promise<unknown>;
7
8
  status(sessionId: string): Promise<JsonObject>;
8
9
  start(input: {
9
10
  sessionId: string;
@@ -4,6 +4,9 @@ export class PublishApi {
4
4
  constructor(client) {
5
5
  this.client = client;
6
6
  }
7
+ async preflightCost(sessionId) {
8
+ return this.client.call('/api/uxa-center/agent/AgentCommand/prePublish', { sessionId });
9
+ }
7
10
  async status(sessionId) {
8
11
  return object(await this.client.call('/api/uxa-center/agent/AgentQuery/queryPublishLogInfo', { sessionId }));
9
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"publish-api.js","sourceRoot":"","sources":["../../src/api/publish-api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAClD,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE,EAAE,SAAS,EAAE,CAAC,CAC9F,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KASX;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,QAAiB;QACnD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,uDAAuD,EACvD,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAC7C,IAAI,CACL,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"publish-api.js","sourceRoot":"","sources":["../../src/api/publish-api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAClD,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE,EAAE,SAAS,EAAE,CAAC,CAC9F,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KASX;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,QAAiB;QACnD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,uDAAuD,EACvD,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAC7C,IAAI,CACL,CAAC;IACJ,CAAC;CACF"}
@@ -16,5 +16,5 @@ export declare class SecurityReviewApi {
16
16
  start(sessionId: string, checks: string[]): Promise<SecurityReviewView>;
17
17
  query(sessionId: string, reviewId?: string, includeResults?: boolean): Promise<SecurityReviewView>;
18
18
  cancel(sessionId: string, reviewId: string): Promise<void>;
19
- retryReport(sessionId: string, reviewId: string): Promise<void>;
19
+ retryReport(sessionId: string, reviewId: string): Promise<SecurityReviewView>;
20
20
  }
@@ -69,7 +69,21 @@ export class SecurityReviewApi {
69
69
  await this.client.call(`${PREFIX}/cancelSecurityReview`, { sessionId, reviewId }, true);
70
70
  }
71
71
  async retryReport(sessionId, reviewId) {
72
- await this.client.call(`${PREFIX}/retrySecurityAuditReport`, { sessionId, reviewId }, true);
72
+ const response = await this.client.call(`${PREFIX}/retrySecurityAuditReport`, { sessionId, reviewId }, true);
73
+ try {
74
+ const review = parseWire(securityReviewSchema, response);
75
+ if (!review.found || review.reviewId !== reviewId || review.stage === undefined)
76
+ throw new Error('回执未匹配');
77
+ this.startReceipt = { sessionId, review };
78
+ return review;
79
+ }
80
+ catch {
81
+ throw new CliError('OUTCOME_UNKNOWN', '报告重试回执未确认,请查询同一记录,勿重复提交', {
82
+ sessionId,
83
+ reviewId,
84
+ retryable: false,
85
+ });
86
+ }
73
87
  }
74
88
  }
75
89
  //# sourceMappingURL=security-review-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"security-review-api.js","sourceRoot":"","sources":["../../src/api/security-review-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security-review-api.js","sourceRoot":"","sources":["../../src/api/security-review-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type { ApiClient } from '../transport/api-client.js';
2
+ export type TrafficRange = 'today' | 'yesterday' | 'last7Days';
3
+ export declare const TRAFFIC_RANGE_DESCRIPTIONS: Record<TrafficRange, string>;
4
+ export declare class SiteAnalysisApi {
5
+ private readonly client;
6
+ constructor(client: ApiClient);
7
+ traffic(sessionId: string, range: TrafficRange): Promise<{
8
+ availability: "UNKNOWN" | "AVAILABLE" | "PARTIAL";
9
+ traffic: {
10
+ currentVisitors: {
11
+ availability: string;
12
+ value: unknown;
13
+ };
14
+ series: {
15
+ availability: string;
16
+ items: {
17
+ date: string;
18
+ visits: number;
19
+ pageviews: number;
20
+ }[];
21
+ };
22
+ lists: {
23
+ [k: string]: {
24
+ availability: string;
25
+ items: {
26
+ value: number;
27
+ label: string;
28
+ }[];
29
+ };
30
+ };
31
+ };
32
+ }>;
33
+ performance(sessionId: string): Promise<{
34
+ availability: string;
35
+ reports: never[];
36
+ recordedAt?: undefined;
37
+ strategy?: undefined;
38
+ statusMask?: undefined;
39
+ } | {
40
+ availability: "UNKNOWN" | "AVAILABLE" | "PARTIAL";
41
+ recordedAt: number | null;
42
+ strategy: string | null;
43
+ statusMask: number;
44
+ reports: import("../site-analysis/pagespeed-report.js").PageSpeedReport[];
45
+ }>;
46
+ overview(sessionId: string): Promise<{
47
+ latestResults: {
48
+ selected: boolean;
49
+ statusExplanation: string;
50
+ status: string;
51
+ endpointId: string;
52
+ httpStatus?: number | null | undefined;
53
+ latencyMs?: number | null | undefined;
54
+ checkedAt?: number | null | undefined;
55
+ }[];
56
+ sessionId: string;
57
+ published: boolean;
58
+ selectedEndpointIds: string[];
59
+ candidates: {
60
+ id: string;
61
+ path?: string | null | undefined;
62
+ method?: string | null | undefined;
63
+ displayName?: string | null | undefined;
64
+ targetType?: string | null | undefined;
65
+ monitorable?: boolean | null | undefined;
66
+ blockedReasonCode?: string | null | undefined;
67
+ }[];
68
+ status?: string | null | undefined;
69
+ notice?: string | null | undefined;
70
+ currentPublishedSnapshotId?: number | null | undefined;
71
+ currentPublishedVersion?: string | null | undefined;
72
+ planId?: string | null | undefined;
73
+ frequency?: string | null | undefined;
74
+ outdated?: boolean | null | undefined;
75
+ lastRunAt?: number | null | undefined;
76
+ nextRunAt?: number | null | undefined;
77
+ }>;
78
+ reports(sessionId: string, page: number, pageSize: number): Promise<{
79
+ id: string;
80
+ createdAt: number;
81
+ summary: string;
82
+ weekStart: number;
83
+ weekEnd: number;
84
+ }[]>;
85
+ }