@anchrd/colab-sdk 0.1.23 → 0.1.24

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.
@@ -20,7 +20,7 @@ export const ActionListInput = z.strictObject({
20
20
  filter: z
21
21
  .enum(actionFilters)
22
22
  .optional()
23
- .describe("Which rows: all, tasks (tasks, due processes, open runs and broken gadgets you answer for) or chats (rows with something unread, a task's chat included). Notices of other parts of Colab come only with all. Leaving it out gives all. count always counts all."),
23
+ .describe("Which rows: all, tasks (tasks, open runs and broken gadgets you answer for) or chats (rows with something unread, a task's chat included). Notices of other parts of Colab come only with all. Leaving it out gives all. count always counts all."),
24
24
  userId: UserId.optional().describe("Whose Actions to read, `user_…`. Only an admin in admin mode reads another person's, to see where they are stuck; anyone else gets not_found. Leaving it out reads your own."),
25
25
  cursor: z
26
26
  .string()
@@ -61,7 +61,8 @@ export const ActionChat = z.object({
61
61
  createdAt: z.iso.datetime(),
62
62
  }),
63
63
  });
64
- // A process board that is due for its Operator.
64
+ // A process board that was due for its Operator; null on every row since #847 (no process falls
65
+ // due), kept one version for clients that read it.
65
66
  export const ActionProcess = z.object({
66
67
  kind: z.enum(["board"]),
67
68
  // The moment of the schedule the next run stands for.
@@ -5,10 +5,9 @@ export declare const TaskId: z.ZodTemplateLiteral<`node_${string}`>;
5
5
  export type TaskId = z.infer<typeof TaskId>;
6
6
  export declare const LabelId: z.ZodTemplateLiteral<`label_${string}`>;
7
7
  export type LabelId = z.infer<typeof LabelId>;
8
- export declare const boardKinds: readonly ["board", "process"];
8
+ export declare const boardKinds: readonly ["board"];
9
9
  export declare const BoardKind: z.ZodEnum<{
10
10
  board: "board";
11
- process: "process";
12
11
  }>;
13
12
  export type BoardKind = z.infer<typeof BoardKind>;
14
13
  export declare const BoardCreateInput: z.ZodObject<{
@@ -85,53 +84,7 @@ export declare const BoardUpdateInput: z.ZodObject<{
85
84
  rev: z.ZodNumber;
86
85
  kind: z.ZodOptional<z.ZodEnum<{
87
86
  board: "board";
88
- process: "process";
89
87
  }>>;
90
- responsibleId: z.ZodOptional<z.ZodNullable<z.ZodTemplateLiteral<`user_${string}`>>>;
91
- schedule: z.ZodOptional<z.ZodObject<{
92
- rhythm: z.ZodEnum<{
93
- manual: "manual";
94
- daily: "daily";
95
- weekly: "weekly";
96
- monthly: "monthly";
97
- dates: "dates";
98
- }>;
99
- days: z.ZodOptional<z.ZodArray<z.ZodEnum<{
100
- monday: "monday";
101
- tuesday: "tuesday";
102
- wednesday: "wednesday";
103
- thursday: "thursday";
104
- friday: "friday";
105
- saturday: "saturday";
106
- sunday: "sunday";
107
- }>>>;
108
- dayOfMonth: z.ZodOptional<z.ZodArray<z.ZodInt>>;
109
- weekdayOfMonth: z.ZodOptional<z.ZodObject<{
110
- week: z.ZodEnum<{
111
- first: "first";
112
- last: "last";
113
- second: "second";
114
- third: "third";
115
- fourth: "fourth";
116
- }>;
117
- day: z.ZodEnum<{
118
- monday: "monday";
119
- tuesday: "tuesday";
120
- wednesday: "wednesday";
121
- thursday: "thursday";
122
- friday: "friday";
123
- saturday: "saturday";
124
- sunday: "sunday";
125
- }>;
126
- }, z.core.$strict>>;
127
- times: z.ZodOptional<z.ZodArray<z.ZodString>>;
128
- dates: z.ZodOptional<z.ZodArray<z.ZodString>>;
129
- zone: z.ZodOptional<z.ZodString>;
130
- whileOpen: z.ZodOptional<z.ZodEnum<{
131
- wait: "wait";
132
- continue: "continue";
133
- }>>;
134
- }, z.core.$strict>>;
135
88
  instruction: z.ZodOptional<z.ZodString>;
136
89
  columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
137
90
  columnId: z.ZodOptional<z.ZodTemplateLiteral<`column_${string}`>>;
@@ -8,7 +8,6 @@ import { Missing } from "../missing/missing.js";
8
8
  import { BoardShownKind, BoardSystem, NodeId, NodePerson } from "../nodes/nodes.js";
9
9
  import { IdempotencyKey, Rev } from "../primitives/primitives.js";
10
10
  import { Schedule } from "../schedule/schedule.js";
11
- import { UserId } from "../users/users.js";
12
11
  import { TicketSubject, TicketSubjectRef } from "../validation/validation.js";
13
12
  import { TaskMove } from "../versions/versions.js";
14
13
  // Boards, their columns and labels, and tasks (#42, Nodes › Board, Nodes › Aufgabe, E38, E40, E41,
@@ -28,11 +27,12 @@ export const LabelId = z
28
27
  // A run of a process (#43). The same id `runs.ts` names `RunId`; written here again because
29
28
  // `runs.ts` builds on this file and the graph between the files stays acyclic (trap C009).
30
29
  const RunRef = idSchema("run");
31
- // What a board is (#43, Nodes › Board › Prozess): a board, or a process whose runs are copies of it.
32
- export const boardKinds = ["board", "process"];
30
+ // What a caller makes a board (#43, #847): a board. The kind process is switched off (E139); a process
31
+ // from before stays readable and is turned back into a board, never made anew.
32
+ export const boardKinds = ["board"];
33
33
  export const BoardKind = z
34
34
  .enum(boardKinds)
35
- .describe("board: a board people work on. process: a template whose runs the Operator works through, each a copy of its columns and tasks; it needs a machine (an Operator) with write on it, a first column of type backlog, every task of the template in that first column, and a responsible who writes on it (or none).");
35
+ .describe("board: a board people work on. A process from before goals is made a board again with it; no board becomes a process any more, a goal does what a process did.");
36
36
  const Name = z.string().max(200);
37
37
  // A column's description (#624), Markdown for every AI working on the board.
38
38
  const ColumnDescription = z.string().max(20_000);
@@ -66,12 +66,7 @@ const BoardInstruction = z.string().max(200_000);
66
66
  export const BoardUpdateInput = z.strictObject({
67
67
  boardId: BoardId,
68
68
  rev: Rev,
69
- kind: BoardKind.optional().describe("Make the board a process or a board again. Saving a process is refused with conflict while no machine can write on the board, the first column is not of type backlog, a task of the template stands outside the first column, or its responsible no longer writes on the board."),
70
- // E125: a process has one responsible, a board none.
71
- responsibleId: UserId.nullable()
72
- .optional()
73
- .describe("The process's responsible: a person or machine who writes on the board, `user_…`; null for nobody, then whoever made it a process gets the hints. They get the start of a run and a run that stands as an Action and open its first checkpoints. Only with a process. Leaving it out keeps it; a board made a process without one gets whoever makes it a process, when they write on it."),
74
- schedule: Schedule.optional().describe("When a run of the process or of the validation falls due (Ausführung). Leaving it out keeps it; a board made a process without one runs by hand."),
69
+ kind: BoardKind.optional().describe("Make a process from before goals a board again. Its runs stay readable with intelligence_run_list."),
75
70
  instruction: BoardInstruction.optional().describe("The board's instruction, Markdown: what the board is about and how every AI working on it goes about it. It comes along with every read of the board and its tasks over MCP, as only its digest where the read sends that digest under known. On the validation board only an admin in admin mode changes it. An empty text removes it; leaving it out keeps it."),
76
71
  columns: Columns.optional(),
77
72
  cardKinds: CardKindsInput.optional(),
@@ -141,9 +136,10 @@ export const BoardDetail = z.object({
141
136
  schedule: Schedule.nullable(),
142
137
  // The board's instruction (E87, #354; the validation's since #47), Markdown; null without one.
143
138
  instruction: z.string().nullable(),
144
- // The next moment a run falls due, null for a board, a manual process or dates that have passed.
139
+ // The next moment a run falls due; null since no process runs any more (#847), kept one version
140
+ // for clients that read it.
145
141
  nextRunAt: z.iso.datetime().nullable(),
146
- // The moment a run is owed for now (passed, unanswered, no run open), else null.
142
+ // The moment a run was owed; null since #847, like `nextRunAt`.
147
143
  dueAt: z.iso.datetime().nullable(),
148
144
  processCheck: ProcessCheck,
149
145
  // Who carries the validation (E79, #378): the holder of the role `validator` while they can act,
@@ -21,6 +21,7 @@ export declare const mcpCatalog: readonly [{
21
21
  readonly url: "https://gmailmcp.googleapis.com/mcp/v1";
22
22
  readonly auth: "oauth";
23
23
  readonly signIn: "Google";
24
+ readonly dynamicRegistration: false;
24
25
  readonly color: "#c5221f";
25
26
  readonly initials: "G";
26
27
  }, {
@@ -29,6 +30,7 @@ export declare const mcpCatalog: readonly [{
29
30
  readonly url: "https://calendarmcp.googleapis.com/mcp/v1";
30
31
  readonly auth: "oauth";
31
32
  readonly signIn: "Google";
33
+ readonly dynamicRegistration: false;
32
34
  readonly color: "#1a73e8";
33
35
  readonly initials: "K";
34
36
  }, {
@@ -37,6 +39,7 @@ export declare const mcpCatalog: readonly [{
37
39
  readonly url: "https://drivemcp.googleapis.com/mcp/v1";
38
40
  readonly auth: "oauth";
39
41
  readonly signIn: "Google";
42
+ readonly dynamicRegistration: false;
40
43
  readonly color: "#188038";
41
44
  readonly initials: "D";
42
45
  }, {
@@ -45,6 +48,7 @@ export declare const mcpCatalog: readonly [{
45
48
  readonly url: "https://mcp.slack.com/mcp";
46
49
  readonly auth: "oauth";
47
50
  readonly signIn: "Slack";
51
+ readonly dynamicRegistration: false;
48
52
  readonly color: "#4a154b";
49
53
  readonly initials: "Sl";
50
54
  }, {
@@ -53,6 +57,7 @@ export declare const mcpCatalog: readonly [{
53
57
  readonly url: "https://agent365.svc.cloud.microsoft/agents/servers/mcp_TeamsServer";
54
58
  readonly auth: "oauth";
55
59
  readonly signIn: "Microsoft";
60
+ readonly dynamicRegistration: false;
56
61
  readonly color: "#5059c9";
57
62
  readonly initials: "T";
58
63
  }, {
@@ -61,6 +66,7 @@ export declare const mcpCatalog: readonly [{
61
66
  readonly url: "https://agent365.svc.cloud.microsoft/agents/servers/mcp_MailTools";
62
67
  readonly auth: "oauth";
63
68
  readonly signIn: "Microsoft";
69
+ readonly dynamicRegistration: false;
64
70
  readonly color: "#0f6cbd";
65
71
  readonly initials: "O";
66
72
  }, {
@@ -69,6 +75,7 @@ export declare const mcpCatalog: readonly [{
69
75
  readonly url: "https://mcp.hubspot.com";
70
76
  readonly auth: "oauth";
71
77
  readonly signIn: "HubSpot";
78
+ readonly dynamicRegistration: false;
72
79
  readonly color: "#c2410c";
73
80
  readonly initials: "H";
74
81
  }, {
@@ -77,6 +84,7 @@ export declare const mcpCatalog: readonly [{
77
84
  readonly url: "https://mcp.notion.com/mcp";
78
85
  readonly auth: "oauth";
79
86
  readonly signIn: "Notion";
87
+ readonly dynamicRegistration: true;
80
88
  readonly color: "#111111";
81
89
  readonly initials: "N";
82
90
  }];
package/dist/mcps/mcps.js CHANGED
@@ -23,6 +23,12 @@ export const McpState = z.enum(["running", "expired", "unreachable", "pending"])
23
23
  // UI reads them and names each by its `id` in its messages. `signIn` is who the person signs in with
24
24
  // ("angemeldet mit Google"). ⚠️ The addresses are the providers' remote MCP servers as published in
25
25
  // October 2026; each is proven only on the stage with a real account (#35), locally none answers.
26
+ //
27
+ // `dynamicRegistration`: the provider lets Colab register itself as an OAuth client at the sign-in
28
+ // (RFC 7591), so "Verbinden" works without an app registered at the provider. Checked against the
29
+ // providers on 2026-10-29 (#855): only Notion offers it. Google answers no OAuth metadata at all, and
30
+ // Slack, Microsoft and HubSpot name no `registration_endpoint`; they need an app an admin sets up,
31
+ // with client id and secret, which Colab cannot hold yet. Such an entry is shown, not started.
26
32
  export const mcpCatalog = [
27
33
  {
28
34
  id: "gmail",
@@ -30,6 +36,7 @@ export const mcpCatalog = [
30
36
  url: "https://gmailmcp.googleapis.com/mcp/v1",
31
37
  auth: "oauth",
32
38
  signIn: "Google",
39
+ dynamicRegistration: false,
33
40
  color: "#c5221f",
34
41
  initials: "G",
35
42
  },
@@ -39,6 +46,7 @@ export const mcpCatalog = [
39
46
  url: "https://calendarmcp.googleapis.com/mcp/v1",
40
47
  auth: "oauth",
41
48
  signIn: "Google",
49
+ dynamicRegistration: false,
42
50
  color: "#1a73e8",
43
51
  initials: "K",
44
52
  },
@@ -48,6 +56,7 @@ export const mcpCatalog = [
48
56
  url: "https://drivemcp.googleapis.com/mcp/v1",
49
57
  auth: "oauth",
50
58
  signIn: "Google",
59
+ dynamicRegistration: false,
51
60
  color: "#188038",
52
61
  initials: "D",
53
62
  },
@@ -57,6 +66,7 @@ export const mcpCatalog = [
57
66
  url: "https://mcp.slack.com/mcp",
58
67
  auth: "oauth",
59
68
  signIn: "Slack",
69
+ dynamicRegistration: false,
60
70
  color: "#4a154b",
61
71
  initials: "Sl",
62
72
  },
@@ -66,6 +76,7 @@ export const mcpCatalog = [
66
76
  url: "https://agent365.svc.cloud.microsoft/agents/servers/mcp_TeamsServer",
67
77
  auth: "oauth",
68
78
  signIn: "Microsoft",
79
+ dynamicRegistration: false,
69
80
  color: "#5059c9",
70
81
  initials: "T",
71
82
  },
@@ -75,6 +86,7 @@ export const mcpCatalog = [
75
86
  url: "https://agent365.svc.cloud.microsoft/agents/servers/mcp_MailTools",
76
87
  auth: "oauth",
77
88
  signIn: "Microsoft",
89
+ dynamicRegistration: false,
78
90
  color: "#0f6cbd",
79
91
  initials: "O",
80
92
  },
@@ -84,6 +96,7 @@ export const mcpCatalog = [
84
96
  url: "https://mcp.hubspot.com",
85
97
  auth: "oauth",
86
98
  signIn: "HubSpot",
99
+ dynamicRegistration: false,
87
100
  color: "#c2410c",
88
101
  initials: "H",
89
102
  },
@@ -93,6 +106,7 @@ export const mcpCatalog = [
93
106
  url: "https://mcp.notion.com/mcp",
94
107
  auth: "oauth",
95
108
  signIn: "Notion",
109
+ dynamicRegistration: true,
96
110
  color: "#111111",
97
111
  initials: "N",
98
112
  },
@@ -133,7 +147,7 @@ export const McpGetInput = z.strictObject({ mcpId: McpId });
133
147
  // the person signs in at (`authorizeUrl`).
134
148
  export const McpCreateInput = z
135
149
  .strictObject({
136
- catalogId: McpCatalogId.optional().describe("A prepared MCP of the catalog (gmail, calendar, drive, slack, teams, outlook, hubspot, notion). Leave name, url and auth out then."),
150
+ catalogId: McpCatalogId.optional().describe("A prepared MCP of the catalog (gmail, calendar, drive, slack, teams, outlook, hubspot, notion). Only notion connects today; the others need an app registered at their provider and answer unavailable. Leave name, url and auth out then."),
137
151
  name: McpName.optional(),
138
152
  url: McpUrl.optional(),
139
153
  auth: McpAuth.optional(),
@@ -27,11 +27,6 @@ export declare const RunGetInput: z.ZodObject<{
27
27
  runId: z.ZodTemplateLiteral<`run_${string}`>;
28
28
  }, z.core.$strict>;
29
29
  export type RunGetInput = z.infer<typeof RunGetInput>;
30
- export declare const BoardRunCreateInput: z.ZodObject<{
31
- boardId: z.ZodTemplateLiteral<`node_${string}`>;
32
- idempotencyKey: z.ZodString;
33
- }, z.core.$strict>;
34
- export type BoardRunCreateInput = z.infer<typeof BoardRunCreateInput>;
35
30
  export declare const RunCompleteInput: z.ZodObject<{
36
31
  runId: z.ZodTemplateLiteral<`run_${string}`>;
37
32
  summary: z.ZodOptional<z.ZodString>;
package/dist/runs/runs.js CHANGED
@@ -1,16 +1,14 @@
1
1
  import { z } from "zod";
2
- import { BoardId } from "../boards/boards.js";
3
2
  import { CardKind } from "../card-kinds/card-kinds.js";
4
3
  import { ColumnId, ColumnType } from "../columns/columns.js";
5
4
  import { idSchema } from "../ids/ids.js";
6
5
  import { Limit } from "../list-input.js";
7
6
  import { NodeId, NodePerson } from "../nodes/nodes.js";
8
- import { IdempotencyKey } from "../primitives/primitives.js";
9
- // Runs of a process board and of the validation (#43, Funktionen › Läufe, Nodes › Board › Prozess,
10
- // E42, E45, E67, E70, E119): the inputs of `intelligence_run_list`, `_get`,
11
- // `intelligence_board_run_create`, `intelligence_run_complete`, and the answers. A run is a
12
- // sub-resource of its board when it is made, and a resource of its own afterwards.
13
- export const RunId = idSchema("run").describe("The run's id, `run_…`, as intelligence_board_run_create or intelligence_run_list returned it.");
7
+ // Runs of a process board and of the validation from before goals (#43, Funktionen › Läufe, E42,
8
+ // E45, E67, E70, E119, E139): the inputs of `intelligence_run_list`, `_get`,
9
+ // `intelligence_run_complete`, and the answers. No run starts any more (#847); the ones that stand
10
+ // stay readable, and an open one is still closed.
11
+ export const RunId = idSchema("run").describe("The run's id, `run_…`, as intelligence_run_list returned it.");
14
12
  export const runStatuses = ["running", "done", "open", "error"];
15
13
  export const RunStatus = z
16
14
  .enum(runStatuses)
@@ -29,10 +27,6 @@ export const RunListInput = z.strictObject({
29
27
  limit: Limit.optional().describe("How many runs one page holds, 1 to 100. Leaving it out gives 50."),
30
28
  });
31
29
  export const RunGetInput = z.strictObject({ runId: RunId });
32
- export const BoardRunCreateInput = z.strictObject({
33
- boardId: BoardId.describe("The process board to start a run of, one you can write to. The run is a copy of its columns and of every task of the template, all in the first column."),
34
- idempotencyKey: IdempotencyKey,
35
- });
36
30
  const Text = z.string().max(20_000);
37
31
  export const RunCompleteInput = z.strictObject({
38
32
  runId: RunId,
package/dist/sdk.d.ts CHANGED
@@ -37,13 +37,13 @@ export { PageDetail, PageGetInput, PageHead, PageHeading, PageId, PageList, Page
37
37
  export { IdempotencyKey, Rev } from "./primitives/primitives.js";
38
38
  export { Locale, locales, Name, ProfileImageResponse, ProfileUpdateInput, profileImageMaxBytes, profileImageTypes, Theme, TimeZone, themes, } from "./profile/profile.js";
39
39
  export { GrantChange, PermissionsResponse, RightInCode, RightPath, RightTree, Role, RoleArchiveInput, RoleCreateInput, RoleDetail, RoleGetInput, RoleGrantCreateInput, RoleGrantRevokeInput, RoleId, RoleList, RoleListInput, RoleRestoreInput, RoleUpdateInput, } from "./roles/roles.js";
40
- export { BoardRunCreateInput, RunCompleteInput, RunDetail, RunGetInput, RunId, RunItem, RunList, RunListInput, RunStatus, runStatuses, } from "./runs/runs.js";
40
+ export { RunCompleteInput, RunDetail, RunGetInput, RunId, RunItem, RunList, RunListInput, RunStatus, runStatuses, } from "./runs/runs.js";
41
41
  export { RuntimeConfig } from "./runtime-config.js";
42
42
  export { rhythms, Schedule, WhileOpen, weekdays, weeksOfMonth, whileOpenModes, } from "./schedule/schedule.js";
43
43
  export { NodeSecret, NodeSecretCreateInput, NodeSecretDetail, NodeSecretGetInput, NodeSecretRemoveInput, NodeSecretUpdateInput, NodeUnlocked, NodeUnlockInput, unlockMinutes, } from "./secrets/secrets.js";
44
44
  export { type Authorized, type AuthorizeResult, createServiceClient, type InterfaceDeclaredResult, type InterfaceRemovedResult, type ServiceClient, type ServiceClientDeps, type ServiceClientFailure, } from "./service-client/service-client.js";
45
45
  export { ConsentResource, FunctionId, InterfaceId, RightWord, Service, ServiceArchiveInput, ServiceCreateInput, ServiceFunction, ServiceId, ServiceInterface, ServiceKeyIssued, ServiceList, ServiceListInput, ServiceName, ServicePurged, ServicePurgeInput, ServiceRestoreInput, ServiceRotateInput, ServiceUpdateInput, } from "./services/services.js";
46
- export { SkillCaseResult, SkillCreateInput, SkillDetail, SkillFields, SkillFile, SkillFilePath, SkillGetInput, SkillId, SkillOffer, SkillPoint, SkillRunCall, SkillRunDetail, SkillRunGetInput, SkillRunItem, SkillRunList, SkillRunListInput, SkillTestInput, SkillTestReport, SkillTriggerHit, SkillUpdateInput, skillCaseStatuses, skillFilePattern, skillRunKinds, skillRunStatuses, } from "./skills/skills.js";
46
+ export { SkillCaseResult, SkillCreateInput, SkillDetail, SkillFields, SkillFile, SkillFilePath, SkillGetInput, SkillId, SkillOffer, SkillPoint, SkillRunCall, SkillRunDetail, SkillRunGetInput, SkillRunItem, SkillRunList, SkillRunListInput, SkillTestInput, SkillTestReport, SkillTokens, SkillTriggerHit, SkillUpdateInput, skillCaseStatuses, skillFilePattern, skillRunKinds, skillRunStatuses, } from "./skills/skills.js";
47
47
  export { SignInProviders, Sso, SsoId, SsoList, SsoListInput, SsoRemoveInput, SsoSource, SsoUpdateInput, ssoIds, } from "./sso/sso.js";
48
48
  export { TableColumn, TableColumnChange, TableColumnType, TableCreateInput, TableDetail, TableExcerpt, TableGetInput, TableId, TableSaved, TableUpdateInput, tableColumnTypes, tableFormats, } from "./tables/tables.js";
49
49
  export { type Actor, defineTool, type Permission, type Tool, type ToolAnnotations, type ToolContext, type ToolInput, type ToolSource, } from "./tool.js";
package/dist/sdk.js CHANGED
@@ -40,13 +40,13 @@ export { PageDetail, PageGetInput, PageHead, PageHeading, PageId, PageList, Page
40
40
  export { IdempotencyKey, Rev } from "./primitives/primitives.js";
41
41
  export { Locale, locales, Name, ProfileImageResponse, ProfileUpdateInput, profileImageMaxBytes, profileImageTypes, Theme, TimeZone, themes, } from "./profile/profile.js";
42
42
  export { GrantChange, PermissionsResponse, RightInCode, RightPath, RightTree, Role, RoleArchiveInput, RoleCreateInput, RoleDetail, RoleGetInput, RoleGrantCreateInput, RoleGrantRevokeInput, RoleId, RoleList, RoleListInput, RoleRestoreInput, RoleUpdateInput, } from "./roles/roles.js";
43
- export { BoardRunCreateInput, RunCompleteInput, RunDetail, RunGetInput, RunId, RunItem, RunList, RunListInput, RunStatus, runStatuses, } from "./runs/runs.js";
43
+ export { RunCompleteInput, RunDetail, RunGetInput, RunId, RunItem, RunList, RunListInput, RunStatus, runStatuses, } from "./runs/runs.js";
44
44
  export { RuntimeConfig } from "./runtime-config.js";
45
45
  export { rhythms, Schedule, WhileOpen, weekdays, weeksOfMonth, whileOpenModes, } from "./schedule/schedule.js";
46
46
  export { NodeSecret, NodeSecretCreateInput, NodeSecretDetail, NodeSecretGetInput, NodeSecretRemoveInput, NodeSecretUpdateInput, NodeUnlocked, NodeUnlockInput, unlockMinutes, } from "./secrets/secrets.js";
47
47
  export { createServiceClient, } from "./service-client/service-client.js";
48
48
  export { ConsentResource, FunctionId, InterfaceId, RightWord, Service, ServiceArchiveInput, ServiceCreateInput, ServiceFunction, ServiceId, ServiceInterface, ServiceKeyIssued, ServiceList, ServiceListInput, ServiceName, ServicePurged, ServicePurgeInput, ServiceRestoreInput, ServiceRotateInput, ServiceUpdateInput, } from "./services/services.js";
49
- export { SkillCaseResult, SkillCreateInput, SkillDetail, SkillFields, SkillFile, SkillFilePath, SkillGetInput, SkillId, SkillOffer, SkillPoint, SkillRunCall, SkillRunDetail, SkillRunGetInput, SkillRunItem, SkillRunList, SkillRunListInput, SkillTestInput, SkillTestReport, SkillTriggerHit, SkillUpdateInput, skillCaseStatuses, skillFilePattern, skillRunKinds, skillRunStatuses, } from "./skills/skills.js";
49
+ export { SkillCaseResult, SkillCreateInput, SkillDetail, SkillFields, SkillFile, SkillFilePath, SkillGetInput, SkillId, SkillOffer, SkillPoint, SkillRunCall, SkillRunDetail, SkillRunGetInput, SkillRunItem, SkillRunList, SkillRunListInput, SkillTestInput, SkillTestReport, SkillTokens, SkillTriggerHit, SkillUpdateInput, skillCaseStatuses, skillFilePattern, skillRunKinds, skillRunStatuses, } from "./skills/skills.js";
50
50
  export { SignInProviders, Sso, SsoId, SsoList, SsoListInput, SsoRemoveInput, SsoSource, SsoUpdateInput, ssoIds, } from "./sso/sso.js";
51
51
  export { TableColumn, TableColumnChange, TableColumnType, TableCreateInput, TableDetail, TableExcerpt, TableGetInput, TableId, TableSaved, TableUpdateInput, tableColumnTypes, tableFormats, } from "./tables/tables.js";
52
52
  export { defineTool, } from "./tool.js";
@@ -62,6 +62,11 @@ export declare const SkillPoint: z.ZodObject<{
62
62
  }, z.core.$strip>;
63
63
  export type SkillPoint = z.infer<typeof SkillPoint>;
64
64
  export declare const skillCaseStatuses: readonly ["passed", "failed", "missing"];
65
+ export declare const SkillTokens: z.ZodObject<{
66
+ input: z.ZodInt;
67
+ output: z.ZodInt;
68
+ }, z.core.$strip>;
69
+ export type SkillTokens = z.infer<typeof SkillTokens>;
65
70
  export declare const SkillCaseResult: z.ZodObject<{
66
71
  name: z.ZodString;
67
72
  status: z.ZodEnum<{
@@ -90,6 +95,10 @@ export declare const SkillCaseResult: z.ZodObject<{
90
95
  tool: z.ZodString;
91
96
  }, z.core.$strip>>;
92
97
  costUsd: z.ZodNumber;
98
+ tokens: z.ZodOptional<z.ZodObject<{
99
+ input: z.ZodInt;
100
+ output: z.ZodInt;
101
+ }, z.core.$strip>>;
93
102
  runId: z.ZodNullable<z.ZodTemplateLiteral<`run_${string}`>>;
94
103
  }, z.core.$strip>;
95
104
  export type SkillCaseResult = z.infer<typeof SkillCaseResult>;
@@ -137,6 +146,10 @@ export declare const SkillTestReport: z.ZodObject<{
137
146
  ok: z.ZodBoolean;
138
147
  }, z.core.$strip>>;
139
148
  costUsd: z.ZodNumber;
149
+ tokens: z.ZodOptional<z.ZodObject<{
150
+ input: z.ZodInt;
151
+ output: z.ZodInt;
152
+ }, z.core.$strip>>;
140
153
  }, z.core.$strip>>;
141
154
  cases: z.ZodArray<z.ZodObject<{
142
155
  name: z.ZodString;
@@ -166,6 +179,10 @@ export declare const SkillTestReport: z.ZodObject<{
166
179
  tool: z.ZodString;
167
180
  }, z.core.$strip>>;
168
181
  costUsd: z.ZodNumber;
182
+ tokens: z.ZodOptional<z.ZodObject<{
183
+ input: z.ZodInt;
184
+ output: z.ZodInt;
185
+ }, z.core.$strip>>;
169
186
  runId: z.ZodNullable<z.ZodTemplateLiteral<`run_${string}`>>;
170
187
  }, z.core.$strip>>;
171
188
  problem: z.ZodNullable<z.ZodString>;
@@ -232,6 +249,10 @@ export declare const SkillDetail: z.ZodObject<{
232
249
  ok: z.ZodBoolean;
233
250
  }, z.core.$strip>>;
234
251
  costUsd: z.ZodNumber;
252
+ tokens: z.ZodOptional<z.ZodObject<{
253
+ input: z.ZodInt;
254
+ output: z.ZodInt;
255
+ }, z.core.$strip>>;
235
256
  }, z.core.$strip>>;
236
257
  cases: z.ZodArray<z.ZodObject<{
237
258
  name: z.ZodString;
@@ -261,6 +282,10 @@ export declare const SkillDetail: z.ZodObject<{
261
282
  tool: z.ZodString;
262
283
  }, z.core.$strip>>;
263
284
  costUsd: z.ZodNumber;
285
+ tokens: z.ZodOptional<z.ZodObject<{
286
+ input: z.ZodInt;
287
+ output: z.ZodInt;
288
+ }, z.core.$strip>>;
264
289
  runId: z.ZodNullable<z.ZodTemplateLiteral<`run_${string}`>>;
265
290
  }, z.core.$strip>>;
266
291
  problem: z.ZodNullable<z.ZodString>;
@@ -94,6 +94,8 @@ export const SkillPoint = z.object({
94
94
  reason: z.string().nullable(),
95
95
  });
96
96
  export const skillCaseStatuses = ["passed", "failed", "missing"];
97
+ // What the model read and wrote in a step of the tests, in tokens (#835, E146).
98
+ export const SkillTokens = z.object({ input: z.int(), output: z.int() });
97
99
  export const SkillCaseResult = z.object({
98
100
  name: z.string(),
99
101
  // passed: every run passed every point; failed: one did not; missing: a tool without a recording
@@ -110,6 +112,8 @@ export const SkillCaseResult = z.object({
110
112
  // The sandbox's writes of the last run: what it would have written, written nowhere.
111
113
  sandbox: z.array(z.object({ tool: z.string() })),
112
114
  costUsd: z.number(),
115
+ // The model's tokens over every run of the case (#835); absent in a report from before.
116
+ tokens: SkillTokens.optional(),
113
117
  // The probe run of the case's last attempt, its trace in the log.
114
118
  runId: RunId.nullable(),
115
119
  });
@@ -135,6 +139,7 @@ export const SkillTestReport = z.object({
135
139
  operator: NodePerson.nullable(),
136
140
  hits: z.array(SkillTriggerHit),
137
141
  costUsd: z.number(),
142
+ tokens: SkillTokens.optional(),
138
143
  })
139
144
  .nullable(),
140
145
  cases: z.array(SkillCaseResult),
@@ -52,11 +52,11 @@ export declare const TaskVersionChange: z.ZodEnum<{
52
52
  title: "title";
53
53
  text: "text";
54
54
  dates: "dates";
55
+ waiting: "waiting";
55
56
  assignee: "assignee";
56
57
  labels: "labels";
57
58
  parent: "parent";
58
59
  dependencies: "dependencies";
59
- waiting: "waiting";
60
60
  }>;
61
61
  export type TaskVersionChange = z.infer<typeof TaskVersionChange>;
62
62
  export declare const TaskMove: z.ZodObject<{
@@ -168,11 +168,11 @@ export declare const NodeVersion: z.ZodObject<{
168
168
  title: "title";
169
169
  text: "text";
170
170
  dates: "dates";
171
+ waiting: "waiting";
171
172
  assignee: "assignee";
172
173
  labels: "labels";
173
174
  parent: "parent";
174
175
  dependencies: "dependencies";
175
- waiting: "waiting";
176
176
  }>>>;
177
177
  }, z.core.$strip>;
178
178
  export type NodeVersion = z.infer<typeof NodeVersion>;
@@ -229,11 +229,11 @@ export declare const NodeVersionList: z.ZodObject<{
229
229
  title: "title";
230
230
  text: "text";
231
231
  dates: "dates";
232
+ waiting: "waiting";
232
233
  assignee: "assignee";
233
234
  labels: "labels";
234
235
  parent: "parent";
235
236
  dependencies: "dependencies";
236
- waiting: "waiting";
237
237
  }>>>;
238
238
  }, z.core.$strip>>;
239
239
  nextCursor: z.ZodNullable<z.ZodString>;
@@ -292,11 +292,11 @@ export declare const NodeVersionDetail: z.ZodObject<{
292
292
  title: "title";
293
293
  text: "text";
294
294
  dates: "dates";
295
+ waiting: "waiting";
295
296
  assignee: "assignee";
296
297
  labels: "labels";
297
298
  parent: "parent";
298
299
  dependencies: "dependencies";
299
- waiting: "waiting";
300
300
  }>>>;
301
301
  secret: z.ZodOptional<z.ZodLiteral<true>>;
302
302
  locked: z.ZodOptional<z.ZodBoolean>;
@@ -443,11 +443,11 @@ export declare const NodeVersionExcerpt: z.ZodObject<{
443
443
  title: "title";
444
444
  text: "text";
445
445
  dates: "dates";
446
+ waiting: "waiting";
446
447
  assignee: "assignee";
447
448
  labels: "labels";
448
449
  parent: "parent";
449
450
  dependencies: "dependencies";
450
- waiting: "waiting";
451
451
  }>>>;
452
452
  secret: z.ZodOptional<z.ZodLiteral<true>>;
453
453
  locked: z.ZodOptional<z.ZodBoolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anchrd/colab-sdk",
3
- "version": "0.1.23",
3
+ "version": "0.1.24",
4
4
  "description": "Types, Zod schemas and the service client of Colab, the contract between its UI, backends and outside services.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",