lorenz 0.1.6 → 0.1.7

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 (65) hide show
  1. package/RELEASE-MANIFEST.json +1 -1
  2. package/node_modules/@lorenz/cli/dist/daemon.d.ts.map +1 -1
  3. package/node_modules/@lorenz/cli/dist/daemon.js +2 -5
  4. package/node_modules/@lorenz/cli/dist/daemon.js.map +1 -1
  5. package/node_modules/@lorenz/cli/dist/trackerLoader.js +1 -1
  6. package/node_modules/@lorenz/cli/dist/trackerLoader.js.map +1 -1
  7. package/node_modules/@lorenz/jira-tracker/dist/index.d.ts +1 -0
  8. package/node_modules/@lorenz/jira-tracker/dist/index.d.ts.map +1 -1
  9. package/node_modules/@lorenz/jira-tracker/dist/index.js +1 -0
  10. package/node_modules/@lorenz/jira-tracker/dist/index.js.map +1 -1
  11. package/node_modules/@lorenz/jira-tracker/dist/provider.d.ts.map +1 -1
  12. package/node_modules/@lorenz/jira-tracker/dist/provider.js +3 -36
  13. package/node_modules/@lorenz/jira-tracker/dist/provider.js.map +1 -1
  14. package/node_modules/@lorenz/jira-tracker/dist/register.d.ts +5 -3
  15. package/node_modules/@lorenz/jira-tracker/dist/register.d.ts.map +1 -1
  16. package/node_modules/@lorenz/jira-tracker/dist/register.js +9 -3
  17. package/node_modules/@lorenz/jira-tracker/dist/register.js.map +1 -1
  18. package/node_modules/@lorenz/jira-tracker/dist/tools.d.ts +18 -0
  19. package/node_modules/@lorenz/jira-tracker/dist/tools.d.ts.map +1 -0
  20. package/node_modules/@lorenz/{tracker-sdk/dist/toolPack.js → jira-tracker/dist/tools.js} +76 -78
  21. package/node_modules/@lorenz/jira-tracker/dist/tools.js.map +1 -0
  22. package/node_modules/@lorenz/jira-tracker/package.json +1 -0
  23. package/node_modules/@lorenz/linear-tracker/dist/provider.d.ts.map +1 -1
  24. package/node_modules/@lorenz/linear-tracker/dist/provider.js +0 -2
  25. package/node_modules/@lorenz/linear-tracker/dist/provider.js.map +1 -1
  26. package/node_modules/@lorenz/local-tracker/dist/provider.d.ts.map +1 -1
  27. package/node_modules/@lorenz/local-tracker/dist/provider.js +0 -2
  28. package/node_modules/@lorenz/local-tracker/dist/provider.js.map +1 -1
  29. package/node_modules/@lorenz/mcp/dist/tools.d.ts.map +1 -1
  30. package/node_modules/@lorenz/mcp/dist/tools.js +5 -8
  31. package/node_modules/@lorenz/mcp/dist/tools.js.map +1 -1
  32. package/node_modules/@lorenz/slack-tracker/dist/client.d.ts +0 -7
  33. package/node_modules/@lorenz/slack-tracker/dist/client.d.ts.map +1 -1
  34. package/node_modules/@lorenz/slack-tracker/dist/client.js +4 -5
  35. package/node_modules/@lorenz/slack-tracker/dist/client.js.map +1 -1
  36. package/node_modules/@lorenz/slack-tracker/dist/index.d.ts +0 -1
  37. package/node_modules/@lorenz/slack-tracker/dist/index.d.ts.map +1 -1
  38. package/node_modules/@lorenz/slack-tracker/dist/index.js +0 -1
  39. package/node_modules/@lorenz/slack-tracker/dist/index.js.map +1 -1
  40. package/node_modules/@lorenz/slack-tracker/dist/provider.d.ts.map +1 -1
  41. package/node_modules/@lorenz/slack-tracker/dist/provider.js +0 -2
  42. package/node_modules/@lorenz/slack-tracker/dist/provider.js.map +1 -1
  43. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts +1 -2
  44. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts.map +1 -1
  45. package/node_modules/@lorenz/tracker-sdk/dist/index.js +0 -1
  46. package/node_modules/@lorenz/tracker-sdk/dist/index.js.map +1 -1
  47. package/node_modules/@lorenz/tracker-sdk/dist/provider.d.ts +11 -55
  48. package/node_modules/@lorenz/tracker-sdk/dist/provider.d.ts.map +1 -1
  49. package/node_modules/@lorenz/tracker-sdk/package.json +1 -2
  50. package/package.json +1 -1
  51. package/node_modules/@lorenz/linear-tracker/dist/toolOps.d.ts +0 -8
  52. package/node_modules/@lorenz/linear-tracker/dist/toolOps.d.ts.map +0 -1
  53. package/node_modules/@lorenz/linear-tracker/dist/toolOps.js +0 -251
  54. package/node_modules/@lorenz/linear-tracker/dist/toolOps.js.map +0 -1
  55. package/node_modules/@lorenz/local-tracker/dist/toolOps.d.ts +0 -9
  56. package/node_modules/@lorenz/local-tracker/dist/toolOps.d.ts.map +0 -1
  57. package/node_modules/@lorenz/local-tracker/dist/toolOps.js +0 -86
  58. package/node_modules/@lorenz/local-tracker/dist/toolOps.js.map +0 -1
  59. package/node_modules/@lorenz/slack-tracker/dist/toolOps.d.ts +0 -13
  60. package/node_modules/@lorenz/slack-tracker/dist/toolOps.d.ts.map +0 -1
  61. package/node_modules/@lorenz/slack-tracker/dist/toolOps.js +0 -76
  62. package/node_modules/@lorenz/slack-tracker/dist/toolOps.js.map +0 -1
  63. package/node_modules/@lorenz/tracker-sdk/dist/toolPack.d.ts +0 -10
  64. package/node_modules/@lorenz/tracker-sdk/dist/toolPack.d.ts.map +0 -1
  65. package/node_modules/@lorenz/tracker-sdk/dist/toolPack.js.map +0 -1
@@ -1,251 +0,0 @@
1
- import { normalizeIssue } from "@lorenz/issue";
2
- import { isRecord } from "@lorenz/domain";
3
- import { linearTrackerOptions } from "./options.js";
4
- import { executeLinearTool } from "./tools.js";
5
- const linearIssueFields = `
6
- id
7
- identifier
8
- title
9
- description
10
- priority
11
- state { id name type }
12
- branchName
13
- url
14
- assignee { id }
15
- labels(first: 50) { nodes { name } }
16
- inverseRelations(first: 50) {
17
- nodes {
18
- type
19
- issue { id identifier state { name type } }
20
- }
21
- }
22
- createdAt
23
- updatedAt
24
- `;
25
- /**
26
- * Normalized issue operations behind the provider-neutral `tracker_*` pack, implemented over
27
- * the same GraphQL transport as the `linear_graphql` tool (credentials, retries, logging).
28
- */
29
- export function linearToolOps(settings, context) {
30
- const { fetchImpl } = context;
31
- return {
32
- readIssue: async (issueId) => readLinearIssue(settings, issueId, fetchImpl),
33
- queryIssues: async (args) => queryLinearIssues(settings, args, fetchImpl),
34
- updateStatus: async (issueId, status) => updateLinearStatus(settings, issueId, status, fetchImpl),
35
- listComments: async (issueId) => listLinearComments(settings, issueId, fetchImpl),
36
- addComment: async (issueId, body) => createLinearComment(settings, issueId, body, fetchImpl),
37
- updateComment: async (_issueId, commentId, body) => updateLinearComment(settings, commentId, body, fetchImpl),
38
- createIssue: async (input) => createLinearIssue(settings, input, fetchImpl),
39
- };
40
- }
41
- async function readLinearIssue(settings, issueId, fetchImpl) {
42
- const data = await linearData(settings, `query LorenzTrackerReadIssue($id: String!) {
43
- issue(id: $id) { ${linearIssueFields} }
44
- }`, { id: issueId }, fetchImpl);
45
- if (!data.issue)
46
- throw new Error(`linear issue not found: ${issueId}`);
47
- return normalizeLinearIssue(data.issue, settings.tracker.assignee);
48
- }
49
- async function queryLinearIssues(settings, args, fetchImpl) {
50
- const issueIds = stringArray(args.issueIds);
51
- if (issueIds) {
52
- const data = await linearData(settings, `query LorenzTrackerIssuesById($ids: [ID!]!, $first: Int!) {
53
- issues(filter: {id: {in: $ids}}, first: $first) { nodes { ${linearIssueFields} } }
54
- }`, { ids: issueIds, first: issueIds.length }, fetchImpl);
55
- return data.issues.nodes.map((issue) => normalizeLinearIssue(issue, settings.tracker.assignee));
56
- }
57
- const states = stringArray(args.states) ?? settings.tracker.activeStates;
58
- const options = linearTrackerOptions(settings);
59
- const projectSlugs = options.projectSlugs ?? (options.projectSlug ? [options.projectSlug] : []);
60
- const data = await linearData(settings, `query LorenzTrackerQuery($projectSlugs: [String!]!, $stateNames: [String!]!, $first: Int!) {
61
- issues(filter: {project: {slugId: {in: $projectSlugs}}, state: {name: {in: $stateNames}}}, first: $first) {
62
- nodes { ${linearIssueFields} }
63
- }
64
- }`, { projectSlugs, stateNames: states, first: numberArg(args.limit, 50) }, fetchImpl);
65
- return data.issues.nodes.map((issue) => normalizeLinearIssue(issue, settings.tracker.assignee));
66
- }
67
- async function updateLinearStatus(settings, issueId, status, fetchImpl) {
68
- const lookup = await linearData(settings, `query LorenzTrackerLinearStates($id: String!) {
69
- issue(id: $id) { team { states(first: 100) { nodes { id name } } } }
70
- }`, { id: issueId }, fetchImpl);
71
- const state = lookup.issue?.team?.states?.nodes?.find((candidate) => candidate.name.trim().toLowerCase() === status.trim().toLowerCase());
72
- if (!state)
73
- throw new Error(`linear state not found: ${status}`);
74
- const data = await linearData(settings, `mutation LorenzTrackerLinearUpdate($id: String!, $input: IssueUpdateInput!) {
75
- issueUpdate(id: $id, input: $input) { success issue { ${linearIssueFields} } }
76
- }`, { id: issueId, input: { stateId: state.id } }, fetchImpl);
77
- if (!data.issueUpdate.success || !data.issueUpdate.issue)
78
- throw new Error("linear issueUpdate failed");
79
- return normalizeLinearIssue(data.issueUpdate.issue, settings.tracker.assignee);
80
- }
81
- async function createLinearComment(settings, issueId, body, fetchImpl) {
82
- const data = await linearData(settings, `mutation LorenzTrackerLinearComment($input: CommentCreateInput!) {
83
- commentCreate(input: $input) {
84
- success
85
- comment {
86
- id
87
- body
88
- createdAt
89
- updatedAt
90
- url
91
- user { id name email }
92
- }
93
- }
94
- }`, { input: { issueId, body } }, fetchImpl);
95
- if (!data.commentCreate.success || !data.commentCreate.comment) {
96
- throw new Error("linear commentCreate failed");
97
- }
98
- return normalizeLinearComment(data.commentCreate.comment);
99
- }
100
- async function listLinearComments(settings, issueId, fetchImpl) {
101
- const out = [];
102
- let after = null;
103
- for (;;) {
104
- const data = await linearData(settings, `query LorenzTrackerLinearComments($id: String!, $after: String) {
105
- issue(id: $id) {
106
- comments(first: 100, after: $after) {
107
- nodes {
108
- id
109
- body
110
- createdAt
111
- updatedAt
112
- url
113
- user { id name email }
114
- }
115
- pageInfo {
116
- hasNextPage
117
- endCursor
118
- }
119
- }
120
- }
121
- }`, { id: issueId, after }, fetchImpl);
122
- const issue = isRecord(data) && isRecord(data.issue) ? data.issue : null;
123
- if (!issue)
124
- throw new Error(`linear issue not found: ${issueId}`);
125
- const comments = isRecord(issue.comments) ? issue.comments : {};
126
- const nodes = Array.isArray(comments.nodes) ? comments.nodes : [];
127
- for (const node of nodes) {
128
- if (isRecord(node))
129
- out.push(normalizeLinearComment(node));
130
- }
131
- const pageInfo = isRecord(comments.pageInfo) ? comments.pageInfo : {};
132
- after = stringValue(pageInfo, "endCursor");
133
- if (pageInfo.hasNextPage !== true || !after)
134
- return out;
135
- }
136
- }
137
- async function updateLinearComment(settings, commentId, body, fetchImpl) {
138
- const data = await linearData(settings, `mutation LorenzTrackerLinearCommentUpdate($id: String!, $input: CommentUpdateInput!) {
139
- commentUpdate(id: $id, input: $input) {
140
- success
141
- comment {
142
- id
143
- body
144
- createdAt
145
- updatedAt
146
- url
147
- user { id name email }
148
- }
149
- }
150
- }`, { id: commentId, input: { body } }, fetchImpl);
151
- if (!data.commentUpdate.success || !data.commentUpdate.comment) {
152
- throw new Error("linear commentUpdate failed");
153
- }
154
- return normalizeLinearComment(data.commentUpdate.comment);
155
- }
156
- async function createLinearIssue(settings, input, fetchImpl) {
157
- const options = linearTrackerOptions(settings);
158
- const projectSlug = options.projectSlug ?? options.projectSlugs?.[0];
159
- if (!projectSlug)
160
- throw new Error("tracker.project_slug is required to create Linear issues");
161
- const projectData = await linearData(settings, `query LorenzTrackerLinearProject($slug: String!) {
162
- projects(filter: {slugId: {eq: $slug}}, first: 1) {
163
- nodes { id teams(first: 1) { nodes { id states(first: 100) { nodes { id name type } } } } }
164
- }
165
- }`, { slug: projectSlug }, fetchImpl);
166
- const project = projectData.projects.nodes[0];
167
- const team = project?.teams.nodes[0];
168
- if (!project || !team)
169
- throw new Error(`linear project not found: ${projectSlug}`);
170
- const state = team.states.nodes.find((candidate) => candidate.name === input.status) ??
171
- team.states.nodes.find((candidate) => candidate.type === "unstarted") ??
172
- team.states.nodes[0];
173
- if (!state)
174
- throw new Error("linear project has no workflow states");
175
- const assignee = input.assignee?.trim() || settings.tracker.assignee?.trim();
176
- const data = await linearData(settings, `mutation LorenzTrackerLinearCreate($input: IssueCreateInput!) {
177
- issueCreate(input: $input) { success issue { ${linearIssueFields} } }
178
- }`, {
179
- input: {
180
- teamId: team.id,
181
- projectId: project.id,
182
- stateId: state.id,
183
- title: input.title,
184
- description: input.body ?? "",
185
- ...(assignee ? { assigneeId: assignee } : {}),
186
- },
187
- }, fetchImpl);
188
- if (!data.issueCreate.success || !data.issueCreate.issue)
189
- throw new Error("linear issueCreate failed");
190
- return normalizeLinearIssue(data.issueCreate.issue, settings.tracker.assignee);
191
- }
192
- async function linearData(settings, query, variables, fetchImpl) {
193
- const result = await executeLinearTool("linear_graphql", { query, variables }, settings, fetchImpl);
194
- if (!result.success)
195
- throw new Error(result.error ?? "linear_graphql failed");
196
- const body = result.result;
197
- if (!isRecord(body) || !isRecord(body.data))
198
- throw new Error("linear_graphql returned no data");
199
- return body.data;
200
- }
201
- function normalizeLinearIssue(issue, assignee) {
202
- return normalizeIssue({
203
- ...issue,
204
- state: issue.state,
205
- state_type: isRecord(issue.state) ? issue.state.type : null,
206
- branch_name: issue.branchName,
207
- assignee_id: isRecord(issue.assignee) ? issue.assignee.id : null,
208
- labels: nodesFromConnection(issue.labels),
209
- relations: nodesFromConnection(issue.inverseRelations),
210
- created_at: issue.createdAt,
211
- updated_at: issue.updatedAt,
212
- }, assignee);
213
- }
214
- function normalizeLinearComment(comment) {
215
- const user = isRecord(comment.user) ? comment.user : {};
216
- return {
217
- id: requireStr(comment, "id"),
218
- body: typeof comment.body === "string" ? comment.body : "",
219
- author: stringValue(user, "id") ?? stringValue(user, "name") ?? stringValue(user, "email"),
220
- createdAt: stringValue(comment, "createdAt"),
221
- updatedAt: stringValue(comment, "updatedAt"),
222
- url: stringValue(comment, "url"),
223
- };
224
- }
225
- function nodesFromConnection(value) {
226
- if (!isRecord(value) || !Array.isArray(value.nodes))
227
- return [];
228
- return value.nodes;
229
- }
230
- function stringValue(record, key) {
231
- const value = record[key];
232
- return typeof value === "string" && value.trim() !== "" ? value : null;
233
- }
234
- function requireStr(record, key) {
235
- const value = stringValue(record, key);
236
- if (!value)
237
- throw new Error(`'${key}' is required`);
238
- return value;
239
- }
240
- function stringArray(value) {
241
- if (value === undefined || value === null)
242
- return null;
243
- if (!Array.isArray(value) || !value.every((entry) => typeof entry === "string")) {
244
- throw new Error("expected an array of strings");
245
- }
246
- return value;
247
- }
248
- function numberArg(value, fallback) {
249
- return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : fallback;
250
- }
251
- //# sourceMappingURL=toolOps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolOps.js","sourceRoot":"","sources":["../src/toolOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAA6B,MAAM,gBAAgB,CAAC;AAQrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;CAmBzB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,OAA0B;IAC1E,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,OAAO;QACL,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;QAC3E,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC;QACzE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CACtC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;QAC1D,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;QACjF,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;QAC5F,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CACjD,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC;QAC3D,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,OAAe,EACf,SAAuB;IAEvB,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,QAAQ,EACR;yBACqB,iBAAiB;MACpC,EACF,EAAE,EAAE,EAAE,OAAO,EAAE,EACf,SAAS,CACV,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACvE,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAkB,EAClB,IAA6B,EAC7B,SAAuB;IAEvB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,QAAQ,EACR;oEAC8D,iBAAiB;QAC7E,EACF,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EACzC,SAAS,CACV,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;IACzE,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,QAAQ,EACR;;kBAEc,iBAAiB;;MAE7B,EACF,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EACtE,SAAS,CACV,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAkB,EAClB,OAAe,EACf,MAAc,EACd,SAAuB;IAEvB,MAAM,MAAM,GAAG,MAAM,UAAU,CAG7B,QAAQ,EACR;;MAEE,EACF,EAAE,EAAE,EAAE,OAAO,EAAE,EACf,SAAS,CACV,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CACnD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CACnF,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,UAAU,CAG3B,QAAQ,EACR;8DAC0D,iBAAiB;MACzE,EACF,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAC7C,SAAS,CACV,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK;QACtD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAkB,EAClB,OAAe,EACf,IAAY,EACZ,SAAuB;IAEvB,MAAM,IAAI,GAAG,MAAM,UAAU,CAG3B,QAAQ,EACR;;;;;;;;;;;;MAYE,EACF,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAC5B,SAAS,CACV,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAkB,EAClB,OAAe,EACf,SAAuB;IAEvB,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,QAAQ,EACR;;;;;;;;;;;;;;;;;QAiBE,EACF,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EACtB,SAAS,CACV,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,QAAQ,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAkB,EAClB,SAAiB,EACjB,IAAY,EACZ,SAAuB;IAEvB,MAAM,IAAI,GAAG,MAAM,UAAU,CAG3B,QAAQ,EACR;;;;;;;;;;;;MAYE,EACF,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAClC,SAAS,CACV,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAkB,EAClB,KAA8B,EAC9B,SAAuB;IAEvB,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG,MAAM,UAAU,CAalC,QAAQ,EACR;;;;MAIE,EACF,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,SAAS,CACV,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;IACnF,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,WAAW,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,UAAU,CAG3B,QAAQ,EACR;qDACiD,iBAAiB;MAChE,EACF;QACE,KAAK,EAAE;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C;KACF,EACD,SAAS,CACV,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK;QACtD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,QAAkB,EAClB,KAAa,EACb,SAAkC,EAClC,SAAuB;IAEvB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,gBAAgB,EAChB,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,QAAQ,EACR,SAAS,CACV,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChG,OAAO,IAAI,CAAC,IAAS,CAAC;AACxB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA8B,EAAE,QAAiB;IAC7E,OAAO,cAAc,CACnB;QACE,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC3D,WAAW,EAAE,KAAK,CAAC,UAAU;QAC7B,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QAChE,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;QACzC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACtD,UAAU,EAAE,KAAK,CAAC,SAAS;QAC3B,UAAU,EAAE,KAAK,CAAC,SAAS;KAC5B,EACD,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgC;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;QAC7B,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC1D,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;QAC1F,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC;QAC5C,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC;QAC5C,GAAG,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/D,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B,EAAE,GAAW;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,UAAU,CAAC,MAA+B,EAAE,GAAW;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,QAAgB;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9F,CAAC"}
@@ -1,9 +0,0 @@
1
- import { type Settings } from "@lorenz/domain";
2
- import type { TrackerToolOps } from "@lorenz/tracker-sdk";
3
- /**
4
- * Normalized issue operations behind the provider-neutral `tracker_*` pack, delegating to
5
- * the `local_*` tools so both surfaces share one board implementation. The board's query
6
- * tool filters and projects natively, so queries are exposed as pre-projected rows.
7
- */
8
- export declare function localToolOps(settings: Settings): TrackerToolOps;
9
- //# sourceMappingURL=toolOps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolOps.d.ts","sourceRoot":"","sources":["../src/toolOps.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI9E;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAoC/D"}
@@ -1,86 +0,0 @@
1
- import { normalizeIssue } from "@lorenz/issue";
2
- import { isRecord } from "@lorenz/domain";
3
- import { executeLocalTool } from "./tools.js";
4
- /**
5
- * Normalized issue operations behind the provider-neutral `tracker_*` pack, delegating to
6
- * the `local_*` tools so both surfaces share one board implementation. The board's query
7
- * tool filters and projects natively, so queries are exposed as pre-projected rows.
8
- */
9
- export function localToolOps(settings) {
10
- return {
11
- readIssue: async (issueId) => {
12
- const result = await executeLocalTool("local_read_issue", { issueId }, settings);
13
- if (!result.success)
14
- throw new Error(result.error ?? "local_read_issue failed");
15
- return localReadResultToIssue(result.result);
16
- },
17
- queryRows: async (args) => {
18
- const result = await executeLocalTool("local_query", args, settings);
19
- if (!result.success)
20
- throw new Error(result.error ?? "local_query failed");
21
- const payload = isRecord(result.result) ? result.result : {};
22
- return {
23
- rows: Array.isArray(payload.rows) ? payload.rows : [],
24
- total: typeof payload.total === "number" ? payload.total : 0,
25
- skipped: Array.isArray(payload.skipped) ? payload.skipped : [],
26
- };
27
- },
28
- updateStatus: async (issueId, status) => {
29
- const result = await executeLocalTool("local_update_status", { issueId, status }, settings);
30
- if (!result.success)
31
- throw new Error(result.error ?? "local_update_status failed");
32
- return issueResult(result.result);
33
- },
34
- addComment: async (issueId, body) => {
35
- const result = await executeLocalTool("local_comment", { issueId, body }, settings);
36
- if (!result.success)
37
- throw new Error(result.error ?? "local_comment failed");
38
- },
39
- createIssue: async (input) => {
40
- const result = await executeLocalTool("local_create_issue", { title: input.title, body: input.body, status: input.status }, settings);
41
- if (!result.success)
42
- throw new Error(result.error ?? "local_create_issue failed");
43
- return issueResult(result.result);
44
- },
45
- };
46
- }
47
- function localReadResultToIssue(value) {
48
- if (!isRecord(value) || !isRecord(value.issue))
49
- throw new Error("local_read_issue returned no issue");
50
- return normalizeIssue({
51
- id: requireStr(value.issue, "id"),
52
- identifier: requireStr(value.issue, "id"),
53
- title: requireStr(value.issue, "title"),
54
- description: typeof value.issue.description === "string" ? value.issue.description : null,
55
- state: requireStr(value.issue, "status"),
56
- state_type: stateTypeFromStatus(requireStr(value.issue, "status")),
57
- labels: [],
58
- blockers: [],
59
- });
60
- }
61
- function issueResult(value) {
62
- if (!isRecord(value) || !isRecord(value.issue))
63
- throw new Error("tracker tool returned no issue");
64
- return normalizeIssue(value.issue);
65
- }
66
- function stateTypeFromStatus(status) {
67
- const normalized = status.trim().toLowerCase();
68
- if (normalized.includes("done") || normalized.includes("closed"))
69
- return "completed";
70
- if (normalized.includes("cancel"))
71
- return "canceled";
72
- if (normalized.includes("backlog"))
73
- return "backlog";
74
- if (normalized.includes("triage"))
75
- return "triage";
76
- if (normalized.includes("progress"))
77
- return "started";
78
- return "unstarted";
79
- }
80
- function requireStr(args, key) {
81
- const value = args[key];
82
- if (typeof value !== "string" || value.trim() === "")
83
- throw new Error(`'${key}' is required`);
84
- return value;
85
- }
86
- //# sourceMappingURL=toolOps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolOps.js","sourceRoot":"","sources":["../src/toolOps.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { Settings } from "@lorenz/domain";
2
- import type { TrackerOpsContext, TrackerToolOps } from "@lorenz/tracker-sdk";
3
- import type { SlackTransport } from "./transport.js";
4
- /**
5
- * Normalized issue operations behind the provider-neutral `tracker_*` pack, implemented over
6
- * the same transport, trust boundary, and transactional status swap as the `slack_*` tools.
7
- * `createIssue` is intentionally absent: Slack issues are created by humans @-mentioning the
8
- * bot, never by an agent.
9
- */
10
- export declare function slackToolOps(settings: Settings, context: TrackerOpsContext): TrackerToolOps;
11
- /** Like {@link slackToolOps} with an injected transport (tests use the in-memory one). */
12
- export declare function slackToolOpsWith(settings: Settings, transport: SlackTransport): TrackerToolOps;
13
- //# sourceMappingURL=toolOps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolOps.d.ts","sourceRoot":"","sources":["../src/toolOps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAE3F;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,GAAG,cAAc,CA6B9F"}
@@ -1,76 +0,0 @@
1
- import { slackMessageToIssue, SlackTrackerClient, splitIssueId } from "./client.js";
2
- import { requireTrackedMessage, updateSlackStatus } from "./operations.js";
3
- import { resolveThreadState } from "./threadState.js";
4
- import { SlackWebTransport } from "./webTransport.js";
5
- /**
6
- * Normalized issue operations behind the provider-neutral `tracker_*` pack, implemented over
7
- * the same transport, trust boundary, and transactional status swap as the `slack_*` tools.
8
- * `createIssue` is intentionally absent: Slack issues are created by humans @-mentioning the
9
- * bot, never by an agent.
10
- */
11
- export function slackToolOps(settings, context) {
12
- return slackToolOpsWith(settings, new SlackWebTransport(settings, context.fetchImpl));
13
- }
14
- /** Like {@link slackToolOps} with an injected transport (tests use the in-memory one). */
15
- export function slackToolOpsWith(settings, transport) {
16
- return {
17
- readIssue: async (issueId) => {
18
- const [channel, ts] = requireIssueIdParts(issueId);
19
- const root = await requireTrackedMessage(settings, transport, channel, ts);
20
- const thread = await resolveThreadState(settings, transport, root);
21
- return slackMessageToIssue(root, settings, {
22
- permalinkBase: await transport.teamUrl(),
23
- state: thread.state,
24
- request: thread.request,
25
- });
26
- },
27
- queryIssues: async (args) => querySlackIssues(settings, transport, args),
28
- updateStatus: async (issueId, status) => {
29
- const [channel, ts] = requireIssueIdParts(issueId);
30
- const outcome = await updateSlackStatus(settings, transport, channel, ts, status);
31
- if (!outcome.ok)
32
- throw new Error(outcome.message);
33
- // The posted status reply IS the new authoritative state; no re-read needed.
34
- return slackMessageToIssue(outcome.root, settings, {
35
- permalinkBase: await transport.teamUrl(),
36
- state: outcome.status,
37
- });
38
- },
39
- addComment: async (issueId, body) => {
40
- const [channel, ts] = requireIssueIdParts(issueId);
41
- await requireTrackedMessage(settings, transport, channel, ts);
42
- await transport.postReply(channel, ts, body);
43
- },
44
- };
45
- }
46
- async function querySlackIssues(settings, transport, args) {
47
- if (typeof args.jql === "string" && args.jql.trim() !== "") {
48
- // Reject rather than silently ignore: a "filtered" result that ignored the filter would
49
- // hand the agent terminal/stale issues presented as matches.
50
- throw new Error("'jql' is not supported by the slack tracker; filter with 'where' instead");
51
- }
52
- const client = new SlackTrackerClient(settings, transport);
53
- const issueIds = stringArray(args.issueIds);
54
- if (issueIds)
55
- return client.fetchIssuesByIds(issueIds);
56
- const states = stringArray(args.states);
57
- if (states)
58
- return client.fetchIssuesByStates(states);
59
- // Match the other trackers' default scope: candidates, not the full mention history.
60
- return client.fetchCandidateIssues();
61
- }
62
- function requireIssueIdParts(issueId) {
63
- const parts = splitIssueId(issueId);
64
- if (!parts)
65
- throw new Error("issueId must be in '<channel>:<ts>' form");
66
- return parts;
67
- }
68
- function stringArray(value) {
69
- if (value === undefined || value === null)
70
- return null;
71
- if (!Array.isArray(value) || !value.every((entry) => typeof entry === "string")) {
72
- throw new Error("expected an array of strings");
73
- }
74
- return value;
75
- }
76
- //# sourceMappingURL=toolOps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolOps.js","sourceRoot":"","sources":["../src/toolOps.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { type ToolProvider } from "@lorenz/tool-sdk";
2
- import type { TrackerRegistry } from "./registry.js";
3
- /**
4
- * The provider-neutral `tracker` tool pack: one set of `tracker_*` tools that works against
5
- * whichever tracker drives dispatch, implemented purely over the provider's normalized
6
- * {@link TrackerToolOps}. Backends without tool operations (e.g. the in-process memory
7
- * fixture) advertise no tools and fail any direct call with a clear message.
8
- */
9
- export declare function createTrackerToolProvider(trackers: TrackerRegistry): ToolProvider;
10
- //# sourceMappingURL=toolPack.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolPack.d.ts","sourceRoot":"","sources":["../src/toolPack.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,YAAY,EAGlB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAerD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY,CAQjF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolPack.js","sourceRoot":"","sources":["../src/toolPack.ts"],"names":[],"mappings":"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"}