@cat-factory/contracts 0.108.1 → 0.110.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 (43) hide show
  1. package/dist/accounts.d.ts +18 -1
  2. package/dist/accounts.d.ts.map +1 -1
  3. package/dist/accounts.js +18 -1
  4. package/dist/accounts.js.map +1 -1
  5. package/dist/entities.d.ts +61 -5
  6. package/dist/entities.d.ts.map +1 -1
  7. package/dist/entities.js +50 -5
  8. package/dist/entities.js.map +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/routes/accounts.d.ts +4 -0
  14. package/dist/routes/accounts.d.ts.map +1 -1
  15. package/dist/routes/agent-runs.d.ts +12 -0
  16. package/dist/routes/agent-runs.d.ts.map +1 -1
  17. package/dist/routes/execution.d.ts +48 -0
  18. package/dist/routes/execution.d.ts.map +1 -1
  19. package/dist/routes/human-review.d.ts +6 -0
  20. package/dist/routes/human-review.d.ts.map +1 -1
  21. package/dist/routes/human-test.d.ts +30 -0
  22. package/dist/routes/human-test.d.ts.map +1 -1
  23. package/dist/routes/index.d.ts +1 -0
  24. package/dist/routes/index.d.ts.map +1 -1
  25. package/dist/routes/index.js +1 -0
  26. package/dist/routes/index.js.map +1 -1
  27. package/dist/routes/user-settings.d.ts +66 -0
  28. package/dist/routes/user-settings.d.ts.map +1 -0
  29. package/dist/routes/user-settings.js +20 -0
  30. package/dist/routes/user-settings.js.map +1 -0
  31. package/dist/routes/visual-confirm.d.ts +18 -0
  32. package/dist/routes/visual-confirm.d.ts.map +1 -1
  33. package/dist/routes/workspaces.d.ts +64 -0
  34. package/dist/routes/workspaces.d.ts.map +1 -1
  35. package/dist/snapshot.d.ts +54 -2
  36. package/dist/snapshot.d.ts.map +1 -1
  37. package/dist/snapshot.js +28 -3
  38. package/dist/snapshot.js.map +1 -1
  39. package/dist/user-settings.d.ts +20 -0
  40. package/dist/user-settings.d.ts.map +1 -0
  41. package/dist/user-settings.js +27 -0
  42. package/dist/user-settings.js.map +1 -0
  43. package/package.json +1 -1
@@ -1039,6 +1039,12 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
1039
1039
  }, undefined>, undefined>;
1040
1040
  readonly stepIndex: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
1041
1041
  }, undefined>, undefined>, undefined>;
1042
+ readonly outputHistory: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1043
+ readonly stepIndex: v.NumberSchema<undefined>;
1044
+ readonly occurredAt: v.NumberSchema<undefined>;
1045
+ readonly output: v.StringSchema<undefined>;
1046
+ readonly truncated: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1047
+ }, undefined>, undefined>, undefined>;
1042
1048
  readonly notes: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
1043
1049
  readonly frontendBindings: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1044
1050
  readonly envVar: v.StringSchema<undefined>;
@@ -1145,8 +1151,9 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
1145
1151
  readonly updatedAt: v.NumberSchema<undefined>;
1146
1152
  }, undefined>, undefined>, undefined>;
1147
1153
  /**
1148
- * The current spend-safeguard status. Attached by the worker (it depends on
1149
- * deployment-wide pricing/budget config), so it is optional on the wire.
1154
+ * The current spend-safeguard status for the WORKSPACE tier. Attached by the
1155
+ * facade (it depends on deployment-wide pricing/budget config), so it is optional
1156
+ * on the wire.
1150
1157
  */
1151
1158
  readonly spend: v.OptionalSchema<v.ObjectSchema<{
1152
1159
  readonly periodStart: v.NumberSchema<undefined>;
@@ -1157,6 +1164,51 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
1157
1164
  readonly currency: v.StringSchema<undefined>;
1158
1165
  readonly exceeded: v.BooleanSchema<undefined>;
1159
1166
  }, undefined>, undefined>;
1167
+ /**
1168
+ * The ACCOUNT-tier spend status (this period's spend across all the owning
1169
+ * account's workspaces vs the account budget). Attached only when the workspace
1170
+ * belongs to an account and the account tier is active (a limit or env cap is set).
1171
+ */
1172
+ readonly accountSpend: v.OptionalSchema<v.ObjectSchema<{
1173
+ readonly periodStart: v.NumberSchema<undefined>;
1174
+ readonly inputTokens: v.NumberSchema<undefined>;
1175
+ readonly outputTokens: v.NumberSchema<undefined>;
1176
+ readonly costSpent: v.NumberSchema<undefined>;
1177
+ readonly costLimit: v.NumberSchema<undefined>;
1178
+ readonly currency: v.StringSchema<undefined>;
1179
+ readonly exceeded: v.BooleanSchema<undefined>;
1180
+ }, undefined>, undefined>;
1181
+ /**
1182
+ * The USER-tier spend status for the signed-in caller (this period's spend across
1183
+ * every run they initiated vs their user budget). Attached only when the user tier
1184
+ * is active (a limit or env cap is set).
1185
+ */
1186
+ readonly userSpend: v.OptionalSchema<v.ObjectSchema<{
1187
+ readonly periodStart: v.NumberSchema<undefined>;
1188
+ readonly inputTokens: v.NumberSchema<undefined>;
1189
+ readonly outputTokens: v.NumberSchema<undefined>;
1190
+ readonly costSpent: v.NumberSchema<undefined>;
1191
+ readonly costLimit: v.NumberSchema<undefined>;
1192
+ readonly currency: v.StringSchema<undefined>;
1193
+ readonly exceeded: v.BooleanSchema<undefined>;
1194
+ }, undefined>, undefined>;
1195
+ /**
1196
+ * The signed-in caller's editable per-user settings (holds the user-tier budget),
1197
+ * so the budget screen can render the current value without a separate fetch.
1198
+ */
1199
+ readonly userSettings: v.OptionalSchema<v.ObjectSchema<{
1200
+ readonly spendMonthlyLimit: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
1201
+ }, undefined>, undefined>;
1202
+ /**
1203
+ * Operator hard ceilings on the account/user budget tiers (from the deployment env
1204
+ * vars). Attached so the budget configuration screens can show the hard limit and
1205
+ * cap the input. Absent ⇒ this facade sets no ceilings.
1206
+ */
1207
+ readonly budgetCaps: v.OptionalSchema<v.ObjectSchema<{
1208
+ readonly accountMonthlyLimitMax: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
1209
+ readonly userMonthlyLimitMax: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
1210
+ readonly currency: v.StringSchema<undefined>;
1211
+ }, undefined>, undefined>;
1160
1212
  /**
1161
1213
  * Open human-actionable notifications for this workspace (PRs awaiting a merge
1162
1214
  * decision, completed pipelines awaiting confirmation, CI that gave up). Carried
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
package/dist/snapshot.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as v from 'valibot';
2
- import { blockSchema, executionInstanceSchema, pipelineSchema, spendStatusSchema, workspaceSchema, } from './entities.js';
2
+ import { blockSchema, budgetCapsSchema, executionInstanceSchema, pipelineSchema, spendStatusSchema, workspaceSchema, } from './entities.js';
3
+ import { userSettingsSchema } from './user-settings.js';
3
4
  import { bootstrapJobSchema } from './bootstrap.js';
4
5
  import { envConfigRepairJobSchema } from './env-config-repair.js';
5
6
  import { notificationSchema } from './notifications.js';
@@ -52,10 +53,34 @@ export const workspaceSnapshotSchema = v.object({
52
53
  */
53
54
  envConfigRepairJobs: v.optional(v.array(envConfigRepairJobSchema)),
54
55
  /**
55
- * The current spend-safeguard status. Attached by the worker (it depends on
56
- * deployment-wide pricing/budget config), so it is optional on the wire.
56
+ * The current spend-safeguard status for the WORKSPACE tier. Attached by the
57
+ * facade (it depends on deployment-wide pricing/budget config), so it is optional
58
+ * on the wire.
57
59
  */
58
60
  spend: v.optional(spendStatusSchema),
61
+ /**
62
+ * The ACCOUNT-tier spend status (this period's spend across all the owning
63
+ * account's workspaces vs the account budget). Attached only when the workspace
64
+ * belongs to an account and the account tier is active (a limit or env cap is set).
65
+ */
66
+ accountSpend: v.optional(spendStatusSchema),
67
+ /**
68
+ * The USER-tier spend status for the signed-in caller (this period's spend across
69
+ * every run they initiated vs their user budget). Attached only when the user tier
70
+ * is active (a limit or env cap is set).
71
+ */
72
+ userSpend: v.optional(spendStatusSchema),
73
+ /**
74
+ * The signed-in caller's editable per-user settings (holds the user-tier budget),
75
+ * so the budget screen can render the current value without a separate fetch.
76
+ */
77
+ userSettings: v.optional(userSettingsSchema),
78
+ /**
79
+ * Operator hard ceilings on the account/user budget tiers (from the deployment env
80
+ * vars). Attached so the budget configuration screens can show the hard limit and
81
+ * cap the input. Absent ⇒ this facade sets no ceilings.
82
+ */
83
+ budgetCaps: v.optional(budgetCapsSchema),
59
84
  /**
60
85
  * Open human-actionable notifications for this workspace (PRs awaiting a merge
61
86
  * decision, completed pipelines awaiting confirmation, CI that gave up). Carried
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,kFAAkF;AAClF,uEAAuE;AACvE,+EAA+E;AAC/E,8BAA8B;AAE9B,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB;;;;;OAKG;IACH,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;CAChD,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC;IAC5C;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtD;;;;;OAKG;IACH,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClE;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACpC;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtD;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7D;;;;;OAKG;IACH,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpD;;;;;;OAMG;IACH,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACxD;;;;;OAKG;IACH,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpD;;;;;;;;OAQG;IACH,uBAAuB,EAAE,CAAC,CAAC,QAAQ,CACjC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KACzC,CAAC,CACH;IACD;;;OAGG;IACH,uBAAuB,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAClE;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;;OAGG;IACH,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAClD;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACjD,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClD;;;;OAIG;IACH,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC7C;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC5D;;;;;;;;;OASG;IACH,uBAAuB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrE,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAChE;;;;;;;OAOG;IACH,uBAAuB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE;;;;;;;OAOG;IACH,0BAA0B,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE;;;;;OAKG;IACH,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClD;;;;;;;OAOG;IACH,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CACzC,CAAC,CAAA"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import * as v from 'valibot';
2
+ /** A user's settings. */
3
+ export declare const userSettingsSchema: v.ObjectSchema<{
4
+ /**
5
+ * The user-tier monthly spend budget (base pricing currency): a ceiling on what
6
+ * this user's initiated runs may spend across every workspace this period. Null ⇒
7
+ * no user-level limit configured; the effective user budget then falls back to the
8
+ * operator env cap (`BUDGET_MAX_MONTHLY_PER_USER`) if set, else unlimited.
9
+ */
10
+ readonly spendMonthlyLimit: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
11
+ }, undefined>;
12
+ export type UserSettings = v.InferOutput<typeof userSettingsSchema>;
13
+ /** Built-in defaults used when a user has no row yet. */
14
+ export declare const DEFAULT_USER_SETTINGS: UserSettings;
15
+ /** Update the signed-in user's settings (full replace of the supplied fields). */
16
+ export declare const updateUserSettingsSchema: v.ObjectSchema<{
17
+ readonly spendMonthlyLimit: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
18
+ }, undefined>;
19
+ export type UpdateUserSettingsInput = v.InferOutput<typeof updateUserSettingsSchema>;
20
+ //# sourceMappingURL=user-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-settings.d.ts","sourceRoot":"","sources":["../src/user-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAU5B,yBAAyB;AACzB,eAAO,MAAM,kBAAkB;IAC7B;;;;;OAKG;;aAEH,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,EAAE,YAEnC,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,wBAAwB;;aAEnC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA"}
@@ -0,0 +1,27 @@
1
+ import * as v from 'valibot';
2
+ import { monthlyBudgetLimitSchema } from './accounts.js';
3
+ // ---------------------------------------------------------------------------
4
+ // Per-USER settings. Scoped to the signed-in user (not a workspace or account),
5
+ // persisted in the `user_settings` table (PK `user_id`) on both runtime facades.
6
+ // Today it holds only the user-tier spend budget (the third budget tier alongside
7
+ // the per-workspace and per-account limits); see the tiered-budgets initiative.
8
+ // ---------------------------------------------------------------------------
9
+ /** A user's settings. */
10
+ export const userSettingsSchema = v.object({
11
+ /**
12
+ * The user-tier monthly spend budget (base pricing currency): a ceiling on what
13
+ * this user's initiated runs may spend across every workspace this period. Null ⇒
14
+ * no user-level limit configured; the effective user budget then falls back to the
15
+ * operator env cap (`BUDGET_MAX_MONTHLY_PER_USER`) if set, else unlimited.
16
+ */
17
+ spendMonthlyLimit: v.nullable(monthlyBudgetLimitSchema),
18
+ });
19
+ /** Built-in defaults used when a user has no row yet. */
20
+ export const DEFAULT_USER_SETTINGS = {
21
+ spendMonthlyLimit: null,
22
+ };
23
+ /** Update the signed-in user's settings (full replace of the supplied fields). */
24
+ export const updateUserSettingsSchema = v.object({
25
+ spendMonthlyLimit: v.optional(v.nullable(monthlyBudgetLimitSchema)),
26
+ });
27
+ //# sourceMappingURL=user-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-settings.js","sourceRoot":"","sources":["../src/user-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAExD,8EAA8E;AAC9E,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAChF,8EAA8E;AAE9E,yBAAyB;AACzB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACxD,CAAC,CAAA;AAGF,yDAAyD;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,iBAAiB,EAAE,IAAI;CACxB,CAAA;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;CACpE,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.108.1",
3
+ "version": "0.110.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",