abapgit-agent 1.1.6 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.github/workflows/release.yml +3 -1
  2. package/API.md +261 -0
  3. package/CLAUDE.md +384 -0
  4. package/README.md +16 -2
  5. package/RELEASE_NOTES.md +93 -8
  6. package/abap/CLAUDE.md +282 -6
  7. package/abap/copilot-instructions.md +79 -0
  8. package/abap/zcl_abgagt_agent.clas.abap +2 -2
  9. package/abap/zcl_abgagt_cmd_factory.clas.abap +2 -0
  10. package/abap/zcl_abgagt_command_inspect.clas.abap +255 -36
  11. package/abap/zcl_abgagt_command_tree.clas.abap +237 -0
  12. package/abap/zcl_abgagt_command_tree.clas.xml +15 -0
  13. package/abap/zcl_abgagt_command_view.clas.abap +240 -0
  14. package/abap/zcl_abgagt_command_view.clas.xml +15 -0
  15. package/abap/zcl_abgagt_resource_tree.clas.abap +70 -0
  16. package/abap/zcl_abgagt_resource_tree.clas.xml +15 -0
  17. package/abap/zcl_abgagt_resource_view.clas.abap +68 -0
  18. package/abap/zcl_abgagt_resource_view.clas.xml +15 -0
  19. package/abap/zcl_abgagt_rest_handler.clas.abap +2 -0
  20. package/abap/zcl_abgagt_util.clas.abap +2 -2
  21. package/abap/zcl_abgagt_viewer_clas.clas.abap +58 -0
  22. package/abap/zcl_abgagt_viewer_clas.clas.xml +15 -0
  23. package/abap/zcl_abgagt_viewer_ddls.clas.abap +83 -0
  24. package/abap/zcl_abgagt_viewer_ddls.clas.xml +15 -0
  25. package/abap/zcl_abgagt_viewer_dtel.clas.abap +98 -0
  26. package/abap/zcl_abgagt_viewer_dtel.clas.xml +15 -0
  27. package/abap/zcl_abgagt_viewer_factory.clas.abap +41 -0
  28. package/abap/zcl_abgagt_viewer_factory.clas.xml +15 -0
  29. package/abap/zcl_abgagt_viewer_intf.clas.abap +58 -0
  30. package/abap/zcl_abgagt_viewer_intf.clas.xml +15 -0
  31. package/abap/zcl_abgagt_viewer_stru.clas.abap +59 -0
  32. package/abap/zcl_abgagt_viewer_stru.clas.xml +15 -0
  33. package/abap/zcl_abgagt_viewer_tabl.clas.abap +59 -0
  34. package/abap/zcl_abgagt_viewer_tabl.clas.xml +15 -0
  35. package/abap/zcl_abgagt_viewer_ttyp.clas.abap +93 -0
  36. package/abap/zcl_abgagt_viewer_ttyp.clas.xml +15 -0
  37. package/abap/zif_abgagt_command.intf.abap +3 -1
  38. package/abap/zif_abgagt_viewer.intf.abap +12 -0
  39. package/abap/zif_abgagt_viewer.intf.xml +15 -0
  40. package/bin/abapgit-agent +605 -38
  41. package/docs/commands.md +27 -8
  42. package/docs/tree-command.md +303 -0
  43. package/docs/view-command.md +501 -0
  44. package/package.json +1 -1
  45. package/src/abap-client.js +22 -0
  46. package/src/agent.js +27 -0
package/CLAUDE.md CHANGED
@@ -38,6 +38,7 @@ ABAP REST Handler (ZCL_ABGAGT_REST_HANDLER)
38
38
  Resource: ZCL_ABGAGT_RESOURCE_PULL → ZCL_ABGAGT_CMD_FACTORY → ZCL_ABGAGT_COMMAND_PULL → ZCL_ABGAGT_AGENT
39
39
  Resource: ZCL_ABGAGT_RESOURCE_INSPECT → ZCL_ABGAGT_CMD_FACTORY → ZCL_ABGAGT_COMMAND_INSPECT → ZCL_ABGAGT_AGENT
40
40
  Resource: ZCL_ABGAGT_RESOURCE_UNIT → ZCL_ABGAGT_CMD_FACTORY → ZCL_ABGAGT_COMMAND_UNIT → ZCL_ABGAGT_AGENT
41
+ Resource: ZCL_ABGAGT_RESOURCE_TREE → ZCL_ABGAGT_CMD_FACTORY → ZCL_ABGAGT_COMMAND_TREE → ZCL_ABGAGT_AGENT
41
42
  ```
42
43
 
43
44
  ### ABAP Objects
@@ -49,6 +50,7 @@ Resource: ZCL_ABGAGT_RESOURCE_UNIT → ZCL_ABGAGT_CMD_FACTORY → ZCL_ABGAGT_COM
49
50
  | `ZCL_ABGAGT_COMMAND_PULL` | Pull command - implements ZIF_ABGAGT_COMMAND |
50
51
  | `ZCL_ABGAGT_COMMAND_INSPECT` | Inspect command - implements ZIF_ABGAGT_COMMAND |
51
52
  | `ZCL_ABGAGT_COMMAND_UNIT` | Unit command - implements ZIF_ABGAGT_COMMAND |
53
+ | `ZCL_ABGAGT_COMMAND_TREE` | Tree command - displays package hierarchy |
52
54
  | `ZIF_ABGAGT_COMMAND` | Command interface with constants |
53
55
  | `ZIF_ABGAGT_CMD_FACTORY` | Factory interface |
54
56
 
@@ -73,6 +75,14 @@ abapgit-agent inspect --files abap/zcl_my_class.clas.abap
73
75
  # Run unit tests for ABAP test classes
74
76
  abapgit-agent unit --files abap/zcl_my_test.clas.testclasses.abap
75
77
 
78
+ # Display package hierarchy tree
79
+ abapgit-agent tree --package $MY_PACKAGE
80
+
81
+ # View ABAP object definitions from ABAP system
82
+ abapgit-agent view --objects ZCL_MY_CLASS
83
+ abapgit-agent view --objects ZIF_MY_INTERFACE --type INTF
84
+ abapgit-agent view --objects ZCL_CLASS1,ZCL_CLASS2 --json
85
+
76
86
  # Health check
77
87
  abapgit-agent health
78
88
 
@@ -85,6 +95,22 @@ abapgit-agent status
85
95
  ### Description
86
96
  Pull and activate ABAP objects from git repository.
87
97
 
98
+ ### Rule: Pull All Changed Files Together
99
+
100
+ **CRITICAL**: When multiple ABAP files are changed, pull them ALL together in a single command:
101
+
102
+ ```bash
103
+ # WRONG - Pull files one by one (may cause activation issues)
104
+ abapgit-agent pull --files zcl_class1.clas.abap
105
+ abapgit-agent pull --files zcl_class2.clas.abap
106
+ abapgit-agent pull --files zif_interface1.intf.abap
107
+
108
+ # CORRECT - Pull all changed files together
109
+ abapgit-agent pull --files zcl_class1.clas.abap,zcl_class2.clas.abap,zif_interface1.intf.abap
110
+ ```
111
+
112
+ **Why?** ABAP objects often have dependencies on each other. Pulling separately can cause activation errors if dependent objects haven't been activated yet. Pulling together ensures the ABAP system processes all changes atomically.
113
+
88
114
  ### Usage
89
115
  ```bash
90
116
  # Auto-detect git remote and branch from current directory
@@ -155,6 +181,75 @@ abapgit-agent health
155
181
  }
156
182
  ```
157
183
 
184
+ ## Inspect Command
185
+
186
+ ### Description
187
+ Run syntax check for ABAP objects. Supports both regular ABAP objects (classes, interfaces, programs) and CDS views (DDLS).
188
+
189
+ ### Usage
190
+ ```bash
191
+ # Inspect single file
192
+ abapgit-agent inspect --files abap/zcl_my_class.clas.abap
193
+
194
+ # Inspect multiple files
195
+ abapgit-agent inspect --files abap/zcl_class1.clas.abap,abap/zcl_class2.clas.abap
196
+
197
+ # Inspect CDS view
198
+ abapgit-agent inspect --files abap/zc_my_view.ddls.asddls
199
+
200
+ # Inspect mixed file types (DDLS + CLAS)
201
+ abapgit-agent inspect --files abap/zc_my_view.ddls.asddls,abap/zcl_my_class.clas.abap
202
+ ```
203
+
204
+ ### Supported Object Types
205
+
206
+ | Type | Description | Validation Method |
207
+ |------|-------------|------------------|
208
+ | CLAS | Class | Code Inspector (SCI) |
209
+ | INTF | Interface | Code Inspector (SCI) |
210
+ | PROG | Program | Code Inspector (SCI) |
211
+ | FUGR | Function Group | Code Inspector (SCI) |
212
+ | DDLS | CDS View/Entity | DDL Handler (CL_DD_DDL_HANDLER_FACTORY) |
213
+
214
+ ### Output
215
+
216
+ **Passed:**
217
+ ```
218
+ ✅ CLAS ZCL_MY_CLASS - Syntax check passed
219
+ ```
220
+
221
+ **With Warnings:**
222
+ ```
223
+ ⚠️ DDLS ZC_MY_VIEW - Syntax check passed with warnings (4):
224
+
225
+ Warnings:
226
+ ────────────────────────────────────────────────────────────
227
+ Line 9 : ParentPackage
228
+ Line 11 : SoftwareComponent
229
+ ```
230
+
231
+ **Failed:**
232
+ ```
233
+ ❌ DDLS ZC_MY_VIEW - Syntax check failed (1 error(s)):
234
+
235
+ Errors:
236
+ ────────────────────────────────────────────────────────────
237
+ Line 21, Column 12: Error message text
238
+ ```
239
+
240
+ ### Key Behaviors
241
+
242
+ 1. **Multiple files in one request** - All files are sent in a single API call for better performance
243
+ 2. **CDS View validation** - Uses `CL_DD_DDL_HANDLER_FACTORY` to validate CDS views
244
+ 3. **Check inactive version first** - For CDS views, checks the inactive version first (`get_state = 'M'`), then falls back to active version
245
+ 4. **Detailed error messages** - Uses `get_errors()` and `get_warnings()` methods from the exception to get detailed information
246
+ 5. **Per-object results** - Returns results for each object individually
247
+
248
+ ### File Format
249
+ Files are parsed to extract `(obj_type, obj_name)`:
250
+ - `zcl_my_class.clas.abap` → CLAS, ZCL_MY_CLASS
251
+ - `zc_my_view.ddls.asddls` → DDLS, ZC_MY_VIEW
252
+
158
253
  ## Unit Command
159
254
 
160
255
  ### Description
@@ -230,6 +325,260 @@ The unit command uses `CL_SUT_AUNIT_RUNNER` to execute AUnit tests:
230
325
  - `tab_objects` - Get detailed results with nested structure:
231
326
  - `TAB_TESTCLASSES` → `TAB_METHODS` → `STR_ERROR` → `STR_ERROR_CORE`
232
327
 
328
+ ## Tree Command
329
+
330
+ ### Description
331
+ Display the package hierarchy tree from an ABAP system, showing parent packages, sub-packages, and object counts.
332
+
333
+ ### Usage
334
+ ```bash
335
+ # Basic usage
336
+ abapgit-agent tree --package $MY_PACKAGE
337
+
338
+ # With object breakdown by type
339
+ abapgit-agent tree --package $MY_PACKAGE --include-objects
340
+
341
+ # Limit depth (default: 3, max: 10)
342
+ abapgit-agent tree --package $MY_PACKAGE --depth 2
343
+
344
+ # JSON output for scripting
345
+ abapgit-agent tree --package $MY_PACKAGE --json
346
+ ```
347
+
348
+ ### Parameters
349
+
350
+ | Parameter | Required | Description |
351
+ |-----------|----------|-------------|
352
+ | `--package` | Yes | ABAP package name (e.g., `$ZMY_PACKAGE`, `ZMY_PACKAGE`) |
353
+ | `--depth` | No | Maximum depth to traverse (default: 3, max: 10) |
354
+ | `--include-objects` | No | Include object counts breakdown by type |
355
+ | `--json` | No | Output raw JSON only (for scripting) |
356
+
357
+ ### Output
358
+
359
+ **Human-readable with AI metadata:**
360
+ ```
361
+ 🌳 Package Tree: $ZMAIN_PACKAGE
362
+
363
+ 📦 $ZMAIN_PACKAGE (Main Package)
364
+ ├─ 📦 $ZMAIN_SUB1 (Sub Package 1)
365
+ │ ├─ 📦 $ZMAIN_SUB1_A (Sub Package 1A)
366
+ │ └─ 📦 $ZMAIN_SUB1_B (Sub Package 1B)
367
+ └─ 📦 $ZMAIN_SUB2 (Sub Package 2)
368
+
369
+ 📊 Summary
370
+ PACKAGES: 4
371
+ OBJECTS: 127
372
+
373
+ <!-- AI_METADATA_START -->
374
+ {"package":"$ZMAIN_PACKAGE","parent":"$ZSAP_BASE","total_packages":4,"total_objects":127}
375
+ <!-- AI_METADATA_END -->
376
+ ```
377
+
378
+ **With object breakdown:**
379
+ ```
380
+ 📊 Summary
381
+ PACKAGES: 4
382
+ OBJECTS: 127
383
+ TYPES: CLAS=10 INTF=2 PROG=11 FUGR=1 TABL=3
384
+ ```
385
+
386
+ ### JSON Output
387
+ ```json
388
+ {
389
+ "SUCCESS": true,
390
+ "COMMAND": "TREE",
391
+ "PACKAGE": "$ZMAIN_PACKAGE",
392
+ "PARENT_PACKAGE": "$ZSAP_BASE",
393
+ "NODES": [
394
+ {
395
+ "PACKAGE": "$ZMAIN_PACKAGE",
396
+ "PARENT": "",
397
+ "DESCRIPTION": "$ZMAIN_PACKAGE",
398
+ "DEPTH": 0,
399
+ "OBJECT_COUNT": 11
400
+ }
401
+ ],
402
+ "TOTAL_PACKAGES": 4,
403
+ "TOTAL_OBJECTS": 127,
404
+ "OBJECTS": [
405
+ { "OBJECT": "CLAS", "COUNT": 10 },
406
+ { "OBJECT": "INTF", "COUNT": 2 },
407
+ { "OBJECT": "PROG", "COUNT": 11 },
408
+ { "OBJECT": "FUGR", "COUNT": 1 },
409
+ { "OBJECT": "TABL", "COUNT": 3 }
410
+ ],
411
+ "ERROR": ""
412
+ }
413
+ ```
414
+
415
+ ### Error Handling
416
+
417
+ | Error | Message |
418
+ |-------|---------|
419
+ | Package not found | `Package <name> does not exist in the system` |
420
+ | Invalid package name | `Invalid package name: <name>` |
421
+ | Access denied | `Access denied to package information` |
422
+ | Depth too large | `Depth value too large (max: 10)` |
423
+
424
+ ## View Command
425
+
426
+ ### Description
427
+ View ABAP object definitions directly from the ABAP system without pulling from git. **This is the PRIMARY way to explore unfamiliar ABAP objects** - tables, structures, classes, interfaces, and data elements.
428
+
429
+ **When you encounter an unknown table or structure, use this command instead of guessing!**
430
+
431
+ ### Explore Unknown Tables/Structures
432
+
433
+ ```bash
434
+ # View table fields - see all columns, keys, and descriptions
435
+ abapgit-agent view --objects ZMY_TABLE --type TABL
436
+
437
+ # View structure components
438
+ abapgit-agent view --objects ZMY_STRUCT --type STRU
439
+
440
+ # View data element type information
441
+ abapgit-agent view --objects ZMY_DTEL --type DTEL
442
+
443
+ # View CDS view definition
444
+ abapgit-agent view --objects ZC_MY_CDS_VIEW --type DDLS
445
+
446
+ # View class interface and methods
447
+ abapgit-agent view --objects ZCL_UNKNOWN_CLASS
448
+
449
+ # View interface definition
450
+ abapgit-agent view --objects ZIF_UNKNOWN_INTERFACE
451
+ ```
452
+
453
+ ### When to Use View Command
454
+
455
+ AI assistant SHOULD call `view` command when:
456
+
457
+ - User asks to "check", "look up", or "explore" an unfamiliar object
458
+ - Working with a table/structure and you don't know the field names/types
459
+ - Calling a class/interface method and you don't know the parameters
460
+ - User provides an object name that may not exist in the git repository
461
+ - You need to verify an object exists before using it
462
+
463
+ **Example workflow:**
464
+ ```
465
+ User: "Check if SFLIGHT table has a PRICE field"
466
+
467
+ Assistant: <calls `abapgit-agent view --objects SFLIGHT --type TABL`>
468
+ → Shows table structure with all fields including PRICE
469
+ ```
470
+
471
+ ### Usage
472
+ ```bash
473
+ # View single object (auto-detect type from TADIR)
474
+ abapgit-agent view --objects ZCL_MY_CLASS
475
+ abapgit-agent view --objects ZIF_MY_INTERFACE
476
+
477
+ # View with explicit type
478
+ abapgit-agent view --objects ZCL_MY_CLASS --type CLAS
479
+ abapgit-agent view --objects ZIF_MY_INT --type INTF
480
+ abapgit-agent view --objects ZMY_TABLE --type TABL
481
+
482
+ # View multiple objects
483
+ abapgit-agent view --objects ZCL_CLASS1,ZCL_CLASS2,ZIF_INTERFACE1
484
+
485
+ # JSON output (for scripting/AI processing)
486
+ abapgit-agent view --objects ZCL_MY_CLASS --json
487
+ ```
488
+
489
+ ### Parameters
490
+
491
+ | Parameter | Required | Description |
492
+ |-----------|----------|-------------|
493
+ | `--objects` | Yes | Comma-separated list of object names (e.g., `ZCL_MY_CLASS,ZIF_MY_INTERFACE`) |
494
+ | `--type` | No | Object type (CLAS, INTF, TABL, STRU, DTEL, TTYP, DDLS). Auto-detected from TADIR if not specified |
495
+ | `--json` | No | Output raw JSON only (for scripting) |
496
+
497
+ ### Supported Object Types
498
+
499
+ | Type | Description |
500
+ |------|-------------|
501
+ | CLAS | Class |
502
+ | INTF | Interface |
503
+ | TABL | Table |
504
+ | STRU | Structure |
505
+ | DTEL | Data Element |
506
+ | TTYP | Table Type |
507
+ | DDLS | CDS View/Entity |
508
+
509
+ **Note:** Object type is automatically detected from TADIR. Use `--type` only when you know the type and want to override auto-detection.
510
+
511
+ ### Output
512
+
513
+ **Human-readable:**
514
+ ```
515
+ 📖 ZCL_MY_CLASS (Class)
516
+ Class ZCL_MY_CLASS in $PACKAGE
517
+
518
+ CLASS zcl_my_class DEFINITION PUBLIC.
519
+
520
+ PUBLIC SECTION.
521
+ INTERFACES: zif_my_interface.
522
+ METHODS: constructor,
523
+ get_value RETURNING VALUE(rv_result) TYPE string.
524
+ ENDCLASS.
525
+ ```
526
+
527
+ **JSON Output:**
528
+ ```json
529
+ {
530
+ "success": true,
531
+ "command": "VIEW",
532
+ "message": "Retrieved object(s)",
533
+ "objects": [
534
+ {
535
+ "name": "ZCL_MY_CLASS",
536
+ "type": "CLAS",
537
+ "type_text": "Class",
538
+ "description": "Class ZCL_MY_CLASS in $PACKAGE",
539
+ "source": "CLASS zcl_my_class DEFINITION PUBLIC...",
540
+ "not_found": false
541
+ }
542
+ ],
543
+ "summary": { "total": 1 }
544
+ }
545
+ ```
546
+
547
+ **Table Type Output:**
548
+ ```
549
+ 📖 ZMY_TTYP (Table Type)
550
+ Table Type ZMY_TTYP in $PACKAGE
551
+
552
+ Line Type: ZMY_STRUCTURE
553
+ Access Mode: STANDARD
554
+ Key Definition: WITH KEY
555
+ ```
556
+
557
+ **CDS View Output:**
558
+ ```
559
+ 📖 ZC_MY_CDS_VIEW (CDS View)
560
+ CDS View ZC_MY_CDS_VIEW in $PACKAGE
561
+
562
+ @AbapCatalog.sqlViewName: 'ZCMYVIEW'
563
+ @AbapCatalog.compiler.compareFilter: true
564
+ @AccessControl.authorizationCheck: #NOT_REQUIRED
565
+ @EndUserText.label: 'My CDS View'
566
+ define view ZC_MY_CDS_VIEW as select from tdevc
567
+ {
568
+ key devclass as Devclass,
569
+ parentcl as ParentPackage,
570
+ ctext as Description
571
+ }
572
+ where devclass not like '$%'
573
+ ```
574
+
575
+ ### Error Handling
576
+
577
+ | Error | Message |
578
+ |-------|---------|
579
+ | Object not found | `Object <name> not found` |
580
+ | Invalid object type | `Unsupported object type: <type>` |
581
+
233
582
  ## Status Check
234
583
 
235
584
  ### Description
@@ -295,6 +644,37 @@ export GIT_PASSWORD="git-token"
295
644
 
296
645
  ## Development Workflow
297
646
 
647
+ ### Exploring Unknown ABAP Objects
648
+
649
+ **Check package structure:**
650
+ ```bash
651
+ abapgit-agent tree --package $MY_PACKAGE
652
+ ```
653
+
654
+ **Before working with an unfamiliar table, structure, class, or interface:**
655
+
656
+ ```bash
657
+ # Don't guess! Use view command to explore:
658
+
659
+ # Check table structure
660
+ abapgit-agent view --objects ZMY_TABLE --type TABL
661
+
662
+ # Check structure components
663
+ abapgit-agent view --objects ZMY_STRUCT --type STRU
664
+
665
+ # Check class methods and interface
666
+ abapgit-agent view --objects ZCL_UNKNOWN_CLASS
667
+
668
+ # Check interface definition
669
+ abapgit-agent view --objects ZIF_UNKNOWN_INTERFACE
670
+
671
+ # Check data element type
672
+ abapgit-agent view --objects ZMY_DTEL --type DTEL
673
+
674
+ # JSON output for programmatic use
675
+ abapgit-agent view --objects ZMY_TABLE --type TABL --json
676
+ ```
677
+
298
678
  ### CLI Tool Development
299
679
 
300
680
  1. Make changes to CLI code (JavaScript)
@@ -325,6 +705,10 @@ For quick ABAP code changes:
325
705
  4. Verify activation results
326
706
  5. Repeat until done
327
707
 
708
+ ## Creating CDS Views
709
+
710
+ For guidelines on creating CDS views and CDS view entities, see **ABAP Code Generation** below.
711
+
328
712
  ## For ABAP Code Generation
329
713
 
330
714
  **NOTE**: This file is for developing the CLI tool itself. For guidelines on **generating ABAP code** for abapGit repositories, see `/abap/CLAUDE.md`. Copy that file to your ABAP repository root when setting up new projects.
package/README.md CHANGED
@@ -25,7 +25,7 @@ git clone https://github.com/user/abap-project.git
25
25
  cd abap-project
26
26
 
27
27
  # 3. Initialize configuration
28
- abapgit-agent init --folder /abap --package ZMY_PACKAGE
28
+ abapgit-agent init --folder /abap/ --package ZMY_PACKAGE
29
29
 
30
30
  # 4. Edit .abapGitAgent with credentials
31
31
 
@@ -47,7 +47,7 @@ See [Creating New ABAP Projects](INSTALL.md#creating-new-abap-projects) to set u
47
47
 
48
48
  ```bash
49
49
  # Initialize local configuration for existing git repo
50
- abapgit-agent init --folder /abap --package ZMY_PACKAGE
50
+ abapgit-agent init --folder /abap/ --package ZMY_PACKAGE
51
51
 
52
52
  # Create online repository in ABAP
53
53
  abapgit-agent create
@@ -94,6 +94,18 @@ abapgit-agent unit --files abap/zcl_my_test.clas.testclasses.abap
94
94
  abapgit-agent unit --files abap/zcl_test1.clas.testclasses.abap,abap/zcl_test2.clas.testclasses.abap
95
95
  ```
96
96
 
97
+ ### Explore Commands
98
+
99
+ ```bash
100
+ # Display package hierarchy tree
101
+ abapgit-agent tree --package $MY_PACKAGE
102
+
103
+ # View object definitions from ABAP system (classes, interfaces, tables, data elements)
104
+ abapgit-agent view --objects ZCL_MY_CLASS
105
+ abapgit-agent view --objects SFLIGHT --type TABL
106
+ abapgit-agent view --objects S_CARR_ID --type DTEL
107
+ ```
108
+
97
109
  ### Utility Commands
98
110
 
99
111
  ```bash
@@ -129,6 +141,8 @@ npm run pull -- --url <git-url> --branch main
129
141
  | pull Command | [docs/pull-command.md](docs/pull-command.md) |
130
142
  | inspect Command | [docs/inspect-command.md](docs/inspect-command.md) |
131
143
  | unit Command | [docs/unit-command.md](docs/unit-command.md) |
144
+ | tree Command | [docs/tree-command.md](docs/tree-command.md) |
145
+ | view Command | [docs/view-command.md](docs/view-command.md) |
132
146
  | REST API Reference | [API.md](API.md) |
133
147
  | Error Handling | [ERROR_HANDLING.md](ERROR_HANDLING.md) |
134
148
  | ABAP Coding Guidelines | [abap/CLAUDE.md](abap/CLAUDE.md) |
package/RELEASE_NOTES.md CHANGED
@@ -1,14 +1,99 @@
1
- ## What's New
1
+ # Release Notes
2
+
3
+ ## v1.3.0
4
+
5
+ ### New Features
6
+
7
+ - **view Command**: Now supports TTYP (Table Type) and DDLS (CDS View)
8
+
9
+ ### Bug Fixes
10
+
11
+ - Fixed CDS view source display in view command
12
+ - Fixed interface exception handling
13
+
14
+ ---
15
+
16
+ ## v1.2.0
17
+
18
+ ### New Features
19
+
20
+ #### tree Command
21
+ Display package hierarchy tree from ABAP system:
22
+ ```bash
23
+ # Basic usage
24
+ abapgit-agent tree --package $MY_PACKAGE
25
+
26
+ # With object counts
27
+ abapgit-agent tree --package $MY_PACKAGE --include-objects
28
+
29
+ # Limit depth
30
+ abapgit-agent tree --package $MY_PACKAGE --depth 2
31
+
32
+ # JSON output for scripting
33
+ abapgit-agent tree --package $MY_PACKAGE --json
34
+ ```
35
+
36
+ #### view Command
37
+ View ABAP object definitions directly from ABAP system without pulling from git:
38
+
39
+ ```bash
40
+ # View class definition
41
+ abapgit-agent view --objects ZCL_MY_CLASS
42
+
43
+ # View interface
44
+ abapgit-agent view --objects ZIF_MY_INTERFACE
45
+
46
+ # View table structure
47
+ abapgit-agent view --objects SFLIGHT --type TABL
48
+
49
+ # View data element
50
+ abapgit-agent view --objects S_CARR_ID --type DTEL
51
+
52
+ # View multiple objects
53
+ abapgit-agent view --objects ZCL_CLASS1,ZIF_INTERFACE1,ZMY_TABLE
54
+
55
+ # Auto-detect type from TADIR
56
+ abapgit-agent view --objects SFLIGHT
57
+
58
+ # JSON output for scripting
59
+ abapgit-agent view --objects ZCL_MY_CLASS --json
60
+ ```
61
+
62
+ **Supported Object Types:**
63
+ - CLAS - Global ABAP class
64
+ - INTF - Global interface
65
+ - TABL - Database table
66
+ - STRU - Structure type
67
+ - DTEL - Data element
68
+
69
+ ### Improvements
70
+
71
+ - **Auto-detection**: view command now queries TADIR to automatically detect object types (no need to specify `--type` for most objects)
72
+ - **Lowercase support**: Object names and types are case-insensitive
73
+ - **Error handling**: Non-existent objects now display clear error messages
74
+ - **Cleaner output**: Removed AI metadata block from tree command output
75
+
76
+ ### Bug Fixes
77
+
78
+ - Fixed non-existent object detection in view command
79
+ - Fixed source code display for class/interface definitions
80
+ - Fixed table and structure field display formatting
81
+ - Fixed data element output with domain information
82
+
83
+ ### Documentation
84
+
85
+ - Added comprehensive docs/tree-command.md
86
+ - Added comprehensive docs/view-command.md
87
+ - Updated README.md with tree and view command examples
88
+ - Updated CLAUDE.md with view command usage for exploring ABAP objects
89
+
90
+ ---
91
+
92
+ ## v1.1.6
2
93
 
3
94
  - Added `create` command to create online repository in ABAP system
4
95
  - Added `import` command to import objects from ABAP package to git
5
96
  - Added unit tests for create and import commands
6
97
  - Added GitHub Actions workflow for automated npm releases
7
- - Improved .gitignore handling in init command (adds .abapGitAgent and cookies file)
98
+ - Improved .gitignore handling in init command
8
99
  - Updated commands documentation
9
-
10
- ## Installation
11
-
12
- ```bash
13
- npm install -g abapgit-agent
14
- ```