fridayy 1.3.0 → 1.3.1
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/adapters/laravel/adapter.d.ts.map +1 -1
- package/dist/adapters/laravel/adapter.js +2 -5
- package/dist/adapters/laravel/adapter.js.map +1 -1
- package/dist/adapters/manual/adapter.d.ts.map +1 -1
- package/dist/adapters/manual/adapter.js +2 -5
- package/dist/adapters/manual/adapter.js.map +1 -1
- package/dist/adapters/nodejs/adapter.d.ts.map +1 -1
- package/dist/adapters/nodejs/adapter.js +2 -5
- package/dist/adapters/nodejs/adapter.js.map +1 -1
- package/dist/adapters/openapi/adapter.d.ts.map +1 -1
- package/dist/adapters/openapi/adapter.js +2 -5
- package/dist/adapters/openapi/adapter.js.map +1 -1
- package/dist/adapters/openapi/request-builder.d.ts +20 -1
- package/dist/adapters/openapi/request-builder.d.ts.map +1 -1
- package/dist/adapters/openapi/request-builder.js +32 -0
- package/dist/adapters/openapi/request-builder.js.map +1 -1
- package/dist/adapters/rest/adapter.d.ts.map +1 -1
- package/dist/adapters/rest/adapter.js +3 -9
- package/dist/adapters/rest/adapter.js.map +1 -1
- package/dist/cli/commands/review.d.ts.map +1 -1
- package/dist/cli/commands/review.js +25 -0
- package/dist/cli/commands/review.js.map +1 -1
- package/dist/cli/index.js +18 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/core/permissions/enforcer.d.ts.map +1 -1
- package/dist/core/permissions/enforcer.js +6 -2
- package/dist/core/permissions/enforcer.js.map +1 -1
- package/dist/mcp/server/fridayy-server.d.ts +15 -0
- package/dist/mcp/server/fridayy-server.d.ts.map +1 -1
- package/dist/mcp/server/fridayy-server.js +58 -25
- package/dist/mcp/server/fridayy-server.js.map +1 -1
- package/dist/mcp/tools/tool-annotations.d.ts +21 -0
- package/dist/mcp/tools/tool-annotations.d.ts.map +1 -0
- package/dist/mcp/tools/tool-annotations.js +29 -0
- package/dist/mcp/tools/tool-annotations.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/laravel/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAWpC,qBAAa,cAAe,SAAQ,WAAW;IAC7C,SAAgB,IAAI,aAAa;IACjC,SAAgB,WAAW,2EAA2E;IAEtG,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IA2BlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAkFlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/laravel/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAWpC,qBAAa,cAAe,SAAQ,WAAW;IAC7C,SAAgB,IAAI,aAAa;IACjC,SAAgB,WAAW,2EAA2E;IAEtG,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IA2BlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAkFlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;CAgBhC"}
|
|
@@ -13,7 +13,7 @@ import { classifyOperation } from '../../core/permissions/classifier.js';
|
|
|
13
13
|
import { buildToolDescription } from '../../core/tool-generator/description-builder.js';
|
|
14
14
|
import { buildUnifiedInputSchema } from '../../core/schema/json-schema.js';
|
|
15
15
|
import { defaultRestExecutor } from '../rest/executor.js';
|
|
16
|
-
import { buildHttpRequest } from '../openapi/request-builder.js';
|
|
16
|
+
import { buildHttpRequest, applyAuthToRequest } from '../openapi/request-builder.js';
|
|
17
17
|
import { AuthenticationManager } from '../../core/authentication/manager.js';
|
|
18
18
|
import { defaultSecretResolver } from '../../core/authentication/secret-resolver.js';
|
|
19
19
|
export class LaravelAdapter extends BaseAdapter {
|
|
@@ -121,10 +121,7 @@ export class LaravelAdapter extends BaseAdapter {
|
|
|
121
121
|
if (context.headers) {
|
|
122
122
|
Object.assign(preparedReq.headers, context.headers);
|
|
123
123
|
}
|
|
124
|
-
authManager
|
|
125
|
-
headers: preparedReq.headers,
|
|
126
|
-
queryParams: {}
|
|
127
|
-
});
|
|
124
|
+
applyAuthToRequest(authManager, tool.authentication, preparedReq);
|
|
128
125
|
return await this.restExecutor.execute(preparedReq, tool.name, {
|
|
129
126
|
timeoutMs: context.timeoutMs
|
|
130
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/laravel/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,WAAW,EAIZ,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/laravel/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/manual/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAMpC,qBAAa,aAAc,SAAQ,WAAW;IAC5C,SAAgB,IAAI,YAAY;IAChC,SAAgB,WAAW,qDAAqD;IAEhF,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAIlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAIlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/manual/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAMpC,qBAAa,aAAc,SAAQ,WAAW;IAC5C,SAAgB,IAAI,YAAY;IAChC,SAAgB,WAAW,qDAAqD;IAEhF,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAIlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAIlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;CAgChC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Supports custom defined tools with manual configurations or handlers.
|
|
4
4
|
*/
|
|
5
5
|
import { BaseAdapter } from '../base.js';
|
|
6
|
-
import { buildHttpRequest } from '../openapi/request-builder.js';
|
|
6
|
+
import { buildHttpRequest, applyAuthToRequest } from '../openapi/request-builder.js';
|
|
7
7
|
import { defaultRestExecutor } from '../rest/executor.js';
|
|
8
8
|
import { AuthenticationManager } from '../../core/authentication/manager.js';
|
|
9
9
|
import { defaultSecretResolver } from '../../core/authentication/secret-resolver.js';
|
|
@@ -26,10 +26,7 @@ export class ManualAdapter extends BaseAdapter {
|
|
|
26
26
|
if (context.headers) {
|
|
27
27
|
Object.assign(preparedReq.headers, context.headers);
|
|
28
28
|
}
|
|
29
|
-
authManager
|
|
30
|
-
headers: preparedReq.headers,
|
|
31
|
-
queryParams: {}
|
|
32
|
-
});
|
|
29
|
+
applyAuthToRequest(authManager, tool.authentication, preparedReq);
|
|
33
30
|
return await this.restExecutor.execute(preparedReq, tool.name, {
|
|
34
31
|
timeoutMs: context.timeoutMs
|
|
35
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/manual/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EAIZ,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/manual/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EAIZ,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAErF,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5B,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,iDAAiD,CAAC;IAExE,YAAY,GAAG,mBAAmB,CAAC;IAEpC,KAAK,CAAC,MAAM,CAAC,OAA2B;QAC7C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAiC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,IAA2B,EAC3B,KAA0B,EAC1B,UAAmC,EAAE;QAErC,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAEtF,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;YAED,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAElE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC7D,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO,EAAE,yBAAyB,IAAI,CAAC,IAAI,GAAG;gBAC9C,KAAK;aACN;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,QAAQ,EAAE,IAAI,CAAC,IAAI;aACpB;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/nodejs/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAWpC,qBAAa,aAAc,SAAQ,WAAW;IAC5C,SAAgB,IAAI,YAAY;IAChC,SAAgB,WAAW,gEAAgE;IAE3F,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IA8BlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAgFlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/nodejs/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAWpC,qBAAa,aAAc,SAAQ,WAAW;IAC5C,SAAgB,IAAI,YAAY;IAChC,SAAgB,WAAW,gEAAgE;IAE3F,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IA8BlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAgFlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;CAgBhC"}
|
|
@@ -11,7 +11,7 @@ import { classifyOperation } from '../../core/permissions/classifier.js';
|
|
|
11
11
|
import { buildToolDescription } from '../../core/tool-generator/description-builder.js';
|
|
12
12
|
import { buildUnifiedInputSchema } from '../../core/schema/json-schema.js';
|
|
13
13
|
import { defaultRestExecutor } from '../rest/executor.js';
|
|
14
|
-
import { buildHttpRequest } from '../openapi/request-builder.js';
|
|
14
|
+
import { buildHttpRequest, applyAuthToRequest } from '../openapi/request-builder.js';
|
|
15
15
|
import { AuthenticationManager } from '../../core/authentication/manager.js';
|
|
16
16
|
import { defaultSecretResolver } from '../../core/authentication/secret-resolver.js';
|
|
17
17
|
export class NodeJsAdapter extends BaseAdapter {
|
|
@@ -123,10 +123,7 @@ export class NodeJsAdapter extends BaseAdapter {
|
|
|
123
123
|
if (context.headers) {
|
|
124
124
|
Object.assign(preparedReq.headers, context.headers);
|
|
125
125
|
}
|
|
126
|
-
authManager
|
|
127
|
-
headers: preparedReq.headers,
|
|
128
|
-
queryParams: {}
|
|
129
|
-
});
|
|
126
|
+
applyAuthToRequest(authManager, tool.authentication, preparedReq);
|
|
130
127
|
return await this.restExecutor.execute(preparedReq, tool.name, {
|
|
131
128
|
timeoutMs: context.timeoutMs
|
|
132
129
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/nodejs/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,WAAW,EAIZ,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/nodejs/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/openapi/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EAIrB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAWpC,qBAAa,cAAe,SAAQ,WAAW;IAC7C,SAAgB,IAAI,aAAa;IACjC,SAAgB,WAAW,kEAAkE;IAE7F,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IA6BlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAgIlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/openapi/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EAIrB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAWpC,qBAAa,cAAe,SAAQ,WAAW;IAC7C,SAAgB,IAAI,aAAa;IACjC,SAAgB,WAAW,kEAAkE;IAE7F,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IA6BlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAgIlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAqB/B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,eAAe;CA2DxB"}
|
|
@@ -10,7 +10,7 @@ import { buildUnifiedInputSchema } from '../../core/schema/json-schema.js';
|
|
|
10
10
|
import { sanitizeToolName, generateToolNameFromRoute } from '../../core/tool-generator/name-sanitizer.js';
|
|
11
11
|
import { buildToolDescription } from '../../core/tool-generator/description-builder.js';
|
|
12
12
|
import { classifyOperation } from '../../core/permissions/classifier.js';
|
|
13
|
-
import { buildHttpRequest } from './request-builder.js';
|
|
13
|
+
import { buildHttpRequest, applyAuthToRequest } from './request-builder.js';
|
|
14
14
|
import { defaultRestExecutor } from '../rest/executor.js';
|
|
15
15
|
import { AuthenticationManager } from '../../core/authentication/manager.js';
|
|
16
16
|
import { defaultSecretResolver } from '../../core/authentication/secret-resolver.js';
|
|
@@ -163,10 +163,7 @@ export class OpenApiAdapter extends BaseAdapter {
|
|
|
163
163
|
Object.assign(preparedReq.headers, context.headers);
|
|
164
164
|
}
|
|
165
165
|
// Apply authentication
|
|
166
|
-
authManager
|
|
167
|
-
headers: preparedReq.headers,
|
|
168
|
-
queryParams: {}
|
|
169
|
-
});
|
|
166
|
+
applyAuthToRequest(authManager, tool.authentication, preparedReq);
|
|
170
167
|
// Execute via REST executor
|
|
171
168
|
return await this.restExecutor.execute(preparedReq, tool.name, {
|
|
172
169
|
timeoutMs: context.timeoutMs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/openapi/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,WAAW,EAIZ,MAAM,YAAY,CAAC;AAQpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/openapi/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Fridayy - HTTP Request Builder
|
|
3
3
|
* Interpolates URL path params, serializes query strings, and packages payloads for REST execution.
|
|
4
4
|
*/
|
|
5
|
-
import { FridayyToolDefinition } from '../../core/schema/types.js';
|
|
5
|
+
import { FridayyToolDefinition, ToolAuthentication } from '../../core/schema/types.js';
|
|
6
|
+
import { AuthenticationManager } from '../../core/authentication/manager.js';
|
|
6
7
|
export interface PreparedHttpRequest {
|
|
7
8
|
url: string;
|
|
8
9
|
method: string;
|
|
@@ -10,4 +11,22 @@ export interface PreparedHttpRequest {
|
|
|
10
11
|
body?: string;
|
|
11
12
|
}
|
|
12
13
|
export declare function buildHttpRequest(tool: FridayyToolDefinition, input?: Record<string, any>, baseUrlOverride?: string): PreparedHttpRequest;
|
|
14
|
+
/**
|
|
15
|
+
* Applies authentication to a prepared request IN PLACE: headers are merged
|
|
16
|
+
* directly (they're the same object AuthenticationManager.applyAuth mutates),
|
|
17
|
+
* and any query-parameter-based credentials (e.g. `apiKey` with `in: query`)
|
|
18
|
+
* are appended onto `preparedReq.url` — which, unlike headers, can't simply
|
|
19
|
+
* be mutated after the fact, since the URL string was already finalized by
|
|
20
|
+
* buildHttpRequest().
|
|
21
|
+
*
|
|
22
|
+
* This is the ONLY sanctioned way for an adapter to apply auth to a prepared
|
|
23
|
+
* request. Calling `authManager.applyAuth(auth, { headers, queryParams: {} })`
|
|
24
|
+
* directly and discarding the return value — the pattern every adapter used
|
|
25
|
+
* before this existed — silently drops any query-based credential: the
|
|
26
|
+
* secret resolves fine, the tool records the right queryParam name, but it
|
|
27
|
+
* is never actually sent, and the target API 401s with nothing in the
|
|
28
|
+
* output explaining why. See tests/no-direct-apply-auth.test.ts, which fails
|
|
29
|
+
* if any adapter calls `.applyAuth(` directly instead of through here.
|
|
30
|
+
*/
|
|
31
|
+
export declare function applyAuthToRequest(authManager: AuthenticationManager, auth: ToolAuthentication | undefined, preparedReq: PreparedHttpRequest): void;
|
|
13
32
|
//# sourceMappingURL=request-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-builder.d.ts","sourceRoot":"","sources":["../../../src/adapters/openapi/request-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"request-builder.d.ts","sourceRoot":"","sources":["../../../src/adapters/openapi/request-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,qBAAqB,EAC3B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAC/B,eAAe,CAAC,EAAE,MAAM,GACvB,mBAAmB,CA0FrB;AAcD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,qBAAqB,EAClC,IAAI,EAAE,kBAAkB,GAAG,SAAS,EACpC,WAAW,EAAE,mBAAmB,GAC/B,IAAI,CAGN"}
|
|
@@ -80,4 +80,36 @@ export function buildHttpRequest(tool, input = {}, baseUrlOverride) {
|
|
|
80
80
|
body: bodyString
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Appends additional query parameters (e.g. an API key resolved for a
|
|
85
|
+
* `?api_key=`-style auth scheme) onto an already-built URL.
|
|
86
|
+
*/
|
|
87
|
+
function appendQueryParams(url, queryParams) {
|
|
88
|
+
const entries = Object.entries(queryParams);
|
|
89
|
+
if (entries.length === 0)
|
|
90
|
+
return url;
|
|
91
|
+
const queryString = new URLSearchParams(queryParams).toString();
|
|
92
|
+
return `${url}${url.includes('?') ? '&' : '?'}${queryString}`;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Applies authentication to a prepared request IN PLACE: headers are merged
|
|
96
|
+
* directly (they're the same object AuthenticationManager.applyAuth mutates),
|
|
97
|
+
* and any query-parameter-based credentials (e.g. `apiKey` with `in: query`)
|
|
98
|
+
* are appended onto `preparedReq.url` — which, unlike headers, can't simply
|
|
99
|
+
* be mutated after the fact, since the URL string was already finalized by
|
|
100
|
+
* buildHttpRequest().
|
|
101
|
+
*
|
|
102
|
+
* This is the ONLY sanctioned way for an adapter to apply auth to a prepared
|
|
103
|
+
* request. Calling `authManager.applyAuth(auth, { headers, queryParams: {} })`
|
|
104
|
+
* directly and discarding the return value — the pattern every adapter used
|
|
105
|
+
* before this existed — silently drops any query-based credential: the
|
|
106
|
+
* secret resolves fine, the tool records the right queryParam name, but it
|
|
107
|
+
* is never actually sent, and the target API 401s with nothing in the
|
|
108
|
+
* output explaining why. See tests/no-direct-apply-auth.test.ts, which fails
|
|
109
|
+
* if any adapter calls `.applyAuth(` directly instead of through here.
|
|
110
|
+
*/
|
|
111
|
+
export function applyAuthToRequest(authManager, auth, preparedReq) {
|
|
112
|
+
const result = authManager.applyAuth(auth, { headers: preparedReq.headers, queryParams: {} });
|
|
113
|
+
preparedReq.url = appendQueryParams(preparedReq.url, result.queryParams);
|
|
114
|
+
}
|
|
83
115
|
//# sourceMappingURL=request-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-builder.js","sourceRoot":"","sources":["../../../src/adapters/openapi/request-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"request-builder.js","sourceRoot":"","sources":["../../../src/adapters/openapi/request-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/rest/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAOpC,qBAAa,WAAY,SAAQ,WAAW;IAC1C,SAAgB,IAAI,UAAU;IAC9B,SAAgB,WAAW,qDAAqD;IAEhF,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAQlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAyGlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/rest/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAOpC,qBAAa,WAAY,SAAQ,WAAW;IAC1C,SAAgB,IAAI,UAAU;IAC9B,SAAgB,WAAW,qDAAqD;IAEhF,OAAO,CAAC,YAAY,CAAuB;IAE9B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAQlF,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAyGlF,WAAW,CACtB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;CA+ChC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Automatically provisions baseline operational tools when connected to an API URL.
|
|
5
5
|
*/
|
|
6
6
|
import { BaseAdapter } from '../base.js';
|
|
7
|
-
import { buildHttpRequest } from '../openapi/request-builder.js';
|
|
7
|
+
import { buildHttpRequest, applyAuthToRequest } from '../openapi/request-builder.js';
|
|
8
8
|
import { defaultRestExecutor } from './executor.js';
|
|
9
9
|
import { AuthenticationManager } from '../../core/authentication/manager.js';
|
|
10
10
|
import { defaultSecretResolver } from '../../core/authentication/secret-resolver.js';
|
|
@@ -139,10 +139,7 @@ export class RestAdapter extends BaseAdapter {
|
|
|
139
139
|
if (context.headers) {
|
|
140
140
|
Object.assign(preparedReq.headers, context.headers);
|
|
141
141
|
}
|
|
142
|
-
authManager
|
|
143
|
-
headers: preparedReq.headers,
|
|
144
|
-
queryParams: {}
|
|
145
|
-
});
|
|
142
|
+
applyAuthToRequest(authManager, tool.authentication, preparedReq);
|
|
146
143
|
return await this.restExecutor.execute(preparedReq, tool.name, {
|
|
147
144
|
timeoutMs: context.timeoutMs
|
|
148
145
|
});
|
|
@@ -151,10 +148,7 @@ export class RestAdapter extends BaseAdapter {
|
|
|
151
148
|
if (context.headers) {
|
|
152
149
|
Object.assign(preparedReq.headers, context.headers);
|
|
153
150
|
}
|
|
154
|
-
authManager
|
|
155
|
-
headers: preparedReq.headers,
|
|
156
|
-
queryParams: {}
|
|
157
|
-
});
|
|
151
|
+
applyAuthToRequest(authManager, tool.authentication, preparedReq);
|
|
158
152
|
return await this.restExecutor.execute(preparedReq, tool.name, {
|
|
159
153
|
timeoutMs: context.timeoutMs
|
|
160
154
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/rest/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EAIZ,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/rest/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4F5D"}
|
|
@@ -34,18 +34,21 @@ export function registerReviewCommand(program) {
|
|
|
34
34
|
const count = defaultConfigManager.bulkUpdateStatus(() => true, 'APPROVED', rootDir);
|
|
35
35
|
logger.success(`Approved all ${chalk.bold(count)} tools.`);
|
|
36
36
|
printToolsSummary(defaultConfigManager.loadTools(rootDir));
|
|
37
|
+
printRestartReminder();
|
|
37
38
|
return;
|
|
38
39
|
}
|
|
39
40
|
if (options.approveRead) {
|
|
40
41
|
const count = defaultConfigManager.bulkUpdateStatus(t => t.permissions.type === 'READ', 'APPROVED', rootDir);
|
|
41
42
|
logger.success(`Approved all ${chalk.bold(count)} READ tools.`);
|
|
42
43
|
printToolsSummary(defaultConfigManager.loadTools(rootDir));
|
|
44
|
+
printRestartReminder();
|
|
43
45
|
return;
|
|
44
46
|
}
|
|
45
47
|
if (options.approve) {
|
|
46
48
|
const ok = defaultConfigManager.updateToolStatus(options.approve, 'APPROVED', rootDir);
|
|
47
49
|
if (ok) {
|
|
48
50
|
logger.success(`Approved tool "${chalk.bold(options.approve)}".`);
|
|
51
|
+
printRestartReminder();
|
|
49
52
|
}
|
|
50
53
|
else {
|
|
51
54
|
logger.error(`Tool "${options.approve}" not found.`);
|
|
@@ -56,6 +59,7 @@ export function registerReviewCommand(program) {
|
|
|
56
59
|
const ok = defaultConfigManager.updateToolStatus(options.reject, 'REJECTED', rootDir);
|
|
57
60
|
if (ok) {
|
|
58
61
|
logger.success(`Rejected tool "${chalk.bold(options.reject)}".`);
|
|
62
|
+
printRestartReminder();
|
|
59
63
|
}
|
|
60
64
|
else {
|
|
61
65
|
logger.error(`Tool "${options.reject}" not found.`);
|
|
@@ -66,6 +70,7 @@ export function registerReviewCommand(program) {
|
|
|
66
70
|
const ok = defaultConfigManager.updateToolStatus(options.block, 'BLOCKED', rootDir);
|
|
67
71
|
if (ok) {
|
|
68
72
|
logger.success(`Blocked tool "${chalk.bold(options.block)}".`);
|
|
73
|
+
printRestartReminder();
|
|
69
74
|
}
|
|
70
75
|
else {
|
|
71
76
|
logger.error(`Tool "${options.block}" not found.`);
|
|
@@ -87,6 +92,19 @@ export function registerReviewCommand(program) {
|
|
|
87
92
|
}
|
|
88
93
|
});
|
|
89
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* fridayy review only writes to fridayy.tools.json on disk — there is no file
|
|
97
|
+
* watching or MCP `notifications/tools/list_changed` support (a server loads
|
|
98
|
+
* its tool list once, at startup). Without this, a user who runs
|
|
99
|
+
* `fridayy review --approve-all` while a server is already running sees a
|
|
100
|
+
* success message and reasonably assumes the change is now live; it silently
|
|
101
|
+
* is not, and the tool keeps failing with a PENDING/BLOCKED error until the
|
|
102
|
+
* server is restarted.
|
|
103
|
+
*/
|
|
104
|
+
function printRestartReminder() {
|
|
105
|
+
console.log(chalk.yellow('\n⚠ This only updates fridayy.tools.json on disk. If a server is already running (`fridayy start`), ' +
|
|
106
|
+
'restart it for this change to take effect — approvals are not applied live.'));
|
|
107
|
+
}
|
|
90
108
|
function printToolsSummary(tools) {
|
|
91
109
|
console.log(chalk.bold('\nCurrent Tools Review Status:\n'));
|
|
92
110
|
for (const tool of tools) {
|
|
@@ -121,12 +139,15 @@ async function runInteractiveReview(tools, rootDir) {
|
|
|
121
139
|
if (action === 'approve-read') {
|
|
122
140
|
const count = defaultConfigManager.bulkUpdateStatus(t => t.permissions.type === 'READ', 'APPROVED', rootDir);
|
|
123
141
|
logger.success(`Approved ${count} READ tools.`);
|
|
142
|
+
printRestartReminder();
|
|
124
143
|
}
|
|
125
144
|
else if (action === 'approve-all') {
|
|
126
145
|
const count = defaultConfigManager.bulkUpdateStatus(() => true, 'APPROVED', rootDir);
|
|
127
146
|
logger.success(`Approved all ${count} tools.`);
|
|
147
|
+
printRestartReminder();
|
|
128
148
|
}
|
|
129
149
|
else if (action === 'individual') {
|
|
150
|
+
let changedCount = 0;
|
|
130
151
|
for (const tool of tools) {
|
|
131
152
|
const choice = await select({
|
|
132
153
|
message: `Tool "${tool.name}" [${tool.permissions.type}] (${tool.source.method || ''} ${tool.source.path || ''})`,
|
|
@@ -139,9 +160,13 @@ async function runInteractiveReview(tools, rootDir) {
|
|
|
139
160
|
});
|
|
140
161
|
if (choice !== 'KEEP') {
|
|
141
162
|
defaultConfigManager.updateToolStatus(tool.name, choice, rootDir);
|
|
163
|
+
changedCount++;
|
|
142
164
|
}
|
|
143
165
|
}
|
|
144
166
|
logger.success('Individual review completed.');
|
|
167
|
+
if (changedCount > 0) {
|
|
168
|
+
printRestartReminder();
|
|
169
|
+
}
|
|
145
170
|
}
|
|
146
171
|
}
|
|
147
172
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;SACvD,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;SAC7D,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SAC3D,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,WAAW,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACrF,MAAM,CAAC,OAAO,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3D,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,CACjD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,EAClC,UAAU,EACV,OAAO,CACR,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAChE,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACvF,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import { fileURLToPath } from 'node:url';
|
|
7
|
-
import
|
|
7
|
+
import fs from 'node:fs';
|
|
8
8
|
import { registerInitCommand } from './commands/init.js';
|
|
9
9
|
import { registerScanCommand } from './commands/scan.js';
|
|
10
10
|
import { registerGenerateCommand } from './commands/generate.js';
|
|
@@ -55,23 +55,31 @@ export async function run() {
|
|
|
55
55
|
const program = createCli();
|
|
56
56
|
await program.parseAsync(process.argv);
|
|
57
57
|
}
|
|
58
|
-
// If directly executed. Compares resolved
|
|
59
|
-
// rather than raw URL/argv
|
|
60
|
-
//
|
|
61
|
-
//
|
|
58
|
+
// If directly executed. Compares *resolved* (symlink-following) filesystem
|
|
59
|
+
// paths, via fs.realpathSync + fileURLToPath, rather than raw URL/argv
|
|
60
|
+
// strings or an `endsWith(...)` heuristic.
|
|
61
|
+
//
|
|
62
|
+
// Both matter: a plain path.resolve() comparison breaks on Windows, where
|
|
63
|
+
// import.meta.url and argv[1] differ in separator style and percent-encoding.
|
|
64
|
+
// And an `endsWith('fridayy')` fallback is actively dangerous — `npm install
|
|
65
|
+
// -g` creates the CLI's bin entry as a symlink literally named `fridayy` (no
|
|
66
|
+
// extension), so process.argv[1] for every real installed invocation matches
|
|
67
|
+
// that heuristic. That made this module think it was run directly and call
|
|
68
|
+
// run() during bin/fridayy.js's `import`, which then calls run() again itself
|
|
69
|
+
// — every command executed twice for every user who installed the package,
|
|
70
|
+
// while `node bin/fridayy.js` and `tsx src/cli/index.ts` in local dev never
|
|
71
|
+
// triggered it. realpath comparison has no such false positive: the installed
|
|
72
|
+
// symlink resolves to bin/fridayy.js, not to this file.
|
|
62
73
|
const isDirectlyExecuted = (() => {
|
|
63
74
|
const entry = process.argv[1];
|
|
64
75
|
if (!entry)
|
|
65
76
|
return false;
|
|
66
77
|
try {
|
|
67
|
-
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
78
|
+
return fs.realpathSync(fileURLToPath(import.meta.url)) === fs.realpathSync(entry);
|
|
70
79
|
}
|
|
71
80
|
catch {
|
|
72
|
-
|
|
81
|
+
return false;
|
|
73
82
|
}
|
|
74
|
-
return entry.endsWith('fridayy') || entry.endsWith('index.ts') || entry.endsWith('index.js');
|
|
75
83
|
})();
|
|
76
84
|
if (isDirectlyExecuted) {
|
|
77
85
|
run().catch((err) => {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforcer.d.ts","sourceRoot":"","sources":["../../../src/core/permissions/enforcer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAqB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,OAAO,CAAC,EAAE,GAAG,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAsB,EAAE,OAAO,CAAC,EAAE,GAAG;CAOzF;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAgB;gBAEnB,MAAM,CAAC,EAAE,aAAa;IAIlC;;OAEG;IACI,aAAa,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO;IAsB1D;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"enforcer.d.ts","sourceRoot":"","sources":["../../../src/core/permissions/enforcer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAqB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,OAAO,CAAC,EAAE,GAAG,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAsB,EAAE,OAAO,CAAC,EAAE,GAAG;CAOzF;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAgB;gBAEnB,MAAM,CAAC,EAAE,aAAa;IAIlC;;OAEG;IACI,aAAa,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO;IAsB1D;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IA8D3D;;;;;;;OAOG;IACI,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,GAAG,IAAI;CAa/F"}
|
|
@@ -46,13 +46,17 @@ export class PermissionEnforcer {
|
|
|
46
46
|
validateExecution(tool) {
|
|
47
47
|
// Check status
|
|
48
48
|
if (tool.status === 'BLOCKED') {
|
|
49
|
-
throw new PermissionDeniedError(`Tool "${tool.name}" is BLOCKED. Destructive operations require explicit developer approval via
|
|
49
|
+
throw new PermissionDeniedError(`Tool "${tool.name}" is BLOCKED. Destructive operations require explicit developer approval via ` +
|
|
50
|
+
`'fridayy review'. Note: approving a tool only updates fridayy.tools.json — a running server does ` +
|
|
51
|
+
`not pick up the change until it is restarted ('fridayy start').`, tool.name, 'TOOL_BLOCKED', { status: tool.status, permissions: tool.permissions });
|
|
50
52
|
}
|
|
51
53
|
if (tool.status === 'REJECTED') {
|
|
52
54
|
throw new PermissionDeniedError(`Tool "${tool.name}" is REJECTED and cannot be executed.`, tool.name, 'TOOL_REJECTED', { status: tool.status });
|
|
53
55
|
}
|
|
54
56
|
if (tool.status === 'PENDING') {
|
|
55
|
-
throw new PermissionDeniedError(`Tool "${tool.name}" is PENDING developer review. Run 'fridayy review' to approve it
|
|
57
|
+
throw new PermissionDeniedError(`Tool "${tool.name}" is PENDING developer review. Run 'fridayy review' to approve it, then restart ` +
|
|
58
|
+
`the server ('fridayy start') — approving a tool only updates fridayy.tools.json and has no effect ` +
|
|
59
|
+
`on a server that is already running.`, tool.name, 'TOOL_PENDING_APPROVAL', { status: tool.status });
|
|
56
60
|
}
|
|
57
61
|
if (tool.status !== 'APPROVED') {
|
|
58
62
|
throw new PermissionDeniedError(`Tool "${tool.name}" has invalid status "${tool.status}" and cannot be executed.`, tool.name, 'TOOL_NOT_APPROVED');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforcer.js","sourceRoot":"","sources":["../../../src/core/permissions/enforcer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAyB,MAAM,iBAAiB,CAAC;AAE3E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9B,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,OAAO,CAAO;IAE9B,YAAY,OAAe,EAAE,QAAgB,EAAE,IAAI,GAAG,mBAAmB,EAAE,OAAa;QACtF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,IAA2B;QAC9C,sBAAsB;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAEjD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,IAA2B;QAClD,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"enforcer.js","sourceRoot":"","sources":["../../../src/core/permissions/enforcer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAyB,MAAM,iBAAiB,CAAC;AAE3E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9B,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,OAAO,CAAO;IAE9B,YAAY,OAAe,EAAE,QAAgB,EAAE,IAAI,GAAG,mBAAmB,EAAE,OAAa;QACtF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,IAA2B;QAC9C,sBAAsB;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAEjD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,IAA2B;QAClD,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,+EAA+E;gBAC/F,mGAAmG;gBACnG,iEAAiE,EACnE,IAAI,CAAC,IAAI,EACT,cAAc,EACd,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CACvD,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,uCAAuC,EACzD,IAAI,CAAC,IAAI,EACT,eAAe,EACf,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,kFAAkF;gBAClG,oGAAoG;gBACpG,sCAAsC,EACxC,IAAI,CAAC,IAAI,EACT,uBAAuB,EACvB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,yBAAyB,IAAI,CAAC,MAAM,2BAA2B,EACjF,IAAI,CAAC,IAAI,EACT,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACjD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,sDAAsD,EACxE,IAAI,CAAC,IAAI,EACT,iBAAiB,CAClB,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACnD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpG,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,8CAA8C,EAChE,IAAI,CAAC,IAAI,EACT,sBAAsB,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,wBAAwB,CAAC,IAA2B,EAAE,GAA0B;QACrF,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3D,IAAI,cAAc,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,qBAAqB,CAC7B,SAAS,IAAI,CAAC,IAAI,oCAAoC,GAAG,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI;gBAC7F,yBAAyB,cAAc,CAAC,WAAW,CAAC,IAAI,uCAAuC,cAAc,CAAC,MAAM,EAAE,EACxH,IAAI,CAAC,IAAI,EACT,cAAc,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,gCAAgC,EACpG,EAAE,cAAc,EAAE,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -14,12 +14,27 @@ export interface FridayyServerOptions {
|
|
|
14
14
|
export declare class FridayyMcpServer {
|
|
15
15
|
private server;
|
|
16
16
|
private config;
|
|
17
|
+
private serverName;
|
|
18
|
+
private serverVersion;
|
|
17
19
|
private toolRegistry;
|
|
18
20
|
private toolHandler;
|
|
19
21
|
private resourceRegistry;
|
|
20
22
|
private promptRegistry;
|
|
21
23
|
private sseTransports;
|
|
24
|
+
private sseServers;
|
|
22
25
|
constructor(options: FridayyServerOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Builds a fresh MCP `Server` instance with the standard tool/resource/
|
|
28
|
+
* prompt handlers registered on it.
|
|
29
|
+
*
|
|
30
|
+
* The MCP SDK's `Server.connect()` only supports one connected transport
|
|
31
|
+
* at a time — calling it a second time on the same instance throws
|
|
32
|
+
* "Already connected to a transport." A single shared `Server` therefore
|
|
33
|
+
* cannot serve more than one SSE client concurrently, so `startSse()`
|
|
34
|
+
* calls this once per incoming `/sse` connection rather than reusing one
|
|
35
|
+
* instance across sessions.
|
|
36
|
+
*/
|
|
37
|
+
private createMcpServer;
|
|
23
38
|
private registerHandlers;
|
|
24
39
|
/**
|
|
25
40
|
* Starts the server on Stdio transport (default for Claude Desktop, Cursor, local tools).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fridayy-server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/fridayy-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAYnE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"fridayy-server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/fridayy-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAYnE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,OAAO,EAAE,eAAe,EAA0B,MAAM,4BAA4B,CAAC;AAErF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,UAAU,CAAkC;gBAExC,OAAO,EAAE,oBAAoB;IAmBzC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,gBAAgB;IA6CxB;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;;;;;;OASG;IACU,QAAQ,CACnB,IAAI,SAAO,EACX,IAAI,SAAc,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAyF7C,eAAe,IAAI,YAAY;IAI/B,mBAAmB,IAAI,MAAM;CAGrC"}
|
|
@@ -9,31 +9,25 @@ import { ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSche
|
|
|
9
9
|
import express from 'express';
|
|
10
10
|
import { ToolRegistry } from '../tools/tool-registry.js';
|
|
11
11
|
import { ToolHandler } from '../tools/tool-handler.js';
|
|
12
|
+
import { buildToolAnnotations } from '../tools/tool-annotations.js';
|
|
12
13
|
import { ResourceRegistry } from '../resources/resource-registry.js';
|
|
13
14
|
import { PromptRegistry } from '../prompts/prompt-registry.js';
|
|
14
15
|
import { defaultAdapterRegistry } from '../../adapters/registry.js';
|
|
15
16
|
export class FridayyMcpServer {
|
|
16
17
|
server;
|
|
17
18
|
config;
|
|
19
|
+
serverName;
|
|
20
|
+
serverVersion;
|
|
18
21
|
toolRegistry;
|
|
19
22
|
toolHandler;
|
|
20
23
|
resourceRegistry;
|
|
21
24
|
promptRegistry;
|
|
22
25
|
sseTransports = new Map();
|
|
26
|
+
sseServers = new Map();
|
|
23
27
|
constructor(options) {
|
|
24
28
|
this.config = options.config;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.server = new Server({
|
|
28
|
-
name: serverName,
|
|
29
|
-
version: serverVersion
|
|
30
|
-
}, {
|
|
31
|
-
capabilities: {
|
|
32
|
-
tools: {},
|
|
33
|
-
resources: {},
|
|
34
|
-
prompts: {}
|
|
35
|
-
}
|
|
36
|
-
});
|
|
29
|
+
this.serverName = options.config.server?.name || options.config.name || 'fridayy-mcp-server';
|
|
30
|
+
this.serverVersion = options.config.server?.version || options.config.version || '1.0.0';
|
|
37
31
|
this.toolRegistry = new ToolRegistry(options.tools, options.config);
|
|
38
32
|
this.toolHandler = new ToolHandler({
|
|
39
33
|
config: options.config,
|
|
@@ -41,43 +35,72 @@ export class FridayyMcpServer {
|
|
|
41
35
|
});
|
|
42
36
|
this.resourceRegistry = new ResourceRegistry(this.toolRegistry, options.config);
|
|
43
37
|
this.promptRegistry = new PromptRegistry();
|
|
44
|
-
|
|
38
|
+
// A single default Server instance, used by startStdio() (exactly one
|
|
39
|
+
// client ever connects over stdio) and returned by getUnderlyingServer()
|
|
40
|
+
// for direct in-process connections (e.g. tests using InMemoryTransport).
|
|
41
|
+
this.server = this.createMcpServer();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Builds a fresh MCP `Server` instance with the standard tool/resource/
|
|
45
|
+
* prompt handlers registered on it.
|
|
46
|
+
*
|
|
47
|
+
* The MCP SDK's `Server.connect()` only supports one connected transport
|
|
48
|
+
* at a time — calling it a second time on the same instance throws
|
|
49
|
+
* "Already connected to a transport." A single shared `Server` therefore
|
|
50
|
+
* cannot serve more than one SSE client concurrently, so `startSse()`
|
|
51
|
+
* calls this once per incoming `/sse` connection rather than reusing one
|
|
52
|
+
* instance across sessions.
|
|
53
|
+
*/
|
|
54
|
+
createMcpServer() {
|
|
55
|
+
const server = new Server({
|
|
56
|
+
name: this.serverName,
|
|
57
|
+
version: this.serverVersion
|
|
58
|
+
}, {
|
|
59
|
+
capabilities: {
|
|
60
|
+
tools: {},
|
|
61
|
+
resources: {},
|
|
62
|
+
prompts: {}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
this.registerHandlers(server);
|
|
66
|
+
return server;
|
|
45
67
|
}
|
|
46
|
-
registerHandlers() {
|
|
68
|
+
registerHandlers(server) {
|
|
47
69
|
// 1. List Tools Handler
|
|
48
|
-
|
|
70
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
49
71
|
const exposedTools = this.toolRegistry.getExposedTools();
|
|
50
72
|
return {
|
|
51
73
|
tools: exposedTools.map(tool => ({
|
|
52
74
|
name: tool.name,
|
|
53
75
|
description: tool.description,
|
|
54
|
-
inputSchema: tool.inputSchema
|
|
76
|
+
inputSchema: tool.inputSchema,
|
|
77
|
+
annotations: buildToolAnnotations(tool)
|
|
55
78
|
}))
|
|
56
79
|
};
|
|
57
80
|
});
|
|
58
81
|
// 2. Call Tool Handler
|
|
59
|
-
|
|
82
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
60
83
|
const { name, arguments: args } = request.params;
|
|
61
84
|
return await this.toolHandler.handleCall(name, args || {}, this.toolRegistry);
|
|
62
85
|
});
|
|
63
86
|
// 3. List Resources Handler
|
|
64
|
-
|
|
87
|
+
server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
65
88
|
return {
|
|
66
89
|
resources: this.resourceRegistry.listResources()
|
|
67
90
|
};
|
|
68
91
|
});
|
|
69
92
|
// 4. Read Resource Handler
|
|
70
|
-
|
|
93
|
+
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
71
94
|
return this.resourceRegistry.readResource(request.params.uri);
|
|
72
95
|
});
|
|
73
96
|
// 5. List Prompts Handler
|
|
74
|
-
|
|
97
|
+
server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
75
98
|
return {
|
|
76
99
|
prompts: this.promptRegistry.listPrompts()
|
|
77
100
|
};
|
|
78
101
|
});
|
|
79
102
|
// 6. Get Prompt Handler
|
|
80
|
-
|
|
103
|
+
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
81
104
|
return this.promptRegistry.getPrompt(request.params.name, request.params.arguments);
|
|
82
105
|
});
|
|
83
106
|
}
|
|
@@ -122,17 +145,27 @@ export class FridayyMcpServer {
|
|
|
122
145
|
next();
|
|
123
146
|
});
|
|
124
147
|
}
|
|
125
|
-
// SSE endpoint
|
|
148
|
+
// SSE endpoint. Each connection gets its own Server instance (see
|
|
149
|
+
// createMcpServer()) so concurrent clients don't fight over one
|
|
150
|
+
// single-transport-at-a-time Server.
|
|
126
151
|
app.get('/sse', async (req, res) => {
|
|
127
152
|
const transport = new SSEServerTransport('/messages', res);
|
|
128
153
|
const sessionId = transport.sessionId;
|
|
154
|
+
const sessionServer = this.createMcpServer();
|
|
129
155
|
this.sseTransports.set(sessionId, transport);
|
|
156
|
+
this.sseServers.set(sessionId, sessionServer);
|
|
130
157
|
req.on('close', () => {
|
|
131
158
|
this.sseTransports.delete(sessionId);
|
|
159
|
+
this.sseServers.delete(sessionId);
|
|
132
160
|
});
|
|
133
|
-
await
|
|
161
|
+
await sessionServer.connect(transport);
|
|
134
162
|
});
|
|
135
|
-
// Message receiver endpoint
|
|
163
|
+
// Message receiver endpoint. express.json() above has already consumed
|
|
164
|
+
// and parsed the request body, so the underlying stream is no longer
|
|
165
|
+
// readable — the SDK's handlePostMessage() must be given that parsed
|
|
166
|
+
// body directly (its optional third argument) rather than re-reading
|
|
167
|
+
// req itself, or every POST here fails with "stream is not readable"
|
|
168
|
+
// and the SSE handshake can never complete.
|
|
136
169
|
app.post('/messages', async (req, res) => {
|
|
137
170
|
const sessionId = req.query.sessionId;
|
|
138
171
|
const transport = this.sseTransports.get(sessionId);
|
|
@@ -140,7 +173,7 @@ export class FridayyMcpServer {
|
|
|
140
173
|
res.status(404).json({ error: 'Session not found' });
|
|
141
174
|
return;
|
|
142
175
|
}
|
|
143
|
-
await transport.handlePostMessage(req, res);
|
|
176
|
+
await transport.handlePostMessage(req, res, req.body);
|
|
144
177
|
});
|
|
145
178
|
// Health endpoint
|
|
146
179
|
app.get('/health', (req, res) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fridayy-server.js","sourceRoot":"","sources":["../../../src/mcp/server/fridayy-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAmB,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAQrF,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAS;IACf,MAAM,CAAgB;IACtB,YAAY,CAAe;IAC3B,WAAW,CAAc;IACzB,gBAAgB,CAAmB;IACnC,cAAc,CAAiB;IAC/B,aAAa,GAAoC,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"fridayy-server.js","sourceRoot":"","sources":["../../../src/mcp/server/fridayy-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fridayy - MCP Tool Annotations Builder
|
|
3
|
+
* Maps fridayy's own READ/WRITE/DESTRUCTIVE permission classification onto the
|
|
4
|
+
* standard MCP tool annotation hints (readOnlyHint, destructiveHint,
|
|
5
|
+
* idempotentHint, openWorldHint) that clients like Claude Desktop and Cursor
|
|
6
|
+
* use to decide what to auto-approve versus confirm with the user.
|
|
7
|
+
*
|
|
8
|
+
* fridayy already computes exactly this classification for every tool (see
|
|
9
|
+
* core/permissions/classifier.ts) — without this, that work stays invisible
|
|
10
|
+
* to the MCP client, which has no signal beyond the tool's name/description
|
|
11
|
+
* for whether a call is safe to run without asking.
|
|
12
|
+
*/
|
|
13
|
+
import { FridayyToolDefinition } from '../../core/schema/types.js';
|
|
14
|
+
export interface ToolAnnotations {
|
|
15
|
+
readOnlyHint: boolean;
|
|
16
|
+
destructiveHint: boolean;
|
|
17
|
+
idempotentHint: boolean;
|
|
18
|
+
openWorldHint: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function buildToolAnnotations(tool: FridayyToolDefinition): ToolAnnotations;
|
|
21
|
+
//# sourceMappingURL=tool-annotations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-annotations.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/tool-annotations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB;AAOD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,eAAe,CAYjF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fridayy - MCP Tool Annotations Builder
|
|
3
|
+
* Maps fridayy's own READ/WRITE/DESTRUCTIVE permission classification onto the
|
|
4
|
+
* standard MCP tool annotation hints (readOnlyHint, destructiveHint,
|
|
5
|
+
* idempotentHint, openWorldHint) that clients like Claude Desktop and Cursor
|
|
6
|
+
* use to decide what to auto-approve versus confirm with the user.
|
|
7
|
+
*
|
|
8
|
+
* fridayy already computes exactly this classification for every tool (see
|
|
9
|
+
* core/permissions/classifier.ts) — without this, that work stays invisible
|
|
10
|
+
* to the MCP client, which has no signal beyond the tool's name/description
|
|
11
|
+
* for whether a call is safe to run without asking.
|
|
12
|
+
*/
|
|
13
|
+
// PUT and DELETE are conventionally idempotent (repeating the same request
|
|
14
|
+
// has the same effect as doing it once); POST and PATCH conventionally are
|
|
15
|
+
// not. GET/HEAD/OPTIONS are read-only, which already implies idempotent.
|
|
16
|
+
const IDEMPOTENT_METHODS = new Set(['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE']);
|
|
17
|
+
export function buildToolAnnotations(tool) {
|
|
18
|
+
const method = (tool.source.method || 'GET').toUpperCase();
|
|
19
|
+
return {
|
|
20
|
+
readOnlyHint: tool.permissions.type === 'READ',
|
|
21
|
+
destructiveHint: tool.permissions.type === 'DESTRUCTIVE',
|
|
22
|
+
idempotentHint: IDEMPOTENT_METHODS.has(method),
|
|
23
|
+
// Every fridayy tool calls out to an external HTTP API rather than
|
|
24
|
+
// operating over a fixed, enumerable set of entities the client already
|
|
25
|
+
// knows about, so this is true for the whole tool surface.
|
|
26
|
+
openWorldHint: true
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=tool-annotations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-annotations.js","sourceRoot":"","sources":["../../../src/mcp/tools/tool-annotations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhF,MAAM,UAAU,oBAAoB,CAAC,IAA2B;IAC9D,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAE3D,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM;QAC9C,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa;QACxD,cAAc,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;QAC9C,mEAAmE;QACnE,wEAAwE;QACxE,2DAA2D;QAC3D,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED