@taktoria/sdk 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/api/resources/okr/client/Client.d.ts +2 -0
  3. package/dist/cjs/api/resources/okr/client/Client.js +8 -3
  4. package/dist/cjs/api/resources/okr/client/requests/BrowseObjectivesRequest.d.ts +6 -1
  5. package/dist/cjs/api/resources/okr/client/requests/ListMyObjectivesRequest.d.ts +6 -1
  6. package/dist/cjs/api/resources/okr/client/requests/ListObjectivesRequest.d.ts +6 -1
  7. package/dist/cjs/api/resources/okr/types/CreateKeyResultRequest.d.ts +6 -1
  8. package/dist/cjs/api/resources/okr/types/CreateObjectiveRequest.d.ts +9 -2
  9. package/dist/cjs/api/resources/okr/types/KeyResult.d.ts +7 -0
  10. package/dist/cjs/api/resources/okr/types/MetricSourceKind.d.ts +5 -0
  11. package/dist/cjs/api/resources/okr/types/MetricSourceKind.js +5 -0
  12. package/dist/cjs/api/resources/okr/types/Objective.d.ts +5 -0
  13. package/dist/cjs/api/resources/okr/types/UpdateKeyResultRequest.d.ts +6 -1
  14. package/dist/cjs/api/resources/okr/types/UpdateObjectiveRequest.d.ts +5 -1
  15. package/dist/cjs/serialization/resources/okr/types/CreateKeyResultRequest.d.ts +2 -0
  16. package/dist/cjs/serialization/resources/okr/types/CreateKeyResultRequest.js +2 -0
  17. package/dist/cjs/serialization/resources/okr/types/CreateObjectiveRequest.d.ts +1 -0
  18. package/dist/cjs/serialization/resources/okr/types/CreateObjectiveRequest.js +1 -0
  19. package/dist/cjs/serialization/resources/okr/types/KeyResult.d.ts +2 -0
  20. package/dist/cjs/serialization/resources/okr/types/KeyResult.js +2 -0
  21. package/dist/cjs/serialization/resources/okr/types/MetricSourceKind.d.ts +1 -1
  22. package/dist/cjs/serialization/resources/okr/types/MetricSourceKind.js +1 -1
  23. package/dist/cjs/serialization/resources/okr/types/Objective.d.ts +1 -0
  24. package/dist/cjs/serialization/resources/okr/types/Objective.js +1 -0
  25. package/dist/cjs/serialization/resources/okr/types/UpdateKeyResultRequest.d.ts +2 -0
  26. package/dist/cjs/serialization/resources/okr/types/UpdateKeyResultRequest.js +2 -0
  27. package/dist/cjs/serialization/resources/okr/types/UpdateObjectiveRequest.d.ts +1 -0
  28. package/dist/cjs/serialization/resources/okr/types/UpdateObjectiveRequest.js +1 -0
  29. package/dist/cjs/version.d.ts +1 -1
  30. package/dist/cjs/version.js +1 -1
  31. package/dist/esm/BaseClient.mjs +2 -2
  32. package/dist/esm/api/resources/okr/client/Client.d.mts +2 -0
  33. package/dist/esm/api/resources/okr/client/Client.mjs +8 -3
  34. package/dist/esm/api/resources/okr/client/requests/BrowseObjectivesRequest.d.mts +6 -1
  35. package/dist/esm/api/resources/okr/client/requests/ListMyObjectivesRequest.d.mts +6 -1
  36. package/dist/esm/api/resources/okr/client/requests/ListObjectivesRequest.d.mts +6 -1
  37. package/dist/esm/api/resources/okr/types/CreateKeyResultRequest.d.mts +6 -1
  38. package/dist/esm/api/resources/okr/types/CreateObjectiveRequest.d.mts +9 -2
  39. package/dist/esm/api/resources/okr/types/KeyResult.d.mts +7 -0
  40. package/dist/esm/api/resources/okr/types/MetricSourceKind.d.mts +5 -0
  41. package/dist/esm/api/resources/okr/types/MetricSourceKind.mjs +5 -0
  42. package/dist/esm/api/resources/okr/types/Objective.d.mts +5 -0
  43. package/dist/esm/api/resources/okr/types/UpdateKeyResultRequest.d.mts +6 -1
  44. package/dist/esm/api/resources/okr/types/UpdateObjectiveRequest.d.mts +5 -1
  45. package/dist/esm/serialization/resources/okr/types/CreateKeyResultRequest.d.mts +2 -0
  46. package/dist/esm/serialization/resources/okr/types/CreateKeyResultRequest.mjs +2 -0
  47. package/dist/esm/serialization/resources/okr/types/CreateObjectiveRequest.d.mts +1 -0
  48. package/dist/esm/serialization/resources/okr/types/CreateObjectiveRequest.mjs +1 -0
  49. package/dist/esm/serialization/resources/okr/types/KeyResult.d.mts +2 -0
  50. package/dist/esm/serialization/resources/okr/types/KeyResult.mjs +2 -0
  51. package/dist/esm/serialization/resources/okr/types/MetricSourceKind.d.mts +1 -1
  52. package/dist/esm/serialization/resources/okr/types/MetricSourceKind.mjs +1 -1
  53. package/dist/esm/serialization/resources/okr/types/Objective.d.mts +1 -0
  54. package/dist/esm/serialization/resources/okr/types/Objective.mjs +1 -0
  55. package/dist/esm/serialization/resources/okr/types/UpdateKeyResultRequest.d.mts +2 -0
  56. package/dist/esm/serialization/resources/okr/types/UpdateKeyResultRequest.mjs +2 -0
  57. package/dist/esm/serialization/resources/okr/types/UpdateObjectiveRequest.d.mts +1 -0
  58. package/dist/esm/serialization/resources/okr/types/UpdateObjectiveRequest.mjs +1 -0
  59. package/dist/esm/version.d.mts +1 -1
  60. package/dist/esm/version.mjs +1 -1
  61. package/package.json +1 -1
  62. package/reference.md +2 -0
@@ -43,8 +43,8 @@ function normalizeClientOptions(options) {
43
43
  const headers = (0, headers_js_1.mergeHeaders)({
44
44
  "X-Fern-Language": "JavaScript",
45
45
  "X-Fern-SDK-Name": "@taktoria/sdk",
46
- "X-Fern-SDK-Version": "0.1.5",
47
- "User-Agent": "@taktoria/sdk/0.1.5",
46
+ "X-Fern-SDK-Version": "0.2.0",
47
+ "User-Agent": "@taktoria/sdk/0.2.0",
48
48
  "X-Fern-Runtime": core.RUNTIME.type,
49
49
  "X-Fern-Runtime-Version": core.RUNTIME.version,
50
50
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -55,10 +55,12 @@ export declare class OkrClient {
55
55
  * @example
56
56
  * await client.okr.createObjective({
57
57
  * title: "Make onboarding effortless",
58
+ * tags: ["onboarding"],
58
59
  * year: 2026,
59
60
  * quarter: 3,
60
61
  * keyResults: [{
61
62
  * title: "Median time to first launch under 10 minutes",
63
+ * tags: ["activation"],
62
64
  * priority: "P1"
63
65
  * }, {
64
66
  * title: "90% of new workspaces invite a second person",
@@ -83,7 +83,7 @@ class OkrClient {
83
83
  __listObjectives() {
84
84
  return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
85
85
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
86
- const { year, quarter, teamId, ownerUserId, visibility, q, draft, archived, limit, cursor } = request;
86
+ const { year, quarter, teamId, ownerUserId, visibility, tag, q, draft, archived, limit, cursor } = request;
87
87
  const _queryParams = {
88
88
  year,
89
89
  quarter,
@@ -95,6 +95,7 @@ class OkrClient {
95
95
  omitUndefined: true,
96
96
  })
97
97
  : undefined,
98
+ tag,
98
99
  q,
99
100
  draft,
100
101
  archived,
@@ -190,10 +191,12 @@ class OkrClient {
190
191
  * @example
191
192
  * await client.okr.createObjective({
192
193
  * title: "Make onboarding effortless",
194
+ * tags: ["onboarding"],
193
195
  * year: 2026,
194
196
  * quarter: 3,
195
197
  * keyResults: [{
196
198
  * title: "Median time to first launch under 10 minutes",
199
+ * tags: ["activation"],
197
200
  * priority: "P1"
198
201
  * }, {
199
202
  * title: "90% of new workspaces invite a second person",
@@ -2135,7 +2138,7 @@ class OkrClient {
2135
2138
  __listMyObjectives() {
2136
2139
  return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
2137
2140
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2138
- const { year, quarter, period, teamId, priority, includeTeams, q, sort, limit, cursor } = request;
2141
+ const { year, quarter, period, teamId, priority, includeTeams, tag, q, sort, limit, cursor } = request;
2139
2142
  const _queryParams = {
2140
2143
  year,
2141
2144
  quarter,
@@ -2153,6 +2156,7 @@ class OkrClient {
2153
2156
  })
2154
2157
  : undefined,
2155
2158
  includeTeams,
2159
+ tag,
2156
2160
  q,
2157
2161
  sort,
2158
2162
  limit,
@@ -2259,7 +2263,7 @@ class OkrClient {
2259
2263
  __browseObjectives() {
2260
2264
  return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
2261
2265
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2262
- const { year, quarter, period, allPeriods, teamId, priority, q, sort, limit, cursor } = request;
2266
+ const { year, quarter, period, allPeriods, teamId, priority, tag, q, sort, limit, cursor } = request;
2263
2267
  const _queryParams = {
2264
2268
  year,
2265
2269
  quarter,
@@ -2277,6 +2281,7 @@ class OkrClient {
2277
2281
  omitUndefined: true,
2278
2282
  })
2279
2283
  : undefined,
2284
+ tag,
2280
2285
  q,
2281
2286
  sort,
2282
2287
  limit,
@@ -15,7 +15,12 @@ export interface BrowseObjectivesRequest {
15
15
  teamId?: string | string[];
16
16
  /** Only objectives holding a key result of this priority. */
17
17
  priority?: Taktoria.OkrPriority;
18
- /** Words in titles, descriptions, key results, owners and teams. See Searching. */
18
+ /**
19
+ * Only objectives carrying this tag, or holding a key result that
20
+ * does. One word, matched whole; case and a leading `#` are ignored.
21
+ */
22
+ tag?: string;
23
+ /** Words in titles, descriptions, tags, key results, owners and teams. See Searching. */
19
24
  q?: string;
20
25
  /** `order` (the workspace's own, the default), `high` or `low` by score, unscored last. */
21
26
  sort?: string;
@@ -18,7 +18,12 @@ export interface ListMyObjectivesRequest {
18
18
  priority?: Taktoria.OkrPriority;
19
19
  /** `false` for what is theirs in person only, not their teams'. */
20
20
  includeTeams?: boolean;
21
- /** Words in titles, descriptions, key results, owners and teams. See Searching. */
21
+ /**
22
+ * Only objectives carrying this tag, or holding a key result that
23
+ * does. One word, matched whole; case and a leading `#` are ignored.
24
+ */
25
+ tag?: string;
26
+ /** Words in titles, descriptions, tags, key results, owners and teams. See Searching. */
22
27
  q?: string;
23
28
  /** `order` (the workspace's own, the default), `high` or `low` by score, unscored last. */
24
29
  sort?: string;
@@ -16,7 +16,12 @@ export interface ListObjectivesRequest {
16
16
  teamId?: string;
17
17
  ownerUserId?: string;
18
18
  visibility?: Taktoria.OkrVisibility;
19
- /** Search objectives by their title, description, key results' titles, owner's name and team's name, among those the caller may see (a private objective only by those allowed to see it). Every word must appear in one of those fields; case and accents are ignored; at most 100 characters and 8 words. See Searching under Errors and pagination. */
19
+ /**
20
+ * Only objectives carrying this tag, or holding a key result that
21
+ * does. One word, matched whole; case and a leading `#` are ignored.
22
+ */
23
+ tag?: string;
24
+ /** Search objectives by their title, description, tags, key results' titles, descriptions and tags, owner's name and team's name, among those the caller may see (a private objective only by those allowed to see it). Every word must appear in one of those fields; case and accents are ignored; at most 100 characters and 8 words. See Searching under Errors and pagination. */
20
25
  q?: string;
21
26
  /** `true` lists only drafts and `false` only what is published; left out, both. */
22
27
  draft?: boolean;
@@ -3,10 +3,15 @@ import type * as Taktoria from "../../../index.js";
3
3
  * Owners must be members and teams of the workspace; an id from anywhere
4
4
  * else is refused with a 422, and `details.unknown` names it: nobody is
5
5
  * dropped. The title is trimmed and never blank (at most 500
6
- * characters).
6
+ * characters). A description (at most 5000) and tags (at most 10, one
7
+ * word each, stored lowercase) are optional, as on an objective.
7
8
  */
8
9
  export interface CreateKeyResultRequest {
9
10
  title: string;
11
+ /** Optional; trimmed, blank meaning none, at most 5000 characters. */
12
+ description?: string;
13
+ /** Optional, at most 10: one word each, stored lowercase without a leading `#`. */
14
+ tags?: string[];
10
15
  /**
11
16
  * A first score, 0.0 to 1.0. It is recorded as a check-in by the
12
17
  * caller (a key's maker, for a key), as setting one later is.
@@ -3,8 +3,12 @@ import type * as Taktoria from "../../../index.js";
3
3
  * The same rules as the dashboard's forms and the MCP server's tools:
4
4
  *
5
5
  * - `title` is trimmed, and a 422 if nothing is left (at most 500
6
- * characters); `description` is trimmed, blank meaning none (at most
7
- * 5000).
6
+ * characters); `description` is optional, trimmed, blank meaning
7
+ * none (at most 5000).
8
+ * - `tags` are optional: at most 10, each one word of letters, digits,
9
+ * `-` or `_`, at most 32 characters. They are stored lowercase, without
10
+ * a leading `#`, each once; anything else is a 422 naming the tag in
11
+ * `details.tag`.
8
12
  * - `year` is a fiscal year from 2000 to 2100, and `weight` from 0.01 to
9
13
  * 100: there is no weight of 0, which the rollup never treated as
10
14
  * "not counted".
@@ -26,7 +30,10 @@ import type * as Taktoria from "../../../index.js";
26
30
  export interface CreateObjectiveRequest {
27
31
  /** Trimmed; never blank, at most 500 characters. */
28
32
  title: string;
33
+ /** Optional; trimmed, blank meaning none, at most 5000 characters. */
29
34
  description?: string;
35
+ /** Optional, at most 10: one word each, stored lowercase without a leading `#`. */
36
+ tags?: string[];
30
37
  period?: Taktoria.OkrPeriod;
31
38
  /** The fiscal year, 2000 to 2100. */
32
39
  year: number;
@@ -8,6 +8,13 @@ export interface KeyResult {
8
8
  id: string;
9
9
  objectiveId: string;
10
10
  title: string;
11
+ /** What it means and how it is measured, if anybody said. Absent when none. */
12
+ description?: string;
13
+ /**
14
+ * Its tags, A to Z: free text, one lowercase word each (letters,
15
+ * digits, `-` and `_`), at most 10. Filter by one with `tag`.
16
+ */
17
+ tags: string[];
11
18
  /**
12
19
  * Google-style grade from 0.0 to 1.0, or absent until it has been
13
20
  * scored. 0.7 and up is delivered for an ambitious goal, 0.4 to 0.7
@@ -6,5 +6,10 @@ export declare const MetricSourceKind: {
6
6
  /**
7
7
  * OKR Hub fetches it from an https address on a schedule. */
8
8
  readonly Pull: "PULL";
9
+ /**
10
+ * OKR Hub reads a project's progress, as a percentage from 0 to 100,
11
+ * on a schedule from a ticketing system the workspace has connected,
12
+ * such as a Linear project. */
13
+ readonly Ticketing: "TICKETING";
9
14
  };
10
15
  export type MetricSourceKind = (typeof MetricSourceKind)[keyof typeof MetricSourceKind];
@@ -10,4 +10,9 @@ exports.MetricSourceKind = {
10
10
  /**
11
11
  * OKR Hub fetches it from an https address on a schedule. */
12
12
  Pull: "PULL",
13
+ /**
14
+ * OKR Hub reads a project's progress, as a percentage from 0 to 100,
15
+ * on a schedule from a ticketing system the workspace has connected,
16
+ * such as a Linear project. */
17
+ Ticketing: "TICKETING",
13
18
  };
@@ -7,6 +7,11 @@ export interface Objective {
7
7
  organizationId: string;
8
8
  title: string;
9
9
  description?: string;
10
+ /**
11
+ * Its tags, A to Z: free text, one lowercase word each (letters,
12
+ * digits, `-` and `_`), at most 10. Filter by one with `tag`.
13
+ */
14
+ tags: string[];
10
15
  period: Taktoria.OkrPeriod;
11
16
  /** The fiscal year, 2000 to 2100, named by the year its Q1 falls in. */
12
17
  year: number;
@@ -5,10 +5,15 @@ import type * as Taktoria from "../../../index.js";
5
5
  * Anybody new on it must be a member or team of this workspace (a 422
6
6
  * naming them in `details.unknown`); an owner already on it who has
7
7
  * since left may stay. The title is trimmed and never blank; the weight
8
- * is 0.01 to 100.
8
+ * is 0.01 to 100. `tags` sent replace the ones it had, so `[]` removes
9
+ * them all.
9
10
  */
10
11
  export interface UpdateKeyResultRequest {
11
12
  title?: string;
13
+ /** Blank or `null` removes it. */
14
+ description?: string;
15
+ /** Replaces its tags; `[]` removes them all. */
16
+ tags?: string[];
12
17
  /**
13
18
  * A new score, 0.0 to 1.0, is recorded as a check-in with no note,
14
19
  * by the caller (a key's maker, for a key), and the activity feed
@@ -7,11 +7,15 @@ import type * as Taktoria from "../../../index.js";
7
7
  * as on create; the owner it already has may stay, even if they have
8
8
  * since left. The fields sent meet the same rules as on create: a title
9
9
  * trimmed and never blank, a year from 2000 to 2100, a weight from 0.01
10
- * to 100.
10
+ * to 100, tags one word each. `tags` sent replace the ones it had, so
11
+ * `[]` removes them all; left out, they stay.
11
12
  */
12
13
  export interface UpdateObjectiveRequest {
13
14
  title?: string;
15
+ /** Blank or `null` removes it. */
14
16
  description?: string;
17
+ /** Replaces its tags; `[]` removes them all. */
18
+ tags?: string[];
15
19
  period?: Taktoria.OkrPeriod;
16
20
  year?: number;
17
21
  quarter?: number;
@@ -6,6 +6,8 @@ export declare const CreateKeyResultRequest: core.serialization.ObjectSchema<ser
6
6
  export declare namespace CreateKeyResultRequest {
7
7
  interface Raw {
8
8
  title: string;
9
+ description?: string | null;
10
+ tags?: string[] | null;
9
11
  score?: number | null;
10
12
  weight?: number | null;
11
13
  priority?: OkrPriority.Raw | null;
@@ -39,6 +39,8 @@ const core = __importStar(require("../../../../core/index.js"));
39
39
  const OkrPriority_js_1 = require("./OkrPriority.js");
40
40
  exports.CreateKeyResultRequest = core.serialization.object({
41
41
  title: core.serialization.string(),
42
+ description: core.serialization.string().optional(),
43
+ tags: core.serialization.list(core.serialization.string()).optional(),
42
44
  score: core.serialization.number().optional(),
43
45
  weight: core.serialization.number().optional(),
44
46
  priority: OkrPriority_js_1.OkrPriority.optional(),
@@ -9,6 +9,7 @@ export declare namespace CreateObjectiveRequest {
9
9
  interface Raw {
10
10
  title: string;
11
11
  description?: string | null;
12
+ tags?: string[] | null;
12
13
  period?: OkrPeriod.Raw | null;
13
14
  year: number;
14
15
  quarter?: number | null;
@@ -42,6 +42,7 @@ const OkrVisibility_js_1 = require("./OkrVisibility.js");
42
42
  exports.CreateObjectiveRequest = core.serialization.object({
43
43
  title: core.serialization.string(),
44
44
  description: core.serialization.string().optional(),
45
+ tags: core.serialization.list(core.serialization.string()).optional(),
45
46
  period: OkrPeriod_js_1.OkrPeriod.optional(),
46
47
  year: core.serialization.number(),
47
48
  quarter: core.serialization.number().optional(),
@@ -9,6 +9,8 @@ export declare namespace KeyResult {
9
9
  id: string;
10
10
  objectiveId: string;
11
11
  title: string;
12
+ description?: string | null;
13
+ tags: string[];
12
14
  score?: number | null;
13
15
  weight: number;
14
16
  priority: OkrPriority.Raw;
@@ -42,6 +42,8 @@ exports.KeyResult = core.serialization.object({
42
42
  id: core.serialization.string(),
43
43
  objectiveId: core.serialization.string(),
44
44
  title: core.serialization.string(),
45
+ description: core.serialization.string().optional(),
46
+ tags: core.serialization.list(core.serialization.string()),
45
47
  score: core.serialization.number().optional(),
46
48
  weight: core.serialization.number(),
47
49
  priority: OkrPriority_js_1.OkrPriority,
@@ -3,5 +3,5 @@ import * as core from "../../../../core/index.js";
3
3
  import type * as serializers from "../../../index.js";
4
4
  export declare const MetricSourceKind: core.serialization.Schema<serializers.MetricSourceKind.Raw, Taktoria.MetricSourceKind>;
5
5
  export declare namespace MetricSourceKind {
6
- type Raw = "WEBHOOK" | "PULL";
6
+ type Raw = "WEBHOOK" | "PULL" | "TICKETING";
7
7
  }
@@ -36,4 +36,4 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.MetricSourceKind = void 0;
38
38
  const core = __importStar(require("../../../../core/index.js"));
39
- exports.MetricSourceKind = core.serialization.enum_(["WEBHOOK", "PULL"]);
39
+ exports.MetricSourceKind = core.serialization.enum_(["WEBHOOK", "PULL", "TICKETING"]);
@@ -13,6 +13,7 @@ export declare namespace Objective {
13
13
  organizationId: string;
14
14
  title: string;
15
15
  description?: string | null;
16
+ tags: string[];
16
17
  period: OkrPeriod.Raw;
17
18
  year: number;
18
19
  quarter?: number | null;
@@ -46,6 +46,7 @@ exports.Objective = core.serialization.object({
46
46
  organizationId: core.serialization.string(),
47
47
  title: core.serialization.string(),
48
48
  description: core.serialization.string().optional(),
49
+ tags: core.serialization.list(core.serialization.string()),
49
50
  period: OkrPeriod_js_1.OkrPeriod,
50
51
  year: core.serialization.number(),
51
52
  quarter: core.serialization.number().optional(),
@@ -6,6 +6,8 @@ export declare const UpdateKeyResultRequest: core.serialization.ObjectSchema<ser
6
6
  export declare namespace UpdateKeyResultRequest {
7
7
  interface Raw {
8
8
  title?: string | null;
9
+ description?: string | null;
10
+ tags?: string[] | null;
9
11
  score?: number | null;
10
12
  weight?: number | null;
11
13
  priority?: OkrPriority.Raw | null;
@@ -39,6 +39,8 @@ const core = __importStar(require("../../../../core/index.js"));
39
39
  const OkrPriority_js_1 = require("./OkrPriority.js");
40
40
  exports.UpdateKeyResultRequest = core.serialization.object({
41
41
  title: core.serialization.string().optional(),
42
+ description: core.serialization.string().optional(),
43
+ tags: core.serialization.list(core.serialization.string()).optional(),
42
44
  score: core.serialization.number().optional(),
43
45
  weight: core.serialization.number().optional(),
44
46
  priority: OkrPriority_js_1.OkrPriority.optional(),
@@ -8,6 +8,7 @@ export declare namespace UpdateObjectiveRequest {
8
8
  interface Raw {
9
9
  title?: string | null;
10
10
  description?: string | null;
11
+ tags?: string[] | null;
11
12
  period?: OkrPeriod.Raw | null;
12
13
  year?: number | null;
13
14
  quarter?: number | null;
@@ -41,6 +41,7 @@ const OkrVisibility_js_1 = require("./OkrVisibility.js");
41
41
  exports.UpdateObjectiveRequest = core.serialization.object({
42
42
  title: core.serialization.string().optional(),
43
43
  description: core.serialization.string().optional(),
44
+ tags: core.serialization.list(core.serialization.string()).optional(),
44
45
  period: OkrPeriod_js_1.OkrPeriod.optional(),
45
46
  year: core.serialization.number().optional(),
46
47
  quarter: core.serialization.number().optional(),
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.1.5";
1
+ export declare const SDK_VERSION = "0.2.0";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.1.5";
4
+ exports.SDK_VERSION = "0.2.0";
@@ -6,8 +6,8 @@ export function normalizeClientOptions(options) {
6
6
  const headers = mergeHeaders({
7
7
  "X-Fern-Language": "JavaScript",
8
8
  "X-Fern-SDK-Name": "@taktoria/sdk",
9
- "X-Fern-SDK-Version": "0.1.5",
10
- "User-Agent": "@taktoria/sdk/0.1.5",
9
+ "X-Fern-SDK-Version": "0.2.0",
10
+ "User-Agent": "@taktoria/sdk/0.2.0",
11
11
  "X-Fern-Runtime": core.RUNTIME.type,
12
12
  "X-Fern-Runtime-Version": core.RUNTIME.version,
13
13
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -55,10 +55,12 @@ export declare class OkrClient {
55
55
  * @example
56
56
  * await client.okr.createObjective({
57
57
  * title: "Make onboarding effortless",
58
+ * tags: ["onboarding"],
58
59
  * year: 2026,
59
60
  * quarter: 3,
60
61
  * keyResults: [{
61
62
  * title: "Median time to first launch under 10 minutes",
63
+ * tags: ["activation"],
62
64
  * priority: "P1"
63
65
  * }, {
64
66
  * title: "90% of new workspaces invite a second person",
@@ -47,7 +47,7 @@ export class OkrClient {
47
47
  __listObjectives() {
48
48
  return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
49
49
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
50
- const { year, quarter, teamId, ownerUserId, visibility, q, draft, archived, limit, cursor } = request;
50
+ const { year, quarter, teamId, ownerUserId, visibility, tag, q, draft, archived, limit, cursor } = request;
51
51
  const _queryParams = {
52
52
  year,
53
53
  quarter,
@@ -59,6 +59,7 @@ export class OkrClient {
59
59
  omitUndefined: true,
60
60
  })
61
61
  : undefined,
62
+ tag,
62
63
  q,
63
64
  draft,
64
65
  archived,
@@ -154,10 +155,12 @@ export class OkrClient {
154
155
  * @example
155
156
  * await client.okr.createObjective({
156
157
  * title: "Make onboarding effortless",
158
+ * tags: ["onboarding"],
157
159
  * year: 2026,
158
160
  * quarter: 3,
159
161
  * keyResults: [{
160
162
  * title: "Median time to first launch under 10 minutes",
163
+ * tags: ["activation"],
161
164
  * priority: "P1"
162
165
  * }, {
163
166
  * title: "90% of new workspaces invite a second person",
@@ -2099,7 +2102,7 @@ export class OkrClient {
2099
2102
  __listMyObjectives() {
2100
2103
  return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
2101
2104
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2102
- const { year, quarter, period, teamId, priority, includeTeams, q, sort, limit, cursor } = request;
2105
+ const { year, quarter, period, teamId, priority, includeTeams, tag, q, sort, limit, cursor } = request;
2103
2106
  const _queryParams = {
2104
2107
  year,
2105
2108
  quarter,
@@ -2117,6 +2120,7 @@ export class OkrClient {
2117
2120
  })
2118
2121
  : undefined,
2119
2122
  includeTeams,
2123
+ tag,
2120
2124
  q,
2121
2125
  sort,
2122
2126
  limit,
@@ -2223,7 +2227,7 @@ export class OkrClient {
2223
2227
  __browseObjectives() {
2224
2228
  return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
2225
2229
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2226
- const { year, quarter, period, allPeriods, teamId, priority, q, sort, limit, cursor } = request;
2230
+ const { year, quarter, period, allPeriods, teamId, priority, tag, q, sort, limit, cursor } = request;
2227
2231
  const _queryParams = {
2228
2232
  year,
2229
2233
  quarter,
@@ -2241,6 +2245,7 @@ export class OkrClient {
2241
2245
  omitUndefined: true,
2242
2246
  })
2243
2247
  : undefined,
2248
+ tag,
2244
2249
  q,
2245
2250
  sort,
2246
2251
  limit,
@@ -15,7 +15,12 @@ export interface BrowseObjectivesRequest {
15
15
  teamId?: string | string[];
16
16
  /** Only objectives holding a key result of this priority. */
17
17
  priority?: Taktoria.OkrPriority;
18
- /** Words in titles, descriptions, key results, owners and teams. See Searching. */
18
+ /**
19
+ * Only objectives carrying this tag, or holding a key result that
20
+ * does. One word, matched whole; case and a leading `#` are ignored.
21
+ */
22
+ tag?: string;
23
+ /** Words in titles, descriptions, tags, key results, owners and teams. See Searching. */
19
24
  q?: string;
20
25
  /** `order` (the workspace's own, the default), `high` or `low` by score, unscored last. */
21
26
  sort?: string;
@@ -18,7 +18,12 @@ export interface ListMyObjectivesRequest {
18
18
  priority?: Taktoria.OkrPriority;
19
19
  /** `false` for what is theirs in person only, not their teams'. */
20
20
  includeTeams?: boolean;
21
- /** Words in titles, descriptions, key results, owners and teams. See Searching. */
21
+ /**
22
+ * Only objectives carrying this tag, or holding a key result that
23
+ * does. One word, matched whole; case and a leading `#` are ignored.
24
+ */
25
+ tag?: string;
26
+ /** Words in titles, descriptions, tags, key results, owners and teams. See Searching. */
22
27
  q?: string;
23
28
  /** `order` (the workspace's own, the default), `high` or `low` by score, unscored last. */
24
29
  sort?: string;
@@ -16,7 +16,12 @@ export interface ListObjectivesRequest {
16
16
  teamId?: string;
17
17
  ownerUserId?: string;
18
18
  visibility?: Taktoria.OkrVisibility;
19
- /** Search objectives by their title, description, key results' titles, owner's name and team's name, among those the caller may see (a private objective only by those allowed to see it). Every word must appear in one of those fields; case and accents are ignored; at most 100 characters and 8 words. See Searching under Errors and pagination. */
19
+ /**
20
+ * Only objectives carrying this tag, or holding a key result that
21
+ * does. One word, matched whole; case and a leading `#` are ignored.
22
+ */
23
+ tag?: string;
24
+ /** Search objectives by their title, description, tags, key results' titles, descriptions and tags, owner's name and team's name, among those the caller may see (a private objective only by those allowed to see it). Every word must appear in one of those fields; case and accents are ignored; at most 100 characters and 8 words. See Searching under Errors and pagination. */
20
25
  q?: string;
21
26
  /** `true` lists only drafts and `false` only what is published; left out, both. */
22
27
  draft?: boolean;
@@ -3,10 +3,15 @@ import type * as Taktoria from "../../../index.mjs";
3
3
  * Owners must be members and teams of the workspace; an id from anywhere
4
4
  * else is refused with a 422, and `details.unknown` names it: nobody is
5
5
  * dropped. The title is trimmed and never blank (at most 500
6
- * characters).
6
+ * characters). A description (at most 5000) and tags (at most 10, one
7
+ * word each, stored lowercase) are optional, as on an objective.
7
8
  */
8
9
  export interface CreateKeyResultRequest {
9
10
  title: string;
11
+ /** Optional; trimmed, blank meaning none, at most 5000 characters. */
12
+ description?: string;
13
+ /** Optional, at most 10: one word each, stored lowercase without a leading `#`. */
14
+ tags?: string[];
10
15
  /**
11
16
  * A first score, 0.0 to 1.0. It is recorded as a check-in by the
12
17
  * caller (a key's maker, for a key), as setting one later is.
@@ -3,8 +3,12 @@ import type * as Taktoria from "../../../index.mjs";
3
3
  * The same rules as the dashboard's forms and the MCP server's tools:
4
4
  *
5
5
  * - `title` is trimmed, and a 422 if nothing is left (at most 500
6
- * characters); `description` is trimmed, blank meaning none (at most
7
- * 5000).
6
+ * characters); `description` is optional, trimmed, blank meaning
7
+ * none (at most 5000).
8
+ * - `tags` are optional: at most 10, each one word of letters, digits,
9
+ * `-` or `_`, at most 32 characters. They are stored lowercase, without
10
+ * a leading `#`, each once; anything else is a 422 naming the tag in
11
+ * `details.tag`.
8
12
  * - `year` is a fiscal year from 2000 to 2100, and `weight` from 0.01 to
9
13
  * 100: there is no weight of 0, which the rollup never treated as
10
14
  * "not counted".
@@ -26,7 +30,10 @@ import type * as Taktoria from "../../../index.mjs";
26
30
  export interface CreateObjectiveRequest {
27
31
  /** Trimmed; never blank, at most 500 characters. */
28
32
  title: string;
33
+ /** Optional; trimmed, blank meaning none, at most 5000 characters. */
29
34
  description?: string;
35
+ /** Optional, at most 10: one word each, stored lowercase without a leading `#`. */
36
+ tags?: string[];
30
37
  period?: Taktoria.OkrPeriod;
31
38
  /** The fiscal year, 2000 to 2100. */
32
39
  year: number;
@@ -8,6 +8,13 @@ export interface KeyResult {
8
8
  id: string;
9
9
  objectiveId: string;
10
10
  title: string;
11
+ /** What it means and how it is measured, if anybody said. Absent when none. */
12
+ description?: string;
13
+ /**
14
+ * Its tags, A to Z: free text, one lowercase word each (letters,
15
+ * digits, `-` and `_`), at most 10. Filter by one with `tag`.
16
+ */
17
+ tags: string[];
11
18
  /**
12
19
  * Google-style grade from 0.0 to 1.0, or absent until it has been
13
20
  * scored. 0.7 and up is delivered for an ambitious goal, 0.4 to 0.7
@@ -6,5 +6,10 @@ export declare const MetricSourceKind: {
6
6
  /**
7
7
  * OKR Hub fetches it from an https address on a schedule. */
8
8
  readonly Pull: "PULL";
9
+ /**
10
+ * OKR Hub reads a project's progress, as a percentage from 0 to 100,
11
+ * on a schedule from a ticketing system the workspace has connected,
12
+ * such as a Linear project. */
13
+ readonly Ticketing: "TICKETING";
9
14
  };
10
15
  export type MetricSourceKind = (typeof MetricSourceKind)[keyof typeof MetricSourceKind];
@@ -7,4 +7,9 @@ export const MetricSourceKind = {
7
7
  /**
8
8
  * OKR Hub fetches it from an https address on a schedule. */
9
9
  Pull: "PULL",
10
+ /**
11
+ * OKR Hub reads a project's progress, as a percentage from 0 to 100,
12
+ * on a schedule from a ticketing system the workspace has connected,
13
+ * such as a Linear project. */
14
+ Ticketing: "TICKETING",
10
15
  };
@@ -7,6 +7,11 @@ export interface Objective {
7
7
  organizationId: string;
8
8
  title: string;
9
9
  description?: string;
10
+ /**
11
+ * Its tags, A to Z: free text, one lowercase word each (letters,
12
+ * digits, `-` and `_`), at most 10. Filter by one with `tag`.
13
+ */
14
+ tags: string[];
10
15
  period: Taktoria.OkrPeriod;
11
16
  /** The fiscal year, 2000 to 2100, named by the year its Q1 falls in. */
12
17
  year: number;
@@ -5,10 +5,15 @@ import type * as Taktoria from "../../../index.mjs";
5
5
  * Anybody new on it must be a member or team of this workspace (a 422
6
6
  * naming them in `details.unknown`); an owner already on it who has
7
7
  * since left may stay. The title is trimmed and never blank; the weight
8
- * is 0.01 to 100.
8
+ * is 0.01 to 100. `tags` sent replace the ones it had, so `[]` removes
9
+ * them all.
9
10
  */
10
11
  export interface UpdateKeyResultRequest {
11
12
  title?: string;
13
+ /** Blank or `null` removes it. */
14
+ description?: string;
15
+ /** Replaces its tags; `[]` removes them all. */
16
+ tags?: string[];
12
17
  /**
13
18
  * A new score, 0.0 to 1.0, is recorded as a check-in with no note,
14
19
  * by the caller (a key's maker, for a key), and the activity feed
@@ -7,11 +7,15 @@ import type * as Taktoria from "../../../index.mjs";
7
7
  * as on create; the owner it already has may stay, even if they have
8
8
  * since left. The fields sent meet the same rules as on create: a title
9
9
  * trimmed and never blank, a year from 2000 to 2100, a weight from 0.01
10
- * to 100.
10
+ * to 100, tags one word each. `tags` sent replace the ones it had, so
11
+ * `[]` removes them all; left out, they stay.
11
12
  */
12
13
  export interface UpdateObjectiveRequest {
13
14
  title?: string;
15
+ /** Blank or `null` removes it. */
14
16
  description?: string;
17
+ /** Replaces its tags; `[]` removes them all. */
18
+ tags?: string[];
15
19
  period?: Taktoria.OkrPeriod;
16
20
  year?: number;
17
21
  quarter?: number;
@@ -6,6 +6,8 @@ export declare const CreateKeyResultRequest: core.serialization.ObjectSchema<ser
6
6
  export declare namespace CreateKeyResultRequest {
7
7
  interface Raw {
8
8
  title: string;
9
+ description?: string | null;
10
+ tags?: string[] | null;
9
11
  score?: number | null;
10
12
  weight?: number | null;
11
13
  priority?: OkrPriority.Raw | null;
@@ -3,6 +3,8 @@ import * as core from "../../../../core/index.mjs";
3
3
  import { OkrPriority } from "./OkrPriority.mjs";
4
4
  export const CreateKeyResultRequest = core.serialization.object({
5
5
  title: core.serialization.string(),
6
+ description: core.serialization.string().optional(),
7
+ tags: core.serialization.list(core.serialization.string()).optional(),
6
8
  score: core.serialization.number().optional(),
7
9
  weight: core.serialization.number().optional(),
8
10
  priority: OkrPriority.optional(),
@@ -9,6 +9,7 @@ export declare namespace CreateObjectiveRequest {
9
9
  interface Raw {
10
10
  title: string;
11
11
  description?: string | null;
12
+ tags?: string[] | null;
12
13
  period?: OkrPeriod.Raw | null;
13
14
  year: number;
14
15
  quarter?: number | null;
@@ -6,6 +6,7 @@ import { OkrVisibility } from "./OkrVisibility.mjs";
6
6
  export const CreateObjectiveRequest = core.serialization.object({
7
7
  title: core.serialization.string(),
8
8
  description: core.serialization.string().optional(),
9
+ tags: core.serialization.list(core.serialization.string()).optional(),
9
10
  period: OkrPeriod.optional(),
10
11
  year: core.serialization.number(),
11
12
  quarter: core.serialization.number().optional(),
@@ -9,6 +9,8 @@ export declare namespace KeyResult {
9
9
  id: string;
10
10
  objectiveId: string;
11
11
  title: string;
12
+ description?: string | null;
13
+ tags: string[];
12
14
  score?: number | null;
13
15
  weight: number;
14
16
  priority: OkrPriority.Raw;
@@ -6,6 +6,8 @@ export const KeyResult = core.serialization.object({
6
6
  id: core.serialization.string(),
7
7
  objectiveId: core.serialization.string(),
8
8
  title: core.serialization.string(),
9
+ description: core.serialization.string().optional(),
10
+ tags: core.serialization.list(core.serialization.string()),
9
11
  score: core.serialization.number().optional(),
10
12
  weight: core.serialization.number(),
11
13
  priority: OkrPriority,
@@ -3,5 +3,5 @@ import * as core from "../../../../core/index.mjs";
3
3
  import type * as serializers from "../../../index.mjs";
4
4
  export declare const MetricSourceKind: core.serialization.Schema<serializers.MetricSourceKind.Raw, Taktoria.MetricSourceKind>;
5
5
  export declare namespace MetricSourceKind {
6
- type Raw = "WEBHOOK" | "PULL";
6
+ type Raw = "WEBHOOK" | "PULL" | "TICKETING";
7
7
  }
@@ -1,3 +1,3 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../../../core/index.mjs";
3
- export const MetricSourceKind = core.serialization.enum_(["WEBHOOK", "PULL"]);
3
+ export const MetricSourceKind = core.serialization.enum_(["WEBHOOK", "PULL", "TICKETING"]);
@@ -13,6 +13,7 @@ export declare namespace Objective {
13
13
  organizationId: string;
14
14
  title: string;
15
15
  description?: string | null;
16
+ tags: string[];
16
17
  period: OkrPeriod.Raw;
17
18
  year: number;
18
19
  quarter?: number | null;
@@ -10,6 +10,7 @@ export const Objective = core.serialization.object({
10
10
  organizationId: core.serialization.string(),
11
11
  title: core.serialization.string(),
12
12
  description: core.serialization.string().optional(),
13
+ tags: core.serialization.list(core.serialization.string()),
13
14
  period: OkrPeriod,
14
15
  year: core.serialization.number(),
15
16
  quarter: core.serialization.number().optional(),
@@ -6,6 +6,8 @@ export declare const UpdateKeyResultRequest: core.serialization.ObjectSchema<ser
6
6
  export declare namespace UpdateKeyResultRequest {
7
7
  interface Raw {
8
8
  title?: string | null;
9
+ description?: string | null;
10
+ tags?: string[] | null;
9
11
  score?: number | null;
10
12
  weight?: number | null;
11
13
  priority?: OkrPriority.Raw | null;
@@ -3,6 +3,8 @@ import * as core from "../../../../core/index.mjs";
3
3
  import { OkrPriority } from "./OkrPriority.mjs";
4
4
  export const UpdateKeyResultRequest = core.serialization.object({
5
5
  title: core.serialization.string().optional(),
6
+ description: core.serialization.string().optional(),
7
+ tags: core.serialization.list(core.serialization.string()).optional(),
6
8
  score: core.serialization.number().optional(),
7
9
  weight: core.serialization.number().optional(),
8
10
  priority: OkrPriority.optional(),
@@ -8,6 +8,7 @@ export declare namespace UpdateObjectiveRequest {
8
8
  interface Raw {
9
9
  title?: string | null;
10
10
  description?: string | null;
11
+ tags?: string[] | null;
11
12
  period?: OkrPeriod.Raw | null;
12
13
  year?: number | null;
13
14
  quarter?: number | null;
@@ -5,6 +5,7 @@ import { OkrVisibility } from "./OkrVisibility.mjs";
5
5
  export const UpdateObjectiveRequest = core.serialization.object({
6
6
  title: core.serialization.string().optional(),
7
7
  description: core.serialization.string().optional(),
8
+ tags: core.serialization.list(core.serialization.string()).optional(),
8
9
  period: OkrPeriod.optional(),
9
10
  year: core.serialization.number().optional(),
10
11
  quarter: core.serialization.number().optional(),
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.1.5";
1
+ export declare const SDK_VERSION = "0.2.0";
@@ -1 +1 @@
1
- export const SDK_VERSION = "0.1.5";
1
+ export const SDK_VERSION = "0.2.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taktoria/sdk",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "main": "./dist/cjs/index.js",
package/reference.md CHANGED
@@ -7633,10 +7633,12 @@ under the name of whoever made the key.
7633
7633
  ```typescript
7634
7634
  await client.okr.createObjective({
7635
7635
  title: "Make onboarding effortless",
7636
+ tags: ["onboarding"],
7636
7637
  year: 2026,
7637
7638
  quarter: 3,
7638
7639
  keyResults: [{
7639
7640
  title: "Median time to first launch under 10 minutes",
7641
+ tags: ["activation"],
7640
7642
  priority: "P1"
7641
7643
  }, {
7642
7644
  title: "90% of new workspaces invite a second person",