@hasna/invoices 0.1.0 → 0.1.2

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 (40) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +9 -92
  3. package/dashboard/dist/assets/index-NFe45aEq.js +139 -0
  4. package/dashboard/dist/assets/index-khzrvnCp.css +1 -0
  5. package/dashboard/dist/index.html +13 -0
  6. package/dashboard/dist/logo.jpg +0 -0
  7. package/dist/cli/index.js +650 -10267
  8. package/dist/cli/tui.d.ts +2 -0
  9. package/dist/cli/tui.d.ts.map +1 -0
  10. package/dist/db/agents.d.ts +19 -0
  11. package/dist/db/agents.d.ts.map +1 -0
  12. package/dist/db/core.test.d.ts +2 -0
  13. package/dist/db/core.test.d.ts.map +1 -0
  14. package/dist/db/database.d.ts +6 -8
  15. package/dist/db/database.d.ts.map +1 -1
  16. package/dist/db/invoices.d.ts +77 -90
  17. package/dist/db/invoices.d.ts.map +1 -1
  18. package/dist/db/migrate.d.ts +5 -0
  19. package/dist/db/migrate.d.ts.map +1 -0
  20. package/dist/db/schema.d.ts +6 -0
  21. package/dist/db/schema.d.ts.map +1 -0
  22. package/dist/index.d.ts +6 -7
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +417 -10044
  25. package/dist/lib/version.d.ts +2 -0
  26. package/dist/lib/version.d.ts.map +1 -0
  27. package/dist/mcp/index.d.ts +1 -1
  28. package/dist/mcp/index.js +595 -10281
  29. package/dist/server/index.d.ts +3 -0
  30. package/dist/server/index.d.ts.map +1 -0
  31. package/dist/server/index.js +4694 -0
  32. package/dist/types/index.d.ts +18 -0
  33. package/dist/types/index.d.ts.map +1 -0
  34. package/package.json +20 -14
  35. package/dist/db/business.d.ts +0 -93
  36. package/dist/db/business.d.ts.map +0 -1
  37. package/dist/db/clients.d.ts +0 -45
  38. package/dist/db/clients.d.ts.map +0 -1
  39. package/dist/db/migrations.d.ts +0 -7
  40. package/dist/db/migrations.d.ts.map +0 -1
@@ -0,0 +1,2 @@
1
+ export declare function runInvoicesTui(): Promise<void>;
2
+ //# sourceMappingURL=tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/cli/tui.tsx"],"names":[],"mappings":"AA6CA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAGpD"}
@@ -0,0 +1,19 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export interface AgentRecord {
3
+ id: string;
4
+ name: string;
5
+ description?: string;
6
+ focus?: string;
7
+ createdAt: string;
8
+ lastSeenAt: string;
9
+ }
10
+ export declare function registerAgent(db: Database, input: {
11
+ name: string;
12
+ description?: string;
13
+ }): AgentRecord;
14
+ export declare function getAgentById(db: Database, id: string): AgentRecord | null;
15
+ export declare function getAgentByName(db: Database, name: string): AgentRecord | null;
16
+ export declare function heartbeatAgent(db: Database, agentId: string): AgentRecord | null;
17
+ export declare function setAgentFocus(db: Database, agentId: string, focus?: string): AgentRecord | null;
18
+ export declare function listAgents(db: Database): AgentRecord[];
19
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAatG;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAGzE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAG7E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAGhF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAG/F;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,WAAW,EAAE,CAEtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=core.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.test.d.ts","sourceRoot":"","sources":["../../src/db/core.test.ts"],"names":[],"mappings":""}
@@ -1,9 +1,7 @@
1
- /**
2
- * Database connection for open-invoices
3
- * Stores data at ~/.hasna/invoices/invoices.db
4
- * Override with HASNA_INVOICES_DIR or INVOICES_DIR env vars.
5
- */
6
- import type { Database } from "bun:sqlite";
7
- export declare function getDatabase(): Database;
8
- export declare function closeDatabase(): void;
1
+ import { Database } from "bun:sqlite";
2
+ export interface InvoiceDatabaseOptions {
3
+ dbPath?: string;
4
+ }
5
+ export declare function defaultDatabasePath(): string;
6
+ export declare function openInvoiceDatabase(options?: InvoiceDatabaseOptions): Database;
9
7
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiB3C,wBAAgB,WAAW,IAAI,QAAQ,CA8CtC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,GAAG,QAAQ,CASlF"}
@@ -1,105 +1,92 @@
1
- /**
2
- * Invoice CRUD operations
3
- */
4
- export interface Invoice {
1
+ import type { Database } from "bun:sqlite";
2
+ export interface PartyRecord {
5
3
  id: string;
6
- invoice_number: string;
7
- client_id: string | null;
8
- business_profile_id: string | null;
9
- status: "draft" | "sent" | "paid" | "overdue" | "cancelled" | "refunded";
10
- issue_date: string;
11
- due_date: string | null;
12
- currency: string;
13
- subtotal: number;
14
- tax_rate: number;
15
- tax_name: string;
16
- tax_amount: number;
17
- discount: number;
18
- total: number;
19
- reverse_charge: boolean;
20
- language: string;
21
- notes: string | null;
22
- footer_text: string | null;
23
- metadata: Record<string, unknown>;
24
- created_at: string;
25
- updated_at: string;
26
- paid_at: string | null;
4
+ kind: "issuer" | "customer";
5
+ legalName: string;
6
+ email?: string;
7
+ taxId?: string;
8
+ country?: string;
9
+ address?: string;
10
+ createdAt: string;
11
+ updatedAt: string;
12
+ }
13
+ export interface NewPartyInput {
14
+ id?: string;
15
+ kind: "issuer" | "customer";
16
+ legalName: string;
17
+ email?: string;
18
+ taxId?: string;
19
+ country?: string;
20
+ address?: string;
27
21
  }
28
- export interface LineItem {
22
+ export interface InvoiceLineRecord {
29
23
  id: string;
30
- invoice_id: string;
24
+ invoiceId: string;
25
+ position: number;
26
+ description: string;
27
+ quantity: number;
28
+ unitPriceCents: number;
29
+ taxRateBasisPoints: number;
30
+ lineTotalCents: number;
31
+ createdAt: string;
32
+ }
33
+ export interface NewInvoiceLineInput {
34
+ id?: string;
31
35
  description: string;
32
36
  quantity: number;
33
- unit_price: number;
34
- amount: number;
35
- sort_order: number;
36
- created_at: string;
37
+ unitPriceCents: number;
38
+ taxRateBasisPoints?: number;
37
39
  }
38
- export interface Payment {
40
+ export interface InvoiceRecord {
39
41
  id: string;
40
- invoice_id: string;
41
- amount: number;
42
- method: string | null;
43
- reference: string | null;
44
- notes: string | null;
45
- paid_at: string;
46
- created_at: string;
42
+ number: string;
43
+ issuerId: string;
44
+ customerId: string;
45
+ status: "draft" | "sent" | "partially_paid" | "paid" | "void" | "overdue";
46
+ currency: string;
47
+ notes?: string;
48
+ issuedAt: string;
49
+ dueAt?: string;
50
+ subtotalCents: number;
51
+ taxCents: number;
52
+ totalCents: number;
53
+ createdAt: string;
54
+ updatedAt: string;
47
55
  }
48
- export interface InvoiceWithItems extends Invoice {
49
- line_items: LineItem[];
50
- payments: Payment[];
56
+ export interface InvoiceWithLines extends InvoiceRecord {
57
+ lines: InvoiceLineRecord[];
51
58
  }
52
- export interface CreateInvoiceInput {
53
- client_id?: string;
54
- business_profile_id?: string;
55
- invoice_number?: string;
56
- issue_date?: string;
57
- due_date?: string;
58
- currency?: string;
59
- tax_rate?: number;
60
- tax_name?: string;
61
- discount?: number;
62
- reverse_charge?: boolean;
63
- language?: string;
59
+ export interface NewInvoiceInput {
60
+ id?: string;
61
+ number: string;
62
+ issuerId: string;
63
+ customerId: string;
64
+ currency: string;
64
65
  notes?: string;
65
- footer_text?: string;
66
+ issuedAt: string;
67
+ dueAt?: string;
68
+ lines: NewInvoiceLineInput[];
66
69
  }
67
- export declare function createInvoice(input?: CreateInvoiceInput): Invoice;
68
- export declare function getInvoice(id: string): Invoice | null;
69
- export declare function getInvoiceWithItems(id: string): InvoiceWithItems | null;
70
- export interface ListInvoicesOptions {
71
- status?: string;
72
- client_id?: string;
73
- from_date?: string;
74
- to_date?: string;
70
+ interface ListInvoicesOptions {
71
+ status?: InvoiceRecord["status"];
75
72
  limit?: number;
73
+ offset?: number;
76
74
  }
77
- export declare function listInvoices(options?: ListInvoicesOptions): Invoice[];
78
- export declare function updateInvoiceStatus(id: string, status: Invoice["status"]): Invoice | null;
79
- export declare function deleteInvoice(id: string): boolean;
80
- export interface AddLineItemInput {
81
- invoice_id: string;
82
- description: string;
83
- quantity?: number;
84
- unit_price: number;
85
- }
86
- export declare function addLineItem(input: AddLineItemInput): LineItem;
87
- export declare function removeLineItem(id: string): boolean;
88
- export interface RecordPaymentInput {
89
- invoice_id: string;
90
- amount: number;
91
- method?: string;
92
- reference?: string;
93
- notes?: string;
75
+ interface SearchInvoicesOptions {
76
+ status?: InvoiceRecord["status"];
77
+ limit?: number;
78
+ offset?: number;
94
79
  }
95
- export declare function recordPayment(input: RecordPaymentInput): Payment;
96
- export declare function getInvoiceSummary(): {
97
- total_invoices: number;
98
- draft: number;
99
- sent: number;
100
- paid: number;
101
- overdue: number;
102
- total_outstanding: number;
103
- total_paid: number;
104
- };
80
+ export declare function createParty(db: Database, input: NewPartyInput): PartyRecord;
81
+ export declare function updateParty(db: Database, id: string, updates: Partial<Omit<NewPartyInput, "id" | "kind">>): PartyRecord | null;
82
+ export declare function getPartyById(db: Database, id: string): PartyRecord | null;
83
+ export declare function listParties(db: Database, kind?: PartyRecord["kind"]): PartyRecord[];
84
+ export declare function createInvoice(db: Database, input: NewInvoiceInput): InvoiceWithLines;
85
+ export declare function getInvoiceById(db: Database, id: string): InvoiceWithLines | null;
86
+ export declare function listInvoices(db: Database, options?: ListInvoicesOptions): InvoiceRecord[];
87
+ export declare function updateInvoiceStatus(db: Database, id: string, status: InvoiceRecord["status"]): InvoiceRecord | null;
88
+ export declare function deleteInvoice(db: Database, id: string): boolean;
89
+ export declare function rebuildInvoiceSearchIndex(db: Database): void;
90
+ export declare function searchInvoices(db: Database, query: string, options?: SearchInvoicesOptions): InvoiceRecord[];
91
+ export {};
105
92
  //# sourceMappingURL=invoices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../src/db/invoices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../src/db/invoices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type InvoiceDatabaseOptions } from "./database.js";
3
+ export declare function applyMigrations(db: Database): string[];
4
+ export declare function migrateDatabase(options?: InvoiceDatabaseOptions): string[];
5
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAYjF,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,EAAE,CAmBtD;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,MAAM,EAAE,CAO9E"}
@@ -0,0 +1,6 @@
1
+ export interface Migration {
2
+ id: string;
3
+ sql: string;
4
+ }
5
+ export declare const MIGRATIONS: Migration[];
6
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,EAkJjC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- /**
2
- * @hasna/invoices — Invoice management for AI agents
3
- */
4
- export { createInvoice, getInvoice, getInvoiceWithItems, listInvoices, updateInvoiceStatus, deleteInvoice, addLineItem, removeLineItem, recordPayment, getInvoiceSummary, type Invoice, type InvoiceWithItems, type LineItem, type Payment, type CreateInvoiceInput, type AddLineItemInput, type RecordPaymentInput, type ListInvoicesOptions, } from "./db/invoices.js";
5
- export { createClient, getClient, listClients, updateClient, deleteClient, type Client, type CreateClientInput, } from "./db/clients.js";
6
- export { createBusinessProfile, getBusinessProfile, getDefaultBusinessProfile, listBusinessProfiles, updateBusinessProfile, deleteBusinessProfile, getTaxRulesForCountry, getDefaultTaxRule, getTaxRule, listAllTaxRules, createTaxRule, deleteTaxRule, determineTax, type BusinessProfile, type CreateBusinessInput, type TaxRule, type CreateTaxRuleInput, } from "./db/business.js";
7
- export { getDatabase, closeDatabase } from "./db/database.js";
1
+ export * from "./types/index.js";
2
+ export * from "./lib/version.js";
3
+ export * from "./db/database.js";
4
+ export * from "./db/migrate.js";
5
+ export * from "./db/invoices.js";
6
+ export * from "./db/agents.js";
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}