@telora/mcp-products 0.22.126 → 0.22.133

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 (38) hide show
  1. package/dist/affordances.js +1 -1
  2. package/dist/affordances.js.map +1 -1
  3. package/dist/handlers/agentHandlers.d.ts +1 -0
  4. package/dist/handlers/agentHandlers.js +15 -9
  5. package/dist/handlers/agentHandlers.js.map +1 -1
  6. package/dist/handlers/deliveryHandlers.d.ts +2 -0
  7. package/dist/handlers/deliveryHandlers.js +19 -79
  8. package/dist/handlers/deliveryHandlers.js.map +1 -1
  9. package/dist/handlers/externalDataSourceHandlers.d.ts +3 -0
  10. package/dist/handlers/externalDataSourceHandlers.js +130 -0
  11. package/dist/handlers/externalDataSourceHandlers.js.map +1 -0
  12. package/dist/handlers/externalReferenceHandlers.d.ts +3 -0
  13. package/dist/handlers/externalReferenceHandlers.js +96 -0
  14. package/dist/handlers/externalReferenceHandlers.js.map +1 -0
  15. package/dist/handlers/focusHandlers.d.ts +2 -0
  16. package/dist/handlers/focusHandlers.js +12 -2
  17. package/dist/handlers/focusHandlers.js.map +1 -1
  18. package/dist/handlers/index.d.ts +3 -0
  19. package/dist/handlers/index.js +3 -0
  20. package/dist/handlers/index.js.map +1 -1
  21. package/dist/handlers/issueHandlers.d.ts +2 -0
  22. package/dist/handlers/issueHandlers.js +12 -2
  23. package/dist/handlers/issueHandlers.js.map +1 -1
  24. package/dist/handlers/linearHandlers.d.ts +34 -0
  25. package/dist/handlers/linearHandlers.js +131 -0
  26. package/dist/handlers/linearHandlers.js.map +1 -0
  27. package/dist/handlers/prdAuthoringGuide.d.ts +1 -1
  28. package/dist/handlers/prdAuthoringGuide.js +6 -3
  29. package/dist/handlers/prdAuthoringGuide.js.map +1 -1
  30. package/dist/index.js +34 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/shared.d.ts +28 -3
  33. package/dist/shared.js +87 -5
  34. package/dist/shared.js.map +1 -1
  35. package/dist/wire-contract.generated.d.ts +19 -0
  36. package/dist/wire-contract.generated.js +63 -0
  37. package/dist/wire-contract.generated.js.map +1 -0
  38. package/package.json +2 -2
@@ -29,6 +29,16 @@ const FOCUS_LIST_STATUS_VALUES = [...FOCUS_STATUSES, OPEN_FOCUS_SELECTOR];
29
29
  export function isUuid(ref) {
30
30
  return UUID_RE.test(ref);
31
31
  }
32
+ // Field keys this tool forwards to product-api on create/update. Exported so
33
+ // the wire-contract drift test can bind them to the generated manifest
34
+ // projection (../wire-contract.generated.ts) -- an MCP key the manifest does
35
+ // not declare fails that test.
36
+ export const FOCUS_CREATE_FIELD_KEYS = [
37
+ 'name', 'description', 'acceptanceCriteria', 'targetDate', 'readOnly',
38
+ ];
39
+ export const FOCUS_UPDATE_FIELD_KEYS = [
40
+ 'name', 'description', 'acceptanceCriteria', 'targetDate', 'status', 'readOnly', 'assignedAgentRoleId', 'armNote', 'pipelineConfig',
41
+ ];
32
42
  /**
33
43
  * Zod validator for a focus reference: a UUID OR an ordinal focusKey ("f3").
34
44
  * Used wherever a focusId param previously demanded a strict UUID, so a terse
@@ -217,7 +227,7 @@ export function buildFocusHandler(getCreds, profile, callApi = (body) => callPro
217
227
  // readOnly is honored at CREATE (audit focus by construction). It is NOT
218
228
  // in the update field list -- the daemon is the sole writer that flips
219
229
  // read_only=false on ratified release.
220
- const fields = buildFields(params, ['name', 'description', 'acceptanceCriteria', 'targetDate', 'readOnly']);
230
+ const fields = buildFields(params, [...FOCUS_CREATE_FIELD_KEYS]);
221
231
  const body = {
222
232
  action: "focus_create",
223
233
  productId: params.productId,
@@ -244,7 +254,7 @@ export function buildFocusHandler(getCreds, profile, callApi = (body) => callPro
244
254
  if (params.assignedAgentRoleId && (params.armNote === undefined || params.armNote.trim().length === 0)) {
245
255
  return validationError("arm_note_required: arming a focus is a declared act -- pass armNote stating the activation intent in the same call as assignedAgentRoleId.");
246
256
  }
247
- const fields = buildFields(params, ['name', 'description', 'acceptanceCriteria', 'targetDate', 'status', 'readOnly', 'assignedAgentRoleId', 'armNote', 'pipelineConfig']);
257
+ const fields = buildFields(params, [...FOCUS_UPDATE_FIELD_KEYS]);
248
258
  // clearReviewRequest is a write-only escape hatch: translate it to
249
259
  // reviewRequestedAt=null on the wire. Idempotent -- calling against
250
260
  // a focus where review_requested_at is already NULL is a no-op write.
@@ -1 +1 @@
1
- {"version":3,"file":"focusHandlers.js","sourceRoot":"","sources":["../../src/handlers/focusHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focusHandlers.js","sourceRoot":"","sources":["../../src/handlers/focusHandlers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  export { registerProductTools } from "./productHandlers.js";
2
2
  export { registerLocalModelTools } from "./localModelHandlers.js";
3
+ export { registerExternalDataSourceTools } from "./externalDataSourceHandlers.js";
4
+ export { registerExternalReferenceTools } from "./externalReferenceHandlers.js";
5
+ export { registerLinearTools } from "./linearHandlers.js";
3
6
  export { registerDeliveryTools } from "./deliveryHandlers.js";
4
7
  export { registerFocusTools } from "./focusHandlers.js";
5
8
  export { registerFocusDebugTools } from "./focusDebugHandlers.js";
@@ -3,6 +3,9 @@
3
3
  // ---------------------------------------------------------------------------
4
4
  export { registerProductTools } from "./productHandlers.js";
5
5
  export { registerLocalModelTools } from "./localModelHandlers.js";
6
+ export { registerExternalDataSourceTools } from "./externalDataSourceHandlers.js";
7
+ export { registerExternalReferenceTools } from "./externalReferenceHandlers.js";
8
+ export { registerLinearTools } from "./linearHandlers.js";
6
9
  export { registerDeliveryTools } from "./deliveryHandlers.js";
7
10
  export { registerFocusTools } from "./focusHandlers.js";
8
11
  export { registerFocusDebugTools } from "./focusDebugHandlers.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,sCAAsC,EACtC,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,sCAAsC,EACtC,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,3 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { type GetCreds, type ToolProfile } from "../shared.js";
3
+ export declare const ISSUE_CREATE_FIELD_KEYS: readonly ["title", "issueType", "description", "status", "parentIssueId", "priority", "context", "relevantFiles", "dependsOn"];
4
+ export declare const ISSUE_UPDATE_FIELD_KEYS: readonly ["title", "description", "status", "issueType", "parentIssueId", "priority", "context", "relevantFiles", "dependsOn", "deliveryId"];
3
5
  export declare function registerIssueTools(server: McpServer, getCreds: GetCreds, profile?: ToolProfile): void;
@@ -4,6 +4,16 @@
4
4
  // ---------------------------------------------------------------------------
5
5
  import { z } from "zod";
6
6
  import { callProductApi, successResult, validationError, buildFields, wrapHandler, compactEntity, LIST_INDEX_NOTE, } from "../shared.js";
7
+ // Field keys this tool forwards to product-api on create/update. Exported so
8
+ // the wire-contract drift test can bind them to the generated manifest
9
+ // projection (../wire-contract.generated.ts) -- an MCP key the manifest does
10
+ // not declare fails that test.
11
+ export const ISSUE_CREATE_FIELD_KEYS = [
12
+ 'title', 'issueType', 'description', 'status', 'parentIssueId', 'priority', 'context', 'relevantFiles', 'dependsOn',
13
+ ];
14
+ export const ISSUE_UPDATE_FIELD_KEYS = [
15
+ 'title', 'description', 'status', 'issueType', 'parentIssueId', 'priority', 'context', 'relevantFiles', 'dependsOn', 'deliveryId',
16
+ ];
7
17
  export function registerIssueTools(server, getCreds, profile = 'full') {
8
18
  // Agents cannot delete issues — only humans can. Delete destroys planning data.
9
19
  const allowDelete = profile === 'full' || profile === 'human';
@@ -64,7 +74,7 @@ export function registerIssueTools(server, getCreds, profile = 'full') {
64
74
  return validationError("deliveryId required for create");
65
75
  if (!params.title)
66
76
  return validationError("title required for create");
67
- const fields = buildFields(params, ['title', 'issueType', 'description', 'status', 'parentIssueId', 'priority', 'context', 'relevantFiles', 'dependsOn']);
77
+ const fields = buildFields(params, [...ISSUE_CREATE_FIELD_KEYS]);
68
78
  const result = await callProductApi(getCreds(), {
69
79
  action: "issue_create",
70
80
  deliveryId: params.deliveryId,
@@ -75,7 +85,7 @@ export function registerIssueTools(server, getCreds, profile = 'full') {
75
85
  case "update": {
76
86
  if (!params.issueId)
77
87
  return validationError("issueId required for update");
78
- const fields = buildFields(params, ['title', 'description', 'status', 'issueType', 'parentIssueId', 'priority', 'context', 'relevantFiles', 'dependsOn', 'deliveryId']);
88
+ const fields = buildFields(params, [...ISSUE_UPDATE_FIELD_KEYS]);
79
89
  if (Object.keys(fields).length === 0) {
80
90
  return validationError("Provide at least one field to update");
81
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"issueHandlers.js","sourceRoot":"","sources":["../../src/handlers/issueHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issueHandlers.js","sourceRoot":"","sources":["../../src/handlers/issueHandlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type GetCreds, type ToolProfile } from "../shared.js";
3
+ /** Every field the telora_linear tool reads (mirrors the zod shape below). */
4
+ export interface LinearToolParams {
5
+ action: "issue" | "issues_by_identifier" | "search" | "initiatives" | "projects" | "teams" | "cycles" | "labels" | "issues" | "overview";
6
+ productId?: string;
7
+ externalDataSourceId?: string;
8
+ identifier?: string;
9
+ identifiers?: string[];
10
+ query?: string;
11
+ initiativeId?: string;
12
+ projectId?: string;
13
+ teamId?: string;
14
+ cycleId?: string;
15
+ labelIds?: string[];
16
+ stateCategory?: string;
17
+ groupBy?: "project" | "team" | "cycle" | "state" | "label" | "initiative";
18
+ limit?: number;
19
+ cursor?: string;
20
+ }
21
+ /**
22
+ * Pure routing: map a telora_linear call to the matching linear_* read-model
23
+ * action and forward it via `callApi`. Read-only -- every action forwards a
24
+ * read; the connection selectors (productId / externalDataSourceId) ride on
25
+ * every call and are resolved server-side. Exported so tests can inject a mock
26
+ * callApi and assert action + param passthrough without an McpServer.
27
+ */
28
+ export declare function dispatchLinear(params: LinearToolParams, callApi: (body: Record<string, unknown>) => Promise<unknown>): Promise<{
29
+ content: {
30
+ type: "text";
31
+ text: string;
32
+ }[];
33
+ }>;
34
+ export declare function registerLinearTools(server: McpServer, getCreds: GetCreds, _profile?: ToolProfile): void;
@@ -0,0 +1,131 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Linear read tool (consolidated, READ-ONLY):
3
+ // telora_linear (issue | issues_by_identifier | search | initiatives |
4
+ // projects | teams | cycles | labels | issues | overview)
5
+ // ---------------------------------------------------------------------------
6
+ //
7
+ // The PRIMARY consumer of the Linear integration: exposes the Server-Side Linear
8
+ // Read Model (the linear_* product-api actions) to interactive harness sessions
9
+ // where a human and the agent set intent together. Every action forwards to
10
+ // product-api, which resolves the unit-scoped connection, dereferences the API
11
+ // key SERVER-SIDE, and calls Linear -- the key never reaches this process.
12
+ //
13
+ // CONTRACT (stated in the tool description so an agent understands it):
14
+ // - Linear is a SOURCE for determining intent, NOT intent itself. Telora owns
15
+ // intent, which requires human-and-agent agreement.
16
+ // - READ-ONLY: no Telora issue tables are ever written; nothing is imported.
17
+ // - When Linear content SHAPES a Telora entity, record an informed_by
18
+ // reference with the telora_external_reference tool (provenance) -- a
19
+ // reference is a pointer, never a copy.
20
+ import { z } from "zod";
21
+ import { callProductApi, successResult, validationError, wrapHandler, } from "../shared.js";
22
+ /**
23
+ * Pure routing: map a telora_linear call to the matching linear_* read-model
24
+ * action and forward it via `callApi`. Read-only -- every action forwards a
25
+ * read; the connection selectors (productId / externalDataSourceId) ride on
26
+ * every call and are resolved server-side. Exported so tests can inject a mock
27
+ * callApi and assert action + param passthrough without an McpServer.
28
+ */
29
+ export async function dispatchLinear(params, callApi) {
30
+ if (!params.productId && !params.externalDataSourceId) {
31
+ return validationError("productId or externalDataSourceId is required");
32
+ }
33
+ // Connection selectors ride on every call.
34
+ const conn = { productId: params.productId, externalDataSourceId: params.externalDataSourceId };
35
+ switch (params.action) {
36
+ case "issue": {
37
+ if (!params.identifier)
38
+ return validationError("identifier is required (e.g. TIN-5)");
39
+ const result = await callApi({ action: "linear_issue", ...conn, identifier: params.identifier });
40
+ return successResult(result);
41
+ }
42
+ case "issues_by_identifier": {
43
+ if (!params.identifiers || params.identifiers.length === 0)
44
+ return validationError("identifiers[] is required");
45
+ const result = await callApi({ action: "linear_issues_by_identifier", ...conn, identifiers: params.identifiers });
46
+ return successResult(result);
47
+ }
48
+ case "search": {
49
+ if (!params.query)
50
+ return validationError("query is required");
51
+ const result = await callApi({ action: "linear_search", ...conn, query: params.query, limit: params.limit, cursor: params.cursor });
52
+ return successResult(result);
53
+ }
54
+ case "initiatives": {
55
+ const result = await callApi({ action: "linear_initiatives", ...conn });
56
+ return successResult(result);
57
+ }
58
+ case "projects": {
59
+ const result = await callApi({ action: "linear_projects", ...conn, teamId: params.teamId, initiativeId: params.initiativeId });
60
+ return successResult(result);
61
+ }
62
+ case "teams": {
63
+ const result = await callApi({ action: "linear_teams", ...conn });
64
+ return successResult(result);
65
+ }
66
+ case "cycles": {
67
+ const result = await callApi({ action: "linear_cycles", ...conn, teamId: params.teamId });
68
+ return successResult(result);
69
+ }
70
+ case "labels": {
71
+ const result = await callApi({ action: "linear_labels", ...conn });
72
+ return successResult(result);
73
+ }
74
+ case "issues": {
75
+ const result = await callApi({
76
+ action: "linear_issues",
77
+ ...conn,
78
+ initiativeId: params.initiativeId,
79
+ projectId: params.projectId,
80
+ teamId: params.teamId,
81
+ cycleId: params.cycleId,
82
+ labelIds: params.labelIds,
83
+ stateCategory: params.stateCategory,
84
+ groupBy: params.groupBy,
85
+ limit: params.limit,
86
+ cursor: params.cursor,
87
+ });
88
+ return successResult(result);
89
+ }
90
+ case "overview": {
91
+ const result = await callApi({ action: "linear_overview", ...conn });
92
+ return successResult(result);
93
+ }
94
+ default:
95
+ return validationError(`Unknown action: ${params.action}`);
96
+ }
97
+ }
98
+ export function registerLinearTools(server, getCreds, _profile = 'full') {
99
+ server.tool("telora_linear", "Read a client's Linear workspace as a SOURCE for determining intent (first ticketing adapter). Linear is NOT intent: Telora owns " +
100
+ "intent, which requires human-and-agent agreement. This tool is READ-ONLY -- it never writes or imports into Telora's issue tables. " +
101
+ "When Linear content shapes a Telora entity (focus/delivery/issue/tree node/loop question/PRD node), record an informed_by reference " +
102
+ "with telora_external_reference (a pointer, never a copy). Connection: pass a productId (resolves the nearest active connection on the " +
103
+ "product's org unit or an ancestor) OR an explicit externalDataSourceId; a product with no connected ancestor returns an explicit " +
104
+ "no-connection result, not an error. " +
105
+ "Conversational actions: issue (one issue in full by identifier, e.g. TIN-5 -- verbatim description, comments, team, project + " +
106
+ "description, relations), issues_by_identifier (a set), search (free text in title/description). Organization lenses for 'review the " +
107
+ "backlog and find how to organize the work': initiatives (with their projects), projects (filter by teamId/initiativeId), teams, " +
108
+ "cycles (filter by teamId), labels, issues (filter by initiativeId/projectId/teamId/cycleId/labelIds/stateCategory, single groupBy " +
109
+ "lens, cursor paginated), overview (compact per-initiative/per-team structure counts). Linear errors (auth, rate limit, GraphQL) come " +
110
+ "back as a typed { error: { kind, message } }, never a silent empty result.", {
111
+ action: z.enum([
112
+ "issue", "issues_by_identifier", "search",
113
+ "initiatives", "projects", "teams", "cycles", "labels", "issues", "overview",
114
+ ]).describe("Which read to perform"),
115
+ productId: z.string().uuid().optional().describe("Product UUID -- resolves the nearest active Linear connection on its org unit or an ancestor. Provide this OR externalDataSourceId."),
116
+ externalDataSourceId: z.string().uuid().optional().describe("Explicit connection UUID. Provide this OR productId."),
117
+ identifier: z.string().max(50).optional().describe("Linear issue human identifier, e.g. 'TIN-5' (required for action 'issue')"),
118
+ identifiers: z.array(z.string().max(50)).max(25).optional().describe("Set of Linear issue identifiers (required for 'issues_by_identifier'; max 25)"),
119
+ query: z.string().max(500).optional().describe("Free-text search over issue title/description (required for 'search')"),
120
+ initiativeId: z.string().optional().describe("Linear initiative id (lens filter for 'projects' / 'issues')"),
121
+ projectId: z.string().optional().describe("Linear project id (lens filter for 'issues')"),
122
+ teamId: z.string().optional().describe("Linear team id (lens filter for 'projects' / 'cycles' / 'issues')"),
123
+ cycleId: z.string().optional().describe("Linear cycle id (lens filter for 'issues')"),
124
+ labelIds: z.array(z.string()).optional().describe("Linear label ids (lens filter for 'issues'; matches any)"),
125
+ stateCategory: z.string().max(50).optional().describe("Workflow state category filter for 'issues' (e.g. backlog/unstarted/started/completed/canceled)"),
126
+ groupBy: z.enum(["project", "team", "cycle", "state", "label", "initiative"]).optional().describe("Group 'issues' results by one lens"),
127
+ limit: z.number().int().min(1).max(250).optional().describe("Max issues per page for 'search' / 'issues' (1-250, default 50)"),
128
+ cursor: z.string().optional().describe("Pagination cursor (endCursor from a prior page's pageInfo) for 'search' / 'issues'"),
129
+ }, wrapHandler((params) => dispatchLinear(params, (body) => callProductApi(getCreds(), body))));
130
+ }
131
+ //# sourceMappingURL=linearHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linearHandlers.js","sourceRoot":"","sources":["../../src/handlers/linearHandlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const PRD_AUTHORING_GUIDE = "# PRD Authoring Protocol (capture -> expand -> check)\n\nA PRD turns the human <-> AI dialog into a FULL product description. The core\nmove is **capture, then expand -- never transcribe.** A sparse dialog must not\nyield a sparse PRD: reason OUTWARD from what was said to every capability, flow,\nedge case, data implication, and non-functional a complete product requires,\nINCLUDING the ones nobody said aloud.\n\nTwo zones, two owners, marked by provenance:\n- **Captured intent (STATED, human-owned)** -- what the human actually said,\n preserved, not summarized away. The reference everything is checked against.\n- **AI expansion (INFERRED, machine-owned)** -- the full product derived from\n that intent. Must visibly EXCEED the capture, not reword it.\n\n## Rounds (distinct jobs -- not \"write more\")\n0. **Capture** the dialog as structured intent: every thread, in the human's\n terms. This is the reference.\n1. **Expand** it against the document shape below. Surface what the dialog\n IMPLIES but never stated. If it reads like the dialog reworded, it failed.\n2. **Check against capture** (ideally a fresh sub-agent that won't defend the\n draft): is every captured thread expanded? What does the intent imply that\n is still missing? Where is it transcription, or verbose-but-thin?\n3. **Close the gap.** Re-run round 2 for a real-sized product.\nSurface to the human only at round boundaries, and only for intent (\"did I\ncapture what you meant?\") -- never to fill expansion slots.\n\n## The expansion should cover\n- The realized product, end to end (a reader can picture using it).\n- Problem & users / jobs-to-be-done.\n- **Capabilities** -- each a SIGNIFICANT portion of the product (one capability\n with multiple phases ahead of it, NOT one shippable change). Per capability:\n behavior/flows, data-model implications, surfaces (UI/API/daemon/MCP), edge\n cases, a verifiable acceptance signal, dependencies, and the **>=2 phases** it\n decomposes into.\n- Cross-cutting / non-functional (authz/RLS, perf, security, observability).\n- System-level architecture & data model.\n- Sequencing & pathways (and alternatives held as options).\n- Obstacles & risks (a clearancePredicate is OPTIONAL and advisory only).\n\n## How this is enforced (the authoring gates)\n- `telora_prd create` REQUIRES **capturedIntent** + **expansion**. No PRD\n without the dialog anchor and a full expansion that exceeds it.\n- `telora_prd_tree node_create`: an **overcome** REQUIRES **phases (>=2)** --\n it materializes as a focus, so it must be capability-sized. An **obstacle**\n does NOT require a predicate. The frontier advances when an overcome's focus\n COMPLETES -- that is, when all of that focus's deliveries pass their own verify\n gates. Focus-completion is the single clearance signal; there is no per-obstacle\n predicate gate. A `clearancePredicate`, if supplied, is **advisory only**: it\n documents the author's notion of \"done\" but is NOT evaluated as a frontier gate,\n so you do not need to commit exact shell/test paths before the code exists.\nThese gates enforce STRUCTURE; the depth is on you -- run the rounds.\n\n## Selecting a starter (greenfield UI PRDs)\nA greenfield UI PRD should **select a starter repo** so the product begins ABOVE\nthe UX floor instead of scaffolding a frontend from zero. Set `starterRepoId`\non `telora_prd create`/`update` to a starter from the org library\n(telora_starter_repo list to browse, by look/archetype). At product genesis the\nfactory clones the starter's pinned ref as the product's initial commit and runs\nthe PRD against it (customize/extend) -- so do NOT author a \"scaffold the app\nfrom zero\" phase when a starter is selected; the base is already there. Leave\n`starterRepoId` null for non-UI / non-greenfield PRDs. The starter must be in\nthe same org as the product.\n\n## From document to tree\ngoal -> goal node; each capability -> an overcome node (>=2 phases) that later\nmaterializes as a focus; each obstacle -> an obstacle node (a clearancePredicate\nis optional/advisory, not required); dependencies -> prerequisite edges;\nalternatives -> pathways (commit one). A faithful capture, fully expanded, yields\ncapability-sized foci by construction -- which is the whole point.\n\n## Arming the run (a human go-signal, not an authoring step)\nAuthoring the tree is necessary but not sufficient -- and authoring ENDS at\n\"authored, un-armed\". Arming is a separate, human-owned go/no-go decision, NOT\nthe tail of your authoring pass. The daemon PRD controller only ARMS frontier\nfoci once the PRD is Played -- that is, once `prds.assigned_agent_role_id` is\nset to an agent_roles UUID, via the Factory PRD Play toggle or\n`telora_prd update assignedAgentRoleId=<uuid>` (pass null to pause). Playing\nthe PRD is the human go-signal (unless durably delegated); do not Play it\nyourself to \"finish\" authoring. An un-armed PRD is the correct resting state\nafter authoring, not a fault. When an active PRD has a frontier but no arm role,\nthe controller records a `prd_frontier_blocked_no_arm_role` escalation (once)\nso the awaiting-go-signal state is visible -- a human Plays the PRD when they\ndecide the spend is authorized.";
1
+ export declare const PRD_AUTHORING_GUIDE = "# PRD Authoring Protocol (capture -> expand -> check)\n\nA PRD turns the human <-> AI dialog into a FULL product description. The core\nmove is **capture, then expand -- never transcribe.** A sparse dialog must not\nyield a sparse PRD: reason OUTWARD from what was said to every capability, flow,\nedge case, data implication, and non-functional a complete product requires,\nINCLUDING the ones nobody said aloud.\n\nTwo zones, two owners, marked by provenance:\n- **Captured intent (STATED, human-owned)** -- what the human actually said,\n preserved, not summarized away. The reference everything is checked against.\n- **AI expansion (INFERRED, machine-owned)** -- the full product derived from\n that intent. Must visibly EXCEED the capture, not reword it.\n\n## Rounds (distinct jobs -- not \"write more\")\n0. **Capture** the dialog as structured intent: every thread, in the human's\n terms. This is the reference.\n1. **Expand** it against the document shape below. Surface what the dialog\n IMPLIES but never stated. If it reads like the dialog reworded, it failed.\n2. **Check against capture** (ideally a fresh sub-agent that won't defend the\n draft): is every captured thread expanded? What does the intent imply that\n is still missing? Where is it transcription, or verbose-but-thin?\n3. **Close the gap.** Re-run round 2 for a real-sized product.\nSurface to the human only at round boundaries, and only for intent (\"did I\ncapture what you meant?\") -- never to fill expansion slots.\n\n## The expansion should cover\n- The realized product, end to end (a reader can picture using it).\n- Problem & users / jobs-to-be-done.\n- **Capabilities** -- each a SIGNIFICANT portion of the product (one capability\n with multiple phases ahead of it, NOT one shippable change). Per capability:\n behavior/flows, data-model implications, surfaces (UI/API/daemon/MCP), edge\n cases, a verifiable acceptance signal, dependencies, and the **>=2 phases** it\n decomposes into.\n- Cross-cutting / non-functional (authz/RLS, perf, security, observability).\n- System-level architecture & data model.\n- Sequencing & pathways (and alternatives held as options).\n- Obstacles & risks (a clearancePredicate is OPTIONAL and advisory only).\n\n## How this is enforced (the authoring gates)\n- `telora_prd create` REQUIRES **capturedIntent** + **expansion**. No PRD\n without the dialog anchor and a full expansion that exceeds it.\n- `telora_prd_tree node_create`: an **overcome** REQUIRES **phases (>=2)** --\n it materializes as a focus, so it must be capability-sized. An **obstacle**\n does NOT require a predicate. The frontier advances when an overcome's focus\n COMPLETES -- that is, when all of that focus's deliveries pass their own verify\n gates. Focus-completion is the single clearance signal; there is no per-obstacle\n predicate gate. A `clearancePredicate`, if supplied, is **advisory only**: it\n documents the author's notion of \"done\" but is NOT evaluated as a frontier gate,\n so you do not need to commit exact shell/test paths before the code exists.\nThese gates enforce STRUCTURE; the depth is on you -- run the rounds.\n\n## Selecting a starter (greenfield UI PRDs)\nA greenfield UI PRD should **select a starter repo** so the product begins ABOVE\nthe UX floor instead of scaffolding a frontend from zero. Set `starterRepoId`\non `telora_prd create`/`update` to a starter from the org library\n(telora_starter_repo list to browse, by look/archetype). At product genesis the\nfactory clones the starter's pinned ref as the product's initial commit and runs\nthe PRD against it (customize/extend) -- so do NOT author a \"scaffold the app\nfrom zero\" phase when a starter is selected; the base is already there. Leave\n`starterRepoId` null for non-UI / non-greenfield PRDs. The starter must be in\nthe same org as the product.\n\n## From document to tree\ngoal -> goal node; each capability -> an overcome node (>=2 phases) that later\nmaterializes as a focus; each obstacle -> an obstacle node (a clearancePredicate\nis optional/advisory, not required); dependencies -> prerequisite edges;\nalternatives -> pathways (commit one). A faithful capture, fully expanded, yields\ncapability-sized foci by construction -- which is the whole point.\n\n## Arming the run (a human go-signal, not an authoring step)\nAuthoring the tree is necessary but not sufficient -- and authoring ENDS at\n\"authored, un-armed\". Arming is a separate, human-owned go/no-go decision, NOT\nthe tail of your authoring pass. The daemon PRD controller only ARMS frontier\nfoci once the PRD is Played -- that is, once `prds.assigned_agent_role_id` is\nset to an agent_roles UUID, via the Factory PRD Play toggle or\n`telora_prd update assignedAgentRoleId=<uuid>` (pass null to pause). Playing\nthe PRD is the human go-signal (unless durably delegated); do not Play it\nyourself to \"finish\" authoring. An un-armed PRD is the correct resting state\nafter authoring, not a fault. When an active PRD has a frontier but no arm role,\nthe controller does NOT file an escalation: an unplayed frontier is a valid\nwaiting state, not a blockage, and filing one would mislabel a normal\nawaiting-go-signal state as blocked and flood the human inbox. Visibility of the\nawaiting-Play state comes from the daemon-log warning (driven off the\n`prdsBlockedNoRole` aggregate) plus the ready-to-Play UI affordance -- a human\nPlays the PRD when they decide the spend is authorized.";
@@ -90,7 +90,10 @@ set to an agent_roles UUID, via the Factory PRD Play toggle or
90
90
  the PRD is the human go-signal (unless durably delegated); do not Play it
91
91
  yourself to "finish" authoring. An un-armed PRD is the correct resting state
92
92
  after authoring, not a fault. When an active PRD has a frontier but no arm role,
93
- the controller records a \`prd_frontier_blocked_no_arm_role\` escalation (once)
94
- so the awaiting-go-signal state is visible -- a human Plays the PRD when they
95
- decide the spend is authorized.`;
93
+ the controller does NOT file an escalation: an unplayed frontier is a valid
94
+ waiting state, not a blockage, and filing one would mislabel a normal
95
+ awaiting-go-signal state as blocked and flood the human inbox. Visibility of the
96
+ awaiting-Play state comes from the daemon-log warning (driven off the
97
+ \`prdsBlockedNoRole\` aggregate) plus the ready-to-Play UI affordance -- a human
98
+ Plays the PRD when they decide the spend is authorized.`;
96
99
  //# sourceMappingURL=prdAuthoringGuide.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prdAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/prdAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,sEAAsE;AACtE,2EAA2E;AAC3E,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkFH,CAAC"}
1
+ {"version":3,"file":"prdAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/prdAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,sEAAsE;AACtE,2EAA2E;AAC3E,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAqFqB,CAAC"}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ if (subcommand === "init") {
11
11
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
12
12
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
13
13
  import { loadCredentials } from "./shared.js";
14
- import { registerProductTools, registerLocalModelTools, registerDeliveryTools, registerFocusTools, registerFocusDebugTools, registerIssueTools, registerAgentTools, registerPlaybookTools, registerConnectorTools, registerWorkflowTools, registerContextAssembleTool, registerWikiTools, registerDeploymentProfileTools, registerInfrastructureTools, registerReportTools, registerRiskTools, registerRiskDependencyTools, registerRiskCommunicationTools, registerLoopTools, registerRealityTools, registerRealityTreeTools, registerRealityTreeInjectionVerifyTool, registerPrdTools, registerContractTools, registerProductRequestTools, registerEndpointTools, registerServiceDefinitionTools, registerStarterRepoTools, registerCodeObservationTools, registerSessionStateTool, } from "./handlers/index.js";
14
+ import { registerProductTools, registerLocalModelTools, registerExternalDataSourceTools, registerExternalReferenceTools, registerLinearTools, registerDeliveryTools, registerFocusTools, registerFocusDebugTools, registerIssueTools, registerAgentTools, registerPlaybookTools, registerConnectorTools, registerWorkflowTools, registerContextAssembleTool, registerWikiTools, registerDeploymentProfileTools, registerInfrastructureTools, registerReportTools, registerRiskTools, registerRiskDependencyTools, registerRiskCommunicationTools, registerLoopTools, registerRealityTools, registerRealityTreeTools, registerRealityTreeInjectionVerifyTool, registerPrdTools, registerContractTools, registerProductRequestTools, registerEndpointTools, registerServiceDefinitionTools, registerStarterRepoTools, registerCodeObservationTools, registerSessionStateTool, } from "./handlers/index.js";
15
15
  import { registerDiscoverTool, parsePreloadDomains } from "./handlers/discoverHandler.js";
16
16
  import { PRD_AUTHORING_GUIDE } from "./handlers/prdAuthoringGuide.js";
17
17
  import { AUDIT_TREE_AUTHORING_GUIDE } from "./handlers/auditTreeAuthoringGuide.js";
@@ -261,6 +261,36 @@ if (profile === 'human') {
261
261
  }],
262
262
  register: () => registerLocalModelTools(server, getCreds, profile),
263
263
  },
264
+ integrations: {
265
+ description: "External data source connections + provenance (unit-scoped ticketing integrations; first adapter: Linear). A connection attaches to an ORG UNIT and is inherited by products under it and its descendants; read-only intent-side context, never an import. Record informed_by references from Telora entities to the tracker items that shaped them (2 tools)",
266
+ keywords: ["integration", "ticketing", "tracker", "linear", "connection", "data source", "api key", "backlog", "TIN-", "external", "look at issue", "client asks", "provenance", "informed_by", "reference", "cite"],
267
+ toolIndex: [{
268
+ name: "telora_external_data_source",
269
+ summary: "Unit-scoped read-only ticketing connections (Linear); resolve a product to its connection; write-only API key",
270
+ actions: ["list", "create", "update", "delete", "resolve", "test"],
271
+ keywords: ["integration", "ticketing", "tracker", "linear", "connection", "data source", "api key", "resolve", "unit-scoped"],
272
+ }, {
273
+ name: "telora_external_reference",
274
+ summary: "Structural provenance: record informed_by references from Telora entities to the tracker items that shaped them",
275
+ actions: ["create", "list", "delete"],
276
+ keywords: ["provenance", "informed_by", "reference", "cite", "linear", "TIN-", "source", "intent"],
277
+ }],
278
+ register: () => {
279
+ registerExternalDataSourceTools(server, getCreds, profile);
280
+ registerExternalReferenceTools(server, getCreds, profile);
281
+ },
282
+ },
283
+ linear: {
284
+ description: "Read a client's Linear workspace as a SOURCE for determining intent (the primary consumer of the ticketing integration). READ-ONLY: get one issue in full by identifier (TIN-5), a set, or search; then the organization lenses (initiatives/projects/teams/cycles/labels, issues by lens with groupBy, structure overview) to review the backlog and find how to organize the work. Linear is not intent -- Telora owns intent; record informed_by references (telora_external_reference) when Linear content shapes a Telora entity (1 tool)",
285
+ keywords: ["linear", "ticketing", "tracker", "client asks", "backlog", "TIN-", "look at issue", "issue", "initiative", "project", "cycle", "label", "sprint", "review the backlog", "source of intent"],
286
+ toolIndex: [{
287
+ name: "telora_linear",
288
+ summary: "Read-only Linear workspace access: one issue in full by identifier, a set, search, and the org lenses (initiatives/projects/teams/cycles/labels/issues/overview)",
289
+ actions: ["issue", "issues_by_identifier", "search", "initiatives", "projects", "teams", "cycles", "labels", "issues", "overview"],
290
+ keywords: ["linear", "ticketing", "tracker", "backlog", "TIN-", "look at issue", "initiative", "project", "team", "cycle", "label", "groupBy", "overview"],
291
+ }],
292
+ register: () => registerLinearTools(server, getCreds, profile),
293
+ },
264
294
  endpoints: {
265
295
  description: "Endpoint registry + consumption edges: first-class provider-owned endpoints carrying versioned contracts (a product's public face), plus the standing consumer->endpoint interrelation a Nexus cross-product request rides on (1 tool, 8 actions)",
266
296
  keywords: ["endpoint", "registry", "provider", "consumer", "contract", "versioned", "boundary", "interrelation", "cross-product", "nexus", "public face", "blast radius", "consume"],
@@ -413,6 +443,9 @@ else {
413
443
  // Product tools: get is always available; list/overview/create/update gated by profile
414
444
  registerProductTools(server, getCreds, profile);
415
445
  registerLocalModelTools(server, getCreds, profile);
446
+ registerExternalDataSourceTools(server, getCreds, profile);
447
+ registerExternalReferenceTools(server, getCreds, profile);
448
+ registerLinearTools(server, getCreds, profile);
416
449
  // Wiki + context_assemble: read tools always available; editing tools
417
450
  // gated by profile.
418
451
  registerWikiTools(server, getCreds, profile);