@oml/server 0.14.2 → 0.14.3
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 +1 -1
- package/out/auth/feature-gate.d.ts +8 -4
- package/out/auth/feature-gate.js +132 -57
- package/out/auth/feature-gate.js.map +1 -1
- package/out/auth/feature-policy.d.ts +3 -2
- package/out/auth/feature-policy.js +14 -5
- package/out/auth/feature-policy.js.map +1 -1
- package/out/cli.js +56 -7
- package/out/cli.js.map +1 -1
- package/out/index.d.ts +1 -0
- package/out/index.js +1 -0
- package/out/index.js.map +1 -1
- package/out/lsp/language-server.d.ts +1 -1
- package/out/lsp/language-server.js +26 -5
- package/out/lsp/language-server.js.map +1 -1
- package/out/lsp/protocol/reasoner-protocol.d.ts +14 -0
- package/out/lsp/protocol/reasoner-protocol.js +1 -0
- package/out/lsp/protocol/reasoner-protocol.js.map +1 -1
- package/out/rest/routes.d.ts +0 -5
- package/out/rest/routes.js +374 -10
- package/out/rest/routes.js.map +1 -1
- package/out/rest/server.js +444 -64
- package/out/rest/server.js.map +1 -1
- package/package.json +11 -8
package/README.md
CHANGED
|
@@ -6,18 +6,22 @@ export declare class OmlFeatureGate implements OmlFeatureGateLike {
|
|
|
6
6
|
private runtimeToken?;
|
|
7
7
|
private client;
|
|
8
8
|
private readonly storage;
|
|
9
|
-
private
|
|
9
|
+
private reinitializePromise?;
|
|
10
|
+
private entitlementSyncPromise?;
|
|
11
|
+
private entitlementState;
|
|
12
|
+
private entitlementsExpireAtMs;
|
|
10
13
|
constructor(options?: {
|
|
11
14
|
apiBaseUrl?: string;
|
|
12
15
|
initialAccessToken?: string;
|
|
13
16
|
tool?: string;
|
|
14
17
|
});
|
|
15
18
|
setAccessToken(token: string | undefined): void;
|
|
16
|
-
getAccessToken(): string | undefined;
|
|
17
19
|
primeEntitlements(tokenOverride?: string): Promise<void>;
|
|
18
|
-
requireFeature(featureId: string): Promise<void>;
|
|
19
20
|
runWithFeature<T>(featureId: string, action: () => Promise<T>, metadata?: Record<string, unknown>): Promise<T>;
|
|
20
21
|
dispose(): Promise<void>;
|
|
21
|
-
private
|
|
22
|
+
private ensureClient;
|
|
22
23
|
private reinitializeClient;
|
|
24
|
+
private ensureEntitlementsAvailable;
|
|
25
|
+
private startEntitlementSync;
|
|
26
|
+
private isCredentialRevoked;
|
|
23
27
|
}
|
package/out/auth/feature-gate.js
CHANGED
|
@@ -1,42 +1,49 @@
|
|
|
1
1
|
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
|
-
import { OmlClient } from '@oml/platform';
|
|
2
|
+
import { ApiError, OmlClient } from '@oml/platform';
|
|
3
3
|
import { OmlAccessError } from './feature-policy.js';
|
|
4
4
|
const DEFAULT_API_BASE_URL = 'https://oml-platform-worker.melaasar.workers.dev';
|
|
5
|
+
const ENTITLEMENT_TTL_MS = 8 * 60 * 60 * 1000;
|
|
5
6
|
export class OmlFeatureGate {
|
|
6
7
|
constructor(options) {
|
|
7
8
|
this.client = null;
|
|
8
9
|
this.storage = new InMemoryTokenStorage();
|
|
10
|
+
this.entitlementState = 'idle';
|
|
11
|
+
this.entitlementsExpireAtMs = 0;
|
|
9
12
|
this.apiBaseUrl = normalizeApiBaseUrl(options?.apiBaseUrl);
|
|
10
13
|
this.currentAccessToken = normalizeToken(options?.initialAccessToken);
|
|
11
14
|
this.tool = normalizeTool(options?.tool);
|
|
15
|
+
if (this.currentAccessToken) {
|
|
16
|
+
this.entitlementState = 'pending';
|
|
17
|
+
}
|
|
12
18
|
}
|
|
13
19
|
setAccessToken(token) {
|
|
14
20
|
const normalized = normalizeToken(token);
|
|
15
21
|
const changed = normalized !== this.currentAccessToken;
|
|
16
22
|
this.currentAccessToken = normalized;
|
|
17
|
-
if (changed) {
|
|
18
|
-
|
|
23
|
+
if (!changed) {
|
|
24
|
+
return;
|
|
19
25
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
this.runtimeToken = undefined;
|
|
27
|
+
this.entitlementsExpireAtMs = 0;
|
|
28
|
+
this.entitlementState = normalized ? 'pending' : 'idle';
|
|
23
29
|
}
|
|
24
30
|
async primeEntitlements(tokenOverride) {
|
|
25
31
|
const accessToken = normalizeToken(tokenOverride) ?? this.currentAccessToken;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
async requireFeature(featureId) {
|
|
29
|
-
const accessToken = this.currentAccessToken;
|
|
30
|
-
const client = await this.ensureRuntime(accessToken);
|
|
31
|
-
if (!client.hasFeature(featureId)) {
|
|
32
|
-
throw new OmlAccessError(`Feature '${featureId}' is not enabled for this account.`, 403, 'FORBIDDEN');
|
|
32
|
+
if (!accessToken) {
|
|
33
|
+
throw authRequiredError();
|
|
33
34
|
}
|
|
35
|
+
await this.ensureClient(accessToken);
|
|
36
|
+
await this.startEntitlementSync(accessToken, true);
|
|
34
37
|
}
|
|
35
38
|
async runWithFeature(featureId, action, metadata) {
|
|
36
|
-
const accessToken = this.currentAccessToken;
|
|
37
|
-
|
|
39
|
+
const accessToken = normalizeToken(this.currentAccessToken);
|
|
40
|
+
if (!accessToken) {
|
|
41
|
+
throw authRequiredError();
|
|
42
|
+
}
|
|
43
|
+
const client = await this.ensureClient(accessToken);
|
|
44
|
+
await this.ensureEntitlementsAvailable(accessToken);
|
|
38
45
|
if (!client.hasFeature(featureId)) {
|
|
39
|
-
throw
|
|
46
|
+
throw notEntitledError(featureId);
|
|
40
47
|
}
|
|
41
48
|
const done = client.trackInvocation(featureId, metadata);
|
|
42
49
|
try {
|
|
@@ -50,40 +57,32 @@ export class OmlFeatureGate {
|
|
|
50
57
|
}
|
|
51
58
|
}
|
|
52
59
|
async dispose() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
await this.initPromise;
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
// ignore init failure during disposal
|
|
59
|
-
}
|
|
60
|
-
}
|
|
60
|
+
await this.reinitializePromise?.catch(() => undefined);
|
|
61
|
+
await this.entitlementSyncPromise?.catch(() => undefined);
|
|
61
62
|
const activeClient = this.client;
|
|
62
63
|
this.client = null;
|
|
63
64
|
this.runtimeToken = undefined;
|
|
65
|
+
this.entitlementsExpireAtMs = 0;
|
|
66
|
+
this.entitlementState = this.currentAccessToken ? 'pending' : 'idle';
|
|
64
67
|
if (activeClient) {
|
|
65
68
|
await activeClient.dispose();
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
|
-
async
|
|
69
|
-
|
|
70
|
-
if (!token) {
|
|
71
|
-
throw new OmlAccessError('OML server access requires authentication. Log in to continue.', 401, 'UNAUTHORIZED');
|
|
72
|
-
}
|
|
73
|
-
if (this.client && this.runtimeToken === token) {
|
|
71
|
+
async ensureClient(accessToken) {
|
|
72
|
+
if (this.client && this.runtimeToken === accessToken) {
|
|
74
73
|
return this.client;
|
|
75
74
|
}
|
|
76
|
-
if (this.
|
|
77
|
-
await this.
|
|
78
|
-
if (this.client && this.runtimeToken ===
|
|
75
|
+
if (this.reinitializePromise) {
|
|
76
|
+
await this.reinitializePromise;
|
|
77
|
+
if (this.client && this.runtimeToken === accessToken) {
|
|
79
78
|
return this.client;
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
|
-
this.
|
|
83
|
-
this.
|
|
81
|
+
this.reinitializePromise = this.reinitializeClient(accessToken).finally(() => {
|
|
82
|
+
this.reinitializePromise = undefined;
|
|
84
83
|
});
|
|
85
|
-
await this.
|
|
86
|
-
if (!this.client || this.runtimeToken !==
|
|
84
|
+
await this.reinitializePromise;
|
|
85
|
+
if (!this.client || this.runtimeToken !== accessToken) {
|
|
87
86
|
throw new Error('Failed to initialize OML platform runtime.');
|
|
88
87
|
}
|
|
89
88
|
return this.client;
|
|
@@ -93,6 +92,8 @@ export class OmlFeatureGate {
|
|
|
93
92
|
const previous = this.client;
|
|
94
93
|
this.client = null;
|
|
95
94
|
this.runtimeToken = undefined;
|
|
95
|
+
this.entitlementsExpireAtMs = 0;
|
|
96
|
+
this.entitlementState = 'pending';
|
|
96
97
|
if (previous) {
|
|
97
98
|
await previous.dispose();
|
|
98
99
|
}
|
|
@@ -104,36 +105,110 @@ export class OmlFeatureGate {
|
|
|
104
105
|
method: 'oauth',
|
|
105
106
|
getToken: async () => this.storage.getToken(),
|
|
106
107
|
refreshToken: async () => {
|
|
107
|
-
throw
|
|
108
|
+
throw authRequiredError('Authentication expired. Run login again and retry.');
|
|
108
109
|
},
|
|
109
110
|
},
|
|
110
111
|
debug: false,
|
|
111
112
|
};
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
this.client = client;
|
|
120
|
-
this.runtimeToken = token;
|
|
113
|
+
this.client = new OmlClient(config);
|
|
114
|
+
this.runtimeToken = token;
|
|
115
|
+
}
|
|
116
|
+
async ensureEntitlementsAvailable(accessToken) {
|
|
117
|
+
if (this.entitlementState === 'credential_revoked') {
|
|
118
|
+
throw entitlementsUnavailableError();
|
|
121
119
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
120
|
+
if (this.entitlementState === 'ready' && Date.now() < this.entitlementsExpireAtMs) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (this.entitlementState === 'pending' && this.entitlementsExpireAtMs === 0) {
|
|
124
|
+
void this.startEntitlementSync(accessToken, true);
|
|
125
|
+
throw entitlementsPendingError();
|
|
126
|
+
}
|
|
127
|
+
if (this.entitlementsExpireAtMs > 0 && Date.now() >= this.entitlementsExpireAtMs) {
|
|
128
|
+
await this.startEntitlementSync(accessToken, false);
|
|
129
|
+
if (this.isCredentialRevoked()) {
|
|
130
|
+
throw entitlementsUnavailableError();
|
|
126
131
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
throw new OmlAccessError('OML server access requires authentication. Log in to continue.', 401, 'UNAUTHORIZED');
|
|
132
|
+
if (this.entitlementState !== 'ready' || Date.now() >= this.entitlementsExpireAtMs) {
|
|
133
|
+
throw entitlementsPendingError('OML entitlements are unavailable. Retry once connectivity is restored.');
|
|
130
134
|
}
|
|
131
|
-
|
|
132
|
-
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
await this.startEntitlementSync(accessToken, this.entitlementsExpireAtMs === 0);
|
|
138
|
+
if (this.isCredentialRevoked()) {
|
|
139
|
+
throw entitlementsUnavailableError();
|
|
140
|
+
}
|
|
141
|
+
if (this.entitlementState !== 'ready') {
|
|
142
|
+
throw entitlementsPendingError();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async startEntitlementSync(accessToken, initial) {
|
|
146
|
+
if (this.entitlementSyncPromise) {
|
|
147
|
+
if (initial && this.entitlementsExpireAtMs === 0) {
|
|
148
|
+
return;
|
|
133
149
|
}
|
|
134
|
-
|
|
150
|
+
await this.entitlementSyncPromise;
|
|
151
|
+
return;
|
|
135
152
|
}
|
|
153
|
+
this.entitlementState = 'pending';
|
|
154
|
+
const client = await this.ensureClient(accessToken);
|
|
155
|
+
this.entitlementSyncPromise = (async () => {
|
|
156
|
+
try {
|
|
157
|
+
if (initial) {
|
|
158
|
+
await client.initialize();
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
await client.refreshEntitlements();
|
|
162
|
+
}
|
|
163
|
+
if (this.currentAccessToken !== accessToken) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
this.entitlementState = 'ready';
|
|
167
|
+
this.entitlementsExpireAtMs = Date.now() + ENTITLEMENT_TTL_MS;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
if (this.currentAccessToken !== accessToken) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (isUnauthorizedError(error)) {
|
|
174
|
+
this.entitlementState = 'credential_revoked';
|
|
175
|
+
this.entitlementsExpireAtMs = 0;
|
|
176
|
+
throw entitlementsUnavailableError();
|
|
177
|
+
}
|
|
178
|
+
// Fail closed: clear cached entitlements on refresh failure.
|
|
179
|
+
this.entitlementState = 'pending';
|
|
180
|
+
this.entitlementsExpireAtMs = 0;
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
183
|
+
})().finally(() => {
|
|
184
|
+
this.entitlementSyncPromise = undefined;
|
|
185
|
+
});
|
|
186
|
+
await this.entitlementSyncPromise;
|
|
187
|
+
}
|
|
188
|
+
isCredentialRevoked() {
|
|
189
|
+
return this.entitlementState === 'credential_revoked';
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function authRequiredError(message = 'OML authentication is required. Run login and retry.') {
|
|
193
|
+
return new OmlAccessError(message, 401, 'AUTH_REQUIRED');
|
|
194
|
+
}
|
|
195
|
+
function entitlementsPendingError(message = 'OML entitlements are still loading. Retry in a moment.') {
|
|
196
|
+
return new OmlAccessError(message, 503, 'ENTITLEMENTS_PENDING', true);
|
|
197
|
+
}
|
|
198
|
+
function entitlementsUnavailableError() {
|
|
199
|
+
return new OmlAccessError('OML entitlements are unavailable because the stored credential was revoked. Sign in again and retry.', 403, 'ENTITLEMENTS_UNAVAILABLE');
|
|
200
|
+
}
|
|
201
|
+
function notEntitledError(featureId) {
|
|
202
|
+
return new OmlAccessError(`Feature '${featureId}' is not enabled for this account.`, 403, 'NOT_ENTITLED');
|
|
203
|
+
}
|
|
204
|
+
function isUnauthorizedError(error) {
|
|
205
|
+
if (error instanceof OmlAccessError) {
|
|
206
|
+
return error.code === 'AUTH_REQUIRED' || error.code === 'ENTITLEMENTS_UNAVAILABLE';
|
|
207
|
+
}
|
|
208
|
+
if (error instanceof ApiError) {
|
|
209
|
+
return error.status === 401;
|
|
136
210
|
}
|
|
211
|
+
return false;
|
|
137
212
|
}
|
|
138
213
|
function normalizeToken(value) {
|
|
139
214
|
const trimmed = typeof value === 'string' ? value.trim() : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-gate.js","sourceRoot":"","sources":["../../src/auth/feature-gate.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,SAAS,EAAwB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-gate.js","sourceRoot":"","sources":["../../src/auth/feature-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare class OmlAccessError extends Error {
|
|
2
2
|
readonly statusCode: number;
|
|
3
|
-
readonly code: '
|
|
4
|
-
|
|
3
|
+
readonly code: 'AUTH_REQUIRED' | 'ENTITLEMENTS_PENDING' | 'ENTITLEMENTS_UNAVAILABLE' | 'NOT_ENTITLED';
|
|
4
|
+
readonly retryable: boolean;
|
|
5
|
+
constructor(message: string, statusCode: number, code: 'AUTH_REQUIRED' | 'ENTITLEMENTS_PENDING' | 'ENTITLEMENTS_UNAVAILABLE' | 'NOT_ENTITLED', retryable?: boolean);
|
|
5
6
|
}
|
|
6
7
|
export interface OmlFeatureGateLike {
|
|
7
8
|
setAccessToken(token: string | undefined): void;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
2
|
const REST_FEATURES_BY_OPERATION = {
|
|
3
|
-
query: 'oml-
|
|
3
|
+
query: 'oml-query',
|
|
4
4
|
update: 'oml-update',
|
|
5
|
-
fuzzysearch: 'oml-
|
|
5
|
+
fuzzysearch: 'oml-read',
|
|
6
|
+
models: 'oml-read',
|
|
6
7
|
lint: 'oml-lint',
|
|
7
8
|
reason: 'oml-reason',
|
|
8
9
|
validate: 'oml-validate',
|
|
@@ -10,9 +11,9 @@ const REST_FEATURES_BY_OPERATION = {
|
|
|
10
11
|
export: 'oml-export',
|
|
11
12
|
};
|
|
12
13
|
const LSP_FEATURES_BY_METHOD = {
|
|
13
|
-
'oml/query': 'oml-
|
|
14
|
+
'oml/query': 'oml-query',
|
|
14
15
|
'oml/fuzzysearch': 'oml-text',
|
|
15
|
-
'oml/resolveModelUri': 'oml-
|
|
16
|
+
'oml/resolveModelUri': 'oml-markdown',
|
|
16
17
|
'oml/completion': 'oml-text',
|
|
17
18
|
'oml/update': 'oml-update',
|
|
18
19
|
'oml/validate': 'oml-validate',
|
|
@@ -20,13 +21,21 @@ const LSP_FEATURES_BY_METHOD = {
|
|
|
20
21
|
'oml/diagram/model': 'oml-diagram',
|
|
21
22
|
'oml/definition': 'oml-text',
|
|
22
23
|
'oml/labels': 'oml-text',
|
|
24
|
+
'textDocument/completion': 'oml-text',
|
|
25
|
+
'textDocument/hover': 'oml-text',
|
|
26
|
+
'textDocument/definition': 'oml-text',
|
|
27
|
+
'textDocument/references': 'oml-text',
|
|
28
|
+
'textDocument/documentSymbol': 'oml-text',
|
|
29
|
+
'textDocument/codeAction': 'oml-text',
|
|
30
|
+
'textDocument/rename': 'oml-update',
|
|
23
31
|
};
|
|
24
32
|
export class OmlAccessError extends Error {
|
|
25
|
-
constructor(message, statusCode, code) {
|
|
33
|
+
constructor(message, statusCode, code, retryable = false) {
|
|
26
34
|
super(message);
|
|
27
35
|
this.name = 'OmlAccessError';
|
|
28
36
|
this.statusCode = statusCode;
|
|
29
37
|
this.code = code;
|
|
38
|
+
this.retryable = retryable;
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
41
|
export function requiredFeatureForRestOperation(operationId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-policy.js","sourceRoot":"","sources":["../../src/auth/feature-policy.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,0BAA0B,GAA2B;IACvD,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"feature-policy.js","sourceRoot":"","sources":["../../src/auth/feature-policy.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,0BAA0B,GAA2B;IACvD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,UAAU;IACvB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;CACvB,CAAC;AAEF,MAAM,sBAAsB,GAA2B;IACnD,WAAW,EAAE,WAAW;IACxB,iBAAiB,EAAE,UAAU;IAC7B,qBAAqB,EAAE,cAAc;IACrC,gBAAgB,EAAE,UAAU;IAC5B,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc;IAC9B,mBAAmB,EAAE,aAAa;IAClC,gBAAgB,EAAE,UAAU;IAC5B,YAAY,EAAE,UAAU;IACxB,yBAAyB,EAAE,UAAU;IACrC,oBAAoB,EAAE,UAAU;IAChC,yBAAyB,EAAE,UAAU;IACrC,yBAAyB,EAAE,UAAU;IACrC,6BAA6B,EAAE,UAAU;IACzC,yBAAyB,EAAE,UAAU;IACrC,qBAAqB,EAAE,YAAY;CACtC,CAAC;AAEF,MAAM,OAAO,cAAe,SAAQ,KAAK;IAKrC,YACI,OAAe,EACf,UAAkB,EAClB,IAA4F,EAC5F,SAAS,GAAG,KAAK;QAEjB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ;AAaD,MAAM,UAAU,+BAA+B,CAAC,WAAmB;IAC/D,OAAO,0BAA0B,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACtD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
package/out/cli.js
CHANGED
|
@@ -8,6 +8,17 @@ import { createConnection } from 'vscode-languageserver/node.js';
|
|
|
8
8
|
import { startOmlLanguageServer } from './lsp/language-server.js';
|
|
9
9
|
import { startOmlRestServer } from './rest/server.js';
|
|
10
10
|
import { OmlFeatureGate } from './auth/feature-gate.js';
|
|
11
|
+
const SERVER_DEBUG_ENABLED = process.env.OML_SERVER_DEBUG_STARTUP === '1';
|
|
12
|
+
function debugServerStartup(event, details = {}) {
|
|
13
|
+
if (!SERVER_DEBUG_ENABLED) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const fields = Object.entries(details)
|
|
17
|
+
.map(([key, value]) => `${key}=${String(value)}`)
|
|
18
|
+
.join(' ');
|
|
19
|
+
const suffix = fields.length > 0 ? ` ${fields}` : '';
|
|
20
|
+
process.stderr.write(`[oml-server][debug] ${new Date().toISOString()} pid=${process.pid} event=${event}${suffix}\n`);
|
|
21
|
+
}
|
|
11
22
|
function formatStartupError(error, host, port) {
|
|
12
23
|
if (error && typeof error === 'object' && 'code' in error) {
|
|
13
24
|
const code = error.code;
|
|
@@ -96,11 +107,21 @@ function lockFilePathForWorkspace(workspaceRoot) {
|
|
|
96
107
|
async function writeServerLock(workspaceRoot, port, owner) {
|
|
97
108
|
const lockFile = lockFilePathForWorkspace(workspaceRoot);
|
|
98
109
|
await fs.mkdir(path.dirname(lockFile), { recursive: true });
|
|
99
|
-
await fs.writeFile(lockFile, JSON.stringify({ port, pid: process.pid, owner }) + '\n', 'utf-8');
|
|
110
|
+
await fs.writeFile(lockFile, JSON.stringify({ port, pid: process.pid, owner, workspaceRoot }) + '\n', 'utf-8');
|
|
111
|
+
debugServerStartup('lock.write', { lockFile, owner, port, workspaceRoot });
|
|
100
112
|
return lockFile;
|
|
101
113
|
}
|
|
102
114
|
async function removeServerLock(lockFile) {
|
|
103
|
-
|
|
115
|
+
debugServerStartup('lock.remove.begin', { lockFile });
|
|
116
|
+
try {
|
|
117
|
+
await fs.rm(lockFile, { force: true });
|
|
118
|
+
debugServerStartup('lock.remove.success', { lockFile });
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
122
|
+
debugServerStartup('lock.remove.error', { lockFile, error: message });
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
104
125
|
}
|
|
105
126
|
function resolveListeningPort(server) {
|
|
106
127
|
const address = server.address();
|
|
@@ -110,12 +131,21 @@ function resolveListeningPort(server) {
|
|
|
110
131
|
return address.port;
|
|
111
132
|
}
|
|
112
133
|
export function runServerCli(argv = process.argv.slice(2)) {
|
|
134
|
+
debugServerStartup('bootstrap.begin', { argv: argv.join(' ') });
|
|
113
135
|
let options;
|
|
114
136
|
try {
|
|
115
137
|
options = parseRemoteOptions(argv);
|
|
138
|
+
debugServerStartup('options.parsed', {
|
|
139
|
+
host: options.host,
|
|
140
|
+
requestedPort: options.port,
|
|
141
|
+
workspaceRoot: path.resolve(options.workspaceRoot),
|
|
142
|
+
tokenProvided: options.token ? 'yes' : 'no',
|
|
143
|
+
mode: typeof process.send === 'function' ? 'extension' : 'daemon',
|
|
144
|
+
});
|
|
116
145
|
}
|
|
117
146
|
catch (error) {
|
|
118
147
|
const message = error instanceof Error ? error.message : String(error);
|
|
148
|
+
debugServerStartup('bootstrap.options.error', { error: message });
|
|
119
149
|
process.stderr.write(`[oml-server] REST startup failed: ${message}\n`);
|
|
120
150
|
process.exitCode = 1;
|
|
121
151
|
process.exit();
|
|
@@ -123,12 +153,23 @@ export function runServerCli(argv = process.argv.slice(2)) {
|
|
|
123
153
|
}
|
|
124
154
|
void (async () => {
|
|
125
155
|
const runtimeTool = typeof process.send === 'function' ? 'oml-code' : 'oml-cli';
|
|
156
|
+
debugServerStartup('featureGate.create', { tool: runtimeTool });
|
|
126
157
|
const featureGate = new OmlFeatureGate({ initialAccessToken: options.token, tool: runtimeTool });
|
|
127
158
|
if (options.token) {
|
|
128
|
-
|
|
159
|
+
try {
|
|
160
|
+
debugServerStartup('entitlements.prime.begin');
|
|
161
|
+
await featureGate.primeEntitlements();
|
|
162
|
+
debugServerStartup('entitlements.prime.success');
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
166
|
+
debugServerStartup('entitlements.prime.error', { error: message });
|
|
167
|
+
process.stderr.write(`[oml-server] initial entitlement sync failed: ${message}\n`);
|
|
168
|
+
}
|
|
129
169
|
}
|
|
130
170
|
const ipcServer = startIpcLanguageServerIfAvailable(featureGate);
|
|
131
171
|
const owner = ipcServer ? 'extension' : 'daemon';
|
|
172
|
+
debugServerStartup('rest.start.begin', { owner });
|
|
132
173
|
const { server, updateToken } = await startOmlRestServer({
|
|
133
174
|
host: options.host,
|
|
134
175
|
port: options.port,
|
|
@@ -141,35 +182,43 @@ export function runServerCli(argv = process.argv.slice(2)) {
|
|
|
141
182
|
if (ipcServer) {
|
|
142
183
|
ipcServer.connection.onNotification('$/tokenRefreshed', (params) => {
|
|
143
184
|
if (params?.accessToken) {
|
|
144
|
-
|
|
185
|
+
debugServerStartup('token.refresh.notification', { received: 'yes' });
|
|
186
|
+
void updateToken(params.accessToken).then(() => debugServerStartup('token.refresh.sync.success'), (error) => {
|
|
145
187
|
const message = error instanceof Error ? error.message : String(error);
|
|
188
|
+
debugServerStartup('token.refresh.sync.error', { error: message });
|
|
146
189
|
process.stderr.write(`[oml-server] token refresh entitlement sync failed: ${message}\n`);
|
|
147
190
|
});
|
|
148
191
|
}
|
|
149
192
|
});
|
|
150
193
|
}
|
|
151
194
|
const listeningPort = resolveListeningPort(server);
|
|
195
|
+
debugServerStartup('rest.start.success', { host: options.host, requestedPort: options.port, listeningPort });
|
|
152
196
|
const lockFile = await writeServerLock(options.workspaceRoot, listeningPort, owner);
|
|
153
197
|
let shuttingDown = false;
|
|
154
|
-
const shutdown = (exitCode) => {
|
|
198
|
+
const shutdown = (exitCode, reason) => {
|
|
155
199
|
if (shuttingDown) {
|
|
200
|
+
debugServerStartup('shutdown.ignored', { reason, exitCode });
|
|
156
201
|
return;
|
|
157
202
|
}
|
|
158
203
|
shuttingDown = true;
|
|
204
|
+
debugServerStartup('shutdown.begin', { reason, exitCode, lockFile });
|
|
159
205
|
server.close(() => {
|
|
160
206
|
void removeServerLock(lockFile).finally(() => {
|
|
207
|
+
debugServerStartup('shutdown.exit', { reason, exitCode });
|
|
161
208
|
process.exit(exitCode);
|
|
162
209
|
});
|
|
163
210
|
});
|
|
164
211
|
};
|
|
165
|
-
process.once('SIGINT', () => shutdown(0));
|
|
166
|
-
process.once('SIGTERM', () => shutdown(0));
|
|
212
|
+
process.once('SIGINT', () => shutdown(0, 'sigint'));
|
|
213
|
+
process.once('SIGTERM', () => shutdown(0, 'sigterm'));
|
|
167
214
|
server.once('close', () => {
|
|
215
|
+
debugServerStartup('server.close.event', { lockFile });
|
|
168
216
|
void removeServerLock(lockFile);
|
|
169
217
|
});
|
|
170
218
|
process.stdout.write(`[oml-server] REST listening on http://${options.host}:${listeningPort}\n`);
|
|
171
219
|
})().catch((error) => {
|
|
172
220
|
const message = formatStartupError(error, options.host, options.port);
|
|
221
|
+
debugServerStartup('rest.start.error', { error: message, host: options.host, requestedPort: options.port });
|
|
173
222
|
process.stderr.write(`[oml-server] REST startup failed: ${message}\n`);
|
|
174
223
|
process.exitCode = 1;
|
|
175
224
|
process.exit();
|
package/out/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/out/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './lsp/language-server.js';
|
|
2
2
|
export * from './lsp/diagram-server.js';
|
|
3
3
|
export * from './rest/server.js';
|
|
4
|
+
export * from './auth/feature-gate.js';
|
|
4
5
|
export * from './lsp/providers/browser-fs-provider.js';
|
|
5
6
|
export * from './lsp/providers/hybrid-fs-provider.js';
|
|
6
7
|
export * from './lsp/protocol/reasoner-protocol.js';
|
package/out/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export * from './lsp/language-server.js';
|
|
3
3
|
export * from './lsp/diagram-server.js';
|
|
4
4
|
export * from './rest/server.js';
|
|
5
|
+
export * from './auth/feature-gate.js';
|
|
5
6
|
export * from './lsp/providers/browser-fs-provider.js';
|
|
6
7
|
export * from './lsp/providers/hybrid-fs-provider.js';
|
|
7
8
|
export * from './lsp/protocol/reasoner-protocol.js';
|
package/out/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DefaultSharedModuleContext } from 'langium/lsp';
|
|
2
|
-
import type
|
|
2
|
+
import { type Connection } from 'vscode-languageserver';
|
|
3
3
|
import { type OmlFeatureGateLike } from '../auth/feature-policy.js';
|
|
4
4
|
export interface OmlLanguageServerStartOptions {
|
|
5
5
|
fileSystem: Omit<DefaultSharedModuleContext, 'connection'>;
|