@cliangdev/conductor 0.2.2 → 0.4.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.
Files changed (50) hide show
  1. package/assets/claude/commands/conductor/implement.md +44 -27
  2. package/assets/claude/commands/conductor/prd.md +101 -24
  3. package/assets/claude/commands/conductor/workflow.md +208 -0
  4. package/dist/commands/init.d.ts +1 -1
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +9 -3
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/lint.d.ts.map +1 -1
  9. package/dist/commands/lint.js +49 -2
  10. package/dist/commands/lint.js.map +1 -1
  11. package/dist/commands/login.d.ts +26 -0
  12. package/dist/commands/login.d.ts.map +1 -1
  13. package/dist/commands/login.js +73 -9
  14. package/dist/commands/login.js.map +1 -1
  15. package/dist/daemon/runner.js +1 -1
  16. package/dist/daemon/runner.js.map +1 -1
  17. package/dist/daemon/watcher.d.ts +36 -2
  18. package/dist/daemon/watcher.d.ts.map +1 -1
  19. package/dist/daemon/watcher.js +124 -18
  20. package/dist/daemon/watcher.js.map +1 -1
  21. package/dist/lib/config.d.ts.map +1 -1
  22. package/dist/lib/config.js +6 -2
  23. package/dist/lib/config.js.map +1 -1
  24. package/dist/lib/mermaid-lint.d.ts +21 -0
  25. package/dist/lib/mermaid-lint.d.ts.map +1 -0
  26. package/dist/lib/mermaid-lint.js +102 -0
  27. package/dist/lib/mermaid-lint.js.map +1 -0
  28. package/dist/lib/plugin-assets.d.ts.map +1 -1
  29. package/dist/lib/plugin-assets.js +1 -0
  30. package/dist/lib/plugin-assets.js.map +1 -1
  31. package/dist/mcp/config.d.ts +27 -0
  32. package/dist/mcp/config.d.ts.map +1 -1
  33. package/dist/mcp/config.js +56 -7
  34. package/dist/mcp/config.js.map +1 -1
  35. package/dist/mcp/index.d.ts.map +1 -1
  36. package/dist/mcp/index.js +242 -5
  37. package/dist/mcp/index.js.map +1 -1
  38. package/dist/mcp/tools/integrations.d.ts +10 -0
  39. package/dist/mcp/tools/integrations.d.ts.map +1 -0
  40. package/dist/mcp/tools/integrations.js +12 -0
  41. package/dist/mcp/tools/integrations.js.map +1 -0
  42. package/dist/mcp/tools/issues.d.ts +1 -0
  43. package/dist/mcp/tools/issues.d.ts.map +1 -1
  44. package/dist/mcp/tools/issues.js +9 -2
  45. package/dist/mcp/tools/issues.js.map +1 -1
  46. package/dist/mcp/tools/workflows.d.ts +67 -0
  47. package/dist/mcp/tools/workflows.d.ts.map +1 -0
  48. package/dist/mcp/tools/workflows.js +99 -0
  49. package/dist/mcp/tools/workflows.js.map +1 -0
  50. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workflows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { apiGet, apiPost, apiPatch, apiPut } from '../api.js';
2
+ import { queueChange } from '../queue.js';
3
+ /**
4
+ * COND-18 workflow-aware MCP tools. The surface stays GENERIC + discovery-based: the agent calls
5
+ * list_workflows to learn a project's Workflows (slug + vocabulary), then walks a Work Item by asking
6
+ * get_available_transitions and applying transition_work_item — the Workflow definition drives the walk,
7
+ * so the same tools work for any Workflow. Never generate per-workflow tools.
8
+ */
9
+ export async function listWorkflows(_params, config) {
10
+ return apiGet(`/api/v1/projects/${config.projectId}/workflows`, config);
11
+ }
12
+ export async function getAvailableTransitions(params, config) {
13
+ return apiGet(`/api/v1/projects/${config.projectId}/issues/${params.issueId}/available-transitions`, config);
14
+ }
15
+ export async function transitionWorkItem(params, config) {
16
+ const path = `/api/v1/projects/${config.projectId}/issues/${params.issueId}`;
17
+ const body = { status: params.toStatus };
18
+ try {
19
+ return await apiPatch(path, body, config);
20
+ }
21
+ catch (err) {
22
+ const size = queueChange({ method: 'PATCH', path, body, timestamp: new Date().toISOString() });
23
+ return {
24
+ issueId: params.issueId,
25
+ toStatus: params.toStatus,
26
+ warning: `Sync failed — change queued: ${err instanceof Error ? err.message : String(err)}`,
27
+ queueSize: size,
28
+ };
29
+ }
30
+ }
31
+ export async function recordAsset(params, config) {
32
+ const path = `/api/v1/projects/${config.projectId}/issues/${params.issueId}/assets`;
33
+ const body = {
34
+ type: params.type,
35
+ kind: params.kind,
36
+ ref: params.ref,
37
+ label: params.label,
38
+ done: params.done,
39
+ };
40
+ try {
41
+ return await apiPost(path, body, config);
42
+ }
43
+ catch (err) {
44
+ const size = queueChange({ method: 'POST', path, body, timestamp: new Date().toISOString() });
45
+ return {
46
+ warning: `Sync failed — change queued: ${err instanceof Error ? err.message : String(err)}`,
47
+ queueSize: size,
48
+ };
49
+ }
50
+ }
51
+ // --- Workflow authoring tools (create / read / update / publish / dispatch) ---
52
+ export async function createWorkflow(params, config) {
53
+ const body = { name: params.name, area: params.area };
54
+ if (params.yaml !== undefined)
55
+ body['yaml'] = params.yaml;
56
+ if (params.definition !== undefined)
57
+ body['definition'] = params.definition;
58
+ return apiPost(`/api/v1/projects/${config.projectId}/workflows`, body, config);
59
+ }
60
+ export async function getWorkflow(params, config) {
61
+ return apiGet(`/api/v1/projects/${config.projectId}/workflows/${params.workflowId}`, config);
62
+ }
63
+ export async function updateWorkflow(params, config) {
64
+ const { workflowId, ...rest } = params;
65
+ const body = {};
66
+ if (rest.name !== undefined)
67
+ body['name'] = rest.name;
68
+ if (rest.area !== undefined)
69
+ body['area'] = rest.area;
70
+ if (rest.yaml !== undefined)
71
+ body['yaml'] = rest.yaml;
72
+ if (rest.definition !== undefined)
73
+ body['definition'] = rest.definition;
74
+ return apiPut(`/api/v1/projects/${config.projectId}/workflows/${workflowId}`, body, config);
75
+ }
76
+ export async function publishWorkflow(params, config) {
77
+ return apiPost(`/api/v1/projects/${config.projectId}/workflows/${params.workflowId}/publish`, {}, config);
78
+ }
79
+ export async function dispatchWorkflow(params, config) {
80
+ return apiPost(`/api/v1/projects/${config.projectId}/workflows/${params.workflowId}/dispatch`, { inputs: params.inputs ?? {} }, config);
81
+ }
82
+ export async function getWorkflowRun(params, config) {
83
+ return apiGet(`/api/v1/projects/${config.projectId}/workflows/${params.workflowId}/runs/${params.runId}`, config);
84
+ }
85
+ export async function reportStepRun(params, config) {
86
+ const { issueId, ...rest } = params;
87
+ const path = `/api/v1/projects/${config.projectId}/issues/${issueId}/step-runs`;
88
+ try {
89
+ return await apiPost(path, rest, config);
90
+ }
91
+ catch (err) {
92
+ const size = queueChange({ method: 'POST', path, body: rest, timestamp: new Date().toISOString() });
93
+ return {
94
+ warning: `Sync failed — change queued: ${err instanceof Error ? err.message : String(err)}`,
95
+ queueSize: size,
96
+ };
97
+ }
98
+ }
99
+ //# sourceMappingURL=workflows.js.map
@@ -0,0 +1 @@
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.2.2",
3
+ "version": "0.4.0",
4
4
  "description": "Agentic software development platform — AI-driven PRD, implementation, and beyond",
5
5
  "license": "SEE LICENSE IN ../LICENSE",
6
6
  "repository": {
@@ -28,12 +28,12 @@
28
28
  "@modelcontextprotocol/sdk": "^1.0.0",
29
29
  "chalk": "^5.3.0",
30
30
  "chokidar": "^5.0.0",
31
- "commander": "^14.0.3",
31
+ "commander": "^15.0.0",
32
32
  "open": "^11.0.0",
33
33
  "ora": "^9.4.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@types/node": "^25.6.0",
36
+ "@types/node": "^26.0.0",
37
37
  "ts-node": "^10.9.0",
38
38
  "typescript": "^5.4.0",
39
39
  "vitest": "^4.1.5"