@opentabs-dev/opentabs-plugin-ynab 0.0.86 → 0.0.87

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 (41) hide show
  1. package/dist/adapter.iife.js +447 -24
  2. package/dist/adapter.iife.js.map +4 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +12 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/tools/create-category-group.d.ts +11 -0
  7. package/dist/tools/create-category-group.d.ts.map +1 -0
  8. package/dist/tools/create-category-group.js +37 -0
  9. package/dist/tools/create-category-group.js.map +1 -0
  10. package/dist/tools/create-category.d.ts +59 -0
  11. package/dist/tools/create-category.d.ts.map +1 -0
  12. package/dist/tools/create-category.js +63 -0
  13. package/dist/tools/create-category.js.map +1 -0
  14. package/dist/tools/delete-category-group.d.ts +8 -0
  15. package/dist/tools/delete-category-group.d.ts.map +1 -0
  16. package/dist/tools/delete-category-group.js +33 -0
  17. package/dist/tools/delete-category-group.js.map +1 -0
  18. package/dist/tools/delete-category.d.ts +7 -0
  19. package/dist/tools/delete-category.d.ts.map +1 -0
  20. package/dist/tools/delete-category.js +28 -0
  21. package/dist/tools/delete-category.js.map +1 -0
  22. package/dist/tools/move-category-budget.d.ts.map +1 -1
  23. package/dist/tools/move-category-budget.js +13 -18
  24. package/dist/tools/move-category-budget.js.map +1 -1
  25. package/dist/tools/schemas.d.ts +80 -1
  26. package/dist/tools/schemas.d.ts.map +1 -1
  27. package/dist/tools/schemas.js +238 -4
  28. package/dist/tools/schemas.js.map +1 -1
  29. package/dist/tools/snooze-category-goal.d.ts +10 -0
  30. package/dist/tools/snooze-category-goal.d.ts.map +1 -0
  31. package/dist/tools/snooze-category-goal.js +53 -0
  32. package/dist/tools/snooze-category-goal.js.map +1 -0
  33. package/dist/tools/update-category-budget.d.ts.map +1 -1
  34. package/dist/tools/update-category-budget.js +3 -6
  35. package/dist/tools/update-category-budget.js.map +1 -1
  36. package/dist/tools/update-category.d.ts +61 -0
  37. package/dist/tools/update-category.d.ts.map +1 -0
  38. package/dist/tools/update-category.js +46 -0
  39. package/dist/tools/update-category.js.map +1 -0
  40. package/dist/tools.json +774 -1
  41. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAmB1D,cAAM,UAAW,SAAQ,cAAc;IACrC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,kDAAkD;IACtE,SAAkB,WAAW,UAAU;IACvC,QAAQ,CAAC,WAAW,WAA0B;IAC9C,SAAkB,QAAQ,0BAA0B;IACpD,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAwB9B;IAEI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAIlC;;AAED,wBAAgC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAyB1D,cAAM,UAAW,SAAQ,cAAc;IACrC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,kDAAkD;IACtE,SAAkB,WAAW,UAAU;IACvC,QAAQ,CAAC,WAAW,WAA0B;IAC9C,SAAkB,QAAQ,0BAA0B;IACpD,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CA8B9B;IAEI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAIlC;;AAED,wBAAgC"}
package/dist/index.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { OpenTabsPlugin } from '@opentabs-dev/plugin-sdk';
2
+ import { createCategory } from './tools/create-category.js';
3
+ import { createCategoryGroup } from './tools/create-category-group.js';
2
4
  import { createTransaction } from './tools/create-transaction.js';
5
+ import { deleteCategory } from './tools/delete-category.js';
6
+ import { deleteCategoryGroup } from './tools/delete-category-group.js';
3
7
  import { deleteTransaction } from './tools/delete-transaction.js';
4
8
  import { getAccount } from './tools/get-account.js';
5
9
  import { getCurrentUser } from './tools/get-current-user.js';
@@ -13,6 +17,8 @@ import { listPayees } from './tools/list-payees.js';
13
17
  import { listScheduledTransactions } from './tools/list-scheduled-transactions.js';
14
18
  import { listTransactions } from './tools/list-transactions.js';
15
19
  import { moveCategoryBudget } from './tools/move-category-budget.js';
20
+ import { snoozeCategoryGoal } from './tools/snooze-category-goal.js';
21
+ import { updateCategory } from './tools/update-category.js';
16
22
  import { updateCategoryBudget } from './tools/update-category-budget.js';
17
23
  import { updateTransaction } from './tools/update-transaction.js';
18
24
  import { isAuthenticated, waitForAuth } from './ynab-api.js';
@@ -32,8 +38,14 @@ class YnabPlugin extends OpenTabsPlugin {
32
38
  getAccount,
33
39
  // Categories
34
40
  listCategories,
41
+ createCategory,
42
+ updateCategory,
43
+ deleteCategory,
44
+ createCategoryGroup,
45
+ deleteCategoryGroup,
35
46
  updateCategoryBudget,
36
47
  moveCategoryBudget,
48
+ snoozeCategoryGoal,
37
49
  // Payees
38
50
  listPayees,
39
51
  // Transactions
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,UAAW,SAAQ,cAAc;IAC5B,IAAI,GAAG,MAAM,CAAC;IACd,WAAW,GAAG,8CAA8C,CAAC;IACpD,WAAW,GAAG,MAAM,CAAC;IAC9B,WAAW,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC5B,QAAQ,GAAG,sBAAsB,CAAC;IAC3C,KAAK,GAAqB;QACjC,UAAU;QACV,cAAc;QACd,QAAQ;QACR,OAAO;QACP,WAAW;QACX,YAAY;QACZ,UAAU;QACV,aAAa;QACb,cAAc;QACd,oBAAoB;QACpB,kBAAkB;QAClB,SAAS;QACT,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,yBAAyB;QACzB,SAAS;QACT,UAAU;QACV,QAAQ;KACT,CAAC;IAEF,KAAK,CAAC,OAAO;QACX,IAAI,eAAe,EAAE;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;CACF;AAED,eAAe,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,UAAW,SAAQ,cAAc;IAC5B,IAAI,GAAG,MAAM,CAAC;IACd,WAAW,GAAG,8CAA8C,CAAC;IACpD,WAAW,GAAG,MAAM,CAAC;IAC9B,WAAW,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC5B,QAAQ,GAAG,sBAAsB,CAAC;IAC3C,KAAK,GAAqB;QACjC,UAAU;QACV,cAAc;QACd,QAAQ;QACR,OAAO;QACP,WAAW;QACX,YAAY;QACZ,UAAU;QACV,aAAa;QACb,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,kBAAkB;QAClB,SAAS;QACT,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,yBAAyB;QACzB,SAAS;QACT,UAAU;QACV,QAAQ;KACT,CAAC;IAEF,KAAK,CAAC,OAAO;QACX,IAAI,eAAe,EAAE;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;CACF;AAED,eAAe,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export declare const createCategoryGroup: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ name: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ group: z.ZodObject<{
6
+ id: z.ZodString;
7
+ name: z.ZodString;
8
+ hidden: z.ZodBoolean;
9
+ }, z.core.$strip>;
10
+ }, z.core.$strip>>;
11
+ //# sourceMappingURL=create-category-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-category-group.d.ts","sourceRoot":"","sources":["../../src/tools/create-category-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,mBAAmB;;;;;;;;kBAmC9B,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { getPlanId, syncBudget, syncWrite } from '../ynab-api.js';
4
+ import { categoryGroupSchema, mapCategoryGroup, nextTopSortableIndex } from './schemas.js';
5
+ export const createCategoryGroup = defineTool({
6
+ name: 'create_category_group',
7
+ displayName: 'Create Category Group',
8
+ description: 'Create a new category group in the active YNAB plan.',
9
+ summary: 'Create a category group',
10
+ icon: 'folder-plus',
11
+ group: 'Categories',
12
+ input: z.object({
13
+ name: z.string().min(1).describe('Name of the new category group'),
14
+ }),
15
+ output: z.object({
16
+ group: categoryGroupSchema,
17
+ }),
18
+ handle: async (params) => {
19
+ const planId = getPlanId();
20
+ const groupId = crypto.randomUUID();
21
+ const budget = await syncBudget(planId);
22
+ const serverKnowledge = budget.current_server_knowledge ?? 0;
23
+ const groupEntry = {
24
+ id: groupId,
25
+ is_tombstone: false,
26
+ internal_name: '',
27
+ deletable: true,
28
+ sortable_index: nextTopSortableIndex(budget.changed_entities?.be_master_categories ?? []),
29
+ name: params.name,
30
+ note: '',
31
+ is_hidden: false,
32
+ };
33
+ await syncWrite(planId, { be_master_categories: [groupEntry] }, serverKnowledge);
34
+ return { group: mapCategoryGroup(groupEntry) };
35
+ },
36
+ });
37
+ //# sourceMappingURL=create-category-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-category-group.js","sourceRoot":"","sources":["../../src/tools/create-category-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;IAC5C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,sDAAsD;IACnE,OAAO,EAAE,yBAAyB;IAClC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KACnE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,mBAAmB;KAC3B,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAiB,MAAM,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC;QAE7D,MAAM,UAAU,GAAqB;YACnC,EAAE,EAAE,OAAO;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,IAAI,EAAE,CAAC;YACzF,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,KAAK;SACjB,CAAC;QAEF,MAAM,SAAS,CAAiB,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAEjG,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;IACjD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { z } from 'zod';
2
+ export declare const createCategory: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ group_id: z.ZodString;
4
+ name: z.ZodString;
5
+ goal: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
6
+ target: z.ZodNumber;
7
+ cadence: z.ZodOptional<z.ZodEnum<{
8
+ weekly: "weekly";
9
+ monthly: "monthly";
10
+ yearly: "yearly";
11
+ }>>;
12
+ every: z.ZodOptional<z.ZodNumber>;
13
+ day: z.ZodOptional<z.ZodNumber>;
14
+ start_date: z.ZodOptional<z.ZodString>;
15
+ type: z.ZodLiteral<"set_aside">;
16
+ }, z.core.$strict>, z.ZodObject<{
17
+ target: z.ZodNumber;
18
+ cadence: z.ZodOptional<z.ZodEnum<{
19
+ weekly: "weekly";
20
+ monthly: "monthly";
21
+ yearly: "yearly";
22
+ }>>;
23
+ every: z.ZodOptional<z.ZodNumber>;
24
+ day: z.ZodOptional<z.ZodNumber>;
25
+ start_date: z.ZodOptional<z.ZodString>;
26
+ type: z.ZodLiteral<"refill">;
27
+ }, z.core.$strict>, z.ZodObject<{
28
+ type: z.ZodLiteral<"target_balance">;
29
+ target: z.ZodNumber;
30
+ }, z.core.$strict>, z.ZodObject<{
31
+ type: z.ZodLiteral<"target_by_date">;
32
+ target: z.ZodNumber;
33
+ date: z.ZodString;
34
+ }, z.core.$strict>, z.ZodObject<{
35
+ type: z.ZodLiteral<"debt">;
36
+ target: z.ZodNumber;
37
+ day: z.ZodOptional<z.ZodNumber>;
38
+ }, z.core.$strict>, z.ZodObject<{
39
+ type: z.ZodLiteral<"none">;
40
+ }, z.core.$strict>], "type">>;
41
+ note: z.ZodOptional<z.ZodString>;
42
+ }, z.core.$strip>, z.ZodObject<{
43
+ category: z.ZodObject<{
44
+ id: z.ZodString;
45
+ category_group_id: z.ZodString;
46
+ name: z.ZodString;
47
+ hidden: z.ZodBoolean;
48
+ budgeted: z.ZodString;
49
+ activity: z.ZodString;
50
+ balance: z.ZodString;
51
+ budgeted_milliunits: z.ZodNumber;
52
+ activity_milliunits: z.ZodNumber;
53
+ balance_milliunits: z.ZodNumber;
54
+ goal_type: z.ZodString;
55
+ goal_target: z.ZodString;
56
+ goal_percentage_complete: z.ZodNumber;
57
+ }, z.core.$strip>;
58
+ }, z.core.$strip>>;
59
+ //# sourceMappingURL=create-category.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-category.d.ts","sourceRoot":"","sources":["../../src/tools/create-category.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuEzB,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { defineTool, ToolError } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { getPlanId, syncBudget, syncWrite } from '../ynab-api.js';
4
+ import { assertCategoryGroupDeletable, buildGoalFields, CATEGORY_TYPE_DEFAULT, categorySchema, currentMonthKey, findCategoryGroup, formatMonthlyBudgetId, formatSubcategoryBudgetId, goalSpecSchema, mapCategory, nextTopSortableIndex, } from './schemas.js';
5
+ export const createCategory = defineTool({
6
+ name: 'create_category',
7
+ displayName: 'Create Category',
8
+ description: 'Create a new category in an existing category group. Optionally set an initial goal: "set_aside" (set aside X per cadence), "refill" (refill the balance up to X per cadence), "target_balance" (have a balance of X), or "target_by_date" (have a balance of X by a specific date). NEED-style goals (set_aside, refill) accept weekly/monthly/yearly cadence. Debt goals are not supported for new categories — they only apply to existing debt-account categories.',
9
+ summary: 'Create a new budget category',
10
+ icon: 'plus',
11
+ group: 'Categories',
12
+ input: z.object({
13
+ group_id: z.string().min(1).describe('Category group ID to create the category in'),
14
+ name: z.string().min(1).describe('Name of the new category'),
15
+ goal: goalSpecSchema.optional().describe('Optional initial goal for the category'),
16
+ note: z.string().optional().describe('Optional note for the category'),
17
+ }),
18
+ output: z.object({
19
+ category: categorySchema,
20
+ }),
21
+ handle: async (params) => {
22
+ if (params.goal?.type === 'debt') {
23
+ throw ToolError.validation('Debt goals can only be set on debt-account categories.');
24
+ }
25
+ const planId = getPlanId();
26
+ const categoryId = crypto.randomUUID();
27
+ const budget = await syncBudget(planId);
28
+ const serverKnowledge = budget.current_server_knowledge ?? 0;
29
+ assertCategoryGroupDeletable(findCategoryGroup(budget.changed_entities, params.group_id));
30
+ const childCategories = (budget.changed_entities?.be_subcategories ?? []).filter(c => c.entities_master_category_id === params.group_id);
31
+ const monthKey = currentMonthKey();
32
+ const categoryEntry = {
33
+ id: categoryId,
34
+ is_tombstone: false,
35
+ entities_master_category_id: params.group_id,
36
+ entities_account_id: null,
37
+ internal_name: null,
38
+ sortable_index: nextTopSortableIndex(childCategories, 5),
39
+ name: params.name,
40
+ type: CATEGORY_TYPE_DEFAULT,
41
+ note: params.note ?? null,
42
+ monthly_funding: 0,
43
+ is_hidden: false,
44
+ pinned_index: null,
45
+ pinned_goal_index: null,
46
+ ...buildGoalFields(params.goal),
47
+ };
48
+ // YNAB's UI also creates a current-month budget row alongside the category.
49
+ const budgetEntry = {
50
+ id: formatSubcategoryBudgetId(monthKey, categoryId),
51
+ is_tombstone: false,
52
+ entities_monthly_budget_id: formatMonthlyBudgetId(monthKey, planId),
53
+ entities_subcategory_id: categoryId,
54
+ budgeted: 0,
55
+ };
56
+ await syncWrite(planId, {
57
+ be_subcategories: [categoryEntry],
58
+ be_monthly_subcategory_budgets: [budgetEntry],
59
+ }, serverKnowledge);
60
+ return { category: mapCategory(categoryEntry) };
61
+ },
62
+ });
63
+ //# sourceMappingURL=create-category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-category.js","sourceRoot":"","sources":["../../src/tools/create-category.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteCategoryGroup: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ group_id: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ success: z.ZodBoolean;
6
+ deleted_category_count: z.ZodNumber;
7
+ }, z.core.$strip>>;
8
+ //# sourceMappingURL=delete-category-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-category-group.d.ts","sourceRoot":"","sources":["../../src/tools/delete-category-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,mBAAmB;;;;;kBAuC9B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { getPlanId, syncBudget, syncWrite } from '../ynab-api.js';
4
+ import { assertCategoryGroupDeletable, findCategoryGroup, notTombstone } from './schemas.js';
5
+ export const deleteCategoryGroup = defineTool({
6
+ name: 'delete_category_group',
7
+ displayName: 'Delete Category Group',
8
+ description: 'Delete a category group and all of its child categories from the active YNAB plan. This is a soft delete (tombstone). Internal/non-deletable groups (Credit Card Payments, Hidden Categories, Internal Master Category) cannot be deleted.',
9
+ summary: 'Delete a category group and its children',
10
+ icon: 'folder-x',
11
+ group: 'Categories',
12
+ input: z.object({
13
+ group_id: z.string().min(1).describe('Category group ID to delete'),
14
+ }),
15
+ output: z.object({
16
+ success: z.boolean(),
17
+ deleted_category_count: z.number().describe('Number of child categories that were also tombstoned'),
18
+ }),
19
+ handle: async (params) => {
20
+ const planId = getPlanId();
21
+ const budget = await syncBudget(planId);
22
+ const serverKnowledge = budget.current_server_knowledge ?? 0;
23
+ const group = findCategoryGroup(budget.changed_entities, params.group_id);
24
+ assertCategoryGroupDeletable(group);
25
+ const childCategories = (budget.changed_entities?.be_subcategories ?? []).filter(c => c.entities_master_category_id === params.group_id && notTombstone(c));
26
+ await syncWrite(planId, {
27
+ be_master_categories: [{ ...group, is_tombstone: true }],
28
+ be_subcategories: childCategories.map(c => ({ ...c, is_tombstone: true })),
29
+ }, serverKnowledge);
30
+ return { success: true, deleted_category_count: childCategories.length };
31
+ },
32
+ });
33
+ //# sourceMappingURL=delete-category-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-category-group.js","sourceRoot":"","sources":["../../src/tools/delete-category-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;IAC5C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EACT,4OAA4O;IAC9O,OAAO,EAAE,0CAA0C;IACnD,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KACpE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KACpG,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAiB,MAAM,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC;QAE7D,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,4BAA4B,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,CAC9E,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,KAAK,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,CAC1E,CAAC;QAEF,MAAM,SAAS,CACb,MAAM,EACN;YACE,oBAAoB,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YACxD,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3E,EACD,eAAe,CAChB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;IAC3E,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteCategory: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ category_id: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ success: z.ZodBoolean;
6
+ }, z.core.$strip>>;
7
+ //# sourceMappingURL=delete-category.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-category.d.ts","sourceRoot":"","sources":["../../src/tools/delete-category.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;kBA8BzB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { getPlanId, syncBudget, syncWrite } from '../ynab-api.js';
4
+ import { assertCategoryDeletable, findCategory } from './schemas.js';
5
+ export const deleteCategory = defineTool({
6
+ name: 'delete_category',
7
+ displayName: 'Delete Category',
8
+ description: 'Delete a category from the active YNAB plan. This is a soft delete (tombstone). Existing transactions assigned to this category remain in place but the category will no longer appear in budget views.',
9
+ summary: 'Delete a category',
10
+ icon: 'trash-2',
11
+ group: 'Categories',
12
+ input: z.object({
13
+ category_id: z.string().min(1).describe('Category ID to delete'),
14
+ }),
15
+ output: z.object({
16
+ success: z.boolean(),
17
+ }),
18
+ handle: async (params) => {
19
+ const planId = getPlanId();
20
+ const budget = await syncBudget(planId);
21
+ const serverKnowledge = budget.current_server_knowledge ?? 0;
22
+ const existing = findCategory(budget.changed_entities, params.category_id);
23
+ assertCategoryDeletable(existing);
24
+ await syncWrite(planId, { be_subcategories: [{ ...existing, is_tombstone: true }] }, serverKnowledge);
25
+ return { success: true };
26
+ },
27
+ });
28
+ //# sourceMappingURL=delete-category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-category.js","sourceRoot":"","sources":["../../src/tools/delete-category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EACT,yMAAyM;IAC3M,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACjE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;KACrB,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAiB,MAAM,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3E,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAElC,MAAM,SAAS,CACb,MAAM,EACN,EAAE,gBAAgB,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,EAC3D,eAAe,CAChB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"move-category-budget.d.ts","sourceRoot":"","sources":["../../src/tools/move-category-budget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;kBA2G7B,CAAC"}
1
+ {"version":3,"file":"move-category-budget.d.ts","sourceRoot":"","sources":["../../src/tools/move-category-budget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;kBAuG7B,CAAC"}
@@ -1,7 +1,7 @@
1
- import { defineTool, ToolError } from '@opentabs-dev/plugin-sdk';
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
2
  import { z } from 'zod';
3
3
  import { getPlanId, getUserId, syncBudget, syncWrite } from '../ynab-api.js';
4
- import { buildSubcategoryBudgetMap, buildSubcategoryCalcMap, categorySchema, formatMonthlyBudgetId, formatSubcategoryBudgetId, MONEY_MOVEMENT_SOURCE, mapCategoryForMonth, notTombstone, toMilliunits, toMonthKey, } from './schemas.js';
4
+ import { buildSubcategoryBudgetMap, buildSubcategoryCalcMap, categorySchema, findCategory, formatMonthlyBudgetId, formatSubcategoryBudgetId, MONEY_MOVEMENT_SOURCE, mapCategoryForMonth, notTombstone, toMilliunits, toMonthKey, } from './schemas.js';
5
5
  export const moveCategoryBudget = defineTool({
6
6
  name: 'move_category_budget',
7
7
  displayName: 'Move Category Budget',
@@ -38,18 +38,13 @@ export const moveCategoryBudget = defineTool({
38
38
  const monthlyBudgetId = formatMonthlyBudgetId(monthKey, planId);
39
39
  const budget = await syncBudget(planId);
40
40
  const serverKnowledge = budget.current_server_knowledge ?? 0;
41
- const subcategories = budget.changed_entities?.be_subcategories ?? [];
42
41
  const existingBudgets = budget.changed_entities?.be_monthly_subcategory_budgets ?? [];
43
- const findCategory = (id) => {
44
- const c = subcategories.find(s => s.id === id && notTombstone(s));
45
- if (!c?.id)
46
- throw ToolError.notFound(`Category not found: ${id}`);
47
- return { ...c, id: c.id };
48
- };
49
- const fromCategory = params.from_category_id ? findCategory(params.from_category_id) : null;
50
- const toCategory = params.to_category_id ? findCategory(params.to_category_id) : null;
51
- const fromBudgetId = fromCategory ? formatSubcategoryBudgetId(monthKey, fromCategory.id) : null;
52
- const toBudgetId = toCategory ? formatSubcategoryBudgetId(monthKey, toCategory.id) : null;
42
+ const fromCategoryId = params.from_category_id;
43
+ const toCategoryId = params.to_category_id;
44
+ const fromCategory = fromCategoryId ? findCategory(budget.changed_entities, fromCategoryId) : null;
45
+ const toCategory = toCategoryId ? findCategory(budget.changed_entities, toCategoryId) : null;
46
+ const fromBudgetId = fromCategoryId ? formatSubcategoryBudgetId(monthKey, fromCategoryId) : null;
47
+ const toBudgetId = toCategoryId ? formatSubcategoryBudgetId(monthKey, toCategoryId) : null;
53
48
  const buildEntry = (categoryId, budgetId, signedDelta) => {
54
49
  const current = existingBudgets.find(b => b.id === budgetId && notTombstone(b))?.budgeted ?? 0;
55
50
  return {
@@ -61,11 +56,11 @@ export const moveCategoryBudget = defineTool({
61
56
  };
62
57
  };
63
58
  const budgetEntries = [];
64
- if (fromCategory && fromBudgetId)
65
- budgetEntries.push(buildEntry(fromCategory.id, fromBudgetId, -milliunits));
66
- if (toCategory && toBudgetId)
67
- budgetEntries.push(buildEntry(toCategory.id, toBudgetId, milliunits));
68
- const source = fromCategory && toCategory ? MONEY_MOVEMENT_SOURCE.MOVEMENT : MONEY_MOVEMENT_SOURCE.ASSIGN;
59
+ if (fromCategoryId && fromBudgetId)
60
+ budgetEntries.push(buildEntry(fromCategoryId, fromBudgetId, -milliunits));
61
+ if (toCategoryId && toBudgetId)
62
+ budgetEntries.push(buildEntry(toCategoryId, toBudgetId, milliunits));
63
+ const source = fromCategoryId && toCategoryId ? MONEY_MOVEMENT_SOURCE.MOVEMENT : MONEY_MOVEMENT_SOURCE.ASSIGN;
69
64
  const result = await syncWrite(planId, {
70
65
  be_monthly_subcategory_budgets: budgetEntries,
71
66
  be_money_movements: [
@@ -1 +1 @@
1
- {"version":3,"file":"move-category-budget.js","sourceRoot":"","sources":["../../src/tools/move-category-budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"move-category-budget.js","sourceRoot":"","sources":["../../src/tools/move-category-budget.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,13 @@ export declare const notTombstone: <T extends {
6
6
  }>(x: T) => x is T & {
7
7
  is_tombstone?: false | undefined;
8
8
  };
9
+ export declare const findCategory: (entities: BudgetEntities | undefined, id: string) => RawCategory;
10
+ export declare const findCategoryGroup: (entities: BudgetEntities | undefined, id: string) => RawCategoryGroup;
11
+ export declare const assertCategoryGroupDeletable: (group: RawCategoryGroup) => void;
12
+ export declare const assertCategoryDeletable: (category: RawCategory) => void;
13
+ export declare const nextTopSortableIndex: (rows: {
14
+ sortable_index?: number;
15
+ }[], step?: number) => number;
9
16
  export declare const userSchema: z.ZodObject<{
10
17
  id: z.ZodString;
11
18
  first_name: z.ZodString;
@@ -151,19 +158,37 @@ export interface RawCategoryGroup {
151
158
  id?: string;
152
159
  name?: string;
153
160
  is_hidden?: boolean | null;
161
+ internal_name?: string | null;
162
+ deletable?: boolean;
163
+ sortable_index?: number;
164
+ note?: string | null;
154
165
  is_tombstone?: boolean;
155
166
  }
156
167
  export interface RawCategory {
157
168
  id?: string;
158
169
  entities_master_category_id?: string;
170
+ entities_account_id?: string | null;
171
+ internal_name?: string | null;
172
+ sortable_index?: number;
159
173
  name?: string;
174
+ type?: string;
160
175
  is_hidden?: boolean | null;
161
176
  budgeted?: number;
162
177
  activity?: number;
163
178
  balance?: number;
164
179
  goal_type?: string | null;
165
180
  goal_target?: number | null;
181
+ goal_target_amount?: number | null;
182
+ goal_target_date?: string | null;
183
+ goal_created_on?: string | null;
184
+ goal_needs_whole_amount?: boolean | null;
185
+ goal_cadence?: number | null;
186
+ goal_cadence_frequency?: number | null;
187
+ goal_day?: number | null;
188
+ monthly_funding?: number | null;
166
189
  goal_percentage_complete?: number | null;
190
+ pinned_index?: number | null;
191
+ pinned_goal_index?: number | null;
167
192
  is_tombstone?: boolean;
168
193
  note?: string | null;
169
194
  }
@@ -229,6 +254,7 @@ export interface RawMonthlySubcategoryBudget {
229
254
  entities_monthly_budget_id?: string;
230
255
  entities_subcategory_id?: string;
231
256
  budgeted?: number;
257
+ goal_snoozed_at?: string | null;
232
258
  is_tombstone?: boolean;
233
259
  }
234
260
  export interface RawMonthlySubcategoryBudgetCalc {
@@ -236,7 +262,6 @@ export interface RawMonthlySubcategoryBudgetCalc {
236
262
  balance?: number;
237
263
  cash_outflows?: number;
238
264
  credit_outflows?: number;
239
- goal_target?: number | null;
240
265
  goal_percentage_complete?: number | null;
241
266
  }
242
267
  export interface RawScheduledTransaction {
@@ -261,12 +286,66 @@ export declare const MONEY_MOVEMENT_SOURCE: {
261
286
  /** Category-to-category transfer. */
262
287
  readonly MOVEMENT: "manual_movement";
263
288
  };
289
+ export declare const GOAL_TYPE: {
290
+ /** "Set aside" or "Refill" — `goal_needs_whole_amount` differentiates. */
291
+ readonly NEED: "NEED";
292
+ /** "Have a balance of" — no date, no cadence. */
293
+ readonly TARGET_BALANCE: "TB";
294
+ /** "Have a balance of by date" — one-shot with `goal_target_date`. */
295
+ readonly TARGET_BY_DATE: "TBD";
296
+ /** Debt payment goals on debt-account categories. */
297
+ readonly DEBT: "DEBT";
298
+ /** Legacy "Monthly Funding". The modern UI no longer creates these but they
299
+ still exist on older categories and the API still honors them. */
300
+ readonly MONTHLY_FUNDING: "MF";
301
+ };
302
+ /** YNAB's default category type for non-credit-card categories. */
303
+ export declare const CATEGORY_TYPE_DEFAULT = "DFT";
264
304
  export declare const toMonthKey: (month: string) => string;
265
305
  export declare const currentMonthKey: () => string;
266
306
  export declare const formatSubcategoryBudgetId: (monthKey: string, categoryId: string) => string;
267
307
  export declare const formatMonthlyBudgetId: (monthKey: string, planId: string) => string;
268
308
  export declare const CLEARED_MAP: Record<ClearedStatus, string>;
269
309
  export declare const FLAG_MAP: Record<FlagColor, string>;
310
+ export type GoalCadence = 'weekly' | 'monthly' | 'yearly';
311
+ export declare const goalSpecSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
312
+ target: z.ZodNumber;
313
+ cadence: z.ZodOptional<z.ZodEnum<{
314
+ weekly: "weekly";
315
+ monthly: "monthly";
316
+ yearly: "yearly";
317
+ }>>;
318
+ every: z.ZodOptional<z.ZodNumber>;
319
+ day: z.ZodOptional<z.ZodNumber>;
320
+ start_date: z.ZodOptional<z.ZodString>;
321
+ type: z.ZodLiteral<"set_aside">;
322
+ }, z.core.$strict>, z.ZodObject<{
323
+ target: z.ZodNumber;
324
+ cadence: z.ZodOptional<z.ZodEnum<{
325
+ weekly: "weekly";
326
+ monthly: "monthly";
327
+ yearly: "yearly";
328
+ }>>;
329
+ every: z.ZodOptional<z.ZodNumber>;
330
+ day: z.ZodOptional<z.ZodNumber>;
331
+ start_date: z.ZodOptional<z.ZodString>;
332
+ type: z.ZodLiteral<"refill">;
333
+ }, z.core.$strict>, z.ZodObject<{
334
+ type: z.ZodLiteral<"target_balance">;
335
+ target: z.ZodNumber;
336
+ }, z.core.$strict>, z.ZodObject<{
337
+ type: z.ZodLiteral<"target_by_date">;
338
+ target: z.ZodNumber;
339
+ date: z.ZodString;
340
+ }, z.core.$strict>, z.ZodObject<{
341
+ type: z.ZodLiteral<"debt">;
342
+ target: z.ZodNumber;
343
+ day: z.ZodOptional<z.ZodNumber>;
344
+ }, z.core.$strict>, z.ZodObject<{
345
+ type: z.ZodLiteral<"none">;
346
+ }, z.core.$strict>], "type">;
347
+ export type GoalSpec = z.infer<typeof goalSpecSchema>;
348
+ export declare const buildGoalFields: (goal: GoalSpec | undefined) => Partial<RawCategory>;
270
349
  export interface BudgetEntities {
271
350
  be_transactions?: RawTransaction[];
272
351
  be_subtransactions?: RawSubtransaction[];
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}