@cliangdev/conductor 0.14.0 → 0.18.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/cli-manifest.json +238 -66
- package/dist/mcp/api.d.ts +6 -0
- package/dist/mcp/api.d.ts.map +1 -1
- package/dist/mcp/api.js +22 -1
- package/dist/mcp/api.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +140 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools/issues.d.ts +5 -0
- package/dist/mcp/tools/issues.d.ts.map +1 -1
- package/dist/mcp/tools/issues.js +25 -2
- package/dist/mcp/tools/issues.js.map +1 -1
- package/dist/mcp/tools/marketing.d.ts +67 -0
- package/dist/mcp/tools/marketing.d.ts.map +1 -0
- package/dist/mcp/tools/marketing.js +169 -0
- package/dist/mcp/tools/marketing.js.map +1 -0
- package/dist/mcp/tools/workflows.d.ts.map +1 -1
- package/dist/mcp/tools/workflows.js +16 -1
- package/dist/mcp/tools/workflows.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketing.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/marketing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AA+DrC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAqBD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,sBAAsB,EAAE,CAAA;CAAE,EAC9D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAYlC;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,EACD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8ElC;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACtF,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAalC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { basename, extname } from 'node:path';
|
|
3
|
+
import { apiGet, apiPost, apiPut, apiDelete, putBytes } from '../api.js';
|
|
4
|
+
/**
|
|
5
|
+
* The publishing pipeline for a Post, end to end from an agent: which connected accounts a project can
|
|
6
|
+
* publish to, which of them one Post targets and under what per-platform options, the media attached to
|
|
7
|
+
* it, and where each target landed once it fired.
|
|
8
|
+
*
|
|
9
|
+
* Two deliberate omissions. There is no tool that records a creator's TikTok consent: TikTok's audit
|
|
10
|
+
* requirement is that the *creator* sees the preview and the destination account and consents, so that
|
|
11
|
+
* step stays a human action in the Conductor UI and the backend enforces it at the approval gate — an
|
|
12
|
+
* agent consenting on a human's behalf would defeat the whole point. And nothing here takes a
|
|
13
|
+
* credential: an account is named by its connection id, and the backend resolves the token behind it.
|
|
14
|
+
*
|
|
15
|
+
* The MANUAL lane runs through the same tools rather than getting its own: a manual destination is
|
|
16
|
+
* selected with set_publish_targets like any other (with no connectionId), and completed with
|
|
17
|
+
* complete_manual_publish. Worth being clear about what that tool is not — an agent recording a link is
|
|
18
|
+
* reporting something a human already did outside Conductor, not publishing anything itself. It stays
|
|
19
|
+
* exempt from the TikTok consent rule for the same reason the lane is: nothing is sent to TikTok.
|
|
20
|
+
*/
|
|
21
|
+
const V2_PROJECT = (config) => `/api/v2/projects/${config.projectId}`;
|
|
22
|
+
const workItemBase = (config, workItemId) => `${V2_PROJECT(config)}/work-items/${workItemId}`;
|
|
23
|
+
/**
|
|
24
|
+
* Extension → media type, used only to declare the bytes at mint. The server owns the allowlist, so an
|
|
25
|
+
* extension it will refuse (and an unknown one, which falls through to application/octet-stream) is sent
|
|
26
|
+
* as-is and rejected there with its own message — better a real server verdict than a guess here that
|
|
27
|
+
* drifts from it.
|
|
28
|
+
*/
|
|
29
|
+
const MEDIA_TYPES = {
|
|
30
|
+
'.png': 'image/png',
|
|
31
|
+
'.jpg': 'image/jpeg',
|
|
32
|
+
'.jpeg': 'image/jpeg',
|
|
33
|
+
'.gif': 'image/gif',
|
|
34
|
+
'.webp': 'image/webp',
|
|
35
|
+
'.mp4': 'video/mp4',
|
|
36
|
+
'.mov': 'video/quicktime',
|
|
37
|
+
'.m4v': 'video/x-m4v',
|
|
38
|
+
'.webm': 'video/webm',
|
|
39
|
+
'.avi': 'video/x-msvideo',
|
|
40
|
+
'.pdf': 'application/pdf',
|
|
41
|
+
'.svg': 'image/svg+xml',
|
|
42
|
+
'.txt': 'text/plain',
|
|
43
|
+
'.zip': 'application/zip',
|
|
44
|
+
};
|
|
45
|
+
const DEFAULT_MEDIA_TYPE = 'application/octet-stream';
|
|
46
|
+
function mediaTypeFor(filename) {
|
|
47
|
+
return MEDIA_TYPES[extname(filename).toLowerCase()] ?? DEFAULT_MEDIA_TYPE;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Video width/height/duration cannot be derived server-side (no container parser in the JDK), and the
|
|
51
|
+
* media validator blocks approval without them. Reported rather than invented: a guessed dimension would
|
|
52
|
+
* pass the gate and then fail at the platform.
|
|
53
|
+
*/
|
|
54
|
+
function missingVideoMeasurements(contentType, asset) {
|
|
55
|
+
if (!contentType.startsWith('video/'))
|
|
56
|
+
return [];
|
|
57
|
+
return ['width', 'height', 'durationSeconds'].filter((field) => asset[field] === undefined || asset[field] === null);
|
|
58
|
+
}
|
|
59
|
+
export async function listPublishTargets(params, config) {
|
|
60
|
+
const available = await apiGet(`${V2_PROJECT(config)}/publish-targets`, config);
|
|
61
|
+
if (!params.issueId) {
|
|
62
|
+
return { available };
|
|
63
|
+
}
|
|
64
|
+
const selected = await apiGet(`${workItemBase(config, params.issueId)}/publish-targets`, config);
|
|
65
|
+
return { available, selected };
|
|
66
|
+
}
|
|
67
|
+
export async function setPublishTargets(params, config) {
|
|
68
|
+
if (!Array.isArray(params.targets)) {
|
|
69
|
+
throw new Error('targets is required — pass the complete selection, or an empty array to clear every target');
|
|
70
|
+
}
|
|
71
|
+
const targets = await apiPut(`${workItemBase(config, params.issueId)}/publish-targets`, { targets: params.targets }, config);
|
|
72
|
+
return { issueId: params.issueId, targets };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The three-call upload (mint → PUT the bytes → confirm) collapsed into one tool call. The MCP server
|
|
76
|
+
* runs locally over stdio, so it reads the file itself rather than making the agent stream bytes through
|
|
77
|
+
* its context.
|
|
78
|
+
*
|
|
79
|
+
* Nothing half-uploaded survives a failure: the server validates type, size and filename before it
|
|
80
|
+
* creates a row, so a refused file leaves none, and a failure after the mint deletes the PENDING row it
|
|
81
|
+
* did create.
|
|
82
|
+
*/
|
|
83
|
+
export async function uploadAsset(params, config) {
|
|
84
|
+
let bytes;
|
|
85
|
+
try {
|
|
86
|
+
bytes = new Uint8Array(await readFile(params.filePath));
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
throw new Error(`Cannot read "${params.filePath}": ${err instanceof Error ? err.message : String(err)}`);
|
|
90
|
+
}
|
|
91
|
+
const filename = basename(params.filePath);
|
|
92
|
+
const contentType = mediaTypeFor(filename);
|
|
93
|
+
const base = workItemBase(config, params.issueId);
|
|
94
|
+
const ticket = await apiPost(`${base}/assets/uploads`, {
|
|
95
|
+
type: params.type,
|
|
96
|
+
label: params.label,
|
|
97
|
+
filename,
|
|
98
|
+
contentType,
|
|
99
|
+
sizeBytes: bytes.byteLength,
|
|
100
|
+
width: params.width,
|
|
101
|
+
height: params.height,
|
|
102
|
+
durationSeconds: params.durationSeconds,
|
|
103
|
+
}, config);
|
|
104
|
+
try {
|
|
105
|
+
await putBytes(ticket.uploadUrl, contentType, bytes);
|
|
106
|
+
await apiPost(`${base}/assets/${ticket.assetId}/confirm`, { sizeBytes: bytes.byteLength }, config);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
// Best effort: a PENDING row with no bytes behind it is the one thing this tool must not leave for a
|
|
110
|
+
// human to find, but a failed cleanup must not mask the failure that caused it.
|
|
111
|
+
try {
|
|
112
|
+
await apiDelete(`${base}/assets/${ticket.assetId}`, config);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// ignored — the original failure below is the one worth reporting
|
|
116
|
+
}
|
|
117
|
+
throw new Error(`Upload failed; the pending Asset was removed: ${err instanceof Error ? err.message : String(err)}`);
|
|
118
|
+
}
|
|
119
|
+
let stored;
|
|
120
|
+
try {
|
|
121
|
+
stored = (await apiGet(`${base}/assets`, config)).find((asset) => asset.id === ticket.assetId);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// The bytes are stored and confirmed; a failed read-back only costs the caller the stored shape.
|
|
125
|
+
}
|
|
126
|
+
const asset = stored ?? {
|
|
127
|
+
id: ticket.assetId,
|
|
128
|
+
workItemId: params.issueId,
|
|
129
|
+
type: params.type,
|
|
130
|
+
kind: 'file',
|
|
131
|
+
contentType,
|
|
132
|
+
sizeBytes: bytes.byteLength,
|
|
133
|
+
uploadStatus: 'UPLOADED',
|
|
134
|
+
};
|
|
135
|
+
const missing = missingVideoMeasurements(contentType, asset);
|
|
136
|
+
if (missing.length === 0) {
|
|
137
|
+
return asset;
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
...asset,
|
|
141
|
+
warning: `Video uploaded without ${missing.join(', ')}. These cannot be derived server-side, so approval ` +
|
|
142
|
+
'of this Work Item stays blocked until they are known — measure them and upload the file again ' +
|
|
143
|
+
'passing width, height and durationSeconds.',
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export async function retryFailedPublishTargets(params, config) {
|
|
147
|
+
return apiPost(`${workItemBase(config, params.issueId)}/publish-targets/retry`, undefined, config);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Records that a manual destination was published by hand, and reads back what it now looks like.
|
|
151
|
+
*
|
|
152
|
+
* The one way a target reaches PUBLISHED without a platform reporting it, so it is narrow by design: the
|
|
153
|
+
* backend refuses any target that is not on the MANUAL lane, because an automated one has a poller that
|
|
154
|
+
* will publish it and report the real outcome, and declaring it published would strand a post still
|
|
155
|
+
* queued to go out. A caller wanting to abandon an automated target should drop it with
|
|
156
|
+
* set_publish_targets instead.
|
|
157
|
+
*
|
|
158
|
+
* The response is the target as the server now holds it — the action and its verification in one call,
|
|
159
|
+
* so an agent never has to guess whether the write landed.
|
|
160
|
+
*/
|
|
161
|
+
export async function completeManualPublish(params, config) {
|
|
162
|
+
if (!params.permalink || !params.permalink.trim()) {
|
|
163
|
+
throw new Error('permalink is required — it is the only record that this destination went out, because there is' +
|
|
164
|
+
' no platform to ask. Find the target id with list_publish_targets.');
|
|
165
|
+
}
|
|
166
|
+
const target = await apiPost(`${workItemBase(config, params.issueId)}/publish-targets/${params.targetId}/manual-publish`, { permalink: params.permalink.trim(), publishedAt: params.publishedAt ?? null }, config);
|
|
167
|
+
return { issueId: params.issueId, target };
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=marketing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketing.js","sourceRoot":"","sources":["../../../src/mcp/tools/marketing.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,CA0BpB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKlC;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC7C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { apiGet, apiPost, apiPatch, apiPut, apiDelete } from '../api.js';
|
|
1
|
+
import { apiGet, apiPost, apiPatch, apiPut, apiDelete, isClientError } from '../api.js';
|
|
2
2
|
import { queueChange } from '../queue.js';
|
|
3
3
|
/**
|
|
4
4
|
* COND-18 workflow-aware MCP tools. The surface stays GENERIC + discovery-based: the agent calls
|
|
@@ -48,6 +48,11 @@ export async function transitionWorkItem(params, config) {
|
|
|
48
48
|
return await apiPatch(path, body, config);
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
|
+
// A 4xx (validation, permission, unknown id) is permanent — surface it rather than
|
|
52
|
+
// queuing a replay that can never succeed. Publishing validators reject this way by design.
|
|
53
|
+
if (isClientError(err)) {
|
|
54
|
+
return { error: `Transition refused: ${err instanceof Error ? err.message : String(err)}` };
|
|
55
|
+
}
|
|
51
56
|
const size = queueChange({ method: 'PATCH', path, body, timestamp: new Date().toISOString() });
|
|
52
57
|
return {
|
|
53
58
|
issueId: params.issueId,
|
|
@@ -70,6 +75,11 @@ export async function recordAsset(params, config) {
|
|
|
70
75
|
return await apiPost(path, body, config);
|
|
71
76
|
}
|
|
72
77
|
catch (err) {
|
|
78
|
+
// A 4xx (validation, permission, unknown id) is permanent — surface it rather than
|
|
79
|
+
// queuing a replay that can never succeed. Publishing validators reject this way by design.
|
|
80
|
+
if (isClientError(err)) {
|
|
81
|
+
return { error: `Asset not recorded: ${err instanceof Error ? err.message : String(err)}` };
|
|
82
|
+
}
|
|
73
83
|
const size = queueChange({ method: 'POST', path, body, timestamp: new Date().toISOString() });
|
|
74
84
|
return {
|
|
75
85
|
warning: `Sync failed — change queued: ${err instanceof Error ? err.message : String(err)}`,
|
|
@@ -164,6 +174,11 @@ export async function reportStepRun(params, config) {
|
|
|
164
174
|
return await apiPost(path, rest, config);
|
|
165
175
|
}
|
|
166
176
|
catch (err) {
|
|
177
|
+
// A 4xx (validation, permission, unknown id) is permanent — surface it rather than
|
|
178
|
+
// queuing a replay that can never succeed. Publishing validators reject this way by design.
|
|
179
|
+
if (isClientError(err)) {
|
|
180
|
+
return { error: `Step run not reported: ${err instanceof Error ? err.message : String(err)}` };
|
|
181
|
+
}
|
|
167
182
|
const size = queueChange({ method: 'POST', path, body: rest, timestamp: new Date().toISOString() });
|
|
168
183
|
return {
|
|
169
184
|
warning: `Sync failed — change queued: ${err instanceof Error ? err.message : String(err)}`,
|
|
@@ -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,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/mcp/tools/workflows.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cliangdev/conductor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Agentic software development platform — AI-driven PRD, implementation, and beyond",
|
|
5
5
|
"license": "SEE LICENSE IN ../LICENSE",
|
|
6
6
|
"repository": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
35
|
-
"chalk": "^
|
|
35
|
+
"chalk": "^6.0.0",
|
|
36
36
|
"chokidar": "^5.0.0",
|
|
37
37
|
"commander": "^15.0.0",
|
|
38
38
|
"open": "^11.0.0",
|