sf-git-ai-meta-insights 2.1.0 → 2.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/CHANGELOG.md +7 -0
- package/README.md +59 -28
- package/lib/ai/llmProviderConfig.d.ts +8 -0
- package/lib/ai/llmProviderConfig.js +2 -0
- package/lib/ai/llmProviderConfig.js.map +1 -0
- package/lib/ai/salesforceMetadataPrompt.d.ts +2 -2
- package/lib/ai/salesforceMetadataPrompt.js +2 -1
- package/lib/ai/salesforceMetadataPrompt.js.map +1 -1
- package/lib/commands/sgai/metadata/summarize.d.ts +1 -1
- package/lib/commands/sgai/metadata/summarize.js +3 -4
- package/lib/commands/sgai/metadata/summarize.js.map +1 -1
- package/messages/sgai.metadata.summarize.md +4 -4
- package/oclif.lock +188 -40
- package/oclif.manifest.json +5 -6
- package/package.json +12 -3
- package/lib/ai/openAiConfig.d.ts +0 -5
- package/lib/ai/openAiConfig.js +0 -2
- package/lib/ai/openAiConfig.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.2.0](https://github.com/mcarvin8/sf-git-ai-meta-insights/compare/v2.1.0...v2.2.0) (2026-04-21)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **ai:** support all Vercel AI SDK providers via smart-diff v2 ([#16](https://github.com/mcarvin8/sf-git-ai-meta-insights/issues/16)) ([8be7458](https://github.com/mcarvin8/sf-git-ai-meta-insights/commit/8be7458111081e5cad3f07646b08346154f2401b))
|
|
9
|
+
|
|
3
10
|
## [2.1.0](https://github.com/mcarvin8/sf-git-ai-meta-insights/compare/v2.0.1...v2.1.0) (2026-04-19)
|
|
4
11
|
|
|
5
12
|
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## Overview
|
|
11
11
|
|
|
12
|
-
This plugin summarizes metadata changes between two Git refs, optionally filters commits by message, and writes a Markdown file using
|
|
12
|
+
This plugin summarizes metadata changes between two Git refs, optionally filters commits by message, and writes a Markdown file using any LLM provider supported by the [Vercel AI SDK](https://sdk.vercel.ai) — OpenAI, Anthropic, Google Gemini, Amazon Bedrock, Mistral, Cohere, Groq, xAI, DeepSeek, or any OpenAI-compatible gateway. A configured provider (API key, base URL, and/or default headers) is **required**.
|
|
13
13
|
|
|
14
14
|

|
|
15
15
|
|
|
@@ -27,18 +27,18 @@ Summarize metadata changes between two Git refs and write the generated summary
|
|
|
27
27
|
|
|
28
28
|
#### Flags
|
|
29
29
|
|
|
30
|
-
| Flag | Short | Required | Default | Description
|
|
31
|
-
| ----------------------------- | ----- | -------- | --------------------- |
|
|
32
|
-
| `--from` | `-f` | Yes | | Start reference for the git diff range (e.g. `HEAD~1`, a tag, or a commit hash).
|
|
33
|
-
| `--to` | `-t` | No | `HEAD` | End reference for the git diff range.
|
|
34
|
-
| `--commit-message-include` | `-m` | No | | Include commits whose messages match any of these regex patterns (repeatable, OR).
|
|
35
|
-
| `--commit-message-exclude` | `-e` | No | | Exclude commits whose messages match any of these regex patterns (repeatable, OR).
|
|
36
|
-
| `--include-package-directory` | `-i` | No | | Extra repo-relative package paths merged with `sfdx-project.json` directories (repeatable).
|
|
37
|
-
| `--exclude-package-directory` | `-x` | No | | Exclude package paths from the configured list and add git `:(exclude)` pathspecs (repeatable).
|
|
38
|
-
| `--team` | | No | | Team or squad label for the summary (also via `METADATA_AUDIT_TEAM` or `SF_GIT_AI_TEAM`).
|
|
39
|
-
| `--output` | `-p` | No | `metadata-summary.md` | Output file path for the generated summary.
|
|
40
|
-
| `--model` | | No | `gpt-4o-mini`
|
|
41
|
-
| `--max-diff-chars` | | No | | Max characters of unified diff text sent to the model (5,000–5,000,000).
|
|
30
|
+
| Flag | Short | Required | Default | Description |
|
|
31
|
+
| ----------------------------- | ----- | -------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| `--from` | `-f` | Yes | | Start reference for the git diff range (e.g. `HEAD~1`, a tag, or a commit hash). |
|
|
33
|
+
| `--to` | `-t` | No | `HEAD` | End reference for the git diff range. |
|
|
34
|
+
| `--commit-message-include` | `-m` | No | | Include commits whose messages match any of these regex patterns (repeatable, OR). |
|
|
35
|
+
| `--commit-message-exclude` | `-e` | No | | Exclude commits whose messages match any of these regex patterns (repeatable, OR). |
|
|
36
|
+
| `--include-package-directory` | `-i` | No | | Extra repo-relative package paths merged with `sfdx-project.json` directories (repeatable). |
|
|
37
|
+
| `--exclude-package-directory` | `-x` | No | | Exclude package paths from the configured list and add git `:(exclude)` pathspecs (repeatable). |
|
|
38
|
+
| `--team` | | No | | Team or squad label for the summary (also via `METADATA_AUDIT_TEAM` or `SF_GIT_AI_TEAM`). |
|
|
39
|
+
| `--output` | `-p` | No | `metadata-summary.md` | Output file path for the generated summary. |
|
|
40
|
+
| `--model` | | No | _provider default_ | Override the chat model id. Defaults to the resolved provider's default (e.g. `gpt-4o-mini` for OpenAI, `claude-3-5-haiku-latest` for Anthropic). Can also be set with `LLM_MODEL`. |
|
|
41
|
+
| `--max-diff-chars` | | No | | Max characters of unified diff text sent to the model (5,000–5,000,000). |
|
|
42
42
|
|
|
43
43
|
#### Examples
|
|
44
44
|
|
|
@@ -67,36 +67,69 @@ Summarize only commits whose messages match a regex:
|
|
|
67
67
|
sf sgai metadata summarize --from main --to HEAD --commit-message-include "(feature|fix)"
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
Override the chat model (any model id your configured provider supports):
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
sf sgai metadata summarize --from HEAD~1 --to HEAD --model
|
|
73
|
+
sf sgai metadata summarize --from HEAD~1 --to HEAD --model claude-3-5-sonnet-latest
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
## Requirements
|
|
77
77
|
|
|
78
78
|
- `sf` CLI installed
|
|
79
79
|
- Node.js 20 or later
|
|
80
|
-
-
|
|
80
|
+
- A configured LLM provider—see [Provider configuration](#provider-configuration)
|
|
81
81
|
- A Salesforce DX project repository with a `sfdx-project.json` file present in the repo root (unless you pass only `--include-package-directory` paths)
|
|
82
82
|
- [Git Bash](https://git-scm.com/install/)
|
|
83
83
|
|
|
84
84
|
This plugin reads `packageDirectories` from `sfdx-project.json` (when present) to scope the git diff, merges optional CLI include/exclude paths, then sends context to the model.
|
|
85
85
|
|
|
86
|
-
###
|
|
86
|
+
### Provider configuration
|
|
87
87
|
|
|
88
|
-
The plugin
|
|
88
|
+
The plugin delegates provider resolution to [`@mcarvin/smart-diff`](https://github.com/mcarvin8/smart-diff), which uses the Vercel AI SDK. Any of the supported providers below will work — set credentials for whichever one you want to use. If multiple are set, `LLM_PROVIDER` explicitly selects one; otherwise the resolver auto-detects based on which env vars are present.
|
|
89
89
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
90
|
+
| Provider (`LLM_PROVIDER`) | Credential env vars | Default model |
|
|
91
|
+
| ------------------------- | -------------------------------------------------------------------------- | ------------------------------------------ |
|
|
92
|
+
| `openai` | `OPENAI_API_KEY` or `LLM_API_KEY` | `gpt-4o-mini` |
|
|
93
|
+
| `openai-compatible` | `LLM_BASE_URL`/`OPENAI_BASE_URL` (required); API key and/or custom headers | `gpt-4o-mini` |
|
|
94
|
+
| `anthropic` | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-latest` |
|
|
95
|
+
| `google` | `GOOGLE_GENERATIVE_AI_API_KEY` or `GOOGLE_API_KEY` | `gemini-2.0-flash` |
|
|
96
|
+
| `bedrock` | Standard AWS credential chain (env / profile / role) | `anthropic.claude-3-5-haiku-20241022-v1:0` |
|
|
97
|
+
| `mistral` | `MISTRAL_API_KEY` | `mistral-small-latest` |
|
|
98
|
+
| `cohere` | `COHERE_API_KEY` | `command-r-08-2024` |
|
|
99
|
+
| `groq` | `GROQ_API_KEY` | `llama-3.1-8b-instant` |
|
|
100
|
+
| `xai` | `XAI_API_KEY` | `grok-2-latest` |
|
|
101
|
+
| `deepseek` | `DEEPSEEK_API_KEY` | `deepseek-chat` |
|
|
102
|
+
|
|
103
|
+
All supported provider SDKs ship with the plugin — once you run `sf plugins install sf-git-ai-meta-insights`, no extra `npm install` is needed to switch between OpenAI, Anthropic, Google, Bedrock, Mistral, Cohere, Groq, xAI, or DeepSeek. Just set the env vars for whichever provider you want to use.
|
|
104
|
+
|
|
105
|
+
#### Common env vars
|
|
106
|
+
|
|
107
|
+
| Variable | Purpose |
|
|
108
|
+
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
|
|
109
|
+
| `LLM_PROVIDER` | Explicit provider id from the table above. |
|
|
110
|
+
| `LLM_MODEL` | Overrides the per-provider default model id (also settable per-run via `--model`). |
|
|
111
|
+
| `OPENAI_BASE_URL` / `LLM_BASE_URL` | Base URL for an OpenAI-compatible gateway; presence alone auto-selects the `openai-compatible` provider. |
|
|
112
|
+
| `OPENAI_DEFAULT_HEADERS` / `LLM_DEFAULT_HEADERS` | JSON object of extra headers merged onto OpenAI / OpenAI-compatible requests. `LLM_*` overrides `OPENAI_*` key-by-key. |
|
|
113
|
+
| `OPENAI_MAX_DIFF_CHARS` / `LLM_MAX_DIFF_CHARS` | Max size of unified diff text sent to the model (default ~120k characters). Also settable per-run via `--max-diff-chars`. |
|
|
95
114
|
|
|
96
115
|
> `LLM_*` variants override their `OPENAI_*` counterparts when both are set.
|
|
97
|
-
> For the full list of supported environment variables, see the [`@mcarvin/smart-diff` documentation](https://github.com/mcarvin8/smart-diff#
|
|
116
|
+
> For the full list of supported environment variables, see the [`@mcarvin/smart-diff` documentation](https://github.com/mcarvin8/smart-diff#provider-configuration).
|
|
98
117
|
|
|
99
|
-
|
|
118
|
+
#### Example: native OpenAI
|
|
119
|
+
|
|
120
|
+
```powershell
|
|
121
|
+
$env:OPENAI_API_KEY = "sk-..."
|
|
122
|
+
sf sgai metadata summarize --from HEAD~1 --to HEAD
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### Example: Anthropic Claude
|
|
126
|
+
|
|
127
|
+
```powershell
|
|
128
|
+
$env:ANTHROPIC_API_KEY = "sk-ant-..."
|
|
129
|
+
sf sgai metadata summarize --from HEAD~1 --to HEAD --model claude-3-5-sonnet-latest
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
#### Example: company-managed OpenAI-compatible gateway
|
|
100
133
|
|
|
101
134
|
```powershell
|
|
102
135
|
$env:LLM_BASE_URL = "https://llm-gateway.mycompany.example/v1"
|
|
@@ -104,11 +137,9 @@ $env:LLM_DEFAULT_HEADERS = '{"Authorization":"Bearer <token>","x-tenant-id":"sal
|
|
|
104
137
|
sf sgai metadata summarize --from HEAD~1 --to HEAD
|
|
105
138
|
```
|
|
106
139
|
|
|
107
|
-

|
|
108
|
-
|
|
109
140
|
## Built With
|
|
110
141
|
|
|
111
|
-
The plugin's core logic is imported from [`@mcarvin/smart-diff`](https://github.com/mcarvin8/smart-diff) library,
|
|
142
|
+
The plugin's core logic is imported from the [`@mcarvin/smart-diff`](https://github.com/mcarvin8/smart-diff) library, a general-purpose tool that turns git diffs from any repository into Markdown summaries using any Vercel AI SDK provider.
|
|
112
143
|
|
|
113
144
|
## License
|
|
114
145
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM provider configuration — re-exported from `@mcarvin/smart-diff` so this plugin shares one implementation.
|
|
3
|
+
*
|
|
4
|
+
* `@mcarvin/smart-diff` v2 uses the Vercel AI SDK under the hood and supports OpenAI, OpenAI-compatible
|
|
5
|
+
* gateways, Anthropic, Google, Bedrock, Mistral, Cohere, Groq, xAI, and DeepSeek.
|
|
6
|
+
*/
|
|
7
|
+
export type { LlmProviderId, ResolveLanguageModelOptions } from '@mcarvin/smart-diff';
|
|
8
|
+
export { LLM_GATEWAY_REQUIRED_MESSAGE, defaultModelForProvider, detectLlmProvider, isLlmProviderConfigured, parseLlmDefaultHeadersFromEnv, resolveLanguageModel, resolveLlmBaseUrl, } from '@mcarvin/smart-diff';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llmProviderConfig.js","sourceRoot":"","sources":["../../src/ai/llmProviderConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** System prompt
|
|
2
|
-
export declare const SALESFORCE_METADATA_SYSTEM_PROMPT = "You are a senior Salesforce architect helping developers understand Salesforce metadata changes from the git context they supplied.\nYou receive: commit subject lines (when available), changed metadata paths, and unified git patch(es) scoped to Salesforce metadata package directories\u2014either one range diff or concatenated per-commit patches, depending on how the diff was produced. Patches may be truncated mid-section with an explicit marker\u2014do not infer changes beyond visible lines.\nExplain what functionality changed: user-visible behavior, automations, integrations, data model, and security/access. Tie claims to the patch when possible.\nProduce a concise, developer-focused summary in Markdown.\nUse sections: Highlights, Risky or breaking changes, Data model changes, Automation & flows, Security & access.\nGroup related changes; do not list every individual component or file. When multiple commits appear in the context, briefly separate notable themes by commit when helpful.";
|
|
1
|
+
/** System prompt used by the configured LLM provider when summarizing Salesforce metadata git changes. */
|
|
2
|
+
export declare const SALESFORCE_METADATA_SYSTEM_PROMPT = "You are a senior Salesforce architect helping developers understand Salesforce metadata changes from the git context they supplied.\nYou receive: commit subject lines (when available), changed metadata paths, and unified git patch(es) scoped to Salesforce metadata package directories\u2014either one range diff or concatenated per-commit patches, depending on how the diff was produced. Patches may be truncated mid-section with an explicit marker\u2014do not infer changes beyond visible lines.\nExplain what functionality changed: user-visible behavior, automations, integrations, data model, and security/access. Tie claims to the patch when possible.\nProduce a concise, developer-focused summary in Markdown.\nBegin the output with the exact top-level heading \"# Metadata Change Summary\" (or \"# <Team> \u2013 Metadata Change Summary\" when the user message contains a Team line) and no content above it.\nUse sections: Highlights, Risky or breaking changes, Data model changes, Automation & flows, Security & access.\nGroup related changes; do not list every individual component or file. When multiple commits appear in the context, briefly separate notable themes by commit when helpful.";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
/** System prompt
|
|
1
|
+
/** System prompt used by the configured LLM provider when summarizing Salesforce metadata git changes. */
|
|
2
2
|
export const SALESFORCE_METADATA_SYSTEM_PROMPT = `You are a senior Salesforce architect helping developers understand Salesforce metadata changes from the git context they supplied.
|
|
3
3
|
You receive: commit subject lines (when available), changed metadata paths, and unified git patch(es) scoped to Salesforce metadata package directories—either one range diff or concatenated per-commit patches, depending on how the diff was produced. Patches may be truncated mid-section with an explicit marker—do not infer changes beyond visible lines.
|
|
4
4
|
Explain what functionality changed: user-visible behavior, automations, integrations, data model, and security/access. Tie claims to the patch when possible.
|
|
5
5
|
Produce a concise, developer-focused summary in Markdown.
|
|
6
|
+
Begin the output with the exact top-level heading "# Metadata Change Summary" (or "# <Team> – Metadata Change Summary" when the user message contains a Team line) and no content above it.
|
|
6
7
|
Use sections: Highlights, Risky or breaking changes, Data model changes, Automation & flows, Security & access.
|
|
7
8
|
Group related changes; do not list every individual component or file. When multiple commits appear in the context, briefly separate notable themes by commit when helpful.`;
|
|
8
9
|
//# sourceMappingURL=salesforceMetadataPrompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salesforceMetadataPrompt.js","sourceRoot":"","sources":["../../src/ai/salesforceMetadataPrompt.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"salesforceMetadataPrompt.js","sourceRoot":"","sources":["../../src/ai/salesforceMetadataPrompt.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,MAAM,CAAC,MAAM,iCAAiC,GAAG;;;;;;4KAM2H,CAAC"}
|
|
@@ -15,7 +15,7 @@ export default class SgaiMetadataSummarize extends SfCommand<SgaiMetadataSummari
|
|
|
15
15
|
'exclude-package-directory': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
16
|
team: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
17
|
output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
-
model: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
model: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
19
|
'max-diff-chars': import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
20
|
};
|
|
21
21
|
run(): Promise<SgaiMetadataSummarizeResult>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writeFile } from 'node:fs/promises';
|
|
2
2
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
3
3
|
import { Messages, SfError } from '@salesforce/core';
|
|
4
|
-
import { createGitClient, filterCommitsByMessageRegexes, getCommits,
|
|
4
|
+
import { createGitClient, filterCommitsByMessageRegexes, getCommits, isLlmProviderConfigured, LLM_GATEWAY_REQUIRED_MESSAGE, summarizeGitDiff, } from '@mcarvin/smart-diff';
|
|
5
5
|
import { SALESFORCE_METADATA_SYSTEM_PROMPT } from '../../../ai/salesforceMetadataPrompt.js';
|
|
6
6
|
import { resolveMetadataSummaryTeam } from '../../../salesforce/metadataSummaryContext.js';
|
|
7
7
|
import { getSalesforceMetadataIncludeFolders, normalizeRepoRelativeFolderPath, } from '../../../salesforce/sfdxPackagePaths.js';
|
|
@@ -145,7 +145,6 @@ export default class SgaiMetadataSummarize extends SfCommand {
|
|
|
145
145
|
summary: messages.getMessage('flags.model.summary'),
|
|
146
146
|
description: messages.getMessage('flags.model.description'),
|
|
147
147
|
required: false,
|
|
148
|
-
default: 'gpt-4o-mini',
|
|
149
148
|
}),
|
|
150
149
|
'max-diff-chars': Flags.integer({
|
|
151
150
|
summary: messages.getMessage('flags.max-diff-chars.summary'),
|
|
@@ -156,8 +155,8 @@ export default class SgaiMetadataSummarize extends SfCommand {
|
|
|
156
155
|
async run() {
|
|
157
156
|
const { flags } = await this.parse(SgaiMetadataSummarize);
|
|
158
157
|
validateMaxDiffCharsRange(flags['max-diff-chars']);
|
|
159
|
-
if (!
|
|
160
|
-
throw new SfError(LLM_GATEWAY_REQUIRED_MESSAGE, '
|
|
158
|
+
if (!isLlmProviderConfigured()) {
|
|
159
|
+
throw new SfError(LLM_GATEWAY_REQUIRED_MESSAGE, 'NoLlmProvider');
|
|
161
160
|
}
|
|
162
161
|
const from = flags.from;
|
|
163
162
|
const to = flags.to ?? 'HEAD';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../../src/commands/sgai/metadata/summarize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,UAAU,EACV,4BAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../../src/commands/sgai/metadata/summarize.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ Generate an AI-powered summary of changed Salesforce metadata from a git diff.
|
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
Summarize metadata changes between two Git refs using
|
|
7
|
+
Summarize metadata changes between two Git refs using any LLM provider supported by the Vercel AI SDK — OpenAI, Anthropic, Google Gemini, Amazon Bedrock, Mistral, Cohere, Groq, xAI, DeepSeek, or any OpenAI-compatible gateway. A configured provider (API key, base URL, and/or default headers) is required — see the README for environment variables. Optionally filter commits by include/exclude message regexes, narrow paths with `--include-package-directory` / `--exclude-package-directory`, and write the model output to a markdown file.
|
|
8
8
|
|
|
9
9
|
# errors.noPackageDirectories
|
|
10
10
|
|
|
@@ -68,7 +68,7 @@ Optional team or squad label for the summary.
|
|
|
68
68
|
|
|
69
69
|
# flags.team.description
|
|
70
70
|
|
|
71
|
-
When set, includes a team line in the
|
|
71
|
+
When set, includes a team line in the LLM user prompt. If omitted, `METADATA_AUDIT_TEAM` or `SF_GIT_AI_TEAM` is used when set; otherwise no team is included.
|
|
72
72
|
|
|
73
73
|
# flags.output.summary
|
|
74
74
|
|
|
@@ -80,11 +80,11 @@ The path to the markdown file where the AI summary is written. Defaults to metad
|
|
|
80
80
|
|
|
81
81
|
# flags.model.summary
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
Chat model id used for the summary.
|
|
84
84
|
|
|
85
85
|
# flags.model.description
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
Override the chat model used when creating the AI-generated metadata summary. Must be a model id supported by the resolved LLM provider (for example `gpt-4o` for OpenAI, `claude-3-5-sonnet-latest` for Anthropic, `gemini-2.0-flash` for Google). When omitted, the plugin uses `LLM_MODEL` if set, otherwise the resolved provider's default model.
|
|
88
88
|
|
|
89
89
|
# flags.max-diff-chars.summary
|
|
90
90
|
|
package/oclif.lock
CHANGED
|
@@ -2,6 +2,116 @@
|
|
|
2
2
|
# yarn lockfile v1
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
"@ai-sdk/amazon-bedrock@^4.0.96":
|
|
6
|
+
version "4.0.96"
|
|
7
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/amazon-bedrock/-/amazon-bedrock-4.0.96.tgz#75e51a1b1a8e0d2e5d2f6c2643692ebf17d4f10c"
|
|
8
|
+
integrity sha512-Mc4Ias2jRMD1jOB6xWtKNPdhECeuCZyIlbr9EAGfBnyBt++sS13ziZh9qv9TdyMCAZJ7xoQcpbchoRJcKwPdpA==
|
|
9
|
+
dependencies:
|
|
10
|
+
"@ai-sdk/anthropic" "3.0.71"
|
|
11
|
+
"@ai-sdk/provider" "3.0.8"
|
|
12
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
13
|
+
"@smithy/eventstream-codec" "^4.0.1"
|
|
14
|
+
"@smithy/util-utf8" "^4.0.0"
|
|
15
|
+
aws4fetch "^1.0.20"
|
|
16
|
+
|
|
17
|
+
"@ai-sdk/anthropic@3.0.71", "@ai-sdk/anthropic@^3.0.71":
|
|
18
|
+
version "3.0.71"
|
|
19
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/anthropic/-/anthropic-3.0.71.tgz#33eddbbd6aa6aea51156acbb4e2d15846e9a6389"
|
|
20
|
+
integrity sha512-bUWOzrzR0gJKJO/PLGMR4uH2dqEgqGhrsCV+sSpk4KtOEnUQlfjZI/F7BFlqSvVpFbjdgYRRLysAeEZpJ6S1lg==
|
|
21
|
+
dependencies:
|
|
22
|
+
"@ai-sdk/provider" "3.0.8"
|
|
23
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
24
|
+
|
|
25
|
+
"@ai-sdk/cohere@^3.0.30":
|
|
26
|
+
version "3.0.30"
|
|
27
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/cohere/-/cohere-3.0.30.tgz#5ab9c8c4f995d0dba255df9322c04d4c154018d2"
|
|
28
|
+
integrity sha512-j3fe/6lUUkHPD/51OgMXN9UD7p1QSQEAlroIinmb3MhJ1s+O0MnqdRa30IM7dRHafNp0FQ9X4YpobY85iMknUQ==
|
|
29
|
+
dependencies:
|
|
30
|
+
"@ai-sdk/provider" "3.0.8"
|
|
31
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
32
|
+
|
|
33
|
+
"@ai-sdk/deepseek@^2.0.29":
|
|
34
|
+
version "2.0.29"
|
|
35
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/deepseek/-/deepseek-2.0.29.tgz#f2a959d491e3a61390c9d47f1207f4af36a373a1"
|
|
36
|
+
integrity sha512-cn4+xV0menm/4JKEDElnVGiUilHvi6AD4ZK/sY7DXP/Wb7Yb3Vr86NyYM6mGBE/Shk3mWHoHbzggVnF5x0uMEA==
|
|
37
|
+
dependencies:
|
|
38
|
+
"@ai-sdk/provider" "3.0.8"
|
|
39
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
40
|
+
|
|
41
|
+
"@ai-sdk/gateway@3.0.104":
|
|
42
|
+
version "3.0.104"
|
|
43
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/gateway/-/gateway-3.0.104.tgz#3ad45f88907f385544d416397a33e82f1efd0758"
|
|
44
|
+
integrity sha512-ZKX5n74io8VIRlhIMSLWVlvT3sXC8Z7cZ9GHuWBWZDVi96+62AIsWuLGvMfcBA1STYuSoDrp6rIziZmvrTq0TA==
|
|
45
|
+
dependencies:
|
|
46
|
+
"@ai-sdk/provider" "3.0.8"
|
|
47
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
48
|
+
"@vercel/oidc" "3.2.0"
|
|
49
|
+
|
|
50
|
+
"@ai-sdk/google@^3.0.64":
|
|
51
|
+
version "3.0.64"
|
|
52
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/google/-/google-3.0.64.tgz#14dfadcf63aa66aa7f2d22b5012803814083551f"
|
|
53
|
+
integrity sha512-CbR82EgGPNrj/6q0HtclwuCqe0/pDShyv3nWDP/A9DroujzWXnLMlUJVrgPOsg4b40zQCwwVs2XSKCxvt/4QaA==
|
|
54
|
+
dependencies:
|
|
55
|
+
"@ai-sdk/provider" "3.0.8"
|
|
56
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
57
|
+
|
|
58
|
+
"@ai-sdk/groq@^3.0.35":
|
|
59
|
+
version "3.0.35"
|
|
60
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/groq/-/groq-3.0.35.tgz#993d843ca09c3b5129deb9117ac05e6be5932b8c"
|
|
61
|
+
integrity sha512-LXoPwSKaqXst9LyLN2J7gK8n7RldQLbP2zsnBYxXcOsXKrtceksqtbsmGXujvab2TM9FisquAw/ZG2hTbD5vnQ==
|
|
62
|
+
dependencies:
|
|
63
|
+
"@ai-sdk/provider" "3.0.8"
|
|
64
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
65
|
+
|
|
66
|
+
"@ai-sdk/mistral@^3.0.30":
|
|
67
|
+
version "3.0.30"
|
|
68
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/mistral/-/mistral-3.0.30.tgz#1645e9c5a2e2fa3cd62ed400c29827abf113c5e6"
|
|
69
|
+
integrity sha512-+j4IXRSk9E661cFSafmIr+XHOzwjFagawwzMOlSqwL6U4Sq4PCFLDF+oHbX5NUqNjUL7FD1zi/9lBIfa41pUvw==
|
|
70
|
+
dependencies:
|
|
71
|
+
"@ai-sdk/provider" "3.0.8"
|
|
72
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
73
|
+
|
|
74
|
+
"@ai-sdk/openai-compatible@2.0.41", "@ai-sdk/openai-compatible@^2.0.41":
|
|
75
|
+
version "2.0.41"
|
|
76
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/openai-compatible/-/openai-compatible-2.0.41.tgz#1f8269e3670b61f1d583ae985856f66753be0847"
|
|
77
|
+
integrity sha512-kNAGINk71AlOXx10Dq/PXw4t/9XjdK8uxfpVElRwtSFMdeSiLVt58p9TPx4/FJD+hxZuVhvxYj9r42osxWq79g==
|
|
78
|
+
dependencies:
|
|
79
|
+
"@ai-sdk/provider" "3.0.8"
|
|
80
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
81
|
+
|
|
82
|
+
"@ai-sdk/openai@^3.0.53":
|
|
83
|
+
version "3.0.53"
|
|
84
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/openai/-/openai-3.0.53.tgz#e2fde1f48eca955a259c4d8fbcc5a086b53ea504"
|
|
85
|
+
integrity sha512-Wld+Rbc05KaUn08uBt06eEuwcgalcIFtIl32Yp+GxuZXUQwOb6YeAuq+C6da4ch6BurFoqEaLemJVwjBb7x+PQ==
|
|
86
|
+
dependencies:
|
|
87
|
+
"@ai-sdk/provider" "3.0.8"
|
|
88
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
89
|
+
|
|
90
|
+
"@ai-sdk/provider-utils@4.0.23":
|
|
91
|
+
version "4.0.23"
|
|
92
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/provider-utils/-/provider-utils-4.0.23.tgz#fa0e89d6756816d8a0015f556e0b20df6df14dfa"
|
|
93
|
+
integrity sha512-z8GlDaCmRSDlqkMF2f4/RFgWxdarvIbyuk+m6WXT1LYgsnGiXRJGTD2Z1+SDl3LqtFuRtGX1aghYvQLoHL/9pg==
|
|
94
|
+
dependencies:
|
|
95
|
+
"@ai-sdk/provider" "3.0.8"
|
|
96
|
+
"@standard-schema/spec" "^1.1.0"
|
|
97
|
+
eventsource-parser "^3.0.6"
|
|
98
|
+
|
|
99
|
+
"@ai-sdk/provider@3.0.8":
|
|
100
|
+
version "3.0.8"
|
|
101
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/provider/-/provider-3.0.8.tgz#fd7fac7533c03534ac1d3fb710a6b96e2aa00263"
|
|
102
|
+
integrity sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==
|
|
103
|
+
dependencies:
|
|
104
|
+
json-schema "^0.4.0"
|
|
105
|
+
|
|
106
|
+
"@ai-sdk/xai@^3.0.83":
|
|
107
|
+
version "3.0.83"
|
|
108
|
+
resolved "https://registry.yarnpkg.com/@ai-sdk/xai/-/xai-3.0.83.tgz#7ebef403450edff1fabaff45dcfda53af943fbb3"
|
|
109
|
+
integrity sha512-SuQz68BZGeuZjrSUJAzku97IlhdiNJJBsvG/Tvm3K2tuxkBS7TJq0fH4/AzAM7w2H2jxVUgboP7kRR6IfpRxcg==
|
|
110
|
+
dependencies:
|
|
111
|
+
"@ai-sdk/openai-compatible" "2.0.41"
|
|
112
|
+
"@ai-sdk/provider" "3.0.8"
|
|
113
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
114
|
+
|
|
5
115
|
"@alcalzone/ansi-tokenize@^0.1.3":
|
|
6
116
|
version "0.1.3"
|
|
7
117
|
resolved "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz"
|
|
@@ -1649,15 +1759,26 @@
|
|
|
1649
1759
|
resolved "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz"
|
|
1650
1760
|
integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==
|
|
1651
1761
|
|
|
1652
|
-
"@mcarvin/smart-diff
|
|
1653
|
-
version "
|
|
1654
|
-
resolved "https://registry.yarnpkg.com/@mcarvin/smart-diff/-/smart-diff-
|
|
1655
|
-
integrity sha512-
|
|
1762
|
+
"@mcarvin/smart-diff@^2.0.0":
|
|
1763
|
+
version "2.0.0"
|
|
1764
|
+
resolved "https://registry.yarnpkg.com/@mcarvin/smart-diff/-/smart-diff-2.0.0.tgz#e7d8a6d1e349199238feb0c81da4f20e105aa972"
|
|
1765
|
+
integrity sha512-I1vTfEmAw7dwHNZXylWth5DKMdxMCjs8BB0SmBBuDOPw9QTTP8QvyDrSSB8+8I0tlnlgdWhSuxfhpFTAWyaJ3g==
|
|
1656
1766
|
dependencies:
|
|
1767
|
+
"@ai-sdk/openai" "^3.0.53"
|
|
1768
|
+
"@ai-sdk/openai-compatible" "^2.0.41"
|
|
1769
|
+
ai "^6.0.168"
|
|
1657
1770
|
fs-extra "^11.3.4"
|
|
1658
|
-
openai "^6.34.0"
|
|
1659
1771
|
simple-git "^3.20.0"
|
|
1660
1772
|
tslib "^2.6.2"
|
|
1773
|
+
optionalDependencies:
|
|
1774
|
+
"@ai-sdk/amazon-bedrock" "^4.0.96"
|
|
1775
|
+
"@ai-sdk/anthropic" "^3.0.71"
|
|
1776
|
+
"@ai-sdk/cohere" "^3.0.30"
|
|
1777
|
+
"@ai-sdk/deepseek" "^2.0.29"
|
|
1778
|
+
"@ai-sdk/google" "^3.0.64"
|
|
1779
|
+
"@ai-sdk/groq" "^3.0.35"
|
|
1780
|
+
"@ai-sdk/mistral" "^3.0.30"
|
|
1781
|
+
"@ai-sdk/xai" "^3.0.83"
|
|
1661
1782
|
|
|
1662
1783
|
"@nodelib/fs.scandir@2.1.5":
|
|
1663
1784
|
version "2.1.5"
|
|
@@ -1787,6 +1908,11 @@
|
|
|
1787
1908
|
strip-ansi "^7.1.2"
|
|
1788
1909
|
wrap-ansi "^9.0.2"
|
|
1789
1910
|
|
|
1911
|
+
"@opentelemetry/api@1.9.0":
|
|
1912
|
+
version "1.9.0"
|
|
1913
|
+
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe"
|
|
1914
|
+
integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==
|
|
1915
|
+
|
|
1790
1916
|
"@pinojs/redact@^0.4.0":
|
|
1791
1917
|
version "0.4.0"
|
|
1792
1918
|
resolved "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz"
|
|
@@ -2133,6 +2259,16 @@
|
|
|
2133
2259
|
"@smithy/url-parser" "^4.2.13"
|
|
2134
2260
|
tslib "^2.6.2"
|
|
2135
2261
|
|
|
2262
|
+
"@smithy/eventstream-codec@^4.0.1":
|
|
2263
|
+
version "4.2.14"
|
|
2264
|
+
resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.14.tgz#4963ca27242b80c5b1d11dcd3ea1bee2a3c5f96d"
|
|
2265
|
+
integrity sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==
|
|
2266
|
+
dependencies:
|
|
2267
|
+
"@aws-crypto/crc32" "5.2.0"
|
|
2268
|
+
"@smithy/types" "^4.14.1"
|
|
2269
|
+
"@smithy/util-hex-encoding" "^4.2.2"
|
|
2270
|
+
tslib "^2.6.2"
|
|
2271
|
+
|
|
2136
2272
|
"@smithy/eventstream-codec@^4.2.13":
|
|
2137
2273
|
version "4.2.13"
|
|
2138
2274
|
resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.13.tgz"
|
|
@@ -2408,6 +2544,13 @@
|
|
|
2408
2544
|
dependencies:
|
|
2409
2545
|
tslib "^2.6.2"
|
|
2410
2546
|
|
|
2547
|
+
"@smithy/types@^4.14.1":
|
|
2548
|
+
version "4.14.1"
|
|
2549
|
+
resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.14.1.tgz#aba92b4cdb406f2a2b062e82f1e3728d809a7c23"
|
|
2550
|
+
integrity sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==
|
|
2551
|
+
dependencies:
|
|
2552
|
+
tslib "^2.6.2"
|
|
2553
|
+
|
|
2411
2554
|
"@smithy/url-parser@^4.2.12", "@smithy/url-parser@^4.2.13":
|
|
2412
2555
|
version "4.2.13"
|
|
2413
2556
|
resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.13.tgz"
|
|
@@ -2548,7 +2691,7 @@
|
|
|
2548
2691
|
"@smithy/util-buffer-from" "^2.2.0"
|
|
2549
2692
|
tslib "^2.6.2"
|
|
2550
2693
|
|
|
2551
|
-
"@smithy/util-utf8@^4.2.2":
|
|
2694
|
+
"@smithy/util-utf8@^4.0.0", "@smithy/util-utf8@^4.2.2":
|
|
2552
2695
|
version "4.2.2"
|
|
2553
2696
|
resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.2.tgz"
|
|
2554
2697
|
integrity sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==
|
|
@@ -2571,6 +2714,11 @@
|
|
|
2571
2714
|
dependencies:
|
|
2572
2715
|
tslib "^2.6.2"
|
|
2573
2716
|
|
|
2717
|
+
"@standard-schema/spec@^1.1.0":
|
|
2718
|
+
version "1.1.0"
|
|
2719
|
+
resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8"
|
|
2720
|
+
integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==
|
|
2721
|
+
|
|
2574
2722
|
"@szmarczak/http-timer@^5.0.1":
|
|
2575
2723
|
version "5.0.1"
|
|
2576
2724
|
resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz"
|
|
@@ -2948,6 +3096,11 @@
|
|
|
2948
3096
|
resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
|
|
2949
3097
|
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
|
|
2950
3098
|
|
|
3099
|
+
"@vercel/oidc@3.2.0":
|
|
3100
|
+
version "3.2.0"
|
|
3101
|
+
resolved "https://registry.yarnpkg.com/@vercel/oidc/-/oidc-3.2.0.tgz#5782a4d4904443f015808705b5537cf9c3b68528"
|
|
3102
|
+
integrity sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==
|
|
3103
|
+
|
|
2951
3104
|
JSONStream@^1.3.5:
|
|
2952
3105
|
version "1.3.5"
|
|
2953
3106
|
resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz"
|
|
@@ -3000,6 +3153,16 @@ aggregate-error@^3.0.0:
|
|
|
3000
3153
|
clean-stack "^2.0.0"
|
|
3001
3154
|
indent-string "^4.0.0"
|
|
3002
3155
|
|
|
3156
|
+
ai@^6.0.168:
|
|
3157
|
+
version "6.0.168"
|
|
3158
|
+
resolved "https://registry.yarnpkg.com/ai/-/ai-6.0.168.tgz#314a8622481c3dbceaef4d911a1c132df59dc1ef"
|
|
3159
|
+
integrity sha512-2HqCJuO+1V2aV7vfYs5LFEUfxbkGX+5oa54q/gCCTL7KLTdbxcCu5D7TdLA5kwsrs3Szgjah9q6D9tpjHM3hUQ==
|
|
3160
|
+
dependencies:
|
|
3161
|
+
"@ai-sdk/gateway" "3.0.104"
|
|
3162
|
+
"@ai-sdk/provider" "3.0.8"
|
|
3163
|
+
"@ai-sdk/provider-utils" "4.0.23"
|
|
3164
|
+
"@opentelemetry/api" "1.9.0"
|
|
3165
|
+
|
|
3003
3166
|
ajv@^6.12.4:
|
|
3004
3167
|
version "6.14.0"
|
|
3005
3168
|
resolved "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz"
|
|
@@ -3252,6 +3415,11 @@ available-typed-arrays@^1.0.7:
|
|
|
3252
3415
|
dependencies:
|
|
3253
3416
|
possible-typed-array-names "^1.0.0"
|
|
3254
3417
|
|
|
3418
|
+
aws4fetch@^1.0.20:
|
|
3419
|
+
version "1.0.20"
|
|
3420
|
+
resolved "https://registry.yarnpkg.com/aws4fetch/-/aws4fetch-1.0.20.tgz#090d6c65e32c6df645dd5e5acf04cc56da575cbe"
|
|
3421
|
+
integrity sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==
|
|
3422
|
+
|
|
3255
3423
|
babel-jest@^29.7.0:
|
|
3256
3424
|
version "29.7.0"
|
|
3257
3425
|
resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz"
|
|
@@ -4660,6 +4828,11 @@ events@^3.3.0:
|
|
|
4660
4828
|
resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz"
|
|
4661
4829
|
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
|
4662
4830
|
|
|
4831
|
+
eventsource-parser@^3.0.6:
|
|
4832
|
+
version "3.0.8"
|
|
4833
|
+
resolved "https://registry.yarnpkg.com/eventsource-parser/-/eventsource-parser-3.0.8.tgz#1c792503e4080455d00701bb1f7a1d60734d0e58"
|
|
4834
|
+
integrity sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==
|
|
4835
|
+
|
|
4663
4836
|
execa@^1.0.0:
|
|
4664
4837
|
version "1.0.0"
|
|
4665
4838
|
resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz"
|
|
@@ -6436,6 +6609,11 @@ json-schema-traverse@^1.0.0:
|
|
|
6436
6609
|
resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
|
|
6437
6610
|
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
|
|
6438
6611
|
|
|
6612
|
+
json-schema@^0.4.0:
|
|
6613
|
+
version "0.4.0"
|
|
6614
|
+
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
|
|
6615
|
+
integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
|
|
6616
|
+
|
|
6439
6617
|
json-stable-stringify-without-jsonify@^1.0.1:
|
|
6440
6618
|
version "1.0.1"
|
|
6441
6619
|
resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
|
|
@@ -7417,11 +7595,6 @@ oniguruma-to-es@^2.2.0:
|
|
|
7417
7595
|
regex "^5.1.1"
|
|
7418
7596
|
regex-recursion "^5.1.1"
|
|
7419
7597
|
|
|
7420
|
-
openai@^6.34.0:
|
|
7421
|
-
version "6.34.0"
|
|
7422
|
-
resolved "https://registry.yarnpkg.com/openai/-/openai-6.34.0.tgz#93483a1044e2dcd62891bba580772b9cb792395d"
|
|
7423
|
-
integrity sha512-yEr2jdGf4tVFYG6ohmr3pF6VJuveP0EA/sS8TBx+4Eq5NT10alu5zg2dmxMXMgqpihRDQlFGpRt2XwsGj+Fyxw==
|
|
7424
|
-
|
|
7425
7598
|
optionator@^0.9.3:
|
|
7426
7599
|
version "0.9.4"
|
|
7427
7600
|
resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz"
|
|
@@ -8647,16 +8820,7 @@ string-length@^4.0.1:
|
|
|
8647
8820
|
char-regex "^1.0.2"
|
|
8648
8821
|
strip-ansi "^6.0.0"
|
|
8649
8822
|
|
|
8650
|
-
"string-width-cjs@npm:string-width@^4.2.0":
|
|
8651
|
-
version "4.2.3"
|
|
8652
|
-
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
|
8653
|
-
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
|
8654
|
-
dependencies:
|
|
8655
|
-
emoji-regex "^8.0.0"
|
|
8656
|
-
is-fullwidth-code-point "^3.0.0"
|
|
8657
|
-
strip-ansi "^6.0.1"
|
|
8658
|
-
|
|
8659
|
-
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
|
8823
|
+
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
|
8660
8824
|
version "4.2.3"
|
|
8661
8825
|
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
|
8662
8826
|
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
|
@@ -8737,14 +8901,7 @@ stringify-entities@^4.0.0:
|
|
|
8737
8901
|
character-entities-html4 "^2.0.0"
|
|
8738
8902
|
character-entities-legacy "^3.0.0"
|
|
8739
8903
|
|
|
8740
|
-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
|
|
8741
|
-
version "6.0.1"
|
|
8742
|
-
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
|
|
8743
|
-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
|
8744
|
-
dependencies:
|
|
8745
|
-
ansi-regex "^5.0.1"
|
|
8746
|
-
|
|
8747
|
-
strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
|
8904
|
+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
|
8748
8905
|
version "6.0.1"
|
|
8749
8906
|
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
|
|
8750
8907
|
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
|
@@ -9467,7 +9624,7 @@ workerpool@^9.2.0:
|
|
|
9467
9624
|
resolved "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz"
|
|
9468
9625
|
integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==
|
|
9469
9626
|
|
|
9470
|
-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
|
|
9627
|
+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
|
9471
9628
|
version "7.0.0"
|
|
9472
9629
|
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
|
|
9473
9630
|
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
|
@@ -9485,15 +9642,6 @@ wrap-ansi@^6.2.0:
|
|
|
9485
9642
|
string-width "^4.1.0"
|
|
9486
9643
|
strip-ansi "^6.0.0"
|
|
9487
9644
|
|
|
9488
|
-
wrap-ansi@^7.0.0:
|
|
9489
|
-
version "7.0.0"
|
|
9490
|
-
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
|
|
9491
|
-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
|
9492
|
-
dependencies:
|
|
9493
|
-
ansi-styles "^4.0.0"
|
|
9494
|
-
string-width "^4.1.0"
|
|
9495
|
-
strip-ansi "^6.0.0"
|
|
9496
|
-
|
|
9497
9645
|
wrap-ansi@^8.1.0:
|
|
9498
9646
|
version "8.1.0"
|
|
9499
9647
|
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"
|
|
@@ -9674,7 +9822,7 @@ yoga-wasm-web@~0.3.3:
|
|
|
9674
9822
|
resolved "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz"
|
|
9675
9823
|
integrity sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==
|
|
9676
9824
|
|
|
9677
|
-
zod@^4.1.12:
|
|
9825
|
+
zod@^4.1.12, zod@^4.1.8:
|
|
9678
9826
|
version "4.3.6"
|
|
9679
9827
|
resolved "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz"
|
|
9680
9828
|
integrity sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==
|
package/oclif.manifest.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"sgai:metadata:summarize": {
|
|
4
4
|
"aliases": [],
|
|
5
5
|
"args": {},
|
|
6
|
-
"description": "Summarize metadata changes between two Git refs using
|
|
6
|
+
"description": "Summarize metadata changes between two Git refs using any LLM provider supported by the Vercel AI SDK — OpenAI, Anthropic, Google Gemini, Amazon Bedrock, Mistral, Cohere, Groq, xAI, DeepSeek, or any OpenAI-compatible gateway. A configured provider (API key, base URL, and/or default headers) is required — see the README for environment variables. Optionally filter commits by include/exclude message regexes, narrow paths with `--include-package-directory` / `--exclude-package-directory`, and write the model output to a markdown file.",
|
|
7
7
|
"examples": [
|
|
8
8
|
"<%= config.bin %> <%= command.id %> --from HEAD~5 --to HEAD --commit-message-include \"(feature|fix)\" --output changes.md",
|
|
9
9
|
"<%= config.bin %> <%= command.id %> --from HEAD~5 --to HEAD --commit-message-include \"feat\" --commit-message-exclude \"wip\" --exclude-package-directory force-app/main/default/lwc/temp",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"type": "option"
|
|
88
88
|
},
|
|
89
89
|
"team": {
|
|
90
|
-
"description": "When set, includes a team line in the
|
|
90
|
+
"description": "When set, includes a team line in the LLM user prompt. If omitted, `METADATA_AUDIT_TEAM` or `SF_GIT_AI_TEAM` is used when set; otherwise no team is included.",
|
|
91
91
|
"name": "team",
|
|
92
92
|
"required": false,
|
|
93
93
|
"summary": "Optional team or squad label for the summary.",
|
|
@@ -107,11 +107,10 @@
|
|
|
107
107
|
"type": "option"
|
|
108
108
|
},
|
|
109
109
|
"model": {
|
|
110
|
-
"description": "
|
|
110
|
+
"description": "Override the chat model used when creating the AI-generated metadata summary. Must be a model id supported by the resolved LLM provider (for example `gpt-4o` for OpenAI, `claude-3-5-sonnet-latest` for Anthropic, `gemini-2.0-flash` for Google). When omitted, the plugin uses `LLM_MODEL` if set, otherwise the resolved provider's default model.",
|
|
111
111
|
"name": "model",
|
|
112
112
|
"required": false,
|
|
113
|
-
"summary": "
|
|
114
|
-
"default": "gpt-4o-mini",
|
|
113
|
+
"summary": "Chat model id used for the summary.",
|
|
115
114
|
"hasDynamicHelp": false,
|
|
116
115
|
"multiple": false,
|
|
117
116
|
"type": "option"
|
|
@@ -154,5 +153,5 @@
|
|
|
154
153
|
]
|
|
155
154
|
}
|
|
156
155
|
},
|
|
157
|
-
"version": "2.
|
|
156
|
+
"version": "2.2.0"
|
|
158
157
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-git-ai-meta-insights",
|
|
3
3
|
"description": "Provide AI-generated summaries on Salesforce metadata changes by analyzing the git diff.",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@
|
|
6
|
+
"@ai-sdk/amazon-bedrock": "^4.0.96",
|
|
7
|
+
"@ai-sdk/anthropic": "^3.0.71",
|
|
8
|
+
"@ai-sdk/cohere": "^3.0.30",
|
|
9
|
+
"@ai-sdk/deepseek": "^2.0.29",
|
|
10
|
+
"@ai-sdk/google": "^3.0.64",
|
|
11
|
+
"@ai-sdk/groq": "^3.0.35",
|
|
12
|
+
"@ai-sdk/mistral": "^3.0.30",
|
|
13
|
+
"@ai-sdk/xai": "^3.0.83",
|
|
14
|
+
"@mcarvin/smart-diff": "^2.0.0",
|
|
7
15
|
"@oclif/core": "^4",
|
|
8
16
|
"@salesforce/core": "^8",
|
|
9
|
-
"@salesforce/sf-plugins-core": "^12"
|
|
17
|
+
"@salesforce/sf-plugins-core": "^12",
|
|
18
|
+
"zod": "^4.1.8"
|
|
10
19
|
},
|
|
11
20
|
"devDependencies": {
|
|
12
21
|
"@jest/globals": "^29.7.0",
|
package/lib/ai/openAiConfig.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAI-compatible LLM gateways — re-exported from `@mcarvin/smart-diff` so this plugin shares one implementation.
|
|
3
|
-
*/
|
|
4
|
-
export type { OpenAiLikeClient, OpenAiLikeClientInit } from '@mcarvin/smart-diff';
|
|
5
|
-
export { createOpenAiLikeClient, LLM_GATEWAY_REQUIRED_MESSAGE, parseLlmDefaultHeadersFromEnv, resolveLlmBaseUrl, resolveOpenAiLikeClientInit, shouldUseLlmGateway, splitPromotableAuthorizationFromHeaders, } from '@mcarvin/smart-diff';
|
package/lib/ai/openAiConfig.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openAiConfig.js","sourceRoot":"","sources":["../../src/ai/openAiConfig.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,iBAAiB,EACjB,2BAA2B,EAC3B,mBAAmB,EACnB,uCAAuC,GACxC,MAAM,qBAAqB,CAAC"}
|