charness 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +188 -16
  2. package/dist/adapters/claudeCliAdapter.d.ts +15 -0
  3. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
  4. package/dist/adapters/claudeCliAdapter.js +36 -1
  5. package/dist/adapters/claudeCliAdapter.js.map +1 -1
  6. package/dist/adapters/claudeConfigDir.d.ts +40 -0
  7. package/dist/adapters/claudeConfigDir.d.ts.map +1 -0
  8. package/dist/adapters/claudeConfigDir.js +3 -0
  9. package/dist/adapters/claudeConfigDir.js.map +1 -0
  10. package/dist/adapters/claudeJsonStreamAdapter.d.ts +32 -0
  11. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
  12. package/dist/adapters/claudeJsonStreamAdapter.js +89 -8
  13. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
  14. package/dist/adapters/claudePlatformFlags.d.ts +4 -4
  15. package/dist/adapters/claudePlatformFlags.js +4 -4
  16. package/dist/adapters/createAdapter.d.ts +8 -0
  17. package/dist/adapters/createAdapter.d.ts.map +1 -1
  18. package/dist/adapters/createAdapter.js +37 -0
  19. package/dist/adapters/createAdapter.js.map +1 -1
  20. package/dist/adapters/openCodeAdapter.d.ts +23 -0
  21. package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
  22. package/dist/adapters/openCodeAdapter.js +84 -1
  23. package/dist/adapters/openCodeAdapter.js.map +1 -1
  24. package/dist/agentLogin/agentLogin.d.ts +15 -2
  25. package/dist/agentLogin/agentLogin.d.ts.map +1 -1
  26. package/dist/agentLogin/agentLogin.js +53 -16
  27. package/dist/agentLogin/agentLogin.js.map +1 -1
  28. package/dist/apiErrorRetry.d.ts +8 -3
  29. package/dist/apiErrorRetry.d.ts.map +1 -1
  30. package/dist/apiErrorRetry.js +36 -5
  31. package/dist/apiErrorRetry.js.map +1 -1
  32. package/dist/apiRetryKick.d.ts +9 -0
  33. package/dist/apiRetryKick.d.ts.map +1 -1
  34. package/dist/apiRetryKick.js +16 -0
  35. package/dist/apiRetryKick.js.map +1 -1
  36. package/dist/bot.d.ts.map +1 -1
  37. package/dist/bot.js +639 -24
  38. package/dist/bot.js.map +1 -1
  39. package/dist/cli/claudeProfiles.d.ts +42 -0
  40. package/dist/cli/claudeProfiles.d.ts.map +1 -0
  41. package/dist/cli/claudeProfiles.js +106 -0
  42. package/dist/cli/claudeProfiles.js.map +1 -0
  43. package/dist/cli.js +10 -0
  44. package/dist/cli.js.map +1 -1
  45. package/dist/connectors/jira/adf.d.ts +2 -0
  46. package/dist/connectors/jira/adf.d.ts.map +1 -1
  47. package/dist/connectors/jira/adf.js +5 -0
  48. package/dist/connectors/jira/adf.js.map +1 -1
  49. package/dist/connectors/jira/answerSink.d.ts +7 -0
  50. package/dist/connectors/jira/answerSink.d.ts.map +1 -1
  51. package/dist/connectors/jira/answerSink.js +24 -10
  52. package/dist/connectors/jira/answerSink.js.map +1 -1
  53. package/dist/connectors/jira/attachmentTool.d.ts +7 -0
  54. package/dist/connectors/jira/attachmentTool.d.ts.map +1 -1
  55. package/dist/connectors/jira/attachmentTool.js +16 -0
  56. package/dist/connectors/jira/attachmentTool.js.map +1 -1
  57. package/dist/connectors/jira/client.d.ts +32 -0
  58. package/dist/connectors/jira/client.d.ts.map +1 -1
  59. package/dist/connectors/jira/client.js +43 -5
  60. package/dist/connectors/jira/client.js.map +1 -1
  61. package/dist/connectors/jira/config.d.ts +3 -16
  62. package/dist/connectors/jira/config.d.ts.map +1 -1
  63. package/dist/connectors/jira/config.js +5 -32
  64. package/dist/connectors/jira/config.js.map +1 -1
  65. package/dist/connectors/jira/connector.d.ts +3 -0
  66. package/dist/connectors/jira/connector.d.ts.map +1 -1
  67. package/dist/connectors/jira/connector.js +70 -15
  68. package/dist/connectors/jira/connector.js.map +1 -1
  69. package/dist/connectors/jira/contextLedger.d.ts +1 -0
  70. package/dist/connectors/jira/contextLedger.d.ts.map +1 -1
  71. package/dist/connectors/jira/contextLedger.js +2 -0
  72. package/dist/connectors/jira/contextLedger.js.map +1 -1
  73. package/dist/connectors/jira/inbound.d.ts +15 -6
  74. package/dist/connectors/jira/inbound.d.ts.map +1 -1
  75. package/dist/connectors/jira/inbound.js +37 -22
  76. package/dist/connectors/jira/inbound.js.map +1 -1
  77. package/dist/connectors/jira/issueBlocks.d.ts +26 -3
  78. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -1
  79. package/dist/connectors/jira/issueBlocks.js +104 -29
  80. package/dist/connectors/jira/issueBlocks.js.map +1 -1
  81. package/dist/connectors/jira/issueContext.d.ts +11 -5
  82. package/dist/connectors/jira/issueContext.d.ts.map +1 -1
  83. package/dist/connectors/jira/issueContext.js +23 -6
  84. package/dist/connectors/jira/issueContext.js.map +1 -1
  85. package/dist/connectors/jira/issueDelta.d.ts +3 -0
  86. package/dist/connectors/jira/issueDelta.d.ts.map +1 -1
  87. package/dist/connectors/jira/issueDelta.js +15 -6
  88. package/dist/connectors/jira/issueDelta.js.map +1 -1
  89. package/dist/connectors/jira/mediaPlaceholders.d.ts +2 -0
  90. package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -1
  91. package/dist/connectors/jira/mediaPlaceholders.js +16 -3
  92. package/dist/connectors/jira/mediaPlaceholders.js.map +1 -1
  93. package/dist/connectors/jira/prompt.d.ts +2 -0
  94. package/dist/connectors/jira/prompt.d.ts.map +1 -1
  95. package/dist/connectors/jira/prompt.js +4 -1
  96. package/dist/connectors/jira/prompt.js.map +1 -1
  97. package/dist/connectors/jira/sessionKeyCodec.d.ts +2 -0
  98. package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -1
  99. package/dist/connectors/jira/sessionKeyCodec.js +5 -0
  100. package/dist/connectors/jira/sessionKeyCodec.js.map +1 -1
  101. package/dist/connectors/jira/trigger.d.ts +4 -0
  102. package/dist/connectors/jira/trigger.d.ts.map +1 -1
  103. package/dist/connectors/jira/trigger.js +9 -1
  104. package/dist/connectors/jira/trigger.js.map +1 -1
  105. package/dist/connectors/jira/triggerLog.d.ts +4 -2
  106. package/dist/connectors/jira/triggerLog.d.ts.map +1 -1
  107. package/dist/connectors/jira/triggerLog.js +1 -1
  108. package/dist/connectors/jira/triggerLog.js.map +1 -1
  109. package/dist/connectors/jira/trustedGroup.d.ts +54 -0
  110. package/dist/connectors/jira/trustedGroup.d.ts.map +1 -0
  111. package/dist/connectors/jira/trustedGroup.js +98 -0
  112. package/dist/connectors/jira/trustedGroup.js.map +1 -0
  113. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +3 -0
  114. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -1
  115. package/dist/connectors/telegram/commands/autoContinueLimits.js +15 -45
  116. package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -1
  117. package/dist/connectors/telegram/commands/claudeAccounts.d.ts +58 -0
  118. package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -0
  119. package/dist/connectors/telegram/commands/claudeAccounts.js +591 -0
  120. package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -0
  121. package/dist/connectors/telegram/commands/fallbackChain.d.ts +49 -0
  122. package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -0
  123. package/dist/connectors/telegram/commands/fallbackChain.js +624 -0
  124. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -0
  125. package/dist/connectors/telegram/commands/modelProviders.d.ts +23 -1
  126. package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -1
  127. package/dist/connectors/telegram/commands/modelProviders.js +131 -6
  128. package/dist/connectors/telegram/commands/modelProviders.js.map +1 -1
  129. package/dist/i18n/de.d.ts.map +1 -1
  130. package/dist/i18n/de.js +137 -9
  131. package/dist/i18n/de.js.map +1 -1
  132. package/dist/i18n/en.d.ts.map +1 -1
  133. package/dist/i18n/en.js +137 -9
  134. package/dist/i18n/en.js.map +1 -1
  135. package/dist/i18n/es.d.ts.map +1 -1
  136. package/dist/i18n/es.js +137 -9
  137. package/dist/i18n/es.js.map +1 -1
  138. package/dist/i18n/fr.d.ts.map +1 -1
  139. package/dist/i18n/fr.js +137 -9
  140. package/dist/i18n/fr.js.map +1 -1
  141. package/dist/i18n/hi.d.ts.map +1 -1
  142. package/dist/i18n/hi.js +137 -9
  143. package/dist/i18n/hi.js.map +1 -1
  144. package/dist/i18n/ja.d.ts.map +1 -1
  145. package/dist/i18n/ja.js +137 -9
  146. package/dist/i18n/ja.js.map +1 -1
  147. package/dist/i18n/ka.d.ts.map +1 -1
  148. package/dist/i18n/ka.js +137 -9
  149. package/dist/i18n/ka.js.map +1 -1
  150. package/dist/i18n/pt.d.ts.map +1 -1
  151. package/dist/i18n/pt.js +137 -9
  152. package/dist/i18n/pt.js.map +1 -1
  153. package/dist/i18n/ru.d.ts.map +1 -1
  154. package/dist/i18n/ru.js +137 -9
  155. package/dist/i18n/ru.js.map +1 -1
  156. package/dist/i18n/uk.d.ts.map +1 -1
  157. package/dist/i18n/uk.js +137 -9
  158. package/dist/i18n/uk.js.map +1 -1
  159. package/dist/i18n/uz.d.ts.map +1 -1
  160. package/dist/i18n/uz.js +137 -9
  161. package/dist/i18n/uz.js.map +1 -1
  162. package/dist/i18n/zh.d.ts.map +1 -1
  163. package/dist/i18n/zh.js +137 -9
  164. package/dist/i18n/zh.js.map +1 -1
  165. package/dist/scheduler/mcpSurface.d.ts +8 -0
  166. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  167. package/dist/scheduler/mcpSurface.js +42 -2
  168. package/dist/scheduler/mcpSurface.js.map +1 -1
  169. package/dist/state.d.ts +172 -1
  170. package/dist/state.d.ts.map +1 -1
  171. package/dist/state.js +298 -0
  172. package/dist/state.js.map +1 -1
  173. package/dist/types.d.ts +7 -0
  174. package/dist/types.d.ts.map +1 -1
  175. package/dist/utils/autoContinueOnLimit.d.ts +7 -0
  176. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
  177. package/dist/utils/autoContinueOnLimit.js +10 -0
  178. package/dist/utils/autoContinueOnLimit.js.map +1 -1
  179. package/dist/utils/claudeAccountPickerPlan.d.ts +85 -0
  180. package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -0
  181. package/dist/utils/claudeAccountPickerPlan.js +123 -0
  182. package/dist/utils/claudeAccountPickerPlan.js.map +1 -0
  183. package/dist/utils/claudeLimitSwitch.d.ts +40 -0
  184. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -0
  185. package/dist/utils/claudeLimitSwitch.js +54 -0
  186. package/dist/utils/claudeLimitSwitch.js.map +1 -0
  187. package/dist/utils/claudeProfileUsageLines.d.ts +15 -0
  188. package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -0
  189. package/dist/utils/claudeProfileUsageLines.js +42 -0
  190. package/dist/utils/claudeProfileUsageLines.js.map +1 -0
  191. package/dist/utils/claudeProfiles.d.ts +117 -0
  192. package/dist/utils/claudeProfiles.d.ts.map +1 -0
  193. package/dist/utils/claudeProfiles.js +285 -0
  194. package/dist/utils/claudeProfiles.js.map +1 -0
  195. package/dist/utils/claudeStreamJson.d.ts +13 -1
  196. package/dist/utils/claudeStreamJson.d.ts.map +1 -1
  197. package/dist/utils/claudeStreamJson.js +13 -0
  198. package/dist/utils/claudeStreamJson.js.map +1 -1
  199. package/dist/utils/claudeUsage.d.ts +209 -0
  200. package/dist/utils/claudeUsage.d.ts.map +1 -0
  201. package/dist/utils/claudeUsage.js +413 -0
  202. package/dist/utils/claudeUsage.js.map +1 -0
  203. package/dist/utils/claudeUsageRefresher.d.ts +44 -0
  204. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -0
  205. package/dist/utils/claudeUsageRefresher.js +95 -0
  206. package/dist/utils/claudeUsageRefresher.js.map +1 -0
  207. package/dist/utils/fallbackBridge.d.ts +32 -0
  208. package/dist/utils/fallbackBridge.d.ts.map +1 -0
  209. package/dist/utils/fallbackBridge.js +62 -0
  210. package/dist/utils/fallbackBridge.js.map +1 -0
  211. package/dist/utils/fallbackChain.d.ts +299 -0
  212. package/dist/utils/fallbackChain.d.ts.map +1 -0
  213. package/dist/utils/fallbackChain.js +542 -0
  214. package/dist/utils/fallbackChain.js.map +1 -0
  215. package/dist/utils/jsonStreamHost.d.ts +14 -3
  216. package/dist/utils/jsonStreamHost.d.ts.map +1 -1
  217. package/dist/utils/jsonStreamHost.js +26 -5
  218. package/dist/utils/jsonStreamHost.js.map +1 -1
  219. package/dist/utils/modelRecentPlan.d.ts +56 -0
  220. package/dist/utils/modelRecentPlan.d.ts.map +1 -0
  221. package/dist/utils/modelRecentPlan.js +107 -0
  222. package/dist/utils/modelRecentPlan.js.map +1 -0
  223. package/dist/utils/threadStatusReport.d.ts +25 -1
  224. package/dist/utils/threadStatusReport.d.ts.map +1 -1
  225. package/dist/utils/threadStatusReport.js +24 -1
  226. package/dist/utils/threadStatusReport.js.map +1 -1
  227. package/package.json +1 -1
@@ -7,15 +7,26 @@ const adf_1 = require("./adf");
7
7
  const issueContext_1 = require("./issueContext");
8
8
  const mediaPlaceholders_1 = require("./mediaPlaceholders");
9
9
  const promptText_1 = require("./promptText");
10
+ const sessionKeyCodec_1 = require("./sessionKeyCodec");
11
+ const trigger_1 = require("./trigger");
12
+ const withheldWrittenMarker = '[withheld: written or edited by someone outside the trusted group]';
13
+ const withheldUploadedMarker = '[withheld: uploaded by someone outside the trusted group]';
14
+ /** The ids Jira's changelog names the free-text system fields by. */
15
+ const summaryFieldId = 'summary';
16
+ const descriptionFieldId = 'description';
17
+ const labelsFieldId = 'labels';
10
18
  const emptyBodyText = '(empty)';
11
19
  const noneBodyText = '(none)';
12
20
  const notReferencedText = 'not referenced in the text';
13
21
  const descriptionLocation = 'description';
14
22
  /** Properties of a field value that name it, in the order they are tried: a user, an option, a version or component. */
15
23
  const namedValueProperties = ['displayName', 'value', 'name'];
16
- /** @description The block as the prompt prints it; `stateNote` (`new`, `changed since your last prompt`, …) follows the heading. */
24
+ /**
25
+ * @description The block as the prompt prints it; `stateNote` (`new`, `changed since your last prompt`, …) follows
26
+ * the heading. A withheld block is one line: its marker follows the heading's colon.
27
+ */
17
28
  function getIssueBlockText(block, stateNote) {
18
- return `${block.heading}${stateNote ? ` (${stateNote})` : ''}:\n${block.body}`;
29
+ return `${block.heading}${stateNote ? ` (${stateNote})` : ''}:${block.isWithheld ? ' ' : '\n'}${block.body}`;
19
30
  }
20
31
  function getHash(text) {
21
32
  return (0, crypto_1.createHash)('sha256').update(text).digest('hex');
@@ -23,9 +34,30 @@ function getHash(text) {
23
34
  function createBlock(key, kind, heading, body, fullText = body) {
24
35
  return { key, kind, heading, body, fullText, hash: getHash(`${heading}\n${body}`) };
25
36
  }
26
- /** `PROJ-5 "summary" (Status)`: what another issue is called. */
27
- function getIssueReferenceText(reference) {
28
- const summary = (0, promptText_1.getSingleLineText)(reference.fields?.summary ?? '');
37
+ /** A marker standing for text nobody trusted wrote: the block's whole text. Its key and hash follow the marker. */
38
+ function createWithheldBlock(key, kind, heading, marker) {
39
+ return { ...createBlock(key, kind, heading, marker), isWithheld: true };
40
+ }
41
+ /**
42
+ * Did only trusted accounts write what `field` says now? The issue's creator wrote its first value and every
43
+ * changelog entry that touched the field wrote a later one; an entry Jira names no author for is untrusted.
44
+ * `name` also matches an old entry that carries only the field's display name.
45
+ */
46
+ function checkIsFieldTrusted(context, trust, field) {
47
+ if (!trust.checkIsTrusted(context.issue.fields.creator))
48
+ return false;
49
+ return context.changelog
50
+ .filter((history) => history.items.some((item) => (0, trigger_1.getItemField)(item) === field.id || (field.name !== undefined && item.field === field.name)))
51
+ .every((history) => trust.checkIsTrusted(history.author));
52
+ }
53
+ /**
54
+ * `PROJ-5 "summary" (Status)`: what another issue is called. With a trusted group the summary is kept only for an
55
+ * issue of a listed project — who wrote any other's is unknown, so its key and status say all.
56
+ */
57
+ function getIssueReferenceText(reference, trust) {
58
+ const projectKey = (0, sessionKeyCodec_1.getJiraIssueProjectKey)(reference.key);
59
+ const isSummaryShown = trust === null || (projectKey !== null && trust.allowlistedProjectKeys.has(projectKey));
60
+ const summary = isSummaryShown ? (0, promptText_1.getSingleLineText)(reference.fields?.summary ?? '') : '';
29
61
  const statusName = (0, promptText_1.getSingleLineText)(reference.fields?.status?.name ?? '');
30
62
  return [(0, promptText_1.getSingleLineText)(reference.key), summary ? `"${summary}"` : '', statusName ? `(${statusName})` : ''].filter((part) => part !== '').join(' ');
31
63
  }
@@ -55,46 +87,55 @@ function getFieldLine(label, value) {
55
87
  function getNamesText(items) {
56
88
  return (items ?? []).map((item) => (0, promptText_1.getSingleLineText)(item.name)).filter((name) => name !== '').join(', ');
57
89
  }
58
- function getFieldsBlock(context, extraFields) {
90
+ function getFieldsBlock(context, extraFields, trust) {
59
91
  const { fields, rawFields } = context.issue;
92
+ /** A free-text field's value, or its marker when someone outside the trusted group wrote any of it; an empty value stays empty. */
93
+ const getWrittenValue = (value, field) => value !== '' && trust !== null && !checkIsFieldTrusted(context, trust, field) ? withheldWrittenMarker : value;
60
94
  const lines = [
61
- ...getFieldLine('Summary', (0, promptText_1.getSingleLineText)(fields.summary ?? '') || '(no summary)'),
95
+ ...getFieldLine('Summary', getWrittenValue((0, promptText_1.getSingleLineText)(fields.summary ?? '') || '(no summary)', { id: summaryFieldId })),
62
96
  ...getFieldLine('Type', (0, promptText_1.getSingleLineText)(fields.issuetype?.name ?? '')),
63
97
  ...getFieldLine('Priority', (0, promptText_1.getSingleLineText)(fields.priority?.name ?? '')),
64
98
  ...getFieldLine('Status', (0, promptText_1.getSingleLineText)(fields.status?.name ?? '') || 'unknown'),
65
99
  ...getFieldLine('Reporter', fields.reporter ? (0, promptText_1.getAccountName)(fields.reporter) : ''),
66
- ...getFieldLine('Parent', fields.parent ? getIssueReferenceText(fields.parent) : ''),
100
+ ...getFieldLine('Parent', fields.parent ? getIssueReferenceText(fields.parent, trust) : ''),
67
101
  ...getFieldLine('Fix versions', getNamesText(fields.fixVersions)),
68
- ...getFieldLine('Labels', (fields.labels ?? []).map(promptText_1.getSingleLineText).filter((label) => label !== '').join(', ')),
102
+ ...getFieldLine('Labels', getWrittenValue((fields.labels ?? []).map(promptText_1.getSingleLineText).filter((label) => label !== '').join(', '), { id: labelsFieldId })),
69
103
  ...getFieldLine('Components', getNamesText(fields.components)),
70
- ...extraFields.flatMap((extraField) => getFieldLine((0, promptText_1.getSingleLineText)(extraField.name), getExtraFieldValueText(rawFields?.[extraField.id]))),
104
+ ...extraFields.flatMap((extraField) => getFieldLine((0, promptText_1.getSingleLineText)(extraField.name), getWrittenValue(getExtraFieldValueText(rawFields?.[extraField.id]), extraField))),
71
105
  ];
72
106
  return createBlock('fields', 'fields', 'Fields', lines.join('\n'));
73
107
  }
74
- function getHierarchyBlock(context) {
108
+ function getHierarchyBlock(context, trust) {
75
109
  const isParent = (context.issue.fields.issuetype?.hierarchyLevel ?? 0) >= issueContext_1.jiraParentHierarchyLevel;
76
110
  const items = isParent ? context.children : (context.issue.fields.subtasks ?? []);
77
111
  const heading = `${isParent ? 'Child issues' : 'Sub-tasks'} (${items.length})`;
78
- return createBlock('hierarchy', 'hierarchy', heading, items.length === 0 ? noneBodyText : items.map((item) => `- ${getIssueReferenceText(item)}`).join('\n'));
112
+ return createBlock('hierarchy', 'hierarchy', heading, items.length === 0 ? noneBodyText : items.map((item) => `- ${getIssueReferenceText(item, trust)}`).join('\n'));
79
113
  }
80
- function getIssueLinkText(link) {
114
+ function getIssueLinkText(link, trust) {
81
115
  const farIssue = link.outwardIssue ?? link.inwardIssue;
82
116
  if (!farIssue)
83
117
  return [];
84
118
  const phrase = (0, promptText_1.getSingleLineText)(link.outwardIssue ? link.type.outward : link.type.inward);
85
- return [`- ${phrase} ${getIssueReferenceText(farIssue)}`];
119
+ return [`- ${phrase} ${getIssueReferenceText(farIssue, trust)}`];
86
120
  }
87
- function getLinksBlock(context) {
121
+ /**
122
+ * With a trusted group a remote link shows its URL only: the title is written by whoever added the link, and the
123
+ * issue's changelog does not say who that was.
124
+ */
125
+ function getLinksBlock(context, trust) {
88
126
  const lines = [
89
- ...(context.issue.fields.issuelinks ?? []).flatMap(getIssueLinkText),
127
+ ...(context.issue.fields.issuelinks ?? []).flatMap((link) => getIssueLinkText(link, trust)),
90
128
  ...context.remoteLinks.map((link) => {
91
- const title = (0, promptText_1.getSingleLineText)(link.object.title ?? '');
129
+ const title = trust === null ? (0, promptText_1.getSingleLineText)(link.object.title ?? '') : '';
92
130
  return `- web link: ${title ? `"${title}" ` : ''}${(0, promptText_1.getSingleLineText)(link.object.url)}`;
93
131
  }),
94
132
  ];
95
133
  return createBlock('links', 'links', 'Links', lines.length === 0 ? noneBodyText : lines.join('\n'));
96
134
  }
97
- function getAttachmentLine(attachment, locations) {
135
+ function getAttachmentLine(attachment, locations, isWithheld) {
136
+ // The file name is the uploader's text too: a withheld file is its id and the marker, nothing more.
137
+ if (isWithheld)
138
+ return `- ${attachment.id} ${withheldUploadedMarker}`;
98
139
  const details = [
99
140
  (0, promptText_1.getSingleLineText)(attachment.mimeType ?? ''),
100
141
  attachment.size === undefined ? '' : `${attachment.size} bytes`,
@@ -105,8 +146,8 @@ function getAttachmentLine(attachment, locations) {
105
146
  const referencedText = locations.length > 0 ? `referenced in ${locations.join(', ')}` : notReferencedText;
106
147
  return `- ${attachment.id} ${(0, promptText_1.getSingleLineText)(attachment.filename)}${detailsText} — ${referencedText}`;
107
148
  }
108
- function getAttachmentsBlock(attachments, locationsByAttachmentId) {
109
- const lines = attachments.map((attachment) => getAttachmentLine(attachment, locationsByAttachmentId.get(attachment.id) ?? []));
149
+ function getAttachmentsBlock(attachments, locationsByAttachmentId, withheldAttachmentIds) {
150
+ const lines = attachments.map((attachment) => getAttachmentLine(attachment, locationsByAttachmentId.get(attachment.id) ?? [], withheldAttachmentIds.has(attachment.id)));
110
151
  return createBlock('attachments', 'attachments', `Attachments (${attachments.length})`, lines.length === 0 ? noneBodyText : lines.join('\n'));
111
152
  }
112
153
  /** `[restricted to <role or group>]` and `[internal]` (a Service Management internal note): who may NOT be told what this says. */
@@ -117,6 +158,23 @@ function getCommentVisibilityMarker(comment) {
117
158
  ];
118
159
  return markers.join(' ');
119
160
  }
161
+ /** Written AND last edited by trusted accounts; an author Jira does not name is not one. */
162
+ function checkIsCommentTrusted(comment, trust) {
163
+ return trust.checkIsTrusted(comment.author) && (comment.updateAuthor === undefined || trust.checkIsTrusted(comment.updateAuthor));
164
+ }
165
+ /** A comment the agent may not read: no name, no text — its id and date say there is one to ask the requester about. */
166
+ function getWithheldCommentBlock(comment) {
167
+ const id = (0, promptText_1.getSingleLineText)(comment.id);
168
+ const created = (0, promptText_1.getSingleLineText)(comment.created);
169
+ return {
170
+ ...createWithheldBlock(`comment:${comment.id}`, 'comment', `Comment ${id}, ${created}`, withheldWrittenMarker),
171
+ comment: {
172
+ label: `comment ${id} from ${created}`,
173
+ editNote: `edited ${(0, promptText_1.getSingleLineText)(comment.updated ?? '') || 'at an unknown time'}`,
174
+ isOwn: false,
175
+ },
176
+ };
177
+ }
120
178
  function getCommentBlock(comment, text, aiAccountId) {
121
179
  const marker = getCommentVisibilityMarker(comment);
122
180
  const id = (0, promptText_1.getSingleLineText)(comment.id);
@@ -146,10 +204,13 @@ function getCommentsOldestFirst(comments) {
146
204
  /**
147
205
  * @description The issue as blocks, in prompt order. Media in the description
148
206
  * and the comments become placeholders naming their attachment (C9); the
149
- * attachments block then says where each file is referenced.
207
+ * attachments block then says where each file is referenced. With `trust` set,
208
+ * text outside the trusted group is replaced by markers (see the file header);
209
+ * `null` is the unfiltered issue, as it always was.
150
210
  */
151
- function buildIssueBlocks(context, extraFields, aiAccountId) {
211
+ function buildIssueBlocks(context, extraFields, aiAccountId, trust = null) {
152
212
  const attachments = [...(context.issue.fields.attachment ?? [])].sort((left, right) => Number(left.id) - Number(right.id));
213
+ const withheldAttachmentIds = new Set(trust === null ? [] : attachments.filter((attachment) => !trust.checkIsTrusted(attachment.author)).map((attachment) => attachment.id));
153
214
  const comments = getCommentsOldestFirst(context.comments);
154
215
  const attachmentIdByMediaId = new Map([
155
216
  ...(0, mediaPlaceholders_1.getAttachmentIdsByMediaId)(context.issue.renderedFields?.description),
@@ -159,6 +220,7 @@ function buildIssueBlocks(context, extraFields, aiAccountId) {
159
220
  const getResolver = (location) => (0, mediaPlaceholders_1.createMediaResolver)({
160
221
  attachments,
161
222
  attachmentIdByMediaId,
223
+ withheldAttachmentIds,
162
224
  onResolved: (attachmentIds) => {
163
225
  for (const attachmentId of attachmentIds) {
164
226
  const locations = locationsByAttachmentId.get(attachmentId) ?? [];
@@ -167,15 +229,28 @@ function buildIssueBlocks(context, extraFields, aiAccountId) {
167
229
  }
168
230
  },
169
231
  });
170
- const descriptionText = (0, adf_1.getAdfText)(context.issue.fields.description, getResolver(descriptionLocation));
171
- const descriptionBlock = createBlock('description', 'description', 'Description', (0, promptText_1.getQuotedText)(descriptionText || emptyBodyText), descriptionText);
172
- const commentBlocks = comments.map((comment) => getCommentBlock(comment, (0, adf_1.getAdfText)(comment.body, getResolver(`comment ${comment.id}`)), aiAccountId));
232
+ // A withheld description or comment never meets the media resolver: its media are not locations of anything.
233
+ // No description has nothing to withhold: a marker would send the agent asking for text that is not there.
234
+ const isDescriptionWithheld = trust !== null
235
+ && Boolean(context.issue.fields.description)
236
+ && !checkIsFieldTrusted(context, trust, { id: descriptionFieldId });
237
+ let descriptionBlock;
238
+ if (isDescriptionWithheld) {
239
+ descriptionBlock = createWithheldBlock('description', 'description', 'Description', withheldWrittenMarker);
240
+ }
241
+ else {
242
+ const descriptionText = (0, adf_1.getAdfText)(context.issue.fields.description, getResolver(descriptionLocation));
243
+ descriptionBlock = createBlock('description', 'description', 'Description', (0, promptText_1.getQuotedText)(descriptionText || emptyBodyText), descriptionText);
244
+ }
245
+ const commentBlocks = comments.map((comment) => (trust !== null && !checkIsCommentTrusted(comment, trust)
246
+ ? getWithheldCommentBlock(comment)
247
+ : getCommentBlock(comment, (0, adf_1.getAdfText)(comment.body, getResolver(`comment ${comment.id}`)), aiAccountId)));
173
248
  return [
174
- getFieldsBlock(context, extraFields),
249
+ getFieldsBlock(context, extraFields, trust),
175
250
  descriptionBlock,
176
- getHierarchyBlock(context),
177
- getLinksBlock(context),
178
- getAttachmentsBlock(attachments, locationsByAttachmentId),
251
+ getHierarchyBlock(context, trust),
252
+ getLinksBlock(context, trust),
253
+ getAttachmentsBlock(attachments, locationsByAttachmentId, withheldAttachmentIds),
179
254
  ...commentBlocks,
180
255
  ];
181
256
  }
@@ -1 +1 @@
1
- {"version":3,"file":"issueBlocks.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueBlocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issueBlocks.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueBlocks.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,18 @@
1
- import type { JiraClient, JiraComment, JiraIssue, JiraRemoteLink } from './client';
1
+ import { type JiraChangelogHistory, type JiraClient, type JiraComment, type JiraIssue, type JiraRemoteLink } from './client';
2
2
  /**
3
3
  * @description Everything one request's prompt says about an issue (plan C1,
4
4
  * C2): the issue's own fields, ALL its comments (the issue field holds at most
5
5
  * 100), its remote links, and — for an issue that can hold children, such as an
6
6
  * epic — ALL its children, read page by page. Fetched before the request opens:
7
- * a request is never left without its prompt.
7
+ * a request is never left without its prompt. With a trusted group the issue's
8
+ * WHOLE changelog is read too: it names who wrote what every field says now.
8
9
  */
9
10
  /** The fields every prompt reads; a project's `extraFields` ids are added to them. */
10
11
  export declare const jiraPromptIssueFields: string[];
11
12
  export declare const jiraChildSearchPageSize = 100;
12
13
  /** An issue type at this level or above holds child issues (an epic); level 0 holds sub-tasks, below 0 is a sub-task. */
13
14
  export declare const jiraParentHierarchyLevel = 1;
14
- export type JiraIssueContextClient = Pick<JiraClient, 'getIssue' | 'getComments' | 'getRemoteLinks' | 'searchIssues'>;
15
+ export type JiraIssueContextClient = Pick<JiraClient, 'getIssue' | 'getComments' | 'getRemoteLinks' | 'searchIssues' | 'getChangelogPage'>;
15
16
  export interface JiraIssueContext {
16
17
  issue: JiraIssue;
17
18
  /** Oldest first. */
@@ -19,7 +20,12 @@ export interface JiraIssueContext {
19
20
  remoteLinks: JiraRemoteLink[];
20
21
  /** The issue's children when its type can hold them, else empty (its sub-tasks are on the issue itself). */
21
22
  children: JiraIssue[];
23
+ /** The whole changelog, oldest first — read only when the caller asked for it (`isChangelogNeeded`), else empty. */
24
+ changelog: JiraChangelogHistory[];
22
25
  }
23
- /** @description Read the issue, its comments, its remote links and, when it can have them, its children. */
24
- export declare function fetchJiraIssueContext(client: JiraIssueContextClient, issueKey: string, extraFieldIds: readonly string[]): Promise<JiraIssueContext>;
26
+ /**
27
+ * @description Read the issue, its comments, its remote links and, when it can have them, its children —
28
+ * and, when `isChangelogNeeded`, its whole changelog.
29
+ */
30
+ export declare function fetchJiraIssueContext(client: JiraIssueContextClient, issueKey: string, extraFieldIds: readonly string[], isChangelogNeeded: boolean): Promise<JiraIssueContext>;
25
31
  //# sourceMappingURL=issueContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issueContext.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEnF;;;;;;GAMG;AAEH,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,UAGjC,CAAC;AAIF,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,yHAAyH;AACzH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,gBAAgB,GAAG,cAAc,CAAC,CAAC;AAEtH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,4GAA4G;IAC5G,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAwBD,4GAA4G;AAC5G,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}
1
+ {"version":3,"file":"issueContext.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,oBAAoB,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE3K;;;;;;;GAOG;AAEH,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,UAGjC,CAAC;AAIF,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,yHAAyH;AACzH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,gBAAgB,GAAG,cAAc,GAAG,kBAAkB,CAAC,CAAC;AAE3I,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,4GAA4G;IAC5G,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,oHAAoH;IACpH,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAoCD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAS3B"}
@@ -2,17 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.jiraParentHierarchyLevel = exports.jiraChildSearchPageSize = exports.jiraPromptIssueFields = void 0;
4
4
  exports.fetchJiraIssueContext = fetchJiraIssueContext;
5
+ const client_1 = require("./client");
5
6
  /**
6
7
  * @description Everything one request's prompt says about an issue (plan C1,
7
8
  * C2): the issue's own fields, ALL its comments (the issue field holds at most
8
9
  * 100), its remote links, and — for an issue that can hold children, such as an
9
10
  * epic — ALL its children, read page by page. Fetched before the request opens:
10
- * a request is never left without its prompt.
11
+ * a request is never left without its prompt. With a trusted group the issue's
12
+ * WHOLE changelog is read too: it names who wrote what every field says now.
11
13
  */
12
14
  /** The fields every prompt reads; a project's `extraFields` ids are added to them. */
13
15
  exports.jiraPromptIssueFields = [
14
16
  'summary', 'status', 'issuetype', 'priority', 'parent', 'subtasks', 'issuelinks', 'fixVersions', 'labels',
15
- 'components', 'attachment', 'description', 'reporter',
17
+ 'components', 'attachment', 'description', 'reporter', 'creator',
16
18
  ];
17
19
  /** Only the description's HTML is asked for: it names the attachment behind an inline file (C9). */
18
20
  const renderedFieldsExpand = 'renderedFields';
@@ -40,14 +42,29 @@ async function getChildIssues(client, issueKey) {
40
42
  } while (nextPageToken);
41
43
  return children;
42
44
  }
43
- /** @description Read the issue, its comments, its remote links and, when it can have them, its children. */
44
- async function fetchJiraIssueContext(client, issueKey, extraFieldIds) {
45
- const [issue, comments, remoteLinks] = await Promise.all([
45
+ /** EVERY entry of the issue's changelog, oldest first, page after page (the page actually returned decides where the next starts). */
46
+ async function getWholeChangelog(client, issueKey) {
47
+ const histories = [];
48
+ for (;;) {
49
+ const page = await client.getChangelogPage(issueKey, histories.length, client_1.jiraChangelogPageSize);
50
+ histories.push(...page.values);
51
+ if ((0, client_1.checkIsLastOffsetPage)({ isLast: page.isLast, total: page.total, pageItemCount: page.values.length, readItemCount: histories.length, pageSize: client_1.jiraChangelogPageSize })) {
52
+ return histories;
53
+ }
54
+ }
55
+ }
56
+ /**
57
+ * @description Read the issue, its comments, its remote links and, when it can have them, its children —
58
+ * and, when `isChangelogNeeded`, its whole changelog.
59
+ */
60
+ async function fetchJiraIssueContext(client, issueKey, extraFieldIds, isChangelogNeeded) {
61
+ const [issue, comments, remoteLinks, changelog] = await Promise.all([
46
62
  client.getIssue(issueKey, [...exports.jiraPromptIssueFields, ...extraFieldIds], renderedFieldsExpand),
47
63
  client.getComments(issueKey),
48
64
  client.getRemoteLinks(issueKey),
65
+ isChangelogNeeded ? getWholeChangelog(client, issueKey) : [],
49
66
  ]);
50
67
  const isParent = (issue.fields.issuetype?.hierarchyLevel ?? 0) >= exports.jiraParentHierarchyLevel;
51
- return { issue, comments, remoteLinks, children: isParent ? await getChildIssues(client, issueKey) : [] };
68
+ return { issue, comments, remoteLinks, children: isParent ? await getChildIssues(client, issueKey) : [], changelog };
52
69
  }
53
70
  //# sourceMappingURL=issueContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issueContext.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueContext.ts"],"names":[],"mappings":";;;AAwDA,sDAYC;AAlED;;;;;;GAMG;AAEH,sFAAsF;AACzE,QAAA,qBAAqB,GAAG;IACnC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ;IACzG,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU;CACtD,CAAC;AACF,oGAAoG;AACpG,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAC9C,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC/C,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAC3C,yHAAyH;AAC5G,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAa1C,8GAA8G;AAC9G,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAA8B,EAAE,QAAgB;IAC5E,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,IAAI,aAAiC,CAAC;IACtC,GAAG,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACrC,GAAG,EAAE,YAAY,YAAY,CAAC,QAAQ,CAAC,uBAAuB;YAC9D,MAAM,EAAE,gBAAgB;YACxB,mBAAmB,EAAE,KAAK;YAC1B,UAAU,EAAE,+BAAuB;YACnC,aAAa;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;IAC9E,CAAC,QAAQ,aAAa,EAAE;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4GAA4G;AACrG,KAAK,UAAU,qBAAqB,CACzC,MAA8B,EAC9B,QAAgB,EAChB,aAAgC;IAEhC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,6BAAqB,EAAE,GAAG,aAAa,CAAC,EAAE,oBAAoB,CAAC;QAC7F,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,IAAI,CAAC,CAAC,IAAI,gCAAwB,CAAC;IAC3F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5G,CAAC"}
1
+ {"version":3,"file":"issueContext.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueContext.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { IssueBlock, IssueBlockKind } from './issueBlocks';
5
5
  * carries (prompt context C3, C7): only the blocks it has not seen.
6
6
  *
7
7
  * key not sent before → `new`
8
+ * sent, withheld↔readable flipped → `trust changed since your last prompt` (an author joined or left the group)
8
9
  * sent, hash differs → comment: `edited <date> by <name>`, other: `changed since your last prompt`
9
10
  * sent, same hash → left out, counted in the "unchanged" line
10
11
  * the AI account's own comment → left out (it wrote it), unless a person edited it
@@ -15,6 +16,8 @@ import type { IssueBlock, IssueBlockKind } from './issueBlocks';
15
16
  */
16
17
  export declare const newBlockNote = "new";
17
18
  export declare const changedBlockNote = "changed since your last prompt";
19
+ /** A block's author joined the trusted group (it is readable now) or left it (it is withheld now): never "edited". */
20
+ export declare const trustChangedBlockNote = "trust changed since your last prompt";
18
21
  export interface IssueDeltaEntry {
19
22
  block: IssueBlock;
20
23
  stateNote: string;
@@ -1 +1 @@
1
- {"version":3,"file":"issueDelta.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueDelta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAGjE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,qEAAqE;IACrE,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iDAAiD;IACjD,IAAI,EAAE,cAAc,CAAC;CACtB;AASD,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU,CAcvG"}
1
+ {"version":3,"file":"issueDelta.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueDelta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AACjE,sHAAsH;AACtH,eAAO,MAAM,qBAAqB,yCAAyC,CAAC;AAG5E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,qEAAqE;IACrE,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iDAAiD;IACjD,IAAI,EAAE,cAAc,CAAC;CACtB;AAUD,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU,CAkBvG"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.changedBlockNote = exports.newBlockNote = void 0;
3
+ exports.trustChangedBlockNote = exports.changedBlockNote = exports.newBlockNote = void 0;
4
4
  exports.getIssueDelta = getIssueDelta;
5
5
  /**
6
6
  * @description What a prompt to a conversation that already knows the issue
7
7
  * carries (prompt context C3, C7): only the blocks it has not seen.
8
8
  *
9
9
  * key not sent before → `new`
10
+ * sent, withheld↔readable flipped → `trust changed since your last prompt` (an author joined or left the group)
10
11
  * sent, hash differs → comment: `edited <date> by <name>`, other: `changed since your last prompt`
11
12
  * sent, same hash → left out, counted in the "unchanged" line
12
13
  * the AI account's own comment → left out (it wrote it), unless a person edited it
@@ -17,13 +18,17 @@ exports.getIssueDelta = getIssueDelta;
17
18
  */
18
19
  exports.newBlockNote = 'new';
19
20
  exports.changedBlockNote = 'changed since your last prompt';
21
+ /** A block's author joined the trusted group (it is readable now) or left it (it is withheld now): never "edited". */
22
+ exports.trustChangedBlockNote = 'trust changed since your last prompt';
20
23
  const commentKeyPrefix = 'comment:';
21
- function getStateNote(block, sentHash) {
24
+ function getStateNote(block, sent) {
22
25
  if (block.comment?.isOwn)
23
26
  return null;
24
- if (sentHash === undefined)
27
+ if (sent === undefined)
25
28
  return exports.newBlockNote;
26
- if (sentHash === block.hash)
29
+ if (Boolean(sent.isWithheld) !== Boolean(block.isWithheld))
30
+ return exports.trustChangedBlockNote;
31
+ if (sent.hash === block.hash)
27
32
  return null;
28
33
  return block.comment ? block.comment.editNote : exports.changedBlockNote;
29
34
  }
@@ -31,8 +36,12 @@ function getStateNote(block, sentHash) {
31
36
  function getIssueDelta(blocks, sent) {
32
37
  const delta = { entries: [], unchangedKinds: [], unchangedCommentCount: 0, deletedCommentLabels: [], sent: {} };
33
38
  for (const block of blocks) {
34
- delta.sent[block.key] = block.comment ? { hash: block.hash, label: block.comment.label } : { hash: block.hash };
35
- const stateNote = getStateNote(block, sent[block.key]?.hash);
39
+ delta.sent[block.key] = {
40
+ hash: block.hash,
41
+ ...(block.comment ? { label: block.comment.label } : {}),
42
+ ...(block.isWithheld ? { isWithheld: true } : {}),
43
+ };
44
+ const stateNote = getStateNote(block, sent[block.key]);
36
45
  if (stateNote !== null)
37
46
  delta.entries.push({ block, stateNote });
38
47
  else if (block.kind === 'comment')
@@ -1 +1 @@
1
- {"version":3,"file":"issueDelta.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueDelta.ts"],"names":[],"mappings":";;;AA8CA,sCAcC;AAzDD;;;;;;;;;;;;GAYG;AAEU,QAAA,YAAY,GAAG,KAAK,CAAC;AACrB,QAAA,gBAAgB,GAAG,gCAAgC,CAAC;AACjE,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAmBpC,SAAS,YAAY,CAAC,KAAiB,EAAE,QAA4B;IACnE,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,oBAAY,CAAC;IAChD,IAAI,QAAQ,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAgB,CAAC;AACnE,CAAC;AAED,gGAAgG;AAChG,SAAgB,aAAa,CAAC,MAA6B,EAAE,IAA8B;IACzF,MAAM,KAAK,GAAe,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5H,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAChH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,IAAI;YAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;aAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC;;YAC/D,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"issueDelta.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueDelta.ts"],"names":[],"mappings":";;;AAkDA,sCAkBC;AAjED;;;;;;;;;;;;;GAaG;AAEU,QAAA,YAAY,GAAG,KAAK,CAAC;AACrB,QAAA,gBAAgB,GAAG,gCAAgC,CAAC;AACjE,sHAAsH;AACzG,QAAA,qBAAqB,GAAG,sCAAsC,CAAC;AAC5E,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAmBpC,SAAS,YAAY,CAAC,KAAiB,EAAE,IAA+B;IACtE,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,oBAAY,CAAC;IAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,6BAAqB,CAAC;IACzF,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAgB,CAAC;AACnE,CAAC;AAED,gGAAgG;AAChG,SAAgB,aAAa,CAAC,MAA6B,EAAE,IAA8B;IACzF,MAAM,KAAK,GAAe,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5H,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;QACF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,SAAS,KAAK,IAAI;YAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;aAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC;;YAC/D,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -14,6 +14,8 @@ export interface MediaResolverContext {
14
14
  attachmentIdByMediaId: ReadonlyMap<string, string>;
15
15
  /** Told, for each media node resolved, which attachments it stands for — the attachments block's "referenced in". */
16
16
  onResolved?: (attachmentIds: readonly string[]) => void;
17
+ /** Ids of the attachments the agent must not see by name or content; a node standing for one carries no file name. */
18
+ withheldAttachmentIds?: ReadonlySet<string>;
17
19
  }
18
20
  /** @description The resolver `getAdfText` takes for one issue's text. Pure apart from `onResolved`. */
19
21
  export declare function createMediaResolver(context: MediaResolverContext): AdfMediaResolver;
@@ -1 +1 @@
1
- {"version":3,"file":"mediaPlaceholders.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/mediaPlaceholders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAgB,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA6B/C;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUtG;AAED,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IACvC,mFAAmF;IACnF,qBAAqB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,qHAAqH;IACrH,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CACzD;AA0BD,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAanF"}
1
+ {"version":3,"file":"mediaPlaceholders.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/mediaPlaceholders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAgB,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAiC/C;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUtG;AAED,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IACvC,mFAAmF;IACnF,qBAAqB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,qHAAqH;IACrH,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IACxD,sHAAsH;IACtH,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C;AA6BD,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAkBnF"}
@@ -20,6 +20,9 @@ const promptText_1 = require("./promptText");
20
20
  * (`<a href=".../attachment/content/<id>" data-media-services-id="<media id>">`):
21
21
  * {@link getAttachmentIdsByMediaId} reads that — exact, so nothing is guessed;
22
22
  * 4. nothing found → `attachment unknown`.
23
+ *
24
+ * An attachment the trusted group does not back is WITHHELD (`issueBlocks.ts`): its placeholder names no
25
+ * file — `[image — attachment 10234, withheld]` — since the file name is the uploader's text.
23
26
  */
24
27
  const attachmentContentPathRe = /\/attachment\/content\/(\d+)/;
25
28
  const htmlAnchorTagRe = /<a\b[^>]*>/gi;
@@ -28,6 +31,7 @@ const mediaServicesIdAttribute = 'data-media-services-id';
28
31
  const unknownAttachmentText = 'attachment unknown';
29
32
  const inlineFileLabel = 'inline file';
30
33
  const externalMediaType = 'external';
34
+ const noAttachmentIds = new Set();
31
35
  /**
32
36
  * @description The media id → attachment id pairs a rendered body (a comment's
33
37
  * `renderedBody`, an issue's `renderedFields.description`) states: every `<a>`
@@ -55,10 +59,14 @@ function getMediaKind(mimeType) {
55
59
  return 'video';
56
60
  return 'file';
57
61
  }
58
- function getAttachmentTarget(attachmentIds) {
62
+ function getAttachmentTarget(attachmentIds, withheldAttachmentIds) {
59
63
  if (attachmentIds.length === 0)
60
64
  return unknownAttachmentText;
61
- return attachmentIds.length === 1 ? `attachment ${attachmentIds[0]}` : `attachments ${attachmentIds.join(', ')}`;
65
+ const noun = attachmentIds.length === 1 ? 'attachment' : 'attachments';
66
+ // All of them withheld: one word for the whole placeholder; a mix names which ones.
67
+ if (attachmentIds.every((attachmentId) => withheldAttachmentIds.has(attachmentId)))
68
+ return `${noun} ${attachmentIds.join(', ')}, withheld`;
69
+ return `${noun} ${attachmentIds.map((attachmentId) => (withheldAttachmentIds.has(attachmentId) ? `${attachmentId} (withheld)` : attachmentId)).join(', ')}`;
62
70
  }
63
71
  /** The ids of the attachments a `file` media node stands for (rules 1–3 above); empty when none is found. */
64
72
  function getAttachmentIds(node, context) {
@@ -81,9 +89,14 @@ function createMediaResolver(context) {
81
89
  }
82
90
  const attachmentIds = getAttachmentIds(node, context);
83
91
  context.onResolved?.(attachmentIds);
92
+ const withheldAttachmentIds = context.withheldAttachmentIds ?? noAttachmentIds;
84
93
  const firstAttachment = context.attachments.find((attachment) => attachment.id === attachmentIds[0]);
94
+ const target = getAttachmentTarget(attachmentIds, withheldAttachmentIds);
95
+ // The node's `alt` and the stored file name both come from whoever uploaded the file.
96
+ if (attachmentIds.some((attachmentId) => withheldAttachmentIds.has(attachmentId))) {
97
+ return `[${getMediaKind(firstAttachment?.mimeType)} — ${target}]`;
98
+ }
85
99
  const name = (0, promptText_1.getSingleLineText)((0, adf_1.getStringAttribute)(node, 'alt') ?? firstAttachment?.filename ?? '');
86
- const target = getAttachmentTarget(attachmentIds);
87
100
  if (!name)
88
101
  return `[${inlineFileLabel} — ${target}]`;
89
102
  return `[${getMediaKind(firstAttachment?.mimeType)}: ${name} — ${target}]`;
@@ -1 +1 @@
1
- {"version":3,"file":"mediaPlaceholders.js","sourceRoot":"","sources":["../../../src/connectors/jira/mediaPlaceholders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediaPlaceholders.js","sourceRoot":"","sources":["../../../src/connectors/jira/mediaPlaceholders.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export interface JiraRequestPromptBase {
17
17
  requester: JiraAccount | null;
18
18
  /** The same requester's earlier requests of the issue this one replaced (R34); the header names them. */
19
19
  supersededRequestIds?: readonly string[];
20
+ /** A trusted group filters the issue's text (`jira.json` `trustedGroup`): the note then says what a `[withheld: …]` marker is. */
21
+ isTextFiltered?: boolean;
20
22
  }
21
23
  export interface JiraRequestPromptInput extends JiraRequestPromptBase {
22
24
  /** The issue as its blocks, in prompt order (`buildIssueBlocks`, fitted by `fitBlocksToPrompt`). */
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AA0BlD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU5H;AAED,uGAAuG;AACvG,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,yGAAyG;IACzG,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,oGAAoG;IACpG,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,qHAAqH;IACrH,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAmBD,uHAAuH;AACvH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAa5E;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,MAAM,CAWjG"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AA+BlD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU5H;AAED,uGAAuG;AACvG,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,yGAAyG;IACzG,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,kIAAkI;IAClI,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,oGAAoG;IACpG,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,qHAAqH;IACrH,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAmBD,uHAAuH;AACvH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAa5E;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,MAAM,CAWjG"}