sap-ai-dev-toolkit 0.7.3 → 0.7.4

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <p align="center">
4
4
  <strong>Build, test, and deliver ABAP with AI that understands your SAP landscape.</strong><br>
5
- Bring GitHub Copilot Chat into your development workflow with destination-aware SAP tools.<br>
5
+ Bring your favorite AI coding assistant into your SAP development workflow with destination-aware SAP tools.<br>
6
6
  Explore real system context, make focused changes, and verify results before delivery.
7
7
  </p>
8
8
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  <p align="center">
17
17
  <img src="https://img.shields.io/badge/SAP-Business%20Application%20Studio-0A6ED1?style=flat-square&logo=sap&logoColor=white" alt="SAP Business Application Studio">
18
- <img src="https://img.shields.io/badge/GitHub%20Copilot-Agent-000000?style=flat-square&logo=githubcopilot&logoColor=white" alt="GitHub Copilot Agent">
18
+ <img src="https://img.shields.io/badge/AI%20agents-Copilot%20%7C%20Claude%20%7C%20Codex%20%7C%20Cursor%20%7C%20Gemini%20%7C%20opencode-000000?style=flat-square" alt="Works with GitHub Copilot, Claude Code, OpenAI Codex, Cursor, Gemini CLI, and opencode">
19
19
  <img src="https://img.shields.io/badge/MCP-enabled-7B61FF?style=flat-square" alt="MCP enabled">
20
20
  <img src="https://img.shields.io/badge/SAP%20ADT-connected-0A6ED1?style=flat-square&logo=sap&logoColor=white" alt="SAP ADT connected">
21
21
  <img src="https://img.shields.io/badge/ABAP-CDS%20%7C%20RAP-EA4AAA?style=flat-square" alt="ABAP CDS RAP">
@@ -23,24 +23,19 @@
23
23
 
24
24
  <p align="center">
25
25
  <a href="#install"><strong>Get started →</strong></a> ·
26
- <a href="#copilot-agent">Meet the agents</a> ·
26
+ <a href="#agents">Meet the agents</a> ·
27
27
  <a href="#bas">Connect your SAP systems</a> ·
28
28
  <a href="#tools">Explore the tools</a>
29
29
  </p>
30
30
 
31
31
  ## From a prompt to SAP-ready work
32
32
 
33
- SAP AI Dev Toolkit connects GitHub Copilot Chat to the SAP development tools available for each selected destination. Agents can inspect ABAP and CDS, propose changes, run checks, and return the evidence—without losing sight of which SAP system each operation targets.
33
+ SAP AI Dev Toolkit connects your AI coding assistant to the SAP development tools available for each selected destination. Agents can inspect ABAP and CDS, propose changes, run checks, and return the evidence—without losing sight of which SAP system each operation targets.
34
34
 
35
- ```mermaid
36
- flowchart LR
37
- Dev[Developer] --> Chat[GitHub Copilot Chat]
38
- Chat -->|request and tool calls| Toolkit[SAP AI Dev Toolkit]
39
- Toolkit -->|destination-scoped MCP| VSP[VSP and BAS destination]
40
- VSP -->|SAP ADT| SAP[SAP system]
41
- SAP -->|results and diagnostics| Toolkit
42
- Toolkit --> Chat
43
- ```
35
+ <p align="center">
36
+ <strong>Agent chat</strong> → <strong>destination-scoped MCP</strong> → <strong>VSP + BAS destination</strong> → <strong>SAP ADT</strong> → <strong>your SAP system</strong><br>
37
+ <em>results and diagnostics flow back along the same path</em>
38
+ </p>
44
39
 
45
40
  <p align="center"><strong>Explore → Build → Verify → Prepare for delivery</strong></p>
46
41
 
@@ -62,9 +57,9 @@ Then connect a destination in SAP Business Application Studio:
62
57
  1. Open the Command Palette.
63
58
  2. Run **MCP: List Servers**.
64
59
  3. Start the server named after your selected BAS destination (the lowercase slug, for example `demo-abap` for destination `DEMO_ABAP`).
65
- 4. In GitHub Copilot Chat, choose the best-fit bundled agent from the agent picker: **SAP Solution Architect**, **ABAP Developer**, **ABAP Runtime Debugger**, **RAP Service Developer**, or **HANA Cloud/HDI Specialist**.
60
+ 4. In your AI assistant's chat, choose the best-fit bundled agent from the agent picker (GitHub Copilot, Claude Code, and opencode install the agents): **SAP Solution Architect**, **ABAP Developer**, **ABAP Runtime Debugger**, **RAP Service Developer**, or **HANA Cloud/HDI Specialist**.
66
61
  5. In the Chat tools picker, enable the server for that BAS destination.
67
- 6. Ask Copilot to inspect, build, test, or verify something in your SAP landscape.
62
+ 6. Ask the agent to inspect, build, test, or verify something in your SAP landscape.
68
63
 
69
64
  Use the attached destination-prefixed tools directly in chat. Do not launch `sap-ai-dev` or handcraft MCP JSON-RPC in a terminal to discover or call them.
70
65
 
@@ -72,7 +67,7 @@ Use the attached destination-prefixed tools directly in chat. Do not launch `sap
72
67
 
73
68
  ## 🤖 Available agents and skills
74
69
 
75
- **Agents:** Five user-invocable custom agents are included. Select the best fit from the agent picker in GitHub Copilot Chat, as shown in Quick start.
70
+ **Agents:** Five user-invocable custom agents are included. Select the best fit from the agent picker in your harness's chat (GitHub Copilot, Claude Code, or opencode), as shown in Quick start.
76
71
 
77
72
  | | Agent | Best for |
78
73
  | --- | --- | --- |
@@ -86,7 +81,7 @@ Use the attached destination-prefixed tools directly in chat. Do not launch `sap
86
81
 
87
82
  Agents and skills install for the harnesses you pick during global installation: a multi-select offers GitHub Copilot and Claude Code pre-checked, plus OpenAI Codex, Cursor, Gemini CLI, and opencode. In non-interactive installs they are installed for GitHub Copilot only. Repository-scoped installation instructions appear below.
88
83
 
89
- ## ✨ Your SAP development cockpit, inside Copilot Chat
84
+ ## ✨ Your SAP development cockpit, inside your AI assistant
90
85
 
91
86
  `sap-ai-dev-toolkit` installs `sap-ai-dev`, discovers your BAS destinations, and exposes a curated SAP development toolset through MCP. Instead of manually switching between chat, terminal commands, repository searches, ADT screens, and SAP checks, describe the outcome you want and let the appropriate bundled agent coordinate the available tools.
92
87
 
@@ -156,7 +151,7 @@ The catalog below covers source inspection, data, editing, quality, transports,
156
151
 
157
152
  ## 🧠 Five agents, fourteen focused skills
158
153
 
159
- The package ships with five custom agents plus fourteen task-focused Copilot Agent Skills:
154
+ The package ships with five custom agents plus fourteen task-focused Agent Skills:
160
155
 
161
156
  | | Skill | Best for |
162
157
  | --- | --- | --- |
@@ -217,7 +212,7 @@ The configured identity must be a separate least-privileged read-only HANA user.
217
212
 
218
213
  ## 💡 Example requests
219
214
 
220
- Once the destination server is enabled in Copilot Chat, ask for outcomes instead of manually orchestrating individual SAP operations:
215
+ Once the destination server is enabled in your chat's tools picker, ask for outcomes instead of manually orchestrating individual SAP operations:
221
216
 
222
217
  > Find every reference to `ZCL_ORDER`, explain the impact of changing method `CREATE_ORDER`, and show me the callers before editing anything.
223
218
 
@@ -313,11 +308,11 @@ At the end of a global install, the color-coded summary shows the MCP config pat
313
308
  3. Select the generated server name shown in the report and choose **Start Server**.
314
309
  4. Use **MCP: Open User Configuration** to inspect or edit the generated entries. Each entry is isolated to its destination.
315
310
 
316
- <a id="copilot-agent"></a>
311
+ <a id="agents"></a>
317
312
 
318
- ## 🤖 GitHub Copilot ABAP agents and skills
313
+ ## 🤖 ABAP agents and skills for your AI harness
319
314
 
320
- The package includes five user-invocable custom agents (**SAP Solution Architect**, **ABAP Developer**, **ABAP Runtime Debugger**, **RAP Service Developer**, and **HANA Cloud/HDI Specialist**) and fourteen task-focused Agent Skills for GitHub Copilot in BAS.
315
+ The package includes five user-invocable custom agents (**SAP Solution Architect**, **ABAP Developer**, **ABAP Runtime Debugger**, **RAP Service Developer**, and **HANA Cloud/HDI Specialist**) and fourteen task-focused Agent Skills for GitHub Copilot, Claude Code, and other supported AI coding harnesses in BAS.
321
316
 
322
317
  ### 🧠 How the SAP Solution Architect and ABAP Developer agents work
323
318
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sap-ai-dev-toolkit",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
4
4
  "description": "SAP AI development toolkit for BAS, ABAP, RAP, CAP, HANA Cloud, Fiori, UI5, and MCP",
5
5
  "author": "Gurkan Yilmaz",
6
6
  "type": "module",
@@ -103,6 +103,13 @@ function truncateToColumns(text, columns) {
103
103
  return truncateString(value, Math.max(1, columns));
104
104
  }
105
105
 
106
+ // A rendered line can wrap onto several physical terminal rows; redrawing must
107
+ // count those rows or cursor-up clears too little and stale fragments remain.
108
+ function physicalRows(lines, columns) {
109
+ if (columns <= 0) return lines.length;
110
+ return lines.reduce((total, line) => total + Math.max(1, Math.ceil(stringWidth(line) / columns)), 0);
111
+ }
112
+
106
113
  function checkboxPageSize(output, choiceCount) {
107
114
  const rows = Number.isFinite(output?.rows) ? output.rows : 24;
108
115
  return clamp(Math.min(choiceCount, rows - 7), 1, Math.max(1, choiceCount));
@@ -134,7 +141,7 @@ export async function checkboxPrompt({ message, choices, required = false, short
134
141
  const pageSize = checkboxPageSize(output, choices.length);
135
142
  ensureVisible(pageSize);
136
143
  const lines = [];
137
- lines.push(`${message} (Space: select, ${shortcuts?.all || 'a'}: toggle all, Enter: confirm)`);
144
+ lines.push(truncateToColumns(`${message} (Space: select, ${shortcuts?.all || 'a'}: toggle all, Enter: confirm)`, columns));
138
145
  const end = Math.min(choices.length, top + pageSize);
139
146
  for (let index = top; index < end; index += 1) {
140
147
  const choice = choices[index];
@@ -147,12 +154,12 @@ export async function checkboxPrompt({ message, choices, required = false, short
147
154
  lines.push(truncateToColumns(label, columns));
148
155
  }
149
156
  if (choices.length > pageSize) {
150
- lines.push(colorText(` Showing ${top + 1}-${end} of ${choices.length}; use ↑/↓ to scroll.`, 'cyan', output));
157
+ lines.push(truncateToColumns(colorText(` Showing ${top + 1}-${end} of ${choices.length}; use ↑/↓ to scroll.`, 'cyan', output), columns));
151
158
  }
152
- if (error) lines.push(colorText(` ${error}`, 'red', output));
159
+ if (error) lines.push(truncateToColumns(colorText(` ${error}`, 'red', output), columns));
153
160
  clearRendered();
154
161
  write(`${lines.join('\n')}\n`);
155
- renderedLines = lines.length;
162
+ renderedLines = physicalRows(lines, columns);
156
163
  };
157
164
 
158
165
  return new Promise((resolve, reject) => {
@@ -237,10 +244,10 @@ export async function textPrompt({ message, secret = false, required = true, pla
237
244
  const shown = secret ? masked() : value;
238
245
  const display = shown || colorText(placeholder, 'cyan', output);
239
246
  lines.push(truncateToColumns(`❯ ${display}`, columns));
240
- if (error) lines.push(colorText(` ${error}`, 'red', output));
247
+ if (error) lines.push(truncateToColumns(colorText(` ${error}`, 'red', output), columns));
241
248
  clearRendered();
242
249
  write(`${lines.join('\n')}\n`);
243
- renderedLines = lines.length;
250
+ renderedLines = physicalRows(lines, columns);
244
251
  };
245
252
 
246
253
  return new Promise((resolve, reject) => {