@relayfile/adapter-linear 0.3.12 → 0.3.15

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 (58) hide show
  1. package/discovery/linear/.adapter.md +62 -1
  2. package/discovery/linear/projects/.create.example.json +6 -0
  3. package/discovery/linear/projects/.schema.json +147 -0
  4. package/discovery/linear/projects/{projectId}/add-issues.json/.create.example.json +5 -0
  5. package/discovery/linear/projects/{projectId}/add-issues.json/.schema.json +88 -0
  6. package/discovery/linear/projects/{projectId}/meta.json/.create.example.json +3 -0
  7. package/discovery/linear/projects/{projectId}/meta.json/.schema.json +121 -0
  8. package/dist/__tests__/aliases.test.js +8 -8
  9. package/dist/__tests__/aliases.test.js.map +1 -1
  10. package/dist/__tests__/emit-auxiliary-files.test.js +144 -9
  11. package/dist/__tests__/emit-auxiliary-files.test.js.map +1 -1
  12. package/dist/__tests__/index-emission.test.js +16 -4
  13. package/dist/__tests__/index-emission.test.js.map +1 -1
  14. package/dist/__tests__/linear-adapter.test.js +7 -7
  15. package/dist/__tests__/linear-adapter.test.js.map +1 -1
  16. package/dist/__tests__/path-mapper.test.js +12 -1
  17. package/dist/__tests__/path-mapper.test.js.map +1 -1
  18. package/dist/emit-auxiliary-files.d.ts +16 -7
  19. package/dist/emit-auxiliary-files.d.ts.map +1 -1
  20. package/dist/emit-auxiliary-files.js +113 -13
  21. package/dist/emit-auxiliary-files.js.map +1 -1
  22. package/dist/index-emitter.d.ts +2 -1
  23. package/dist/index-emitter.d.ts.map +1 -1
  24. package/dist/index-emitter.js +4 -1
  25. package/dist/index-emitter.js.map +1 -1
  26. package/dist/layout-prompt.d.ts +1 -1
  27. package/dist/layout-prompt.d.ts.map +1 -1
  28. package/dist/layout-prompt.js +13 -3
  29. package/dist/layout-prompt.js.map +1 -1
  30. package/dist/layout.d.ts.map +1 -1
  31. package/dist/layout.js +15 -3
  32. package/dist/layout.js.map +1 -1
  33. package/dist/layout.test.js +3 -0
  34. package/dist/layout.test.js.map +1 -1
  35. package/dist/linear-adapter.d.ts.map +1 -1
  36. package/dist/linear-adapter.js +58 -9
  37. package/dist/linear-adapter.js.map +1 -1
  38. package/dist/path-mapper.d.ts +15 -1
  39. package/dist/path-mapper.d.ts.map +1 -1
  40. package/dist/path-mapper.js +39 -0
  41. package/dist/path-mapper.js.map +1 -1
  42. package/dist/queries.d.ts +15 -7
  43. package/dist/queries.d.ts.map +1 -1
  44. package/dist/queries.js +14 -0
  45. package/dist/queries.js.map +1 -1
  46. package/dist/resources.d.ts +21 -0
  47. package/dist/resources.d.ts.map +1 -1
  48. package/dist/resources.js +24 -0
  49. package/dist/resources.js.map +1 -1
  50. package/dist/types.d.ts +34 -8
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/writeback.d.ts +4 -1
  53. package/dist/writeback.d.ts.map +1 -1
  54. package/dist/writeback.js +145 -6
  55. package/dist/writeback.js.map +1 -1
  56. package/dist/writeback.test.js +122 -5
  57. package/dist/writeback.test.js.map +1 -1
  58. package/package.json +2 -2
@@ -20,6 +20,27 @@ export declare const resources: readonly [{
20
20
  readonly idPattern: RegExp;
21
21
  readonly schema: "discovery/linear/issues/{issueId}/comments/.schema.json";
22
22
  readonly createExample: "discovery/linear/issues/{issueId}/comments/.create.example.json";
23
+ }, {
24
+ readonly name: "projects";
25
+ readonly path: "/linear/projects";
26
+ readonly pathPattern: RegExp;
27
+ readonly idPattern: RegExp;
28
+ readonly schema: "discovery/linear/projects/.schema.json";
29
+ readonly createExample: "discovery/linear/projects/.create.example.json";
30
+ }, {
31
+ readonly name: "projects";
32
+ readonly path: "/linear/projects/{projectId}/meta.json";
33
+ readonly pathPattern: RegExp;
34
+ readonly idPattern: RegExp;
35
+ readonly schema: "discovery/linear/projects/{projectId}/meta.json/.schema.json";
36
+ readonly createExample: "discovery/linear/projects/{projectId}/meta.json/.create.example.json";
37
+ }, {
38
+ readonly name: "project-issue-assignments";
39
+ readonly path: "/linear/projects/{projectId}/add-issues.json";
40
+ readonly pathPattern: RegExp;
41
+ readonly idPattern: RegExp;
42
+ readonly schema: "discovery/linear/projects/{projectId}/add-issues.json/.schema.json";
43
+ readonly createExample: "discovery/linear/projects/{projectId}/add-issues.json/.create.example.json";
23
44
  }, {
24
45
  readonly name: "agent-activities";
25
46
  readonly path: "/linear/agent-sessions/{sessionId}/activities";
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;EAyB+B,CAAC;AAEtD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAGlF"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiD+B,CAAC;AAEtD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAGlF"}
package/dist/resources.js CHANGED
@@ -15,6 +15,30 @@ export const resources = [
15
15
  schema: "discovery/linear/issues/{issueId}/comments/.schema.json",
16
16
  createExample: "discovery/linear/issues/{issueId}/comments/.create.example.json",
17
17
  },
18
+ {
19
+ name: "projects",
20
+ path: "/linear/projects",
21
+ pathPattern: /^\/linear\/projects(?:\/[^\/]+(?:\.json)?)?$/,
22
+ idPattern: /^(?:[A-Za-z0-9_.~-]+(?:--|__))?(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i,
23
+ schema: "discovery/linear/projects/.schema.json",
24
+ createExample: "discovery/linear/projects/.create.example.json",
25
+ },
26
+ {
27
+ name: "projects",
28
+ path: "/linear/projects/{projectId}/meta.json",
29
+ pathPattern: /^\/linear\/projects\/[^\/]+\/meta\.json$/,
30
+ idPattern: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,
31
+ schema: "discovery/linear/projects/{projectId}/meta.json/.schema.json",
32
+ createExample: "discovery/linear/projects/{projectId}/meta.json/.create.example.json",
33
+ },
34
+ {
35
+ name: "project-issue-assignments",
36
+ path: "/linear/projects/{projectId}/add-issues.json",
37
+ pathPattern: /^\/linear\/projects\/[^\/]+\/add-issues\.json$/,
38
+ idPattern: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,
39
+ schema: "discovery/linear/projects/{projectId}/add-issues.json/.schema.json",
40
+ createExample: "discovery/linear/projects/{projectId}/add-issues.json/.create.example.json",
41
+ },
18
42
  {
19
43
  name: "agent-activities",
20
44
  path: "/linear/agent-sessions/{sessionId}/activities",
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4CAA4C;QACzD,SAAS,EAAE,gHAAgH;QAC3H,MAAM,EAAE,sCAAsC;QAC9C,aAAa,EAAE,8CAA8C;KAC9D;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mCAAmC;QACzC,WAAW,EAAE,8DAA8D;QAC3E,SAAS,EAAE,gHAAgH;QAC3H,MAAM,EAAE,yDAAyD;QACjE,aAAa,EAAE,iEAAiE;KACjF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,+CAA+C;QACrD,WAAW,EAAE,wEAAwE;QACrF,SAAS,EAAE,0GAA0G;QACrH,MAAM,EAAE,qEAAqE;QAC7E,aAAa,EAAE,6EAA6E;KAC7F;CACkD,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4CAA4C;QACzD,SAAS,EAAE,gHAAgH;QAC3H,MAAM,EAAE,sCAAsC;QAC9C,aAAa,EAAE,8CAA8C;KAC9D;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mCAAmC;QACzC,WAAW,EAAE,8DAA8D;QAC3E,SAAS,EAAE,gHAAgH;QAC3H,MAAM,EAAE,yDAAyD;QACjE,aAAa,EAAE,iEAAiE;KACjF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,8CAA8C;QAC3D,SAAS,EAAE,gHAAgH;QAC3H,MAAM,EAAE,wCAAwC;QAChD,aAAa,EAAE,gDAAgD;KAChE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,wCAAwC;QAC9C,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,iEAAiE;QAC5E,MAAM,EAAE,8DAA8D;QACtE,aAAa,EAAE,sEAAsE;KACtF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,8CAA8C;QACpD,WAAW,EAAE,gDAAgD;QAC7D,SAAS,EAAE,iEAAiE;QAC5E,MAAM,EAAE,oEAAoE;QAC5E,aAAa,EAAE,4EAA4E;KAC5F;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,+CAA+C;QACrD,WAAW,EAAE,wEAAwE;QACrF,SAAS,EAAE,0GAA0G;QACrH,MAAM,EAAE,qEAAqE;QAC7E,aAAa,EAAE,6EAA6E;KAC7F;CACkD,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACjF,CAAC"}
package/dist/types.d.ts CHANGED
@@ -11,17 +11,19 @@ export type JsonObject = {
11
11
  [key: string]: JsonValue;
12
12
  };
13
13
  /**
14
- * Describes a Linear write the cloud writeback engine should execute via the
15
- * provider proxy. Linear's API is GraphQL, so every writeback is a POST to
16
- * `/graphql` with `{ query, variables }`.
14
+ * Describes a Linear write the cloud writeback engine should execute. Issue,
15
+ * comment, and agent activity writes still proxy Linear GraphQL directly;
16
+ * project writes use the companion linear-relay Nango actions because those
17
+ * actions own ProjectStatusType resolution and archive semantics.
17
18
  */
18
19
  export interface LinearWritebackRequest {
19
- action: 'create_agent_activity' | 'create_comment' | 'create_issue' | 'delete_issue' | 'update_issue';
20
- method: 'POST';
21
- endpoint: '/graphql';
20
+ action: 'add-issues-to-project' | 'archive-project' | 'create_agent_activity' | 'create_comment' | 'create_issue' | 'create-project' | 'delete_issue' | 'update_issue' | 'update-project';
21
+ method: 'PATCH' | 'POST';
22
+ endpoint: string;
22
23
  body: {
23
- query: string;
24
- variables: Record<string, unknown>;
24
+ query?: string;
25
+ variables?: Record<string, unknown>;
26
+ [key: string]: unknown;
25
27
  };
26
28
  }
27
29
  export type LinearAgentActivityType = 'action' | 'elicitation' | 'error' | 'response' | 'thought';
@@ -72,8 +74,17 @@ export interface LinearTeam {
72
74
  export interface LinearState {
73
75
  id: string;
74
76
  name?: string;
77
+ description?: string | null;
75
78
  type?: string;
76
79
  color?: string;
80
+ position?: number;
81
+ team_id?: string;
82
+ team_key?: string | null;
83
+ team_name?: string | null;
84
+ createdAt?: string;
85
+ created_at?: string;
86
+ updatedAt?: string;
87
+ updated_at?: string;
77
88
  }
78
89
  export interface LinearLabel {
79
90
  id: string;
@@ -83,7 +94,13 @@ export interface LinearLabel {
83
94
  export interface LinearProjectReference {
84
95
  id: string;
85
96
  name?: string;
97
+ slug?: string;
98
+ slugId?: string;
86
99
  state?: string;
100
+ lead?: {
101
+ id?: string | null;
102
+ } | null;
103
+ leadId?: string | null;
87
104
  url?: string;
88
105
  }
89
106
  export interface LinearCycleReference {
@@ -107,7 +124,11 @@ export interface LinearProject {
107
124
  name: string;
108
125
  description?: string | null;
109
126
  state?: string;
127
+ slug?: string | null;
128
+ slugId?: string | null;
110
129
  progress?: number | null;
130
+ startDate?: string | null;
131
+ start_date?: string | null;
111
132
  targetDate?: string | null;
112
133
  target_date?: string | null;
113
134
  startedAt?: string | null;
@@ -118,6 +139,11 @@ export interface LinearProject {
118
139
  created_at?: string;
119
140
  updatedAt?: string;
120
141
  updated_at?: string;
142
+ lead?: LinearUser | null;
143
+ leadId?: string | null;
144
+ lead_id?: string | null;
145
+ color?: string | null;
146
+ icon?: string | null;
121
147
  team_ids?: string[];
122
148
  teams?: LinearTeam[];
123
149
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
1
  import type { LinearWritebackRequest } from './types.js';
2
2
  export { ReadOnlyFieldError } from '@relayfile/adapter-core';
3
3
  /**
4
- * Resolve a relayfile writeback into a Linear GraphQL mutation request.
4
+ * Resolve a relayfile writeback into a Linear mutation or action request.
5
5
  *
6
6
  * Supported routes (today):
7
7
  * POST /linear/issues/<slug>--<uuid>/comments/<draft>.json → commentCreate
8
8
  * POST /linear/agent-sessions/<id>/activities/<draft>.json → agentActivityCreate
9
9
  * POST /linear/issues/<draft>.json → issueCreate
10
10
  * PATCH/PUT /linear/issues/<slug>--<uuid>.json → issueUpdate
11
+ * POST /linear/projects/<draft>.json → create-project action
12
+ * PATCH/PUT /linear/projects/<uuid>/meta.json → update-project/archive-project action
13
+ * POST /linear/projects/<uuid>/add-issues.json → add-issues-to-project action
11
14
  *
12
15
  * The path-mapper emits issue paths as `<slug>__<uuid>` and older mounts may
13
16
  * still have `<slug>--<32-hex>`. We reverse the suffix to recover the
@@ -1 +1 @@
1
- {"version":3,"file":"writeback.d.ts","sourceRoot":"","sources":["../src/writeback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA2D,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAElH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAgC7F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAgBzE"}
1
+ {"version":3,"file":"writeback.d.ts","sourceRoot":"","sources":["../src/writeback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA2D,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAElH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAkD7F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAgBzE"}
package/dist/writeback.js CHANGED
@@ -2,13 +2,16 @@ import { ReadOnlyFieldError, classifyWrite } from '@relayfile/adapter-core';
2
2
  import { resources } from './resources.js';
3
3
  export { ReadOnlyFieldError } from '@relayfile/adapter-core';
4
4
  /**
5
- * Resolve a relayfile writeback into a Linear GraphQL mutation request.
5
+ * Resolve a relayfile writeback into a Linear mutation or action request.
6
6
  *
7
7
  * Supported routes (today):
8
8
  * POST /linear/issues/<slug>--<uuid>/comments/<draft>.json → commentCreate
9
9
  * POST /linear/agent-sessions/<id>/activities/<draft>.json → agentActivityCreate
10
10
  * POST /linear/issues/<draft>.json → issueCreate
11
11
  * PATCH/PUT /linear/issues/<slug>--<uuid>.json → issueUpdate
12
+ * POST /linear/projects/<draft>.json → create-project action
13
+ * PATCH/PUT /linear/projects/<uuid>/meta.json → update-project/archive-project action
14
+ * POST /linear/projects/<uuid>/add-issues.json → add-issues-to-project action
12
15
  *
13
16
  * The path-mapper emits issue paths as `<slug>__<uuid>` and older mounts may
14
17
  * still have `<slug>--<32-hex>`. We reverse the suffix to recover the
@@ -38,6 +41,21 @@ export function resolveWritebackRequest(path, content) {
38
41
  if (issueFileMatch?.[1] && route?.resource.name === 'issues' && route.kind === 'patch') {
39
42
  return buildIssueUpdate(extractLinearId(issueFileMatch[1]), content);
40
43
  }
44
+ const projectFileMatch = path.match(/^\/linear\/projects\/([^/]+)\.json$/);
45
+ if (projectFileMatch?.[1] && route?.resource.name === 'projects' && route.kind === 'create') {
46
+ return buildProjectCreate(content);
47
+ }
48
+ if (projectFileMatch?.[1] && route?.resource.name === 'projects' && route.kind === 'patch') {
49
+ return buildProjectUpdate(extractLinearId(projectFileMatch[1]), content);
50
+ }
51
+ const projectMetaMatch = path.match(/^\/linear\/projects\/([^/]+)\/meta\.json$/);
52
+ if (projectMetaMatch?.[1] && route?.resource.name === 'projects' && route.kind === 'patch') {
53
+ return buildProjectUpdate(extractLinearId(projectMetaMatch[1]), content);
54
+ }
55
+ const projectAssignMatch = path.match(/^\/linear\/projects\/([^/]+)\/add-issues\.json$/);
56
+ if (projectAssignMatch?.[1] && route?.resource.name === 'project-issue-assignments') {
57
+ return buildProjectAddIssues(extractLinearId(projectAssignMatch[1]), content);
58
+ }
41
59
  throw new Error(`No Linear writeback rule matched ${path}`);
42
60
  }
43
61
  export function resolveDeleteRequest(path) {
@@ -133,6 +151,7 @@ const ISSUE_DELETE_MUTATION = `mutation RelayfileIssueDelete($id: String!) {
133
151
  success
134
152
  }
135
153
  }`;
154
+ const LINEAR_PROJECT_STATES = new Set(['planned', 'started', 'paused', 'completed', 'canceled']);
136
155
  /**
137
156
  * Build a `commentCreate` mutation request for the writeback engine.
138
157
  *
@@ -362,11 +381,11 @@ const ISSUE_UPDATE_ALLOWLIST = new Set([
362
381
  */
363
382
  function buildIssueUpdate(issueId, content) {
364
383
  const parsed = parseJsonObject(content);
365
- rejectReadOnlyFields(parsed);
366
- const source = looksLikeSyncedEnvelope(parsed)
367
- ? parsed.payload
368
- : parsed;
369
- rejectReadOnlyFields(source);
384
+ const isSyncedEnvelope = looksLikeSyncedEnvelope(parsed);
385
+ if (!isSyncedEnvelope) {
386
+ rejectReadOnlyFields(parsed);
387
+ }
388
+ const source = isSyncedEnvelope ? parsed.payload : parsed;
370
389
  const input = {};
371
390
  for (const [key, value] of Object.entries(source)) {
372
391
  if (!ISSUE_UPDATE_ALLOWLIST.has(key))
@@ -384,6 +403,126 @@ function buildIssueUpdate(issueId, content) {
384
403
  body: { query: ISSUE_UPDATE_MUTATION, variables: { id: issueId, input } },
385
404
  };
386
405
  }
406
+ const PROJECT_CREATE_ALLOWLIST = new Set([
407
+ 'name',
408
+ 'description',
409
+ 'teamIds',
410
+ 'state',
411
+ 'leadId',
412
+ 'startDate',
413
+ 'targetDate',
414
+ 'color',
415
+ 'icon',
416
+ ]);
417
+ const PROJECT_UPDATE_ALLOWLIST = new Set([
418
+ 'name',
419
+ 'description',
420
+ 'state',
421
+ 'leadId',
422
+ 'startDate',
423
+ 'targetDate',
424
+ 'color',
425
+ 'icon',
426
+ ]);
427
+ function buildProjectCreate(content) {
428
+ const payload = parseJsonObject(content);
429
+ rejectReadOnlyFields(payload);
430
+ const name = readString(payload, 'name');
431
+ if (!name) {
432
+ throw new Error('projects/<draft>.json writeback requires a `name`');
433
+ }
434
+ const teamIds = readProjectTeamIds(payload);
435
+ if (!teamIds || teamIds.length === 0) {
436
+ throw new Error('projects/<draft>.json writeback requires `teamId` or `teamIds`');
437
+ }
438
+ const input = copyAllowedFields(payload, PROJECT_CREATE_ALLOWLIST);
439
+ input.name = name;
440
+ input.teamIds = teamIds;
441
+ validateProjectState(input.state);
442
+ return {
443
+ action: 'create-project',
444
+ method: 'POST',
445
+ endpoint: '/linear/projects',
446
+ body: input,
447
+ };
448
+ }
449
+ function buildProjectUpdate(projectId, content) {
450
+ const parsed = parseJsonObject(content);
451
+ const isSyncedEnvelope = looksLikeSyncedEnvelope(parsed);
452
+ if (!isSyncedEnvelope) {
453
+ rejectReadOnlyFields(parsed);
454
+ }
455
+ const source = isSyncedEnvelope ? parsed.payload : parsed;
456
+ const archive = readBoolean(source, 'archived');
457
+ const input = copyAllowedFields(source, PROJECT_UPDATE_ALLOWLIST);
458
+ validateProjectState(input.state);
459
+ if (archive !== undefined) {
460
+ if (archive !== true) {
461
+ throw new Error('projects/<id>/meta.json archive writeback only supports `archived: true`');
462
+ }
463
+ if (Object.keys(input).length > 0) {
464
+ throw new Error('projects/<id>/meta.json archive writeback cannot be mixed with other project updates');
465
+ }
466
+ return {
467
+ action: 'archive-project',
468
+ method: 'POST',
469
+ endpoint: `/linear/projects/${encodeURIComponent(projectId)}/archive`,
470
+ body: { id: projectId, trash: false },
471
+ };
472
+ }
473
+ if (Object.keys(input).length === 0) {
474
+ throw new Error('projects/<id>/meta.json update writeback requires at least one mutable field ' +
475
+ '(name, description, state, leadId, startDate, targetDate, color, icon)');
476
+ }
477
+ return {
478
+ action: 'update-project',
479
+ method: 'PATCH',
480
+ endpoint: `/linear/projects/${encodeURIComponent(projectId)}`,
481
+ body: { id: projectId, ...input },
482
+ };
483
+ }
484
+ function validateProjectState(value) {
485
+ if (value === undefined)
486
+ return;
487
+ if (typeof value === 'string' && LINEAR_PROJECT_STATES.has(value))
488
+ return;
489
+ throw new Error('Linear project `state` must be one of planned, started, paused, completed, canceled. ' +
490
+ '`backlog` is a Linear-internal starter state and cannot be set via writeback; ' +
491
+ 'change state via Linear UI or transition forward.');
492
+ }
493
+ function buildProjectAddIssues(projectId, content) {
494
+ const payload = parseJsonObject(content);
495
+ rejectReadOnlyFields(payload);
496
+ const issueIds = readStringArray(payload, 'issueIds');
497
+ if (!issueIds || issueIds.length === 0) {
498
+ throw new Error('projects/<id>/add-issues.json writeback requires a non-empty `issueIds` array');
499
+ }
500
+ if (new Set(issueIds).size !== issueIds.length) {
501
+ throw new Error('projects/<id>/add-issues.json writeback requires unique `issueIds` values');
502
+ }
503
+ return {
504
+ action: 'add-issues-to-project',
505
+ method: 'POST',
506
+ endpoint: `/linear/projects/${encodeURIComponent(projectId)}/add-issues`,
507
+ body: { projectId, issueIds },
508
+ };
509
+ }
510
+ function copyAllowedFields(source, allowlist) {
511
+ const input = {};
512
+ for (const [key, value] of Object.entries(source)) {
513
+ if (!allowlist.has(key))
514
+ continue;
515
+ input[key] = value;
516
+ }
517
+ return input;
518
+ }
519
+ function readProjectTeamIds(payload) {
520
+ const teamIds = readStringArray(payload, 'teamIds') ?? [];
521
+ const teamId = readString(payload, 'teamId');
522
+ const ids = [...teamIds, ...(teamId ? [teamId] : [])];
523
+ const unique = [...new Set(ids)];
524
+ return unique.length > 0 ? unique : undefined;
525
+ }
387
526
  function rejectReadOnlyFields(payload) {
388
527
  for (const key of Object.keys(payload)) {
389
528
  if (READ_ONLY_FIELDS.has(key)) {
@@ -1 +1 @@
1
- {"version":3,"file":"writeback.js","sourceRoot":"","sources":["../src/writeback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writeback.js","sourceRoot":"","sources":["../src/writeback.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ describe('linear writeback', () => {
42
42
  assert.strictEqual(req.action, 'create_agent_activity');
43
43
  assert.strictEqual(req.method, 'POST');
44
44
  assert.strictEqual(req.endpoint, '/graphql');
45
- assert.match(req.body.query, /agentActivityCreate/);
45
+ assert.match(String(req.body.query), /agentActivityCreate/);
46
46
  assert.deepStrictEqual(req.body.variables, {
47
47
  input: {
48
48
  agentSessionId: 'session_linear_123',
@@ -147,15 +147,28 @@ describe('linear writeback', () => {
147
147
  descriptionData: '{"type":"doc"}',
148
148
  });
149
149
  });
150
- it('rejects synced envelopes because their metadata fields are read-only', () => {
151
- assert.throws(() => resolveWritebackRequest(`/linear/issues/auth-refactor--${PAGE_HEX}.json`, JSON.stringify({
150
+ it('updates an issue from a synced envelope while dropping read-only metadata', () => {
151
+ const req = resolveWritebackRequest(`/linear/issues/auth-refactor--${PAGE_HEX}.json`, JSON.stringify({
152
152
  provider: 'linear',
153
+ objectType: 'issue',
154
+ objectId: PAGE_UUID,
153
155
  connectionId: 'conn-1',
154
156
  workspaceId: 'wks-1',
155
157
  payload: {
158
+ id: PAGE_UUID,
159
+ url: 'https://linear.app/example/issue/AR-1/example',
156
160
  title: 'Edited title',
161
+ projectId: 'project-1',
162
+ updatedAt: '2026-06-15T00:00:00Z',
157
163
  },
158
- })), (error) => error instanceof ReadOnlyFieldError && error.field === 'provider');
164
+ }));
165
+ assert.strictEqual(req.action, 'update_issue');
166
+ const variables = req.body.variables;
167
+ assert.strictEqual(variables.id, PAGE_UUID);
168
+ assert.deepStrictEqual(variables.input, {
169
+ title: 'Edited title',
170
+ projectId: 'project-1',
171
+ });
159
172
  });
160
173
  });
161
174
  describe('issue delete', () => {
@@ -170,9 +183,113 @@ describe('linear writeback', () => {
170
183
  assert.throws(() => resolveDeleteRequest('/linear/issues/audit-log-export.json'), /No Linear delete writeback rule matched/);
171
184
  });
172
185
  });
186
+ describe('project create/update/assign', () => {
187
+ const PROJECT_UUID = 'f97660a3-a08c-4157-998f-e2d91951f3e7';
188
+ const ISSUE_A = '11111111-1111-4111-8111-111111111111';
189
+ const ISSUE_B = '22222222-2222-4222-8222-222222222222';
190
+ it('creates a project from a factory-create draft and forwards teamId as teamIds', () => {
191
+ const req = resolveWritebackRequest('/linear/projects/factory-create-operator-key.json', JSON.stringify({
192
+ name: 'Factory',
193
+ teamId: 'team-1',
194
+ state: 'planned',
195
+ leadId: 'user-1',
196
+ }));
197
+ assert.strictEqual(req.action, 'create-project');
198
+ assert.strictEqual(req.endpoint, '/linear/projects');
199
+ assert.deepStrictEqual(req.body, {
200
+ name: 'Factory',
201
+ state: 'planned',
202
+ leadId: 'user-1',
203
+ teamIds: ['team-1'],
204
+ });
205
+ });
206
+ it('dedupes teamIds on project create and rejects invalid states', () => {
207
+ const req = resolveWritebackRequest('/linear/projects/factory-create-operator-key.json', JSON.stringify({
208
+ name: 'Factory',
209
+ teamId: 'team-1',
210
+ teamIds: ['team-1', 'team-2'],
211
+ }));
212
+ assert.deepStrictEqual(req.body.teamIds, ['team-1', 'team-2']);
213
+ assert.throws(() => resolveWritebackRequest('/linear/projects/factory-create-operator-key.json', JSON.stringify({ name: 'Factory', teamIds: ['team-1'], state: 'backlog' })), /backlog` is a Linear-internal starter state/);
214
+ });
215
+ it('updates a project through its meta.json directory record', () => {
216
+ const req = resolveWritebackRequest(`/linear/projects/${PROJECT_UUID}/meta.json`, JSON.stringify({
217
+ state: 'started',
218
+ targetDate: '2026-06-30',
219
+ leadId: 'user-1',
220
+ }));
221
+ assert.strictEqual(req.action, 'update-project');
222
+ assert.strictEqual(req.method, 'PATCH');
223
+ assert.strictEqual(req.endpoint, `/linear/projects/${PROJECT_UUID}`);
224
+ assert.deepStrictEqual(req.body, {
225
+ id: PROJECT_UUID,
226
+ state: 'started',
227
+ targetDate: '2026-06-30',
228
+ leadId: 'user-1',
229
+ });
230
+ });
231
+ it('updates legacy flat project records during the migration window', () => {
232
+ const req = resolveWritebackRequest(`/linear/projects/${PROJECT_UUID}.json`, JSON.stringify({
233
+ name: 'Factory',
234
+ state: 'started',
235
+ }));
236
+ assert.strictEqual(req.action, 'update-project');
237
+ assert.strictEqual(req.method, 'PATCH');
238
+ assert.strictEqual(req.endpoint, `/linear/projects/${PROJECT_UUID}`);
239
+ assert.deepStrictEqual(req.body, {
240
+ id: PROJECT_UUID,
241
+ name: 'Factory',
242
+ state: 'started',
243
+ });
244
+ });
245
+ it('updates a project from a synced meta.json envelope', () => {
246
+ const req = resolveWritebackRequest(`/linear/projects/${PROJECT_UUID}/meta.json`, JSON.stringify({
247
+ provider: 'linear',
248
+ objectType: 'project',
249
+ objectId: PROJECT_UUID,
250
+ workspaceId: 'workspace-1',
251
+ payload: {
252
+ id: PROJECT_UUID,
253
+ name: 'Factory',
254
+ url: 'https://linear.app/agent-relay/project/factory',
255
+ state: 'paused',
256
+ targetDate: '2026-07-31',
257
+ updatedAt: '2026-06-15T00:00:00Z',
258
+ },
259
+ }));
260
+ assert.strictEqual(req.action, 'update-project');
261
+ assert.strictEqual(req.method, 'PATCH');
262
+ assert.strictEqual(req.endpoint, `/linear/projects/${PROJECT_UUID}`);
263
+ assert.deepStrictEqual(req.body, {
264
+ id: PROJECT_UUID,
265
+ name: 'Factory',
266
+ state: 'paused',
267
+ targetDate: '2026-07-31',
268
+ });
269
+ });
270
+ it('archives a project via projectArchive and rejects mixed archive/update payloads', () => {
271
+ const req = resolveWritebackRequest(`/linear/projects/${PROJECT_UUID}/meta.json`, JSON.stringify({ archived: true }));
272
+ assert.strictEqual(req.action, 'archive-project');
273
+ assert.strictEqual(req.endpoint, `/linear/projects/${PROJECT_UUID}/archive`);
274
+ assert.deepStrictEqual(req.body, { id: PROJECT_UUID, trash: false });
275
+ assert.throws(() => resolveWritebackRequest(`/linear/projects/${PROJECT_UUID}/meta.json`, JSON.stringify({ archived: true, state: 'started' })), /cannot be mixed/);
276
+ });
277
+ it('builds a multi-issue project assignment request from add-issues.json', () => {
278
+ const req = resolveWritebackRequest(`/linear/projects/${PROJECT_UUID}/add-issues.json`, JSON.stringify({ issueIds: [ISSUE_A, ISSUE_B] }));
279
+ assert.strictEqual(req.action, 'add-issues-to-project');
280
+ assert.strictEqual(req.endpoint, `/linear/projects/${PROJECT_UUID}/add-issues`);
281
+ assert.deepStrictEqual(req.body, {
282
+ projectId: PROJECT_UUID,
283
+ issueIds: [ISSUE_A, ISSUE_B],
284
+ });
285
+ });
286
+ it('rejects duplicate issue ids in a project assignment request', () => {
287
+ assert.throws(() => resolveWritebackRequest(`/linear/projects/${PROJECT_UUID}/add-issues.json`, JSON.stringify({ issueIds: [ISSUE_A, ISSUE_A] })), /unique `issueIds`/);
288
+ });
289
+ });
173
290
  describe('unmatched paths', () => {
174
291
  it('throws for unrecognized paths', () => {
175
- assert.throws(() => resolveWritebackRequest('/linear/projects/foo.json', '{}'), /No Linear writeback rule matched/);
292
+ assert.throws(() => resolveWritebackRequest('/linear/projects/foo/bar.json', '{}'), /No Linear writeback rule matched/);
176
293
  });
177
294
  });
178
295
  });