apcore-mcp 0.15.0 → 0.16.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/approval.d.ts +21 -0
- package/dist/adapters/approval.d.ts.map +1 -1
- package/dist/adapters/approval.js +49 -0
- package/dist/adapters/approval.js.map +1 -1
- package/dist/adapters/errors.d.ts.map +1 -1
- package/dist/adapters/errors.js +0 -32
- package/dist/adapters/errors.js.map +1 -1
- package/dist/apcore-mcp.d.ts +16 -0
- package/dist/apcore-mcp.d.ts.map +1 -1
- package/dist/apcore-mcp.js +42 -4
- package/dist/apcore-mcp.js.map +1 -1
- package/dist/approval-store.d.ts +64 -0
- package/dist/approval-store.d.ts.map +1 -0
- package/dist/approval-store.js +139 -0
- package/dist/approval-store.js.map +1 -0
- package/dist/helpers.d.ts +2 -2
- package/dist/helpers.js +2 -2
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/server/approval-bridge.d.ts +27 -0
- package/dist/server/approval-bridge.d.ts.map +1 -0
- package/dist/server/approval-bridge.js +77 -0
- package/dist/server/approval-bridge.js.map +1 -0
- package/dist/server/context.d.ts +36 -40
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +43 -54
- package/dist/server/context.js.map +1 -1
- package/dist/server/factory.d.ts +2 -0
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +17 -1
- package/dist/server/factory.js.map +1 -1
- package/dist/server/router.d.ts +9 -15
- package/dist/server/router.d.ts.map +1 -1
- package/dist/server/router.js +9 -23
- package/dist/server/router.js.map +1 -1
- package/dist/server/trace-context.d.ts +1 -1
- package/dist/server/trace-context.js +1 -1
- package/package.json +2 -2
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Uses the MCP elicit callback (injected into Context.data) to present
|
|
5
5
|
* approval requests to the human user via the MCP client.
|
|
6
6
|
*/
|
|
7
|
+
import type { ApprovalStore } from "../approval-store.js";
|
|
7
8
|
export interface ApprovalRequest {
|
|
8
9
|
moduleId: string;
|
|
9
10
|
description?: string | null;
|
|
@@ -32,4 +33,24 @@ export declare class ElicitationApprovalHandler {
|
|
|
32
33
|
*/
|
|
33
34
|
checkApproval(_approvalId: string): Promise<ApprovalResult>;
|
|
34
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Phase B approval handler backed by a pluggable ApprovalStore.
|
|
38
|
+
*
|
|
39
|
+
* requestApproval() saves a pending record and returns a pending ApprovalResult
|
|
40
|
+
* causing apcore to raise ApprovalPendingError → APPROVAL_PENDING in MCP envelope.
|
|
41
|
+
* checkApproval() reads the store; called by apcore when client retries with
|
|
42
|
+
* _meta.approvalId set.
|
|
43
|
+
*
|
|
44
|
+
* notifyCallback lets callers fan out to Slack/email/webhooks.
|
|
45
|
+
* Signature: (approvalId: string, moduleId: string, arguments: Record<string, unknown>) => Promise<void>
|
|
46
|
+
*/
|
|
47
|
+
export declare class StorageBackedApprovalHandler {
|
|
48
|
+
private readonly store;
|
|
49
|
+
private readonly notifyCallback?;
|
|
50
|
+
constructor(store: ApprovalStore, options?: {
|
|
51
|
+
notifyCallback?: (approvalId: string, moduleId: string, args: Record<string, unknown>) => Promise<void>;
|
|
52
|
+
});
|
|
53
|
+
requestApproval(request: ApprovalRequest): Promise<ApprovalResult>;
|
|
54
|
+
checkApproval(approvalId: string): Promise<ApprovalResult>;
|
|
55
|
+
}
|
|
35
56
|
//# sourceMappingURL=approval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/adapters/approval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,qBAAa,0BAA0B;IACrC;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAsCxE;;;;;OAKG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAGlE"}
|
|
1
|
+
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/adapters/approval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,qBAAa,0BAA0B;IACrC;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAsCxE;;;;;OAKG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAGlE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAyF;gBAGvH,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE;QACP,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACpG;IAMF,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAmBlE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAajE"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Uses the MCP elicit callback (injected into Context.data) to present
|
|
5
5
|
* approval requests to the human user via the MCP client.
|
|
6
6
|
*/
|
|
7
|
+
import { randomUUID } from "crypto";
|
|
7
8
|
import { MCP_ELICIT_KEY } from "../helpers.js";
|
|
8
9
|
export class ElicitationApprovalHandler {
|
|
9
10
|
/**
|
|
@@ -50,4 +51,52 @@ export class ElicitationApprovalHandler {
|
|
|
50
51
|
return { status: "rejected", reason: "Phase B not supported via MCP elicitation" };
|
|
51
52
|
}
|
|
52
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Phase B approval handler backed by a pluggable ApprovalStore.
|
|
56
|
+
*
|
|
57
|
+
* requestApproval() saves a pending record and returns a pending ApprovalResult
|
|
58
|
+
* causing apcore to raise ApprovalPendingError → APPROVAL_PENDING in MCP envelope.
|
|
59
|
+
* checkApproval() reads the store; called by apcore when client retries with
|
|
60
|
+
* _meta.approvalId set.
|
|
61
|
+
*
|
|
62
|
+
* notifyCallback lets callers fan out to Slack/email/webhooks.
|
|
63
|
+
* Signature: (approvalId: string, moduleId: string, arguments: Record<string, unknown>) => Promise<void>
|
|
64
|
+
*/
|
|
65
|
+
export class StorageBackedApprovalHandler {
|
|
66
|
+
store;
|
|
67
|
+
notifyCallback;
|
|
68
|
+
constructor(store, options = {}) {
|
|
69
|
+
this.store = store;
|
|
70
|
+
this.notifyCallback = options.notifyCallback;
|
|
71
|
+
}
|
|
72
|
+
async requestApproval(request) {
|
|
73
|
+
const approvalId = randomUUID();
|
|
74
|
+
const moduleId = request.moduleId ?? "unknown";
|
|
75
|
+
const args = request.arguments ?? {};
|
|
76
|
+
await this.store.savePending(approvalId, moduleId, args);
|
|
77
|
+
if (this.notifyCallback) {
|
|
78
|
+
try {
|
|
79
|
+
await this.notifyCallback(approvalId, moduleId, args);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
// log but don't fail the approval request
|
|
83
|
+
console.warn(`[apcore-mcp] notifyCallback raised for approval ${approvalId}:`, err);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return { status: "pending", reason: approvalId };
|
|
87
|
+
}
|
|
88
|
+
async checkApproval(approvalId) {
|
|
89
|
+
const record = await this.store.getResult(approvalId);
|
|
90
|
+
if (!record) {
|
|
91
|
+
return { status: "rejected", reason: "approval_id not found" };
|
|
92
|
+
}
|
|
93
|
+
if (record.status === "approved") {
|
|
94
|
+
return { status: "approved" };
|
|
95
|
+
}
|
|
96
|
+
if (record.status === "rejected") {
|
|
97
|
+
return { status: "rejected", reason: record.reason ?? undefined };
|
|
98
|
+
}
|
|
99
|
+
return { status: "pending" };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
53
102
|
//# sourceMappingURL=approval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/adapters/approval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/adapters/approval.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAOxD;AA0DD,qBAAa,WAAW;IACtB;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAOxD;AA0DD,qBAAa,WAAW;IACtB;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IA4M5C;;;;;;;;;;OAUG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAQ/C;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAsDjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;CA4B/B"}
|
package/dist/adapters/errors.js
CHANGED
|
@@ -222,19 +222,6 @@ export class ErrorMapper {
|
|
|
222
222
|
this._attachAiGuidance(error, result);
|
|
223
223
|
return result;
|
|
224
224
|
}
|
|
225
|
-
// Dependency resolution errors (apcore 0.19) -> pass through with user-fixable hint
|
|
226
|
-
if (code === ErrorCodes.DEPENDENCY_NOT_FOUND ||
|
|
227
|
-
code === ErrorCodes.DEPENDENCY_VERSION_MISMATCH) {
|
|
228
|
-
const result = {
|
|
229
|
-
isError: true,
|
|
230
|
-
errorType: code,
|
|
231
|
-
message: error.message,
|
|
232
|
-
details,
|
|
233
|
-
userFixable: true,
|
|
234
|
-
};
|
|
235
|
-
this._attachAiGuidance(error, result);
|
|
236
|
-
return result;
|
|
237
|
-
}
|
|
238
225
|
// Task limit exceeded -> retryable
|
|
239
226
|
if (code === ErrorCodes.TASK_LIMIT_EXCEEDED) {
|
|
240
227
|
const result = {
|
|
@@ -267,22 +254,6 @@ export class ErrorMapper {
|
|
|
267
254
|
}
|
|
268
255
|
return result;
|
|
269
256
|
}
|
|
270
|
-
// Binding / version-constraint validation errors (apcore 0.19) -> pass through
|
|
271
|
-
if (code === ErrorCodes.VERSION_CONSTRAINT_INVALID ||
|
|
272
|
-
code === ErrorCodes.BINDING_SCHEMA_INFERENCE_FAILED ||
|
|
273
|
-
code === ErrorCodes.BINDING_SCHEMA_MODE_CONFLICT ||
|
|
274
|
-
code === ErrorCodes.BINDING_STRICT_SCHEMA_INCOMPATIBLE ||
|
|
275
|
-
code === ErrorCodes.BINDING_POLICY_VIOLATION) {
|
|
276
|
-
const result = {
|
|
277
|
-
isError: true,
|
|
278
|
-
errorType: code,
|
|
279
|
-
message: error.message,
|
|
280
|
-
details,
|
|
281
|
-
userFixable: true,
|
|
282
|
-
};
|
|
283
|
-
this._attachAiGuidance(error, result);
|
|
284
|
-
return result;
|
|
285
|
-
}
|
|
286
257
|
// Other known ModuleError codes -> pass through
|
|
287
258
|
const result = {
|
|
288
259
|
isError: true,
|
|
@@ -346,7 +317,6 @@ export class ErrorMapper {
|
|
|
346
317
|
errorType: ErrorCodes.DEPENDENCY_NOT_FOUND,
|
|
347
318
|
message: error.message,
|
|
348
319
|
details: asModErr.details ?? null,
|
|
349
|
-
userFixable: true,
|
|
350
320
|
};
|
|
351
321
|
this._attachAiGuidance(error, result);
|
|
352
322
|
return result;
|
|
@@ -357,7 +327,6 @@ export class ErrorMapper {
|
|
|
357
327
|
errorType: ErrorCodes.DEPENDENCY_VERSION_MISMATCH,
|
|
358
328
|
message: error.message,
|
|
359
329
|
details: asModErr.details ?? null,
|
|
360
|
-
userFixable: true,
|
|
361
330
|
};
|
|
362
331
|
this._attachAiGuidance(error, result);
|
|
363
332
|
return result;
|
|
@@ -368,7 +337,6 @@ export class ErrorMapper {
|
|
|
368
337
|
errorType: ErrorCodes.VERSION_CONSTRAINT_INVALID,
|
|
369
338
|
message: error.message,
|
|
370
339
|
details: asModErr.details ?? null,
|
|
371
|
-
userFixable: true,
|
|
372
340
|
};
|
|
373
341
|
this._attachAiGuidance(error, result);
|
|
374
342
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/apcore-mcp.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ import type { RegistryOrExecutor, Registry, Executor, OpenAIToolDef } from "./ty
|
|
|
29
29
|
import type { Authenticator } from "./auth/types.js";
|
|
30
30
|
import type { MetricsExporter } from "./server/transport.js";
|
|
31
31
|
import type { ObservabilityFlag } from "./server/observability.js";
|
|
32
|
+
import type { ApprovalStore } from "./approval-store.js";
|
|
32
33
|
import type { AsyncServeApp, ToOpenaiToolsOptions } from "./index.js";
|
|
33
34
|
/** Options for the APCoreMCP constructor. */
|
|
34
35
|
export interface APCoreMCPOptions {
|
|
@@ -62,6 +63,19 @@ export interface APCoreMCPOptions {
|
|
|
62
63
|
exemptPaths?: string[];
|
|
63
64
|
/** Optional approval handler passed to the Executor. */
|
|
64
65
|
approvalHandler?: unknown;
|
|
66
|
+
/**
|
|
67
|
+
* Pluggable ApprovalStore for Phase B async polling.
|
|
68
|
+
* When provided and no explicit `approvalHandler` is given, a
|
|
69
|
+
* StorageBackedApprovalHandler is auto-created and wired as the Executor's
|
|
70
|
+
* approval handler.
|
|
71
|
+
*/
|
|
72
|
+
approvalStore?: ApprovalStore;
|
|
73
|
+
/**
|
|
74
|
+
* Optional callback invoked when a new approval is requested.
|
|
75
|
+
* Used together with `approvalStore` to fan out to Slack/email/webhooks.
|
|
76
|
+
* Signature: (approvalId, moduleId, args) => Promise<void>
|
|
77
|
+
*/
|
|
78
|
+
approvalNotify?: (approvalId: string, moduleId: string, args: Record<string, unknown>) => Promise<void>;
|
|
65
79
|
/**
|
|
66
80
|
* Optional function that formats execution results into text for LLM consumption.
|
|
67
81
|
* When undefined, results are serialised with `JSON.stringify(result)`.
|
|
@@ -129,6 +143,8 @@ export declare class APCoreMCP {
|
|
|
129
143
|
private _registry;
|
|
130
144
|
private _executor;
|
|
131
145
|
private readonly _extensionsDir;
|
|
146
|
+
private readonly _approvalStore;
|
|
147
|
+
private readonly _approvalHandler;
|
|
132
148
|
/**
|
|
133
149
|
* Create an APCoreMCP instance.
|
|
134
150
|
*
|
package/dist/apcore-mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apcore-mcp.d.ts","sourceRoot":"","sources":["../src/apcore-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"apcore-mcp.d.ts","sourceRoot":"","sources":["../src/apcore-mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/apcore-mcp.js
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* const mcp = new APCoreMCP(registry);
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
+
import { StorageBackedApprovalHandler } from "./adapters/approval.js";
|
|
28
29
|
import { serve, asyncServe, toOpenaiTools, resolveRegistry, } from "./index.js";
|
|
29
30
|
export class APCoreMCP {
|
|
30
31
|
_backend;
|
|
@@ -32,6 +33,8 @@ export class APCoreMCP {
|
|
|
32
33
|
_registry;
|
|
33
34
|
_executor;
|
|
34
35
|
_extensionsDir;
|
|
36
|
+
_approvalStore;
|
|
37
|
+
_approvalHandler;
|
|
35
38
|
/**
|
|
36
39
|
* Create an APCoreMCP instance.
|
|
37
40
|
*
|
|
@@ -59,6 +62,18 @@ export class APCoreMCP {
|
|
|
59
62
|
throw new Error("prefix must not be empty if provided");
|
|
60
63
|
}
|
|
61
64
|
this._options = { name, ...options };
|
|
65
|
+
// Auto-create StorageBackedApprovalHandler when approvalStore is provided
|
|
66
|
+
// and no explicit approvalHandler was given.
|
|
67
|
+
if (options.approvalStore && !options.approvalHandler) {
|
|
68
|
+
this._approvalStore = options.approvalStore;
|
|
69
|
+
this._approvalHandler = new StorageBackedApprovalHandler(options.approvalStore, {
|
|
70
|
+
notifyCallback: options.approvalNotify,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this._approvalStore = options.approvalStore;
|
|
75
|
+
this._approvalHandler = undefined;
|
|
76
|
+
}
|
|
62
77
|
if (typeof extensionsDirOrBackend === "string") {
|
|
63
78
|
// Defer discovery to first use — will be resolved lazily
|
|
64
79
|
this._backend = null;
|
|
@@ -128,7 +143,7 @@ export class APCoreMCP {
|
|
|
128
143
|
authenticator: this._options.authenticator,
|
|
129
144
|
requireAuth: this._options.requireAuth,
|
|
130
145
|
exemptPaths: this._options.exemptPaths,
|
|
131
|
-
approvalHandler: this._options.approvalHandler,
|
|
146
|
+
approvalHandler: this._approvalHandler ?? this._options.approvalHandler,
|
|
132
147
|
outputFormatter: this._options.outputFormatter,
|
|
133
148
|
middleware: this._options.middleware,
|
|
134
149
|
acl: this._options.acl,
|
|
@@ -170,7 +185,18 @@ export class APCoreMCP {
|
|
|
170
185
|
*/
|
|
171
186
|
async serve(options = {}) {
|
|
172
187
|
const backend = await this._resolveBackend();
|
|
173
|
-
|
|
188
|
+
const store = this._approvalStore;
|
|
189
|
+
if (store && typeof store.start === "function") {
|
|
190
|
+
store.start();
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
await serve(backend, this._buildServeOptions(options));
|
|
194
|
+
}
|
|
195
|
+
finally {
|
|
196
|
+
if (store && typeof store.stop === "function") {
|
|
197
|
+
store.stop();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
174
200
|
}
|
|
175
201
|
/**
|
|
176
202
|
* Build an embeddable MCP HTTP request handler.
|
|
@@ -202,13 +228,25 @@ export class APCoreMCP {
|
|
|
202
228
|
authenticator: this._options.authenticator,
|
|
203
229
|
requireAuth: this._options.requireAuth,
|
|
204
230
|
exemptPaths: this._options.exemptPaths,
|
|
205
|
-
approvalHandler: this._options.approvalHandler,
|
|
231
|
+
approvalHandler: this._approvalHandler ?? this._options.approvalHandler,
|
|
206
232
|
endpoint: options.endpoint,
|
|
207
233
|
outputFormatter: this._options.outputFormatter,
|
|
208
234
|
middleware: this._options.middleware,
|
|
209
235
|
acl: this._options.acl,
|
|
210
236
|
};
|
|
211
|
-
|
|
237
|
+
const store = this._approvalStore;
|
|
238
|
+
if (store && typeof store.start === "function") {
|
|
239
|
+
store.start();
|
|
240
|
+
}
|
|
241
|
+
const app = await asyncServe(backend, asyncOpts);
|
|
242
|
+
const originalClose = app.close;
|
|
243
|
+
app.close = async () => {
|
|
244
|
+
await originalClose();
|
|
245
|
+
if (store && typeof store.stop === "function") {
|
|
246
|
+
store.stop();
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
return app;
|
|
212
250
|
}
|
|
213
251
|
/**
|
|
214
252
|
* Export modules as OpenAI-compatible tool definitions.
|
package/dist/apcore-mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apcore-mcp.js","sourceRoot":"","sources":["../src/apcore-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"apcore-mcp.js","sourceRoot":"","sources":["../src/apcore-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ApprovalStore: pluggable persistence interface for Phase B approval polling.
|
|
3
|
+
*
|
|
4
|
+
* Users supply a concrete implementation (Redis, DB, etc.).
|
|
5
|
+
* InMemoryApprovalStore is provided for testing and local development only —
|
|
6
|
+
* it does NOT survive process restarts and is not suitable for production.
|
|
7
|
+
*/
|
|
8
|
+
export interface ApprovalRecord {
|
|
9
|
+
status: "pending" | "approved" | "rejected";
|
|
10
|
+
moduleId: string;
|
|
11
|
+
reason: string | null;
|
|
12
|
+
createdAt: number;
|
|
13
|
+
resolvedAt: number | null;
|
|
14
|
+
}
|
|
15
|
+
/** Pluggable storage for Phase B approval state. */
|
|
16
|
+
export interface ApprovalStore {
|
|
17
|
+
savePending(approvalId: string, moduleId: string, arguments_: Record<string, unknown>): Promise<void>;
|
|
18
|
+
getResult(approvalId: string): Promise<ApprovalRecord | null>;
|
|
19
|
+
resolve(approvalId: string, options: {
|
|
20
|
+
approved: boolean;
|
|
21
|
+
reason?: string;
|
|
22
|
+
}): Promise<boolean>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* In-process approval store for testing and local development.
|
|
26
|
+
*
|
|
27
|
+
* NOT suitable for production: state is lost on restart, not shared
|
|
28
|
+
* across processes.
|
|
29
|
+
*
|
|
30
|
+
* Memory management:
|
|
31
|
+
* - Resolved records deleted after `resolvedTtlMs` (default 120 000 ms)
|
|
32
|
+
* - Pending records abandoned without resolution deleted after `pendingTtlMs` (default 3 600 000 ms)
|
|
33
|
+
* - Background sweep every `sweepIntervalMs` (default 300 000 ms)
|
|
34
|
+
* - Hard cap `maxRecords` with oldest-pending eviction
|
|
35
|
+
*/
|
|
36
|
+
export declare class InMemoryApprovalStore implements ApprovalStore {
|
|
37
|
+
private readonly resolvedTtlMs;
|
|
38
|
+
private readonly pendingTtlMs;
|
|
39
|
+
private readonly sweepIntervalMs;
|
|
40
|
+
private readonly maxRecords;
|
|
41
|
+
private records;
|
|
42
|
+
private resolvers;
|
|
43
|
+
private sweepTimer;
|
|
44
|
+
constructor(options?: {
|
|
45
|
+
resolvedTtlMs?: number;
|
|
46
|
+
pendingTtlMs?: number;
|
|
47
|
+
sweepIntervalMs?: number;
|
|
48
|
+
maxRecords?: number;
|
|
49
|
+
});
|
|
50
|
+
start(): void;
|
|
51
|
+
stop(): void;
|
|
52
|
+
savePending(approvalId: string, moduleId: string, arguments_: Record<string, unknown>): Promise<void>;
|
|
53
|
+
getResult(approvalId: string): Promise<ApprovalRecord | null>;
|
|
54
|
+
resolve(approvalId: string, options: {
|
|
55
|
+
approved: boolean;
|
|
56
|
+
reason?: string;
|
|
57
|
+
}): Promise<boolean>;
|
|
58
|
+
/** Wait until resolved or timeout. Helper for tests. */
|
|
59
|
+
waitForResolution(approvalId: string, timeoutMs?: number): Promise<ApprovalRecord | null>;
|
|
60
|
+
private deleteRecord;
|
|
61
|
+
private evictOldestPending;
|
|
62
|
+
private sweep;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=approval-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval-store.d.ts","sourceRoot":"","sources":["../src/approval-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9D,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChG;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,SAAS,CAAuD;IACxE,OAAO,CAAC,UAAU,CAA+C;gBAErD,OAAO,GAAE;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;KAChB;IAON,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAON,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAa7D,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBpG,wDAAwD;IAClD,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,SAAU,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAkBhG,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,KAAK;CAUd"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ApprovalStore: pluggable persistence interface for Phase B approval polling.
|
|
3
|
+
*
|
|
4
|
+
* Users supply a concrete implementation (Redis, DB, etc.).
|
|
5
|
+
* InMemoryApprovalStore is provided for testing and local development only —
|
|
6
|
+
* it does NOT survive process restarts and is not suitable for production.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* In-process approval store for testing and local development.
|
|
10
|
+
*
|
|
11
|
+
* NOT suitable for production: state is lost on restart, not shared
|
|
12
|
+
* across processes.
|
|
13
|
+
*
|
|
14
|
+
* Memory management:
|
|
15
|
+
* - Resolved records deleted after `resolvedTtlMs` (default 120 000 ms)
|
|
16
|
+
* - Pending records abandoned without resolution deleted after `pendingTtlMs` (default 3 600 000 ms)
|
|
17
|
+
* - Background sweep every `sweepIntervalMs` (default 300 000 ms)
|
|
18
|
+
* - Hard cap `maxRecords` with oldest-pending eviction
|
|
19
|
+
*/
|
|
20
|
+
export class InMemoryApprovalStore {
|
|
21
|
+
resolvedTtlMs;
|
|
22
|
+
pendingTtlMs;
|
|
23
|
+
sweepIntervalMs;
|
|
24
|
+
maxRecords;
|
|
25
|
+
records = new Map();
|
|
26
|
+
resolvers = new Map();
|
|
27
|
+
sweepTimer = null;
|
|
28
|
+
constructor(options = {}) {
|
|
29
|
+
this.resolvedTtlMs = options.resolvedTtlMs ?? 120_000;
|
|
30
|
+
this.pendingTtlMs = options.pendingTtlMs ?? 3_600_000;
|
|
31
|
+
this.sweepIntervalMs = options.sweepIntervalMs ?? 300_000;
|
|
32
|
+
this.maxRecords = options.maxRecords ?? 10_000;
|
|
33
|
+
}
|
|
34
|
+
start() {
|
|
35
|
+
if (this.sweepTimer !== null)
|
|
36
|
+
return;
|
|
37
|
+
this.sweepTimer = setInterval(() => this.sweep(), this.sweepIntervalMs);
|
|
38
|
+
if (typeof this.sweepTimer === "object" && this.sweepTimer !== null && "unref" in this.sweepTimer) {
|
|
39
|
+
this.sweepTimer.unref(); // don't block process exit
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
stop() {
|
|
43
|
+
if (this.sweepTimer !== null) {
|
|
44
|
+
clearInterval(this.sweepTimer);
|
|
45
|
+
this.sweepTimer = null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async savePending(approvalId, moduleId, arguments_) {
|
|
49
|
+
if (this.records.size >= this.maxRecords) {
|
|
50
|
+
this.evictOldestPending();
|
|
51
|
+
}
|
|
52
|
+
const now = Date.now();
|
|
53
|
+
this.records.set(approvalId, {
|
|
54
|
+
status: "pending",
|
|
55
|
+
moduleId,
|
|
56
|
+
arguments_,
|
|
57
|
+
reason: null,
|
|
58
|
+
createdAt: now,
|
|
59
|
+
resolvedAt: null,
|
|
60
|
+
});
|
|
61
|
+
setTimeout(() => this.deleteRecord(approvalId), this.pendingTtlMs);
|
|
62
|
+
}
|
|
63
|
+
async getResult(approvalId) {
|
|
64
|
+
const rec = this.records.get(approvalId);
|
|
65
|
+
if (!rec)
|
|
66
|
+
return null;
|
|
67
|
+
// Return public fields only (omit arguments_)
|
|
68
|
+
return {
|
|
69
|
+
status: rec.status,
|
|
70
|
+
moduleId: rec.moduleId,
|
|
71
|
+
reason: rec.reason,
|
|
72
|
+
createdAt: rec.createdAt,
|
|
73
|
+
resolvedAt: rec.resolvedAt,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
async resolve(approvalId, options) {
|
|
77
|
+
const rec = this.records.get(approvalId);
|
|
78
|
+
if (!rec || rec.status !== "pending")
|
|
79
|
+
return false;
|
|
80
|
+
rec.status = options.approved ? "approved" : "rejected";
|
|
81
|
+
rec.reason = options.reason ?? null;
|
|
82
|
+
rec.resolvedAt = Date.now();
|
|
83
|
+
delete rec.arguments_; // reclaim memory
|
|
84
|
+
const resolver = this.resolvers.get(approvalId);
|
|
85
|
+
if (resolver) {
|
|
86
|
+
resolver(rec);
|
|
87
|
+
this.resolvers.delete(approvalId);
|
|
88
|
+
}
|
|
89
|
+
setTimeout(() => this.deleteRecord(approvalId), this.resolvedTtlMs);
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
/** Wait until resolved or timeout. Helper for tests. */
|
|
93
|
+
async waitForResolution(approvalId, timeoutMs = 300_000) {
|
|
94
|
+
const rec = this.records.get(approvalId);
|
|
95
|
+
if (!rec)
|
|
96
|
+
return null;
|
|
97
|
+
if (rec.status !== "pending")
|
|
98
|
+
return rec;
|
|
99
|
+
return new Promise((resolve) => {
|
|
100
|
+
const timer = setTimeout(() => {
|
|
101
|
+
this.resolvers.delete(approvalId);
|
|
102
|
+
resolve(this.records.get(approvalId) ?? null);
|
|
103
|
+
}, timeoutMs);
|
|
104
|
+
this.resolvers.set(approvalId, (resolved) => {
|
|
105
|
+
clearTimeout(timer);
|
|
106
|
+
resolve(resolved);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
deleteRecord(approvalId) {
|
|
111
|
+
this.records.delete(approvalId);
|
|
112
|
+
this.resolvers.delete(approvalId);
|
|
113
|
+
}
|
|
114
|
+
evictOldestPending() {
|
|
115
|
+
let oldestId = null;
|
|
116
|
+
let oldestTime = Infinity;
|
|
117
|
+
for (const [id, rec] of this.records) {
|
|
118
|
+
if (rec.status === "pending" && rec.createdAt < oldestTime) {
|
|
119
|
+
oldestTime = rec.createdAt;
|
|
120
|
+
oldestId = id;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (oldestId !== null) {
|
|
124
|
+
this.deleteRecord(oldestId);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
sweep() {
|
|
128
|
+
const now = Date.now();
|
|
129
|
+
for (const [id, rec] of this.records) {
|
|
130
|
+
if (rec.status === "pending" && now - rec.createdAt > this.pendingTtlMs) {
|
|
131
|
+
this.deleteRecord(id);
|
|
132
|
+
}
|
|
133
|
+
else if (rec.status !== "pending" && rec.resolvedAt !== null && now - rec.resolvedAt > this.resolvedTtlMs) {
|
|
134
|
+
this.deleteRecord(id);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=approval-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval-store.js","sourceRoot":"","sources":["../src/approval-store.ts"],"names":[],"mappings":"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"}
|