@maadb/core 0.15.2 → 0.17.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/dist/engine/create-contract.d.ts +10 -0
- package/dist/engine/create-contract.d.ts.map +1 -0
- package/dist/engine/create-contract.js +128 -0
- package/dist/engine/create-contract.js.map +1 -0
- package/dist/engine/document-receipt-types.d.ts +46 -0
- package/dist/engine/document-receipt-types.d.ts.map +1 -0
- package/dist/engine/document-receipt-types.js +2 -0
- package/dist/engine/document-receipt-types.js.map +1 -0
- package/dist/engine/document-receipt.d.ts +22 -0
- package/dist/engine/document-receipt.d.ts.map +1 -0
- package/dist/engine/document-receipt.js +262 -0
- package/dist/engine/document-receipt.js.map +1 -0
- package/dist/engine/guarded-create-types.d.ts +40 -0
- package/dist/engine/guarded-create-types.d.ts.map +1 -0
- package/dist/engine/guarded-create-types.js +2 -0
- package/dist/engine/guarded-create-types.js.map +1 -0
- package/dist/engine/guarded-create.d.ts +28 -0
- package/dist/engine/guarded-create.d.ts.map +1 -0
- package/dist/engine/guarded-create.js +100 -0
- package/dist/engine/guarded-create.js.map +1 -0
- package/dist/engine/index.d.ts +9 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +78 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/writes.d.ts +13 -1
- package/dist/engine/writes.d.ts.map +1 -1
- package/dist/engine/writes.js +20 -11
- package/dist/engine/writes.js.map +1 -1
- package/dist/engine.d.ts +2 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +1 -0
- package/dist/engine.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/git/exact-blob.d.ts +17 -0
- package/dist/git/exact-blob.d.ts.map +1 -0
- package/dist/git/exact-blob.js +107 -0
- package/dist/git/exact-blob.js.map +1 -0
- package/dist/instance/pool.d.ts +10 -0
- package/dist/instance/pool.d.ts.map +1 -1
- package/dist/instance/pool.js +61 -7
- package/dist/instance/pool.js.map +1 -1
- package/dist/mcp/kinds.d.ts.map +1 -1
- package/dist/mcp/kinds.js +2 -0
- package/dist/mcp/kinds.js.map +1 -1
- package/dist/mcp/roles.d.ts.map +1 -1
- package/dist/mcp/roles.js +2 -1
- package/dist/mcp/roles.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/document-receipt.d.ts +12 -0
- package/dist/mcp/tools/document-receipt.d.ts.map +1 -0
- package/dist/mcp/tools/document-receipt.js +19 -0
- package/dist/mcp/tools/document-receipt.js.map +1 -0
- package/dist/mcp/tools/guarded-create.d.ts +28 -0
- package/dist/mcp/tools/guarded-create.d.ts.map +1 -0
- package/dist/mcp/tools/guarded-create.js +68 -0
- package/dist/mcp/tools/guarded-create.js.map +1 -0
- package/dist/mcp/with-session.d.ts +3 -0
- package/dist/mcp/with-session.d.ts.map +1 -1
- package/dist/mcp/with-session.js +131 -8
- package/dist/mcp/with-session.js.map +1 -1
- package/dist/schema/loader.d.ts +12 -1
- package/dist/schema/loader.d.ts.map +1 -1
- package/dist/schema/loader.js +48 -15
- package/dist/schema/loader.js.map +1 -1
- package/package.json +1 -1
package/dist/mcp/kinds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kinds.js","sourceRoot":"","sources":["../../src/mcp/kinds.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kinds.js","sourceRoot":"","sources":["../../src/mcp/kinds.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/roles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/mcp/roles.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/mcp/roles.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAoCjD,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAE/D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGvD;AAKD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAE7D;AAGD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAE9C;AAID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAK/D"}
|
package/dist/mcp/roles.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// MCP Roles — role definitions and tool filtering
|
|
3
3
|
// ============================================================================
|
|
4
4
|
const READER_TOOLS = [
|
|
5
|
+
'maad_document_receipt', 'maad_create_contract',
|
|
5
6
|
'maad_scan', 'maad_summary', 'maad_describe',
|
|
6
7
|
'maad_get', 'maad_query', 'maad_search', 'maad_related', 'maad_relationship_paths', 'maad_schema', 'maad_aggregate', 'maad_join',
|
|
7
8
|
'maad_verify', 'maad_find_orphans', 'maad_changes_since', 'maad_semantic_search',
|
|
@@ -10,7 +11,7 @@ const READER_TOOLS = [
|
|
|
10
11
|
];
|
|
11
12
|
const WRITER_TOOLS = [
|
|
12
13
|
...READER_TOOLS,
|
|
13
|
-
'maad_create', 'maad_update', 'maad_validate', 'maad_bulk_create', 'maad_bulk_update',
|
|
14
|
+
'maad_create_guarded', 'maad_create', 'maad_update', 'maad_validate', 'maad_bulk_create', 'maad_bulk_update',
|
|
14
15
|
];
|
|
15
16
|
const ADMIN_TOOLS = [
|
|
16
17
|
...WRITER_TOOLS,
|
package/dist/mcp/roles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/mcp/roles.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAI/E,MAAM,YAAY,GAAG;IACnB,WAAW,EAAE,cAAc,EAAE,eAAe;IAC5C,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,yBAAyB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW;IAChI,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB;IAChF,cAAc,EAAE,YAAY;IAC5B,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,GAAG,YAAY;IACf,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/mcp/roles.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAI/E,MAAM,YAAY,GAAG;IACnB,uBAAuB,EAAE,sBAAsB;IAC/C,WAAW,EAAE,cAAc,EAAE,eAAe;IAC5C,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,yBAAyB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW;IAChI,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB;IAChF,cAAc,EAAE,YAAY;IAC5B,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,GAAG,YAAY;IACf,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB;CACpG,CAAC;AAEX,MAAM,WAAW,GAAG;IAClB,GAAG,YAAY;IACf,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;IAC3D,sBAAsB;IACtB,oBAAoB;IACpB,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB;IAC5D,kBAAkB,EAAE,iBAAiB;IACrC,aAAa;IACb,YAAY;IACZ,sEAAsE;IACtE,kBAAkB,EAAE,mBAAmB,EAAE,yBAAyB;IAClE,mBAAmB;CACX,CAAC;AAEX,MAAM,UAAU,GAAoC;IAClD,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAuB;IAC/C,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC;IACxE,OAAO,QAAQ,CAAC,CAAC,2BAA2B;AAC9C,CAAC;AAED,MAAM,SAAS,GAAyB,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAE3E,iEAAiE;AACjE,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,IAAU;IAClD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,OAAO,CAAC,CAAO,EAAE,CAAO;IACtC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,6EAA6E;AAC7E,oDAAoD;AACpD,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAK,YAAkC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5E,IAAK,YAAkC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5E,IAAK,WAAiC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAgDA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACrC;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0PnE"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -31,6 +31,8 @@ import { existsSync } from 'node:fs';
|
|
|
31
31
|
import path from 'node:path';
|
|
32
32
|
import * as discoverTools from './tools/discover.js';
|
|
33
33
|
import * as readTools from './tools/read.js';
|
|
34
|
+
import * as guardedCreateTools from './tools/guarded-create.js';
|
|
35
|
+
import * as documentReceiptTools from './tools/document-receipt.js';
|
|
34
36
|
import * as writeTools from './tools/write.js';
|
|
35
37
|
import * as auditTools from './tools/audit.js';
|
|
36
38
|
import * as maintainTools from './tools/maintain.js';
|
|
@@ -133,9 +135,12 @@ export async function startServer(opts) {
|
|
|
133
135
|
}
|
|
134
136
|
toolCount += discoverTools.register(server, ctx);
|
|
135
137
|
toolCount += readTools.register(server, ctx);
|
|
138
|
+
toolCount += documentReceiptTools.register(server, ctx);
|
|
139
|
+
toolCount += guardedCreateTools.registerContract(server, ctx);
|
|
136
140
|
toolCount += auditTools.register(server, ctx);
|
|
137
141
|
if (legacyRole === 'writer' || legacyRole === 'admin') {
|
|
138
142
|
toolCount += writeTools.register(server, ctx);
|
|
143
|
+
toolCount += guardedCreateTools.registerWrite(server, ctx);
|
|
139
144
|
}
|
|
140
145
|
if (legacyRole === 'admin') {
|
|
141
146
|
toolCount += maintainTools.register(server, ctx);
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,qDAAqD;AACrD,yEAAyE;AACzE,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAA4B,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAuB,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AA4C7C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAkB;IAClD,wEAAwE;IACxE,4EAA4E;IAC5E,IAAI,QAAwB,CAAC;IAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,OAAO,CAAC,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACpK,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC1G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sDAAsD;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;IACxG,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC;IACrE,kBAAkB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAClE,iBAAiB,CAAC,UAAiB,CAAC,CAAC;IACrC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,4DAA4D;IAC5D,yEAAyE;IACzE,mEAAmE;IACnE,yDAAyD;IACzD,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,kBAAkB,CAAC;QACjB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QACpD,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,MAAM;QACjC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC3C,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACpC,8EAA8E;IAC9E,2EAA2E;IAC3E,sCAAsC;IACtC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACxC,0EAA0E;IAC1E,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IACxD,yBAAyB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAEnD,oFAAoF;IACpF,6EAA6E;IAC7E,0EAA0E;IAC1E,sEAAsE;IACtE,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,OAAO,CAAC,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,4CAA4C;IAC5C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,6DAA6D;IAC7D,4DAA4D;IAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAE9D,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,OAAO,CAAC,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEpF,MAAM,cAAc,GAAG,GAA6C,EAAE;QACpE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjD,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7C,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YACtD,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjD,SAAS,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpD,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChD,qEAAqE;YACrE,uEAAuE;YACvE,iDAAiD;YACjD,SAAS,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvD,uEAAuE;YACvE,qEAAqE;YACrE,sEAAsE;YACtE,qCAAqC;YACrC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAc,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;IAE3D,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,aAAa,2BAA2B,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,aAAa,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;YACpG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uDAAuD;QACvD,yEAAyE;QACzE,mEAAmE;QACnE,0EAA0E;QAC1E,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,yBAAyB,aAAa,+DAA+D,CAAC,CAAC;YACrH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,aAAa,KAAK,MAAM;YAC7C,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAChC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAC1B,GAAG,SAAS,iCAAiC,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,cAAc,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,aAAa,KAAK,cAAc,GAAG,CAAC,CAAC;QAE3M,sBAAsB,CACpB,aAAa,KAAK,MAAM;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAW,EAAE;YACrD,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CACjE,CAAC;QAEF,mEAAmE;QACnE,yEAAyE;QACzE,0EAA0E;QAC1E,+EAA+E;QAC/E,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAChD,cAAc,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACrC,kBAAkB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAwB,MAAM,kBAAkB,CAAC;YAC3D,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,UAAU,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACvE,UAAU,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACvE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC5C,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC5C,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAChD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;YAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,MAAM,EAAE,MAAO;YACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ;YACR,aAAa,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM;SAC7C,CAAC,CAAC;QAEH,wEAAwE;QACxE,oEAAoE;QACpE,sEAAsE;QACtE,wCAAwC;QACxC,GAAG,CAAC,eAAe,GAAG,CAAC,gBAAyB,EAAE,EAAE;YAClD,MAAM,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,qBAAqB,CACnB,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EACvC;YACE,YAAY,EAAE,KAAK,IAAI,EAAE;gBACvB,yBAAyB,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC3D,CAAC;SACF,CACF,CAAC;QACF,0BAA0B,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,sBAAsB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAC1B,GAAG,SAAS,iCAAiC,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,cAAc,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3J,2EAA2E;IAC3E,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBACtC,GAAG,EAAE,kBAAkB,KAAK,CAAC,KAAK,EAAE;gBACpC,GAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAA8B;aACzJ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,qBAAqB,CACnB,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EACvC;QACE,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,yBAAyB,EAAE,CAAC;YAC5B,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC3D,CAAC;KACF,CACF,CAAC;IACF,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC;AAC3D,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import type { InstanceCtx } from '../ctx.js';
|
|
4
|
+
export declare const documentReceiptInput: z.ZodObject<{
|
|
5
|
+
contract: z.ZodLiteral<"document-persistence-v1">;
|
|
6
|
+
project: z.ZodOptional<z.ZodString>;
|
|
7
|
+
docType: z.ZodString;
|
|
8
|
+
docId: z.ZodString;
|
|
9
|
+
expectedContentDigest: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strict>;
|
|
11
|
+
export declare function register(server: McpServer, ctx: InstanceCtx): number;
|
|
12
|
+
//# sourceMappingURL=document-receipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-receipt.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/document-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,eAAO,MAAM,oBAAoB;;;;;;kBAMtB,CAAC;AAEZ,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CASpE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { withEngine } from '../with-session.js';
|
|
3
|
+
import { resultToResponse } from '../response.js';
|
|
4
|
+
export const documentReceiptInput = z.object({
|
|
5
|
+
contract: z.literal('document-persistence-v1'),
|
|
6
|
+
project: z.string().optional(),
|
|
7
|
+
docType: z.string().min(1).max(256),
|
|
8
|
+
docId: z.string().min(1).max(256),
|
|
9
|
+
expectedContentDigest: z.string().regex(/^[0-9a-f]{64}$/).optional(),
|
|
10
|
+
}).strict();
|
|
11
|
+
export function register(server, ctx) {
|
|
12
|
+
server.registerTool('maad_document_receipt', {
|
|
13
|
+
description: 'Read exact immutable committed document evidence from an already-bound, ready project. Does not prove operation completion or power-loss durability; no result authorizes create replay.',
|
|
14
|
+
inputSchema: documentReceiptInput,
|
|
15
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true },
|
|
16
|
+
}, async (args, extra) => withEngine(ctx, extra, 'maad_document_receipt', args, async ({ engine, projectName, signal }) => resultToResponse(await engine.documentReceipt(args, projectName, signal), 'maad_document_receipt')));
|
|
17
|
+
return 1;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=document-receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-receipt.js","sourceRoot":"","sources":["../../../src/mcp/tools/document-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,GAAgB;IAC1D,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE;QAC3C,WAAW,EAAE,0LAA0L;QACvM,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE;KAClF,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAC5E,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,gBAAgB,CACzD,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import type { InstanceCtx } from '../ctx.js';
|
|
4
|
+
export declare const createContractInput: z.ZodObject<{
|
|
5
|
+
contract: z.ZodLiteral<"create-contract-v1">;
|
|
6
|
+
docType: z.ZodString;
|
|
7
|
+
project: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, z.core.$strict>;
|
|
9
|
+
export declare const guardedCreateInput: z.ZodObject<{
|
|
10
|
+
contract: z.ZodLiteral<"guarded-create-v1">;
|
|
11
|
+
docType: z.ZodString;
|
|
12
|
+
docId: z.ZodString;
|
|
13
|
+
fields: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
14
|
+
body: z.ZodString;
|
|
15
|
+
expectedSchemaDigest: z.ZodString;
|
|
16
|
+
expectedContentDigest: z.ZodString;
|
|
17
|
+
allowedHistoryModes: z.ZodArray<z.ZodEnum<{
|
|
18
|
+
audit: "audit";
|
|
19
|
+
feed: "feed";
|
|
20
|
+
read: "read";
|
|
21
|
+
batch: "batch";
|
|
22
|
+
snapshot: "snapshot";
|
|
23
|
+
}>>;
|
|
24
|
+
project: z.ZodOptional<z.ZodString>;
|
|
25
|
+
}, z.core.$strict>;
|
|
26
|
+
export declare function registerContract(server: McpServer, ctx: InstanceCtx): number;
|
|
27
|
+
export declare function registerWrite(server: McpServer, ctx: InstanceCtx): number;
|
|
28
|
+
//# sourceMappingURL=guarded-create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guarded-create.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/guarded-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAW7C,eAAO,MAAM,mBAAmB;;;;kBAAkF,CAAC;AACnH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;kBAAiF,CAAC;AAEjH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAY5E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAoCzE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { withEngine } from '../with-session.js';
|
|
3
|
+
import { createContractRequestSchema, guardedCreateRequestSchema } from '../../engine/guarded-create.js';
|
|
4
|
+
import { resultToResponse, errorResponse, attachWarnings, attachDurability } from '../response.js';
|
|
5
|
+
import { maadError } from '../../errors.js';
|
|
6
|
+
import { isDryRun, dryRunResponse, auditToolCall } from '../guardrails.js';
|
|
7
|
+
import { getRateLimiter } from '../rate-limit.js';
|
|
8
|
+
import { logWriteAudit, logValidationWarning } from '../../logging.js';
|
|
9
|
+
import { notifyWrite } from '../notifications.js';
|
|
10
|
+
export const createContractInput = createContractRequestSchema.extend({ project: z.string().optional() }).strict();
|
|
11
|
+
export const guardedCreateInput = guardedCreateRequestSchema.extend({ project: z.string().optional() }).strict();
|
|
12
|
+
export function registerContract(server, ctx) {
|
|
13
|
+
server.registerTool('maad_create_contract', {
|
|
14
|
+
description: 'Read a complete versioned schema contract and effective history mode from an already-bound ready project.',
|
|
15
|
+
inputSchema: createContractInput,
|
|
16
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true },
|
|
17
|
+
}, async (args, extra) => withEngine(ctx, extra, 'maad_create_contract', args, async (call) => {
|
|
18
|
+
return resultToResponse(await call.engine.createContract({ contract: args.contract, docType: args.docType }, {
|
|
19
|
+
...(call.signal ? { signal: call.signal } : {}),
|
|
20
|
+
...(call.validateAccess ? { validateAccess: call.validateAccess } : {}),
|
|
21
|
+
}), 'maad_create_contract');
|
|
22
|
+
}));
|
|
23
|
+
return 1;
|
|
24
|
+
}
|
|
25
|
+
export function registerWrite(server, ctx) {
|
|
26
|
+
server.registerTool('maad_create_guarded', {
|
|
27
|
+
description: 'Create exact expected content only if the complete schema, history policy and current write access match. After uncertain outcomes reconcile by document receipt; never automatically replay.',
|
|
28
|
+
inputSchema: guardedCreateInput,
|
|
29
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false },
|
|
30
|
+
}, async (args, extra) => withEngine(ctx, extra, 'maad_create_guarded', args, async (call) => {
|
|
31
|
+
const denied = call.validateAccess?.();
|
|
32
|
+
if (denied)
|
|
33
|
+
return errorResponse([denied]);
|
|
34
|
+
const limit = getRateLimiter().tryAcquireWrite(call.sessionId);
|
|
35
|
+
if (limit)
|
|
36
|
+
return errorResponse([maadError('RATE_LIMITED', 'Write rate limit exceeded', undefined, { ...limit })]);
|
|
37
|
+
auditToolCall('maad_create_guarded', args);
|
|
38
|
+
if (isDryRun())
|
|
39
|
+
return dryRunResponse('maad_create_guarded', args);
|
|
40
|
+
const { project: _project, ...request } = args;
|
|
41
|
+
const result = await call.engine.createGuarded(request, {
|
|
42
|
+
...(call.signal ? { signal: call.signal } : {}),
|
|
43
|
+
...(call.validateAccess ? { validateAccess: call.validateAccess } : {}),
|
|
44
|
+
});
|
|
45
|
+
const response = resultToResponse(result, 'maad_create_guarded');
|
|
46
|
+
if (!result.ok)
|
|
47
|
+
return response;
|
|
48
|
+
const value = result.value;
|
|
49
|
+
logWriteAudit({ request_id: call.requestId, session_id: call.sessionId, project: call.projectName,
|
|
50
|
+
tool: 'maad_create_guarded', doc_id: args.docId, doc_type: args.docType, version_before: null,
|
|
51
|
+
version_after: value.version, changed_fields: [], git_commit: null, role: call.role,
|
|
52
|
+
...(call.token ? { token_id: call.token.id,
|
|
53
|
+
...(call.token.agentId ? { agent_id: call.token.agentId } : {}),
|
|
54
|
+
...(call.token.userId ? { user_id: call.token.userId } : {}) } : {}),
|
|
55
|
+
});
|
|
56
|
+
for (const warning of value.validation.warnings ?? [])
|
|
57
|
+
logValidationWarning({
|
|
58
|
+
request_id: call.requestId, session_id: call.sessionId, project: call.projectName,
|
|
59
|
+
tool: 'maad_create_guarded', doc_id: args.docId, doc_type: args.docType, ...warning,
|
|
60
|
+
});
|
|
61
|
+
if (value.writeDurable)
|
|
62
|
+
await notifyWrite(ctx, { action: 'create', docId: args.docId,
|
|
63
|
+
docType: args.docType, project: call.projectName, updatedAt: new Date().toISOString() });
|
|
64
|
+
return attachDurability(attachWarnings(response, value.validation.warnings), value.writeDurable, value.commitFailure);
|
|
65
|
+
}));
|
|
66
|
+
return 1;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=guarded-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guarded-create.js","sourceRoot":"","sources":["../../../src/mcp/tools/guarded-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { MaadEngine } from '../engine.js';
|
|
2
|
+
import type { MaadError } from '../errors.js';
|
|
2
3
|
import type { InstanceCtx } from './ctx.js';
|
|
3
4
|
interface CallContext {
|
|
5
|
+
signal?: AbortSignal;
|
|
6
|
+
validateAccess?: () => MaadError | null;
|
|
4
7
|
engine: MaadEngine;
|
|
5
8
|
projectName: string;
|
|
6
9
|
projectRoot: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-session.d.ts","sourceRoot":"","sources":["../../src/mcp/with-session.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"with-session.d.ts","sourceRoot":"","sources":["../../src/mcp/with-session.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAsB5C,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,kBAAkB,EAAE,WAAW,CAAC;CAChD;AAED,KAAK,eAAe,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAa1E,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,GACzE,OAAO,CAAC,eAAe,CAAC,CAgX1B"}
|
package/dist/mcp/with-session.js
CHANGED
|
@@ -22,6 +22,8 @@ import { isShuttingDown } from './shutdown.js';
|
|
|
22
22
|
import { getKindForTool, isEngineLess } from './kinds.js';
|
|
23
23
|
import { getHeavyOpGuard, heavyOpKey } from './heavy-ops.js';
|
|
24
24
|
import { isCommitIdentityEnabled } from '../git/commit.js';
|
|
25
|
+
import { composeEffectiveRole } from '../auth/resolve.js';
|
|
26
|
+
import { responseMaxBytes } from './response.js';
|
|
25
27
|
const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
|
|
26
28
|
function getRequestTimeoutMs() {
|
|
27
29
|
const env = process.env.MAAD_REQUEST_TIMEOUT_MS;
|
|
@@ -41,6 +43,8 @@ function getRequestTimeoutMs() {
|
|
|
41
43
|
// concurrent). All of them flow through `finalize()` so every response — success
|
|
42
44
|
// or rejection — is logged uniformly.
|
|
43
45
|
export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
46
|
+
const guarded = toolName === 'maad_create_guarded';
|
|
47
|
+
const strictReady = guarded || toolName === 'maad_create_contract' || toolName === 'maad_document_receipt';
|
|
44
48
|
const requestId = randomUUID();
|
|
45
49
|
const startedMs = Date.now();
|
|
46
50
|
const sessionId = resolveSessionId(extra);
|
|
@@ -54,7 +58,10 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
54
58
|
// — emission only affects the wire response, not diagnostics.
|
|
55
59
|
const emitRequestId = process.env.MAAD_EMIT_REQUEST_ID === 'true';
|
|
56
60
|
const finalize = (response) => {
|
|
57
|
-
|
|
61
|
+
let stamped = emitRequestId ? attachMeta(response, { request_id: requestId }) : response;
|
|
62
|
+
if (strictReady && Buffer.byteLength(JSON.stringify(stamped), 'utf8') > Math.min(1024 * 1024, responseMaxBytes())) {
|
|
63
|
+
stamped = mcpError('RESPONSE_TOO_LARGE', 'Complete receipt response exceeds response cap');
|
|
64
|
+
}
|
|
58
65
|
const latencyMs = Date.now() - startedMs;
|
|
59
66
|
const { result, errorCode } = inspectResponse(stamped);
|
|
60
67
|
logToolCall({
|
|
@@ -75,6 +82,8 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
75
82
|
return finalize(mcpError('SHUTTING_DOWN', 'Server is shutting down; retry against a healthy instance.'));
|
|
76
83
|
}
|
|
77
84
|
let state = ctx.sessions.get(sessionId);
|
|
85
|
+
if (strictReady && !state)
|
|
86
|
+
return finalize(mcpError('SESSION_UNBOUND', 'Receipt requires an already-bound session'));
|
|
78
87
|
if (!state)
|
|
79
88
|
state = ctx.sessions.create(sessionId);
|
|
80
89
|
// Session cancelled by instance-reload (its bound project was removed, or
|
|
@@ -86,7 +95,7 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
86
95
|
return finalize(mcpError('SESSION_CANCELLED', `Session was cancelled because its bound project "${boundProject}" was removed by an instance reload. Reconnect to continue.`));
|
|
87
96
|
}
|
|
88
97
|
// Legacy single-project instance: auto-bind to 'default' on first call.
|
|
89
|
-
if (state.mode === null && ctx.instance.source === 'synthetic') {
|
|
98
|
+
if (!strictReady && state.mode === null && ctx.instance.source === 'synthetic') {
|
|
90
99
|
const bindResult = ctx.sessions.bindSingle(sessionId, 'default');
|
|
91
100
|
if (!bindResult.ok)
|
|
92
101
|
return finalize(errorResponse(bindResult.errors));
|
|
@@ -96,6 +105,9 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
96
105
|
return finalize(mcpError('SESSION_UNBOUND', 'No project bound for this session. Call maad_use_project(s) first.'));
|
|
97
106
|
}
|
|
98
107
|
// Pick project
|
|
108
|
+
if (strictReady && state.mode === 'single' && args?.project !== undefined && args.project !== state.activeProject) {
|
|
109
|
+
return finalize(mcpError('PROJECT_NOT_WHITELISTED', 'Receipt project differs from the bound project'));
|
|
110
|
+
}
|
|
99
111
|
const projectName = resolveProjectName(state, args);
|
|
100
112
|
if (typeof projectName !== 'string')
|
|
101
113
|
return finalize(projectName); // error response
|
|
@@ -110,6 +122,49 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
110
122
|
if (minRole && !roleSatisfies(effectiveRole, minRole)) {
|
|
111
123
|
return finalize(mcpError('INSUFFICIENT_ROLE', `Tool ${toolName} requires role "${minRole}" but session has "${effectiveRole}" for project "${projectName}".`));
|
|
112
124
|
}
|
|
125
|
+
// Receipt reuses session role checks and the existing token/project cap resolver.
|
|
126
|
+
// Re-read live records rather than treating the bind-time snapshot as authority.
|
|
127
|
+
const boundState = state;
|
|
128
|
+
const boundToken = state.token;
|
|
129
|
+
const boundTokenHash = boundToken?.hash;
|
|
130
|
+
const boundTokenId = boundToken?.id;
|
|
131
|
+
const boundMode = state.mode;
|
|
132
|
+
const requiredLiveRole = guarded ? 'writer' : 'reader';
|
|
133
|
+
const currentReceiptAccess = () => {
|
|
134
|
+
const current = ctx.sessions.peek(sessionId);
|
|
135
|
+
if (current !== boundState || current.cancelled)
|
|
136
|
+
return mcpError('SESSION_CANCELLED', 'Receipt session is no longer active');
|
|
137
|
+
const selected = resolveProjectName(current, args);
|
|
138
|
+
if (current.mode !== boundMode || (current.mode === 'single' && current.activeProject !== projectName) || selected !== projectName)
|
|
139
|
+
return mcpError('PROJECT_NOT_WHITELISTED', 'Receipt project binding changed');
|
|
140
|
+
const role = current.effectiveRoles.get(projectName);
|
|
141
|
+
const project = ctx.pool.getInstance().projects.find(p => p.name === projectName);
|
|
142
|
+
if (!project || !role || !roleSatisfies(role, requiredLiveRole) || !roleSatisfies(project.role, requiredLiveRole)) {
|
|
143
|
+
return mcpError('INSUFFICIENT_ROLE', 'Current receipt read access is unavailable');
|
|
144
|
+
}
|
|
145
|
+
if (ctx.tokens || boundToken) {
|
|
146
|
+
if (!ctx.tokens || !boundToken || current.token?.hash !== boundTokenHash)
|
|
147
|
+
return mcpError('TOKEN_UNKNOWN', 'Receipt token is unavailable');
|
|
148
|
+
const token = ctx.tokens.lookupByHash(boundTokenHash);
|
|
149
|
+
if (!token || token.id !== boundTokenId)
|
|
150
|
+
return mcpError('TOKEN_UNKNOWN', 'Receipt token is unavailable');
|
|
151
|
+
if (token.revokedAt !== undefined)
|
|
152
|
+
return mcpError('TOKEN_REVOKED', 'Receipt token was revoked');
|
|
153
|
+
if (token.expiresAt !== undefined && !(Date.parse(token.expiresAt) > Date.now()))
|
|
154
|
+
return mcpError('TOKEN_EXPIRED', 'Receipt token expired');
|
|
155
|
+
const access = composeEffectiveRole(project.role, token, projectName);
|
|
156
|
+
if (!access.ok)
|
|
157
|
+
return mcpError(access.code, access.message);
|
|
158
|
+
if (!roleSatisfies(access.role, requiredLiveRole))
|
|
159
|
+
return mcpError('INSUFFICIENT_ROLE', 'Receipt read access is unavailable');
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
};
|
|
163
|
+
if (strictReady) {
|
|
164
|
+
const denied = currentReceiptAccess();
|
|
165
|
+
if (denied)
|
|
166
|
+
return finalize(denied);
|
|
167
|
+
}
|
|
113
168
|
// Payload size cap. Oversize args are rejected without touching the engine.
|
|
114
169
|
const rl = getRateLimiter();
|
|
115
170
|
const payloadRejection = rl.checkPayloadSize(payloadBytes);
|
|
@@ -132,10 +187,18 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
132
187
|
}));
|
|
133
188
|
}
|
|
134
189
|
let acquiredProject = null;
|
|
190
|
+
let readyReference = null;
|
|
191
|
+
let receiptIsCurrent = null;
|
|
192
|
+
let receiptOwnsSlot = false;
|
|
135
193
|
let recoveryEngine = null;
|
|
136
194
|
try {
|
|
137
195
|
// Resolve engine
|
|
138
|
-
const
|
|
196
|
+
const ready = strictReady ? ctx.pool.acquireReadyReference(projectName) : null;
|
|
197
|
+
if (ready && !ready.ok)
|
|
198
|
+
return finalize(errorResponse(ready.errors));
|
|
199
|
+
if (ready?.ok)
|
|
200
|
+
readyReference = ready.value;
|
|
201
|
+
const poolResult = readyReference ? { ok: true, value: readyReference.engine } : await ctx.pool.get(projectName, {
|
|
139
202
|
allowEmptyIndexRecovery: toolName === 'maad_reindex',
|
|
140
203
|
});
|
|
141
204
|
if (!poolResult.ok)
|
|
@@ -144,8 +207,10 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
144
207
|
recoveryEngine = poolResult.value;
|
|
145
208
|
// 0.7.3 — refcount the engine for the duration of this handler so the
|
|
146
209
|
// idle sweeper cannot evict mid-call. Released in finally below.
|
|
147
|
-
|
|
148
|
-
|
|
210
|
+
if (!strictReady) {
|
|
211
|
+
ctx.pool.acquire(projectName);
|
|
212
|
+
acquiredProject = projectName;
|
|
213
|
+
}
|
|
149
214
|
const project = ctx.instance.projects.find((p) => p.name === projectName);
|
|
150
215
|
// Operation kind dispatch. Reads invoke the handler directly; writes
|
|
151
216
|
// acquire the per-engine write mutex via engine.runExclusive so
|
|
@@ -164,6 +229,14 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
164
229
|
// delayed `tool_call_overrun` log line so operators can see what the
|
|
165
230
|
// slow work was doing.
|
|
166
231
|
const timeoutMs = getRequestTimeoutMs();
|
|
232
|
+
const receiptAbort = strictReady ? new AbortController() : null;
|
|
233
|
+
const externalSignal = extra?.signal;
|
|
234
|
+
const onAbort = () => receiptAbort?.abort();
|
|
235
|
+
if (receiptAbort) {
|
|
236
|
+
externalSignal?.addEventListener('abort', onAbort, { once: true });
|
|
237
|
+
if (externalSignal?.aborted)
|
|
238
|
+
receiptAbort.abort();
|
|
239
|
+
}
|
|
167
240
|
const callCtx = {
|
|
168
241
|
engine: poolResult.value,
|
|
169
242
|
projectName,
|
|
@@ -174,6 +247,21 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
174
247
|
};
|
|
175
248
|
if (state.token !== undefined)
|
|
176
249
|
callCtx.token = state.token;
|
|
250
|
+
if (receiptAbort)
|
|
251
|
+
callCtx.signal = receiptAbort.signal;
|
|
252
|
+
if (strictReady) {
|
|
253
|
+
const retained = readyReference;
|
|
254
|
+
callCtx.validateAccess = () => {
|
|
255
|
+
const denied = currentReceiptAccess();
|
|
256
|
+
if (denied)
|
|
257
|
+
return JSON.parse(denied.content[0].text).errors[0];
|
|
258
|
+
if (receiptAbort?.signal.aborted)
|
|
259
|
+
return { code: 'REQUEST_TIMEOUT', message: 'Strict operation cancelled' };
|
|
260
|
+
if (!retained.isCurrent())
|
|
261
|
+
return { code: 'CREATE_ENGINE_NOT_READY', message: 'Bound engine changed during admission' };
|
|
262
|
+
return null;
|
|
263
|
+
};
|
|
264
|
+
}
|
|
177
265
|
const invokeHandler = () => Promise.resolve(handler(callCtx));
|
|
178
266
|
// 0.7.0 — For writes under an authenticated session with the identity
|
|
179
267
|
// flag on, set the engine's pending commit-identity slot inside the
|
|
@@ -216,12 +304,14 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
216
304
|
}
|
|
217
305
|
}
|
|
218
306
|
const runDispatch = () => kind === 'write'
|
|
219
|
-
?
|
|
307
|
+
? guarded
|
|
308
|
+
? poolResult.value.runGuardedExclusive(runWithIdentity)
|
|
309
|
+
: poolResult.value.runExclusive(toolName, runWithIdentity)
|
|
220
310
|
: invokeHandler();
|
|
221
311
|
// For heavy ops, the single-flight leader also takes a process-global
|
|
222
312
|
// concurrency slot (followers share its result and take none). At the cap,
|
|
223
313
|
// shed with retryable OVERLOADED instead of piling onto the heap.
|
|
224
|
-
|
|
314
|
+
let handlerPromise = heavy
|
|
225
315
|
? guard.runCoalesced(heavyOpKey(projectName, toolName, args), async () => {
|
|
226
316
|
const slot = guard.tryAcquireConcurrencySlot();
|
|
227
317
|
if (!slot.ok) {
|
|
@@ -239,11 +329,34 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
239
329
|
}
|
|
240
330
|
})
|
|
241
331
|
: runDispatch();
|
|
332
|
+
if (strictReady && readyReference) {
|
|
333
|
+
const retained = readyReference;
|
|
334
|
+
receiptIsCurrent = retained.isCurrent;
|
|
335
|
+
receiptOwnsSlot = true;
|
|
336
|
+
readyReference = null;
|
|
337
|
+
handlerPromise = handlerPromise.then(response => {
|
|
338
|
+
if (guarded)
|
|
339
|
+
return response;
|
|
340
|
+
const denied = currentReceiptAccess();
|
|
341
|
+
if (denied)
|
|
342
|
+
return denied;
|
|
343
|
+
if (receiptAbort?.signal.aborted)
|
|
344
|
+
return mcpError('REQUEST_TIMEOUT', 'Receipt observation cancelled');
|
|
345
|
+
if (!retained.isCurrent())
|
|
346
|
+
return mcpError('RECEIPT_ENGINE_NOT_READY', 'Receipt engine changed during observation');
|
|
347
|
+
return response;
|
|
348
|
+
}).finally(() => {
|
|
349
|
+
externalSignal?.removeEventListener('abort', onAbort);
|
|
350
|
+
retained.release();
|
|
351
|
+
slot.release();
|
|
352
|
+
});
|
|
353
|
+
}
|
|
242
354
|
let timedOut = false;
|
|
243
355
|
let timeoutHandle = null;
|
|
244
356
|
const timeoutPromise = new Promise((resolve) => {
|
|
245
357
|
timeoutHandle = setTimeout(() => {
|
|
246
358
|
timedOut = true;
|
|
359
|
+
receiptAbort?.abort();
|
|
247
360
|
resolve(mcpErrorWithDetails('REQUEST_TIMEOUT', `Tool ${toolName} exceeded per-request timeout of ${timeoutMs}ms`, { tool: toolName, limitMs: timeoutMs }));
|
|
248
361
|
}, timeoutMs);
|
|
249
362
|
// Don't keep the event loop alive for a pending request timer —
|
|
@@ -269,10 +382,20 @@ export async function withEngine(ctx, extra, toolName, args, handler) {
|
|
|
269
382
|
getOpsLog().warn({ event: 'tool_call_overrun', request_id: requestId, tool: toolName, limit_ms: timeoutMs, error: String(err) }, 'tool_call_overrun');
|
|
270
383
|
});
|
|
271
384
|
}
|
|
385
|
+
if (strictReady && !guarded) {
|
|
386
|
+
const denied = currentReceiptAccess();
|
|
387
|
+
if (denied)
|
|
388
|
+
return finalize(denied);
|
|
389
|
+
if (!timedOut && receiptIsCurrent && !receiptIsCurrent()) {
|
|
390
|
+
return finalize(mcpError('RECEIPT_ENGINE_NOT_READY', 'Receipt engine changed during observation'));
|
|
391
|
+
}
|
|
392
|
+
}
|
|
272
393
|
return finalize(response);
|
|
273
394
|
}
|
|
274
395
|
finally {
|
|
275
|
-
|
|
396
|
+
readyReference?.release();
|
|
397
|
+
if (!receiptOwnsSlot)
|
|
398
|
+
slot.release();
|
|
276
399
|
// 0.7.3 — release engine refcount. Paired with acquiredProject above;
|
|
277
400
|
// null when pool.get failed and acquire was never called.
|
|
278
401
|
if (acquiredProject !== null)
|