@raytio/mcp-server 10.3.0 → 10.4.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/README.md +2 -0
- package/dist/authorization.d.ts.map +1 -1
- package/dist/authorization.js +2 -0
- package/dist/authorization.js.map +1 -1
- package/dist/contracts/tool-binding-manifest.d.ts +986 -0
- package/dist/contracts/tool-binding-manifest.d.ts.map +1 -0
- package/dist/contracts/tool-binding-manifest.js +242 -0
- package/dist/contracts/tool-binding-manifest.js.map +1 -0
- package/dist/tools/_shared/date-range.d.ts +16 -0
- package/dist/tools/_shared/date-range.d.ts.map +1 -0
- package/dist/tools/_shared/date-range.js +28 -0
- package/dist/tools/_shared/date-range.js.map +1 -0
- package/dist/tools/_shared/side-effect.d.ts.map +1 -1
- package/dist/tools/_shared/side-effect.js +3 -1
- package/dist/tools/_shared/side-effect.js.map +1 -1
- package/dist/tools/domains.d.ts.map +1 -1
- package/dist/tools/domains.js +21 -1
- package/dist/tools/domains.js.map +1 -1
- package/dist/tools/gpm/generated-reads.d.ts +5 -0
- package/dist/tools/gpm/generated-reads.d.ts.map +1 -0
- package/dist/tools/gpm/generated-reads.js +28 -0
- package/dist/tools/gpm/generated-reads.js.map +1 -0
- package/dist/tools/gpm/gpm-item-deactivate.d.ts +11 -0
- package/dist/tools/gpm/gpm-item-deactivate.d.ts.map +1 -0
- package/dist/tools/gpm/gpm-item-deactivate.js +45 -0
- package/dist/tools/gpm/gpm-item-deactivate.js.map +1 -0
- package/dist/tools/gpm/gpm-item-register.d.ts +21 -0
- package/dist/tools/gpm/gpm-item-register.d.ts.map +1 -0
- package/dist/tools/gpm/gpm-item-register.js +149 -0
- package/dist/tools/gpm/gpm-item-register.js.map +1 -0
- package/dist/tools/gpm/index.d.ts +5 -0
- package/dist/tools/gpm/index.d.ts.map +1 -0
- package/dist/tools/gpm/index.js +10 -0
- package/dist/tools/gpm/index.js.map +1 -0
- package/dist/tools/imports/index.d.ts +10 -87
- package/dist/tools/imports/index.d.ts.map +1 -1
- package/dist/tools/imports/index.js +11 -3
- package/dist/tools/imports/index.js.map +1 -1
- package/dist/tools/pcm/generated-reads.d.ts +5 -0
- package/dist/tools/pcm/generated-reads.d.ts.map +1 -0
- package/dist/tools/pcm/generated-reads.js +26 -0
- package/dist/tools/pcm/generated-reads.js.map +1 -0
- package/dist/tools/pcm/index.d.ts +5 -0
- package/dist/tools/pcm/index.d.ts.map +1 -0
- package/dist/tools/pcm/index.js +16 -0
- package/dist/tools/pcm/index.js.map +1 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.d.ts +11 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.d.ts.map +1 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.js +46 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.js.map +1 -0
- package/dist/tools/pcm/pcm-price-list-register.d.ts +21 -0
- package/dist/tools/pcm/pcm-price-list-register.d.ts.map +1 -0
- package/dist/tools/pcm/pcm-price-list-register.js +96 -0
- package/dist/tools/pcm/pcm-price-list-register.js.map +1 -0
- package/dist/tools/pcm/pcm-price-list-version-create.d.ts +19 -0
- package/dist/tools/pcm/pcm-price-list-version-create.d.ts.map +1 -0
- package/dist/tools/pcm/pcm-price-list-version-create.js +85 -0
- package/dist/tools/pcm/pcm-price-list-version-create.js.map +1 -0
- package/dist/tools/ppm/template-slot-create.d.ts.map +1 -1
- package/dist/tools/ppm/template-slot-create.js +4 -2
- package/dist/tools/ppm/template-slot-create.js.map +1 -1
- package/dist/tools/ppm/work-item-create.d.ts.map +1 -1
- package/dist/tools/ppm/work-item-create.js +4 -2
- package/dist/tools/ppm/work-item-create.js.map +1 -1
- package/dist/tools/role-mapping.d.ts.map +1 -1
- package/dist/tools/role-mapping.js +7 -1
- package/dist/tools/role-mapping.js.map +1 -1
- 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, unenforcedIdempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
|
|
5
|
+
import { END_AFTER_START_MESSAGE, endsAfterStart, isoDateTimeSchema, } from '../_shared/date-range.js';
|
|
6
|
+
const CURRENCY_REGEX = /^[A-Z]{3}$/;
|
|
7
|
+
/** Values of the Persist PCM_PRICE_LISTS_VISIBILITY lookup. */
|
|
8
|
+
export const PCM_PRICE_LIST_VISIBILITIES = ['PARTY', 'AUTHENTICATED', 'PUBLIC'];
|
|
9
|
+
/**
|
|
10
|
+
* Register a price list (`pcm_price_lists`), the container that price
|
|
11
|
+
* list versions and lines attach to.
|
|
12
|
+
*
|
|
13
|
+
* Unique key: `t_pcm_price_lists_ui` on (price_list_name,
|
|
14
|
+
* price_list_type) among active price lists in the tenant, so a retry
|
|
15
|
+
* fails with a duplicate-key error instead of creating a second list.
|
|
16
|
+
*
|
|
17
|
+
* `pcm_price_lists` is not routed by organisation: Persist fills a
|
|
18
|
+
* missing `org_id` with the tenant's lowest organisation id, so the tool
|
|
19
|
+
* requires it.
|
|
20
|
+
*
|
|
21
|
+
* `visibility=PUBLIC` makes Persist write a wildcard viewer tuple, so
|
|
22
|
+
* anyone, including unauthenticated callers, can read the list. The
|
|
23
|
+
* tool needs `allow_public=true` as well as `confirm=true` for that.
|
|
24
|
+
*/
|
|
25
|
+
export const pcmPriceListRegisterTool = {
|
|
26
|
+
name: 'pcm_price_list_register',
|
|
27
|
+
description: 'Register a price list (pcm_price_lists). Requires confirm=true and org_id. ' +
|
|
28
|
+
'price_list_name + price_list_type must be unique among active price lists in the tenant: ' +
|
|
29
|
+
'a retry fails with a duplicate-key error instead of creating a second list. ' +
|
|
30
|
+
'visibility is PARTY (default), AUTHENTICATED or PUBLIC; PUBLIC makes the list readable by ' +
|
|
31
|
+
'anyone, including unauthenticated callers, and also needs allow_public=true.',
|
|
32
|
+
inputSchema: z
|
|
33
|
+
.object({
|
|
34
|
+
price_list_name: z
|
|
35
|
+
.string()
|
|
36
|
+
.min(1)
|
|
37
|
+
.max(256)
|
|
38
|
+
.describe('Price list name, unique with price_list_type among active lists'),
|
|
39
|
+
price_list_type: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1)
|
|
42
|
+
.max(32)
|
|
43
|
+
.describe('A pcm_price_list_price_list_type_lookup lookup_value_code'),
|
|
44
|
+
price_list_currency: z
|
|
45
|
+
.string()
|
|
46
|
+
.regex(CURRENCY_REGEX, 'price_list_currency must be a 3-letter uppercase ISO 4217 code')
|
|
47
|
+
.describe('ISO 4217 currency code enabled in fnd_currencies (e.g. NZD, AUD)'),
|
|
48
|
+
price_list_description: z.string().max(2048).optional(),
|
|
49
|
+
visibility: z
|
|
50
|
+
.enum(PCM_PRICE_LIST_VISIBILITIES)
|
|
51
|
+
.optional()
|
|
52
|
+
.describe('Who can read the list: PARTY (default), AUTHENTICATED or PUBLIC'),
|
|
53
|
+
allow_public: z
|
|
54
|
+
.literal(true)
|
|
55
|
+
.optional()
|
|
56
|
+
.describe('Must be true when visibility is PUBLIC'),
|
|
57
|
+
org_id: z
|
|
58
|
+
.string()
|
|
59
|
+
.uuid()
|
|
60
|
+
.describe('UUID of the owning organisation (required: Persist does not route price lists)'),
|
|
61
|
+
start_date: isoDateTimeSchema('ISO 8601 effective start (defaults to now)').optional(),
|
|
62
|
+
end_date: isoDateTimeSchema('ISO 8601 end, after start_date').optional(),
|
|
63
|
+
confirm: confirmFlagSchema,
|
|
64
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
65
|
+
})
|
|
66
|
+
.refine((v) => endsAfterStart(v.start_date, v.end_date), { message: END_AFTER_START_MESSAGE })
|
|
67
|
+
.refine((v) => v.visibility !== 'PUBLIC' || v.allow_public === true, {
|
|
68
|
+
message: 'visibility PUBLIC makes the price list readable by anyone: set allow_public=true',
|
|
69
|
+
path: ['allow_public'],
|
|
70
|
+
}),
|
|
71
|
+
capabilities: [cap('pcm_price_lists', 'INSERT')],
|
|
72
|
+
sideEffect: 'provisioning',
|
|
73
|
+
confirmation: 'caller_confirms',
|
|
74
|
+
idempotency: 'natural_key',
|
|
75
|
+
handler: async (args, ctx) => {
|
|
76
|
+
const input = args;
|
|
77
|
+
const body = {
|
|
78
|
+
price_list_name: input.price_list_name,
|
|
79
|
+
price_list_type: input.price_list_type,
|
|
80
|
+
price_list_currency: input.price_list_currency,
|
|
81
|
+
org_id: input.org_id,
|
|
82
|
+
};
|
|
83
|
+
for (const field of ['price_list_description', 'visibility', 'start_date', 'end_date']) {
|
|
84
|
+
if (input[field] !== undefined)
|
|
85
|
+
body[field] = input[field];
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/pcm_price_lists?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
|
|
89
|
+
return successResponse(rows[0]);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return errorResponse(API_ERROR, `Failed to register PCM price list: ${error.message}`);
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=pcm-price-list-register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-register.js","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a price list version (`pcm_price_list_versions`). Persist has
|
|
4
|
+
* no publish step: a version is used once its date range is current.
|
|
5
|
+
* Lines are loaded separately through the shared PCM_PRICE_LIST_LINES
|
|
6
|
+
* import, which MCP cannot drive until WI-0009453.
|
|
7
|
+
*
|
|
8
|
+
* Persist does not route versions to their price list's organisation and
|
|
9
|
+
* fills a missing `org_id` with the tenant's lowest organisation id. The
|
|
10
|
+
* managed price-line import only loads into a version in its destination
|
|
11
|
+
* organisation, so the tool reads the price list and stores the version
|
|
12
|
+
* in the list's organisation, refusing a different `org_id`.
|
|
13
|
+
*
|
|
14
|
+
* Unique key: `t_pcm_price_list_versions_uk2` on (price_list_id,
|
|
15
|
+
* price_list_version_name, org_id), so a retry fails with a duplicate-key
|
|
16
|
+
* error instead of creating a second version.
|
|
17
|
+
*/
|
|
18
|
+
export declare const pcmPriceListVersionCreateTool: Tool;
|
|
19
|
+
//# sourceMappingURL=pcm-price-list-version-create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-version-create.d.ts","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-version-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AActC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,6BAA6B,EAAE,IA+E3C,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
import { END_AFTER_START_MESSAGE, endsAfterStart, isoDateTimeSchema, } from '../_shared/date-range.js';
|
|
6
|
+
/**
|
|
7
|
+
* Create a price list version (`pcm_price_list_versions`). Persist has
|
|
8
|
+
* no publish step: a version is used once its date range is current.
|
|
9
|
+
* Lines are loaded separately through the shared PCM_PRICE_LIST_LINES
|
|
10
|
+
* import, which MCP cannot drive until WI-0009453.
|
|
11
|
+
*
|
|
12
|
+
* Persist does not route versions to their price list's organisation and
|
|
13
|
+
* fills a missing `org_id` with the tenant's lowest organisation id. The
|
|
14
|
+
* managed price-line import only loads into a version in its destination
|
|
15
|
+
* organisation, so the tool reads the price list and stores the version
|
|
16
|
+
* in the list's organisation, refusing a different `org_id`.
|
|
17
|
+
*
|
|
18
|
+
* Unique key: `t_pcm_price_list_versions_uk2` on (price_list_id,
|
|
19
|
+
* price_list_version_name, org_id), so a retry fails with a duplicate-key
|
|
20
|
+
* error instead of creating a second version.
|
|
21
|
+
*/
|
|
22
|
+
export const pcmPriceListVersionCreateTool = {
|
|
23
|
+
name: 'pcm_price_list_version_create',
|
|
24
|
+
description: 'Create a version of an active price list (pcm_price_list_versions). Requires confirm=true. ' +
|
|
25
|
+
'The version is stored in the price list\'s organisation; a different org_id is refused. ' +
|
|
26
|
+
'There is no separate publish step: the version applies while its date range is current. ' +
|
|
27
|
+
'MCP cannot load its lines yet. ' +
|
|
28
|
+
'price_list_version_name is unique within the price list: a retry fails with a duplicate-key ' +
|
|
29
|
+
'error instead of creating a second version.',
|
|
30
|
+
inputSchema: z
|
|
31
|
+
.object({
|
|
32
|
+
price_list_id: z.string().uuid().describe('UUID of the parent pcm_price_lists row'),
|
|
33
|
+
price_list_version_name: z
|
|
34
|
+
.string()
|
|
35
|
+
.min(1)
|
|
36
|
+
.max(256)
|
|
37
|
+
.describe('Version label, unique within the price list'),
|
|
38
|
+
price_list_version_description: z.string().max(2048).optional(),
|
|
39
|
+
start_date: isoDateTimeSchema('ISO 8601 effective start (defaults to now)').optional(),
|
|
40
|
+
end_date: isoDateTimeSchema('ISO 8601 end, after start_date').optional(),
|
|
41
|
+
org_id: z
|
|
42
|
+
.string()
|
|
43
|
+
.uuid()
|
|
44
|
+
.optional()
|
|
45
|
+
.describe('Optional. Must equal the price list\'s org_id, which is used when omitted.'),
|
|
46
|
+
confirm: confirmFlagSchema,
|
|
47
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
48
|
+
})
|
|
49
|
+
.refine((v) => endsAfterStart(v.start_date, v.end_date), { message: END_AFTER_START_MESSAGE }),
|
|
50
|
+
capabilities: [cap('pcm_price_list_versions', 'INSERT'), cap('pcm_price_lists', 'SELECT')],
|
|
51
|
+
sideEffect: 'provisioning',
|
|
52
|
+
confirmation: 'caller_confirms',
|
|
53
|
+
idempotency: 'natural_key',
|
|
54
|
+
handler: async (args, ctx) => {
|
|
55
|
+
const input = args;
|
|
56
|
+
try {
|
|
57
|
+
const lists = await ctx.apiClient.get(`${ctx.apiClient.dbBasePath}/pcm_price_lists?id=eq.${input.price_list_id}&select=id,org_id,active`);
|
|
58
|
+
const list = lists?.[0];
|
|
59
|
+
if (!list) {
|
|
60
|
+
return errorResponse(API_ERROR, `PCM price list ${input.price_list_id} not found or not accessible`);
|
|
61
|
+
}
|
|
62
|
+
if (list.active === false) {
|
|
63
|
+
return errorResponse(API_ERROR, `PCM price list ${input.price_list_id} is inactive: versions can only be added to an active list`);
|
|
64
|
+
}
|
|
65
|
+
if (input.org_id !== undefined && input.org_id !== list.org_id) {
|
|
66
|
+
return errorResponse(API_ERROR, `org_id ${input.org_id} differs from the price list's organisation ${list.org_id}`);
|
|
67
|
+
}
|
|
68
|
+
const body = {
|
|
69
|
+
price_list_id: input.price_list_id,
|
|
70
|
+
price_list_version_name: input.price_list_version_name,
|
|
71
|
+
org_id: list.org_id,
|
|
72
|
+
};
|
|
73
|
+
for (const field of ['price_list_version_description', 'start_date', 'end_date']) {
|
|
74
|
+
if (input[field] !== undefined)
|
|
75
|
+
body[field] = input[field];
|
|
76
|
+
}
|
|
77
|
+
const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/pcm_price_list_versions?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
|
|
78
|
+
return successResponse(rows[0]);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return errorResponse(API_ERROR, `Failed to create PCM price list version: ${error.message}`);
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=pcm-price-list-version-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-version-create.js","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-version-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-slot-create.d.ts","sourceRoot":"","sources":["../../../src/tools/ppm/template-slot-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOtC,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"template-slot-create.d.ts","sourceRoot":"","sources":["../../../src/tools/ppm/template-slot-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOtC,eAAO,MAAM,sBAAsB,EAAE,IA2CpC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { successResponse, errorResponse, API_ERROR } from '../types.js';
|
|
3
3
|
import { EPIC_TEMPLATE_SLOT_SELECT } from '../../ppm/projection.js';
|
|
4
|
-
import {
|
|
4
|
+
import { isCreateFieldRequired } from '../../contracts/tool-binding-manifest.js';
|
|
5
5
|
import { cap } from '../../capabilities/tool-capability.js';
|
|
6
6
|
export const templateSlotCreateTool = {
|
|
7
7
|
name: 'ppm_template_slot_create',
|
|
@@ -12,7 +12,9 @@ export const templateSlotCreateTool = {
|
|
|
12
12
|
slot_name: z.string().max(256).describe('Display label for this slot'),
|
|
13
13
|
slot_description: z.string().nullable().optional().describe('Description of what this slot represents'),
|
|
14
14
|
work_item_type: z.string().max(32).nullable().optional().describe('Work item type created for this slot (e.g. TASK, STORY)'),
|
|
15
|
-
role_id:
|
|
15
|
+
role_id: (isCreateFieldRequired('ppm_template_slot_create', 'role_id')
|
|
16
|
+
? z.string()
|
|
17
|
+
: z.string().optional()).describe('UUID of the WRM role for this slot'),
|
|
16
18
|
slot_order: z.number().int().nullable().optional().describe('Sort order within the template (default 0)'),
|
|
17
19
|
}),
|
|
18
20
|
capabilities: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-slot-create.js","sourceRoot":"","sources":["../../../src/tools/ppm/template-slot-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"template-slot-create.js","sourceRoot":"","sources":["../../../src/tools/ppm/template-slot-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-item-create.d.ts","sourceRoot":"","sources":["../../../src/tools/ppm/work-item-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOtC,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"work-item-create.d.ts","sourceRoot":"","sources":["../../../src/tools/ppm/work-item-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOtC,eAAO,MAAM,kBAAkB,EAAE,IAsDhC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { successResponse, errorResponse, API_ERROR } from '../types.js';
|
|
3
3
|
import { WORK_ITEM_SELECT } from '../../ppm/projection.js';
|
|
4
|
-
import {
|
|
4
|
+
import { isCreateFieldRequired } from '../../contracts/tool-binding-manifest.js';
|
|
5
5
|
import { cap } from '../../capabilities/tool-capability.js';
|
|
6
6
|
export const workItemCreateTool = {
|
|
7
7
|
name: 'ppm_work_item_create',
|
|
@@ -20,7 +20,9 @@ export const workItemCreateTool = {
|
|
|
20
20
|
external_system_id: z.string().optional().describe('External system UUID (FK → ppm_external_systems)'),
|
|
21
21
|
external_item_id: z.string().optional().describe('Identifier of this item in the external system (e.g. GitLab issue number, Jira key)'),
|
|
22
22
|
confidential: z.boolean().optional().describe('Whether the item is confidential'),
|
|
23
|
-
role_id:
|
|
23
|
+
role_id: (isCreateFieldRequired('ppm_work_item_create', 'role_id')
|
|
24
|
+
? z.string()
|
|
25
|
+
: z.string().optional()).describe('UUID of the WRM role for this work item'),
|
|
24
26
|
metadata: z.record(z.unknown()).optional().describe('Arbitrary JSON metadata object'),
|
|
25
27
|
}),
|
|
26
28
|
capabilities: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-item-create.js","sourceRoot":"","sources":["../../../src/tools/ppm/work-item-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"work-item-create.js","sourceRoot":"","sources":["../../../src/tools/ppm/work-item-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-mapping.d.ts","sourceRoot":"","sources":["../../src/tools/role-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"role-mapping.d.ts","sourceRoot":"","sources":["../../src/tools/role-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA+DD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAuChE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B"}
|
|
@@ -51,6 +51,12 @@ const ROLE_TO_DOMAINS = {
|
|
|
51
51
|
'Billing administrator': ['pbm'],
|
|
52
52
|
'Billing user': ['pbm'],
|
|
53
53
|
'Billing viewer': ['pbm-readonly'],
|
|
54
|
+
'Item administrator': ['gpm'],
|
|
55
|
+
'Item user': ['gpm'],
|
|
56
|
+
'Item viewer': ['gpm-readonly'],
|
|
57
|
+
'Pricing administrator': ['pcm'],
|
|
58
|
+
'Pricing user': ['pcm'],
|
|
59
|
+
'Pricing viewer': ['pcm-readonly'],
|
|
54
60
|
};
|
|
55
61
|
/**
|
|
56
62
|
* Given a list of user group names, resolve the set of tool domain IDs
|
|
@@ -69,7 +75,7 @@ export function mapRolesToDomains(groupNames) {
|
|
|
69
75
|
}
|
|
70
76
|
}
|
|
71
77
|
// Full access is a superset of readonly — drop readonly if full access is present
|
|
72
|
-
for (const parent of ['ppm', 'wrm', 'sfa', 'qom', 'pbm']) {
|
|
78
|
+
for (const parent of ['ppm', 'wrm', 'sfa', 'qom', 'pbm', 'gpm', 'pcm']) {
|
|
73
79
|
if (domains.has(parent))
|
|
74
80
|
domains.delete(`${parent}-readonly`);
|
|
75
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-mapping.js","sourceRoot":"","sources":["../../src/tools/role-mapping.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,MAAM,eAAe,GAA6B;IAChD,uBAAuB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IAC9C,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IAC9B,gBAAgB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;IAClD,4BAA4B,EAAE,CAAC,KAAK,CAAC;IACrC,mBAAmB,EAAE,CAAC,KAAK,CAAC;IAC5B,qBAAqB,EAAE,CAAC,KAAK,CAAC;IAC9B,sBAAsB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IACtC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IAC7B,eAAe,EAAE,CAAC,cAAc,CAAC;IACjC,qBAAqB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IACrC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IAC5B,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,uBAAuB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IACvC,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,qBAAqB,EAAE,CAAC,KAAK,CAAC;IAC9B,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,4BAA4B,EAAE,CAAC,KAAK,CAAC;IACrC,mBAAmB,EAAE,CAAC,KAAK,CAAC;IAC5B,qBAAqB,EAAE,CAAC,cAAc,CAAC;IACvC,mCAAmC,EAAE,CAAC,KAAK,CAAC;IAC5C,0BAA0B,EAAE,CAAC,KAAK,CAAC;IACnC,4BAA4B,EAAE,CAAC,cAAc,CAAC;IAC9C,gCAAgC,EAAE,CAAC,KAAK,CAAC;IACzC,uBAAuB,EAAE,CAAC,KAAK,CAAC;IAChC,yBAAyB,EAAE,CAAC,cAAc,CAAC;IAC3C,sBAAsB,EAAE,CAAC,KAAK,CAAC;IAC/B,aAAa,EAAE,CAAC,KAAK,CAAC;IACtB,eAAe,EAAE,CAAC,cAAc,CAAC;IACjC,uBAAuB,EAAE,CAAC,KAAK,CAAC;IAChC,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,gBAAgB,EAAE,CAAC,cAAc,CAAC;IAClC,wBAAwB,EAAE,CAAC,KAAK,CAAC;IACjC,eAAe,EAAE,CAAC,KAAK,CAAC;IACxB,iBAAiB,EAAE,CAAC,cAAc,CAAC;IACnC,2BAA2B,EAAE,CAAC,KAAK,CAAC;IACpC,kBAAkB,EAAE,CAAC,KAAK,CAAC;IAC3B,oBAAoB,EAAE,CAAC,cAAc,CAAC;IACtC,qBAAqB,EAAE,CAAC,KAAK,CAAC;IAC9B,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,uBAAuB,EAAE,CAAC,KAAK,CAAC;IAChC,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,gBAAgB,EAAE,CAAC,cAAc,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAoB;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"role-mapping.js","sourceRoot":"","sources":["../../src/tools/role-mapping.ts"],"names":[],"mappings":"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"}
|