lambda-erp 0.6.12__tar.gz → 0.6.13__tar.gz
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.
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/PKG-INFO +2 -2
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/README.md +1 -1
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/pyproject.toml +1 -1
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/.gitignore +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/LICENSE +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/attachments.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/auth.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/bootstrap.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/chat.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/demo_limits.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/deps.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/errors.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/main.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/oauth.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/pdf.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/providers.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/remarks_md.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/accounting.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/admin.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/analytics.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/bank_reconciliation.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/chat_api.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/documents.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/masters.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/mcp.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/proposals.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/reports.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/routers/setup.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/services.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/templates/document.html +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/api/templates/proposal.html +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/docs/agents/README.md +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/frontend/LICENSE +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/frontend/README.md +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/frontend/src/api/client.ts +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/bank_transaction.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/budget.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/chart_of_accounts.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/general_ledger.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/journal_entry.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/payment_entry.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/pos_invoice.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/purchase_invoice.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/revaluation.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/sales_invoice.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/engine.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/pack.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/packs/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/packs/ch.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/packs/de_common.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/packs/de_skr03.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/packs/de_skr04.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/packs/generic.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/profiles.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/setup/spine.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/accounting/subscription.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/buying/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/buying/purchase_order.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/controllers/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/controllers/currency.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/controllers/defaults.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/controllers/pricing_rule.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/controllers/taxes_and_totals.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/database.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/exceptions.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/hooks.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/model.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/selling/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/selling/proposal.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/selling/quotation.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/selling/sales_order.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/simulation.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/stock/__init__.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/stock/delivery_note.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/stock/purchase_receipt.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/stock/stock_entry.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/stock/stock_ledger.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/lambda_erp/utils.py +0 -0
- {lambda_erp-0.6.12 → lambda_erp-0.6.13}/terraform/README.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lambda-erp
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.13
|
|
4
4
|
Summary: Core ERP logic - accounting, sales, purchasing, inventory
|
|
5
5
|
Author: TORUS INVESTMENTS AG
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -161,12 +161,12 @@ The result is booked in one step — chart of accounts, sensible default account
|
|
|
161
161
|
- Server-side aggregation tool for in-chat factual answers across large datasets
|
|
162
162
|
- PDF / image attachment → add invoices, create quotations, etc. all directly by adding them in the chat
|
|
163
163
|
- **Programmatic API** — drive the ERP from external systems with per-user, role-capped Bearer keys: a [chat API](docs/chat-api.md) (converse with the agent) and a [REST API](docs/rest-api.md) (documents, masters, reports — the same endpoints the web app uses, so a connector or sync job can create and submit documents directly). Both off by default; an admin enables each independently and issues keys.
|
|
164
|
+
- **MCP server** — the ERP speaks the [Model Context Protocol](https://modelcontextprotocol.io) at `POST /api/mcp`, so **any MCP-capable agent (Claude, Codex, an IDE assistant) can drive it directly** — list/create/update/submit documents, manage master data, run reports — as *structured, validated tool calls*, not brittle screen-scraping or hand-written HTTP glue. The tool list is built from the live registries, so a plugin's own doctypes (e.g. a CRM's leads/contacts) are exposed automatically. It reuses the *same* Bearer keys and roles as the REST API — a viewer key is read-only, a manager key can write — so access is scoped, auditable, and off by default. In practice: point your assistant at your instance and ask "which invoices are overdue?" or "create a quotation for Acme with 3× SVC-SPARK" and it operates on real data, from wherever you already work. The API-keys settings page hands you ready-to-paste Claude and Codex config the moment you create a key.
|
|
164
165
|
- Auth with admin/manager/viewer roles plus a public demo mode
|
|
165
166
|
- Full test suite that exercises every cycle against an in-memory SQLite
|
|
166
167
|
|
|
167
168
|
## What's still todo (Suggestions welcome)
|
|
168
169
|
|
|
169
|
-
- MCP integration for supplier/customer communication (quotes, orders, confirmations)
|
|
170
170
|
- Multi-currency beyond the simplified current handling
|
|
171
171
|
- Workflows / approval chains
|
|
172
172
|
- Serial & batch tracking
|
|
@@ -134,12 +134,12 @@ The result is booked in one step — chart of accounts, sensible default account
|
|
|
134
134
|
- Server-side aggregation tool for in-chat factual answers across large datasets
|
|
135
135
|
- PDF / image attachment → add invoices, create quotations, etc. all directly by adding them in the chat
|
|
136
136
|
- **Programmatic API** — drive the ERP from external systems with per-user, role-capped Bearer keys: a [chat API](docs/chat-api.md) (converse with the agent) and a [REST API](docs/rest-api.md) (documents, masters, reports — the same endpoints the web app uses, so a connector or sync job can create and submit documents directly). Both off by default; an admin enables each independently and issues keys.
|
|
137
|
+
- **MCP server** — the ERP speaks the [Model Context Protocol](https://modelcontextprotocol.io) at `POST /api/mcp`, so **any MCP-capable agent (Claude, Codex, an IDE assistant) can drive it directly** — list/create/update/submit documents, manage master data, run reports — as *structured, validated tool calls*, not brittle screen-scraping or hand-written HTTP glue. The tool list is built from the live registries, so a plugin's own doctypes (e.g. a CRM's leads/contacts) are exposed automatically. It reuses the *same* Bearer keys and roles as the REST API — a viewer key is read-only, a manager key can write — so access is scoped, auditable, and off by default. In practice: point your assistant at your instance and ask "which invoices are overdue?" or "create a quotation for Acme with 3× SVC-SPARK" and it operates on real data, from wherever you already work. The API-keys settings page hands you ready-to-paste Claude and Codex config the moment you create a key.
|
|
137
138
|
- Auth with admin/manager/viewer roles plus a public demo mode
|
|
138
139
|
- Full test suite that exercises every cycle against an in-memory SQLite
|
|
139
140
|
|
|
140
141
|
## What's still todo (Suggestions welcome)
|
|
141
142
|
|
|
142
|
-
- MCP integration for supplier/customer communication (quotes, orders, confirmations)
|
|
143
143
|
- Multi-currency beyond the simplified current handling
|
|
144
144
|
- Workflows / approval chains
|
|
145
145
|
- Serial & batch tracking
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|