charness 3.0.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +8 -7
- package/DEVELOPMENT.md +12 -6
- package/MIGRATION_1_TO_2.md +1 -1
- package/MIGRATION_RENAME_TO_CHARNESS.md +133 -0
- package/README.md +221 -555
- package/SETUP.md +539 -0
- package/dist/adapters/claudeCliAdapter.d.ts +16 -1
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeCliAdapter.js +37 -2
- package/dist/adapters/claudeCliAdapter.js.map +1 -1
- package/dist/adapters/claudeConfigDir.d.ts +40 -0
- package/dist/adapters/claudeConfigDir.d.ts.map +1 -0
- package/dist/adapters/claudeConfigDir.js +3 -0
- package/dist/adapters/claudeConfigDir.js.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +32 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.js +90 -8
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
- package/dist/adapters/claudePlatformFlags.d.ts +4 -4
- package/dist/adapters/claudePlatformFlags.js +4 -4
- package/dist/adapters/createAdapter.d.ts +8 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -1
- package/dist/adapters/createAdapter.js +37 -0
- package/dist/adapters/createAdapter.js.map +1 -1
- package/dist/adapters/openCodeAdapter.d.ts +23 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/openCodeAdapter.js +85 -2
- package/dist/adapters/openCodeAdapter.js.map +1 -1
- package/dist/agentLogin/agentLogin.d.ts +15 -2
- package/dist/agentLogin/agentLogin.d.ts.map +1 -1
- package/dist/agentLogin/agentLogin.js +53 -16
- package/dist/agentLogin/agentLogin.js.map +1 -1
- package/dist/apiErrorRetry.d.ts +8 -3
- package/dist/apiErrorRetry.d.ts.map +1 -1
- package/dist/apiErrorRetry.js +36 -5
- package/dist/apiErrorRetry.js.map +1 -1
- package/dist/apiRetryKick.d.ts +9 -0
- package/dist/apiRetryKick.d.ts.map +1 -1
- package/dist/apiRetryKick.js +16 -0
- package/dist/apiRetryKick.js.map +1 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +642 -26
- package/dist/bot.js.map +1 -1
- package/dist/cli/bot.d.ts +4 -2
- package/dist/cli/bot.d.ts.map +1 -1
- package/dist/cli/bot.js +11 -3
- package/dist/cli/bot.js.map +1 -1
- package/dist/cli/botEntry.js +3 -1
- package/dist/cli/botEntry.js.map +1 -1
- package/dist/cli/claudeProfiles.d.ts +42 -0
- package/dist/cli/claudeProfiles.d.ts.map +1 -0
- package/dist/cli/claudeProfiles.js +106 -0
- package/dist/cli/claudeProfiles.js.map +1 -0
- package/dist/cli/envLoader.d.ts +6 -5
- package/dist/cli/envLoader.d.ts.map +1 -1
- package/dist/cli/envLoader.js +8 -27
- package/dist/cli/envLoader.js.map +1 -1
- package/dist/cli/hot.d.ts +2 -2
- package/dist/cli/hot.d.ts.map +1 -1
- package/dist/cli/hot.js +26 -16
- package/dist/cli/hot.js.map +1 -1
- package/dist/cli.js +19 -9
- package/dist/cli.js.map +1 -1
- package/dist/connectors/jira/adf.d.ts +23 -0
- package/dist/connectors/jira/adf.d.ts.map +1 -1
- package/dist/connectors/jira/adf.js +44 -0
- package/dist/connectors/jira/adf.js.map +1 -1
- package/dist/connectors/jira/answerSink.d.ts +27 -3
- package/dist/connectors/jira/answerSink.d.ts.map +1 -1
- package/dist/connectors/jira/answerSink.js +145 -18
- package/dist/connectors/jira/answerSink.js.map +1 -1
- package/dist/connectors/jira/attachmentTool.d.ts +7 -0
- package/dist/connectors/jira/attachmentTool.d.ts.map +1 -1
- package/dist/connectors/jira/attachmentTool.js +16 -0
- package/dist/connectors/jira/attachmentTool.js.map +1 -1
- package/dist/connectors/jira/client.d.ts +36 -0
- package/dist/connectors/jira/client.d.ts.map +1 -1
- package/dist/connectors/jira/client.js +46 -5
- package/dist/connectors/jira/client.js.map +1 -1
- package/dist/connectors/jira/config.d.ts +13 -17
- package/dist/connectors/jira/config.d.ts.map +1 -1
- package/dist/connectors/jira/config.js +15 -33
- package/dist/connectors/jira/config.js.map +1 -1
- package/dist/connectors/jira/connector.d.ts +10 -1
- package/dist/connectors/jira/connector.d.ts.map +1 -1
- package/dist/connectors/jira/connector.js +90 -16
- package/dist/connectors/jira/connector.js.map +1 -1
- package/dist/connectors/jira/contextLedger.d.ts +7 -0
- package/dist/connectors/jira/contextLedger.d.ts.map +1 -1
- package/dist/connectors/jira/contextLedger.js +18 -0
- package/dist/connectors/jira/contextLedger.js.map +1 -1
- package/dist/connectors/jira/contextPreamble.d.ts.map +1 -1
- package/dist/connectors/jira/contextPreamble.js +6 -3
- package/dist/connectors/jira/contextPreamble.js.map +1 -1
- package/dist/connectors/jira/inbound.d.ts +72 -10
- package/dist/connectors/jira/inbound.d.ts.map +1 -1
- package/dist/connectors/jira/inbound.js +204 -36
- package/dist/connectors/jira/inbound.js.map +1 -1
- package/dist/connectors/jira/issueBlocks.d.ts +31 -3
- package/dist/connectors/jira/issueBlocks.d.ts.map +1 -1
- package/dist/connectors/jira/issueBlocks.js +108 -29
- package/dist/connectors/jira/issueBlocks.js.map +1 -1
- package/dist/connectors/jira/issueContext.d.ts +11 -5
- package/dist/connectors/jira/issueContext.d.ts.map +1 -1
- package/dist/connectors/jira/issueContext.js +23 -6
- package/dist/connectors/jira/issueContext.js.map +1 -1
- package/dist/connectors/jira/issueDelta.d.ts +3 -0
- package/dist/connectors/jira/issueDelta.d.ts.map +1 -1
- package/dist/connectors/jira/issueDelta.js +15 -6
- package/dist/connectors/jira/issueDelta.js.map +1 -1
- package/dist/connectors/jira/mediaPlaceholders.d.ts +2 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -1
- package/dist/connectors/jira/mediaPlaceholders.js +16 -3
- package/dist/connectors/jira/mediaPlaceholders.js.map +1 -1
- package/dist/connectors/jira/prompt.d.ts +4 -0
- package/dist/connectors/jira/prompt.d.ts.map +1 -1
- package/dist/connectors/jira/prompt.js +20 -1
- package/dist/connectors/jira/prompt.js.map +1 -1
- package/dist/connectors/jira/sessionKeyCodec.d.ts +2 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -1
- package/dist/connectors/jira/sessionKeyCodec.js +5 -0
- package/dist/connectors/jira/sessionKeyCodec.js.map +1 -1
- package/dist/connectors/jira/trigger.d.ts +16 -3
- package/dist/connectors/jira/trigger.d.ts.map +1 -1
- package/dist/connectors/jira/trigger.js +17 -2
- package/dist/connectors/jira/trigger.js.map +1 -1
- package/dist/connectors/jira/triggerLog.d.ts +12 -3
- package/dist/connectors/jira/triggerLog.d.ts.map +1 -1
- package/dist/connectors/jira/triggerLog.js +18 -2
- package/dist/connectors/jira/triggerLog.js.map +1 -1
- package/dist/connectors/jira/trustedGroup.d.ts +54 -0
- package/dist/connectors/jira/trustedGroup.d.ts.map +1 -0
- package/dist/connectors/jira/trustedGroup.js +98 -0
- package/dist/connectors/jira/trustedGroup.js.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +3 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/autoContinueLimits.js +15 -45
- package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -1
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts +58 -0
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/claudeAccounts.js +591 -0
- package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -0
- package/dist/connectors/telegram/commands/fallbackChain.d.ts +49 -0
- package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/fallbackChain.js +624 -0
- package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts +23 -1
- package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/modelProviders.js +131 -6
- package/dist/connectors/telegram/commands/modelProviders.js.map +1 -1
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +137 -9
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +137 -9
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +137 -9
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +137 -9
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +137 -9
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +137 -9
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +137 -9
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +137 -9
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +137 -9
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +137 -9
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +137 -9
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +137 -9
- package/dist/i18n/zh.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installManager.d.ts +16 -2
- package/dist/installManager.d.ts.map +1 -1
- package/dist/installManager.js +42 -12
- package/dist/installManager.js.map +1 -1
- package/dist/instanceLock.d.ts.map +1 -1
- package/dist/instanceLock.js +10 -8
- package/dist/instanceLock.js.map +1 -1
- package/dist/legacyMigration.d.ts +69 -0
- package/dist/legacyMigration.d.ts.map +1 -0
- package/dist/legacyMigration.js +338 -0
- package/dist/legacyMigration.js.map +1 -0
- package/dist/legacyNames.d.ts +107 -0
- package/dist/legacyNames.d.ts.map +1 -0
- package/dist/legacyNames.js +230 -0
- package/dist/legacyNames.js.map +1 -0
- package/dist/platform/answerSink.d.ts +5 -0
- package/dist/platform/answerSink.d.ts.map +1 -1
- package/dist/platform/answerSink.js.map +1 -1
- package/dist/requests/answerRequest.d.ts +2 -0
- package/dist/requests/answerRequest.d.ts.map +1 -1
- package/dist/requests/answerRequest.js +3 -1
- package/dist/requests/answerRequest.js.map +1 -1
- package/dist/requests/answerStyle.d.ts +11 -0
- package/dist/requests/answerStyle.d.ts.map +1 -0
- package/dist/requests/answerStyle.js +14 -0
- package/dist/requests/answerStyle.js.map +1 -0
- package/dist/requests/answerTail.d.ts.map +1 -1
- package/dist/requests/answerTail.js +2 -0
- package/dist/requests/answerTail.js.map +1 -1
- package/dist/requests/requestHeader.d.ts.map +1 -1
- package/dist/requests/requestHeader.js +3 -0
- package/dist/requests/requestHeader.js.map +1 -1
- package/dist/requests/requestLedger.js +1 -1
- package/dist/requests/requestLedger.js.map +1 -1
- package/dist/requests/types.d.ts +3 -1
- package/dist/requests/types.d.ts.map +1 -1
- package/dist/scheduler/mcpSurface.d.ts +17 -1
- package/dist/scheduler/mcpSurface.d.ts.map +1 -1
- package/dist/scheduler/mcpSurface.js +86 -13
- package/dist/scheduler/mcpSurface.js.map +1 -1
- package/dist/state.d.ts +175 -2
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +303 -2
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/autoContinueOnLimit.d.ts +7 -0
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
- package/dist/utils/autoContinueOnLimit.js +10 -0
- package/dist/utils/autoContinueOnLimit.js.map +1 -1
- package/dist/utils/claudeAccountPickerPlan.d.ts +85 -0
- package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -0
- package/dist/utils/claudeAccountPickerPlan.js +123 -0
- package/dist/utils/claudeAccountPickerPlan.js.map +1 -0
- package/dist/utils/claudeLimitSwitch.d.ts +40 -0
- package/dist/utils/claudeLimitSwitch.d.ts.map +1 -0
- package/dist/utils/claudeLimitSwitch.js +54 -0
- package/dist/utils/claudeLimitSwitch.js.map +1 -0
- package/dist/utils/claudeProfileUsageLines.d.ts +15 -0
- package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -0
- package/dist/utils/claudeProfileUsageLines.js +42 -0
- package/dist/utils/claudeProfileUsageLines.js.map +1 -0
- package/dist/utils/claudeProfiles.d.ts +124 -0
- package/dist/utils/claudeProfiles.d.ts.map +1 -0
- package/dist/utils/claudeProfiles.js +304 -0
- package/dist/utils/claudeProfiles.js.map +1 -0
- package/dist/utils/claudeStreamJson.d.ts +13 -1
- package/dist/utils/claudeStreamJson.d.ts.map +1 -1
- package/dist/utils/claudeStreamJson.js +13 -0
- package/dist/utils/claudeStreamJson.js.map +1 -1
- package/dist/utils/claudeUsage.d.ts +209 -0
- package/dist/utils/claudeUsage.d.ts.map +1 -0
- package/dist/utils/claudeUsage.js +413 -0
- package/dist/utils/claudeUsage.js.map +1 -0
- package/dist/utils/claudeUsageRefresher.d.ts +44 -0
- package/dist/utils/claudeUsageRefresher.d.ts.map +1 -0
- package/dist/utils/claudeUsageRefresher.js +95 -0
- package/dist/utils/claudeUsageRefresher.js.map +1 -0
- package/dist/utils/fallbackBridge.d.ts +32 -0
- package/dist/utils/fallbackBridge.d.ts.map +1 -0
- package/dist/utils/fallbackBridge.js +62 -0
- package/dist/utils/fallbackBridge.js.map +1 -0
- package/dist/utils/fallbackChain.d.ts +299 -0
- package/dist/utils/fallbackChain.d.ts.map +1 -0
- package/dist/utils/fallbackChain.js +542 -0
- package/dist/utils/fallbackChain.js.map +1 -0
- package/dist/utils/jsonStreamHost.d.ts +14 -3
- package/dist/utils/jsonStreamHost.d.ts.map +1 -1
- package/dist/utils/jsonStreamHost.js +26 -5
- package/dist/utils/jsonStreamHost.js.map +1 -1
- package/dist/utils/modelRecentPlan.d.ts +56 -0
- package/dist/utils/modelRecentPlan.d.ts.map +1 -0
- package/dist/utils/modelRecentPlan.js +107 -0
- package/dist/utils/modelRecentPlan.js.map +1 -0
- package/dist/utils/openCodeCompactPlugin.d.ts +11 -3
- package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
- package/dist/utils/openCodeCompactPlugin.js +37 -5
- package/dist/utils/openCodeCompactPlugin.js.map +1 -1
- package/dist/utils/threadStatusReport.d.ts +25 -1
- package/dist/utils/threadStatusReport.d.ts.map +1 -1
- package/dist/utils/threadStatusReport.js +24 -1
- package/dist/utils/threadStatusReport.js.map +1 -1
- package/examples/.env.example +7 -7
- package/examples/docker-compose.yml +15 -14
- package/package.json +3 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { JiraAccount, JiraComment } from './client';
|
|
1
2
|
import type { JiraIssueContext } from './issueContext';
|
|
2
3
|
/**
|
|
3
4
|
* @description An issue as the ordered list of blocks its prompt is made of
|
|
@@ -7,6 +8,12 @@ import type { JiraIssueContext } from './issueContext';
|
|
|
7
8
|
* agent already has. Every name and title is kept to one line and every body
|
|
8
9
|
* quoted line by line (`promptText.ts`): all of it is written by people who can
|
|
9
10
|
* edit the issue, or a linked one.
|
|
11
|
+
*
|
|
12
|
+
* With a trusted group (`trust` set) a piece of the issue's own text reaches the
|
|
13
|
+
* agent only when EVERYONE who wrote it is trusted — a member, the AI account or
|
|
14
|
+
* an app; an author Jira does not name counts as untrusted. Text that does not
|
|
15
|
+
* is replaced IN PLACE by a marker (`[withheld: …]`) before the blocks are
|
|
16
|
+
* hashed, fitted or spilled, so it never reaches a prompt, a delta or a file.
|
|
10
17
|
*/
|
|
11
18
|
export type IssueBlockKind = 'fields' | 'description' | 'hierarchy' | 'links' | 'attachments' | 'comment';
|
|
12
19
|
export interface IssueBlock {
|
|
@@ -25,6 +32,8 @@ export interface IssueBlock {
|
|
|
25
32
|
spilledTo?: string;
|
|
26
33
|
/** A comment block's own facts; absent for the other kinds. */
|
|
27
34
|
comment?: IssueBlockComment;
|
|
35
|
+
/** The whole text was written or edited by someone outside the trusted group: the block is a marker, on the heading's own line. */
|
|
36
|
+
isWithheld?: boolean;
|
|
28
37
|
}
|
|
29
38
|
/** What a delta says about a comment beyond its text (prompt context C4–C7). */
|
|
30
39
|
export interface IssueBlockComment {
|
|
@@ -40,12 +49,31 @@ export interface JiraExtraField {
|
|
|
40
49
|
id: string;
|
|
41
50
|
name: string;
|
|
42
51
|
}
|
|
43
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* @name JiraBlockTrust
|
|
54
|
+
* @description The trusted group as the blocks need it: who is trusted, and which projects the operator listed —
|
|
55
|
+
* another issue's summary is shown only from those (the agent may read them through its own tools anyway).
|
|
56
|
+
*/
|
|
57
|
+
export interface JiraBlockTrust {
|
|
58
|
+
checkIsTrusted: (account: JiraAccount | null | undefined) => boolean;
|
|
59
|
+
allowlistedProjectKeys: ReadonlySet<string>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @description The block as the prompt prints it; `stateNote` (`new`, `changed since your last prompt`, …) follows
|
|
63
|
+
* the heading. A withheld block is one line: its marker follows the heading's colon.
|
|
64
|
+
*/
|
|
44
65
|
export declare function getIssueBlockText(block: IssueBlock, stateNote?: string): string;
|
|
66
|
+
/**
|
|
67
|
+
* Written AND last edited by trusted accounts; an author Jira does not name is not one. The one rule for a
|
|
68
|
+
* comment: what reaches the agent as text and what may wake it by a mention are judged by it alike.
|
|
69
|
+
*/
|
|
70
|
+
export declare function checkIsCommentTrusted(comment: JiraComment, trust: Pick<JiraBlockTrust, 'checkIsTrusted'>): boolean;
|
|
45
71
|
/**
|
|
46
72
|
* @description The issue as blocks, in prompt order. Media in the description
|
|
47
73
|
* and the comments become placeholders naming their attachment (C9); the
|
|
48
|
-
* attachments block then says where each file is referenced.
|
|
74
|
+
* attachments block then says where each file is referenced. With `trust` set,
|
|
75
|
+
* text outside the trusted group is replaced by markers (see the file header);
|
|
76
|
+
* `null` is the unfiltered issue, as it always was.
|
|
49
77
|
*/
|
|
50
|
-
export declare function buildIssueBlocks(context: JiraIssueContext, extraFields: readonly JiraExtraField[], aiAccountId: string): IssueBlock[];
|
|
78
|
+
export declare function buildIssueBlocks(context: JiraIssueContext, extraFields: readonly JiraExtraField[], aiAccountId: string, trust?: JiraBlockTrust | null): IssueBlock[];
|
|
51
79
|
//# sourceMappingURL=issueBlocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issueBlocks.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueBlocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"issueBlocks.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueBlocks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAkB,WAAW,EAAqC,MAAM,UAAU,CAAC;AAC5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOvD;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAE1G,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,8GAA8G;IAC9G,IAAI,EAAE,MAAM,CAAC;IACb,0IAA0I;IAC1I,QAAQ,EAAE,MAAM,CAAC;IACjB,4JAA4J;IAC5J,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,mIAAmI;IACnI,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,oHAAoH;IACpH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,sGAAsG;AACtG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC;IACrE,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C;AAeD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/E;AAmJD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAElH;AA4CD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,cAAc,GAAG,IAAW,GAClC,UAAU,EAAE,CAgDd"}
|
|
@@ -1,21 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getIssueBlockText = getIssueBlockText;
|
|
4
|
+
exports.checkIsCommentTrusted = checkIsCommentTrusted;
|
|
4
5
|
exports.buildIssueBlocks = buildIssueBlocks;
|
|
5
6
|
const crypto_1 = require("crypto");
|
|
6
7
|
const adf_1 = require("./adf");
|
|
7
8
|
const issueContext_1 = require("./issueContext");
|
|
8
9
|
const mediaPlaceholders_1 = require("./mediaPlaceholders");
|
|
9
10
|
const promptText_1 = require("./promptText");
|
|
11
|
+
const sessionKeyCodec_1 = require("./sessionKeyCodec");
|
|
12
|
+
const trigger_1 = require("./trigger");
|
|
13
|
+
const withheldWrittenMarker = '[withheld: written or edited by someone outside the trusted group]';
|
|
14
|
+
const withheldUploadedMarker = '[withheld: uploaded by someone outside the trusted group]';
|
|
15
|
+
/** The ids Jira's changelog names the free-text system fields by. */
|
|
16
|
+
const summaryFieldId = 'summary';
|
|
17
|
+
const descriptionFieldId = 'description';
|
|
18
|
+
const labelsFieldId = 'labels';
|
|
10
19
|
const emptyBodyText = '(empty)';
|
|
11
20
|
const noneBodyText = '(none)';
|
|
12
21
|
const notReferencedText = 'not referenced in the text';
|
|
13
22
|
const descriptionLocation = 'description';
|
|
14
23
|
/** Properties of a field value that name it, in the order they are tried: a user, an option, a version or component. */
|
|
15
24
|
const namedValueProperties = ['displayName', 'value', 'name'];
|
|
16
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* @description The block as the prompt prints it; `stateNote` (`new`, `changed since your last prompt`, …) follows
|
|
27
|
+
* the heading. A withheld block is one line: its marker follows the heading's colon.
|
|
28
|
+
*/
|
|
17
29
|
function getIssueBlockText(block, stateNote) {
|
|
18
|
-
return `${block.heading}${stateNote ? ` (${stateNote})` : ''}
|
|
30
|
+
return `${block.heading}${stateNote ? ` (${stateNote})` : ''}:${block.isWithheld ? ' ' : '\n'}${block.body}`;
|
|
19
31
|
}
|
|
20
32
|
function getHash(text) {
|
|
21
33
|
return (0, crypto_1.createHash)('sha256').update(text).digest('hex');
|
|
@@ -23,9 +35,30 @@ function getHash(text) {
|
|
|
23
35
|
function createBlock(key, kind, heading, body, fullText = body) {
|
|
24
36
|
return { key, kind, heading, body, fullText, hash: getHash(`${heading}\n${body}`) };
|
|
25
37
|
}
|
|
26
|
-
/**
|
|
27
|
-
function
|
|
28
|
-
|
|
38
|
+
/** A marker standing for text nobody trusted wrote: the block's whole text. Its key and hash follow the marker. */
|
|
39
|
+
function createWithheldBlock(key, kind, heading, marker) {
|
|
40
|
+
return { ...createBlock(key, kind, heading, marker), isWithheld: true };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Did only trusted accounts write what `field` says now? The issue's creator wrote its first value and every
|
|
44
|
+
* changelog entry that touched the field wrote a later one; an entry Jira names no author for is untrusted.
|
|
45
|
+
* `name` also matches an old entry that carries only the field's display name.
|
|
46
|
+
*/
|
|
47
|
+
function checkIsFieldTrusted(context, trust, field) {
|
|
48
|
+
if (!trust.checkIsTrusted(context.issue.fields.creator))
|
|
49
|
+
return false;
|
|
50
|
+
return context.changelog
|
|
51
|
+
.filter((history) => history.items.some((item) => (0, trigger_1.getItemField)(item) === field.id || (field.name !== undefined && item.field === field.name)))
|
|
52
|
+
.every((history) => trust.checkIsTrusted(history.author));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* `PROJ-5 "summary" (Status)`: what another issue is called. With a trusted group the summary is kept only for an
|
|
56
|
+
* issue of a listed project — who wrote any other's is unknown, so its key and status say all.
|
|
57
|
+
*/
|
|
58
|
+
function getIssueReferenceText(reference, trust) {
|
|
59
|
+
const projectKey = (0, sessionKeyCodec_1.getJiraIssueProjectKey)(reference.key);
|
|
60
|
+
const isSummaryShown = trust === null || (projectKey !== null && trust.allowlistedProjectKeys.has(projectKey));
|
|
61
|
+
const summary = isSummaryShown ? (0, promptText_1.getSingleLineText)(reference.fields?.summary ?? '') : '';
|
|
29
62
|
const statusName = (0, promptText_1.getSingleLineText)(reference.fields?.status?.name ?? '');
|
|
30
63
|
return [(0, promptText_1.getSingleLineText)(reference.key), summary ? `"${summary}"` : '', statusName ? `(${statusName})` : ''].filter((part) => part !== '').join(' ');
|
|
31
64
|
}
|
|
@@ -55,46 +88,55 @@ function getFieldLine(label, value) {
|
|
|
55
88
|
function getNamesText(items) {
|
|
56
89
|
return (items ?? []).map((item) => (0, promptText_1.getSingleLineText)(item.name)).filter((name) => name !== '').join(', ');
|
|
57
90
|
}
|
|
58
|
-
function getFieldsBlock(context, extraFields) {
|
|
91
|
+
function getFieldsBlock(context, extraFields, trust) {
|
|
59
92
|
const { fields, rawFields } = context.issue;
|
|
93
|
+
/** A free-text field's value, or its marker when someone outside the trusted group wrote any of it; an empty value stays empty. */
|
|
94
|
+
const getWrittenValue = (value, field) => value !== '' && trust !== null && !checkIsFieldTrusted(context, trust, field) ? withheldWrittenMarker : value;
|
|
60
95
|
const lines = [
|
|
61
|
-
...getFieldLine('Summary', (0, promptText_1.getSingleLineText)(fields.summary ?? '') || '(no summary)'),
|
|
96
|
+
...getFieldLine('Summary', getWrittenValue((0, promptText_1.getSingleLineText)(fields.summary ?? '') || '(no summary)', { id: summaryFieldId })),
|
|
62
97
|
...getFieldLine('Type', (0, promptText_1.getSingleLineText)(fields.issuetype?.name ?? '')),
|
|
63
98
|
...getFieldLine('Priority', (0, promptText_1.getSingleLineText)(fields.priority?.name ?? '')),
|
|
64
99
|
...getFieldLine('Status', (0, promptText_1.getSingleLineText)(fields.status?.name ?? '') || 'unknown'),
|
|
65
100
|
...getFieldLine('Reporter', fields.reporter ? (0, promptText_1.getAccountName)(fields.reporter) : ''),
|
|
66
|
-
...getFieldLine('Parent', fields.parent ? getIssueReferenceText(fields.parent) : ''),
|
|
101
|
+
...getFieldLine('Parent', fields.parent ? getIssueReferenceText(fields.parent, trust) : ''),
|
|
67
102
|
...getFieldLine('Fix versions', getNamesText(fields.fixVersions)),
|
|
68
|
-
...getFieldLine('Labels', (fields.labels ?? []).map(promptText_1.getSingleLineText).filter((label) => label !== '').join(', ')),
|
|
103
|
+
...getFieldLine('Labels', getWrittenValue((fields.labels ?? []).map(promptText_1.getSingleLineText).filter((label) => label !== '').join(', '), { id: labelsFieldId })),
|
|
69
104
|
...getFieldLine('Components', getNamesText(fields.components)),
|
|
70
|
-
...extraFields.flatMap((extraField) => getFieldLine((0, promptText_1.getSingleLineText)(extraField.name), getExtraFieldValueText(rawFields?.[extraField.id]))),
|
|
105
|
+
...extraFields.flatMap((extraField) => getFieldLine((0, promptText_1.getSingleLineText)(extraField.name), getWrittenValue(getExtraFieldValueText(rawFields?.[extraField.id]), extraField))),
|
|
71
106
|
];
|
|
72
107
|
return createBlock('fields', 'fields', 'Fields', lines.join('\n'));
|
|
73
108
|
}
|
|
74
|
-
function getHierarchyBlock(context) {
|
|
109
|
+
function getHierarchyBlock(context, trust) {
|
|
75
110
|
const isParent = (context.issue.fields.issuetype?.hierarchyLevel ?? 0) >= issueContext_1.jiraParentHierarchyLevel;
|
|
76
111
|
const items = isParent ? context.children : (context.issue.fields.subtasks ?? []);
|
|
77
112
|
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'));
|
|
113
|
+
return createBlock('hierarchy', 'hierarchy', heading, items.length === 0 ? noneBodyText : items.map((item) => `- ${getIssueReferenceText(item, trust)}`).join('\n'));
|
|
79
114
|
}
|
|
80
|
-
function getIssueLinkText(link) {
|
|
115
|
+
function getIssueLinkText(link, trust) {
|
|
81
116
|
const farIssue = link.outwardIssue ?? link.inwardIssue;
|
|
82
117
|
if (!farIssue)
|
|
83
118
|
return [];
|
|
84
119
|
const phrase = (0, promptText_1.getSingleLineText)(link.outwardIssue ? link.type.outward : link.type.inward);
|
|
85
|
-
return [`- ${phrase} ${getIssueReferenceText(farIssue)}`];
|
|
120
|
+
return [`- ${phrase} ${getIssueReferenceText(farIssue, trust)}`];
|
|
86
121
|
}
|
|
87
|
-
|
|
122
|
+
/**
|
|
123
|
+
* With a trusted group a remote link shows its URL only: the title is written by whoever added the link, and the
|
|
124
|
+
* issue's changelog does not say who that was.
|
|
125
|
+
*/
|
|
126
|
+
function getLinksBlock(context, trust) {
|
|
88
127
|
const lines = [
|
|
89
|
-
...(context.issue.fields.issuelinks ?? []).flatMap(getIssueLinkText),
|
|
128
|
+
...(context.issue.fields.issuelinks ?? []).flatMap((link) => getIssueLinkText(link, trust)),
|
|
90
129
|
...context.remoteLinks.map((link) => {
|
|
91
|
-
const title = (0, promptText_1.getSingleLineText)(link.object.title ?? '');
|
|
130
|
+
const title = trust === null ? (0, promptText_1.getSingleLineText)(link.object.title ?? '') : '';
|
|
92
131
|
return `- web link: ${title ? `"${title}" ` : ''}${(0, promptText_1.getSingleLineText)(link.object.url)}`;
|
|
93
132
|
}),
|
|
94
133
|
];
|
|
95
134
|
return createBlock('links', 'links', 'Links', lines.length === 0 ? noneBodyText : lines.join('\n'));
|
|
96
135
|
}
|
|
97
|
-
function getAttachmentLine(attachment, locations) {
|
|
136
|
+
function getAttachmentLine(attachment, locations, isWithheld) {
|
|
137
|
+
// The file name is the uploader's text too: a withheld file is its id and the marker, nothing more.
|
|
138
|
+
if (isWithheld)
|
|
139
|
+
return `- ${attachment.id} ${withheldUploadedMarker}`;
|
|
98
140
|
const details = [
|
|
99
141
|
(0, promptText_1.getSingleLineText)(attachment.mimeType ?? ''),
|
|
100
142
|
attachment.size === undefined ? '' : `${attachment.size} bytes`,
|
|
@@ -105,8 +147,8 @@ function getAttachmentLine(attachment, locations) {
|
|
|
105
147
|
const referencedText = locations.length > 0 ? `referenced in ${locations.join(', ')}` : notReferencedText;
|
|
106
148
|
return `- ${attachment.id} ${(0, promptText_1.getSingleLineText)(attachment.filename)}${detailsText} — ${referencedText}`;
|
|
107
149
|
}
|
|
108
|
-
function getAttachmentsBlock(attachments, locationsByAttachmentId) {
|
|
109
|
-
const lines = attachments.map((attachment) => getAttachmentLine(attachment, locationsByAttachmentId.get(attachment.id) ?? []));
|
|
150
|
+
function getAttachmentsBlock(attachments, locationsByAttachmentId, withheldAttachmentIds) {
|
|
151
|
+
const lines = attachments.map((attachment) => getAttachmentLine(attachment, locationsByAttachmentId.get(attachment.id) ?? [], withheldAttachmentIds.has(attachment.id)));
|
|
110
152
|
return createBlock('attachments', 'attachments', `Attachments (${attachments.length})`, lines.length === 0 ? noneBodyText : lines.join('\n'));
|
|
111
153
|
}
|
|
112
154
|
/** `[restricted to <role or group>]` and `[internal]` (a Service Management internal note): who may NOT be told what this says. */
|
|
@@ -117,6 +159,26 @@ function getCommentVisibilityMarker(comment) {
|
|
|
117
159
|
];
|
|
118
160
|
return markers.join(' ');
|
|
119
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Written AND last edited by trusted accounts; an author Jira does not name is not one. The one rule for a
|
|
164
|
+
* comment: what reaches the agent as text and what may wake it by a mention are judged by it alike.
|
|
165
|
+
*/
|
|
166
|
+
function checkIsCommentTrusted(comment, trust) {
|
|
167
|
+
return trust.checkIsTrusted(comment.author) && (comment.updateAuthor === undefined || trust.checkIsTrusted(comment.updateAuthor));
|
|
168
|
+
}
|
|
169
|
+
/** A comment the agent may not read: no name, no text — its id and date say there is one to ask the requester about. */
|
|
170
|
+
function getWithheldCommentBlock(comment) {
|
|
171
|
+
const id = (0, promptText_1.getSingleLineText)(comment.id);
|
|
172
|
+
const created = (0, promptText_1.getSingleLineText)(comment.created);
|
|
173
|
+
return {
|
|
174
|
+
...createWithheldBlock(`comment:${comment.id}`, 'comment', `Comment ${id}, ${created}`, withheldWrittenMarker),
|
|
175
|
+
comment: {
|
|
176
|
+
label: `comment ${id} from ${created}`,
|
|
177
|
+
editNote: `edited ${(0, promptText_1.getSingleLineText)(comment.updated ?? '') || 'at an unknown time'}`,
|
|
178
|
+
isOwn: false,
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
120
182
|
function getCommentBlock(comment, text, aiAccountId) {
|
|
121
183
|
const marker = getCommentVisibilityMarker(comment);
|
|
122
184
|
const id = (0, promptText_1.getSingleLineText)(comment.id);
|
|
@@ -146,10 +208,13 @@ function getCommentsOldestFirst(comments) {
|
|
|
146
208
|
/**
|
|
147
209
|
* @description The issue as blocks, in prompt order. Media in the description
|
|
148
210
|
* and the comments become placeholders naming their attachment (C9); the
|
|
149
|
-
* attachments block then says where each file is referenced.
|
|
211
|
+
* attachments block then says where each file is referenced. With `trust` set,
|
|
212
|
+
* text outside the trusted group is replaced by markers (see the file header);
|
|
213
|
+
* `null` is the unfiltered issue, as it always was.
|
|
150
214
|
*/
|
|
151
|
-
function buildIssueBlocks(context, extraFields, aiAccountId) {
|
|
215
|
+
function buildIssueBlocks(context, extraFields, aiAccountId, trust = null) {
|
|
152
216
|
const attachments = [...(context.issue.fields.attachment ?? [])].sort((left, right) => Number(left.id) - Number(right.id));
|
|
217
|
+
const withheldAttachmentIds = new Set(trust === null ? [] : attachments.filter((attachment) => !trust.checkIsTrusted(attachment.author)).map((attachment) => attachment.id));
|
|
153
218
|
const comments = getCommentsOldestFirst(context.comments);
|
|
154
219
|
const attachmentIdByMediaId = new Map([
|
|
155
220
|
...(0, mediaPlaceholders_1.getAttachmentIdsByMediaId)(context.issue.renderedFields?.description),
|
|
@@ -159,6 +224,7 @@ function buildIssueBlocks(context, extraFields, aiAccountId) {
|
|
|
159
224
|
const getResolver = (location) => (0, mediaPlaceholders_1.createMediaResolver)({
|
|
160
225
|
attachments,
|
|
161
226
|
attachmentIdByMediaId,
|
|
227
|
+
withheldAttachmentIds,
|
|
162
228
|
onResolved: (attachmentIds) => {
|
|
163
229
|
for (const attachmentId of attachmentIds) {
|
|
164
230
|
const locations = locationsByAttachmentId.get(attachmentId) ?? [];
|
|
@@ -167,15 +233,28 @@ function buildIssueBlocks(context, extraFields, aiAccountId) {
|
|
|
167
233
|
}
|
|
168
234
|
},
|
|
169
235
|
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
const
|
|
236
|
+
// A withheld description or comment never meets the media resolver: its media are not locations of anything.
|
|
237
|
+
// No description has nothing to withhold: a marker would send the agent asking for text that is not there.
|
|
238
|
+
const isDescriptionWithheld = trust !== null
|
|
239
|
+
&& Boolean(context.issue.fields.description)
|
|
240
|
+
&& !checkIsFieldTrusted(context, trust, { id: descriptionFieldId });
|
|
241
|
+
let descriptionBlock;
|
|
242
|
+
if (isDescriptionWithheld) {
|
|
243
|
+
descriptionBlock = createWithheldBlock('description', 'description', 'Description', withheldWrittenMarker);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
const descriptionText = (0, adf_1.getAdfText)(context.issue.fields.description, getResolver(descriptionLocation));
|
|
247
|
+
descriptionBlock = createBlock('description', 'description', 'Description', (0, promptText_1.getQuotedText)(descriptionText || emptyBodyText), descriptionText);
|
|
248
|
+
}
|
|
249
|
+
const commentBlocks = comments.map((comment) => (trust !== null && !checkIsCommentTrusted(comment, trust)
|
|
250
|
+
? getWithheldCommentBlock(comment)
|
|
251
|
+
: getCommentBlock(comment, (0, adf_1.getAdfText)(comment.body, getResolver(`comment ${comment.id}`)), aiAccountId)));
|
|
173
252
|
return [
|
|
174
|
-
getFieldsBlock(context, extraFields),
|
|
253
|
+
getFieldsBlock(context, extraFields, trust),
|
|
175
254
|
descriptionBlock,
|
|
176
|
-
getHierarchyBlock(context),
|
|
177
|
-
getLinksBlock(context),
|
|
178
|
-
getAttachmentsBlock(attachments, locationsByAttachmentId),
|
|
255
|
+
getHierarchyBlock(context, trust),
|
|
256
|
+
getLinksBlock(context, trust),
|
|
257
|
+
getAttachmentsBlock(attachments, locationsByAttachmentId, withheldAttachmentIds),
|
|
179
258
|
...commentBlocks,
|
|
180
259
|
];
|
|
181
260
|
}
|
|
@@ -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
|
|
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
|
-
/**
|
|
24
|
-
|
|
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;
|
|
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
|
-
/**
|
|
44
|
-
async function
|
|
45
|
-
const
|
|
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":";;;
|
|
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,
|
|
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,
|
|
24
|
+
function getStateNote(block, sent) {
|
|
22
25
|
if (block.comment?.isOwn)
|
|
23
26
|
return null;
|
|
24
|
-
if (
|
|
27
|
+
if (sent === undefined)
|
|
25
28
|
return exports.newBlockNote;
|
|
26
|
-
if (
|
|
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] =
|
|
35
|
-
|
|
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":";;;
|
|
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;
|
|
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"}
|