@raytio/mcp-server 3.5.0 → 4.0.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.
Files changed (96) hide show
  1. package/dist/capabilities/tool-capability.d.ts.map +1 -1
  2. package/dist/capabilities/tool-capability.js +27 -0
  3. package/dist/capabilities/tool-capability.js.map +1 -1
  4. package/dist/tools/_shared/side-effect.d.ts +32 -0
  5. package/dist/tools/_shared/side-effect.d.ts.map +1 -0
  6. package/dist/tools/_shared/side-effect.js +60 -0
  7. package/dist/tools/_shared/side-effect.js.map +1 -0
  8. package/dist/tools/domains.d.ts.map +1 -1
  9. package/dist/tools/domains.js +27 -0
  10. package/dist/tools/domains.js.map +1 -1
  11. package/dist/tools/fnd/generated-reads.d.ts +5 -0
  12. package/dist/tools/fnd/generated-reads.d.ts.map +1 -0
  13. package/dist/tools/fnd/generated-reads.js +42 -0
  14. package/dist/tools/fnd/generated-reads.js.map +1 -0
  15. package/dist/tools/fnd/index.d.ts +13 -0
  16. package/dist/tools/fnd/index.d.ts.map +1 -0
  17. package/dist/tools/fnd/index.js +13 -0
  18. package/dist/tools/fnd/index.js.map +1 -0
  19. package/dist/tools/hrm/generated-reads.d.ts +5 -0
  20. package/dist/tools/hrm/generated-reads.d.ts.map +1 -0
  21. package/dist/tools/hrm/generated-reads.js +40 -0
  22. package/dist/tools/hrm/generated-reads.js.map +1 -0
  23. package/dist/tools/hrm/hrm-user-policy-assign.d.ts +15 -0
  24. package/dist/tools/hrm/hrm-user-policy-assign.d.ts.map +1 -0
  25. package/dist/tools/hrm/hrm-user-policy-assign.js +60 -0
  26. package/dist/tools/hrm/hrm-user-policy-assign.js.map +1 -0
  27. package/dist/tools/hrm/hrm-user-policy-unassign.d.ts +8 -0
  28. package/dist/tools/hrm/hrm-user-policy-unassign.d.ts.map +1 -0
  29. package/dist/tools/hrm/hrm-user-policy-unassign.js +48 -0
  30. package/dist/tools/hrm/hrm-user-policy-unassign.js.map +1 -0
  31. package/dist/tools/hrm/hrm-user-role-assign.d.ts +17 -0
  32. package/dist/tools/hrm/hrm-user-role-assign.d.ts.map +1 -0
  33. package/dist/tools/hrm/hrm-user-role-assign.js +70 -0
  34. package/dist/tools/hrm/hrm-user-role-assign.js.map +1 -0
  35. package/dist/tools/hrm/hrm-user-role-parent-remove.d.ts +9 -0
  36. package/dist/tools/hrm/hrm-user-role-parent-remove.d.ts.map +1 -0
  37. package/dist/tools/hrm/hrm-user-role-parent-remove.js +49 -0
  38. package/dist/tools/hrm/hrm-user-role-parent-remove.js.map +1 -0
  39. package/dist/tools/hrm/hrm-user-role-parent-set.d.ts +11 -0
  40. package/dist/tools/hrm/hrm-user-role-parent-set.d.ts.map +1 -0
  41. package/dist/tools/hrm/hrm-user-role-parent-set.js +59 -0
  42. package/dist/tools/hrm/hrm-user-role-parent-set.js.map +1 -0
  43. package/dist/tools/hrm/hrm-user-role-policy-assign.d.ts +11 -0
  44. package/dist/tools/hrm/hrm-user-role-policy-assign.d.ts.map +1 -0
  45. package/dist/tools/hrm/hrm-user-role-policy-assign.js +56 -0
  46. package/dist/tools/hrm/hrm-user-role-policy-assign.js.map +1 -0
  47. package/dist/tools/hrm/hrm-user-role-policy-unassign.d.ts +9 -0
  48. package/dist/tools/hrm/hrm-user-role-policy-unassign.d.ts.map +1 -0
  49. package/dist/tools/hrm/hrm-user-role-policy-unassign.js +49 -0
  50. package/dist/tools/hrm/hrm-user-role-policy-unassign.js.map +1 -0
  51. package/dist/tools/hrm/hrm-user-role-unassign.d.ts +13 -0
  52. package/dist/tools/hrm/hrm-user-role-unassign.d.ts.map +1 -0
  53. package/dist/tools/hrm/hrm-user-role-unassign.js +57 -0
  54. package/dist/tools/hrm/hrm-user-role-unassign.js.map +1 -0
  55. package/dist/tools/hrm/index.d.ts +5 -0
  56. package/dist/tools/hrm/index.d.ts.map +1 -0
  57. package/dist/tools/hrm/index.js +23 -0
  58. package/dist/tools/hrm/index.js.map +1 -0
  59. package/dist/tools/sec/generated-reads.d.ts +5 -0
  60. package/dist/tools/sec/generated-reads.d.ts.map +1 -0
  61. package/dist/tools/sec/generated-reads.js +29 -0
  62. package/dist/tools/sec/generated-reads.js.map +1 -0
  63. package/dist/tools/sec/index.d.ts +5 -0
  64. package/dist/tools/sec/index.d.ts.map +1 -0
  65. package/dist/tools/sec/index.js +15 -0
  66. package/dist/tools/sec/index.js.map +1 -0
  67. package/dist/tools/sec/sec-qr-pairing-cancel.d.ts +11 -0
  68. package/dist/tools/sec/sec-qr-pairing-cancel.d.ts.map +1 -0
  69. package/dist/tools/sec/sec-qr-pairing-cancel.js +55 -0
  70. package/dist/tools/sec/sec-qr-pairing-cancel.js.map +1 -0
  71. package/dist/tools/sec/sec-qr-pairing-complete.d.ts +13 -0
  72. package/dist/tools/sec/sec-qr-pairing-complete.d.ts.map +1 -0
  73. package/dist/tools/sec/sec-qr-pairing-complete.js +62 -0
  74. package/dist/tools/sec/sec-qr-pairing-complete.js.map +1 -0
  75. package/dist/tools/sec/sec-qr-pairing-join.d.ts +13 -0
  76. package/dist/tools/sec/sec-qr-pairing-join.d.ts.map +1 -0
  77. package/dist/tools/sec/sec-qr-pairing-join.js +52 -0
  78. package/dist/tools/sec/sec-qr-pairing-join.js.map +1 -0
  79. package/dist/tools/sec/sec-qr-pairing-start.d.ts +19 -0
  80. package/dist/tools/sec/sec-qr-pairing-start.d.ts.map +1 -0
  81. package/dist/tools/sec/sec-qr-pairing-start.js +68 -0
  82. package/dist/tools/sec/sec-qr-pairing-start.js.map +1 -0
  83. package/dist/tools/wrm/wrm-effective-mcp-servers.js +5 -5
  84. package/dist/tools/wrm/wrm-effective-mcp-servers.js.map +1 -1
  85. package/dist/tools/wrm/wrm-effective-mcp-tools.js +6 -6
  86. package/dist/tools/wrm/wrm-effective-mcp-tools.js.map +1 -1
  87. package/dist/tools/wrm/wrm-effective-model-prefs.js +5 -5
  88. package/dist/tools/wrm/wrm-effective-model-prefs.js.map +1 -1
  89. package/dist/tools/wrm/wrm-worker-resolve-config.d.ts.map +1 -1
  90. package/dist/tools/wrm/wrm-worker-resolve-config.js +29 -17
  91. package/dist/tools/wrm/wrm-worker-resolve-config.js.map +1 -1
  92. package/dist/wrm/projection.js +5 -5
  93. package/dist/wrm/projection.js.map +1 -1
  94. package/dist/wrm/types.d.ts +12 -7
  95. package/dist/wrm/types.d.ts.map +1 -1
  96. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-capability.d.ts","sourceRoot":"","sources":["../../src/capabilities/tool-capability.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,qBAAqB,EACrB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAsBrC,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC;AAyDD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAoDpF,CAAC;AAUF,kEAAkE;AAClE,eAAO,MAAM,UAAU,UAA0B,CAAC;AAElD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASpD;AAiBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,eAA+B,GACrC,qBAAqB,CAuBvB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,eAA+B,GACrC,qBAAqB,EAAE,CAqBzB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,sEAAsE;AACtE,wBAAgB,SAAS,IAAI,SAAS,MAAM,EAAE,CAE7C"}
1
+ {"version":3,"file":"tool-capability.d.ts","sourceRoot":"","sources":["../../src/capabilities/tool-capability.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,qBAAqB,EACrB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAsBrC,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC;AAoFD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAoDpF,CAAC;AAUF,kEAAkE;AAClE,eAAO,MAAM,UAAU,UAA0B,CAAC;AAElD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASpD;AAiBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,eAA+B,GACrC,qBAAqB,CAuBvB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,eAA+B,GACrC,qBAAqB,EAAE,CAqBzB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,sEAAsE;AACtE,wBAAgB,SAAS,IAAI,SAAS,MAAM,EAAE,CAE7C"}
@@ -70,6 +70,33 @@ const CONTRACT_OVERRIDES = new Map([
70
70
  operations: new Set(['INSERT', 'SELECT', 'UPDATE']),
71
71
  },
72
72
  ],
73
+ // Interim: WI-0004859 will add EFFECTIVE_ASSIGNMENT_* to the Persist contract.
74
+ // Until it lands, map these views to WRM.WORKER_ROLE_ASSIGNMENTS#SELECT, which
75
+ // callers already hold — matching the permission WI-0004859 proposes.
76
+ [
77
+ 'wrm_effective_assignment_model_prefs',
78
+ {
79
+ resourceGroup: 'WRM',
80
+ resourceName: 'WORKER_ROLE_ASSIGNMENTS',
81
+ operations: new Set(['SELECT']),
82
+ },
83
+ ],
84
+ [
85
+ 'wrm_effective_assignment_mcp_servers',
86
+ {
87
+ resourceGroup: 'WRM',
88
+ resourceName: 'WORKER_ROLE_ASSIGNMENTS',
89
+ operations: new Set(['SELECT']),
90
+ },
91
+ ],
92
+ [
93
+ 'wrm_effective_assignment_mcp_tools',
94
+ {
95
+ resourceGroup: 'WRM',
96
+ resourceName: 'WORKER_ROLE_ASSIGNMENTS',
97
+ operations: new Set(['SELECT']),
98
+ },
99
+ ],
73
100
  ]);
74
101
  /**
75
102
  * Capability requirements for the 6 RPC endpoints MCP calls. RPCs do not
@@ -1 +1 @@
1
- {"version":3,"file":"tool-capability.js","sourceRoot":"","sources":["../../src/capabilities/tool-capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-capability.js","sourceRoot":"","sources":["../../src/capabilities/tool-capability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Shared side-effect helpers for MCP write tools.
4
+ *
5
+ * Every side-effecting tool — command dispatch, provisioning, external
6
+ * sync, outbound communication, permission grant — needs the same three
7
+ * primitives so the caller contract is predictable across modules:
8
+ *
9
+ * - `confirm: true` on consequential paths so a model cannot invoke
10
+ * them accidentally;
11
+ * - a caller-supplied `reason` on state transitions that leave an
12
+ * audit trail (revoke, unassign, cancel);
13
+ * - an optional `idempotency_key` forwarded as an `Idempotency-Key`
14
+ * header so retries converge on the original result rather than
15
+ * creating a duplicate row / grant / message.
16
+ *
17
+ * The MCP server does not maintain its own dedupe cache — the
18
+ * canonical answer lives in Persist. This module keeps the input
19
+ * schema and header-injection logic in one place so every write path
20
+ * surfaces the same contract.
21
+ */
22
+ export declare const idempotencyKeySchema: z.ZodOptional<z.ZodString>;
23
+ /**
24
+ * Build the request headers for a side-effecting mutation. Passes
25
+ * through `Prefer: return=representation` (needed for PostgREST to
26
+ * echo the created/updated row) and adds `Idempotency-Key` when
27
+ * supplied.
28
+ */
29
+ export declare function writeHeadersWithIdempotency(idempotencyKey: string | undefined): Record<string, string>;
30
+ export declare const confirmFlagSchema: z.ZodLiteral<true>;
31
+ export declare const reasonSchema: z.ZodString;
32
+ //# sourceMappingURL=side-effect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-effect.d.ts","sourceRoot":"","sources":["../../../src/tools/_shared/side-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,oBAAoB,4BAa9B,CAAC;AAEJ;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAED,eAAO,MAAM,iBAAiB,oBAY3B,CAAC;AAEJ,eAAO,MAAM,YAAY,aAG2B,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Shared side-effect helpers for MCP write tools.
4
+ *
5
+ * Every side-effecting tool — command dispatch, provisioning, external
6
+ * sync, outbound communication, permission grant — needs the same three
7
+ * primitives so the caller contract is predictable across modules:
8
+ *
9
+ * - `confirm: true` on consequential paths so a model cannot invoke
10
+ * them accidentally;
11
+ * - a caller-supplied `reason` on state transitions that leave an
12
+ * audit trail (revoke, unassign, cancel);
13
+ * - an optional `idempotency_key` forwarded as an `Idempotency-Key`
14
+ * header so retries converge on the original result rather than
15
+ * creating a duplicate row / grant / message.
16
+ *
17
+ * The MCP server does not maintain its own dedupe cache — the
18
+ * canonical answer lives in Persist. This module keeps the input
19
+ * schema and header-injection logic in one place so every write path
20
+ * surfaces the same contract.
21
+ */
22
+ export const idempotencyKeySchema = z
23
+ .string()
24
+ .min(8)
25
+ .max(128)
26
+ .regex(/^[A-Za-z0-9._~:-]+$/, 'idempotency_key must be a URL-safe token (letters, digits, `.`, `_`, `~`, `:`, `-`)')
27
+ .optional()
28
+ .describe('Optional caller-supplied idempotency key. Reusing the same key with equivalent ' +
29
+ 'inputs converges to the original result rather than creating a duplicate. ' +
30
+ 'Must be a URL-safe token of 8–128 characters.');
31
+ /**
32
+ * Build the request headers for a side-effecting mutation. Passes
33
+ * through `Prefer: return=representation` (needed for PostgREST to
34
+ * echo the created/updated row) and adds `Idempotency-Key` when
35
+ * supplied.
36
+ */
37
+ export function writeHeadersWithIdempotency(idempotencyKey) {
38
+ const headers = {
39
+ Prefer: 'return=representation',
40
+ };
41
+ if (idempotencyKey) {
42
+ headers['Idempotency-Key'] = idempotencyKey;
43
+ }
44
+ return headers;
45
+ }
46
+ export const confirmFlagSchema = z
47
+ .literal(true, {
48
+ errorMap: () => ({
49
+ message: 'confirm must be set to `true` to acknowledge that this is a side-effecting action ' +
50
+ 'that changes durable state.',
51
+ }),
52
+ })
53
+ .describe('Must be `true` to execute. Present so a model cannot accidentally grant a ' +
54
+ 'permission, revoke a role, or transition a security session without an ' +
55
+ 'explicit confirmation step.');
56
+ export const reasonSchema = z
57
+ .string()
58
+ .min(4, 'reason must be at least 4 characters')
59
+ .max(500, 'reason must be at most 500 characters');
60
+ //# sourceMappingURL=side-effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-effect.js","sourceRoot":"","sources":["../../../src/tools/_shared/side-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CACJ,qBAAqB,EACrB,qFAAqF,CACtF;KACA,QAAQ,EAAE;KACV,QAAQ,CACP,iFAAiF;IAC/E,4EAA4E;IAC5E,+CAA+C,CAClD,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,cAAkC;IAElC,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,uBAAuB;KAChC,CAAC;IACF,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,OAAO,CAAC,IAAI,EAAE;IACb,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACf,OAAO,EACL,oFAAoF;YAClF,6BAA6B;KAClC,CAAC;CACH,CAAC;KACD,QAAQ,CACP,4EAA4E;IAC1E,yEAAyE;IACzE,6BAA6B,CAChC,CAAC;AAEJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;KAC9C,GAAG,CAAC,GAAG,EAAE,uCAAuC,CAAC,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;AAOrC;;;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,EAoCzC,CAAC;AAwDF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAU9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAepD"}
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUrC;;;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,EAyDzC,CAAC;AAwDF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAgB9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAepD"}
@@ -3,6 +3,9 @@ import { ppmTools } from './ppm/index.js';
3
3
  import { prmTools } from './prm/index.js';
4
4
  import { sfaTools } from './sfa/index.js';
5
5
  import { wrmTools } from './wrm/index.js';
6
+ import { fndReadOnlyTools, fndTools } from './fnd/index.js';
7
+ import { hrmReadOnlyTools, hrmTools } from './hrm/index.js';
8
+ import { secReadOnlyTools, secTools } from './sec/index.js';
6
9
  export const primaryDomains = [
7
10
  {
8
11
  id: 'dsm',
@@ -34,6 +37,24 @@ export const primaryDomains = [
34
37
  summary: 'Manage AI worker identities, model stacks, MCP tool registrations, roles, role memories, and agent run steps/artifacts.',
35
38
  tools: wrmTools,
36
39
  },
40
+ {
41
+ id: 'fnd',
42
+ title: 'FND — Foundation',
43
+ summary: 'Bounded reads for approved Foundation reference and configuration data — labels, entity labels, domains, locales, RUC enforcement, menus, notification topics, tenants, integration links, ETL templates, report templates, and documents (plus versions and attachments). Administrative, credentialed, and internal-permission FND tables remain excluded.',
44
+ tools: fndTools,
45
+ },
46
+ {
47
+ id: 'hrm',
48
+ title: 'HRM — Human Resources Management',
49
+ summary: 'Bounded reads plus explicit-schema mutations for user role assignments, role inheritance, role→policy attachments, and direct user→policy attachments. Every write requires confirm=true; revocations additionally require a caller-supplied reason. Authentication internals and role definitions remain read-only.',
50
+ tools: hrmTools,
51
+ },
52
+ {
53
+ id: 'sec',
54
+ title: 'SEC — Security',
55
+ summary: 'Dedicated semantic tools for the QR pairing session lifecycle (start / join / complete / cancel), plus bounded reads with secret redaction. Every write requires confirm=true; cancellation additionally requires a reason.',
56
+ tools: secTools,
57
+ },
37
58
  ];
38
59
  const PPM_READ_TOOL_NAMES = new Set([
39
60
  'ppm_work_item_get',
@@ -98,6 +119,12 @@ export const domainIndex = {
98
119
  'sfa-readonly': sfaTools.filter((t) => SFA_READ_TOOL_NAMES.has(t.name)),
99
120
  wrm: wrmTools,
100
121
  'wrm-readonly': wrmTools.filter((t) => WRM_READ_TOOL_NAMES.has(t.name)),
122
+ fnd: fndTools,
123
+ 'fnd-readonly': fndReadOnlyTools,
124
+ hrm: hrmTools,
125
+ 'hrm-readonly': hrmReadOnlyTools,
126
+ sec: secTools,
127
+ 'sec-readonly': secReadOnlyTools,
101
128
  };
102
129
  /**
103
130
  * 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 fndGeneratedReadReport: CatalogueReport;
4
+ export declare const fndGeneratedReadTools: Tool[];
5
+ //# sourceMappingURL=generated-reads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-reads.d.ts","sourceRoot":"","sources":["../../../src/tools/fnd/generated-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAGL,eAAe,EAChB,MAAM,gCAAgC,CAAC;AA0CxC,eAAO,MAAM,sBAAsB,EAAE,eAC8B,CAAC;AAEpE,eAAO,MAAM,qBAAqB,EAAE,IAAI,EAGvC,CAAC"}
@@ -0,0 +1,42 @@
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 FND module (WI-0003503).
5
+ *
6
+ * The schema-driven catalogue (WI-0003500) emits describe/list/get for
7
+ * every `normal`-sensitivity FND resource that declares a read
8
+ * operation and has no side effects. The pinned Persist contract
9
+ * already excludes the noise for us:
10
+ *
11
+ * - internal permission model tables (fnd_authz_*, fnd_permissions,
12
+ * fnd_permission_group*) — MCP consumes derived capabilities;
13
+ * - job / worker infrastructure (fnd_jobs, fnd_job_schedules,
14
+ * fnd_workers, fnd_programs, fnd_worker_managers) — not part of
15
+ * the "approved" tenant/job read surface for this WI;
16
+ * - seed lookups (fnd_lookups, fnd_countries, fnd_categories, …)
17
+ * which are already carried in downstream lookup tables;
18
+ * - log tables (fnd_job_logs, fnd_inbound_webhook_logs, …).
19
+ *
20
+ * The remaining `normal` FND surface — approved reference /
21
+ * configuration data (labels, entity labels, domains, locales, RUC
22
+ * enforcement modes), documents and their versions/attachments,
23
+ * ETL templates, menus, notification topics, report templates,
24
+ * tenants, tenants_domain, and integration-object links — lands
25
+ * automatically. Sensitive FND resources (notification destinations,
26
+ * provider subscriptions, role menus / overrides, tenant parameters,
27
+ * tenant users, tenant users directory) are deliberately EXCLUDED to
28
+ * preserve administrative restrictions.
29
+ *
30
+ * Side-effecting FND rows (fnd_notification_subscriptions,
31
+ * fnd_notification_templates) are hard-excluded by the guardrails
32
+ * because they carry `emits_notifications` / `templates_notifications`
33
+ * markers, and no `includeSideEffects` opt-in exists.
34
+ *
35
+ * FND is a bounded-read-only surface for this WI — every mutating
36
+ * FND workflow currently belongs to another team; when a semantic
37
+ * endpoint lands, a dedicated tool will be added here.
38
+ */
39
+ const contract = loadPersistResourceContract();
40
+ export const fndGeneratedReadReport = buildGeneratedReadCatalogueReport(contract, { modules: ['fnd'] });
41
+ export const fndGeneratedReadTools = buildGeneratedReadCatalogue(contract, { modules: ['fnd'] });
42
+ //# sourceMappingURL=generated-reads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-reads.js","sourceRoot":"","sources":["../../../src/tools/fnd/generated-reads.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAElC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;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,13 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * FND tool surface (WI-0003503).
4
+ *
5
+ * FND is a bounded-read-only module in this WI — every mutation on
6
+ * FND rows is either handled elsewhere (permission model → derived
7
+ * capabilities; job scheduling → workers) or awaits a dedicated
8
+ * semantic endpoint.
9
+ */
10
+ export declare const fndTools: Tool[];
11
+ /** Read-only slice used by the `fnd-readonly` selectable sub-domain. */
12
+ export declare const fndReadOnlyTools: Tool[];
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/fnd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,IAAI,EAA+B,CAAC;AAE3D,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,IAAI,EAA0B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { fndGeneratedReadTools } from './generated-reads.js';
2
+ /**
3
+ * FND tool surface (WI-0003503).
4
+ *
5
+ * FND is a bounded-read-only module in this WI — every mutation on
6
+ * FND rows is either handled elsewhere (permission model → derived
7
+ * capabilities; job scheduling → workers) or awaits a dedicated
8
+ * semantic endpoint.
9
+ */
10
+ export const fndTools = [...fndGeneratedReadTools];
11
+ /** Read-only slice used by the `fnd-readonly` selectable sub-domain. */
12
+ export const fndReadOnlyTools = fndGeneratedReadTools;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/fnd/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAW,CAAC,GAAG,qBAAqB,CAAC,CAAC;AAE3D,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAW,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Tool } from '../registry.js';
2
+ import { CatalogueReport } from '../../generated-reads/index.js';
3
+ export declare const hrmGeneratedReadReport: CatalogueReport;
4
+ export declare const hrmGeneratedReadTools: Tool[];
5
+ //# sourceMappingURL=generated-reads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-reads.d.ts","sourceRoot":"","sources":["../../../src/tools/hrm/generated-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAGL,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAqCxC,eAAO,MAAM,sBAAsB,EAAE,eAIjC,CAAC;AAEL,eAAO,MAAM,qBAAqB,EAAE,IAAI,EAGvC,CAAC"}
@@ -0,0 +1,40 @@
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 HRM module (WI-0003503).
5
+ *
6
+ * The pinned Persist contract carries seven HRM resources. The
7
+ * generic guardrails already exclude the four authentication-internal
8
+ * policy tables (hrm_authorization_policies, *_templates,
9
+ * hrm_permissions, hrm_role_permissions) via the
10
+ * `internal_permission_model` reason, so they never appear here.
11
+ *
12
+ * Of the remaining seven, four are classified `sensitive` because
13
+ * they describe who holds which permission — role definitions, role
14
+ * inheritance, role→policy assignment, and the user→role grant list:
15
+ *
16
+ * - `hrm_user_roles`
17
+ * - `hrm_user_role_assignments`
18
+ * - `hrm_user_role_parents`
19
+ * - `hrm_user_role_policy_assignments`
20
+ *
21
+ * These reads are genuinely needed to run "who has access to what"
22
+ * workflows — the exact use case this WI approves — so the catalogue
23
+ * is invoked with `includeSensitive: true`. The field-level redaction
24
+ * pass still strips any credential-shaped column; none of the HRM
25
+ * tables carry a password/token/secret field, but the check keeps the
26
+ * guardrail active if that ever changes.
27
+ *
28
+ * Every write on an HRM row lives in a dedicated hand-written tool
29
+ * (`hrm-user-role-*`, `hrm-user-policy-*`) with a confirmation flag
30
+ * and, for revocations, a caller-supplied reason. Role definitions
31
+ * (`hrm_user_roles`) and organisation records (`hrm_organizations_*`)
32
+ * are SELECT-only in the pinned contract and expose no write tool.
33
+ */
34
+ const contract = loadPersistResourceContract();
35
+ export const hrmGeneratedReadReport = buildGeneratedReadCatalogueReport(contract, {
36
+ modules: ['hrm'],
37
+ includeSensitive: true,
38
+ });
39
+ export const hrmGeneratedReadTools = buildGeneratedReadCatalogue(contract, { modules: ['hrm'], includeSensitive: true });
40
+ //# sourceMappingURL=generated-reads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-reads.js","sourceRoot":"","sources":["../../../src/tools/hrm/generated-reads.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAElC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GACjC,iCAAiC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,qBAAqB,GAAW,2BAA2B,CACtE,QAAQ,EACR,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC7C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Attach an authorization policy directly to a user
4
+ * (`hrm_user_policy_assignments`).
5
+ *
6
+ * A direct policy assignment grants the user a specific permission
7
+ * bundle outside the role hierarchy, so this is a `provisioning`
8
+ * action that requires `confirm: true`. Natural key:
9
+ * (tenant_id, user_id, authorization_policy_id).
10
+ *
11
+ * Revocation is a separate semantic tool
12
+ * (`hrm_user_policy_unassign`) with a required audit reason.
13
+ */
14
+ export declare const hrmUserPolicyAssignTool: Tool;
15
+ //# sourceMappingURL=hrm-user-policy-assign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrm-user-policy-assign.d.ts","sourceRoot":"","sources":["../../../src/tools/hrm/hrm-user-policy-assign.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,EAAE,IAgDrC,CAAC"}
@@ -0,0 +1,60 @@
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, idempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
5
+ /**
6
+ * Attach an authorization policy directly to a user
7
+ * (`hrm_user_policy_assignments`).
8
+ *
9
+ * A direct policy assignment grants the user a specific permission
10
+ * bundle outside the role hierarchy, so this is a `provisioning`
11
+ * action that requires `confirm: true`. Natural key:
12
+ * (tenant_id, user_id, authorization_policy_id).
13
+ *
14
+ * Revocation is a separate semantic tool
15
+ * (`hrm_user_policy_unassign`) with a required audit reason.
16
+ */
17
+ export const hrmUserPolicyAssignTool = {
18
+ name: 'hrm_user_policy_assign',
19
+ description: 'Attach an authorization policy directly to a user (hrm_user_policy_assignments). ' +
20
+ 'Requires confirm=true, user_id, and authorization_policy_id. ' +
21
+ 'Natural key: (tenant_id, user_id, authorization_policy_id). Retry-safe.',
22
+ inputSchema: z.object({
23
+ user_id: z
24
+ .string()
25
+ .min(1)
26
+ .describe('UUID of the user receiving the direct policy assignment'),
27
+ authorization_policy_id: z
28
+ .string()
29
+ .min(1)
30
+ .describe('UUID of the hrm_authorization_policies row being attached'),
31
+ start_date: z.string().datetime().optional(),
32
+ end_date: z.string().datetime().optional(),
33
+ metadata: z.record(z.unknown()).optional(),
34
+ confirm: confirmFlagSchema,
35
+ idempotency_key: idempotencyKeySchema,
36
+ }),
37
+ capabilities: [cap('hrm_user_policy_assignments', 'INSERT')],
38
+ sideEffect: 'provisioning',
39
+ confirmation: 'caller_confirms',
40
+ idempotency: 'natural_key',
41
+ handler: async (args, ctx) => {
42
+ const input = args;
43
+ const body = {
44
+ user_id: input.user_id,
45
+ authorization_policy_id: input.authorization_policy_id,
46
+ };
47
+ for (const field of ['start_date', 'end_date', 'metadata']) {
48
+ if (input[field] !== undefined)
49
+ body[field] = input[field];
50
+ }
51
+ try {
52
+ const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/hrm_user_policy_assignments?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
53
+ return successResponse(rows[0]);
54
+ }
55
+ catch (error) {
56
+ return errorResponse(API_ERROR, `Failed to attach HRM user policy assignment: ${error.message}`);
57
+ }
58
+ },
59
+ };
60
+ //# sourceMappingURL=hrm-user-policy-assign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrm-user-policy-assign.js","sourceRoot":"","sources":["../../../src/tools/hrm/hrm-user-policy-assign.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,EACL,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAS;IAC3C,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,mFAAmF;QACnF,+DAA+D;QAC/D,yEAAyE;IAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,yDAAyD,CAAC;QACtE,uBAAuB,EAAE,CAAC;aACvB,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,2DAA2D,CAAC;QACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,iBAAiB;QAC1B,eAAe,EAAE,oBAAoB;KACtC,CAAC;IACF,YAAY,EAAE,CAAC,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;IAC5D,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAA2B,CAAC;QAC1C,MAAM,IAAI,GAAwB;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;SACvD,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;YAC3D,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,IAAI,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CACnC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,uCAAuC,EAClE,IAAI,EACJ,EAAE,OAAO,EAAE,2BAA2B,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAChE,CAAC;YACF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,aAAa,CAClB,SAAS,EACT,gDAAgD,KAAK,CAAC,OAAO,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Detach an authorization policy from a user by soft-closing the row:
4
+ * set `active=false` and stamp `end_date`. Requires confirm=true and
5
+ * a reason for the audit trail.
6
+ */
7
+ export declare const hrmUserPolicyUnassignTool: Tool;
8
+ //# sourceMappingURL=hrm-user-policy-unassign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrm-user-policy-unassign.d.ts","sourceRoot":"","sources":["../../../src/tools/hrm/hrm-user-policy-unassign.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAUtC;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,IAqDvC,CAAC"}
@@ -0,0 +1,48 @@
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, idempotencyKeySchema, reasonSchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
5
+ /**
6
+ * Detach an authorization policy from a user by soft-closing the row:
7
+ * set `active=false` and stamp `end_date`. Requires confirm=true and
8
+ * a reason for the audit trail.
9
+ */
10
+ export const hrmUserPolicyUnassignTool = {
11
+ name: 'hrm_user_policy_unassign',
12
+ description: 'Detach an authorization policy from a user by soft-closing the row ' +
13
+ '(active=false, end_date=now). Requires confirm=true and a reason. Retry-safe.',
14
+ inputSchema: z.object({
15
+ id: z
16
+ .string()
17
+ .min(1)
18
+ .describe('UUID of the hrm_user_policy_assignments row to detach'),
19
+ end_date: z.string().datetime().optional(),
20
+ confirm: confirmFlagSchema,
21
+ reason: reasonSchema.describe('Human-readable justification recorded on the audit trail'),
22
+ idempotency_key: idempotencyKeySchema,
23
+ }),
24
+ capabilities: [cap('hrm_user_policy_assignments', 'UPDATE')],
25
+ sideEffect: 'state_change',
26
+ confirmation: 'caller_confirms',
27
+ idempotency: 'natural_key',
28
+ handler: async (args, ctx) => {
29
+ const input = args;
30
+ const body = {
31
+ active: false,
32
+ metadata: { unassign_reason: input.reason },
33
+ };
34
+ if (input.end_date !== undefined)
35
+ body.end_date = input.end_date;
36
+ try {
37
+ const rows = await ctx.apiClient.patch(`${ctx.apiClient.dbBasePath}/hrm_user_policy_assignments?id=eq.${input.id}&select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
38
+ if (!rows || rows.length === 0) {
39
+ return errorResponse(API_ERROR, `HRM user policy assignment ${input.id} not found or not accessible`);
40
+ }
41
+ return successResponse(rows[0]);
42
+ }
43
+ catch (error) {
44
+ return errorResponse(API_ERROR, `Failed to detach HRM user policy assignment: ${error.message}`);
45
+ }
46
+ },
47
+ };
48
+ //# sourceMappingURL=hrm-user-policy-unassign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrm-user-policy-unassign.js","sourceRoot":"","sources":["../../../src/tools/hrm/hrm-user-policy-unassign.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,EACL,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAS;IAC7C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,qEAAqE;QACrE,+EAA+E;IACjF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,uDAAuD,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAC3B,0DAA0D,CAC3D;QACD,eAAe,EAAE,oBAAoB;KACtC,CAAC;IACF,YAAY,EAAE,CAAC,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;IAC5D,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAKb,CAAC;QACF,MAAM,IAAI,GAA4B;YACpC,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE;SAC5C,CAAC;QACF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CACpC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,sCAAsC,KAAK,CAAC,EAAE,WAAW,EACpF,IAAI,EACJ,EAAE,OAAO,EAAE,2BAA2B,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAChE,CAAC;YACF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,aAAa,CAClB,SAAS,EACT,8BAA8B,KAAK,CAAC,EAAE,8BAA8B,CACrE,CAAC;YACJ,CAAC;YACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,aAAa,CAClB,SAAS,EACT,gDAAgD,KAAK,CAAC,OAAO,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Grant a user a role assignment (`hrm_user_role_assignments`).
4
+ *
5
+ * A role grant confers durable authority inside the tenant, so this
6
+ * is a `provisioning` action that requires `confirm: true` and
7
+ * documents its natural key: (tenant_id, user_id, user_role_id).
8
+ * Reusing the same natural key with the same start_date converges on
9
+ * the original grant rather than creating a duplicate row.
10
+ *
11
+ * `active` and lifecycle transitions are NOT settable through this
12
+ * path — a grant is created active by default. Revocation is a
13
+ * separate semantic tool (`hrm_user_role_unassign`) that carries a
14
+ * reason for the audit trail.
15
+ */
16
+ export declare const hrmUserRoleAssignTool: Tool;
17
+ //# sourceMappingURL=hrm-user-role-assign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrm-user-role-assign.d.ts","sourceRoot":"","sources":["../../../src/tools/hrm/hrm-user-role-assign.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,EAAE,IAwDnC,CAAC"}