@raytio/mcp-server 10.0.0 → 10.2.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/authorization.d.ts.map +1 -1
- package/dist/authorization.js +4 -0
- package/dist/authorization.js.map +1 -1
- package/dist/tools/_shared/side-effect.d.ts +25 -2
- package/dist/tools/_shared/side-effect.d.ts.map +1 -1
- package/dist/tools/_shared/side-effect.js +29 -4
- package/dist/tools/_shared/side-effect.js.map +1 -1
- package/dist/tools/bkm/bkm-adapter-configuration-update.d.ts +17 -0
- package/dist/tools/bkm/bkm-adapter-configuration-update.d.ts.map +1 -0
- package/dist/tools/bkm/bkm-adapter-configuration-update.js +79 -0
- package/dist/tools/bkm/bkm-adapter-configuration-update.js.map +1 -0
- package/dist/tools/bkm/bkm-availability-search-start.d.ts +20 -0
- package/dist/tools/bkm/bkm-availability-search-start.d.ts.map +1 -0
- package/dist/tools/bkm/bkm-availability-search-start.js +110 -0
- package/dist/tools/bkm/bkm-availability-search-start.js.map +1 -0
- package/dist/tools/bkm/bkm-provider-item-mapping-create.d.ts +15 -0
- package/dist/tools/bkm/bkm-provider-item-mapping-create.d.ts.map +1 -0
- package/dist/tools/bkm/bkm-provider-item-mapping-create.js +62 -0
- package/dist/tools/bkm/bkm-provider-item-mapping-create.js.map +1 -0
- package/dist/tools/bkm/generated-reads.d.ts +5 -0
- package/dist/tools/bkm/generated-reads.d.ts.map +1 -0
- package/dist/tools/bkm/generated-reads.js +33 -0
- package/dist/tools/bkm/generated-reads.js.map +1 -0
- package/dist/tools/bkm/index.d.ts +5 -0
- package/dist/tools/bkm/index.d.ts.map +1 -0
- package/dist/tools/bkm/index.js +13 -0
- package/dist/tools/bkm/index.js.map +1 -0
- package/dist/tools/dcm/dcm-device-command-dispatch.d.ts +28 -0
- package/dist/tools/dcm/dcm-device-command-dispatch.d.ts.map +1 -0
- package/dist/tools/dcm/dcm-device-command-dispatch.js +96 -0
- package/dist/tools/dcm/dcm-device-command-dispatch.js.map +1 -0
- package/dist/tools/dcm/dcm-device-register.d.ts +22 -0
- package/dist/tools/dcm/dcm-device-register.d.ts.map +1 -0
- package/dist/tools/dcm/dcm-device-register.js +86 -0
- package/dist/tools/dcm/dcm-device-register.js.map +1 -0
- package/dist/tools/dcm/dcm-device-slot-configure.d.ts +13 -0
- package/dist/tools/dcm/dcm-device-slot-configure.d.ts.map +1 -0
- package/dist/tools/dcm/dcm-device-slot-configure.js +68 -0
- package/dist/tools/dcm/dcm-device-slot-configure.js.map +1 -0
- package/dist/tools/dcm/dcm-device-update.d.ts +13 -0
- package/dist/tools/dcm/dcm-device-update.d.ts.map +1 -0
- package/dist/tools/dcm/dcm-device-update.js +55 -0
- package/dist/tools/dcm/dcm-device-update.js.map +1 -0
- package/dist/tools/dcm/generated-reads.d.ts +5 -0
- package/dist/tools/dcm/generated-reads.d.ts.map +1 -0
- package/dist/tools/dcm/generated-reads.js +30 -0
- package/dist/tools/dcm/generated-reads.js.map +1 -0
- package/dist/tools/dcm/index.d.ts +5 -0
- package/dist/tools/dcm/index.d.ts.map +1 -0
- package/dist/tools/dcm/index.js +15 -0
- package/dist/tools/dcm/index.js.map +1 -0
- package/dist/tools/domains.d.ts.map +1 -1
- package/dist/tools/domains.js +36 -0
- package/dist/tools/domains.js.map +1 -1
- package/dist/tools/ixn/generated-reads.d.ts +5 -0
- package/dist/tools/ixn/generated-reads.d.ts.map +1 -0
- package/dist/tools/ixn/generated-reads.js +29 -0
- package/dist/tools/ixn/generated-reads.js.map +1 -0
- package/dist/tools/ixn/index.d.ts +5 -0
- package/dist/tools/ixn/index.d.ts.map +1 -0
- package/dist/tools/ixn/index.js +8 -0
- package/dist/tools/ixn/index.js.map +1 -0
- package/dist/tools/ixn/ixn-conversation-start.d.ts +22 -0
- package/dist/tools/ixn/ixn-conversation-start.d.ts.map +1 -0
- package/dist/tools/ixn/ixn-conversation-start.js +98 -0
- package/dist/tools/ixn/ixn-conversation-start.js.map +1 -0
- package/dist/tools/ixn/ixn-message-send.d.ts +28 -0
- package/dist/tools/ixn/ixn-message-send.d.ts.map +1 -0
- package/dist/tools/ixn/ixn-message-send.js +92 -0
- package/dist/tools/ixn/ixn-message-send.js.map +1 -0
- package/dist/tools/role-mapping.d.ts.map +1 -1
- package/dist/tools/role-mapping.js +24 -0
- package/dist/tools/role-mapping.js.map +1 -1
- package/dist/tools/xrm/generated-reads.d.ts +5 -0
- package/dist/tools/xrm/generated-reads.d.ts.map +1 -0
- package/dist/tools/xrm/generated-reads.js +37 -0
- package/dist/tools/xrm/generated-reads.js.map +1 -0
- package/dist/tools/xrm/index.d.ts +5 -0
- package/dist/tools/xrm/index.d.ts.map +1 -0
- package/dist/tools/xrm/index.js +13 -0
- package/dist/tools/xrm/index.js.map +1 -0
- package/dist/tools/xrm/xrm-inbound-email-rule-create.d.ts +21 -0
- package/dist/tools/xrm/xrm-inbound-email-rule-create.d.ts.map +1 -0
- package/dist/tools/xrm/xrm-inbound-email-rule-create.js +85 -0
- package/dist/tools/xrm/xrm-inbound-email-rule-create.js.map +1 -0
- package/dist/tools/xrm/xrm-merchant-create.d.ts +22 -0
- package/dist/tools/xrm/xrm-merchant-create.d.ts.map +1 -0
- package/dist/tools/xrm/xrm-merchant-create.js +85 -0
- package/dist/tools/xrm/xrm-merchant-create.js.map +1 -0
- package/dist/tools/xrm/xrm-merchant-update.d.ts +14 -0
- package/dist/tools/xrm/xrm-merchant-update.d.ts.map +1 -0
- package/dist/tools/xrm/xrm-merchant-update.js +61 -0
- package/dist/tools/xrm/xrm-merchant-update.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API_ERROR, errorResponse, successResponse } from '../types.js';
|
|
3
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
4
|
+
import { confirmFlagSchema } from '../_shared/side-effect.js';
|
|
5
|
+
/**
|
|
6
|
+
* Command semantic tool: dispatch a control message to a registered
|
|
7
|
+
* device through `POST /persist/v2/dcm/devices/{id}/command`. The
|
|
8
|
+
* endpoint rejects a device that is not ONLINE, validates the slot and
|
|
9
|
+
* session-start item, and records `requested_by`. A direct insert into
|
|
10
|
+
* `dcm_device_commands` gets none of that: the send job has no ONLINE
|
|
11
|
+
* check of its own, so a command for an offline device would still
|
|
12
|
+
* report SENT.
|
|
13
|
+
*
|
|
14
|
+
* The tool requires `confirm: true` and a `command_type_code`, which is
|
|
15
|
+
* validated at the boundary for shape only; persist rejects unknown
|
|
16
|
+
* codes. `correlation_id` is server-assigned.
|
|
17
|
+
*
|
|
18
|
+
* ACKNOWLEDGED means the device replied, not that the command worked: a
|
|
19
|
+
* device that does not support a command still acknowledges it, with
|
|
20
|
+
* `success: false` in `response_payload`.
|
|
21
|
+
*
|
|
22
|
+
* This tool is NOT retry-safe. Nothing identifies a repeat call, so a
|
|
23
|
+
* retry sends the command to the device again. It takes no
|
|
24
|
+
* `idempotency_key` because the endpoint would ignore it (WI-0009332).
|
|
25
|
+
*
|
|
26
|
+
* Internal command queues (`fnd_http_outbox`, `ixn_queues`) are
|
|
27
|
+
* EXCLUDED from the MCP surface by the queue guardrail and must not
|
|
28
|
+
* be surfaced by this or any other tool.
|
|
29
|
+
*/
|
|
30
|
+
export const dcmDeviceCommandDispatchTool = {
|
|
31
|
+
name: 'dcm_device_command_dispatch',
|
|
32
|
+
description: 'Send a control command to a registered DCM device. Fails if the device is not ONLINE. ' +
|
|
33
|
+
'Requires confirm=true and command_type_code. Poll dcm_device_commands_get with the ' +
|
|
34
|
+
'returned command_id: ACKNOWLEDGED only means the device replied, so also check ' +
|
|
35
|
+
'response_payload.success. Not deduplicated: calling it again sends the command to the ' +
|
|
36
|
+
'device again, so check dcm_device_commands_list filtered on device_id before retrying.',
|
|
37
|
+
inputSchema: z.object({
|
|
38
|
+
device_id: z.string().min(1).describe('UUID of the target device'),
|
|
39
|
+
command_type_code: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1)
|
|
42
|
+
.max(64)
|
|
43
|
+
.describe('Command from the DCM_COMMAND_TYPE lookup (e.g. GET_STATUS, HALT_STATUS, DISPENSE). ' +
|
|
44
|
+
'Validated at persist. Not every device supports every command.'),
|
|
45
|
+
command_payload: z
|
|
46
|
+
.record(z.unknown())
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('Command-specific payload sent to the device'),
|
|
49
|
+
slot_id: z
|
|
50
|
+
.string()
|
|
51
|
+
.min(1)
|
|
52
|
+
.optional()
|
|
53
|
+
.describe('Optional UUID of a dcm_device_slots row on this device'),
|
|
54
|
+
item_id: z
|
|
55
|
+
.string()
|
|
56
|
+
.min(1)
|
|
57
|
+
.optional()
|
|
58
|
+
.describe('Optional UUID of an item in the slot catalogue, for session-start commands ' +
|
|
59
|
+
'(SET_STATUS, SELECT_PRODUCT, SELECT_TIMER). Requires slot_id.'),
|
|
60
|
+
timeout_seconds: z
|
|
61
|
+
.number()
|
|
62
|
+
.int()
|
|
63
|
+
.positive()
|
|
64
|
+
.max(3600)
|
|
65
|
+
.optional()
|
|
66
|
+
.describe('Command timeout in seconds (defaults per command type)'),
|
|
67
|
+
metadata: z.record(z.unknown()).optional(),
|
|
68
|
+
confirm: confirmFlagSchema,
|
|
69
|
+
}),
|
|
70
|
+
capabilities: [cap('dcm_device_commands', 'INSERT')],
|
|
71
|
+
sideEffect: 'command',
|
|
72
|
+
confirmation: 'caller_confirms',
|
|
73
|
+
idempotency: 'not_idempotent',
|
|
74
|
+
handler: async (args, ctx) => {
|
|
75
|
+
const input = args;
|
|
76
|
+
const body = { command_type_code: input.command_type_code };
|
|
77
|
+
for (const field of [
|
|
78
|
+
'command_payload',
|
|
79
|
+
'slot_id',
|
|
80
|
+
'item_id',
|
|
81
|
+
'timeout_seconds',
|
|
82
|
+
'metadata',
|
|
83
|
+
]) {
|
|
84
|
+
if (input[field] !== undefined)
|
|
85
|
+
body[field] = input[field];
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const result = await ctx.apiClient.postLambda(`/dcm/devices/${encodeURIComponent(input.device_id)}/command`, body);
|
|
89
|
+
return successResponse(result);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return errorResponse(API_ERROR, `Failed to dispatch DCM device command: ${error.message}`);
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=dcm-device-command-dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcm-device-command-dispatch.js","sourceRoot":"","sources":["../../../src/tools/dcm/dcm-device-command-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,uCAAuC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAS;IAChD,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,wFAAwF;QACxF,qFAAqF;QACrF,iFAAiF;QACjF,wFAAwF;QACxF,wFAAwF;IAC1F,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAClE,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,CACP,qFAAqF;YACnF,gEAAgE,CACnE;QACH,eAAe,EAAE,CAAC;aACf,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACnB,QAAQ,EAAE;aACV,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CACP,6EAA6E;YAC3E,+DAA+D,CAClE;QACH,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,GAAG,CAAC,IAAI,CAAC;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,iBAAiB;KAC3B,CAAC;IACF,YAAY,EAAE,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACpD,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAA2B,CAAC;QAC1C,MAAM,IAAI,GAAwB,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACjF,KAAK,MAAM,KAAK,IAAI;YAClB,iBAAiB;YACjB,SAAS;YACT,SAAS;YACT,iBAAiB;YACjB,UAAU;SACX,EAAE,CAAC;YACF,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,UAAU,CAC3C,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAC7D,IAAI,CACL,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,aAAa,CAClB,SAAS,EACT,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Provisioning semantic tool: register a new IoT device on the tenant
|
|
4
|
+
* (`dcm_devices`). Creating a device provisions an IoT identity and
|
|
5
|
+
* causes downstream cloud resources to be allocated on the caller's
|
|
6
|
+
* behalf, so the tool requires:
|
|
7
|
+
*
|
|
8
|
+
* - `confirm: true` to prevent accidental invocation;
|
|
9
|
+
* - a `device_key`. `t_dcm_devices_key_tenant_uk` makes it unique per
|
|
10
|
+
* tenant, so a retry fails with a duplicate-key error rather than
|
|
11
|
+
* provisioning a second device.
|
|
12
|
+
*
|
|
13
|
+
* `device_status_code`, `firmware_version`, `iot_endpoint_name`,
|
|
14
|
+
* `iot_thing_name`, `shadow_state`, and `last_seen_at` are read-only
|
|
15
|
+
* per the pinned contract — persist assigns them during
|
|
16
|
+
* provisioning, and MCP does not attempt to write them.
|
|
17
|
+
*
|
|
18
|
+
* Certificate material (`dcm_device_certificates`) is EXCLUDED from
|
|
19
|
+
* the MCP surface by the credentials guardrail and is never returned.
|
|
20
|
+
*/
|
|
21
|
+
export declare const dcmDeviceRegisterTool: Tool;
|
|
22
|
+
//# sourceMappingURL=dcm-device-register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcm-device-register.d.ts","sourceRoot":"","sources":["../../../src/tools/dcm/dcm-device-register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,EAAE,IAgEnC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API_ERROR, errorResponse, successResponse } from '../types.js';
|
|
3
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
4
|
+
import { confirmFlagSchema, unenforcedIdempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
|
|
5
|
+
/**
|
|
6
|
+
* Provisioning semantic tool: register a new IoT device on the tenant
|
|
7
|
+
* (`dcm_devices`). Creating a device provisions an IoT identity and
|
|
8
|
+
* causes downstream cloud resources to be allocated on the caller's
|
|
9
|
+
* behalf, so the tool requires:
|
|
10
|
+
*
|
|
11
|
+
* - `confirm: true` to prevent accidental invocation;
|
|
12
|
+
* - a `device_key`. `t_dcm_devices_key_tenant_uk` makes it unique per
|
|
13
|
+
* tenant, so a retry fails with a duplicate-key error rather than
|
|
14
|
+
* provisioning a second device.
|
|
15
|
+
*
|
|
16
|
+
* `device_status_code`, `firmware_version`, `iot_endpoint_name`,
|
|
17
|
+
* `iot_thing_name`, `shadow_state`, and `last_seen_at` are read-only
|
|
18
|
+
* per the pinned contract — persist assigns them during
|
|
19
|
+
* provisioning, and MCP does not attempt to write them.
|
|
20
|
+
*
|
|
21
|
+
* Certificate material (`dcm_device_certificates`) is EXCLUDED from
|
|
22
|
+
* the MCP surface by the credentials guardrail and is never returned.
|
|
23
|
+
*/
|
|
24
|
+
export const dcmDeviceRegisterTool = {
|
|
25
|
+
name: 'dcm_device_register',
|
|
26
|
+
description: 'Provision a new IoT device on the tenant (dcm_devices). Requires confirm=true and ' +
|
|
27
|
+
'a device_key. Certificate material is never returned. device_key is unique within ' +
|
|
28
|
+
'the tenant: a retry fails with a duplicate-key error instead of registering a second device.',
|
|
29
|
+
inputSchema: z.object({
|
|
30
|
+
device_key: z
|
|
31
|
+
.string()
|
|
32
|
+
.min(1)
|
|
33
|
+
.max(128)
|
|
34
|
+
.describe('Stable device identifier, unique within the tenant'),
|
|
35
|
+
device_name: z.string().min(1).max(256).describe('Human-readable device name'),
|
|
36
|
+
device_type_code: z.string().max(64).optional(),
|
|
37
|
+
party_id: z
|
|
38
|
+
.string()
|
|
39
|
+
.min(1)
|
|
40
|
+
.optional()
|
|
41
|
+
.describe('UUID of the PRM party (merchant) this device is owned by'),
|
|
42
|
+
location_id: z.string().min(1).optional().describe('UUID of the PRM location'),
|
|
43
|
+
is_public: z
|
|
44
|
+
.boolean()
|
|
45
|
+
.optional()
|
|
46
|
+
.describe('Whether this device is discoverable via the anonymous public view'),
|
|
47
|
+
iot_thing_arn: z
|
|
48
|
+
.string()
|
|
49
|
+
.max(2048)
|
|
50
|
+
.optional()
|
|
51
|
+
.describe('Optional pre-provisioned AWS IoT thing ARN'),
|
|
52
|
+
metadata: z.record(z.unknown()).optional(),
|
|
53
|
+
confirm: confirmFlagSchema,
|
|
54
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
55
|
+
}),
|
|
56
|
+
capabilities: [cap('dcm_devices', 'INSERT')],
|
|
57
|
+
sideEffect: 'provisioning',
|
|
58
|
+
confirmation: 'caller_confirms',
|
|
59
|
+
idempotency: 'natural_key',
|
|
60
|
+
handler: async (args, ctx) => {
|
|
61
|
+
const input = args;
|
|
62
|
+
const body = {
|
|
63
|
+
device_key: input.device_key,
|
|
64
|
+
device_name: input.device_name,
|
|
65
|
+
};
|
|
66
|
+
for (const field of [
|
|
67
|
+
'device_type_code',
|
|
68
|
+
'party_id',
|
|
69
|
+
'location_id',
|
|
70
|
+
'is_public',
|
|
71
|
+
'iot_thing_arn',
|
|
72
|
+
'metadata',
|
|
73
|
+
]) {
|
|
74
|
+
if (input[field] !== undefined)
|
|
75
|
+
body[field] = input[field];
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/dcm_devices?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
|
|
79
|
+
return successResponse(rows[0]);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
return errorResponse(API_ERROR, `Failed to register DCM device: ${error.message}`);
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=dcm-device-register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcm-device-register.js","sourceRoot":"","sources":["../../../src/tools/dcm/dcm-device-register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Explicit-schema update for a DCM device slot (`dcm_device_slots`).
|
|
4
|
+
* Configures the assigned item, quantity, and capacity so slot-level
|
|
5
|
+
* inventory state stays in sync with reality. `slot_state` and
|
|
6
|
+
* `device_id` / `slot_number` are read-only per the pinned contract
|
|
7
|
+
* and cannot be reassigned through this tool (delete + recreate the
|
|
8
|
+
* slot for that).
|
|
9
|
+
*
|
|
10
|
+
* Retry-safe (converges on the same target state).
|
|
11
|
+
*/
|
|
12
|
+
export declare const dcmDeviceSlotConfigureTool: Tool;
|
|
13
|
+
//# sourceMappingURL=dcm-device-slot-configure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcm-device-slot-configure.d.ts","sourceRoot":"","sources":["../../../src/tools/dcm/dcm-device-slot-configure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQtC;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,IAoExC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API_ERROR, errorResponse, successResponse } from '../types.js';
|
|
3
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
4
|
+
import { unenforcedIdempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
|
|
5
|
+
/**
|
|
6
|
+
* Explicit-schema update for a DCM device slot (`dcm_device_slots`).
|
|
7
|
+
* Configures the assigned item, quantity, and capacity so slot-level
|
|
8
|
+
* inventory state stays in sync with reality. `slot_state` and
|
|
9
|
+
* `device_id` / `slot_number` are read-only per the pinned contract
|
|
10
|
+
* and cannot be reassigned through this tool (delete + recreate the
|
|
11
|
+
* slot for that).
|
|
12
|
+
*
|
|
13
|
+
* Retry-safe (converges on the same target state).
|
|
14
|
+
*/
|
|
15
|
+
export const dcmDeviceSlotConfigureTool = {
|
|
16
|
+
name: 'dcm_device_slot_configure',
|
|
17
|
+
description: 'Configure a DCM device slot (dcm_device_slots): assigned item, quantity, capacity, ' +
|
|
18
|
+
'status, and UoM. slot_state, device_id, and slot_number are read-only. Retry-safe.',
|
|
19
|
+
inputSchema: z
|
|
20
|
+
.object({
|
|
21
|
+
id: z.string().min(1).describe('UUID of the dcm_device_slots row'),
|
|
22
|
+
item_id: z
|
|
23
|
+
.string()
|
|
24
|
+
.min(1)
|
|
25
|
+
.nullable()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('UUID of the gpm_items row assigned to this slot; null to clear'),
|
|
28
|
+
quantity: z.number().nonnegative().optional(),
|
|
29
|
+
capacity: z.number().positive().optional(),
|
|
30
|
+
slot_status_code: z.string().max(64).optional(),
|
|
31
|
+
slot_uom: z.string().max(3).optional(),
|
|
32
|
+
slot_name: z.string().max(256).optional(),
|
|
33
|
+
metadata: z.record(z.unknown()).nullable().optional(),
|
|
34
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
35
|
+
})
|
|
36
|
+
.refine((v) => v.item_id !== undefined ||
|
|
37
|
+
v.quantity !== undefined ||
|
|
38
|
+
v.capacity !== undefined ||
|
|
39
|
+
v.slot_status_code !== undefined ||
|
|
40
|
+
v.slot_uom !== undefined ||
|
|
41
|
+
v.slot_name !== undefined ||
|
|
42
|
+
v.metadata !== undefined, {
|
|
43
|
+
message: 'supply at least one field to change.',
|
|
44
|
+
}),
|
|
45
|
+
capabilities: [cap('dcm_device_slots', 'UPDATE')],
|
|
46
|
+
sideEffect: 'state_change',
|
|
47
|
+
confirmation: 'none',
|
|
48
|
+
idempotency: 'natural_key',
|
|
49
|
+
handler: async (args, ctx) => {
|
|
50
|
+
const { id, idempotency_key, ...rest } = args;
|
|
51
|
+
const body = {};
|
|
52
|
+
for (const [k, v] of Object.entries(rest)) {
|
|
53
|
+
if (v !== undefined)
|
|
54
|
+
body[k] = v;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const rows = await ctx.apiClient.patch(`${ctx.apiClient.dbBasePath}/dcm_device_slots?id=eq.${id}&select=*`, body, { headers: writeHeadersWithIdempotency(idempotency_key) });
|
|
58
|
+
if (!rows || rows.length === 0) {
|
|
59
|
+
return errorResponse(API_ERROR, `DCM device slot ${id} not found or not accessible`);
|
|
60
|
+
}
|
|
61
|
+
return successResponse(rows[0]);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return errorResponse(API_ERROR, `Failed to configure DCM device slot: ${error.message}`);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=dcm-device-slot-configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcm-device-slot-configure.js","sourceRoot":"","sources":["../../../src/tools/dcm/dcm-device-slot-configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Explicit-schema update for `dcm_devices` — safe metadata fields
|
|
4
|
+
* only. `device_status_code`, `firmware_version`, `iot_endpoint_name`,
|
|
5
|
+
* `iot_thing_name`, `shadow_state`, `last_seen_at` are read-only per
|
|
6
|
+
* the pinned contract and are set by the device / cloud sync path;
|
|
7
|
+
* `iot_thing_arn` is intentionally excluded from this generic update
|
|
8
|
+
* (re-provisioning is not a rename operation).
|
|
9
|
+
*
|
|
10
|
+
* Retry-safe (converges on the same target state).
|
|
11
|
+
*/
|
|
12
|
+
export declare const dcmDeviceUpdateTool: Tool;
|
|
13
|
+
//# sourceMappingURL=dcm-device-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcm-device-update.d.ts","sourceRoot":"","sources":["../../../src/tools/dcm/dcm-device-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQtC;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAE,IAgDjC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API_ERROR, errorResponse, successResponse } from '../types.js';
|
|
3
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
4
|
+
import { unenforcedIdempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
|
|
5
|
+
/**
|
|
6
|
+
* Explicit-schema update for `dcm_devices` — safe metadata fields
|
|
7
|
+
* only. `device_status_code`, `firmware_version`, `iot_endpoint_name`,
|
|
8
|
+
* `iot_thing_name`, `shadow_state`, `last_seen_at` are read-only per
|
|
9
|
+
* the pinned contract and are set by the device / cloud sync path;
|
|
10
|
+
* `iot_thing_arn` is intentionally excluded from this generic update
|
|
11
|
+
* (re-provisioning is not a rename operation).
|
|
12
|
+
*
|
|
13
|
+
* Retry-safe (converges on the same target state).
|
|
14
|
+
*/
|
|
15
|
+
export const dcmDeviceUpdateTool = {
|
|
16
|
+
name: 'dcm_device_update',
|
|
17
|
+
description: 'Update DCM device metadata (dcm_devices) with an explicit safe field set. Status, ' +
|
|
18
|
+
'firmware, IoT identifiers, and shadow state are read-only. Retry-safe.',
|
|
19
|
+
inputSchema: z.object({
|
|
20
|
+
id: z.string().min(1).describe('UUID of the device'),
|
|
21
|
+
device_name: z.string().min(1).max(256).optional(),
|
|
22
|
+
device_type_code: z.string().max(64).nullable().optional(),
|
|
23
|
+
party_id: z.string().min(1).nullable().optional(),
|
|
24
|
+
location_id: z.string().min(1).nullable().optional(),
|
|
25
|
+
is_public: z.boolean().optional(),
|
|
26
|
+
metadata: z.record(z.unknown()).nullable().optional(),
|
|
27
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
28
|
+
}),
|
|
29
|
+
capabilities: [cap('dcm_devices', 'UPDATE')],
|
|
30
|
+
sideEffect: 'state_change',
|
|
31
|
+
confirmation: 'none',
|
|
32
|
+
idempotency: 'natural_key',
|
|
33
|
+
handler: async (args, ctx) => {
|
|
34
|
+
const { id, idempotency_key, ...rest } = args;
|
|
35
|
+
const body = {};
|
|
36
|
+
for (const [k, v] of Object.entries(rest)) {
|
|
37
|
+
if (v !== undefined)
|
|
38
|
+
body[k] = v;
|
|
39
|
+
}
|
|
40
|
+
if (Object.keys(body).length === 0) {
|
|
41
|
+
return errorResponse(API_ERROR, 'Update payload is empty — supply at least one field to change.');
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const rows = await ctx.apiClient.patch(`${ctx.apiClient.dbBasePath}/dcm_devices?id=eq.${id}&select=*`, body, { headers: writeHeadersWithIdempotency(idempotency_key) });
|
|
45
|
+
if (!rows || rows.length === 0) {
|
|
46
|
+
return errorResponse(API_ERROR, `DCM device ${id} not found or not accessible`);
|
|
47
|
+
}
|
|
48
|
+
return successResponse(rows[0]);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
return errorResponse(API_ERROR, `Failed to update DCM device: ${error.message}`);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=dcm-device-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcm-device-update.js","sourceRoot":"","sources":["../../../src/tools/dcm/dcm-device-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
import { CatalogueReport } from '../../generated-reads/index.js';
|
|
3
|
+
export declare const dcmGeneratedReadReport: CatalogueReport;
|
|
4
|
+
export declare const dcmGeneratedReadTools: Tool[];
|
|
5
|
+
//# sourceMappingURL=generated-reads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-reads.d.ts","sourceRoot":"","sources":["../../../src/tools/dcm/generated-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAGL,eAAe,EAChB,MAAM,gCAAgC,CAAC;AA8BxC,eAAO,MAAM,sBAAsB,EAAE,eAC8B,CAAC;AAEpE,eAAO,MAAM,qBAAqB,EAAE,IAAI,EAGvC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { buildGeneratedReadCatalogue, buildGeneratedReadCatalogueReport, } from '../../generated-reads/index.js';
|
|
2
|
+
import { loadPersistResourceContract } from '../../contracts/persist-resource-contract.js';
|
|
3
|
+
/**
|
|
4
|
+
* Bounded read tools for the DCM module (WI-0003509).
|
|
5
|
+
*
|
|
6
|
+
* The schema-driven catalogue (WI-0003500) emits describe/list/get for
|
|
7
|
+
* every `normal`-sensitivity DCM resource that declares a read
|
|
8
|
+
* operation and has no side effects. The pinned Persist contract
|
|
9
|
+
* already excludes `dcm_device_certificates` (credentials) and
|
|
10
|
+
* `dcm_device_events` (append-only log) via the standard guardrails,
|
|
11
|
+
* so this module gets bounded reads for:
|
|
12
|
+
*
|
|
13
|
+
* - `dcm_devices` / `dcm_devices_public` — device registry + the
|
|
14
|
+
* anonymous-accessible marketplace projection.
|
|
15
|
+
* - `dcm_device_slots` / `dcm_device_slots_public` — slot state
|
|
16
|
+
* (assigned item, quantity, capacity, status) + the anonymous
|
|
17
|
+
* projection used by anonymous slot discovery.
|
|
18
|
+
* - `dcm_device_slot_items` — the option catalogue mapping a slot
|
|
19
|
+
* to purchasable gpm_items.
|
|
20
|
+
* - `dcm_device_commands` — the command log used for status
|
|
21
|
+
* polling after `dcm_device_command_dispatch`.
|
|
22
|
+
*
|
|
23
|
+
* Every dispatch/register/configure write on these tables lives in a
|
|
24
|
+
* dedicated hand-written tool with explicit confirmation/idempotency
|
|
25
|
+
* semantics (see `dcm-device-*`, `dcm-device-command-*`).
|
|
26
|
+
*/
|
|
27
|
+
const contract = loadPersistResourceContract();
|
|
28
|
+
export const dcmGeneratedReadReport = buildGeneratedReadCatalogueReport(contract, { modules: ['dcm'] });
|
|
29
|
+
export const dcmGeneratedReadTools = buildGeneratedReadCatalogue(contract, { modules: ['dcm'] });
|
|
30
|
+
//# sourceMappingURL=generated-reads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-reads.js","sourceRoot":"","sources":["../../../src/tools/dcm/generated-reads.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAElC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GACjC,iCAAiC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,qBAAqB,GAAW,2BAA2B,CACtE,QAAQ,EACR,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/dcm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AActC,eAAO,MAAM,QAAQ,EAAE,IAAI,EAAiD,CAAC;AAE7E,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,IAAI,EAA0B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { dcmGeneratedReadTools } from './generated-reads.js';
|
|
2
|
+
import { dcmDeviceRegisterTool } from './dcm-device-register.js';
|
|
3
|
+
import { dcmDeviceUpdateTool } from './dcm-device-update.js';
|
|
4
|
+
import { dcmDeviceCommandDispatchTool } from './dcm-device-command-dispatch.js';
|
|
5
|
+
import { dcmDeviceSlotConfigureTool } from './dcm-device-slot-configure.js';
|
|
6
|
+
const dcmWriteTools = [
|
|
7
|
+
dcmDeviceRegisterTool,
|
|
8
|
+
dcmDeviceUpdateTool,
|
|
9
|
+
dcmDeviceCommandDispatchTool,
|
|
10
|
+
dcmDeviceSlotConfigureTool,
|
|
11
|
+
];
|
|
12
|
+
export const dcmTools = [...dcmGeneratedReadTools, ...dcmWriteTools];
|
|
13
|
+
/** Read-only slice used by the `dcm-readonly` selectable sub-domain. */
|
|
14
|
+
export const dcmReadOnlyTools = dcmGeneratedReadTools;
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/dcm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,aAAa,GAAW;IAC5B,qBAAqB;IACrB,mBAAmB;IACnB,4BAA4B;IAC5B,0BAA0B;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAW,CAAC,GAAG,qBAAqB,EAAE,GAAG,aAAa,CAAC,CAAC;AAE7E,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAW,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAmBrC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,EA4HzC,CAAC;AAwDF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAkC9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAepD"}
|
package/dist/tools/domains.js
CHANGED
|
@@ -11,6 +11,10 @@ import { secReadOnlyTools, secTools } from './sec/index.js';
|
|
|
11
11
|
import { cmmTools, cmmReadOnlyTools } from './cmm/index.js';
|
|
12
12
|
import { fxmTools, fxmReadOnlyTools } from './fxm/index.js';
|
|
13
13
|
import { fglReadOnlyTools, fglTools } from './fgl/index.js';
|
|
14
|
+
import { dcmReadOnlyTools, dcmTools } from './dcm/index.js';
|
|
15
|
+
import { bkmReadOnlyTools, bkmTools } from './bkm/index.js';
|
|
16
|
+
import { xrmReadOnlyTools, xrmTools } from './xrm/index.js';
|
|
17
|
+
import { ixnReadOnlyTools, ixnTools } from './ixn/index.js';
|
|
14
18
|
export const primaryDomains = [
|
|
15
19
|
{
|
|
16
20
|
id: 'dsm',
|
|
@@ -94,6 +98,30 @@ export const primaryDomains = [
|
|
|
94
98
|
summary: 'Manage GL ledgers, periods, code combinations, journal batches (create/post/reverse), trial balances, tax rates, and daily exchange rates. Gated by the FGL_GENERAL_LEDGER PBM feature.',
|
|
95
99
|
tools: fglTools,
|
|
96
100
|
},
|
|
101
|
+
{
|
|
102
|
+
id: 'dcm',
|
|
103
|
+
title: 'DCM — Device / Command Management',
|
|
104
|
+
summary: 'Bounded reads plus explicit-schema mutations for IoT devices, device slots, slot options, and device commands. Certificates and event logs are excluded by the credential/log guardrails; provisioning and command dispatch require confirmation and support idempotency keys for safe retries.',
|
|
105
|
+
tools: dcmTools,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: 'bkm',
|
|
109
|
+
title: 'BKM — Booking Management',
|
|
110
|
+
summary: 'Bounded reads plus explicit-schema mutations for booking-provider adapter configurations, availability searches, availability slots, and provider item mappings. External availability searches require caller confirmation and use explicit idempotency keys to prevent duplicate provider fan-out.',
|
|
111
|
+
tools: bkmTools,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: 'xrm',
|
|
115
|
+
title: 'XRM — Merchant / Relationship Management',
|
|
116
|
+
summary: 'Bounded reads plus explicit-schema mutations for marketplace merchants, merchant classifications/countries/items, and inbound email routing metadata. Provider credentials and payment-processor credentials are excluded by the credentials guardrail; merchant provisioning and inbound-rule creation require caller confirmation.',
|
|
117
|
+
tools: xrmTools,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: 'ixn',
|
|
121
|
+
title: 'IXN — Interactions',
|
|
122
|
+
summary: 'Bounded reads plus explicit-schema mutations for interaction conversations and messages. Queue internals and sensitive channel-endpoint configuration are excluded by the queue and sensitivity guardrails. Outbound message dispatch requires caller confirmation and an explicit idempotency key so retries never duplicate customer-visible sends.',
|
|
123
|
+
tools: ixnTools,
|
|
124
|
+
},
|
|
97
125
|
];
|
|
98
126
|
const PPM_READ_TOOL_NAMES = new Set([
|
|
99
127
|
'ppm_work_item_get',
|
|
@@ -174,6 +202,14 @@ export const domainIndex = {
|
|
|
174
202
|
'cmm-readonly': cmmReadOnlyTools,
|
|
175
203
|
fgl: fglTools,
|
|
176
204
|
'fgl-readonly': fglReadOnlyTools,
|
|
205
|
+
dcm: dcmTools,
|
|
206
|
+
'dcm-readonly': dcmReadOnlyTools,
|
|
207
|
+
bkm: bkmTools,
|
|
208
|
+
'bkm-readonly': bkmReadOnlyTools,
|
|
209
|
+
xrm: xrmTools,
|
|
210
|
+
'xrm-readonly': xrmReadOnlyTools,
|
|
211
|
+
ixn: ixnTools,
|
|
212
|
+
'ixn-readonly': ixnReadOnlyTools,
|
|
177
213
|
};
|
|
178
214
|
/**
|
|
179
215
|
* Resolve a comma-separated list of domain IDs to the corresponding set
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
import { CatalogueReport } from '../../generated-reads/index.js';
|
|
3
|
+
export declare const ixnGeneratedReadReport: CatalogueReport;
|
|
4
|
+
export declare const ixnGeneratedReadTools: Tool[];
|
|
5
|
+
//# sourceMappingURL=generated-reads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-reads.d.ts","sourceRoot":"","sources":["../../../src/tools/ixn/generated-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAGL,eAAe,EAChB,MAAM,gCAAgC,CAAC;AA6BxC,eAAO,MAAM,sBAAsB,EAAE,eAC8B,CAAC;AAEpE,eAAO,MAAM,qBAAqB,EAAE,IAAI,EAGvC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { buildGeneratedReadCatalogue, buildGeneratedReadCatalogueReport, } from '../../generated-reads/index.js';
|
|
2
|
+
import { loadPersistResourceContract } from '../../contracts/persist-resource-contract.js';
|
|
3
|
+
/**
|
|
4
|
+
* Bounded read tools for the IXN module (WI-0003508).
|
|
5
|
+
*
|
|
6
|
+
* The schema-driven catalogue (WI-0003500) emits describe/list/get for
|
|
7
|
+
* every `normal`-sensitivity IXN resource that declares a read
|
|
8
|
+
* operation and has no side effects. The pinned Persist contract
|
|
9
|
+
* excludes operational queue internals (`ixn_queues`, sensitivity=queue)
|
|
10
|
+
* via the standard queue guardrail, so this module gets bounded reads
|
|
11
|
+
* for the safe subset:
|
|
12
|
+
*
|
|
13
|
+
* - `ixn_conversations` — conversation threads scoped by tenant / queue.
|
|
14
|
+
* - `ixn_messages` — the message log inside a conversation (inbound
|
|
15
|
+
* and outbound).
|
|
16
|
+
*
|
|
17
|
+
* `ixn_channel_endpoints` is classified `sensitive` in the pinned
|
|
18
|
+
* contract because it carries `outbound_credential_ssm_names` (SSM
|
|
19
|
+
* parameter pointers used by the delivery worker) and is deliberately
|
|
20
|
+
* NOT surfaced here — channel endpoint configuration lives outside the
|
|
21
|
+
* MCP surface. Every outbound message send lives in a dedicated
|
|
22
|
+
* hand-written tool with explicit confirmation and retry
|
|
23
|
+
* semantics (see `ixn-message-send.ts`); every conversation-open
|
|
24
|
+
* lives in `ixn-conversation-start.ts`.
|
|
25
|
+
*/
|
|
26
|
+
const contract = loadPersistResourceContract();
|
|
27
|
+
export const ixnGeneratedReadReport = buildGeneratedReadCatalogueReport(contract, { modules: ['ixn'] });
|
|
28
|
+
export const ixnGeneratedReadTools = buildGeneratedReadCatalogue(contract, { modules: ['ixn'] });
|
|
29
|
+
//# sourceMappingURL=generated-reads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-reads.js","sourceRoot":"","sources":["../../../src/tools/ixn/generated-reads.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAElC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GACjC,iCAAiC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,qBAAqB,GAAW,2BAA2B,CACtE,QAAQ,EACR,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/ixn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOtC,eAAO,MAAM,QAAQ,EAAE,IAAI,EAAiD,CAAC;AAE7E,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,IAAI,EAA0B,CAAC"}
|