@cliangdev/conductor 0.17.0 → 0.19.0
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/assets/claude/skills/conductor-publisher/SKILL.md +104 -0
- package/assets/cli-manifest.json +69 -5
- package/dist/lib/mp4-probe.d.ts +20 -0
- package/dist/lib/mp4-probe.d.ts.map +1 -0
- package/dist/lib/mp4-probe.js +163 -0
- package/dist/lib/mp4-probe.js.map +1 -0
- package/dist/lib/plugin-assets.d.ts.map +1 -1
- package/dist/lib/plugin-assets.js +1 -0
- package/dist/lib/plugin-assets.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +199 -24
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools/issues.d.ts.map +1 -1
- package/dist/mcp/tools/issues.js +6 -10
- package/dist/mcp/tools/issues.js.map +1 -1
- package/dist/mcp/tools/marketing.d.ts +13 -2
- package/dist/mcp/tools/marketing.d.ts.map +1 -1
- package/dist/mcp/tools/marketing.js +99 -9
- package/dist/mcp/tools/marketing.js.map +1 -1
- package/dist/mcp/tools/posts.d.ts +146 -0
- package/dist/mcp/tools/posts.d.ts.map +1 -0
- package/dist/mcp/tools/posts.js +427 -0
- package/dist/mcp/tools/posts.js.map +1 -0
- package/dist/mcp/tools/workflows.d.ts.map +1 -1
- package/dist/mcp/tools/workflows.js +5 -0
- package/dist/mcp/tools/workflows.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import { apiGet, apiPost, isClientError } from '../api.js';
|
|
2
|
+
import { createWorkItem, updateWorkItem, listWorkItems } from './issues.js';
|
|
3
|
+
import { listWorkflows, transitionWorkItem } from './workflows.js';
|
|
4
|
+
import { listPublishTargets, setPublishTargets, uploadAsset } from './marketing.js';
|
|
5
|
+
/**
|
|
6
|
+
* The publishing pipeline the way an agent wants to drive it: one call to create, schedule and submit a
|
|
7
|
+
* Post; one call to ask where it stands; one call to hand it to a reviewer; one to approve it.
|
|
8
|
+
*
|
|
9
|
+
* Everything here composes the lower-level tools (create_work_item, upload_asset, set_publish_targets,
|
|
10
|
+
* transition_work_item) and the backend's publish preflight — nothing is decided client-side that the
|
|
11
|
+
* server also decides. The three rules this file exists to enforce on the agent's behalf:
|
|
12
|
+
*
|
|
13
|
+
* - discover, never guess: accounts are resolved by name from the project's own list, the Workflow from
|
|
14
|
+
* what publishes, the asset type from the Workflow, the fire time from the server's `earliestFireTime`;
|
|
15
|
+
* - validate before moving: the preflight runs before any status change, and its blockers come back in
|
|
16
|
+
* the same response instead of surfacing as a 422 four calls later;
|
|
17
|
+
* - end with the confirmation table: what was created, where it goes, when, and what happens next.
|
|
18
|
+
*/
|
|
19
|
+
const V2_PROJECT = (config) => `/api/v2/projects/${config.projectId}`;
|
|
20
|
+
const workItemBase = (config, workItemId) => `${V2_PROJECT(config)}/work-items/${workItemId}`;
|
|
21
|
+
export async function getPreflight(config, postId) {
|
|
22
|
+
return apiGet(`${workItemBase(config, postId)}/publish-preflight`, config);
|
|
23
|
+
}
|
|
24
|
+
async function listAccounts(config) {
|
|
25
|
+
const result = await listPublishTargets({}, config);
|
|
26
|
+
return result['accounts'] ?? [];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The Workflow whose items publish: the one whose asset types name a platform the project can publish
|
|
30
|
+
* to. With one such Workflow it is chosen silently; with several the caller has to say, because a Post
|
|
31
|
+
* on the wrong lifecycle is not a small mistake.
|
|
32
|
+
*/
|
|
33
|
+
export async function pickPublishingWorkflow(config, accounts, slug) {
|
|
34
|
+
const workflows = (await listWorkflows({ kind: 'LIFECYCLE' }, config));
|
|
35
|
+
const platforms = new Set(accounts.map((a) => String(a.platform).toLowerCase()));
|
|
36
|
+
const publishing = workflows.filter((w) => (w.assetTypes ?? []).some((t) => platforms.has(String(t).toLowerCase().split('_')[0] ?? '')));
|
|
37
|
+
if (slug) {
|
|
38
|
+
const chosen = workflows.find((w) => w.slug === slug);
|
|
39
|
+
if (!chosen)
|
|
40
|
+
throw new Error(`No Workflow with slug "${slug}". Call list_workflows({kind:"LIFECYCLE"}).`);
|
|
41
|
+
return chosen;
|
|
42
|
+
}
|
|
43
|
+
if (publishing.length === 1)
|
|
44
|
+
return publishing[0];
|
|
45
|
+
if (publishing.length === 0) {
|
|
46
|
+
throw new Error('No Workflow in this project publishes (none declares an asset type named for a platform). ' +
|
|
47
|
+
'Create one with create_workflow, e.g. from the MARKETING example, or pass `workflow` explicitly.');
|
|
48
|
+
}
|
|
49
|
+
throw new Error(`Several Workflows publish here: ${publishing.map((w) => w.slug).join(', ')}. Pass \`workflow\` to choose.`);
|
|
50
|
+
}
|
|
51
|
+
/** An account by its label (case-insensitive) or connection id; omitted or "manual" means the manual lane. */
|
|
52
|
+
function resolveAccount(accounts, target) {
|
|
53
|
+
const platform = target.platform.trim().toLowerCase();
|
|
54
|
+
const onPlatform = accounts.filter((a) => String(a.platform).toLowerCase() === platform);
|
|
55
|
+
if (onPlatform.length === 0) {
|
|
56
|
+
throw new Error(`"${target.platform}" is not a platform this project can publish to. ` +
|
|
57
|
+
`Known: ${[...new Set(accounts.map((a) => a.platform))].join(', ')}.`);
|
|
58
|
+
}
|
|
59
|
+
const wanted = target.account?.trim();
|
|
60
|
+
if (!wanted || wanted.toLowerCase() === 'manual') {
|
|
61
|
+
const manual = onPlatform.find((a) => a.lane === 'MANUAL');
|
|
62
|
+
if (!manual)
|
|
63
|
+
throw new Error(`No manual destination is offered for ${target.platform}.`);
|
|
64
|
+
return manual;
|
|
65
|
+
}
|
|
66
|
+
const automated = onPlatform.filter((a) => a.lane !== 'MANUAL');
|
|
67
|
+
const byId = automated.find((a) => a.connectionId === wanted);
|
|
68
|
+
if (byId)
|
|
69
|
+
return byId;
|
|
70
|
+
const lower = wanted.toLowerCase();
|
|
71
|
+
const byLabel = automated.filter((a) => String(a.label).toLowerCase() === lower);
|
|
72
|
+
if (byLabel.length === 1)
|
|
73
|
+
return byLabel[0];
|
|
74
|
+
const byPrefix = automated.filter((a) => String(a.label).toLowerCase().includes(lower));
|
|
75
|
+
if (byLabel.length === 0 && byPrefix.length === 1)
|
|
76
|
+
return byPrefix[0];
|
|
77
|
+
const names = automated.map((a) => `"${a.label}" (${a.connectionId})`).join(', ');
|
|
78
|
+
throw new Error((byLabel.length > 1 || byPrefix.length > 1 ? `"${wanted}" matches more than one ` : `No `) +
|
|
79
|
+
`${target.platform} account ${byLabel.length > 1 || byPrefix.length > 1 ? '' : `named "${wanted}" `}` +
|
|
80
|
+
`— connected accounts: ${names || 'none'}. Omit \`account\` for the manual destination.`);
|
|
81
|
+
}
|
|
82
|
+
/** The next quarter-hour at or after `earliest`, so "no time given" lands on a tidy calendar slot. */
|
|
83
|
+
export function nextQuarterHour(earliest) {
|
|
84
|
+
const slot = new Date(earliest.getTime());
|
|
85
|
+
slot.setSeconds(0, 0);
|
|
86
|
+
const minutes = slot.getMinutes();
|
|
87
|
+
const rounded = Math.ceil(minutes / 15) * 15;
|
|
88
|
+
slot.setMinutes(rounded);
|
|
89
|
+
if (slot.getTime() < earliest.getTime())
|
|
90
|
+
slot.setMinutes(slot.getMinutes() + 15);
|
|
91
|
+
return slot;
|
|
92
|
+
}
|
|
93
|
+
function localTimezone() {
|
|
94
|
+
try {
|
|
95
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return 'UTC';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function errorText(err) {
|
|
102
|
+
return err instanceof Error ? err.message : String(err);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Assigns reviewers by name, email or id. Only members holding the REVIEWER role can be assigned — the
|
|
106
|
+
* backend refuses anyone else — so a wrong role is reported by name rather than as a bare 4xx.
|
|
107
|
+
*/
|
|
108
|
+
export async function assignReviewers(config, postId, reviewers) {
|
|
109
|
+
const members = await apiGet(`/api/v1/projects/${config.projectId}/members`, config);
|
|
110
|
+
const assigned = [];
|
|
111
|
+
const problems = [];
|
|
112
|
+
for (const wanted of reviewers) {
|
|
113
|
+
const lower = wanted.trim().toLowerCase();
|
|
114
|
+
const match = members.find((m) => m.userId === wanted ||
|
|
115
|
+
(m.email ?? '').toLowerCase() === lower ||
|
|
116
|
+
(m.name ?? '').toLowerCase() === lower);
|
|
117
|
+
if (!match) {
|
|
118
|
+
problems.push(`No project member matches "${wanted}".`);
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (match.role !== 'REVIEWER') {
|
|
122
|
+
problems.push(`${match.name ?? match.userId} holds the ${match.role} role; only REVIEWER-role members can be assigned.`);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
await apiPost(`${workItemBase(config, postId)}/reviewers`, { userId: match.userId }, config);
|
|
127
|
+
assigned.push({ userId: match.userId, name: match.name ?? null });
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
problems.push(`Could not assign ${match.name ?? match.userId}: ${errorText(err)}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return { assigned, problems };
|
|
134
|
+
}
|
|
135
|
+
/** Takes the move the preflight names, when the Post is ready. Returns what happened, never throws on a refusal. */
|
|
136
|
+
async function takeNextMove(config, postId, preflight) {
|
|
137
|
+
if (!preflight.ready)
|
|
138
|
+
return { moved: false };
|
|
139
|
+
const next = preflight.nextTransition;
|
|
140
|
+
if (!next)
|
|
141
|
+
return { moved: false };
|
|
142
|
+
const result = await transitionWorkItem({ issueId: postId, toStatus: next.to }, config);
|
|
143
|
+
if (result['error'])
|
|
144
|
+
return { moved: false, refusal: String(result['error']) };
|
|
145
|
+
return { moved: true, toStatus: next.to };
|
|
146
|
+
}
|
|
147
|
+
function nextStep(status, preflight, submitted) {
|
|
148
|
+
if (!preflight.publishing)
|
|
149
|
+
return 'This Work Item is not on a publishing Workflow.';
|
|
150
|
+
if (!preflight.ready) {
|
|
151
|
+
return 'Fix the blockers, then call submit_post({postId}). Nothing has been submitted.';
|
|
152
|
+
}
|
|
153
|
+
if (!submitted)
|
|
154
|
+
return 'Ready but not submitted. Call submit_post({postId}) to hand it to review.';
|
|
155
|
+
if (preflight.nextTransition == null) {
|
|
156
|
+
return 'Scheduled. Poll get_post_status for each destination’s outcome and permalink.';
|
|
157
|
+
}
|
|
158
|
+
if (preflight.review.gated && !preflight.review.satisfied) {
|
|
159
|
+
const who = preflight.review.assignedReviewers > 0
|
|
160
|
+
? `${preflight.review.assignedReviewers} reviewer(s) assigned`
|
|
161
|
+
: 'no reviewer assigned yet — call submit_post with `reviewers`';
|
|
162
|
+
const consent = preflight.consent.required
|
|
163
|
+
? ' TikTok consent is recorded by the creator in the Conductor UI; no tool can do it.'
|
|
164
|
+
: '';
|
|
165
|
+
return `Waiting for a reviewer to approve (${who}). Approval schedules it automatically.${consent}`;
|
|
166
|
+
}
|
|
167
|
+
return `Ready for "${preflight.nextTransition.label ?? preflight.nextTransition.to}"; a status move will take it.`;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* The one call. Creates the Post, uploads its media (from paths or URLs, measuring video here), chooses
|
|
171
|
+
* its destinations by account name, schedules it at the server's earliest acceptable time when none is
|
|
172
|
+
* given, and — unless told not to — submits it for review with the named reviewers. Returns the
|
|
173
|
+
* confirmation table plus whatever the gate still wants.
|
|
174
|
+
*/
|
|
175
|
+
export async function createPost(params, config) {
|
|
176
|
+
if (!params.text || !params.text.trim())
|
|
177
|
+
throw new Error('text is required — the caption that goes out.');
|
|
178
|
+
if (!Array.isArray(params.targets) || params.targets.length === 0) {
|
|
179
|
+
throw new Error('targets is required — at least one {platform, account?}. Call list_publish_targets to see accounts.');
|
|
180
|
+
}
|
|
181
|
+
const accounts = await listAccounts(config);
|
|
182
|
+
const workflow = await pickPublishingWorkflow(config, accounts, params.workflow);
|
|
183
|
+
// Resolve every destination before creating anything, so a typo in an account name costs no Post.
|
|
184
|
+
const resolved = params.targets.map((t) => ({ input: t, account: resolveAccount(accounts, t) }));
|
|
185
|
+
const type = workflow.types.includes('POST') ? 'POST' : (workflow.types[0] ?? 'POST');
|
|
186
|
+
const title = params.title?.trim() || firstLine(params.text);
|
|
187
|
+
const created = await createWorkItem({ workflow: workflow.slug, type, title, description: params.text }, config);
|
|
188
|
+
if (created['error'])
|
|
189
|
+
return created;
|
|
190
|
+
const postId = String(created['issueId']);
|
|
191
|
+
const warnings = [];
|
|
192
|
+
// Media, in the order given, so index-style assetIds line up.
|
|
193
|
+
const assets = [];
|
|
194
|
+
for (const [index, media] of (params.media ?? []).entries()) {
|
|
195
|
+
const stored = await uploadAsset({
|
|
196
|
+
issueId: postId,
|
|
197
|
+
filePath: media.path,
|
|
198
|
+
url: media.url,
|
|
199
|
+
type: workflow.assetTypes[0],
|
|
200
|
+
label: media.label,
|
|
201
|
+
width: media.width,
|
|
202
|
+
height: media.height,
|
|
203
|
+
durationSeconds: media.durationSeconds,
|
|
204
|
+
}, config);
|
|
205
|
+
if (typeof stored['warning'] === 'string')
|
|
206
|
+
warnings.push(`media[${index}]: ${stored['warning']}`);
|
|
207
|
+
assets.push(stored);
|
|
208
|
+
}
|
|
209
|
+
const selection = resolved.map(({ input, account }) => ({
|
|
210
|
+
platform: account.platform,
|
|
211
|
+
connectionId: account.lane === 'MANUAL' ? null : account.connectionId,
|
|
212
|
+
captionOverride: input.captionOverride ?? null,
|
|
213
|
+
assetIds: (input.assetIds ?? []).map((ref) => {
|
|
214
|
+
if (typeof ref === 'number') {
|
|
215
|
+
const asset = assets[ref];
|
|
216
|
+
if (!asset)
|
|
217
|
+
throw new Error(`assetIds refers to media[${ref}], but only ${assets.length} media were given.`);
|
|
218
|
+
return String(asset['id']);
|
|
219
|
+
}
|
|
220
|
+
return ref;
|
|
221
|
+
}),
|
|
222
|
+
publishOptions: input.options,
|
|
223
|
+
}));
|
|
224
|
+
await setPublishTargets({ issueId: postId, targets: selection }, config);
|
|
225
|
+
// Schedule: the server knows what the chosen destinations can accept; nothing here guesses a lead time.
|
|
226
|
+
let preflight = await getPreflight(config, postId);
|
|
227
|
+
const timezone = params.timezone ?? localTimezone();
|
|
228
|
+
let scheduledFor = params.scheduledFor;
|
|
229
|
+
if (!scheduledFor) {
|
|
230
|
+
const earliest = preflight.earliestFireTime ? new Date(preflight.earliestFireTime) : new Date(Date.now() + 15 * 60000);
|
|
231
|
+
scheduledFor = nextQuarterHour(earliest).toISOString();
|
|
232
|
+
}
|
|
233
|
+
const scheduled = await updateWorkItem({ issueId: postId, scheduledFor, scheduleTimezone: timezone }, config);
|
|
234
|
+
if (scheduled['error'])
|
|
235
|
+
return { ...scheduled, postId };
|
|
236
|
+
preflight = await getPreflight(config, postId);
|
|
237
|
+
const submit = params.submit !== false;
|
|
238
|
+
let submitted = false;
|
|
239
|
+
let refusal;
|
|
240
|
+
let reviewerReport;
|
|
241
|
+
if (submit && preflight.ready) {
|
|
242
|
+
if (params.reviewers && params.reviewers.length > 0) {
|
|
243
|
+
reviewerReport = await assignReviewers(config, postId, params.reviewers);
|
|
244
|
+
warnings.push(...reviewerReport.problems);
|
|
245
|
+
}
|
|
246
|
+
const move = await takeNextMove(config, postId, preflight);
|
|
247
|
+
submitted = move.moved;
|
|
248
|
+
refusal = move.refusal;
|
|
249
|
+
if (submitted)
|
|
250
|
+
preflight = await getPreflight(config, postId);
|
|
251
|
+
}
|
|
252
|
+
return confirmation(config, postId, preflight, {
|
|
253
|
+
submitted,
|
|
254
|
+
refusal,
|
|
255
|
+
warnings,
|
|
256
|
+
reviewers: reviewerReport?.assigned,
|
|
257
|
+
assets,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
async function confirmation(config, postId, preflight, extra) {
|
|
261
|
+
const item = await apiGet(workItemBase(config, postId), config);
|
|
262
|
+
const selected = await apiGet(`${workItemBase(config, postId)}/publish-targets`, config);
|
|
263
|
+
const assets = extra.assets ?? (await apiGet(`${workItemBase(config, postId)}/assets`, config));
|
|
264
|
+
const result = {
|
|
265
|
+
postId,
|
|
266
|
+
displayId: item.displayId,
|
|
267
|
+
status: item.status,
|
|
268
|
+
scheduledFor: item.scheduledFor,
|
|
269
|
+
timezone: item.scheduleTimezone,
|
|
270
|
+
targets: (selected ?? []).map((t) => ({
|
|
271
|
+
targetId: t.id,
|
|
272
|
+
platform: t.platform,
|
|
273
|
+
account: t.label ?? (t.lane === 'MANUAL' ? 'manual' : null),
|
|
274
|
+
lane: t.lane,
|
|
275
|
+
state: t.state,
|
|
276
|
+
permalink: t.permalink ?? null,
|
|
277
|
+
errorMessage: t.errorMessage ?? null,
|
|
278
|
+
})),
|
|
279
|
+
assets: assets.map((a) => ({ id: a['id'], label: a['label'], contentType: a['contentType'] })),
|
|
280
|
+
blockers: preflight.blockers,
|
|
281
|
+
warnings: [...preflight.warnings.map((w) => w.message), ...(extra.warnings ?? [])],
|
|
282
|
+
review: preflight.review,
|
|
283
|
+
consent: preflight.consent,
|
|
284
|
+
nextStep: extra.refusal
|
|
285
|
+
? `The move was refused: ${extra.refusal}`
|
|
286
|
+
: nextStep(item.status, preflight, extra.submitted),
|
|
287
|
+
};
|
|
288
|
+
if (extra.reviewers && extra.reviewers.length > 0)
|
|
289
|
+
result['reviewers'] = extra.reviewers;
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
function firstLine(text) {
|
|
293
|
+
const line = text.split(/\r?\n/).find((l) => l.trim().length > 0) ?? text;
|
|
294
|
+
return line.trim().length > 80 ? line.trim().slice(0, 77) + '…' : line.trim();
|
|
295
|
+
}
|
|
296
|
+
/** Where a Post stands: status, every destination's outcome, and what the gate still wants. Always live. */
|
|
297
|
+
export async function getPostStatus(params, config) {
|
|
298
|
+
const preflight = await getPreflight(config, params.postId);
|
|
299
|
+
return confirmation(config, params.postId, preflight, { submitted: true });
|
|
300
|
+
}
|
|
301
|
+
/** Hands a Post to review: assigns the named reviewers, then takes the move the preflight names. */
|
|
302
|
+
export async function submitPost(params, config) {
|
|
303
|
+
let preflight = await getPreflight(config, params.postId);
|
|
304
|
+
const warnings = [];
|
|
305
|
+
let reviewerReport;
|
|
306
|
+
if (params.reviewers && params.reviewers.length > 0) {
|
|
307
|
+
reviewerReport = await assignReviewers(config, params.postId, params.reviewers);
|
|
308
|
+
warnings.push(...reviewerReport.problems);
|
|
309
|
+
}
|
|
310
|
+
const move = await takeNextMove(config, params.postId, preflight);
|
|
311
|
+
if (move.moved)
|
|
312
|
+
preflight = await getPreflight(config, params.postId);
|
|
313
|
+
return confirmation(config, params.postId, preflight, {
|
|
314
|
+
submitted: move.moved,
|
|
315
|
+
refusal: move.refusal,
|
|
316
|
+
warnings,
|
|
317
|
+
reviewers: reviewerReport?.assigned,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
/** Posts across every publishing Workflow, with each one's destinations, newest schedule first. */
|
|
321
|
+
export async function listPosts(params, config) {
|
|
322
|
+
const accounts = await listAccounts(config);
|
|
323
|
+
const workflows = (await listWorkflows({ kind: 'LIFECYCLE' }, config));
|
|
324
|
+
const platforms = new Set(accounts.map((a) => String(a.platform).toLowerCase()));
|
|
325
|
+
const publishing = workflows.filter((w) => (w.assetTypes ?? []).some((t) => platforms.has(String(t).toLowerCase().split('_')[0] ?? '')));
|
|
326
|
+
const since = params.since ? new Date(params.since).getTime() : null;
|
|
327
|
+
const until = params.until ? new Date(params.until).getTime() : null;
|
|
328
|
+
const rows = [];
|
|
329
|
+
for (const workflow of publishing) {
|
|
330
|
+
const items = (await listWorkItems({ workflow: workflow.slug, status: params.status }, config));
|
|
331
|
+
for (const item of items) {
|
|
332
|
+
const at = item.scheduledFor ? new Date(item.scheduledFor).getTime() : null;
|
|
333
|
+
if (since !== null && (at === null || at < since))
|
|
334
|
+
continue;
|
|
335
|
+
if (until !== null && (at === null || at > until))
|
|
336
|
+
continue;
|
|
337
|
+
rows.push(item);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
rows.sort((a, b) => (b.scheduledFor ?? '').localeCompare(a.scheduledFor ?? ''));
|
|
341
|
+
const limit = Math.max(1, Math.min(params.limit ?? 50, 50));
|
|
342
|
+
const posts = [];
|
|
343
|
+
for (const row of rows.slice(0, limit)) {
|
|
344
|
+
const selected = (await apiGet(`${workItemBase(config, row.id)}/publish-targets`, config)) ?? [];
|
|
345
|
+
const targets = selected
|
|
346
|
+
.filter((t) => !params.platform || String(t.platform).toLowerCase() === params.platform.toLowerCase())
|
|
347
|
+
.map((t) => ({ platform: t.platform, account: t.label ?? null, state: t.state, permalink: t.permalink ?? null }));
|
|
348
|
+
if (params.platform && targets.length === 0)
|
|
349
|
+
continue;
|
|
350
|
+
posts.push({
|
|
351
|
+
postId: row.id,
|
|
352
|
+
displayId: row.displayId,
|
|
353
|
+
title: row.title,
|
|
354
|
+
status: row.status,
|
|
355
|
+
scheduledFor: row.scheduledFor ?? null,
|
|
356
|
+
timezone: row.scheduleTimezone ?? null,
|
|
357
|
+
targets,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
return { posts, count: posts.length, truncated: rows.length > limit };
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Records a review verdict as the caller's user. The backend requires an assigned reviewer holding the
|
|
364
|
+
* REVIEWER role (or an ADMIN who was assigned) — a project API key cannot review, and a user key without
|
|
365
|
+
* the role is refused; both come back as the server's own message. Approval on MARKETING schedules the
|
|
366
|
+
* Post in the same request; `autoTransition` says how far it got.
|
|
367
|
+
*/
|
|
368
|
+
export async function submitReview(params, config) {
|
|
369
|
+
const verdict = normalizeVerdict(params.verdict);
|
|
370
|
+
try {
|
|
371
|
+
const review = await apiPost(`${workItemBase(config, params.postId)}/reviews`, { verdict, body: params.summary }, config);
|
|
372
|
+
const preflight = await getPreflight(config, params.postId);
|
|
373
|
+
const status = await confirmation(config, params.postId, preflight, { submitted: true });
|
|
374
|
+
return { verdict, autoTransition: review['autoTransition'] ?? null, ...status };
|
|
375
|
+
}
|
|
376
|
+
catch (err) {
|
|
377
|
+
if (isClientError(err)) {
|
|
378
|
+
return { error: `Review not recorded: ${errorText(err)}` };
|
|
379
|
+
}
|
|
380
|
+
throw err;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
function normalizeVerdict(raw) {
|
|
384
|
+
const v = String(raw ?? '').trim().toLowerCase().replace(/[\s-]+/g, '_');
|
|
385
|
+
if (v === 'approve' || v === 'approved')
|
|
386
|
+
return 'APPROVED';
|
|
387
|
+
if (v === 'request_changes' || v === 'changes_requested' || v === 'reject')
|
|
388
|
+
return 'CHANGES_REQUESTED';
|
|
389
|
+
if (v === 'comment' || v === 'commented')
|
|
390
|
+
return 'COMMENTED';
|
|
391
|
+
throw new Error(`verdict must be "approve" or "request_changes", not "${raw}".`);
|
|
392
|
+
}
|
|
393
|
+
/** What happened to a Post after it went out: each destination's counters, as the feeds read them back. */
|
|
394
|
+
export async function getPostAnalytics(params, config) {
|
|
395
|
+
const query = params.since ? `?since=${encodeURIComponent(params.since)}` : '';
|
|
396
|
+
const metrics = await apiGet(`${workItemBase(config, params.postId)}/publish-metrics${query}`, config);
|
|
397
|
+
const targets = metrics['targets'] ?? [];
|
|
398
|
+
return {
|
|
399
|
+
postId: params.postId,
|
|
400
|
+
totals: metrics['totals'] ?? null,
|
|
401
|
+
targets,
|
|
402
|
+
note: targets.length === 0
|
|
403
|
+
? 'No snapshot yet. The post_metrics feed reads counters every six hours after a destination publishes.'
|
|
404
|
+
: undefined,
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
/** The project's best-performing destinations by one metric — views by default. */
|
|
408
|
+
export async function listTopPosts(params, config) {
|
|
409
|
+
const query = new URLSearchParams();
|
|
410
|
+
if (params.metric)
|
|
411
|
+
query.set('metric', params.metric);
|
|
412
|
+
if (params.platform)
|
|
413
|
+
query.set('platform', params.platform);
|
|
414
|
+
if (params.since)
|
|
415
|
+
query.set('since', params.since);
|
|
416
|
+
if (params.limit)
|
|
417
|
+
query.set('limit', String(params.limit));
|
|
418
|
+
const qs = query.toString();
|
|
419
|
+
const rows = await apiGet(`${V2_PROJECT(config)}/publish-metrics/top-posts${qs ? `?${qs}` : ''}`, config);
|
|
420
|
+
return { metric: params.metric ?? 'views', posts: rows };
|
|
421
|
+
}
|
|
422
|
+
/** Every Asset on a Work Item — the ids set_publish_targets.assetIds wants. */
|
|
423
|
+
export async function listAssets(params, config) {
|
|
424
|
+
const assets = await apiGet(`${workItemBase(config, params.issueId)}/assets`, config);
|
|
425
|
+
return { issueId: params.issueId, assets };
|
|
426
|
+
}
|
|
427
|
+
//# sourceMappingURL=posts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posts.js","sourceRoot":"","sources":["../../../src/mcp/tools/posts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAA0B,MAAM,gBAAgB,CAAA;AAE3G;;;;;;;;;;;;;GAaG;AAEH,MAAM,UAAU,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,oBAAoB,MAAM,CAAC,SAAS,EAAE,CAAA;AAErF,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,UAAkB,EAAU,EAAE,CAClE,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,UAAU,EAAE,CAAA;AAkGlD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc;IAC/D,OAAO,MAAM,CAAY,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;AACvF,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAAc;IACxC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IACnD,OAAQ,MAAM,CAAC,UAAU,CAAiC,IAAI,EAAE,CAAA;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,QAAyB,EACzB,IAAa;IAEb,MAAM,SAAS,GAAG,CAAC,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAsB,CAAA;IAC3F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAChF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7F,CAAA;IACD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,6CAA6C,CAAC,CAAA;QACzG,OAAO,MAAM,CAAA;IACf,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAE,CAAA;IAClD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,4FAA4F;YAC1F,kGAAkG,CACrG,CAAA;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAC5G,CAAA;AACH,CAAC;AAED,8GAA8G;AAC9G,SAAS,cAAc,CAAC,QAAyB,EAAE,MAAmB;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAA;IACxF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,IAAI,MAAM,CAAC,QAAQ,mDAAmD;YACpE,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxE,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;IACrC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;QACxF,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAC/D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAA;IAC7D,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;IAChF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAE,CAAA;IAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACvF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAA;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjF,MAAM,IAAI,KAAK,CACb,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC;QACxF,GAAG,MAAM,CAAC,QAAQ,YAAY,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,MAAM,IAAI,EAAE;QACrG,yBAAyB,KAAK,IAAI,MAAM,gDAAgD,CAC3F,CAAA;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,eAAe,CAAC,QAAc;IAC5C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACzC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;IAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACxB,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;IAChF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAc,EACd,SAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAW,oBAAoB,MAAM,CAAC,SAAS,UAAU,EAAE,MAAM,CAAC,CAAA;IAC9F,MAAM,QAAQ,GAAmD,EAAE,CAAA;IACnE,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,KAAK,MAAM;YACnB,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;YACvC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CACzC,CAAA;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,8BAA8B,MAAM,IAAI,CAAC,CAAA;YACvD,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CACX,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,IAAI,oDAAoD,CAC1G,CAAA;YACD,SAAQ;QACV,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,CAAU,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;YACrG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;AAC/B,CAAC;AAED,oHAAoH;AACpH,KAAK,UAAU,YAAY,CACzB,MAAc,EACd,MAAc,EACd,SAAoB;IAEpB,IAAI,CAAC,SAAS,CAAC,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,cAAc,CAAA;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACvF,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAA;IAC9E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,MAA0B,EAAE,SAAoB,EAAE,SAAkB;IACpF,IAAI,CAAC,SAAS,CAAC,UAAU;QAAE,OAAO,iDAAiD,CAAA;IACnF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,gFAAgF,CAAA;IACzF,CAAC;IACD,IAAI,CAAC,SAAS;QAAE,OAAO,2EAA2E,CAAA;IAClG,IAAI,SAAS,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,+EAA+E,CAAA;IACxF,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,GAAG,GACP,SAAS,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC;YACpC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,iBAAiB,uBAAuB;YAC9D,CAAC,CAAC,8DAA8D,CAAA;QACpE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ;YACxC,CAAC,CAAC,oFAAoF;YACtF,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,sCAAsC,GAAG,0CAA0C,OAAO,EAAE,CAAA;IACrG,CAAC;IACD,OAAO,cAAc,SAAS,CAAC,cAAc,CAAC,KAAK,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE,gCAAgC,CAAA;AACpH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAwB,EAAE,MAAc;IACvE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IACzG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAA;IACxH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChF,kGAAkG;IAClG,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAEhG,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAA;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,MAAM,cAAc,CAClC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,EAClE,MAAM,CACP,CAAA;IACD,IAAI,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,8DAA8D;IAC9D,MAAM,MAAM,GAAmC,EAAE,CAAA;IACjD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B;YACE,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,EACD,MAAM,CACP,CAAA;QACD,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACjG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,SAAS,GAA6B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAChF,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY;QACrE,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;QAC9C,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACzB,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,eAAe,MAAM,CAAC,MAAM,oBAAoB,CAAC,CAAA;gBAC5G,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YAC5B,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,OAAO;KAC9B,CAAC,CAAC,CAAA;IACH,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAA;IAExE,wGAAwG;IACxG,IAAI,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,aAAa,EAAE,CAAA;IACnD,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAM,CAAC,CAAA;QACvH,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IACxD,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAA;IAC7G,IAAI,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAA;IAEvD,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,CAAA;IACtC,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,OAA2B,CAAA;IAC/B,IAAI,cAAuE,CAAA;IAC3E,IAAI,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,cAAc,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YACxE,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QAC1D,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QACtB,IAAI,SAAS;YAAE,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;QAC7C,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS,EAAE,cAAc,EAAE,QAAQ;QACnC,MAAM;KACP,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,MAAc,EACd,MAAc,EACd,SAAoB,EACpB,KAMC;IAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAc,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IAC5E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAc,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;IACrG,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,MAAM,CAAiC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IAClH,MAAM,MAAM,GAA4B;QACtC,MAAM;QACN,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;QAC/B,OAAO,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,QAAQ,EAAE,CAAC,CAAC,EAAE;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;YAC9B,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;SACrC,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9F,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,QAAQ,EAAE,KAAK,CAAC,OAAO;YACrB,CAAC,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE;YAC1C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;KACtD,CAAA;IACD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,SAAS,CAAA;IACxF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;IACzE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;AAC/E,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA0B,EAAE,MAAc;IAC5E,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3D,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5E,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAgD,EAChD,MAAc;IAEd,IAAI,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,cAAuE,CAAA;IAC3E,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,cAAc,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/E,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACjE,IAAI,IAAI,CAAC,KAAK;QAAE,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACrE,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE;QACpD,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ;QACR,SAAS,EAAE,cAAc,EAAE,QAAQ;KACpC,CAAC,CAAA;AACJ,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAA8F,EAC9F,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,CAAC,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAsB,CAAA;IAC3F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAChF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7F,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACpE,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAkB,CAAA;QAChH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;YAC3E,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC;gBAAE,SAAQ;YAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC;gBAAE,SAAQ;YAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAmC,EAAE,CAAA;IAChD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAc,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QAC7G,MAAM,OAAO,GAAG,QAAQ;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;aACrG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;QACnH,IAAI,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,GAAG,CAAC,EAAE;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACtC,QAAQ,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;YACtC,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAA;AACvE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA6F,EAC7F,MAAc;IAEd,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAChD,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACjC,MAAM,CACP,CAAA;QACD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxF,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,KAAK,EAAE,wBAAwB,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAA;QAC5D,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACxE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAA;IAC1D,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,KAAK,mBAAmB,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,mBAAmB,CAAA;IACtG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,WAAW,CAAA;IAC5D,MAAM,IAAI,KAAK,CAAC,wDAAwD,GAAG,IAAI,CAAC,CAAA;AAClF,CAAC;AAED,2GAA2G;AAC3G,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA0C,EAC1C,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9E,MAAM,OAAO,GAAG,MAAM,MAAM,CAA0B,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,KAAK,EAAE,EAAE,MAAM,CAAC,CAAA;IAC/H,MAAM,OAAO,GAAI,OAAO,CAAC,SAAS,CAAgD,IAAI,EAAE,CAAA;IACxF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI;QACjC,OAAO;QACP,IAAI,EACF,OAAO,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,CAAC,sGAAsG;YACxG,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA8E,EAC9E,MAAc;IAEd,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;IACnC,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACrD,IAAI,MAAM,CAAC,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3D,IAAI,MAAM,CAAC,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAClD,IAAI,MAAM,CAAC,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAY,GAAG,UAAU,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACpH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AAC1D,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAA2B,EAAE,MAAc;IAC1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAiC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACrH,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAIrC;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,CAAA;CAAE,EAC7C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,11 @@ export async function listWorkflows(params, config) {
|
|
|
35
35
|
workflowId: w['id'],
|
|
36
36
|
types: def?.['types'] ?? [],
|
|
37
37
|
statuses: def?.['statuses'] ?? [],
|
|
38
|
+
// The asset types a Workflow declares are how it opts into publishing (an entry named for a
|
|
39
|
+
// platform) and what upload_asset's `type` is validated against — so an agent needs them here,
|
|
40
|
+
// not by parsing the statechart.
|
|
41
|
+
assetTypes: def?.['asset_types'] ?? [],
|
|
42
|
+
publishesFrom: def?.['publishes_from'] ?? null,
|
|
38
43
|
};
|
|
39
44
|
});
|
|
40
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/mcp/tools/workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA6C,EAC7C,MAAc;IAEd,+GAA+G;IAC/G,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;IACnC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;QAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;SAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACtE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,oBAAoB,MAAM,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACrE,MAAM,CACP,CAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,MAAM,GAAG,GAAI,CAAC,CAAC,YAAY,CAAyC,IAAI,SAAS,CAAA;QACjF,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;YACjB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;YAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/mcp/tools/workflows.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cliangdev/conductor",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Agentic software development platform
|
|
3
|
+
"version": "0.19.0",
|
|
4
|
+
"description": "Agentic software development platform — AI-driven PRD, implementation, and beyond",
|
|
5
5
|
"license": "SEE LICENSE IN ../LICENSE",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|