arc-1 0.9.19 → 0.9.21
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 +7 -4
- package/dist/adt/client.d.ts +29 -1
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +72 -3
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +29 -0
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +112 -1
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts +9 -2
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +126 -5
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts +99 -4
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +443 -10
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/errors.d.ts +13 -1
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +244 -25
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js +2 -1
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/gcts.d.ts +3 -3
- package/dist/adt/gcts.d.ts.map +1 -1
- package/dist/adt/gcts.js +24 -3
- package/dist/adt/gcts.js.map +1 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +4 -3
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/transport.d.ts +43 -4
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +84 -10
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +104 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/xml-parser.d.ts +37 -0
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +102 -0
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +11 -1
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/cache.d.ts +25 -0
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/caching-layer.d.ts +31 -2
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +102 -2
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cache/memory.d.ts +2 -1
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +46 -0
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +2 -1
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +64 -0
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +27 -4
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +88 -4
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +9 -0
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/feature-cache.d.ts +5 -0
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +10 -0
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/git.d.ts.map +1 -1
- package/dist/handlers/git.js +3 -3
- package/dist/handlers/git.js.map +1 -1
- package/dist/handlers/manage.d.ts.map +1 -1
- package/dist/handlers/manage.js +44 -0
- package/dist/handlers/manage.js.map +1 -1
- package/dist/handlers/object-types.d.ts +1 -1
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +17 -2
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/query.d.ts.map +1 -1
- package/dist/handlers/query.js +35 -3
- package/dist/handlers/query.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +33 -8
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +79 -5
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +33 -0
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tool-registry.d.ts +4 -4
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +6 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +132 -34
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/transport.d.ts.map +1 -1
- package/dist/handlers/transport.js +82 -5
- package/dist/handlers/transport.js.map +1 -1
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +224 -7
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +1 -0
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +49 -5
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +18 -2
- package/dist/handlers/write.js.map +1 -1
- package/dist/plugins/manifest-interpreter.d.ts.map +1 -1
- package/dist/plugins/manifest-interpreter.js +3 -1
- package/dist/plugins/manifest-interpreter.js.map +1 -1
- package/dist/public/testing.d.ts +2 -1
- package/dist/public/testing.d.ts.map +1 -1
- package/dist/public/testing.js +13 -0
- package/dist/public/testing.js.map +1 -1
- package/dist/public/types.d.ts +2 -2
- package/dist/public/types.d.ts.map +1 -1
- package/dist/public/ui/app.js +1044 -0
- package/dist/public/ui/arc-mark.svg +5 -0
- package/dist/public/ui/index.html +43 -0
- package/dist/public/ui/styles.css +563 -0
- package/dist/server/audit.d.ts +4 -2
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js +42 -13
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +103 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/http.d.ts +2 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +22 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts +1 -1
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +9 -4
- package/dist/server/logger.js.map +1 -1
- package/dist/server/plugin-loader.d.ts.map +1 -1
- package/dist/server/plugin-loader.js +1 -1
- package/dist/server/plugin-loader.js.map +1 -1
- package/dist/server/safe-http-client.d.ts +12 -6
- package/dist/server/safe-http-client.d.ts.map +1 -1
- package/dist/server/safe-http-client.js +84 -15
- package/dist/server/safe-http-client.js.map +1 -1
- package/dist/server/server.d.ts +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +29 -4
- package/dist/server/server.js.map +1 -1
- package/dist/server/sinks/file.d.ts +3 -0
- package/dist/server/sinks/file.d.ts.map +1 -1
- package/dist/server/sinks/file.js +15 -3
- package/dist/server/sinks/file.js.map +1 -1
- package/dist/server/sinks/stderr.d.ts.map +1 -1
- package/dist/server/sinks/stderr.js +2 -30
- package/dist/server/sinks/stderr.js.map +1 -1
- package/dist/server/types.d.ts +22 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +7 -0
- package/dist/server/types.js.map +1 -1
- package/dist/server/ui-log-buffer.d.ts +29 -0
- package/dist/server/ui-log-buffer.d.ts.map +1 -0
- package/dist/server/ui-log-buffer.js +72 -0
- package/dist/server/ui-log-buffer.js.map +1 -0
- package/dist/server/ui-state.d.ts +32 -0
- package/dist/server/ui-state.d.ts.map +1 -0
- package/dist/server/ui-state.js +230 -0
- package/dist/server/ui-state.js.map +1 -0
- package/dist/server/ui.d.ts +20 -0
- package/dist/server/ui.d.ts.map +1 -0
- package/dist/server/ui.js +275 -0
- package/dist/server/ui.js.map +1 -0
- package/package.json +13 -9
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import express from 'express';
|
|
5
|
+
import helmet from 'helmet';
|
|
6
|
+
import { logger } from './logger.js';
|
|
7
|
+
import { buildUiOverview, sanitizeConfigForUi, sanitizeConfigSourcesForUi, sanitizeFeaturesForUi, sanitizeSafetyConfig, } from './ui-state.js';
|
|
8
|
+
export function createUiApiRouter(deps) {
|
|
9
|
+
const router = express.Router();
|
|
10
|
+
router.use((req, res, next) => {
|
|
11
|
+
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
12
|
+
res.status(405).json({ error: 'Read-only UI API accepts GET requests only.' });
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
16
|
+
next();
|
|
17
|
+
});
|
|
18
|
+
router.get('/overview', (_req, res) => {
|
|
19
|
+
res.json(buildUiOverview(deps.config, deps.version, deps.startedAt));
|
|
20
|
+
});
|
|
21
|
+
router.get('/config', (_req, res) => {
|
|
22
|
+
res.json({
|
|
23
|
+
config: sanitizeConfigForUi(deps.config),
|
|
24
|
+
sources: sanitizeConfigSourcesForUi(deps.sources),
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
router.get('/safety', (_req, res) => {
|
|
28
|
+
res.json(sanitizeSafetyConfig(deps.config));
|
|
29
|
+
});
|
|
30
|
+
router.get('/features', (_req, res) => {
|
|
31
|
+
res.json(sanitizeFeaturesForUi(deps.getFeatures()));
|
|
32
|
+
});
|
|
33
|
+
router.get('/cache/stats', (_req, res) => {
|
|
34
|
+
if (!deps.cachingLayer) {
|
|
35
|
+
res.json({ enabled: false, mode: deps.config.cacheMode });
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const effectiveBackend = cacheBackendKind(deps.cachingLayer);
|
|
39
|
+
res.json({
|
|
40
|
+
enabled: true,
|
|
41
|
+
mode: deps.config.cacheMode,
|
|
42
|
+
backend: {
|
|
43
|
+
effective: effectiveBackend,
|
|
44
|
+
persistent: effectiveBackend === 'sqlite',
|
|
45
|
+
ephemeral: effectiveBackend === 'memory',
|
|
46
|
+
file: effectiveBackend === 'sqlite' ? deps.config.cacheFile : undefined,
|
|
47
|
+
},
|
|
48
|
+
warmup: {
|
|
49
|
+
configured: deps.config.cacheWarmup,
|
|
50
|
+
available: deps.cachingLayer.isWarmupAvailable,
|
|
51
|
+
packages: deps.config.cacheWarmupPackages,
|
|
52
|
+
},
|
|
53
|
+
warmupAvailable: deps.cachingLayer.isWarmupAvailable,
|
|
54
|
+
stats: deps.cachingLayer.stats(),
|
|
55
|
+
inactiveLists: deps.cachingLayer.inactiveLists.stats(),
|
|
56
|
+
sources: summarizeCachedSources(deps.cachingLayer),
|
|
57
|
+
activity: cacheActivityForUi(deps.cachingLayer, deps.config.ppEnabled),
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
router.get('/cache/sources', (req, res) => {
|
|
61
|
+
if (!deps.cachingLayer) {
|
|
62
|
+
res.json({ enabled: false, mode: deps.config.cacheMode, total: 0, items: [] });
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (deps.config.ppEnabled) {
|
|
66
|
+
res.status(403).json({
|
|
67
|
+
enabled: false,
|
|
68
|
+
reason: 'Source cache inventory is disabled when principal propagation is enabled because cached object names may span multiple SAP users.',
|
|
69
|
+
});
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const version = stringQuery(req, 'version');
|
|
73
|
+
res.json(deps.cachingLayer.listCachedSources({
|
|
74
|
+
objectType: stringQuery(req, 'objectType')?.toUpperCase(),
|
|
75
|
+
query: stringQuery(req, 'q'),
|
|
76
|
+
version: version === 'active' || version === 'inactive' ? version : undefined,
|
|
77
|
+
limit: numberQuery(req, 'limit'),
|
|
78
|
+
offset: numberQuery(req, 'offset'),
|
|
79
|
+
}));
|
|
80
|
+
});
|
|
81
|
+
router.get('/logs', (req, res) => {
|
|
82
|
+
res.json(deps.logBuffer?.list({
|
|
83
|
+
event: stringQuery(req, 'event'),
|
|
84
|
+
level: stringQuery(req, 'level'),
|
|
85
|
+
requestId: stringQuery(req, 'requestId'),
|
|
86
|
+
limit: numberQuery(req, 'limit'),
|
|
87
|
+
}) ?? { total: 0, limit: numberQuery(req, 'limit') ?? 100, items: [] });
|
|
88
|
+
});
|
|
89
|
+
router.get('/docs', (_req, res) => {
|
|
90
|
+
res.json({
|
|
91
|
+
links: [
|
|
92
|
+
{
|
|
93
|
+
label: 'Configuration reference',
|
|
94
|
+
href: 'https://docs.arc-1-mcp.com/configuration-reference/',
|
|
95
|
+
},
|
|
96
|
+
{ label: 'Caching', href: 'https://docs.arc-1-mcp.com/caching/' },
|
|
97
|
+
{
|
|
98
|
+
label: 'Security guide',
|
|
99
|
+
href: 'https://docs.arc-1-mcp.com/security-guide/',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
label: 'BTP Cloud Foundry deployment',
|
|
103
|
+
href: 'https://docs.arc-1-mcp.com/btp-cloud-foundry-deployment/',
|
|
104
|
+
},
|
|
105
|
+
{ label: 'Docker deployment', href: 'https://docs.arc-1-mcp.com/docker/' },
|
|
106
|
+
{
|
|
107
|
+
label: 'Local development',
|
|
108
|
+
href: 'https://docs.arc-1-mcp.com/local-development/',
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
return router;
|
|
114
|
+
}
|
|
115
|
+
export function mountUiStaticRoutes(app) {
|
|
116
|
+
const assetDir = findUiAssetDir();
|
|
117
|
+
app.get(/^\/ui$/, (_req, res) => res.redirect(302, '/ui/'));
|
|
118
|
+
if (!assetDir) {
|
|
119
|
+
app.get(/^\/ui\/(?!api(?:\/|$)).*$/, (_req, res) => {
|
|
120
|
+
res.status(500).json({ error: 'UI assets were not found in this ARC-1 build.' });
|
|
121
|
+
});
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
app.use('/ui', express.static(assetDir, { index: 'index.html', fallthrough: true }));
|
|
125
|
+
app.get(/^\/ui\/(?!api(?:\/|$)).*$/, (_req, res) => {
|
|
126
|
+
res.sendFile(`${assetDir}/index.html`);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export function mountUiRoutes(app, deps, auth) {
|
|
130
|
+
if (auth) {
|
|
131
|
+
app.use('/ui', auth);
|
|
132
|
+
}
|
|
133
|
+
mountUiStaticRoutes(app);
|
|
134
|
+
app.use('/ui/api', createUiApiRouter(deps));
|
|
135
|
+
}
|
|
136
|
+
export async function startLocalUiServer(deps) {
|
|
137
|
+
const { host, port } = parseBindAddr(deps.config.uiAddr);
|
|
138
|
+
const app = express();
|
|
139
|
+
app.use(helmet({
|
|
140
|
+
crossOriginOpenerPolicy: false,
|
|
141
|
+
contentSecurityPolicy: {
|
|
142
|
+
useDefaults: true,
|
|
143
|
+
directives: {
|
|
144
|
+
'script-src': ["'self'"],
|
|
145
|
+
'style-src': ["'self'"],
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
}));
|
|
149
|
+
app.get('/', (_req, res) => res.redirect(302, '/ui/'));
|
|
150
|
+
mountUiRoutes(app, deps);
|
|
151
|
+
app.use((_req, res) => {
|
|
152
|
+
res.status(404).json({ error: 'Not found. Use /ui for the ARC-1 read-only UI.' });
|
|
153
|
+
});
|
|
154
|
+
const server = await listen(app, host, port).catch((err) => {
|
|
155
|
+
if (err.code === 'EADDRINUSE') {
|
|
156
|
+
logger.error(`UI port ${port} is already in use — change ARC1_UI_ADDR or ARC1_UI_PORT (for example ARC1_UI_PORT=8712)`, { port, host, code: err.code });
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
logger.error('UI server failed to start', { error: err.message, code: err.code });
|
|
160
|
+
}
|
|
161
|
+
throw err;
|
|
162
|
+
});
|
|
163
|
+
const url = `http://${host}:${port}/ui/`;
|
|
164
|
+
logger.info('ARC-1 read-only UI started', { url, mode: 'local' });
|
|
165
|
+
if (deps.config.uiOpen) {
|
|
166
|
+
openInBrowser(url);
|
|
167
|
+
}
|
|
168
|
+
return server;
|
|
169
|
+
}
|
|
170
|
+
function findUiAssetDir() {
|
|
171
|
+
const candidates = [
|
|
172
|
+
fileURLToPath(new URL('../../public/ui', import.meta.url)),
|
|
173
|
+
fileURLToPath(new URL('../public/ui', import.meta.url)),
|
|
174
|
+
];
|
|
175
|
+
return candidates.find((dir) => existsSync(`${dir}/index.html`));
|
|
176
|
+
}
|
|
177
|
+
function listen(app, host, port) {
|
|
178
|
+
return new Promise((resolve, reject) => {
|
|
179
|
+
const server = app.listen(port, host, () => resolve(server));
|
|
180
|
+
server.on('error', reject);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
function parseBindAddr(addr) {
|
|
184
|
+
const [hostPart, portPart] = addr.includes(':') ? addr.split(':') : ['127.0.0.1', addr];
|
|
185
|
+
const port = Number.parseInt(portPart || '8711', 10);
|
|
186
|
+
if (Number.isNaN(port) || port < 1 || port > 65535) {
|
|
187
|
+
throw new Error(`Invalid ARC1_UI_ADDR '${addr}': port must be a number between 1 and 65535`);
|
|
188
|
+
}
|
|
189
|
+
return { host: hostPart || '127.0.0.1', port };
|
|
190
|
+
}
|
|
191
|
+
function openInBrowser(url) {
|
|
192
|
+
const command = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'cmd' : process.env.BROWSER || 'xdg-open';
|
|
193
|
+
const args = process.platform === 'win32' ? ['/c', 'start', '', url] : [url];
|
|
194
|
+
const child = spawn(command, args, { detached: true, stdio: 'ignore' });
|
|
195
|
+
child.unref();
|
|
196
|
+
}
|
|
197
|
+
function stringQuery(req, name) {
|
|
198
|
+
const value = req.query[name];
|
|
199
|
+
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
200
|
+
}
|
|
201
|
+
function numberQuery(req, name) {
|
|
202
|
+
const value = stringQuery(req, name);
|
|
203
|
+
if (!value)
|
|
204
|
+
return undefined;
|
|
205
|
+
const parsed = Number.parseInt(value, 10);
|
|
206
|
+
return Number.isNaN(parsed) ? undefined : parsed;
|
|
207
|
+
}
|
|
208
|
+
function cacheBackendKind(cachingLayer) {
|
|
209
|
+
const ctor = cachingLayer.cache.constructor.name;
|
|
210
|
+
if (ctor === 'MemoryCache')
|
|
211
|
+
return 'memory';
|
|
212
|
+
if (ctor === 'SqliteCache')
|
|
213
|
+
return 'sqlite';
|
|
214
|
+
return 'unknown';
|
|
215
|
+
}
|
|
216
|
+
function summarizeCachedSources(cachingLayer) {
|
|
217
|
+
const inventory = cachingLayer.listCachedSources({ limit: 200 });
|
|
218
|
+
const byType = {};
|
|
219
|
+
const byVersion = {};
|
|
220
|
+
let etagCount = 0;
|
|
221
|
+
let totalSourceLength = 0;
|
|
222
|
+
let newestCachedAt = '';
|
|
223
|
+
for (const item of inventory.items) {
|
|
224
|
+
byType[item.objectType] = (byType[item.objectType] ?? 0) + 1;
|
|
225
|
+
byVersion[item.version] = (byVersion[item.version] ?? 0) + 1;
|
|
226
|
+
if (item.etagPresent)
|
|
227
|
+
etagCount += 1;
|
|
228
|
+
totalSourceLength += item.sourceLength;
|
|
229
|
+
if (!newestCachedAt || item.cachedAt > newestCachedAt) {
|
|
230
|
+
newestCachedAt = item.cachedAt;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return {
|
|
234
|
+
total: inventory.total,
|
|
235
|
+
sampled: inventory.items.length < inventory.total,
|
|
236
|
+
sampleSize: inventory.items.length,
|
|
237
|
+
byType,
|
|
238
|
+
byVersion,
|
|
239
|
+
etagCount,
|
|
240
|
+
totalSourceLength,
|
|
241
|
+
newestCachedAt: newestCachedAt || undefined,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function cacheActivityForUi(cachingLayer, redactObjectDetails) {
|
|
245
|
+
const activity = cachingLayer.listActivity(50);
|
|
246
|
+
if (!redactObjectDetails)
|
|
247
|
+
return activity;
|
|
248
|
+
return {
|
|
249
|
+
...activity,
|
|
250
|
+
items: activity.items.map((item) => ({
|
|
251
|
+
timestamp: item.timestamp,
|
|
252
|
+
event: item.event,
|
|
253
|
+
version: item.version,
|
|
254
|
+
sourceLength: item.sourceLength,
|
|
255
|
+
etagPresent: item.etagPresent,
|
|
256
|
+
removed: item.removed,
|
|
257
|
+
detail: safeRedactedCacheActivityDetail(item),
|
|
258
|
+
})),
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
function safeRedactedCacheActivityDetail(item) {
|
|
262
|
+
switch (item.event) {
|
|
263
|
+
case 'source_miss':
|
|
264
|
+
case 'source_store':
|
|
265
|
+
case 'source_refresh':
|
|
266
|
+
case 'source_evict':
|
|
267
|
+
case 'depgraph_hit':
|
|
268
|
+
case 'depgraph_store':
|
|
269
|
+
case 'warmup_state':
|
|
270
|
+
return item.detail;
|
|
271
|
+
default:
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/server/ui.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arc-1",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.21",
|
|
4
4
|
"mcpName": "io.github.arc-mcp/arc-1",
|
|
5
5
|
"description": "ARC-1 — MCP Server for SAP ABAP Systems",
|
|
6
6
|
"author": "Marian Zeis",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
|
-
"build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc && node -e \"const fs=require('fs');fs.cpSync('src/aff/schemas','dist/aff/schemas',{recursive:true})\"",
|
|
48
|
+
"build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc && node -e \"const fs=require('fs');fs.cpSync('src/aff/schemas','dist/aff/schemas',{recursive:true});if(fs.existsSync('public/ui'))fs.cpSync('public/ui','dist/public/ui',{recursive:true})\"",
|
|
49
49
|
"dev": "tsx src/index.ts",
|
|
50
50
|
"dev:http": "npm run build && tsx src/index.ts --transport http-streamable",
|
|
51
51
|
"start": "node dist/index.js",
|
|
@@ -88,15 +88,18 @@
|
|
|
88
88
|
"test:reliability-report": "node scripts/ci/collect-test-reliability.mjs",
|
|
89
89
|
"test:runtime-report": "node scripts/ci/test-runtime-summary.mjs",
|
|
90
90
|
"test:assert-execution": "node scripts/ci/assert-required-test-execution.mjs",
|
|
91
|
-
"btp:validate": "npx mbt validate && npx mbt validate -e mta-overrides.mtaext.example",
|
|
91
|
+
"btp:validate": "npx mbt validate && npx mbt validate -e mta-overrides.mtaext.example && npx mbt validate -e mta-overrides.mtaext.example -e mta-ui-approuter.mtaext",
|
|
92
92
|
"btp:build": "npx mbt build",
|
|
93
|
+
"btp:build-ui-ext": "npx mbt build -e mta-ui-approuter.mtaext",
|
|
93
94
|
"btp:deploy": "node -e \"const v=require('./package.json').version;require('child_process').execSync('cf deploy mta_archives/arc1-mcp_'+v+'.mtar',{stdio:'inherit'})\"",
|
|
94
95
|
"btp:deploy-ext": "node -e \"const v=require('./package.json').version;require('child_process').execSync('cf deploy mta_archives/arc1-mcp_'+v+'.mtar -e mta-overrides.mtaext',{stdio:'inherit'})\"",
|
|
96
|
+
"btp:deploy-ui-ext": "node scripts/btp/prepare-ui-mtaext.mjs && node -e \"const v=require('./package.json').version;require('child_process').execSync('cf deploy mta_archives/arc1-mcp_'+v+'.mtar -e mta-ui-deploy.mtaext',{stdio:'inherit'})\"",
|
|
95
97
|
"btp:build-deploy": "npm run btp:build && npm run btp:deploy",
|
|
96
|
-
"btp:build-deploy-ext": "npm run btp:build && npm run btp:deploy-ext"
|
|
98
|
+
"btp:build-deploy-ext": "npm run btp:build && npm run btp:deploy-ext",
|
|
99
|
+
"btp:build-deploy-ui-ext": "npm run btp:build-ui-ext && npm run btp:deploy-ui-ext"
|
|
97
100
|
},
|
|
98
101
|
"dependencies": {
|
|
99
|
-
"@abaplint/core": "^2.119.
|
|
102
|
+
"@abaplint/core": "^2.119.37",
|
|
100
103
|
"@arc-mcp/xsuaa-auth": "^0.1.3",
|
|
101
104
|
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
102
105
|
"@sap-cloud-sdk/connectivity": "^4.7.0",
|
|
@@ -110,7 +113,7 @@
|
|
|
110
113
|
"dotenv": "^17.3.1",
|
|
111
114
|
"express": "^5.2.1",
|
|
112
115
|
"express-rate-limit": "^8.5.2",
|
|
113
|
-
"fast-xml-parser": "^5.9.
|
|
116
|
+
"fast-xml-parser": "^5.9.3",
|
|
114
117
|
"helmet": "^8.2.0",
|
|
115
118
|
"jose": "^6.2.2",
|
|
116
119
|
"rate-limiter-flexible": "^11.2.0",
|
|
@@ -130,14 +133,15 @@
|
|
|
130
133
|
"@types/better-sqlite3": "^7.6.13",
|
|
131
134
|
"@types/cors": "^2.8.19",
|
|
132
135
|
"@types/express": "^5.0.6",
|
|
133
|
-
"@types/node": "^22.
|
|
136
|
+
"@types/node": "^22.20.0",
|
|
134
137
|
"@types/supertest": "^7.2.0",
|
|
135
138
|
"@vitest/coverage-v8": "^4.1.9",
|
|
136
139
|
"husky": "^9.1.7",
|
|
137
|
-
"lint-staged": "^17.0.
|
|
140
|
+
"lint-staged": "^17.0.8",
|
|
138
141
|
"supertest": "^7.2.2",
|
|
139
142
|
"tsx": "^4.22.4",
|
|
140
143
|
"typescript": "~6.0.3",
|
|
141
|
-
"vitest": "^4.1.1"
|
|
144
|
+
"vitest": "^4.1.1",
|
|
145
|
+
"yaml": "^2.9.0"
|
|
142
146
|
}
|
|
143
147
|
}
|