@rippling/rippling-sdk 0.2.0-alpha.79 → 0.2.0-alpha.81

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 (87) hide show
  1. package/client.d.mts +2 -2
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +2 -2
  4. package/client.d.ts.map +1 -1
  5. package/client.js.map +1 -1
  6. package/client.mjs.map +1 -1
  7. package/examples/manifest/custom-skill/custom-skill.ts +45 -0
  8. package/lib/manifest/agent.d.mts +60 -0
  9. package/lib/manifest/agent.d.mts.map +1 -0
  10. package/lib/manifest/agent.d.ts +60 -0
  11. package/lib/manifest/agent.d.ts.map +1 -0
  12. package/lib/manifest/agent.js +94 -0
  13. package/lib/manifest/agent.js.map +1 -0
  14. package/lib/manifest/agent.mjs +90 -0
  15. package/lib/manifest/agent.mjs.map +1 -0
  16. package/lib/manifest/custom-field.d.mts +2 -2
  17. package/lib/manifest/custom-field.d.mts.map +1 -1
  18. package/lib/manifest/custom-field.d.ts +2 -2
  19. package/lib/manifest/custom-field.d.ts.map +1 -1
  20. package/lib/manifest/custom-field.js +6 -6
  21. package/lib/manifest/custom-field.js.map +1 -1
  22. package/lib/manifest/custom-field.mjs +6 -6
  23. package/lib/manifest/custom-field.mjs.map +1 -1
  24. package/lib/manifest/custom-skill.d.mts +115 -0
  25. package/lib/manifest/custom-skill.d.mts.map +1 -0
  26. package/lib/manifest/custom-skill.d.ts +115 -0
  27. package/lib/manifest/custom-skill.d.ts.map +1 -0
  28. package/lib/manifest/custom-skill.js +127 -0
  29. package/lib/manifest/custom-skill.js.map +1 -0
  30. package/lib/manifest/custom-skill.mjs +123 -0
  31. package/lib/manifest/custom-skill.mjs.map +1 -0
  32. package/lib/manifest/existing-manifest-context.d.mts +7 -0
  33. package/lib/manifest/existing-manifest-context.d.mts.map +1 -1
  34. package/lib/manifest/existing-manifest-context.d.ts +7 -0
  35. package/lib/manifest/existing-manifest-context.d.ts.map +1 -1
  36. package/lib/manifest/existing-manifest-context.js +34 -0
  37. package/lib/manifest/existing-manifest-context.js.map +1 -1
  38. package/lib/manifest/existing-manifest-context.mjs +34 -0
  39. package/lib/manifest/existing-manifest-context.mjs.map +1 -1
  40. package/lib/manifest/index.d.mts +2 -0
  41. package/lib/manifest/index.d.mts.map +1 -1
  42. package/lib/manifest/index.d.ts +2 -0
  43. package/lib/manifest/index.d.ts.map +1 -1
  44. package/lib/manifest/index.js +5 -1
  45. package/lib/manifest/index.js.map +1 -1
  46. package/lib/manifest/index.mjs +2 -0
  47. package/lib/manifest/index.mjs.map +1 -1
  48. package/lib/manifest/manifest-builder.d.mts +1 -1
  49. package/lib/manifest/manifest-builder.d.mts.map +1 -1
  50. package/lib/manifest/manifest-builder.d.ts +1 -1
  51. package/lib/manifest/manifest-builder.d.ts.map +1 -1
  52. package/lib/manifest/manifest-builder.js.map +1 -1
  53. package/lib/manifest/manifest-builder.mjs.map +1 -1
  54. package/package.json +1 -1
  55. package/resources/index.d.mts +1 -1
  56. package/resources/index.d.mts.map +1 -1
  57. package/resources/index.d.ts +1 -1
  58. package/resources/index.d.ts.map +1 -1
  59. package/resources/index.js.map +1 -1
  60. package/resources/index.mjs.map +1 -1
  61. package/resources/leave-program-evaluations.d.mts +32 -2
  62. package/resources/leave-program-evaluations.d.mts.map +1 -1
  63. package/resources/leave-program-evaluations.d.ts +32 -2
  64. package/resources/leave-program-evaluations.d.ts.map +1 -1
  65. package/resources/teams.d.mts +33 -1
  66. package/resources/teams.d.mts.map +1 -1
  67. package/resources/teams.d.ts +33 -1
  68. package/resources/teams.d.ts.map +1 -1
  69. package/resources/teams.js +22 -0
  70. package/resources/teams.js.map +1 -1
  71. package/resources/teams.mjs +22 -0
  72. package/resources/teams.mjs.map +1 -1
  73. package/src/client.ts +4 -0
  74. package/src/lib/manifest/agent.ts +141 -0
  75. package/src/lib/manifest/custom-field.ts +10 -13
  76. package/src/lib/manifest/custom-skill.ts +205 -0
  77. package/src/lib/manifest/existing-manifest-context.ts +61 -0
  78. package/src/lib/manifest/index.ts +9 -0
  79. package/src/lib/manifest/manifest-builder.ts +2 -0
  80. package/src/resources/index.ts +2 -0
  81. package/src/resources/leave-program-evaluations.ts +38 -2
  82. package/src/resources/teams.ts +55 -0
  83. package/src/version.ts +1 -1
  84. package/version.d.mts +1 -1
  85. package/version.d.ts +1 -1
  86. package/version.js +1 -1
  87. package/version.mjs +1 -1
@@ -15,10 +15,22 @@ export declare class Teams extends APIResource {
15
15
  * - Sortable fields: `id`, `created_at`, `updated_at`
16
16
  */
17
17
  list(query?: TeamListParams | null | undefined, options?: RequestOptions): PagePromise<TeamsPageCursorURL, Team>;
18
+ /**
19
+ * Create a new team
20
+ */
21
+ create(body: TeamCreateParams, options?: RequestOptions): APIPromise<Team>;
18
22
  /**
19
23
  * Retrieve a specific team
20
24
  */
21
25
  retrieve(id: string, query?: TeamRetrieveParams | null | undefined, options?: RequestOptions): APIPromise<TeamRetrieveResponse>;
26
+ /**
27
+ * Update a specific team.
28
+ */
29
+ update(id: string, body?: TeamUpdateParams | null | undefined, options?: RequestOptions): APIPromise<Team>;
30
+ /**
31
+ * Delete a team
32
+ */
33
+ delete(id: string, options?: RequestOptions): APIPromise<void>;
22
34
  }
23
35
  export type TeamsPageCursorURL = PageCursorURL<Team>;
24
36
  export interface Team {
@@ -59,10 +71,30 @@ export interface TeamListParams {
59
71
  expand?: string;
60
72
  order_by?: string;
61
73
  }
74
+ export interface TeamCreateParams {
75
+ /**
76
+ * The name of the team.
77
+ */
78
+ name: string;
79
+ /**
80
+ * The parent team
81
+ */
82
+ parent_id?: string;
83
+ }
62
84
  export interface TeamRetrieveParams {
63
85
  expand?: string;
64
86
  }
87
+ export interface TeamUpdateParams {
88
+ /**
89
+ * The name of the team.
90
+ */
91
+ name?: string;
92
+ /**
93
+ * The parent team
94
+ */
95
+ parent_id?: string;
96
+ }
65
97
  export declare namespace Teams {
66
- export { type Team as Team, type TeamRetrieveResponse as TeamRetrieveResponse, type TeamsPageCursorURL as TeamsPageCursorURL, type TeamListParams as TeamListParams, type TeamRetrieveParams as TeamRetrieveParams, };
98
+ export { type Team as Team, type TeamRetrieveResponse as TeamRetrieveResponse, type TeamsPageCursorURL as TeamsPageCursorURL, type TeamListParams as TeamListParams, type TeamCreateParams as TeamCreateParams, type TeamRetrieveParams as TeamRetrieveParams, type TeamUpdateParams as TeamUpdateParams, };
67
99
  }
68
100
  //# sourceMappingURL=teams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../src/resources/teams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,4BAAyB;AAC/C,OAAO,KAAK,mBAAmB,+BAA4B;AAC3D,OAAO,EAAE,UAAU,EAAE,+BAA4B;AACjD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,8BAA2B;AAChE,OAAO,EAAE,cAAc,EAAE,uCAAoC;AAG7D;;GAEG;AACH,qBAAa,KAAM,SAAQ,WAAW;IACpC;;;;;;OAMG;IACH,IAAI,CACF,KAAK,GAAE,cAAc,GAAG,IAAI,GAAG,SAAc,EAC7C,OAAO,CAAC,EAAE,cAAc,GACvB,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAIxC;;OAEG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,KAAK,GAAE,kBAAkB,GAAG,IAAI,GAAG,SAAc,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,oBAAoB,CAAC;CAGpC;AAED,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAErD,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB,CAAC,IAAI,EAAE,IAAI;CAAG;AAE/E,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,OAAO,EACL,KAAK,IAAI,IAAI,IAAI,EACjB,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,cAAc,IAAI,cAAc,EACrC,KAAK,kBAAkB,IAAI,kBAAkB,GAC9C,CAAC;CACH"}
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../src/resources/teams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,4BAAyB;AAC/C,OAAO,KAAK,mBAAmB,+BAA4B;AAC3D,OAAO,EAAE,UAAU,EAAE,+BAA4B;AACjD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,8BAA2B;AAEhE,OAAO,EAAE,cAAc,EAAE,uCAAoC;AAG7D;;GAEG;AACH,qBAAa,KAAM,SAAQ,WAAW;IACpC;;;;;;OAMG;IACH,IAAI,CACF,KAAK,GAAE,cAAc,GAAG,IAAI,GAAG,SAAc,EAC7C,OAAO,CAAC,EAAE,cAAc,GACvB,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAIxC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;IAI1E;;OAEG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,KAAK,GAAE,kBAAkB,GAAG,IAAI,GAAG,SAAc,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,oBAAoB,CAAC;IAInC;;OAEG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,gBAAgB,GAAG,IAAI,GAAG,SAAc,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,IAAI,CAAC;IAInB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;CAM/D;AAED,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAErD,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB,CAAC,IAAI,EAAE,IAAI;CAAG;AAE/E,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,OAAO,EACL,KAAK,IAAI,IAAI,IAAI,EACjB,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,cAAc,IAAI,cAAc,EACrC,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,gBAAgB,IAAI,gBAAgB,GAC1C,CAAC;CACH"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Teams = void 0;
5
5
  const resource_1 = require("../core/resource.js");
6
6
  const pagination_1 = require("../core/pagination.js");
7
+ const headers_1 = require("../internal/headers.js");
7
8
  const path_1 = require("../internal/utils/path.js");
8
9
  /**
9
10
  * Teams at the company
@@ -19,12 +20,33 @@ class Teams extends resource_1.APIResource {
19
20
  list(query = {}, options) {
20
21
  return this._client.getAPIList('/teams/', (pagination_1.PageCursorURL), { query, ...options });
21
22
  }
23
+ /**
24
+ * Create a new team
25
+ */
26
+ create(body, options) {
27
+ return this._client.post('/teams/', { body, ...options });
28
+ }
22
29
  /**
23
30
  * Retrieve a specific team
24
31
  */
25
32
  retrieve(id, query = {}, options) {
26
33
  return this._client.get((0, path_1.path) `/teams/${id}/`, { query, ...options });
27
34
  }
35
+ /**
36
+ * Update a specific team.
37
+ */
38
+ update(id, body = {}, options) {
39
+ return this._client.patch((0, path_1.path) `/teams/${id}/`, { body, ...options });
40
+ }
41
+ /**
42
+ * Delete a team
43
+ */
44
+ delete(id, options) {
45
+ return this._client.delete((0, path_1.path) `/teams/${id}/`, {
46
+ ...options,
47
+ headers: (0, headers_1.buildHeaders)([{ Accept: '*/*' }, options?.headers]),
48
+ });
49
+ }
28
50
  }
29
51
  exports.Teams = Teams;
30
52
  //# sourceMappingURL=teams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../src/resources/teams.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAG/C,sDAAgE;AAEhE,oDAA8C;AAE9C;;GAEG;AACH,MAAa,KAAM,SAAQ,sBAAW;IACpC;;;;;;OAMG;IACH,IAAI,CACF,QAA2C,EAAE,EAC7C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA,0BAAmB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,EAAU,EACV,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,UAAU,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;CACF;AAzBD,sBAyBC"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../src/resources/teams.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAG/C,sDAAgE;AAChE,oDAAmD;AAEnD,oDAA8C;AAE9C;;GAEG;AACH,MAAa,KAAM,SAAQ,sBAAW;IACpC;;;;;;OAMG;IACH,IAAI,CACF,QAA2C,EAAE,EAC7C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA,0BAAmB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAsB,EAAE,OAAwB;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,EAAU,EACV,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,UAAU,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,EAAU,EACV,OAA4C,EAAE,EAC9C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,WAAI,EAAA,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,UAAU,EAAE,GAAG,EAAE;YAC9C,GAAG,OAAO;YACV,OAAO,EAAE,IAAA,sBAAY,EAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF;AArDD,sBAqDC"}
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
  import { APIResource } from "../core/resource.mjs";
3
3
  import { PageCursorURL } from "../core/pagination.mjs";
4
+ import { buildHeaders } from "../internal/headers.mjs";
4
5
  import { path } from "../internal/utils/path.mjs";
5
6
  /**
6
7
  * Teams at the company
@@ -16,11 +17,32 @@ export class Teams extends APIResource {
16
17
  list(query = {}, options) {
17
18
  return this._client.getAPIList('/teams/', (PageCursorURL), { query, ...options });
18
19
  }
20
+ /**
21
+ * Create a new team
22
+ */
23
+ create(body, options) {
24
+ return this._client.post('/teams/', { body, ...options });
25
+ }
19
26
  /**
20
27
  * Retrieve a specific team
21
28
  */
22
29
  retrieve(id, query = {}, options) {
23
30
  return this._client.get(path `/teams/${id}/`, { query, ...options });
24
31
  }
32
+ /**
33
+ * Update a specific team.
34
+ */
35
+ update(id, body = {}, options) {
36
+ return this._client.patch(path `/teams/${id}/`, { body, ...options });
37
+ }
38
+ /**
39
+ * Delete a team
40
+ */
41
+ delete(id, options) {
42
+ return this._client.delete(path `/teams/${id}/`, {
43
+ ...options,
44
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
45
+ });
46
+ }
25
47
  }
26
48
  //# sourceMappingURL=teams.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"teams.mjs","sourceRoot":"","sources":["../src/resources/teams.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAG/C,OAAO,EAAE,aAAa,EAAe,+BAA2B;AAEhE,OAAO,EAAE,IAAI,EAAE,mCAA+B;AAE9C;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;;;;;OAMG;IACH,IAAI,CACF,QAA2C,EAAE,EAC7C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA,aAAmB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,EAAU,EACV,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,UAAU,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"teams.mjs","sourceRoot":"","sources":["../src/resources/teams.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAG/C,OAAO,EAAE,aAAa,EAAe,+BAA2B;AAChE,OAAO,EAAE,YAAY,EAAE,gCAA4B;AAEnD,OAAO,EAAE,IAAI,EAAE,mCAA+B;AAE9C;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;;;;;OAMG;IACH,IAAI,CACF,QAA2C,EAAE,EAC7C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA,aAAmB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAsB,EAAE,OAAwB;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,EAAU,EACV,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,UAAU,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,EAAU,EACV,OAA4C,EAAE,EAC9C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,UAAU,EAAE,GAAG,EAAE;YAC9C,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF"}
package/src/client.ts CHANGED
@@ -445,9 +445,11 @@ import {
445
445
  import { SSOMe, SSOMeListParams, SSOMeResource } from './resources/sso-me';
446
446
  import {
447
447
  Team,
448
+ TeamCreateParams,
448
449
  TeamListParams,
449
450
  TeamRetrieveParams,
450
451
  TeamRetrieveResponse,
452
+ TeamUpdateParams,
451
453
  Teams,
452
454
  TeamsPageCursorURL,
453
455
  } from './resources/teams';
@@ -1880,7 +1882,9 @@ export declare namespace RipplingSDK {
1880
1882
  type TeamRetrieveResponse as TeamRetrieveResponse,
1881
1883
  type TeamsPageCursorURL as TeamsPageCursorURL,
1882
1884
  type TeamListParams as TeamListParams,
1885
+ type TeamCreateParams as TeamCreateParams,
1883
1886
  type TeamRetrieveParams as TeamRetrieveParams,
1887
+ type TeamUpdateParams as TeamUpdateParams,
1884
1888
  };
1885
1889
 
1886
1890
  export {
@@ -0,0 +1,141 @@
1
+ import { getExistingManifestContext, type ExistingManifestContextOptions } from './existing-manifest-context';
2
+ import type { ManifestScope } from './manifest-builder';
3
+ import type { CustomSkill } from './custom-skill';
4
+ import { requireArrayComponentField, requireStringComponentField } from './_existing-component-fields';
5
+
6
+ export type AgentIdentityMode = 'runner' | 'user';
7
+
8
+ export interface AgentSourceFile {
9
+ path: string;
10
+ content: string;
11
+ kind: string;
12
+ }
13
+
14
+ /**
15
+ * Initialization properties for {@link Agent}.
16
+ */
17
+ export interface AgentProps {
18
+ /** Stable system name for this agent. */
19
+ apiName: string;
20
+ /** Display name shown in Rippling. */
21
+ name: string;
22
+ /** Human-readable description of the agent. */
23
+ description?: string;
24
+ /** Identity used when the agent runs. Defaults to `runner`. */
25
+ identityMode?: AgentIdentityMode;
26
+ /** Role used when `identityMode` is `user`. */
27
+ identityRoleId?: string;
28
+ /** Source files for the agent's latest revision. */
29
+ files: AgentSourceFile[];
30
+ /** Path of the source file that starts the agent. */
31
+ entrypoint: string;
32
+ /** Existing Custom Skills included in the agent's latest revision. */
33
+ skills?: CustomSkill[];
34
+ }
35
+
36
+ /**
37
+ * Defines an agent and its latest source revision in a single manifest component.
38
+ *
39
+ * Reinstalling a component with the same `apiName` updates the agent metadata and
40
+ * creates a new source revision when its source or skills change.
41
+ */
42
+ export class Agent {
43
+ static readonly componentType = 'AGENT' as const;
44
+
45
+ private readonly _apiName: string;
46
+ private _name: string;
47
+ private _description: string | undefined;
48
+ private _identityMode: AgentIdentityMode | undefined;
49
+ private _identityRoleId: string | undefined;
50
+ private _files: AgentSourceFile[];
51
+ private _entrypoint: string;
52
+ private _skills: CustomSkill[] | undefined;
53
+
54
+ constructor(scope: ManifestScope, props: AgentProps) {
55
+ this._apiName = props.apiName;
56
+ this._name = props.name;
57
+ this._description = props.description;
58
+ this._identityMode = props.identityMode;
59
+ this._identityRoleId = props.identityRoleId;
60
+ this._files = props.files;
61
+ this._entrypoint = props.entrypoint;
62
+ this._skills = props.skills == null ? undefined : [...props.skills];
63
+ scope._register(this);
64
+ }
65
+
66
+ /** Loads this agent from the active existing-manifest JSON context. */
67
+ static loadFromExisting(apiName: string, options: ExistingManifestContextOptions = {}): Agent {
68
+ return getExistingManifestContext(options).loadAgent(apiName);
69
+ }
70
+
71
+ /** @internal Hydrates an agent from existing manifest wire JSON. */
72
+ static _fromExistingComponent(
73
+ scope: ManifestScope,
74
+ component: Record<string, any>,
75
+ resolveSkill: (sourceSkillId: string) => CustomSkill,
76
+ ): Agent {
77
+ const props: AgentProps = {
78
+ apiName: requireStringComponentField(component, 'api_name', Agent.componentType),
79
+ name: requireStringComponentField(component, 'name', Agent.componentType),
80
+ files: component['files'] ?? [],
81
+ entrypoint: requireStringComponentField(component, 'entrypoint', Agent.componentType),
82
+ };
83
+ if (component['description'] !== undefined) props.description = component['description'];
84
+ if (component['identity_mode'] !== undefined) props.identityMode = component['identity_mode'];
85
+ if (component['identity_role_id'] !== undefined) props.identityRoleId = component['identity_role_id'];
86
+ if (component['skill_ids'] !== undefined) {
87
+ props.skills = requireArrayComponentField<string>(component, 'skill_ids', Agent.componentType).map(
88
+ resolveSkill,
89
+ );
90
+ }
91
+ return new Agent(scope, props);
92
+ }
93
+
94
+ getApiName(): string {
95
+ return this._apiName;
96
+ }
97
+
98
+ setName(name: string): this {
99
+ this._name = name;
100
+ return this;
101
+ }
102
+
103
+ setDescription(description: string): this {
104
+ this._description = description;
105
+ return this;
106
+ }
107
+
108
+ setIdentity(identityMode: AgentIdentityMode, identityRoleId?: string): this {
109
+ this._identityMode = identityMode;
110
+ this._identityRoleId = identityRoleId;
111
+ return this;
112
+ }
113
+
114
+ setSource(files: AgentSourceFile[], entrypoint: string): this {
115
+ this._files = files;
116
+ this._entrypoint = entrypoint;
117
+ return this;
118
+ }
119
+
120
+ setSkills(skills: CustomSkill[]): this {
121
+ this._skills = [...skills];
122
+ return this;
123
+ }
124
+
125
+ toDict(): Record<string, any> {
126
+ const component: Record<string, any> = {
127
+ type: Agent.componentType,
128
+ api_name: this._apiName,
129
+ name: this._name,
130
+ files: this._files,
131
+ entrypoint: this._entrypoint,
132
+ };
133
+ if (this._description !== undefined) component['description'] = this._description;
134
+ if (this._identityMode !== undefined) component['identity_mode'] = this._identityMode;
135
+ if (this._identityRoleId !== undefined) component['identity_role_id'] = this._identityRoleId;
136
+ if (this._skills !== undefined) {
137
+ component['skill_ids'] = this._skills.map((skill) => skill.getSourceSkillId());
138
+ }
139
+ return component;
140
+ }
141
+ }
@@ -86,7 +86,7 @@ type NonSensitiveCustomFieldPermissionClassification = Exclude<
86
86
  >;
87
87
 
88
88
  /** Permission properties required for every Employee custom field. */
89
- export type EmployeeCustomFieldPermissionProps = { applicableGroup: string } & (
89
+ export type EmployeeCustomFieldPermissionProps = { applicableGroupId: string } & (
90
90
  | {
91
91
  fieldReadAccess: 'ALL_ACCESS';
92
92
  fieldPermissionClassification: NonSensitiveCustomFieldPermissionClassification;
@@ -101,7 +101,7 @@ export type EmployeeCustomFieldPermissionProps = { applicableGroup: string } & (
101
101
  export interface NonEmployeeCustomFieldPermissionProps {
102
102
  fieldPermissionClassification?: CustomFieldPermissionClassification | null;
103
103
  fieldReadAccess?: CustomFieldReadAccess | null;
104
- applicableGroup?: string | null;
104
+ applicableGroupId?: string | null;
105
105
  }
106
106
 
107
107
  export type CustomFieldPermissionProps<ModelRqlName extends string = string> =
@@ -236,7 +236,7 @@ export class CustomField<const ModelRqlName extends string = string> {
236
236
  fieldPermissionClassification?: CustomFieldPermissionClassification | null;
237
237
  fieldReadAccess?: CustomFieldReadAccess | null;
238
238
  fieldWriteAccess?: CustomFieldWriteAccess | null;
239
- applicableGroup?: string | null;
239
+ applicableGroupId?: string | null;
240
240
  collectDuring?: CustomFieldCollectionTiming | null;
241
241
  rqlDefinitionFormula?: string | null;
242
242
  };
@@ -257,11 +257,11 @@ export class CustomField<const ModelRqlName extends string = string> {
257
257
  runtimeProps.fieldPermissionClassification == null ||
258
258
  runtimeProps.fieldReadAccess == null ||
259
259
  runtimeProps.fieldWriteAccess == null ||
260
- runtimeProps.applicableGroup == null
260
+ runtimeProps.applicableGroupId == null
261
261
  ) {
262
262
  throw new Error(
263
263
  `Employee custom field "${props.apiName}" requires fieldPermissionClassification, ` +
264
- `fieldReadAccess, fieldWriteAccess, and applicableGroup.`,
264
+ `fieldReadAccess, fieldWriteAccess, and applicableGroupId.`,
265
265
  );
266
266
  }
267
267
  if (
@@ -307,10 +307,10 @@ export class CustomField<const ModelRqlName extends string = string> {
307
307
  const dataType = requireObjectComponentField(component, 'data_type', CustomField.componentType);
308
308
  const defaultValue = component['default_value'] as Record<string, any> | null | undefined;
309
309
  const formula = component['rql_definition_formula'];
310
- const applicableGroup =
311
- component['applicable_group'] == null ?
310
+ const applicableGroupId =
311
+ component['applicable_group_id'] == null ?
312
312
  null
313
- : requireObjectComponentField(component, 'applicable_group', CustomField.componentType);
313
+ : requireStringComponentField(component, 'applicable_group_id', CustomField.componentType);
314
314
  const common = {
315
315
  fieldId: requireStringComponentField(component, 'obj_id', CustomField.componentType),
316
316
  name: requireStringComponentField(component, 'name', CustomField.componentType),
@@ -330,10 +330,7 @@ export class CustomField<const ModelRqlName extends string = string> {
330
330
  fieldReadAccess: (component['field_read_access'] as CustomFieldReadAccess | null | undefined) ?? null,
331
331
  fieldWriteAccess:
332
332
  (component['field_write_access'] as CustomFieldWriteAccess | null | undefined) ?? null,
333
- applicableGroup:
334
- applicableGroup == null ? null : (
335
- requireStringComponentField(applicableGroup, 'me_obj_id', CustomField.componentType)
336
- ),
333
+ applicableGroupId,
337
334
  description: (component['description'] as string | null | undefined) ?? null,
338
335
  displayOrder: (component['display_order'] as number | null | undefined) ?? null,
339
336
  };
@@ -403,7 +400,7 @@ export class CustomField<const ModelRqlName extends string = string> {
403
400
  field_read_access: this.props.fieldReadAccess ?? null,
404
401
  field_write_access: this.props.fieldWriteAccess ?? null,
405
402
  collect_during: this.props.collectDuring ?? null,
406
- applicable_group: this.props.applicableGroup ?? null,
403
+ applicable_group_id: this.props.applicableGroupId ?? null,
407
404
  description: this.props.description ?? null,
408
405
  required: this.props.required ?? null,
409
406
  tip: this.props.tip ?? null,
@@ -0,0 +1,205 @@
1
+ import { generateId } from './_helpers';
2
+ import { getExistingManifestContext, type ExistingManifestContextOptions } from './existing-manifest-context';
3
+ import type { ManifestComponentDeletion, ManifestScope } from './manifest-builder';
4
+ import { requireStringComponentField } from './_existing-component-fields';
5
+
6
+ export type CustomSkillStatus = 'active' | 'inactive';
7
+ export type CustomSkillSourceType = 'user' | 'company';
8
+
9
+ /**
10
+ * Initialization properties for {@link CustomSkill}.
11
+ */
12
+ export interface CustomSkillProps {
13
+ /**
14
+ * Source-side identifier for this Custom Skill.
15
+ *
16
+ * For a new skill, omit this field and the SDK generates a temporary handle
17
+ * that Composer maps to the skill's generated database UUID during deploy.
18
+ *
19
+ * For an existing skill, use the `source_skill_id` loaded from component
20
+ * search/extraction.
21
+ *
22
+ * Optional. Auto-generated when omitted. @default generateId('skill')
23
+ */
24
+ sourceSkillId?: string;
25
+ /**
26
+ * Display name shown in Rippling AI.
27
+ *
28
+ * Required.
29
+ */
30
+ name: string;
31
+ /**
32
+ * Description used to explain when the skill applies.
33
+ *
34
+ * Required. Use `null` to clear this field when updating an existing skill.
35
+ */
36
+ description: string | null;
37
+ /**
38
+ * Markdown instruction content for the skill.
39
+ *
40
+ * Required.
41
+ */
42
+ content: string;
43
+ /**
44
+ * Optional folder path for organizing skills. Use `null` to clear this field
45
+ * when updating an existing skill.
46
+ */
47
+ path?: string | null;
48
+ /**
49
+ * Whether the skill is active or inactive.
50
+ *
51
+ * Required.
52
+ */
53
+ status: CustomSkillStatus;
54
+ /**
55
+ * Skill visibility. `user` creates a personal skill; `company` creates a
56
+ * company skill.
57
+ *
58
+ * Optional create-time visibility. Do not set when updating an existing
59
+ * skill; use `CustomSkill.loadFromExisting(...)` so the extracted value can
60
+ * round-trip unchanged.
61
+ */
62
+ sourceType?: CustomSkillSourceType;
63
+ }
64
+
65
+ /**
66
+ * Defines a Rippling AI Custom Skill and registers it with the manifest.
67
+ */
68
+ export class CustomSkill {
69
+ static readonly componentType = 'CUSTOM_SKILL' as const;
70
+
71
+ static toDeletionIdentifier(sourceSkillId: string): ManifestComponentDeletion {
72
+ return {
73
+ type: CustomSkill.componentType,
74
+ source_skill_id: sourceSkillId,
75
+ };
76
+ }
77
+
78
+ private readonly _sourceSkillId: string;
79
+ private _name: string;
80
+ private _description: string | null | undefined;
81
+ private _content: string;
82
+ private _path: string | null | undefined;
83
+ private _status: CustomSkillStatus;
84
+ private _sourceType: CustomSkillSourceType | undefined;
85
+
86
+ /**
87
+ * @param scope - The manifest to register this skill with.
88
+ * @param props - Initialization properties.
89
+ */
90
+ constructor(scope: ManifestScope, props: CustomSkillProps) {
91
+ if (props.sourceSkillId != null && props.sourceType != null) {
92
+ throw new Error(
93
+ 'CustomSkill sourceType is create-time only. Omit sourceType when constructing an existing skill; ' +
94
+ 'use CustomSkill.loadFromExisting(...) to update extracted skills.',
95
+ );
96
+ }
97
+ this._sourceSkillId = props.sourceSkillId ?? generateId('skill');
98
+ this._name = props.name;
99
+ this._description = props.description;
100
+ this._content = props.content;
101
+ this._path = props.path;
102
+ this._status = props.status;
103
+ this._sourceType = props.sourceType;
104
+ scope._register(this);
105
+ }
106
+
107
+ /**
108
+ * Loads this skill from the active existing-manifest JSON context.
109
+ */
110
+ static loadFromExisting(sourceSkillId: string, options: ExistingManifestContextOptions = {}): CustomSkill {
111
+ return getExistingManifestContext(options).loadCustomSkill(sourceSkillId);
112
+ }
113
+
114
+ /** @internal Hydrates a custom skill from existing manifest wire JSON. */
115
+ static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>): CustomSkill {
116
+ const props: CustomSkillProps = {
117
+ sourceSkillId: requireStringComponentField(component, 'source_skill_id', CustomSkill.componentType),
118
+ name: requireStringComponentField(component, 'name', CustomSkill.componentType),
119
+ description:
120
+ component['description'] == null ?
121
+ null
122
+ : requireStringComponentField(component, 'description', CustomSkill.componentType),
123
+ content: requireStringComponentField(component, 'content', CustomSkill.componentType),
124
+ status: requireStringComponentField(
125
+ component,
126
+ 'status',
127
+ CustomSkill.componentType,
128
+ ) as CustomSkillStatus,
129
+ };
130
+ if (typeof component['path'] === 'string') props.path = component['path'];
131
+ if (typeof component['source_type'] === 'string') {
132
+ props.sourceType = component['source_type'] as CustomSkillSourceType;
133
+ }
134
+ const { sourceType, ...loadProps } = props;
135
+ const skill = new CustomSkill(scope, loadProps);
136
+ skill._sourceType = sourceType;
137
+ return skill;
138
+ }
139
+
140
+ /**
141
+ * Returns this skill's source-side manifest identifier. New skills use a
142
+ * generated temporary handle; extracted skills use their database UUID.
143
+ */
144
+ getSourceSkillId(): string {
145
+ return this._sourceSkillId;
146
+ }
147
+
148
+ /**
149
+ * Replaces the display name for this skill.
150
+ */
151
+ setName(name: string): this {
152
+ this._name = name;
153
+ return this;
154
+ }
155
+
156
+ /**
157
+ * Replaces the description for this skill. Pass `null` to clear it.
158
+ */
159
+ setDescription(description: string | null): this {
160
+ this._description = description;
161
+ return this;
162
+ }
163
+
164
+ /**
165
+ * Replaces the plaintext markdown instruction content for this skill.
166
+ */
167
+ setContent(content: string): this {
168
+ this._content = content;
169
+ return this;
170
+ }
171
+
172
+ /**
173
+ * Replaces the optional folder path for this skill. Pass `null` to clear it,
174
+ * or `undefined` to omit it from the serialized manifest.
175
+ */
176
+ setPath(path: string | null | undefined): this {
177
+ this._path = path;
178
+ return this;
179
+ }
180
+
181
+ /**
182
+ * Replaces whether this skill is active or inactive.
183
+ */
184
+ setStatus(status: CustomSkillStatus): this {
185
+ this._status = status;
186
+ return this;
187
+ }
188
+
189
+ /**
190
+ * Serializes this skill to the wire format consumed by the manifest install endpoint.
191
+ */
192
+ toDict(): Record<string, any> {
193
+ const component: Record<string, any> = {
194
+ type: CustomSkill.componentType,
195
+ source_skill_id: this._sourceSkillId,
196
+ name: this._name,
197
+ content: this._content,
198
+ status: this._status,
199
+ };
200
+ if (this._description !== undefined) component['description'] = this._description;
201
+ if (this._path !== undefined) component['path'] = this._path;
202
+ if (this._sourceType != null) component['source_type'] = this._sourceType;
203
+ return component;
204
+ }
205
+ }