@cspeach/cli 1.1.48 → 1.1.49
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/dist/agent/level.js +1 -1
- package/dist/agent/loop.js +7 -6
- package/dist/agent/sap-connection-adapter.js +2 -0
- package/dist/agent/system-prompt.js +2 -2
- package/dist/agent/tool-dispatch.js +13 -1
- package/dist/approvals/op-labels.js +49 -10
- package/dist/approvals/render.js +14 -23
- package/dist/approvals/risk-floor.js +196 -19
- package/dist/approvals/visible-changes.js +35 -0
- package/dist/commands/help.js +1 -1
- package/dist/commands/project.js +301 -0
- package/dist/commands/team-plan.js +16 -6
- package/dist/commands/team.js +295 -68
- package/dist/doctor/checks/zcspeach.js +96 -0
- package/dist/journey/chain.js +489 -61
- package/dist/journey/clean-core.js +61 -36
- package/dist/journey/flow.js +75 -2
- package/dist/journey/people.js +37 -0
- package/dist/journey/rebuild.js +7 -6
- package/dist/journey/run.js +129 -42
- package/dist/journey/trigger.js +16 -10
- package/dist/one-shot.js +1 -1
- package/dist/project-context/render.js +7 -0
- package/dist/projects/clean-core-confirm.js +166 -44
- package/dist/projects/email-template.js +56 -0
- package/dist/projects/extract-cca.js +8 -7
- package/dist/projects/index.js +0 -1
- package/dist/projects/merge-cca.js +0 -19
- package/dist/projects/merge-upgrade.js +2 -2
- package/dist/projects/project-folder.js +2 -1
- package/dist/projects/save-command.js +51 -14
- package/dist/register/decision-rules.js +2 -1
- package/dist/register/export-files.js +18 -0
- package/dist/register/picture.js +3 -3
- package/dist/register/project-transport.js +125 -0
- package/dist/register/records.js +25 -13
- package/dist/register/rules-edit.js +5 -0
- package/dist/register/status-file/progress-chart.js +17 -6
- package/dist/register/status-file/register-map.js +8 -5
- package/dist/register/status-file/register-model.js +55 -36
- package/dist/register/status-file/register-parts.js +97 -82
- package/dist/register/status-file/register-status-file.js +16 -7
- package/dist/register/status-file/report-model.js +293 -205
- package/dist/register/status-file/team-css.js +1 -1
- package/dist/register/status-html.js +11 -4
- package/dist/register/store.js +2 -2
- package/dist/register/workbooks.js +24 -13
- package/dist/renderer/footer-line.js +10 -2
- package/dist/renderer/tool-labels.js +2 -2
- package/dist/repl/builtin-commands.js +1 -1
- package/dist/repl/continue-skill.js +5 -0
- package/dist/repl/level-command.js +6 -15
- package/dist/repl.js +21 -8
- package/dist/router/router-core.js +5 -3
- package/dist/skill-catalog.js +4 -7
- package/dist/tools/_team-work-path.js +53 -0
- package/dist/tools/approval.js +97 -19
- package/dist/tools/filesystem/file-edit.js +8 -1
- package/dist/tools/filesystem/file-write.js +8 -1
- package/dist/tools/local-files.js +31 -0
- package/dist/tools/project/_merge-shared.js +2 -2
- package/dist/tools/project/_team-tool-shared.js +5 -0
- package/dist/tools/project/cca_merge.js +1 -11
- package/dist/tools/project/rules_propose.js +2 -1
- package/dist/tools/project/team_findings.js +81 -28
- package/dist/tools/project/team_lane_move.js +127 -0
- package/dist/tools/project/upgrade_merge_progress.js +8 -4
- package/dist/tools/subagent/schedule_create.js +131 -0
- package/dist/tools/text-elements/tools.js +7 -1
- package/dist/tools/tool-loading.js +1 -1
- package/dist/tools/update-method-intercept.js +18 -1
- package/dist/tools/write-pipeline.js +19 -5
- package/dist/ui/approval-modal.js +6 -3
- package/dist/ui/error-emitter.js +21 -0
- package/dist/ui/footer-line.js +19 -1
- package/dist/ui/header.js +41 -0
- package/dist/ui/ink-classifier-route.js +19 -0
- package/dist/ui/rich-error-box.js +9 -0
- package/dist/ui/sidebar.js +12 -0
- package/dist/ui/status-emitter.js +19 -0
- package/dist/ui/status-line.js +62 -0
- package/dist/ui/status-row.js +38 -0
- package/dist/ui/todo-panel.js +85 -0
- package/dist/ui/widgets/ask-form.js +250 -0
- package/dist/ui/widgets/ask-question-modal.js +178 -0
- package/fiori/zlas-inspection-lr/package.json +26 -0
- package/fiori/zlas-inspection-lr/ui5-local.yaml +45 -0
- package/fiori/zlas-inspection-lr/ui5.yaml +41 -0
- package/fiori/zlas-inspection-lr/webapp/Component.js +12 -0
- package/fiori/zlas-inspection-lr/webapp/i18n/i18n.properties +9 -0
- package/fiori/zlas-inspection-lr/webapp/index.html +35 -0
- package/fiori/zlas-inspection-lr/webapp/manifest.json +145 -0
- package/live-check-2026-10-17-1343.txt +41 -0
- package/package.json +121 -121
- package/test-harness/fe-draft/app.ts +0 -188
- package/test-harness/fe-draft/fe-draft.e2e.test.ts +0 -461
- package/test-harness/fe-draft/manifest-enhancer.unit.test.ts +0 -51
- package/test-harness/fe-draft/routes.ts +0 -224
- package/test-harness/fe-draft/routes.unit.test.ts +0 -45
- package/test-harness/fe-draft/server.ts +0 -225
- package/test-harness/fe-draft/variants.ts +0 -196
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://sap.github.io/ui5-tooling/schema/ui5.yaml.json
|
|
2
|
+
|
|
3
|
+
specVersion: "4.0"
|
|
4
|
+
metadata:
|
|
5
|
+
name: zlas.inspectionlog
|
|
6
|
+
type: application
|
|
7
|
+
framework:
|
|
8
|
+
name: SAPUI5
|
|
9
|
+
version: 1.120.0
|
|
10
|
+
libraries:
|
|
11
|
+
- name: sap.m
|
|
12
|
+
- name: sap.ui.core
|
|
13
|
+
- name: sap.fe.templates
|
|
14
|
+
- name: sap.ushell
|
|
15
|
+
- name: themelib_sap_fiori_3
|
|
16
|
+
server:
|
|
17
|
+
customMiddleware:
|
|
18
|
+
- name: fiori-tools-appreload
|
|
19
|
+
afterMiddleware: compression
|
|
20
|
+
configuration:
|
|
21
|
+
port: 35729
|
|
22
|
+
path: webapp
|
|
23
|
+
delay: 300
|
|
24
|
+
- name: fiori-tools-preview
|
|
25
|
+
afterMiddleware: fiori-tools-appreload
|
|
26
|
+
configuration:
|
|
27
|
+
flp:
|
|
28
|
+
theme: sap_fiori_3
|
|
29
|
+
path: test/flpSandbox.html
|
|
30
|
+
intent:
|
|
31
|
+
object: zlasinspectionlog
|
|
32
|
+
action: tile
|
|
33
|
+
- name: fiori-tools-proxy
|
|
34
|
+
afterMiddleware: compression
|
|
35
|
+
configuration:
|
|
36
|
+
ignoreCertErrors: false # If set to true, certificate errors will be ignored. E.g. self-signed certificates will be accepted
|
|
37
|
+
backend:
|
|
38
|
+
- path: /sap
|
|
39
|
+
url: https://172.16.24.98:44300
|
|
40
|
+
client: '100'
|
|
41
|
+
builder:
|
|
42
|
+
resources:
|
|
43
|
+
excludes:
|
|
44
|
+
- /test/**
|
|
45
|
+
- /localService/**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://sap.github.io/ui5-tooling/schema/ui5.yaml.json
|
|
2
|
+
|
|
3
|
+
specVersion: "4.0"
|
|
4
|
+
metadata:
|
|
5
|
+
name: zlas.inspectionlog
|
|
6
|
+
type: application
|
|
7
|
+
server:
|
|
8
|
+
customMiddleware:
|
|
9
|
+
- name: fiori-tools-proxy
|
|
10
|
+
afterMiddleware: compression
|
|
11
|
+
configuration:
|
|
12
|
+
ignoreCertErrors: true # Dev-only: accept the backend's self-signed certificate
|
|
13
|
+
ui5:
|
|
14
|
+
path:
|
|
15
|
+
- /resources
|
|
16
|
+
- /test-resources
|
|
17
|
+
url: https://ui5.sap.com
|
|
18
|
+
backend:
|
|
19
|
+
- path: /sap
|
|
20
|
+
url: https://172.16.24.98:44300
|
|
21
|
+
client: '100'
|
|
22
|
+
- name: fiori-tools-appreload
|
|
23
|
+
afterMiddleware: compression
|
|
24
|
+
configuration:
|
|
25
|
+
port: 35729
|
|
26
|
+
path: webapp
|
|
27
|
+
delay: 300
|
|
28
|
+
- name: fiori-tools-preview
|
|
29
|
+
afterMiddleware: fiori-tools-appreload
|
|
30
|
+
configuration:
|
|
31
|
+
flp:
|
|
32
|
+
theme: sap_fiori_3
|
|
33
|
+
path: test/flpSandbox.html
|
|
34
|
+
intent:
|
|
35
|
+
object: zlasinspectionlog
|
|
36
|
+
action: tile
|
|
37
|
+
builder:
|
|
38
|
+
resources:
|
|
39
|
+
excludes:
|
|
40
|
+
- /test/**
|
|
41
|
+
- /localService/**
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
7
|
+
<title>Equipment Inspection Logs</title>
|
|
8
|
+
<style>
|
|
9
|
+
html, body, body > div, #container, #container-uiarea {
|
|
10
|
+
height: 100%;
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
13
|
+
<script
|
|
14
|
+
id="sap-ui-bootstrap"
|
|
15
|
+
src="resources/sap-ui-core.js"
|
|
16
|
+
data-sap-ui-theme="sap_fiori_3"
|
|
17
|
+
data-sap-ui-resource-roots='{
|
|
18
|
+
"zlas.inspectionlog": "./"
|
|
19
|
+
}'
|
|
20
|
+
data-sap-ui-on-init="module:sap/ui/core/ComponentSupport"
|
|
21
|
+
data-sap-ui-compat-version="edge"
|
|
22
|
+
data-sap-ui-async="true"
|
|
23
|
+
data-sap-ui-frame-options="trusted"
|
|
24
|
+
></script>
|
|
25
|
+
</head>
|
|
26
|
+
<body class="sapUiBody sapUiSizeCompact" id="content">
|
|
27
|
+
<div
|
|
28
|
+
data-sap-ui-component
|
|
29
|
+
data-name="zlas.inspectionlog"
|
|
30
|
+
data-id="container"
|
|
31
|
+
data-settings='{"id" : "zlas.inspectionlog"}'
|
|
32
|
+
data-handle-validation="true"
|
|
33
|
+
></div>
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_version": "1.60.0",
|
|
3
|
+
"sap.app": {
|
|
4
|
+
"id": "zlas.inspectionlog",
|
|
5
|
+
"type": "application",
|
|
6
|
+
"i18n": "i18n/i18n.properties",
|
|
7
|
+
"applicationVersion": {
|
|
8
|
+
"version": "0.0.1"
|
|
9
|
+
},
|
|
10
|
+
"title": "{{appTitle}}",
|
|
11
|
+
"description": "{{appDescription}}",
|
|
12
|
+
"resources": "resources.json",
|
|
13
|
+
"sourceTemplate": {
|
|
14
|
+
"id": "@sap-ux/fiori-elements-writer:lrop",
|
|
15
|
+
"version": "3.0.39"
|
|
16
|
+
},
|
|
17
|
+
"dataSources": {
|
|
18
|
+
"mainService": {
|
|
19
|
+
"uri": "/sap/opu/odata4/sap/zui_las_inspectionlog_o4/srvd/sap/zui_las_inspectionlog_o4/0001/",
|
|
20
|
+
"type": "OData",
|
|
21
|
+
"settings": {
|
|
22
|
+
"annotations": [],
|
|
23
|
+
"odataVersion": "4.0"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"sap.ui": {
|
|
29
|
+
"technology": "UI5",
|
|
30
|
+
"icons": {
|
|
31
|
+
"icon": "",
|
|
32
|
+
"favIcon": "",
|
|
33
|
+
"phone": "",
|
|
34
|
+
"phone@2": "",
|
|
35
|
+
"tablet": "",
|
|
36
|
+
"tablet@2": ""
|
|
37
|
+
},
|
|
38
|
+
"deviceTypes": {
|
|
39
|
+
"desktop": true,
|
|
40
|
+
"tablet": true,
|
|
41
|
+
"phone": true
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"sap.ui5": {
|
|
45
|
+
"flexEnabled": true,
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"minUI5Version": "1.120.0",
|
|
48
|
+
"libs": {
|
|
49
|
+
"sap.m": {},
|
|
50
|
+
"sap.ui.core": {},
|
|
51
|
+
"sap.fe.templates": {}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"contentDensities": {
|
|
55
|
+
"compact": true,
|
|
56
|
+
"cozy": true
|
|
57
|
+
},
|
|
58
|
+
"models": {
|
|
59
|
+
"i18n": {
|
|
60
|
+
"type": "sap.ui.model.resource.ResourceModel",
|
|
61
|
+
"settings": {
|
|
62
|
+
"bundleName": "zlas.inspectionlog.i18n.i18n"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"": {
|
|
66
|
+
"dataSource": "mainService",
|
|
67
|
+
"preload": true,
|
|
68
|
+
"settings": {
|
|
69
|
+
"operationMode": "Server",
|
|
70
|
+
"autoExpandSelect": true,
|
|
71
|
+
"earlyRequests": true
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"@i18n": {
|
|
75
|
+
"type": "sap.ui.model.resource.ResourceModel",
|
|
76
|
+
"uri": "i18n/i18n.properties"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"resources": {
|
|
80
|
+
"css": []
|
|
81
|
+
},
|
|
82
|
+
"routing": {
|
|
83
|
+
"config": {},
|
|
84
|
+
"routes": [
|
|
85
|
+
{
|
|
86
|
+
"pattern": ":?query:",
|
|
87
|
+
"name": "InspectionLogList",
|
|
88
|
+
"target": "InspectionLogList"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"pattern": "InspectionLog({key}):?query:",
|
|
92
|
+
"name": "InspectionLogObjectPage",
|
|
93
|
+
"target": "InspectionLogObjectPage"
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"targets": {
|
|
97
|
+
"InspectionLogList": {
|
|
98
|
+
"type": "Component",
|
|
99
|
+
"id": "InspectionLogList",
|
|
100
|
+
"name": "sap.fe.templates.ListReport",
|
|
101
|
+
"options": {
|
|
102
|
+
"settings": {
|
|
103
|
+
"contextPath": "/InspectionLog",
|
|
104
|
+
"variantManagement": "Page",
|
|
105
|
+
"navigation": {
|
|
106
|
+
"InspectionLog": {
|
|
107
|
+
"detail": {
|
|
108
|
+
"route": "InspectionLogObjectPage"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"controlConfiguration": {
|
|
113
|
+
"@com.sap.vocabularies.UI.v1.LineItem": {
|
|
114
|
+
"tableSettings": {
|
|
115
|
+
"type": "ResponsiveTable"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"InspectionLogObjectPage": {
|
|
123
|
+
"type": "Component",
|
|
124
|
+
"id": "InspectionLogObjectPage",
|
|
125
|
+
"name": "sap.fe.templates.ObjectPage",
|
|
126
|
+
"options": {
|
|
127
|
+
"settings": {
|
|
128
|
+
"editableHeaderContent": false,
|
|
129
|
+
"contextPath": "/InspectionLog"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"sap.fiori": {
|
|
137
|
+
"registrationIds": [],
|
|
138
|
+
"archeType": "transactional"
|
|
139
|
+
},
|
|
140
|
+
"sap.fe": {
|
|
141
|
+
"app": {
|
|
142
|
+
"enableLazyLoading": true
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
CSPeach live check: system S4H, package ZTEST_LAS, run 2BUS
|
|
2
|
+
Transport S4HK903771 (given with --transport)
|
|
3
|
+
|
|
4
|
+
PASS CLI: sap_run and sap_transport_read (pipeline; D3, D18 refusals, one-shot run approval, dump window, spill; never a release) 90.6 s
|
|
5
|
+
PASS temp home 0.0 s alias S4H copied; write_mode approval-gated; safety cards off
|
|
6
|
+
covers: approval id + claims, Rule 9 transport, Rule 7 snapshot, WAL, Rule 10 verify, chain; not: Rule 8 (dispatchTool), the cards
|
|
7
|
+
PASS card input 0.0 s risk high (code_run); this runs code on the SAP system
|
|
8
|
+
PASS sap_create_object + sap_set_source CLAS 7.1 s ZCL_ZCSPLC2BUS_CR created and written; activated by the write and verified
|
|
9
|
+
info: object locked in S4HK903771 — writing under owning transport
|
|
10
|
+
info: snapshot ✓ CLAS ZCL_ZCSPLC2BUS_CR 2026-10-17T17-42-31-537Z
|
|
11
|
+
① snapshot ✓ ② written ✓ ③ syntax ✓ ④ activate pending
|
|
12
|
+
audit: 2026-10-17T17:42:34.691Z | setSource | CLAS | ZCL_ZCSPLC2BUS_CR | success | 3146ms
|
|
13
|
+
audit: 2026-10-17T17:42:34.976Z | setSource | CLAS | ZCL_ZCSPLC2BUS_CR | success | 4539ms
|
|
14
|
+
PASS sap_run standard class refused 0.0 s run_refused before any request: CSPeach runs only your own classes and programs (names starting with Z or Y). CL_ABAP_UNIT_ASSERT is not one of them.
|
|
15
|
+
PASS sap_lock 0.3 s ZCL_ZCSPLC2BUS_CR locked through sap_lock (a manual lock is held)
|
|
16
|
+
PASS sap_run under a manual lock 0.0 s manual_lock_held before any request: A lock you took with sap_lock is still held. Unlock it (sap_unlock) first, then ask for the run again.
|
|
17
|
+
PASS sap_unlock 0.7 s ZCL_ZCSPLC2BUS_CR unlocked; no manual lock held
|
|
18
|
+
PASS sap_run CLAS 0.3 s the same approval id ran it once: {"ran":true,"type":"CLAS","name":"ZCL_ZCSPLC2BUS_CR","lines":9,"chars":107,"elapsed_ms":287,"session_ended":false}
|
|
19
|
+
info: run CLAS ZCL_ZCSPLC2BUS_CR · ran · 287 ms
|
|
20
|
+
PASS sap_run again with the same id 0.0 s APPROVAL_INVALID nonce_spent; no request
|
|
21
|
+
PASS sap_run PROG 4.2 s ran: {"ran":true,"type":"PROG","name":"ZCSPLC2BUS_CRP","lines":6,"chars":255,"elapsed_ms":291,"session_ended":false}
|
|
22
|
+
PASS sap_run CLAS dump 4.7 s run_dumped: "Division by zero", dump_window 20261018034313–20261018034713; next_step: sap_short_dump with fromDate and toDate = dump_window (SAP system time), then operation detail on the newest du...
|
|
23
|
+
PASS sap_short_dump in the dump window 1.5 s listed: ZCL_ZCSPLC2BUS_CRX============CP (20261018034513vhcals4hci_S4H_00%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20S.LAEEQ%20%20%20%20%20100%20%20%20%20%20%20%2012); 1 dump(s) in the window
|
|
24
|
+
PASS sap_run CLAS long output 17.9 s the content carries the pointer line; the spill file holds 20001 lines (the facts line and 20 000 output lines); {"ran":true,"type":"CLAS","name":"ZCL_ZCSPLC2BUS_CRB","lines":20001,"chars":1328895,...
|
|
25
|
+
PASS sap_transport_read request 12.9 s S4HK903771 status D, 1 task(s), object_count 691, can_release true
|
|
26
|
+
PASS sap_transport_read task 7.2 s S4HK903772: kind task of S4HK903771; note: S4HK903772 is a task of S4HK903771.
|
|
27
|
+
PASS release card input (never used) 13.2 s risk high (transport_release); no approval minted, never sent
|
|
28
|
+
Request S4HK903771 "CSPeach live check 2026-10-14" · owner S.LAEEQ · target CL5
|
|
29
|
+
1 task: S4HK903772 · 691 objects
|
|
30
|
+
Cannot be undone. Once released, the request can move to the other systems on the transport route.
|
|
31
|
+
CSPeach reads SAP's verdict after each step and checks the request afterwards. Check the transport in SE09 after the release.
|
|
32
|
+
PASS sap_delete_object CLAS ZCL_ZCSPLC2BUS_CRB 5.7 s deleted; a search finds nothing
|
|
33
|
+
PASS sap_delete_object CLAS ZCL_ZCSPLC2BUS_CRX 5.5 s deleted; a search finds nothing
|
|
34
|
+
PASS sap_delete_object PROG ZCSPLC2BUS_CRP 3.7 s deleted; a search finds nothing
|
|
35
|
+
PASS sap_delete_object CLAS ZCL_ZCSPLC2BUS_CR 5.6 s deleted; a search finds nothing
|
|
36
|
+
PASS Cleanup 0.0 s
|
|
37
|
+
|
|
38
|
+
2 passed, 0 failed
|
|
39
|
+
Transport: S4HK903771
|
|
40
|
+
The transport is NOT released. Delete or release it in SE09.
|
|
41
|
+
Leftover objects: none.
|
package/package.json
CHANGED
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@cspeach/cli",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "CSPeach — AI-assisted ABAP development CLI. Direct SAP access, signed skills, safety gates.",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"abap",
|
|
7
|
-
"sap",
|
|
8
|
-
"ai",
|
|
9
|
-
"cli",
|
|
10
|
-
"ai-assisted-development",
|
|
11
|
-
"s4hana",
|
|
12
|
-
"abap-development",
|
|
13
|
-
"claude",
|
|
14
|
-
"anthropic"
|
|
15
|
-
],
|
|
16
|
-
"homepage": "https://cspeach.dev",
|
|
17
|
-
"bugs": {
|
|
18
|
-
"email": "laeeq.siddique@cremencing.com"
|
|
19
|
-
},
|
|
20
|
-
"author": "Laeeq Siddique (Cremencing Solutions)",
|
|
21
|
-
"license": "SEE LICENSE IN LICENSE",
|
|
22
|
-
"private": false,
|
|
23
|
-
"publishConfig": {
|
|
24
|
-
"access": "public"
|
|
25
|
-
},
|
|
26
|
-
"type": "module",
|
|
27
|
-
"bin": {
|
|
28
|
-
"cspeach": "dist/index.js"
|
|
29
|
-
},
|
|
30
|
-
"scripts": {
|
|
31
|
-
"dev": "tsx src/index.ts",
|
|
32
|
-
"prebuild": "tsx scripts/prebuild.ts",
|
|
33
|
-
"build": "tsc && node scripts/make-bin-executable.js",
|
|
34
|
-
"install:global": "tsx scripts/install-global.ts",
|
|
35
|
-
"pretest": "tsx scripts/sync-signing-key.ts || node -e \"console.warn('WARN: sync-signing-key skipped — using stub')\"",
|
|
36
|
-
"start": "node dist/index.js",
|
|
37
|
-
"typecheck": "tsc --noEmit",
|
|
38
|
-
"test": "vitest run",
|
|
39
|
-
"test:watch": "vitest",
|
|
40
|
-
"test:smoke-e2e": "vitest run --config vitest.smoke-e2e.config.ts",
|
|
41
|
-
"adt:smoke": "tsx scripts/adt-smoke.ts",
|
|
42
|
-
"smoke:all": "pnpm adt:smoke",
|
|
43
|
-
"bench:models": "tsx scripts/bench-models.ts",
|
|
44
|
-
"bench:audit": "tsx scripts/bench-audit-task.ts",
|
|
45
|
-
"bench:replay": "tsx bench/replay/run.ts",
|
|
46
|
-
"fiori": "tsx src/tools/fiori/bin.ts",
|
|
47
|
-
"prepare": "husky",
|
|
48
|
-
"prepublishOnly": "node -e \"const deps=require('./package.json').dependencies||{}; for (const n of ['@cspeach/sap-client','@cspeach/register-core']) { const d=deps[n]||''; if(d.startsWith('file:')||d.startsWith('link:')){console.error('publish blocked: '+n+' is a local link ('+d+') — point it at the published version before npm publish'); process.exit(1)} }\""
|
|
49
|
-
},
|
|
50
|
-
"engines": {
|
|
51
|
-
"node": ">=20.0.0"
|
|
52
|
-
},
|
|
53
|
-
"dependencies": {
|
|
54
|
-
"@anthropic-ai/sdk": "^0.90.0",
|
|
55
|
-
"@azure/msal-node": "6.0.1",
|
|
56
|
-
"@cspeach/register-core": "0.4.
|
|
57
|
-
"@cspeach/sap-client": "0.1.29",
|
|
58
|
-
"@iarna/toml": "^2.2.5",
|
|
59
|
-
"@inkjs/ui": "^2.0.0",
|
|
60
|
-
"@inquirer/prompts": "^7.0.0",
|
|
61
|
-
"@napi-rs/keyring": "2.1.0",
|
|
62
|
-
"@noble/ed25519": "2.1.0",
|
|
63
|
-
"@noble/hashes": "1.4.0",
|
|
64
|
-
"@sap-ux/annotation-converter": "0.10.21",
|
|
65
|
-
"@sap-ux/edmx-parser": "0.10.0",
|
|
66
|
-
"@sap-ux/fe-fpm-writer": "0.43.7",
|
|
67
|
-
"@sap-ux/fiori-elements-writer": "^3.0.39",
|
|
68
|
-
"@sap-ux/fiori-freestyle-writer": "3.0.12",
|
|
69
|
-
"@sap-ux/vocabularies-types": "0.15.0",
|
|
70
|
-
"adm-zip": "0.5.17",
|
|
71
|
-
"chalk": "^5.3.0",
|
|
72
|
-
"cli-highlight": "^2.1.11",
|
|
73
|
-
"cli-table3": "^0.6.5",
|
|
74
|
-
"clipboardy": "^5.3.1",
|
|
75
|
-
"cross-spawn": "^7.0.6",
|
|
76
|
-
"diff": "^9.0.0",
|
|
77
|
-
"docx": "^9.0.2",
|
|
78
|
-
"ejs": "3.1.10",
|
|
79
|
-
"fuse.js": "^7.0.0",
|
|
80
|
-
"ink": "^5.0.0",
|
|
81
|
-
"ink-text-input": "^6.0.0",
|
|
82
|
-
"jose": "^5.9.0",
|
|
83
|
-
"mammoth": "^1.8.0",
|
|
84
|
-
"marked": "^11.2.0",
|
|
85
|
-
"marked-terminal": "^6.2.0",
|
|
86
|
-
"mem-fs": "2.1.0",
|
|
87
|
-
"mem-fs-editor": "9.4.0",
|
|
88
|
-
"node-machine-id": "^1.1.12",
|
|
89
|
-
"openai": "^6.49.0",
|
|
90
|
-
"puppeteer-core": "24.10.2",
|
|
91
|
-
"react": "^18.3.0",
|
|
92
|
-
"string-width": "^7.2.0",
|
|
93
|
-
"turndown": "^7.2.0",
|
|
94
|
-
"unpdf": "1.7.0",
|
|
95
|
-
"zod": "^3.23.0"
|
|
96
|
-
},
|
|
97
|
-
"devDependencies": {
|
|
98
|
-
"@sap-ux/ui5-middleware-fe-mockserver": "2.4.17",
|
|
99
|
-
"@types/adm-zip": "0.5.8",
|
|
100
|
-
"@types/cross-spawn": "^6.0.6",
|
|
101
|
-
"@types/diff": "^7.0.2",
|
|
102
|
-
"@types/ejs": "^3.1.5",
|
|
103
|
-
"@types/node": "^20.17.0",
|
|
104
|
-
"@types/react": "^18.3.0",
|
|
105
|
-
"@types/turndown": "^5.0.5",
|
|
106
|
-
"@ui5/builder": "4.3.2",
|
|
107
|
-
"@ui5/fs": "4.0.6",
|
|
108
|
-
"husky": "^9.1.7",
|
|
109
|
-
"ink-testing-library": "^4.0.0",
|
|
110
|
-
"pdf-lib": "^1.17.1",
|
|
111
|
-
"strip-ansi": "6.0.1",
|
|
112
|
-
"tsx": "^4.19.0",
|
|
113
|
-
"typescript": "^5.7.0",
|
|
114
|
-
"vitest": "^2.1.0"
|
|
115
|
-
},
|
|
116
|
-
"pnpm": {
|
|
117
|
-
"onlyBuiltDependencies": [
|
|
118
|
-
"esbuild"
|
|
119
|
-
]
|
|
120
|
-
}
|
|
121
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@cspeach/cli",
|
|
3
|
+
"version": "1.1.49",
|
|
4
|
+
"description": "CSPeach — AI-assisted ABAP development CLI. Direct SAP access, signed skills, safety gates.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"abap",
|
|
7
|
+
"sap",
|
|
8
|
+
"ai",
|
|
9
|
+
"cli",
|
|
10
|
+
"ai-assisted-development",
|
|
11
|
+
"s4hana",
|
|
12
|
+
"abap-development",
|
|
13
|
+
"claude",
|
|
14
|
+
"anthropic"
|
|
15
|
+
],
|
|
16
|
+
"homepage": "https://cspeach.dev",
|
|
17
|
+
"bugs": {
|
|
18
|
+
"email": "laeeq.siddique@cremencing.com"
|
|
19
|
+
},
|
|
20
|
+
"author": "Laeeq Siddique (Cremencing Solutions)",
|
|
21
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
22
|
+
"private": false,
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"type": "module",
|
|
27
|
+
"bin": {
|
|
28
|
+
"cspeach": "dist/index.js"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"dev": "tsx src/index.ts",
|
|
32
|
+
"prebuild": "tsx scripts/prebuild.ts",
|
|
33
|
+
"build": "tsc && node scripts/make-bin-executable.js",
|
|
34
|
+
"install:global": "tsx scripts/install-global.ts",
|
|
35
|
+
"pretest": "tsx scripts/sync-signing-key.ts || node -e \"console.warn('WARN: sync-signing-key skipped — using stub')\"",
|
|
36
|
+
"start": "node dist/index.js",
|
|
37
|
+
"typecheck": "tsc --noEmit",
|
|
38
|
+
"test": "vitest run",
|
|
39
|
+
"test:watch": "vitest",
|
|
40
|
+
"test:smoke-e2e": "vitest run --config vitest.smoke-e2e.config.ts",
|
|
41
|
+
"adt:smoke": "tsx scripts/adt-smoke.ts",
|
|
42
|
+
"smoke:all": "pnpm adt:smoke",
|
|
43
|
+
"bench:models": "tsx scripts/bench-models.ts",
|
|
44
|
+
"bench:audit": "tsx scripts/bench-audit-task.ts",
|
|
45
|
+
"bench:replay": "tsx bench/replay/run.ts",
|
|
46
|
+
"fiori": "tsx src/tools/fiori/bin.ts",
|
|
47
|
+
"prepare": "husky",
|
|
48
|
+
"prepublishOnly": "node -e \"const deps=require('./package.json').dependencies||{}; for (const n of ['@cspeach/sap-client','@cspeach/register-core']) { const d=deps[n]||''; if(d.startsWith('file:')||d.startsWith('link:')){console.error('publish blocked: '+n+' is a local link ('+d+') — point it at the published version before npm publish'); process.exit(1)} }\""
|
|
49
|
+
},
|
|
50
|
+
"engines": {
|
|
51
|
+
"node": ">=20.0.0"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@anthropic-ai/sdk": "^0.90.0",
|
|
55
|
+
"@azure/msal-node": "6.0.1",
|
|
56
|
+
"@cspeach/register-core": "0.4.2",
|
|
57
|
+
"@cspeach/sap-client": "0.1.29",
|
|
58
|
+
"@iarna/toml": "^2.2.5",
|
|
59
|
+
"@inkjs/ui": "^2.0.0",
|
|
60
|
+
"@inquirer/prompts": "^7.0.0",
|
|
61
|
+
"@napi-rs/keyring": "2.1.0",
|
|
62
|
+
"@noble/ed25519": "2.1.0",
|
|
63
|
+
"@noble/hashes": "1.4.0",
|
|
64
|
+
"@sap-ux/annotation-converter": "0.10.21",
|
|
65
|
+
"@sap-ux/edmx-parser": "0.10.0",
|
|
66
|
+
"@sap-ux/fe-fpm-writer": "0.43.7",
|
|
67
|
+
"@sap-ux/fiori-elements-writer": "^3.0.39",
|
|
68
|
+
"@sap-ux/fiori-freestyle-writer": "3.0.12",
|
|
69
|
+
"@sap-ux/vocabularies-types": "0.15.0",
|
|
70
|
+
"adm-zip": "0.5.17",
|
|
71
|
+
"chalk": "^5.3.0",
|
|
72
|
+
"cli-highlight": "^2.1.11",
|
|
73
|
+
"cli-table3": "^0.6.5",
|
|
74
|
+
"clipboardy": "^5.3.1",
|
|
75
|
+
"cross-spawn": "^7.0.6",
|
|
76
|
+
"diff": "^9.0.0",
|
|
77
|
+
"docx": "^9.0.2",
|
|
78
|
+
"ejs": "3.1.10",
|
|
79
|
+
"fuse.js": "^7.0.0",
|
|
80
|
+
"ink": "^5.0.0",
|
|
81
|
+
"ink-text-input": "^6.0.0",
|
|
82
|
+
"jose": "^5.9.0",
|
|
83
|
+
"mammoth": "^1.8.0",
|
|
84
|
+
"marked": "^11.2.0",
|
|
85
|
+
"marked-terminal": "^6.2.0",
|
|
86
|
+
"mem-fs": "2.1.0",
|
|
87
|
+
"mem-fs-editor": "9.4.0",
|
|
88
|
+
"node-machine-id": "^1.1.12",
|
|
89
|
+
"openai": "^6.49.0",
|
|
90
|
+
"puppeteer-core": "24.10.2",
|
|
91
|
+
"react": "^18.3.0",
|
|
92
|
+
"string-width": "^7.2.0",
|
|
93
|
+
"turndown": "^7.2.0",
|
|
94
|
+
"unpdf": "1.7.0",
|
|
95
|
+
"zod": "^3.23.0"
|
|
96
|
+
},
|
|
97
|
+
"devDependencies": {
|
|
98
|
+
"@sap-ux/ui5-middleware-fe-mockserver": "2.4.17",
|
|
99
|
+
"@types/adm-zip": "0.5.8",
|
|
100
|
+
"@types/cross-spawn": "^6.0.6",
|
|
101
|
+
"@types/diff": "^7.0.2",
|
|
102
|
+
"@types/ejs": "^3.1.5",
|
|
103
|
+
"@types/node": "^20.17.0",
|
|
104
|
+
"@types/react": "^18.3.0",
|
|
105
|
+
"@types/turndown": "^5.0.5",
|
|
106
|
+
"@ui5/builder": "4.3.2",
|
|
107
|
+
"@ui5/fs": "4.0.6",
|
|
108
|
+
"husky": "^9.1.7",
|
|
109
|
+
"ink-testing-library": "^4.0.0",
|
|
110
|
+
"pdf-lib": "^1.17.1",
|
|
111
|
+
"strip-ansi": "6.0.1",
|
|
112
|
+
"tsx": "^4.19.0",
|
|
113
|
+
"typescript": "^5.7.0",
|
|
114
|
+
"vitest": "^2.1.0"
|
|
115
|
+
},
|
|
116
|
+
"pnpm": {
|
|
117
|
+
"onlyBuiltDependencies": [
|
|
118
|
+
"esbuild"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
}
|