@happyvertical/smrt-expenses 0.60.13 → 0.60.15

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 (39) hide show
  1. package/AGENTS.md +15 -2
  2. package/README.md +8 -0
  3. package/agents/allocation-test-matrix.md +82 -0
  4. package/agents/reviewed-allocations.md +138 -0
  5. package/dist/allocation-internal.d.ts +6 -0
  6. package/dist/allocation-internal.d.ts.map +1 -0
  7. package/dist/chunks/{Expense-CimA4lxE.js → Expense-Deq19w2r.js} +28 -3
  8. package/dist/chunks/Expense-Deq19w2r.js.map +1 -0
  9. package/dist/chunks/{ExpenseReceiptCollection-CSBrNDzv.js → ExpenseReceiptCollection-D4Na93BF.js} +37 -3
  10. package/dist/chunks/ExpenseReceiptCollection-D4Na93BF.js.map +1 -0
  11. package/dist/chunks/{expense-actions-DiIhw0xO.js → expense-actions-DszuHacx.js} +2 -2
  12. package/dist/chunks/{expense-actions-DiIhw0xO.js.map → expense-actions-DszuHacx.js.map} +1 -1
  13. package/dist/collections/ExpenseCollection.d.ts +5 -5
  14. package/dist/collections/ExpenseCollection.d.ts.map +1 -1
  15. package/dist/expense-allocation.d.ts +133 -0
  16. package/dist/expense-allocation.d.ts.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1001 -21
  20. package/dist/index.js.map +1 -1
  21. package/dist/manifest.json +2359 -627
  22. package/dist/models/Expense.d.ts +2 -6
  23. package/dist/models/Expense.d.ts.map +1 -1
  24. package/dist/models/ExpenseAllocation.d.ts +117 -0
  25. package/dist/models/ExpenseAllocation.d.ts.map +1 -0
  26. package/dist/models/ExpenseReceipt.d.ts +7 -0
  27. package/dist/models/ExpenseReceipt.d.ts.map +1 -1
  28. package/dist/permissions.d.ts +5 -0
  29. package/dist/permissions.d.ts.map +1 -0
  30. package/dist/recipes.d.ts +3 -0
  31. package/dist/recipes.d.ts.map +1 -1
  32. package/dist/smrt-knowledge.json +746 -108
  33. package/dist/smrt-knowledge.okf.md +17 -3
  34. package/dist/types.d.ts +2 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js.map +1 -1
  37. package/package.json +9 -9
  38. package/dist/chunks/Expense-CimA4lxE.js.map +0 -1
  39. package/dist/chunks/ExpenseReceiptCollection-CSBrNDzv.js.map +0 -1
@@ -1,9 +1,3 @@
1
- /**
2
- * Expense — a cost someone incurred, against a cost object, with a review
3
- * state and optional reimbursement and commitment links.
4
- *
5
- * @packageDocumentation
6
- */
7
1
  import { SmrtObject, type SmrtSaveOptions } from '@happyvertical/smrt-core';
8
2
  import { type CompleteSupplierPayableBasisInput, type RecordSupplierPayableEventInput, type RecordSupplierPayableInput, type SupplierPayablePosition } from '../supplier-payable.js';
9
3
  import { type ExpenseCostBasis, type ExpenseFinancialBreakdown, type ExpenseOptions, type ExpensePayer, type ExpenseRefundPosition, type ExpenseRefundRecipient, type ExpenseReimbursementPosition, type ExpenseReviewStatus, type MarkDuplicateExpenseInput, type MarkReimbursedInput, type RejectExpenseInput, type ReopenExpenseInput, type ReviewExpenseInput } from '../types.js';
@@ -105,6 +99,8 @@ export declare class Expense extends SmrtObject {
105
99
  reimbursedAt: Date | null;
106
100
  /** Payroll line, payables reference, or transfer id of the payback. */
107
101
  reimbursementReference: string;
102
+ /** Active immutable allocation; changed only by the reviewed command. */
103
+ activeAllocationRevisionId: string | null;
108
104
  constructor(options?: ExpenseOptions);
109
105
  /** Read validated supplier facts, or null when none were recorded. */
110
106
  getFinancialBreakdown(): ExpenseFinancialBreakdown | null;
@@ -1 +1 @@
1
- {"version":3,"file":"Expense.d.ts","sourceRoot":"","sources":["../../src/models/Expense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Expense.d.ts","sourceRoot":"","sources":["../../src/models/Expense.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /** Immutable reviewed allocations and local invoice reservations. No generated surface. */
2
+ import { SmrtObject, type SmrtObjectOptions, type SmrtSaveOptions } from '@happyvertical/smrt-core';
3
+ export interface ExpenseAllocationRevisionOptions extends SmrtObjectOptions {
4
+ kind?: 'allocation' | 'withdrawal';
5
+ sourceCostObjectType?: string;
6
+ sourceCostObjectId?: string;
7
+ incurredOn?: string;
8
+ paidBy?: 'company' | 'person' | 'third-party';
9
+ reimbursable?: boolean;
10
+ hasSupplierTax?: boolean | null;
11
+ basisEqualsGross?: boolean;
12
+ tenantId?: string;
13
+ sourceExpenseId?: string;
14
+ previousRevisionId?: string | null;
15
+ requestId?: string;
16
+ requestFingerprint?: string;
17
+ sourceFingerprint?: string;
18
+ sourceFingerprintNonce?: string;
19
+ sourceRevision?: string;
20
+ amountMinor?: number;
21
+ currency?: string;
22
+ reviewedByProfileId?: string;
23
+ reviewedByUserId?: string;
24
+ reviewEvidence?: string;
25
+ }
26
+ /** Persisted command-owned ExpenseAllocationRevision evidence. */
27
+ export declare class ExpenseAllocationRevision extends SmrtObject {
28
+ kind: 'allocation' | 'withdrawal';
29
+ /** Immutable bounded source facts retained even after unbilled withdrawal/correction. */
30
+ sourceCostObjectType: string;
31
+ sourceCostObjectId: string;
32
+ incurredOn: string;
33
+ paidBy: 'company' | 'person' | 'third-party';
34
+ reimbursable: boolean;
35
+ hasSupplierTax: boolean | null;
36
+ basisEqualsGross: boolean;
37
+ tenantId: string;
38
+ sourceExpenseId: string;
39
+ previousRevisionId: string | null;
40
+ requestId: string;
41
+ requestFingerprint: string;
42
+ sourceFingerprint: string;
43
+ /** Secret to bounded portion readers; prevents low-entropy source-total guessing from its digest. */
44
+ sourceFingerprintNonce: string;
45
+ sourceRevision: string;
46
+ amountMinor: number;
47
+ currency: string;
48
+ reviewedByProfileId: string;
49
+ reviewedByUserId: string;
50
+ reviewEvidence: string;
51
+ constructor(options?: ExpenseAllocationRevisionOptions);
52
+ /** Refuse all writes except command-owned inserts, including same-id adoption. */
53
+ save(options?: SmrtSaveOptions): Promise<this>;
54
+ /** Evidence cannot be erased, including superseded revisions. */
55
+ delete(): Promise<void>;
56
+ }
57
+ export interface ExpenseAllocationPortionOptions extends SmrtObjectOptions {
58
+ tenantId?: string;
59
+ sourceExpenseId?: string;
60
+ revisionId?: string;
61
+ portionKey?: string;
62
+ costObjectType?: string;
63
+ costObjectId?: string;
64
+ costCodeRef?: string;
65
+ amountMinor?: number;
66
+ currency?: string;
67
+ }
68
+ /** Persisted command-owned ExpenseAllocationPortion evidence. */
69
+ export declare class ExpenseAllocationPortion extends SmrtObject {
70
+ tenantId: string;
71
+ sourceExpenseId: string;
72
+ revisionId: string;
73
+ portionKey: string;
74
+ costObjectType: string;
75
+ costObjectId: string;
76
+ costCodeRef: string;
77
+ amountMinor: number;
78
+ currency: string;
79
+ constructor(options?: ExpenseAllocationPortionOptions);
80
+ /** Refuse all writes except command-owned inserts, including same-id adoption. */
81
+ save(options?: SmrtSaveOptions): Promise<this>;
82
+ /** Evidence cannot be erased, including superseded revisions. */
83
+ delete(): Promise<void>;
84
+ }
85
+ export interface ExpenseAllocationBillingOptions extends SmrtObjectOptions {
86
+ tenantId?: string;
87
+ sourceExpenseId?: string;
88
+ portionId?: string;
89
+ invoiceId?: string | null;
90
+ draftType?: string;
91
+ draftId?: string;
92
+ invoiceLineId?: string | null;
93
+ requestId?: string;
94
+ requestFingerprint?: string;
95
+ relatedReservationId?: string | null;
96
+ kind?: string;
97
+ }
98
+ /** Persisted command-owned ExpenseAllocationBilling evidence. */
99
+ export declare class ExpenseAllocationBilling extends SmrtObject {
100
+ tenantId: string;
101
+ sourceExpenseId: string;
102
+ portionId: string;
103
+ invoiceId: string | null;
104
+ draftType: string;
105
+ draftId: string;
106
+ invoiceLineId: string | null;
107
+ requestId: string;
108
+ requestFingerprint: string;
109
+ relatedReservationId: string | null;
110
+ kind: string;
111
+ constructor(options?: ExpenseAllocationBillingOptions);
112
+ /** Refuse all writes except command-owned inserts, including same-id adoption. */
113
+ save(options?: SmrtSaveOptions): Promise<this>;
114
+ /** Evidence cannot be erased, including superseded revisions. */
115
+ delete(): Promise<void>;
116
+ }
117
+ //# sourceMappingURL=ExpenseAllocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpenseAllocation.d.ts","sourceRoot":"","sources":["../../src/models/ExpenseAllocation.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ export declare class ExpenseReceipt extends SmrtObject {
53
53
  * immutable column.
54
54
  */
55
55
  save(options?: SmrtSaveOptions): Promise<this>;
56
+ private saveValidated;
56
57
  /**
57
58
  * A refused INSERT is either the same file racing onto the same expense,
58
59
  * or a natural-key collision with another receipt.
@@ -65,6 +66,12 @@ export declare class ExpenseReceipt extends SmrtObject {
65
66
  * re-read; if that re-read fails too, the original error is kept rather
66
67
  * than guessed at.
67
68
  */
69
+ /** Allocation review freezes the original receipt graph as provenance. */
70
+ private assertUnallocatedSource;
71
+ /** Preserve reviewed allocation provenance through model and junction deletion. */
72
+ delete(options?: {
73
+ expectedUpdatedAt?: Date | string;
74
+ }): Promise<void>;
68
75
  private classifyInsertConflict;
69
76
  private assertLinkTargets;
70
77
  private assertNotDuplicate;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpenseReceipt.d.ts","sourceRoot":"","sources":["../../src/models/ExpenseReceipt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAML,UAAU,EACV,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAmDrB;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAkBa,cAAe,SAAQ,UAAU;IAC5C,kDAAkD;IAElD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B,8EAA8E;IAE9E,SAAS,EAAE,MAAM,CAAM;IAEvB,gDAAgD;IAEhD,OAAO,EAAE,MAAM,CAAM;IAErB,sCAAsC;IAEtC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1C,qCAAqC;IAErC,QAAQ,EAAE,MAAM,CAAM;IAEtB,6BAA6B;IAE7B,QAAQ,EAAE,MAAM,CAAM;IAEtB,iCAAiC;IAEjC,SAAS,EAAE,MAAM,CAAK;IAEtB,iDAAiD;IAEjD,aAAa,EAAE,MAAM,CAAM;gBAEf,OAAO,GAAE,qBAA0B;IAc/C;;;;;;;;OAQG;IACY,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D7D;;;;;;;;;;;OAWG;YACW,sBAAsB;YA6BtB,iBAAiB;YAoCjB,kBAAkB;CAgBjC"}
1
+ {"version":3,"file":"ExpenseReceipt.d.ts","sourceRoot":"","sources":["../../src/models/ExpenseReceipt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAOL,UAAU,EACV,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAmDrB;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAkBa,cAAe,SAAQ,UAAU;IAC5C,kDAAkD;IAElD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B,8EAA8E;IAE9E,SAAS,EAAE,MAAM,CAAM;IAEvB,gDAAgD;IAEhD,OAAO,EAAE,MAAM,CAAM;IAErB,sCAAsC;IAEtC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1C,qCAAqC;IAErC,QAAQ,EAAE,MAAM,CAAM;IAEtB,6BAA6B;IAE7B,QAAQ,EAAE,MAAM,CAAM;IAEtB,iCAAiC;IAEjC,SAAS,EAAE,MAAM,CAAK;IAEtB,iDAAiD;IAEjD,aAAa,EAAE,MAAM,CAAM;gBAEf,OAAO,GAAE,qBAA0B;IAc/C;;;;;;;;OAQG;IACY,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAI/C,aAAa;IA+D3B;;;;;;;;;;;OAWG;IACH,0EAA0E;YAC5D,uBAAuB;IAgCrC,mFAAmF;IACpE,MAAM,CACnB,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;YAkBF,sBAAsB;YA6BtB,iBAAiB;YAoCjB,kBAAkB;CAgBjC"}
@@ -0,0 +1,5 @@
1
+ /** Explicit bounded-read permission independent of the deliberately closed generated expense surface. */
2
+ import { type PermissionDefinition } from '@happyvertical/smrt-users';
3
+ /** Hosts grant this real catalog permission alongside their project cost visibility policy. */
4
+ export declare const EXPENSE_ALLOCATION_PERMISSION_DEFINITIONS: PermissionDefinition[];
5
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AACnC,+FAA+F;AAC/F,eAAO,MAAM,yCAAyC,EAAE,oBAAoB,EASzE,CAAC"}
package/dist/recipes.d.ts CHANGED
@@ -77,6 +77,9 @@ export declare class ExpensesRecipe extends SmrtRecipe {
77
77
  readonly costObjectType: {
78
78
  readonly visibility: "hidden";
79
79
  };
80
+ readonly activeAllocationRevisionId: {
81
+ readonly visibility: "hidden";
82
+ };
80
83
  readonly financialBreakdown: {
81
84
  readonly visibility: "hidden";
82
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,+EAA+E;AAC/E,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,EAAE,SAAuB;IAChC,MAAM,CAAC,IAAI,SAA0B;IACrC,MAAM,CAAC,KAAK,SAAc;IAC1B,MAAM,CAAC,OAAO,SACqD;IACnE,MAAM,CAAC,QAAQ,WAAuD;IACtE,MAAM,CAAC,OAAO;;;;;MAKZ;IACF,MAAM,CAAC,MAAM,6CAA6B;IAC1C,MAAM,CAAC,GAAG;;;;;QAOR;IACF,MAAM,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmDH;CACZ"}
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,+EAA+E;AAC/E,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,EAAE,SAAuB;IAChC,MAAM,CAAC,IAAI,SAA0B;IACrC,MAAM,CAAC,KAAK,SAAc;IAC1B,MAAM,CAAC,OAAO,SACqD;IACnE,MAAM,CAAC,QAAQ,WAAuD;IACtE,MAAM,CAAC,OAAO;;;;;MAKZ;IACF,MAAM,CAAC,MAAM,6CAA6B;IAC1C,MAAM,CAAC,GAAG;;;;;QAOR;IACF,MAAM,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoDH;CACZ"}