@braidhq/server 0.2.1 → 0.4.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.
- package/README.md +47 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +47 -8
- package/dist/app.js.map +1 -1
- package/dist/composeApp.d.ts +15 -3
- package/dist/composeApp.d.ts.map +1 -1
- package/dist/composeApp.js +28 -2
- package/dist/composeApp.js.map +1 -1
- package/dist/composeFsApp.d.ts +52 -3
- package/dist/composeFsApp.d.ts.map +1 -1
- package/dist/composeFsApp.js +237 -64
- package/dist/composeFsApp.js.map +1 -1
- package/dist/defaultOntologyPlugins.d.ts +9 -0
- package/dist/defaultOntologyPlugins.d.ts.map +1 -0
- package/dist/defaultOntologyPlugins.js +11 -0
- package/dist/defaultOntologyPlugins.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/_shared/paths.d.ts +2 -0
- package/dist/infrastructure/_shared/paths.d.ts.map +1 -1
- package/dist/infrastructure/_shared/paths.js +6 -0
- package/dist/infrastructure/_shared/paths.js.map +1 -1
- package/dist/infrastructure/oauth/GitHubOAuth.d.ts +45 -0
- package/dist/infrastructure/oauth/GitHubOAuth.d.ts.map +1 -0
- package/dist/infrastructure/oauth/GitHubOAuth.js +85 -0
- package/dist/infrastructure/oauth/GitHubOAuth.js.map +1 -0
- package/dist/infrastructure/oauth/providers.d.ts +19 -0
- package/dist/infrastructure/oauth/providers.d.ts.map +1 -0
- package/dist/infrastructure/oauth/providers.js +22 -0
- package/dist/infrastructure/oauth/providers.js.map +1 -0
- package/dist/infrastructure/skill/FsSkillRegistry.d.ts +6 -0
- package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -1
- package/dist/infrastructure/skill/FsSkillRegistry.js +7 -1
- package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -1
- package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +28 -5
- package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -1
- package/dist/infrastructure/skill/SubprocessSkillRunner.js +133 -13
- package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -1
- package/dist/infrastructure/source/FsSourceSyncStateRepository.d.ts +24 -0
- package/dist/infrastructure/source/FsSourceSyncStateRepository.d.ts.map +1 -0
- package/dist/infrastructure/source/FsSourceSyncStateRepository.js +71 -0
- package/dist/infrastructure/source/FsSourceSyncStateRepository.js.map +1 -0
- package/dist/infrastructure/source/unitScan.d.ts.map +1 -1
- package/dist/infrastructure/source/unitScan.js +51 -3
- package/dist/infrastructure/source/unitScan.js.map +1 -1
- package/dist/infrastructure/workspace/productManifestWriter.d.ts +5 -1
- package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -1
- package/dist/infrastructure/workspace/productManifestWriter.js +5 -2
- package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -1
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +8 -1
- package/dist/middleware/auth.js.map +1 -1
- package/dist/routes/oauth.d.ts +51 -10
- package/dist/routes/oauth.d.ts.map +1 -1
- package/dist/routes/oauth.js +174 -62
- package/dist/routes/oauth.js.map +1 -1
- package/dist/routes/skillInputOptions.js +4 -1
- package/dist/routes/skillInputOptions.js.map +1 -1
- package/dist/routes/skills.d.ts +7 -1
- package/dist/routes/skills.d.ts.map +1 -1
- package/dist/routes/skills.js +10 -0
- package/dist/routes/skills.js.map +1 -1
- package/dist/routes/sourceConnection.d.ts +30 -0
- package/dist/routes/sourceConnection.d.ts.map +1 -0
- package/dist/routes/sourceConnection.js +51 -0
- package/dist/routes/sourceConnection.js.map +1 -0
- package/dist/routes/sourceWebhooks.d.ts +10 -2
- package/dist/routes/sourceWebhooks.d.ts.map +1 -1
- package/dist/routes/sourceWebhooks.js +23 -11
- package/dist/routes/sourceWebhooks.js.map +1 -1
- package/dist/routes/workspaces.d.ts +10 -1
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/routes/workspaces.js +50 -7
- package/dist/routes/workspaces.js.map +1 -1
- package/dist/startServer.d.ts +7 -1
- package/dist/startServer.d.ts.map +1 -1
- package/dist/startServer.js +18 -3
- package/dist/startServer.js.map +1 -1
- package/dist/startup.d.ts.map +1 -1
- package/dist/startup.js +7 -1
- package/dist/startup.js.map +1 -1
- package/package.json +17 -15
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export interface GitHubOAuthConfig {
|
|
2
|
+
readonly clientId: string;
|
|
3
|
+
readonly clientSecret: string;
|
|
4
|
+
readonly redirectUri: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Tokens from the GitHub App user-to-server flow.
|
|
8
|
+
* GitHub rotates the refresh token on every refresh,
|
|
9
|
+
* so a refreshed set always carries a new `refreshToken`,
|
|
10
|
+
* unlike Google which keeps one.
|
|
11
|
+
*/
|
|
12
|
+
export interface GitHubTokenSet {
|
|
13
|
+
readonly accessToken: string;
|
|
14
|
+
readonly refreshToken: string;
|
|
15
|
+
readonly expiresAt: string;
|
|
16
|
+
readonly refreshTokenExpiresAt: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Minimal GitHub App user-to-server OAuth client, a mirror of GoogleOAuth.
|
|
20
|
+
* Three calls are needed, build the URL, exchange the code, and refresh.
|
|
21
|
+
* GitHub has no PKCE, and a GitHub App fixes its permissions on the App,
|
|
22
|
+
* so there is no `scope` parameter here.
|
|
23
|
+
*
|
|
24
|
+
* The App must enable expiring user tokens. Without them,
|
|
25
|
+
* GitHub returns no refresh token, and `exchangeCode` throws an error.
|
|
26
|
+
*/
|
|
27
|
+
export declare class GitHubOAuth {
|
|
28
|
+
private readonly config;
|
|
29
|
+
private readonly fetchFn;
|
|
30
|
+
constructor(config: GitHubOAuthConfig, fetchFn?: typeof globalThis.fetch);
|
|
31
|
+
/**
|
|
32
|
+
* Build the URL the user's browser is sent to.
|
|
33
|
+
* `state` MUST be unique per flow,
|
|
34
|
+
* the caller stores it until the callback arrives.
|
|
35
|
+
*/
|
|
36
|
+
buildAuthorizationUrl(input: {
|
|
37
|
+
state: string;
|
|
38
|
+
}): string;
|
|
39
|
+
exchangeCode(input: {
|
|
40
|
+
code: string;
|
|
41
|
+
}): Promise<GitHubTokenSet>;
|
|
42
|
+
refreshAccessToken(refreshToken: string): Promise<GitHubTokenSet>;
|
|
43
|
+
private postToken;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=GitHubOAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubOAuth.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/oauth/GitHubOAuth.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAG7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;CACvC;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAEpB,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,OAAO,UAAU,CAAC,KAAwB;IAI3G;;;;OAIG;IACH,qBAAqB,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IASjD,YAAY,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB9D,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAYzD,SAAS;CAiBxB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const AUTH_ENDPOINT = 'https://github.com/login/oauth/authorize';
|
|
2
|
+
const TOKEN_ENDPOINT = 'https://github.com/login/oauth/access_token';
|
|
3
|
+
/**
|
|
4
|
+
* Minimal GitHub App user-to-server OAuth client, a mirror of GoogleOAuth.
|
|
5
|
+
* Three calls are needed, build the URL, exchange the code, and refresh.
|
|
6
|
+
* GitHub has no PKCE, and a GitHub App fixes its permissions on the App,
|
|
7
|
+
* so there is no `scope` parameter here.
|
|
8
|
+
*
|
|
9
|
+
* The App must enable expiring user tokens. Without them,
|
|
10
|
+
* GitHub returns no refresh token, and `exchangeCode` throws an error.
|
|
11
|
+
*/
|
|
12
|
+
export class GitHubOAuth {
|
|
13
|
+
config;
|
|
14
|
+
fetchFn;
|
|
15
|
+
constructor(config, fetchFn = globalThis.fetch) {
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.fetchFn = fetchFn;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build the URL the user's browser is sent to.
|
|
21
|
+
* `state` MUST be unique per flow,
|
|
22
|
+
* the caller stores it until the callback arrives.
|
|
23
|
+
*/
|
|
24
|
+
buildAuthorizationUrl(input) {
|
|
25
|
+
const params = new URLSearchParams({
|
|
26
|
+
client_id: this.config.clientId,
|
|
27
|
+
redirect_uri: this.config.redirectUri,
|
|
28
|
+
state: input.state,
|
|
29
|
+
});
|
|
30
|
+
return `${AUTH_ENDPOINT}?${params.toString()}`;
|
|
31
|
+
}
|
|
32
|
+
async exchangeCode(input) {
|
|
33
|
+
const payload = await this.postToken(new URLSearchParams({
|
|
34
|
+
client_id: this.config.clientId,
|
|
35
|
+
client_secret: this.config.clientSecret,
|
|
36
|
+
redirect_uri: this.config.redirectUri,
|
|
37
|
+
grant_type: 'authorization_code',
|
|
38
|
+
code: input.code,
|
|
39
|
+
}));
|
|
40
|
+
if (!payload.refresh_token || payload.expires_in === undefined) {
|
|
41
|
+
throw new Error('GitHub did not return a refresh token. Enable expiring user tokens on the GitHub App, then reconnect.');
|
|
42
|
+
}
|
|
43
|
+
return tokenSetFromPayload(payload);
|
|
44
|
+
}
|
|
45
|
+
async refreshAccessToken(refreshToken) {
|
|
46
|
+
const payload = await this.postToken(new URLSearchParams({
|
|
47
|
+
client_id: this.config.clientId,
|
|
48
|
+
client_secret: this.config.clientSecret,
|
|
49
|
+
grant_type: 'refresh_token',
|
|
50
|
+
refresh_token: refreshToken,
|
|
51
|
+
}));
|
|
52
|
+
if (!payload.refresh_token || payload.expires_in === undefined)
|
|
53
|
+
throw new Error('GitHub refresh did not return a rotated refresh token.');
|
|
54
|
+
return tokenSetFromPayload(payload);
|
|
55
|
+
}
|
|
56
|
+
async postToken(body) {
|
|
57
|
+
const response = await this.fetchFn(TOKEN_ENDPOINT, {
|
|
58
|
+
method: 'POST',
|
|
59
|
+
headers: { 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
60
|
+
body,
|
|
61
|
+
});
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
const text = await response.text().catch(() => '');
|
|
64
|
+
throw new Error(`GitHub token request failed: ${response.status} ${response.statusText} ${text}`);
|
|
65
|
+
}
|
|
66
|
+
const payload = await response.json();
|
|
67
|
+
// GitHub reports OAuth failures as HTTP 200 with an `error` field,
|
|
68
|
+
// so a non-error status alone does not mean the exchange succeeded.
|
|
69
|
+
if (payload.error)
|
|
70
|
+
throw new Error(`GitHub token request failed: ${payload.error_description ?? payload.error}`);
|
|
71
|
+
return payload;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function tokenSetFromPayload(p) {
|
|
75
|
+
return {
|
|
76
|
+
accessToken: p.access_token,
|
|
77
|
+
refreshToken: p.refresh_token,
|
|
78
|
+
expiresAt: secondsFromNow(p.expires_in).toISOString(),
|
|
79
|
+
refreshTokenExpiresAt: secondsFromNow(p.refresh_token_expires_in ?? p.expires_in).toISOString(),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function secondsFromNow(seconds) {
|
|
83
|
+
return new Date(Date.now() + seconds * 1000);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=GitHubOAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubOAuth.js","sourceRoot":"","sources":["../../../src/infrastructure/oauth/GitHubOAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** A connectable OAuth provider and where its tokens and sources live. */
|
|
2
|
+
export interface OAuthProviderInfo {
|
|
3
|
+
readonly id: 'google' | 'github';
|
|
4
|
+
readonly label: string;
|
|
5
|
+
readonly namespace: string;
|
|
6
|
+
readonly loaderKind: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The single place a provider's id, label, token namespace,
|
|
10
|
+
* and loader kind are tied together. Routes and the composition root
|
|
11
|
+
* derive their lists from this,
|
|
12
|
+
* so a new provider is one entry here rather than edits across files.
|
|
13
|
+
*/
|
|
14
|
+
export declare const OAUTH_PROVIDERS: readonly OAuthProviderInfo[];
|
|
15
|
+
/** The registry entry for a provider id. */
|
|
16
|
+
export declare function oauthProvider(id: OAuthProviderInfo['id']): OAuthProviderInfo;
|
|
17
|
+
/** The secret-store namespace a provider's tokens live under. */
|
|
18
|
+
export declare function oauthNamespace(id: OAuthProviderInfo['id']): string;
|
|
19
|
+
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/oauth/providers.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,iBAAiB,EAGvD,CAAA;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAK5E;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAElE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single place a provider's id, label, token namespace,
|
|
3
|
+
* and loader kind are tied together. Routes and the composition root
|
|
4
|
+
* derive their lists from this,
|
|
5
|
+
* so a new provider is one entry here rather than edits across files.
|
|
6
|
+
*/
|
|
7
|
+
export const OAUTH_PROVIDERS = [
|
|
8
|
+
{ id: 'google', label: 'Google', namespace: 'oauth-google', loaderKind: 'gdrive' },
|
|
9
|
+
{ id: 'github', label: 'GitHub', namespace: 'oauth-github', loaderKind: 'github' },
|
|
10
|
+
];
|
|
11
|
+
/** The registry entry for a provider id. */
|
|
12
|
+
export function oauthProvider(id) {
|
|
13
|
+
const provider = OAUTH_PROVIDERS.find(entry => entry.id === id);
|
|
14
|
+
if (!provider)
|
|
15
|
+
throw new Error(`Unknown OAuth provider "${id}".`);
|
|
16
|
+
return provider;
|
|
17
|
+
}
|
|
18
|
+
/** The secret-store namespace a provider's tokens live under. */
|
|
19
|
+
export function oauthNamespace(id) {
|
|
20
|
+
return oauthProvider(id).namespace;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/infrastructure/oauth/providers.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiC;IAC3D,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;IAClF,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;CACnF,CAAA;AAED,4CAA4C;AAC5C,MAAM,UAAU,aAAa,CAAC,EAA2B;IACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/D,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAA;IACpD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,EAA2B;IACxD,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,CAAA;AACpC,CAAC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { AbsolutePath, SkillId } from '@braidhq/schema';
|
|
2
2
|
import { type PluginRegistry, SkillManifest, type SkillRegistry, type Workspace } from '@braidhq/core';
|
|
3
|
+
/**
|
|
4
|
+
* Namespace for skills and reference docs shipped by the framework itself.
|
|
5
|
+
* Builtin skills invoke as `braid:<verb>`,
|
|
6
|
+
* and core's shared reference docs mount under the same namespace.
|
|
7
|
+
*/
|
|
8
|
+
export declare const BUILTIN_SKILL_NAMESPACE = "braid";
|
|
3
9
|
export interface FsSkillRegistryOptions {
|
|
4
10
|
readonly builtinSkillsRoot: AbsolutePath;
|
|
5
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FsSkillRegistry.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/skill/FsSkillRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,OAAO,EAAe,MAAM,iBAAiB,CAAA;AAK3F,OAAO,EAAiB,KAAK,cAAc,EAAE,aAAa,EAAE,KAAK,aAAa,EAA0B,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"FsSkillRegistry.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/skill/FsSkillRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,OAAO,EAAe,MAAM,iBAAiB,CAAA;AAK3F,OAAO,EAAiB,KAAK,cAAc,EAAE,aAAa,EAAE,KAAK,aAAa,EAA0B,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAK7I;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,UAAU,CAAA;AAO9C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAA;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;CACzC;AAED,qBAAa,eAAgB,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,sBAAsB;IAEtD,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IA4B7D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAKhF,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;YAO3D,cAAc;YA+Bd,gBAAgB;YAuBhB,iBAAiB;YAwBjB,oBAAoB;YA4BpB,WAAW;CAc1B"}
|
|
@@ -6,6 +6,12 @@ import { NotFoundError, SkillManifest, validateSkillStructure } from '@braidhq/c
|
|
|
6
6
|
import { AbsolutePath as AbsolutePathSchema, SkillFrontmatter as SkillFrontmatterSchema, SkillId as SkillIdSchema } from '@braidhq/schema';
|
|
7
7
|
import { parseMarkdownFrontmatter } from '../_shared/frontmatter.js';
|
|
8
8
|
import { workspaceSkillExtensionsDir, workspaceSkillsDir } from '../_shared/paths.js';
|
|
9
|
+
/**
|
|
10
|
+
* Namespace for skills and reference docs shipped by the framework itself.
|
|
11
|
+
* Builtin skills invoke as `braid:<verb>`,
|
|
12
|
+
* and core's shared reference docs mount under the same namespace.
|
|
13
|
+
*/
|
|
14
|
+
export const BUILTIN_SKILL_NAMESPACE = 'braid';
|
|
9
15
|
export class FsSkillRegistry {
|
|
10
16
|
options;
|
|
11
17
|
constructor(options) {
|
|
@@ -58,7 +64,7 @@ export class FsSkillRegistry {
|
|
|
58
64
|
// The directory is the bare verb. Namespace it by origin,
|
|
59
65
|
// builtins under `braid`, workspace skills under `workspace`,
|
|
60
66
|
// so the id matches the plugin the agent binding stages it as.
|
|
61
|
-
const namespace = origin === 'builtin' ?
|
|
67
|
+
const namespace = origin === 'builtin' ? BUILTIN_SKILL_NAMESPACE : 'workspace';
|
|
62
68
|
manifests.push(new SkillManifest({
|
|
63
69
|
id: SkillIdSchema.parse(`${namespace}:${entry.name}`),
|
|
64
70
|
origin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FsSkillRegistry.js","sourceRoot":"","sources":["../../../src/infrastructure/skill/FsSkillRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAuB,aAAa,EAAsB,sBAAsB,EAAkB,MAAM,eAAe,CAAA;AAC7I,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1I,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"FsSkillRegistry.js","sourceRoot":"","sources":["../../../src/infrastructure/skill/FsSkillRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAuB,aAAa,EAAsB,sBAAsB,EAAkB,MAAM,eAAe,CAAA;AAC7I,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1I,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAErF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAkB9C,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAEhE,KAAK,CAAC,IAAI,CAAC,SAAoB;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;QACrF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAClD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAC/C,kBAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAChE,WAAW,CACZ,CAAA;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC7C,kBAAkB,CAAC,KAAK,CAAC,2BAA2B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAC1E,CAAA;QAED,wDAAwD;QACxD,4DAA4D;QAC5D,gEAAgE;QAChE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAA;QACnD,KAAK,MAAM,QAAQ,IAAI,QAAQ;YAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACrE,KAAK,MAAM,QAAQ,IAAI,YAAY;YAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACzE,KAAK,MAAM,QAAQ,IAAI,eAAe;YAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC5E,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAA;gBAC9B,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAoB,EAAE,OAAgB;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAoB,EAAE,OAAgB;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,aAAa,CAAC,UAAU,OAAO,8BAA8B,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;QACzF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAkB,EAAE,MAA+B;QAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,SAAS,GAAoB,EAAE,CAAA;QACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACtB,SAAQ;YACV,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;YAC9E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC9D,IAAI,CAAC,WAAW;gBACd,SAAQ;YACV,0DAA0D;YAC1D,8DAA8D;YAC9D,+DAA+D;YAC/D,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,WAAW,CAAA;YAC9E,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC;gBAC/B,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACrD,MAAM;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW;aACZ,CAAC,CAAC,CAAA;QACL,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,0CAA0C;IAC1C,iCAAiC;IACjC,2CAA2C;IAC3C,kCAAkC;IAClC,iEAAiE;IACzD,KAAK,CAAC,gBAAgB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,QAAQ;YACX,OAAO,EAAE,CAAA;QACX,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAA;QACpC,MAAM,SAAS,GAAoB,EAAE,CAAA;QACrC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC5F,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;YACjE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC9D,IAAI,CAAC,WAAW;gBACd,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,aAAa,qBAAqB,GAAG,CAAC,EAAE,QAAQ,GAAG,0BAA0B,CAAC,CAAA;YAC/G,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC;gBAC/B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,QAAuB;gBAC/B,IAAI,EAAE,SAAS;gBACf,WAAW;gBACX,QAAQ,EAAE,GAAG,CAAC,aAAa;aAC5B,CAAC,CAAC,CAAA;QACL,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAkB;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,OAAO,GAA+C,EAAE,CAAA;QAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACtB,SAAQ;YACV,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;YAChF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,CAAA;gBACtB,8DAA8D;gBAC9D,wDAAwD;gBACxD,kEAAkE;gBAClE,gCAAgC;gBAChC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACjE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;YACjD,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;oBACpD,MAAM,KAAK,CAAA;YACf,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,SAAuB;QACxD,IAAI,OAAe,CAAA;QACnB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBACpD,OAAO,SAAS,CAAA;YAClB,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAU,OAAO,CAAC,CAAA;QAC7E,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAErD,uEAAuE;QACvE,4BAA4B;QAC5B,8BAA8B;QAC9B,6DAA6D;QAC7D,kEAAkE;QAClE,qDAAqD;QACrD,MAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9E,MAAM,IAAI,KAAK,CAAC,eAAe,SAAS,mCAAmC,MAAM,EAAE,CAAC,CAAA;QACtF,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,SAAiB;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;YACjE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5F,WAAW,EAAE,GAAY,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;aAChD,CAAC,CAAC,CAAA;QACL,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBACpD,OAAO,EAAE,CAAA;YACX,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { AgentBinding, RunRepository, SkillEventListener, SkillRegistry, SkillRunner, SkillRunOptions, SkillRunSubscription, Workspace, WorkspaceEventBus } from '@braidhq/core';
|
|
2
|
-
import type { AbsolutePath, AgentBindingDescriptor, SkillId, SkillRunId } from '@braidhq/schema';
|
|
2
|
+
import type { AbsolutePath, AgentBindingDescriptor, SkillId, SkillRunId, SourceRoleDescriptor, WorkspaceId } from '@braidhq/schema';
|
|
3
3
|
import type { ChildProcess, SpawnOptions } from 'node:child_process';
|
|
4
4
|
export type SpawnFn = (command: string, args: readonly string[], options: SpawnOptions) => ChildProcess;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Reference docs a skill Reads but never invokes,
|
|
7
|
+
* such as core's shared formats or an ontology's concept doc.
|
|
8
|
+
* Each mounts inside its own namespace's bundle, keyed by that namespace alone,
|
|
9
|
+
* so a mount can never be named out of step with its skills.
|
|
9
10
|
*/
|
|
10
11
|
export interface SkillReferenceDir {
|
|
11
|
-
readonly
|
|
12
|
+
readonly skillNamespace: string;
|
|
12
13
|
readonly path: AbsolutePath;
|
|
13
14
|
}
|
|
14
15
|
export interface SubprocessSkillRunnerDeps {
|
|
@@ -26,6 +27,7 @@ export interface SubprocessSkillRunnerDeps {
|
|
|
26
27
|
readonly uvxBin?: string;
|
|
27
28
|
};
|
|
28
29
|
readonly eventBus?: WorkspaceEventBus;
|
|
30
|
+
readonly resolveSourceRoles?: (workspace: Workspace) => readonly SourceRoleDescriptor[];
|
|
29
31
|
}
|
|
30
32
|
export declare class SubprocessSkillRunner implements SkillRunner {
|
|
31
33
|
private readonly deps;
|
|
@@ -33,20 +35,41 @@ export declare class SubprocessSkillRunner implements SkillRunner {
|
|
|
33
35
|
private readonly sessionDirs;
|
|
34
36
|
private readonly subscribers;
|
|
35
37
|
private readonly positions;
|
|
38
|
+
private readonly gatewayReadyBySpec;
|
|
36
39
|
constructor(deps: SubprocessSkillRunnerDeps);
|
|
37
40
|
start(workspace: Workspace, skillId: SkillId, args: string, options?: SkillRunOptions): Promise<SkillRunId>;
|
|
38
41
|
subscribe(runId: SkillRunId, listener: SkillEventListener): SkillRunSubscription;
|
|
39
42
|
isActive(runId: SkillRunId): boolean;
|
|
43
|
+
/** Whether any run currently holds this workspace's sources. */
|
|
44
|
+
hasActiveRun(workspaceId: WorkspaceId): boolean;
|
|
40
45
|
cancel(runId: SkillRunId): Promise<void>;
|
|
41
46
|
forgetSession(sessionId: string): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Pre-flight the braid-core gateway before an agent runs.
|
|
49
|
+
* Runs `openapi-mcp-gateway --dry-run`, memoised per spec,
|
|
50
|
+
* so only the first run pays it.
|
|
51
|
+
*/
|
|
52
|
+
private ensureGatewayReady;
|
|
53
|
+
private probeGateway;
|
|
42
54
|
private drain;
|
|
43
55
|
private emit;
|
|
44
56
|
private resolveSessionDir;
|
|
45
57
|
private recoverSessionDir;
|
|
46
58
|
private buildSessionDir;
|
|
47
59
|
private skillBundleDir;
|
|
60
|
+
private referenceDir;
|
|
48
61
|
private skillBundleDirsFor;
|
|
49
62
|
private bindingFor;
|
|
63
|
+
/**
|
|
64
|
+
* Absolute paths to the mounted reference dirs,
|
|
65
|
+
* `BRAID_SHARED_REFERENCE` for framework contracts,
|
|
66
|
+
* and `BRAID_ONTOLOGY_REFERENCE` for the active ontology.
|
|
67
|
+
* A variable is set only when that namespace ships reference docs,
|
|
68
|
+
* so a prompt can branch on absence instead of reading a dangling path.
|
|
69
|
+
* Paths derive from the session dir, so a resumed run resolves them unchanged.
|
|
70
|
+
*/
|
|
71
|
+
private referenceEnv;
|
|
72
|
+
private sourceRolesEnv;
|
|
50
73
|
private now;
|
|
51
74
|
}
|
|
52
75
|
//# sourceMappingURL=SubprocessSkillRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubprocessSkillRunner.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/skill/SubprocessSkillRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAElB,aAAa,EACb,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EAClB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAA8D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"SubprocessSkillRunner.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/skill/SubprocessSkillRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { mkdir, rm, symlink, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
|
-
import { newSkillRunId, NotFoundError } from '@braidhq/core';
|
|
4
|
-
import { AbsolutePath as AbsolutePathSchema, McpServerId, SkillEvent as SkillEventSchema, SkillRunId as SkillRunIdSchema, splitSkillId } from '@braidhq/schema';
|
|
3
|
+
import { newSkillRunId, NotFoundError, ServiceUnavailableError } from '@braidhq/core';
|
|
4
|
+
import { AbsolutePath as AbsolutePathSchema, localize, McpServerId, SkillEvent as SkillEventSchema, SkillRunId as SkillRunIdSchema, splitSkillId } from '@braidhq/schema';
|
|
5
5
|
import { sessionDirPath } from '../_shared/paths.js';
|
|
6
6
|
import { createAsyncQueue } from './asyncQueue.js';
|
|
7
|
+
import { BUILTIN_SKILL_NAMESPACE } from './FsSkillRegistry.js';
|
|
7
8
|
import { attachOutputBuffers } from './subprocessEventStream.js';
|
|
8
9
|
export class SubprocessSkillRunner {
|
|
9
10
|
deps;
|
|
@@ -13,6 +14,10 @@ export class SubprocessSkillRunner {
|
|
|
13
14
|
subscribers = new Map();
|
|
14
15
|
// How many events have been emitted (and persisted) per run so far.
|
|
15
16
|
positions = new Map();
|
|
17
|
+
// Memoised braid-core gateway pre-flight per spec URL.
|
|
18
|
+
// Only the first run of a session pays the check, a failed probe is not cached,
|
|
19
|
+
// so a later run re-probes once the spec or gateway is fixed.
|
|
20
|
+
gatewayReadyBySpec = new Map();
|
|
16
21
|
constructor(deps) {
|
|
17
22
|
this.deps = deps;
|
|
18
23
|
}
|
|
@@ -58,6 +63,9 @@ export class SubprocessSkillRunner {
|
|
|
58
63
|
...(options?.resumeSessionId ? { resumeSessionId: options.resumeSessionId } : {}),
|
|
59
64
|
});
|
|
60
65
|
const spawnFn = this.deps.spawn ?? (await defaultSpawn());
|
|
66
|
+
// Fail fast when the braid-core gateway cannot turn the spec into tools,
|
|
67
|
+
// rather than spawning an agent that discovers the missing tools mid-run.
|
|
68
|
+
await this.ensureGatewayReady(spawnFn);
|
|
61
69
|
// BRAID_SESSION_DIR resolves ambiguity in SKILL.md paths.
|
|
62
70
|
// claude sees both `BRAID_WORKSPACE` and a cwd inside it,
|
|
63
71
|
// and would otherwise guess which one `.claude/skills/...` is rooted in.
|
|
@@ -66,6 +74,12 @@ export class SubprocessSkillRunner {
|
|
|
66
74
|
env: {
|
|
67
75
|
...invocation.env,
|
|
68
76
|
BRAID_SESSION_DIR: sessionDir,
|
|
77
|
+
// The active ontology's declared source roles, as JSON.
|
|
78
|
+
// A generic prompt reads this instead of naming role ids.
|
|
79
|
+
...this.sourceRolesEnv(workspace),
|
|
80
|
+
// Absolute paths to the reference docs a prompt may Read,
|
|
81
|
+
// so no SKILL.md carries a location of its own.
|
|
82
|
+
...this.referenceEnv(workspace, sessionDir),
|
|
69
83
|
// BRAID_TOKEN is read by the braid-core MCP gateway,
|
|
70
84
|
// and by any shell-level callback (curl in a SKILL.md),
|
|
71
85
|
// so the subprocess can authenticate against the running server.
|
|
@@ -127,6 +141,14 @@ export class SubprocessSkillRunner {
|
|
|
127
141
|
isActive(runId) {
|
|
128
142
|
return this.running.has(runId);
|
|
129
143
|
}
|
|
144
|
+
/** Whether any run currently holds this workspace's sources. */
|
|
145
|
+
hasActiveRun(workspaceId) {
|
|
146
|
+
for (const active of this.running.values()) {
|
|
147
|
+
if (active.workspace.id === workspaceId)
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
130
152
|
async cancel(runId) {
|
|
131
153
|
const validated = SkillRunIdSchema.parse(runId);
|
|
132
154
|
const active = this.running.get(validated);
|
|
@@ -142,6 +164,59 @@ export class SubprocessSkillRunner {
|
|
|
142
164
|
if (this.deps.cleanupSession !== false)
|
|
143
165
|
await rm(dir, { recursive: true, force: true });
|
|
144
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Pre-flight the braid-core gateway before an agent runs.
|
|
169
|
+
* Runs `openapi-mcp-gateway --dry-run`, memoised per spec,
|
|
170
|
+
* so only the first run pays it.
|
|
171
|
+
*/
|
|
172
|
+
async ensureGatewayReady(spawnFn) {
|
|
173
|
+
const gateway = this.deps.coreGateway;
|
|
174
|
+
if (!gateway)
|
|
175
|
+
return;
|
|
176
|
+
const { specUrl } = gateway;
|
|
177
|
+
let pending = this.gatewayReadyBySpec.get(specUrl);
|
|
178
|
+
if (!pending) {
|
|
179
|
+
pending = this.probeGateway(spawnFn, gateway.uvxBin ?? 'uvx', specUrl);
|
|
180
|
+
this.gatewayReadyBySpec.set(specUrl, pending);
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
await pending;
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
this.gatewayReadyBySpec.delete(specUrl);
|
|
187
|
+
throw error;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
probeGateway(spawnFn, uvxBin, specUrl) {
|
|
191
|
+
return new Promise((resolve, reject) => {
|
|
192
|
+
const child = spawnFn(uvxBin, ['openapi-mcp-gateway', '--spec', specUrl, '--dry-run'], { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
193
|
+
let output = '';
|
|
194
|
+
const collect = (chunk) => {
|
|
195
|
+
output += chunk;
|
|
196
|
+
};
|
|
197
|
+
child.stdout?.setEncoding('utf-8');
|
|
198
|
+
child.stdout?.on('data', collect);
|
|
199
|
+
child.stderr?.setEncoding('utf-8');
|
|
200
|
+
child.stderr?.on('data', collect);
|
|
201
|
+
const timer = setTimeout(() => {
|
|
202
|
+
child.kill('SIGKILL');
|
|
203
|
+
reject(new ServiceUnavailableError(`The braid-core gateway pre-flight timed out after 60s against the spec at ${specUrl}.`));
|
|
204
|
+
}, 60_000);
|
|
205
|
+
child.on('error', (err) => {
|
|
206
|
+
clearTimeout(timer);
|
|
207
|
+
reject(new ServiceUnavailableError(`The braid-core gateway pre-flight could not run "${uvxBin}". ${err.message}`));
|
|
208
|
+
});
|
|
209
|
+
child.on('close', (code) => {
|
|
210
|
+
clearTimeout(timer);
|
|
211
|
+
if (code === 0) {
|
|
212
|
+
resolve();
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
reject(new ServiceUnavailableError(`The braid-core gateway is not ready. The openapi-mcp-gateway command could not turn the spec at ${specUrl} into MCP tools. `
|
|
216
|
+
+ `Fix the spec or the gateway, then retry.\n\n${output.trim().slice(-1200)}`));
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
}
|
|
145
220
|
async drain(input) {
|
|
146
221
|
let record = input.initialRecord;
|
|
147
222
|
let capturedSessionId = input.resumeSessionId ?? null;
|
|
@@ -249,20 +324,24 @@ export class SubprocessSkillRunner {
|
|
|
249
324
|
}
|
|
250
325
|
async buildSessionDir(workspace, runId) {
|
|
251
326
|
const sessionDir = sessionDirPath(workspace.rootPath, runId);
|
|
252
|
-
//
|
|
253
|
-
// so
|
|
254
|
-
|
|
255
|
-
|
|
327
|
+
// Reference docs mount inside their own namespace's bundle,
|
|
328
|
+
// so a namespace owns one directory and its docs cannot drift from its skills.
|
|
329
|
+
// An agent loads components only from the names its plugin format defines,
|
|
330
|
+
// so `reference` stays inert there and is reached by the injected path.
|
|
256
331
|
const linkedRefs = new Set();
|
|
257
332
|
for (const reference of this.deps.referenceDirs ?? []) {
|
|
258
|
-
if (linkedRefs.has(reference.
|
|
333
|
+
if (linkedRefs.has(reference.skillNamespace))
|
|
259
334
|
continue;
|
|
260
|
-
linkedRefs.add(reference.
|
|
261
|
-
|
|
335
|
+
linkedRefs.add(reference.skillNamespace);
|
|
336
|
+
const mount = this.referenceDir(sessionDir, reference.skillNamespace);
|
|
337
|
+
await mkdir(dirname(mount), { recursive: true });
|
|
338
|
+
await symlink(reference.path, mount, 'dir');
|
|
262
339
|
}
|
|
263
|
-
// Invokable skills stage as one claude plugin per namespace,
|
|
264
|
-
//
|
|
265
|
-
//
|
|
340
|
+
// Invokable skills stage as one claude plugin per namespace,
|
|
341
|
+
// since a plugin is claude's only mechanism for `/namespace:verb`.
|
|
342
|
+
// The runner synthesises that bundle per run as an adapter alone,
|
|
343
|
+
// so an author ships a braid plugin and never writes a claude one.
|
|
344
|
+
// The colon lives in the invocation token, never in a path.
|
|
266
345
|
const byNamespace = new Map();
|
|
267
346
|
for (const manifest of await this.deps.skillRegistry.list(workspace)) {
|
|
268
347
|
const { namespace } = splitSkillId(manifest.id);
|
|
@@ -289,7 +368,12 @@ export class SubprocessSkillRunner {
|
|
|
289
368
|
return sessionDir;
|
|
290
369
|
}
|
|
291
370
|
skillBundleDir(sessionDir, namespace) {
|
|
292
|
-
return join(sessionDir, '.
|
|
371
|
+
return join(sessionDir, '.skill-bundles', namespace);
|
|
372
|
+
}
|
|
373
|
+
// Where a namespace's reference docs mount, inside that namespace's bundle,
|
|
374
|
+
// so everything one namespace owns lives under a single directory.
|
|
375
|
+
referenceDir(sessionDir, namespace) {
|
|
376
|
+
return join(this.skillBundleDir(sessionDir, namespace), 'reference');
|
|
293
377
|
}
|
|
294
378
|
// The plugin bundle dir for every namespace present in the workspace.
|
|
295
379
|
// Deterministic from the session dir, so it works on a resumed session,
|
|
@@ -313,6 +397,42 @@ export class SubprocessSkillRunner {
|
|
|
313
397
|
env: base.env,
|
|
314
398
|
});
|
|
315
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Absolute paths to the mounted reference dirs,
|
|
402
|
+
* `BRAID_SHARED_REFERENCE` for framework contracts,
|
|
403
|
+
* and `BRAID_ONTOLOGY_REFERENCE` for the active ontology.
|
|
404
|
+
* A variable is set only when that namespace ships reference docs,
|
|
405
|
+
* so a prompt can branch on absence instead of reading a dangling path.
|
|
406
|
+
* Paths derive from the session dir, so a resumed run resolves them unchanged.
|
|
407
|
+
*/
|
|
408
|
+
referenceEnv(workspace, sessionDir) {
|
|
409
|
+
const mounted = new Set((this.deps.referenceDirs ?? []).map(reference => reference.skillNamespace));
|
|
410
|
+
const ontologyNamespace = workspace.productManifest.ontologyId;
|
|
411
|
+
return {
|
|
412
|
+
...(mounted.has(BUILTIN_SKILL_NAMESPACE)
|
|
413
|
+
? { BRAID_SHARED_REFERENCE: this.referenceDir(sessionDir, BUILTIN_SKILL_NAMESPACE) }
|
|
414
|
+
: {}),
|
|
415
|
+
...(mounted.has(ontologyNamespace)
|
|
416
|
+
? { BRAID_ONTOLOGY_REFERENCE: this.referenceDir(sessionDir, ontologyNamespace) }
|
|
417
|
+
: {}),
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
// Serialise the workspace ontology's source roles into a `BRAID_SOURCE_ROLES` env pair.
|
|
421
|
+
// Labels resolve to English so a prompt renders them without a locale map.
|
|
422
|
+
// Returns an empty object when no resolver is wired or the ontology declares no roles,
|
|
423
|
+
// so a skill that never reads the var is unaffected.
|
|
424
|
+
sourceRolesEnv(workspace) {
|
|
425
|
+
const roles = this.deps.resolveSourceRoles?.(workspace) ?? [];
|
|
426
|
+
if (roles.length === 0)
|
|
427
|
+
return {};
|
|
428
|
+
const wire = roles.map(role => ({
|
|
429
|
+
id: role.id,
|
|
430
|
+
label: localize(role.label, 'en'),
|
|
431
|
+
...(role.pathSegment ? { pathSegment: role.pathSegment } : {}),
|
|
432
|
+
unitBearing: role.unitBearing === true,
|
|
433
|
+
}));
|
|
434
|
+
return { BRAID_SOURCE_ROLES: JSON.stringify(wire) };
|
|
435
|
+
}
|
|
316
436
|
now() {
|
|
317
437
|
return (this.deps.clock ?? (() => new Date().toISOString()))();
|
|
318
438
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubprocessSkillRunner.js","sourceRoot":"","sources":["../../../src/infrastructure/skill/SubprocessSkillRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SubprocessSkillRunner.js","sourceRoot":"","sources":["../../../src/infrastructure/skill/SubprocessSkillRunner.ts"],"names":[],"mappings":"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"}
|