@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.
- package/client.d.mts +2 -2
- package/client.d.mts.map +1 -1
- package/client.d.ts +2 -2
- package/client.d.ts.map +1 -1
- package/client.js.map +1 -1
- package/client.mjs.map +1 -1
- package/examples/manifest/custom-skill/custom-skill.ts +45 -0
- package/lib/manifest/agent.d.mts +60 -0
- package/lib/manifest/agent.d.mts.map +1 -0
- package/lib/manifest/agent.d.ts +60 -0
- package/lib/manifest/agent.d.ts.map +1 -0
- package/lib/manifest/agent.js +94 -0
- package/lib/manifest/agent.js.map +1 -0
- package/lib/manifest/agent.mjs +90 -0
- package/lib/manifest/agent.mjs.map +1 -0
- package/lib/manifest/custom-field.d.mts +2 -2
- package/lib/manifest/custom-field.d.mts.map +1 -1
- package/lib/manifest/custom-field.d.ts +2 -2
- package/lib/manifest/custom-field.d.ts.map +1 -1
- package/lib/manifest/custom-field.js +6 -6
- package/lib/manifest/custom-field.js.map +1 -1
- package/lib/manifest/custom-field.mjs +6 -6
- package/lib/manifest/custom-field.mjs.map +1 -1
- package/lib/manifest/custom-skill.d.mts +115 -0
- package/lib/manifest/custom-skill.d.mts.map +1 -0
- package/lib/manifest/custom-skill.d.ts +115 -0
- package/lib/manifest/custom-skill.d.ts.map +1 -0
- package/lib/manifest/custom-skill.js +127 -0
- package/lib/manifest/custom-skill.js.map +1 -0
- package/lib/manifest/custom-skill.mjs +123 -0
- package/lib/manifest/custom-skill.mjs.map +1 -0
- package/lib/manifest/existing-manifest-context.d.mts +7 -0
- package/lib/manifest/existing-manifest-context.d.mts.map +1 -1
- package/lib/manifest/existing-manifest-context.d.ts +7 -0
- package/lib/manifest/existing-manifest-context.d.ts.map +1 -1
- package/lib/manifest/existing-manifest-context.js +34 -0
- package/lib/manifest/existing-manifest-context.js.map +1 -1
- package/lib/manifest/existing-manifest-context.mjs +34 -0
- package/lib/manifest/existing-manifest-context.mjs.map +1 -1
- package/lib/manifest/index.d.mts +2 -0
- package/lib/manifest/index.d.mts.map +1 -1
- package/lib/manifest/index.d.ts +2 -0
- package/lib/manifest/index.d.ts.map +1 -1
- package/lib/manifest/index.js +5 -1
- package/lib/manifest/index.js.map +1 -1
- package/lib/manifest/index.mjs +2 -0
- package/lib/manifest/index.mjs.map +1 -1
- package/lib/manifest/manifest-builder.d.mts +1 -1
- package/lib/manifest/manifest-builder.d.mts.map +1 -1
- package/lib/manifest/manifest-builder.d.ts +1 -1
- package/lib/manifest/manifest-builder.d.ts.map +1 -1
- package/lib/manifest/manifest-builder.js.map +1 -1
- package/lib/manifest/manifest-builder.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/index.d.mts +1 -1
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +1 -1
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs.map +1 -1
- package/resources/leave-program-evaluations.d.mts +32 -2
- package/resources/leave-program-evaluations.d.mts.map +1 -1
- package/resources/leave-program-evaluations.d.ts +32 -2
- package/resources/leave-program-evaluations.d.ts.map +1 -1
- package/resources/teams.d.mts +33 -1
- package/resources/teams.d.mts.map +1 -1
- package/resources/teams.d.ts +33 -1
- package/resources/teams.d.ts.map +1 -1
- package/resources/teams.js +22 -0
- package/resources/teams.js.map +1 -1
- package/resources/teams.mjs +22 -0
- package/resources/teams.mjs.map +1 -1
- package/src/client.ts +4 -0
- package/src/lib/manifest/agent.ts +141 -0
- package/src/lib/manifest/custom-field.ts +10 -13
- package/src/lib/manifest/custom-skill.ts +205 -0
- package/src/lib/manifest/existing-manifest-context.ts +61 -0
- package/src/lib/manifest/index.ts +9 -0
- package/src/lib/manifest/manifest-builder.ts +2 -0
- package/src/resources/index.ts +2 -0
- package/src/resources/leave-program-evaluations.ts +38 -2
- package/src/resources/teams.ts +55 -0
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/resources/teams.d.ts
CHANGED
|
@@ -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
|
package/resources/teams.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/resources/teams.js
CHANGED
|
@@ -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
|
package/resources/teams.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../src/resources/teams.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAG/C,sDAAgE;
|
|
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"}
|
package/resources/teams.mjs
CHANGED
|
@@ -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
|
package/resources/teams.mjs.map
CHANGED
|
@@ -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;
|
|
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 = {
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
260
|
+
runtimeProps.applicableGroupId == null
|
|
261
261
|
) {
|
|
262
262
|
throw new Error(
|
|
263
263
|
`Employee custom field "${props.apiName}" requires fieldPermissionClassification, ` +
|
|
264
|
-
`fieldReadAccess, fieldWriteAccess, and
|
|
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
|
|
311
|
-
component['
|
|
310
|
+
const applicableGroupId =
|
|
311
|
+
component['applicable_group_id'] == null ?
|
|
312
312
|
null
|
|
313
|
-
:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
}
|