@love-moon/conductor-sdk 0.12.0 → 0.13.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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @love-moon/conductor-sdk
2
2
 
3
+ ## 0.13.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 80ab13e: `listTasks({ projectId })` now lists a project's tasks by their real project.
8
+
9
+ Tasks can now be moved (filed) under any project in the web UI. That move is
10
+ display-only, and `GET /api/tasks?project_id=` keeps grouping by where a task is
11
+ filed for user-facing clients. The SDK now sends `project_scope=real`, so an
12
+ agent's `list_tasks` still sees every task that actually belongs to the project
13
+ (including ones the user filed elsewhere) and does not pick up tasks filed into
14
+ it from other projects.
15
+
3
16
  ## 0.12.0
4
17
 
5
18
  ## 0.11.2
@@ -6,6 +6,8 @@ export interface Issue {
6
6
  description?: string | null;
7
7
  status: string;
8
8
  priority?: string | null;
9
+ /** "feature", "bug", or "research". */
10
+ type?: string | null;
9
11
  position?: number | null;
10
12
  metadata?: Record<string, unknown> | null;
11
13
  createdAt?: string | null;
@@ -23,6 +25,7 @@ export interface CreateIssueInput {
23
25
  title: string;
24
26
  description?: string;
25
27
  priority?: string;
28
+ type?: string;
26
29
  status?: string;
27
30
  metadata?: Record<string, unknown>;
28
31
  clientRequestId?: string;
@@ -31,6 +34,7 @@ export interface UpdateIssueInput {
31
34
  title?: string;
32
35
  description?: string;
33
36
  priority?: string;
37
+ type?: string;
34
38
  status?: string;
35
39
  metadata?: Record<string, unknown>;
36
40
  }
@@ -11,6 +11,7 @@ const normalizeIssue = (payload) => {
11
11
  description: payload.description ?? null,
12
12
  status: String(payload.status ?? ''),
13
13
  priority: payload.priority ?? null,
14
+ type: payload.type ?? null,
14
15
  position: typeof payload.position === 'number' ? payload.position : null,
15
16
  metadata: payload.metadata && typeof payload.metadata === 'object' && !Array.isArray(payload.metadata)
16
17
  ? payload.metadata
@@ -109,6 +110,9 @@ export class IssuesApi {
109
110
  if (input.priority !== undefined) {
110
111
  params.priority = input.priority;
111
112
  }
113
+ if (input.type !== undefined) {
114
+ params.type = input.type;
115
+ }
112
116
  if (input.status !== undefined) {
113
117
  params.status = input.status;
114
118
  }
@@ -130,6 +134,9 @@ export class IssuesApi {
130
134
  if (patch.priority !== undefined) {
131
135
  params.priority = patch.priority;
132
136
  }
137
+ if (patch.type !== undefined) {
138
+ params.type = patch.type;
139
+ }
133
140
  if (patch.status !== undefined) {
134
141
  params.status = patch.status;
135
142
  }
@@ -157,6 +157,10 @@ export class BackendApiClient {
157
157
  const query = new URLSearchParams();
158
158
  if (params.projectId) {
159
159
  query.set('project_id', params.projectId);
160
+ // Match the task's REAL project. By default the server groups by where the
161
+ // user filed a task in the web UI (display-only), which would hide this
162
+ // project's filed-out tasks from agents and include foreign ones.
163
+ query.set('project_scope', 'real');
160
164
  }
161
165
  if (params.status) {
162
166
  query.set('status', params.status);
package/dist/client.js CHANGED
@@ -510,12 +510,19 @@ export class ConductorClient {
510
510
  ? payload.hostname
511
511
  : existing?.hostname ?? this.resolveHostname(),
512
512
  });
513
+ // An explicit project_path is the fire's real working directory; record it
514
+ // as `cwd` so an attached terminal opens where the task actually runs.
515
+ const explicitCwd = typeof payload.project_path === 'string' && payload.project_path ? payload.project_path : null;
516
+ const metadata = {
517
+ ...(explicitDaemonName ? { daemonName: explicitDaemonName } : {}),
518
+ ...(explicitCwd ? { cwd: explicitCwd } : {}),
519
+ };
513
520
  if (typeof this.backendApi.updateTask === 'function') {
514
521
  await this.backendApi.updateTask(normalizedTaskId, {
515
522
  backendType: record.backendType ?? null,
516
523
  sessionId: record.sessionId ?? null,
517
524
  sessionFilePath: record.sessionFilePath ?? null,
518
- metadata: explicitDaemonName ? { daemonName: explicitDaemonName } : undefined,
525
+ metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
519
526
  });
520
527
  }
521
528
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@love-moon/conductor-sdk",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/lovemoon-ai/conductor.git"
@@ -33,5 +33,5 @@
33
33
  "typescript": "^5.6.3",
34
34
  "vitest": "^2.1.4"
35
35
  },
36
- "gitCommitId": "c1047e8"
36
+ "gitCommitId": "e1e507f"
37
37
  }