terse-types 0.0.29 → 0.0.31

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/dist/Tools.js CHANGED
@@ -26,7 +26,6 @@ export const linearIssueAssigneeSchema = z.object({
26
26
  name: z.string(),
27
27
  email: z.string().optional()
28
28
  });
29
- export const linearIssueTeamSchema = linearTeamSchema;
30
29
  export const linearIssueProjectSchema = z.object({
31
30
  id: z.string(),
32
31
  name: z.string()
@@ -44,7 +43,7 @@ export const linearIssueSummarySchema = z.object({
44
43
  updatedAt: dateLikeSchema
45
44
  });
46
45
  export const linearIssueDetailSchema = linearIssueSummarySchema.extend({
47
- team: linearIssueTeamSchema.nullable(),
46
+ team: linearTeamSchema.nullable(),
48
47
  project: linearIssueProjectSchema.nullable(),
49
48
  dueDate: dateLikeSchema.optional(),
50
49
  estimate: z.number().nullable().optional()
@@ -225,7 +224,6 @@ export const notionReadablePropertyValueSchema = z.union([
225
224
  z.array(notionFileReferenceSchema),
226
225
  notionLooseObjectSchema
227
226
  ]);
228
- export const notionPageParentSchema = notionLooseObjectSchema;
229
227
  export const notionPageBlockSchema = z.lazy(() => z.object({
230
228
  id: z.string(),
231
229
  type: z.string(),
@@ -262,7 +260,7 @@ export const notionPageQueryMetadataSchema = z.object({
262
260
  archived: z.boolean().optional(),
263
261
  icon: notionLooseObjectSchema.nullable().optional(),
264
262
  cover: notionLooseObjectSchema.nullable().optional(),
265
- parent: notionPageParentSchema.optional(),
263
+ parent: notionLooseObjectSchema.optional(),
266
264
  created_by: notionUserReferenceSchema.optional(),
267
265
  last_edited_by: notionUserReferenceSchema.optional(),
268
266
  in_trash: z.boolean().optional()
@@ -573,7 +571,7 @@ export const slackReadConversationInputSchema = z.object({
573
571
  export const searchGitHubCodeInputSchema = z.object({
574
572
  repositoryNames: z.array(z.string()).describe("Array of repository full names (owner/repo format) to search in."),
575
573
  query: z.string().describe('The search query. Use natural language or code-specific terms. Examples: "authentication middleware", "class UserRepository", "handleSubmit form validation"'),
576
- language: z.string().nullable().optional().describe('Filter by programming language (e.g., "typescript", "python", "javascript"). Use null to search all languages.'),
574
+ language: z.string().nullable().optional().describe('Filter by programming language (e.g., "typescript", "javascript"). Use null to search all languages.'),
577
575
  filename: z.string().nullable().optional().describe('Filter by filename pattern (e.g., "*.test.ts" for test files, "*.config.*" for config files). Use null to search all files.'),
578
576
  path: z.string().nullable().optional().describe('Filter by path (e.g., "src/components" to only search in that directory). Use null to search everywhere.'),
579
577
  perPage: z.number().int().describe("Number of results to return (default: 10, max: 100)"),
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export declare const organizationMetadataSchema: z.ZodObject<{
3
+ subscriptionPurchaserUserId: z.ZodOptional<z.ZodString>;
4
+ subscriptionId: z.ZodOptional<z.ZodString>;
5
+ metronomeCustomerId: z.ZodOptional<z.ZodString>;
6
+ runExecutionBlocked: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>, z.ZodTransform<boolean, string | boolean | undefined>>;
7
+ }, z.core.$strip>;
8
+ export type OrganizationMetadata = z.infer<typeof organizationMetadataSchema>;
9
+ export declare const userMetadataSchema: z.ZodObject<{
10
+ db_id: z.ZodOptional<z.ZodString>;
11
+ stripeCustomerId: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ export type UserMetadata = z.infer<typeof userMetadataSchema>;
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ // Can be serialized a string, supports deserialization
3
+ const booleanMetadataSchema = z
4
+ .union([z.boolean(), z.string()])
5
+ .optional()
6
+ .transform(value => value === true || value === "true");
7
+ export const organizationMetadataSchema = z.object({
8
+ subscriptionPurchaserUserId: z.string().optional(),
9
+ subscriptionId: z.string().optional(),
10
+ metronomeCustomerId: z.string().optional(),
11
+ runExecutionBlocked: booleanMetadataSchema
12
+ });
13
+ export const userMetadataSchema = z.object({
14
+ db_id: z.string().optional(),
15
+ stripeCustomerId: z.string().optional()
16
+ });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Pure config-to-ACL derivation (no network I/O).
3
+ *
4
+ * ACL and `readOnly` apply only to model-selected tool calls during agent runs; see `ACL.ts`
5
+ * for the full product contract.
6
+ */
7
+ import type { ACLRule } from "./ACL.js";
8
+ import type { ConfigData } from "./Configs.js";
9
+ export declare function getConfigACLRules(config: ConfigData): ACLRule[];
10
+ export declare function getMergedACLRules(configs: ConfigData[]): ACLRule[];
@@ -0,0 +1,313 @@
1
+ import { ConfigType } from "./Configs.js";
2
+ import { IntegrationType } from "./Integrations.js";
3
+ function assertNever(value) {
4
+ throw new Error(`Unhandled config type: ${JSON.stringify(value)}`);
5
+ }
6
+ // Slack
7
+ function getSlackOutputConfigACLRules(config) {
8
+ const rules = [];
9
+ if (config.channelId) {
10
+ rules.push({
11
+ integrationType: IntegrationType.SLACK,
12
+ integrationId: config.integrationId,
13
+ resourceType: "channel",
14
+ resourceId: config.channelId
15
+ });
16
+ }
17
+ for (const userId of config.userIds ?? []) {
18
+ rules.push({
19
+ integrationType: IntegrationType.SLACK,
20
+ integrationId: config.integrationId,
21
+ resourceType: "dm_user",
22
+ resourceId: userId
23
+ });
24
+ }
25
+ return rules;
26
+ }
27
+ function getSlackInputConfigACLRules(config) {
28
+ const rules = [];
29
+ if (config.channelId) {
30
+ rules.push({
31
+ integrationType: IntegrationType.SLACK,
32
+ integrationId: config.integrationId,
33
+ resourceType: "channel",
34
+ resourceId: config.channelId
35
+ });
36
+ }
37
+ for (const userId of config.userIds ?? []) {
38
+ rules.push({
39
+ integrationType: IntegrationType.SLACK,
40
+ integrationId: config.integrationId,
41
+ resourceType: "dm_user",
42
+ resourceId: userId
43
+ });
44
+ }
45
+ return rules;
46
+ }
47
+ // Notion
48
+ function getNotionConfigACLRules(config) {
49
+ return [
50
+ ...(config.pageIds ?? []).map((pageId) => ({
51
+ integrationType: IntegrationType.NOTION,
52
+ integrationId: config.integrationId,
53
+ resourceType: "page",
54
+ resourceId: pageId
55
+ })),
56
+ ...(config.databaseIds ?? []).map((databaseId) => ({
57
+ integrationType: IntegrationType.NOTION,
58
+ integrationId: config.integrationId,
59
+ resourceType: "database",
60
+ resourceId: databaseId
61
+ }))
62
+ ];
63
+ }
64
+ // Gmail
65
+ function getGmailOutputConfigACLRules(config) {
66
+ return [
67
+ {
68
+ integrationType: IntegrationType.GMAIL,
69
+ integrationId: config.integrationId,
70
+ resourceType: "send",
71
+ resourceId: "send"
72
+ }
73
+ ];
74
+ }
75
+ function getGmailDraftOutputConfigACLRules(config) {
76
+ return [
77
+ {
78
+ integrationType: IntegrationType.GMAIL,
79
+ integrationId: config.integrationId,
80
+ resourceType: "draft",
81
+ resourceId: "draft"
82
+ }
83
+ ];
84
+ }
85
+ // Terse built-in capabilities
86
+ function getWebConfigACLRules(config) {
87
+ return [
88
+ {
89
+ integrationType: IntegrationType.TERSE,
90
+ integrationId: config.integrationId,
91
+ resourceType: "web_capability",
92
+ resourceId: "system"
93
+ }
94
+ ];
95
+ }
96
+ function getImageEditConfigACLRules(config) {
97
+ return [
98
+ {
99
+ integrationType: IntegrationType.TERSE,
100
+ integrationId: config.integrationId,
101
+ resourceType: "image_edit_capability",
102
+ resourceId: "system"
103
+ }
104
+ ];
105
+ }
106
+ // Linear
107
+ function getLinearInputConfigACLRules(config) {
108
+ const rules = [
109
+ {
110
+ integrationType: IntegrationType.LINEAR,
111
+ integrationId: config.integrationId,
112
+ resourceType: "integration",
113
+ resourceId: config.integrationId
114
+ }
115
+ ];
116
+ if (config.teamId) {
117
+ rules.push({
118
+ integrationType: IntegrationType.LINEAR,
119
+ integrationId: config.integrationId,
120
+ resourceType: "team",
121
+ resourceId: config.teamId
122
+ });
123
+ }
124
+ if (config.projectId) {
125
+ rules.push({
126
+ integrationType: IntegrationType.LINEAR,
127
+ integrationId: config.integrationId,
128
+ resourceType: "project",
129
+ resourceId: config.projectId
130
+ });
131
+ }
132
+ return rules;
133
+ }
134
+ function getLinearOutputConfigACLRules(config) {
135
+ const rules = [
136
+ {
137
+ integrationType: IntegrationType.LINEAR,
138
+ integrationId: config.integrationId,
139
+ resourceType: "integration",
140
+ resourceId: config.integrationId
141
+ }
142
+ ];
143
+ if (config.teamId) {
144
+ rules.push({
145
+ integrationType: IntegrationType.LINEAR,
146
+ integrationId: config.integrationId,
147
+ resourceType: "team",
148
+ resourceId: config.teamId
149
+ });
150
+ }
151
+ if (config.projectId) {
152
+ rules.push({
153
+ integrationType: IntegrationType.LINEAR,
154
+ integrationId: config.integrationId,
155
+ resourceType: "project",
156
+ resourceId: config.projectId
157
+ });
158
+ }
159
+ return rules;
160
+ }
161
+ // PostHog
162
+ function getPosthogConfigACLRules(config) {
163
+ return [
164
+ {
165
+ integrationType: IntegrationType.POSTHOG,
166
+ integrationId: config.integrationId,
167
+ resourceType: "project",
168
+ resourceId: config.projectId
169
+ }
170
+ ];
171
+ }
172
+ // Datadog
173
+ function getDatadogConfigACLRules(config) {
174
+ const rules = [
175
+ {
176
+ integrationType: IntegrationType.DATADOG,
177
+ integrationId: config.integrationId,
178
+ resourceType: "integration",
179
+ resourceId: config.integrationId
180
+ }
181
+ ];
182
+ for (const indexName of config.defaultIndexes ?? []) {
183
+ rules.push({
184
+ integrationType: IntegrationType.DATADOG,
185
+ integrationId: config.integrationId,
186
+ resourceType: "index",
187
+ resourceId: indexName
188
+ });
189
+ }
190
+ return rules;
191
+ }
192
+ // LaunchDarkly
193
+ function getLaunchDarklyConfigACLRules(config) {
194
+ const rules = [
195
+ {
196
+ integrationType: IntegrationType.LAUNCHDARKLY,
197
+ integrationId: config.integrationId,
198
+ resourceType: "project",
199
+ resourceId: config.projectKey
200
+ }
201
+ ];
202
+ for (const envKey of config.environmentKeys) {
203
+ rules.push({
204
+ integrationType: IntegrationType.LAUNCHDARKLY,
205
+ integrationId: config.integrationId,
206
+ resourceType: "environment",
207
+ resourceId: `${config.projectKey}:${envKey}`
208
+ });
209
+ }
210
+ return rules;
211
+ }
212
+ // WorkOS
213
+ function getWorkOSInputConfigACLRules(config) {
214
+ return [
215
+ {
216
+ integrationType: IntegrationType.WORKOS,
217
+ integrationId: config.integrationId,
218
+ resourceType: "integration",
219
+ resourceId: config.integrationId
220
+ }
221
+ ];
222
+ }
223
+ function getWorkOSOutputConfigACLRules(config) {
224
+ return [
225
+ {
226
+ integrationType: IntegrationType.WORKOS,
227
+ integrationId: config.integrationId,
228
+ resourceType: "integration",
229
+ resourceId: config.integrationId
230
+ }
231
+ ];
232
+ }
233
+ // Attio
234
+ function getAttioOutputConfigACLRules(config) {
235
+ const rules = [
236
+ {
237
+ integrationType: IntegrationType.ATTIO,
238
+ integrationId: config.integrationId,
239
+ resourceType: "integration",
240
+ resourceId: config.integrationId
241
+ }
242
+ ];
243
+ if (config.objectSlug) {
244
+ rules.push({
245
+ integrationType: IntegrationType.ATTIO,
246
+ integrationId: config.integrationId,
247
+ resourceType: "object",
248
+ resourceId: config.objectSlug
249
+ });
250
+ }
251
+ return rules;
252
+ }
253
+ // Snowflake
254
+ function getSnowflakeOutputConfigACLRules(config) {
255
+ return [
256
+ {
257
+ integrationType: IntegrationType.SNOWFLAKE,
258
+ integrationId: config.integrationId,
259
+ resourceType: "integration",
260
+ resourceId: config.integrationId
261
+ }
262
+ ];
263
+ }
264
+ export function getConfigACLRules(config) {
265
+ switch (config.configType) {
266
+ // Input/trigger-only configs do not grant model-selected output tool ACL.
267
+ case ConfigType.GMAIL:
268
+ case ConfigType.TIME_TRIGGER:
269
+ case ConfigType.WEBHOOK_INPUT:
270
+ case ConfigType.WEBMONITOR:
271
+ return [];
272
+ case ConfigType.SLACK:
273
+ return getSlackInputConfigACLRules(config);
274
+ case ConfigType.SLACK_OUTPUT:
275
+ return getSlackOutputConfigACLRules(config);
276
+ case ConfigType.NOTION:
277
+ return getNotionConfigACLRules(config);
278
+ case ConfigType.LINEAR_INPUT:
279
+ return getLinearInputConfigACLRules(config);
280
+ case ConfigType.LINEAR_OUTPUT:
281
+ return getLinearOutputConfigACLRules(config);
282
+ case ConfigType.GITHUB:
283
+ // GitHub repository IDs require backend hydration to owner/repo names.
284
+ return [];
285
+ case ConfigType.GMAIL_OUTPUT:
286
+ return getGmailOutputConfigACLRules(config);
287
+ case ConfigType.GMAIL_DRAFT_OUTPUT:
288
+ return getGmailDraftOutputConfigACLRules(config);
289
+ case ConfigType.POSTHOG:
290
+ return getPosthogConfigACLRules(config);
291
+ case ConfigType.DATADOG:
292
+ return getDatadogConfigACLRules(config);
293
+ case ConfigType.LAUNCHDARKLY:
294
+ return getLaunchDarklyConfigACLRules(config);
295
+ case ConfigType.WEB:
296
+ return getWebConfigACLRules(config);
297
+ case ConfigType.IMAGE_EDIT:
298
+ return getImageEditConfigACLRules(config);
299
+ case ConfigType.WORKOS_INPUT:
300
+ return getWorkOSInputConfigACLRules(config);
301
+ case ConfigType.WORKOS_OUTPUT:
302
+ return getWorkOSOutputConfigACLRules(config);
303
+ case ConfigType.ATTIO_OUTPUT:
304
+ return getAttioOutputConfigACLRules(config);
305
+ case ConfigType.SNOWFLAKE_OUTPUT:
306
+ return getSnowflakeOutputConfigACLRules(config);
307
+ default:
308
+ return assertNever(config);
309
+ }
310
+ }
311
+ export function getMergedACLRules(configs) {
312
+ return configs.flatMap(getConfigACLRules);
313
+ }
package/dist/index.d.ts CHANGED
@@ -3,8 +3,9 @@ export * from "./ApprovalTypes.js";
3
3
  export * from "./ClientBoundTools.js";
4
4
  export * from "./Configs.js";
5
5
  export * from "./DonatedState.js";
6
- export * from "./Entities.js";
7
6
  export * from "./FrontendRoutesBuilder.js";
7
+ export * from "./Entities.js";
8
+ export * from "./Decision.js";
8
9
  export * from "./Integrations.js";
9
10
  export * from "./InvalidationKeys.js";
10
11
  export * from "./JsonSchemaUtils.js";
@@ -13,13 +14,13 @@ export * from "./Notifications.js";
13
14
  export * from "./RunHistoryTypes.js";
14
15
  export * from "./SentNotifications.js";
15
16
  export * from "./SlackTypes.js";
16
- export * from "./OrganizationMetadata.js";
17
+ export * from "./WorkOSMetadata.js";
17
18
  export * from "./SocketEvents.js";
18
19
  export * from "./Survey.js";
19
20
  export * from "./Tools.js";
20
21
  export * from "./Billing.js";
21
22
  export * from "./ModelRegistry.js";
22
- export { Comment, CreateTicketInput, LinearStateName, Milestone, Organization, Project, Team, Ticket, TicketState, TicketSystemType, TicketWebhookHandler, Update, UpdateTicketInput, UserContext } from "./TicketSystem.js";
23
+ export * from "./TicketSystem.js";
23
24
  export * from "./ToolDisplayUtils.js";
24
25
  export * from "./Triggers.js";
25
26
  export * from "./ToolsTypes.js";
package/dist/index.js CHANGED
@@ -3,8 +3,9 @@ export * from "./ApprovalTypes.js";
3
3
  export * from "./ClientBoundTools.js";
4
4
  export * from "./Configs.js";
5
5
  export * from "./DonatedState.js";
6
- export * from "./Entities.js";
7
6
  export * from "./FrontendRoutesBuilder.js";
7
+ export * from "./Entities.js";
8
+ export * from "./Decision.js";
8
9
  export * from "./Integrations.js";
9
10
  export * from "./InvalidationKeys.js";
10
11
  export * from "./JsonSchemaUtils.js";
@@ -13,13 +14,13 @@ export * from "./Notifications.js";
13
14
  export * from "./RunHistoryTypes.js";
14
15
  export * from "./SentNotifications.js";
15
16
  export * from "./SlackTypes.js";
16
- export * from "./OrganizationMetadata.js";
17
+ export * from "./WorkOSMetadata.js";
17
18
  export * from "./SocketEvents.js";
18
19
  export * from "./Survey.js";
19
20
  export * from "./Tools.js";
20
21
  export * from "./Billing.js";
21
22
  export * from "./ModelRegistry.js";
22
- export { LinearStateName, TicketSystemType } from "./TicketSystem.js";
23
+ export * from "./TicketSystem.js";
23
24
  export * from "./ToolDisplayUtils.js";
24
25
  export * from "./Triggers.js";
25
26
  export * from "./ToolsTypes.js";
package/dist/types.d.ts CHANGED
@@ -1031,11 +1031,11 @@ export declare const runHistoryRecordSchema: z.ZodObject<{
1031
1031
  step_id: z.ZodOptional<z.ZodString>;
1032
1032
  type: z.ZodEnum<{
1033
1033
  error: "error";
1034
+ approve: "approve";
1034
1035
  create: "create";
1035
1036
  update: "update";
1036
1037
  delete: "delete";
1037
1038
  read: "read";
1038
- approve: "approve";
1039
1039
  }>;
1040
1040
  isReadOnly: z.ZodOptional<z.ZodBoolean>;
1041
1041
  output_items: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -1083,11 +1083,11 @@ export declare const runHistoryRecordWithAgentSchema: z.ZodObject<{
1083
1083
  step_id: z.ZodOptional<z.ZodString>;
1084
1084
  type: z.ZodEnum<{
1085
1085
  error: "error";
1086
+ approve: "approve";
1086
1087
  create: "create";
1087
1088
  update: "update";
1088
1089
  delete: "delete";
1089
1090
  read: "read";
1090
- approve: "approve";
1091
1091
  }>;
1092
1092
  isReadOnly: z.ZodOptional<z.ZodBoolean>;
1093
1093
  output_items: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -1111,11 +1111,11 @@ export declare const agentNotificationSettingsSchema: z.ZodObject<{
1111
1111
  enabled: z.ZodBoolean;
1112
1112
  actionTypes: z.ZodArray<z.ZodEnum<{
1113
1113
  error: "error";
1114
+ approve: "approve";
1114
1115
  create: "create";
1115
1116
  update: "update";
1116
1117
  delete: "delete";
1117
1118
  read: "read";
1118
- approve: "approve";
1119
1119
  }>>;
1120
1120
  }, z.core.$strip>;
1121
1121
  export type AgentNotificationSettings = z.infer<typeof agentNotificationSettingsSchema>;
@@ -1477,11 +1477,11 @@ export declare const agentSchema: z.ZodObject<{
1477
1477
  enabled: z.ZodBoolean;
1478
1478
  actionTypes: z.ZodArray<z.ZodEnum<{
1479
1479
  error: "error";
1480
+ approve: "approve";
1480
1481
  create: "create";
1481
1482
  update: "update";
1482
1483
  delete: "delete";
1483
1484
  read: "read";
1484
- approve: "approve";
1485
1485
  }>>;
1486
1486
  }, z.core.$strip>>;
1487
1487
  toolApprovals: z.ZodNullable<z.ZodArray<z.ZodString>>;
@@ -1847,11 +1847,11 @@ export declare const agentUpdateSchema: z.ZodObject<{
1847
1847
  enabled: z.ZodBoolean;
1848
1848
  actionTypes: z.ZodArray<z.ZodEnum<{
1849
1849
  error: "error";
1850
+ approve: "approve";
1850
1851
  create: "create";
1851
1852
  update: "update";
1852
1853
  delete: "delete";
1853
1854
  read: "read";
1854
- approve: "approve";
1855
1855
  }>>;
1856
1856
  }, z.core.$strip>>>;
1857
1857
  toolApprovals: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
@@ -2212,11 +2212,11 @@ export declare const agentCreateSchema: z.ZodObject<{
2212
2212
  enabled: z.ZodBoolean;
2213
2213
  actionTypes: z.ZodArray<z.ZodEnum<{
2214
2214
  error: "error";
2215
+ approve: "approve";
2215
2216
  create: "create";
2216
2217
  update: "update";
2217
2218
  delete: "delete";
2218
2219
  read: "read";
2219
- approve: "approve";
2220
2220
  }>>;
2221
2221
  }, z.core.$strip>>;
2222
2222
  toolApprovals: z.ZodNullable<z.ZodArray<z.ZodString>>;
@@ -2577,11 +2577,11 @@ export declare const agentDraftSchema: z.ZodObject<{
2577
2577
  enabled: z.ZodBoolean;
2578
2578
  actionTypes: z.ZodArray<z.ZodEnum<{
2579
2579
  error: "error";
2580
+ approve: "approve";
2580
2581
  create: "create";
2581
2582
  update: "update";
2582
2583
  delete: "delete";
2583
2584
  read: "read";
2584
- approve: "approve";
2585
2585
  }>>;
2586
2586
  }, z.core.$strip>>;
2587
2587
  toolApprovals: z.ZodNullable<z.ZodArray<z.ZodString>>;
@@ -2948,11 +2948,11 @@ export declare const agentsResponseSchema: z.ZodObject<{
2948
2948
  enabled: z.ZodBoolean;
2949
2949
  actionTypes: z.ZodArray<z.ZodEnum<{
2950
2950
  error: "error";
2951
+ approve: "approve";
2951
2952
  create: "create";
2952
2953
  update: "update";
2953
2954
  delete: "delete";
2954
2955
  read: "read";
2955
- approve: "approve";
2956
2956
  }>>;
2957
2957
  }, z.core.$strip>>;
2958
2958
  toolApprovals: z.ZodNullable<z.ZodArray<z.ZodString>>;
@@ -3327,11 +3327,11 @@ export declare const recentAgentSchema: z.ZodObject<{
3327
3327
  enabled: z.ZodBoolean;
3328
3328
  actionTypes: z.ZodArray<z.ZodEnum<{
3329
3329
  error: "error";
3330
+ approve: "approve";
3330
3331
  create: "create";
3331
3332
  update: "update";
3332
3333
  delete: "delete";
3333
3334
  read: "read";
3334
- approve: "approve";
3335
3335
  }>>;
3336
3336
  }, z.core.$strip>>;
3337
3337
  toolApprovals: z.ZodNullable<z.ZodArray<z.ZodString>>;
@@ -3598,11 +3598,11 @@ export declare const recentActionSchema: z.ZodObject<{
3598
3598
  agentName: z.ZodString;
3599
3599
  type: z.ZodEnum<{
3600
3600
  error: "error";
3601
+ approve: "approve";
3601
3602
  create: "create";
3602
3603
  update: "update";
3603
3604
  delete: "delete";
3604
3605
  read: "read";
3605
- approve: "approve";
3606
3606
  }>;
3607
3607
  }, z.core.$strip>;
3608
3608
  export type RecentAction = z.infer<typeof recentActionSchema>;
@@ -3638,11 +3638,11 @@ export declare const statsResponseSchema: z.ZodObject<{
3638
3638
  agentName: z.ZodString;
3639
3639
  type: z.ZodEnum<{
3640
3640
  error: "error";
3641
+ approve: "approve";
3641
3642
  create: "create";
3642
3643
  update: "update";
3643
3644
  delete: "delete";
3644
3645
  read: "read";
3645
- approve: "approve";
3646
3646
  }>;
3647
3647
  }, z.core.$strip>>;
3648
3648
  recentRuns: z.ZodArray<z.ZodObject<{
@@ -3674,11 +3674,11 @@ export declare const statsResponseSchema: z.ZodObject<{
3674
3674
  step_id: z.ZodOptional<z.ZodString>;
3675
3675
  type: z.ZodEnum<{
3676
3676
  error: "error";
3677
+ approve: "approve";
3677
3678
  create: "create";
3678
3679
  update: "update";
3679
3680
  delete: "delete";
3680
3681
  read: "read";
3681
- approve: "approve";
3682
3682
  }>;
3683
3683
  isReadOnly: z.ZodOptional<z.ZodBoolean>;
3684
3684
  output_items: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -5401,11 +5401,11 @@ export declare const actionSchema: z.ZodObject<{
5401
5401
  step_id: z.ZodOptional<z.ZodString>;
5402
5402
  type: z.ZodEnum<{
5403
5403
  error: "error";
5404
+ approve: "approve";
5404
5405
  create: "create";
5405
5406
  update: "update";
5406
5407
  delete: "delete";
5407
5408
  read: "read";
5408
- approve: "approve";
5409
5409
  }>;
5410
5410
  isReadOnly: z.ZodOptional<z.ZodBoolean>;
5411
5411
  output_items: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -5473,11 +5473,11 @@ export declare const sdkAgentStreamEventSchema: z.ZodDiscriminatedUnion<[z.ZodOb
5473
5473
  step_id: z.ZodOptional<z.ZodString>;
5474
5474
  type: z.ZodEnum<{
5475
5475
  error: "error";
5476
+ approve: "approve";
5476
5477
  create: "create";
5477
5478
  update: "update";
5478
5479
  delete: "delete";
5479
5480
  read: "read";
5480
- approve: "approve";
5481
5481
  }>;
5482
5482
  isReadOnly: z.ZodOptional<z.ZodBoolean>;
5483
5483
  output_items: z.ZodOptional<z.ZodArray<z.ZodObject<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terse-types",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "type": "module",
5
5
  "description": "Shared Terse TypeScript types, enums, constants, and helpers.",
6
6
  "main": "./dist/index.js",
@@ -34,17 +34,14 @@
34
34
  "typescript": "^5.8.3"
35
35
  },
36
36
  "dependencies": {
37
- "@slack/types": "^2.20.1",
38
37
  "@slack/web-api": "^7.15.0",
39
38
  "zod": "4.3.6"
40
39
  },
41
40
  "scripts": {
42
41
  "build": "tsc -p tsconfig.build.json && node --input-type=module -e \"import { fix } from 'tsc-esm-fix'; await fix({ cwd: process.cwd(), target: ['dist'], ext: '.js' })\"",
43
42
  "check:schema": "node --import tsx scripts/check-schema-compat.ts",
44
- "build:json-schema": "node --import tsx scripts/export-json-schema.ts",
45
43
  "clean": "rm -rf dist",
46
44
  "dev": "node ../scripts/tsc-watch-and-fix.mjs tsconfig.build.json dist",
47
- "dev:python-types": "node scripts/dev-with-codegen.mjs",
48
45
  "format": "pnpm exec prettier --config ../.prettierrc --write \"*.{ts,json}\"",
49
46
  "format:check": "pnpm exec prettier --config ../.prettierrc --check \"*.{ts,json}\""
50
47
  }