@mandaitor/taxonomy-realestate 0.2.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.
@@ -0,0 +1,7 @@
1
+ import type { TaxonomyAction } from "@mandaitor/taxonomy-core";
2
+ /**
3
+ * Real estate actions covering property management lifecycle:
4
+ * listing → tenant screening → contracts → maintenance → reporting
5
+ */
6
+ export declare const REALESTATE_ACTIONS: TaxonomyAction[];
7
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,EA2G9C,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Real estate actions covering property management lifecycle:
3
+ * listing → tenant screening → contracts → maintenance → reporting
4
+ */
5
+ export const REALESTATE_ACTIONS = [
6
+ // ── Listing Management ─────────────────────────────────
7
+ {
8
+ id: "realestate.listing.create",
9
+ label: "Create Property Listing",
10
+ description: "Authorize AI agent to create new property listings from provided data and photos",
11
+ riskLevel: "LOW",
12
+ requiresHumanApproval: false,
13
+ tags: ["listing", "marketing", "automation"],
14
+ },
15
+ {
16
+ id: "realestate.listing.update",
17
+ label: "Update Property Listing",
18
+ description: "Authorize AI agent to update existing property listings with new information or pricing",
19
+ riskLevel: "LOW",
20
+ requiresHumanApproval: false,
21
+ tags: ["listing", "marketing", "update"],
22
+ },
23
+ {
24
+ id: "realestate.listing.publish",
25
+ label: "Publish to Portals",
26
+ description: "Authorize AI agent to publish listings to ImmobilienScout24, Immowelt, and other portals",
27
+ riskLevel: "MEDIUM",
28
+ requiresHumanApproval: false,
29
+ tags: ["listing", "portal", "publishing"],
30
+ },
31
+ // ── Tenant Management ──────────────────────────────────
32
+ {
33
+ id: "realestate.tenant.communicate",
34
+ label: "Tenant Communication",
35
+ description: "Authorize AI agent to send pre-approved communications to tenants (maintenance updates, reminders)",
36
+ riskLevel: "MEDIUM",
37
+ requiresHumanApproval: false,
38
+ tags: ["tenant", "communication", "automation"],
39
+ },
40
+ {
41
+ id: "realestate.tenant.screen",
42
+ label: "Screen Tenant Application",
43
+ description: "Authorize AI agent to pre-screen tenant applications against defined criteria (Schufa, income ratio)",
44
+ riskLevel: "HIGH",
45
+ requiresHumanApproval: true,
46
+ tags: ["tenant", "screening", "compliance"],
47
+ },
48
+ // ── Document Processing ────────────────────────────────
49
+ {
50
+ id: "realestate.document.classify",
51
+ label: "Classify Document",
52
+ description: "Authorize AI agent to classify incoming documents (contracts, invoices, correspondence)",
53
+ riskLevel: "LOW",
54
+ requiresHumanApproval: false,
55
+ tags: ["document", "classification", "automation"],
56
+ },
57
+ {
58
+ id: "realestate.document.extract",
59
+ label: "Extract Document Data",
60
+ description: "Authorize AI agent to extract structured data from scanned documents using OCR/AI",
61
+ riskLevel: "LOW",
62
+ requiresHumanApproval: false,
63
+ tags: ["document", "extraction", "ocr"],
64
+ },
65
+ // ── Contracts ──────────────────────────────────────────
66
+ {
67
+ id: "realestate.contract.draft",
68
+ label: "Draft Rental Contract",
69
+ description: "Authorize AI agent to draft rental contracts from templates with property-specific terms",
70
+ riskLevel: "HIGH",
71
+ requiresHumanApproval: true,
72
+ tags: ["contract", "legal", "drafting"],
73
+ },
74
+ // ── Maintenance ────────────────────────────────────────
75
+ {
76
+ id: "realestate.maintenance.create",
77
+ label: "Create Maintenance Ticket",
78
+ description: "Authorize AI agent to create maintenance tickets from tenant reports or sensor data",
79
+ riskLevel: "LOW",
80
+ requiresHumanApproval: false,
81
+ tags: ["maintenance", "facility", "automation"],
82
+ },
83
+ {
84
+ id: "realestate.maintenance.assign",
85
+ label: "Assign Contractor",
86
+ description: "Authorize AI agent to assign maintenance tickets to pre-approved contractors based on availability and skill",
87
+ riskLevel: "MEDIUM",
88
+ requiresHumanApproval: false,
89
+ tags: ["maintenance", "contractor", "assignment"],
90
+ },
91
+ {
92
+ id: "realestate.maintenance.approve_cost",
93
+ label: "Approve Repair Cost",
94
+ description: "Authorize AI agent to approve repair costs up to a defined threshold",
95
+ riskLevel: "HIGH",
96
+ requiresHumanApproval: true,
97
+ tags: ["maintenance", "finance", "approval"],
98
+ },
99
+ ];
100
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { TaxonomyConstraintTemplate } from "@mandaitor/taxonomy-core";
2
+ export declare const REALESTATE_CONSTRAINTS: TaxonomyConstraintTemplate[];
3
+ //# sourceMappingURL=constraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../src/constraints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EA8F9D,CAAC"}
@@ -0,0 +1,96 @@
1
+ export const REALESTATE_CONSTRAINTS = [
2
+ {
3
+ id: "realestate.time.lease-period",
4
+ name: "Lease Period Constraint",
5
+ description: "Limits mandate validity to a lease or management contract period",
6
+ type: "TIME",
7
+ schema: {
8
+ not_before: {
9
+ type: "string",
10
+ format: "date-time",
11
+ description: "Mandate activation timestamp",
12
+ },
13
+ expires_at: { type: "string", format: "date-time", description: "Mandate expiry timestamp" },
14
+ defaultDuration: { type: "string", format: "duration", default: "P365D" },
15
+ },
16
+ defaults: {
17
+ defaultDuration: "P365D",
18
+ },
19
+ },
20
+ {
21
+ id: "realestate.limits.repair-cost",
22
+ name: "Repair Cost Limits",
23
+ description: "Financial limits for automated repair cost approval",
24
+ type: "TRANSACTION",
25
+ schema: {
26
+ max_repair_cost: {
27
+ type: "object",
28
+ properties: {
29
+ currency: { type: "string", default: "EUR" },
30
+ value: { type: "number", description: "Maximum single repair cost" },
31
+ },
32
+ default: { currency: "EUR", value: 2000 },
33
+ },
34
+ max_tickets_per_week: {
35
+ type: "number",
36
+ description: "Maximum maintenance tickets per week",
37
+ default: 15,
38
+ },
39
+ },
40
+ defaults: {
41
+ max_repair_cost: { currency: "EUR", value: 2000 },
42
+ max_tickets_per_week: 15,
43
+ },
44
+ },
45
+ {
46
+ id: "realestate.escalation.cost-threshold",
47
+ name: "Cost Threshold Escalation",
48
+ description: "Escalation when repair costs exceed threshold",
49
+ type: "ESCALATION",
50
+ schema: {
51
+ cost_above: {
52
+ type: "object",
53
+ properties: { currency: { type: "string", default: "EUR" }, value: { type: "number" } },
54
+ default: { currency: "EUR", value: 1000 },
55
+ },
56
+ escalation_method: {
57
+ type: "string",
58
+ enum: ["APPROVAL_REQUIRED", "IMMEDIATE_NOTIFICATION"],
59
+ default: "APPROVAL_REQUIRED",
60
+ },
61
+ },
62
+ defaults: {
63
+ cost_above: { currency: "EUR", value: 1000 },
64
+ escalation_method: "APPROVAL_REQUIRED",
65
+ },
66
+ },
67
+ {
68
+ id: "realestate.gdpr.tenant-data",
69
+ name: "GDPR Tenant Data Constraints",
70
+ description: "GDPR compliance constraints for tenant data processing",
71
+ type: "COMPLIANCE",
72
+ schema: {
73
+ gdpr_consent_required: {
74
+ type: "boolean",
75
+ description: "Whether explicit GDPR consent is required before processing",
76
+ default: true,
77
+ },
78
+ data_retention_days: {
79
+ type: "number",
80
+ description: "Maximum days to retain processed tenant data",
81
+ default: 90,
82
+ },
83
+ purpose_limitation: {
84
+ type: "string",
85
+ description: "Specific purpose for data processing (GDPR Art. 5)",
86
+ default: "tenant_screening",
87
+ },
88
+ },
89
+ defaults: {
90
+ gdpr_consent_required: true,
91
+ data_retention_days: 90,
92
+ purpose_limitation: "tenant_screening",
93
+ },
94
+ },
95
+ ];
96
+ //# sourceMappingURL=constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.js","sourceRoot":"","sources":["../src/constraints.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,sBAAsB,GAAiC;IAClE;QACE,EAAE,EAAE,8BAA8B;QAClC,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,kEAAkE;QAC/E,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,8BAA8B;aAC5C;YACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,EAAE;YAC5F,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE;SAC1E;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,OAAO;SACzB;KACF;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,qDAAqD;QAClE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE;YACN,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;oBAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;iBACrE;gBACD,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;aAC1C;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sCAAsC;gBACnD,OAAO,EAAE,EAAE;aACZ;SACF;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YACjD,oBAAoB,EAAE,EAAE;SACzB;KACF;IACD;QACE,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,+CAA+C;QAC5D,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACvF,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;aAC1C;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBACrD,OAAO,EAAE,mBAAmB;aAC7B;SACF;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YAC5C,iBAAiB,EAAE,mBAAmB;SACvC;KACF;IACD;QACE,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,wDAAwD;QACrE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,qBAAqB,EAAE;gBACrB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,6DAA6D;gBAC1E,OAAO,EAAE,IAAI;aACd;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;gBAC3D,OAAO,EAAE,EAAE;aACZ;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oDAAoD;gBACjE,OAAO,EAAE,kBAAkB;aAC5B;SACF;QACD,QAAQ,EAAE;YACR,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,EAAE;YACvB,kBAAkB,EAAE,kBAAkB;SACvC;KACF;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { IndustryTaxonomy, TaxonomyAction, TaxonomyResourcePattern, TaxonomyMandateTemplate } from "@mandaitor/taxonomy-core";
2
+ export declare const REALESTATE_ACTIONS: TaxonomyAction[];
3
+ export declare const REALESTATE_RESOURCES: TaxonomyResourcePattern[];
4
+ export declare const REALESTATE_TEMPLATES: TaxonomyMandateTemplate[];
5
+ export declare const realestateTaxonomy: IndustryTaxonomy;
6
+ export default realestateTaxonomy;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAsD9C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,uBAAuB,EA2BzD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,uBAAuB,EA8EzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBA0BhC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,184 @@
1
+ export const REALESTATE_ACTIONS = [
2
+ {
3
+ id: "realestate.listing.create",
4
+ label: "Create Property Listing",
5
+ description: "Authorize AI agent to create new property listings from provided data and photos",
6
+ riskLevel: "LOW",
7
+ requiresHumanApproval: false,
8
+ tags: ["listing", "marketing", "automation"],
9
+ },
10
+ {
11
+ id: "realestate.tenant.communicate",
12
+ label: "Tenant Communication",
13
+ description: "Authorize AI agent to send pre-approved communications to tenants (maintenance updates, reminders)",
14
+ riskLevel: "MEDIUM",
15
+ requiresHumanApproval: false,
16
+ tags: ["tenant", "communication", "automation"],
17
+ },
18
+ {
19
+ id: "realestate.tenant.screen",
20
+ label: "Screen Tenant Application",
21
+ description: "Authorize AI agent to pre-screen tenant applications against defined criteria (Schufa, income ratio)",
22
+ riskLevel: "HIGH",
23
+ requiresHumanApproval: true,
24
+ tags: ["tenant", "screening", "compliance"],
25
+ },
26
+ {
27
+ id: "realestate.contract.draft",
28
+ label: "Draft Rental Contract",
29
+ description: "Authorize AI agent to draft rental contracts from templates with property-specific terms",
30
+ riskLevel: "HIGH",
31
+ requiresHumanApproval: true,
32
+ tags: ["contract", "legal", "drafting"],
33
+ },
34
+ {
35
+ id: "realestate.maintenance.create",
36
+ label: "Create Maintenance Ticket",
37
+ description: "Authorize AI agent to create maintenance tickets from tenant reports or sensor data",
38
+ riskLevel: "LOW",
39
+ requiresHumanApproval: false,
40
+ tags: ["maintenance", "facility", "automation"],
41
+ },
42
+ {
43
+ id: "realestate.maintenance.approve_cost",
44
+ label: "Approve Repair Cost",
45
+ description: "Authorize AI agent to approve repair costs up to a defined threshold",
46
+ riskLevel: "HIGH",
47
+ requiresHumanApproval: true,
48
+ tags: ["maintenance", "finance", "approval"],
49
+ },
50
+ // ... additional actions defined in full package
51
+ ];
52
+ export const REALESTATE_RESOURCES = [
53
+ {
54
+ name: "portfolio-property",
55
+ pattern: "mitarbyte:portfolio:{portfolioId}/property:{propertyId}/*",
56
+ description: "Resources scoped to a specific property in a portfolio",
57
+ parameters: [
58
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
59
+ { name: "propertyId", type: "string", description: "Individual property ID", required: true },
60
+ ],
61
+ },
62
+ {
63
+ name: "portfolio-tenant",
64
+ pattern: "mitarbyte:portfolio:{portfolioId}/tenant:{tenantId}/*",
65
+ description: "Resources scoped to a specific tenant",
66
+ parameters: [
67
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
68
+ { name: "tenantId", type: "string", description: "Tenant ID", required: true },
69
+ ],
70
+ },
71
+ {
72
+ name: "portfolio-maintenance",
73
+ pattern: "mitarbyte:portfolio:{portfolioId}/maintenance:*",
74
+ description: "All maintenance tickets in a portfolio",
75
+ parameters: [
76
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
77
+ ],
78
+ },
79
+ ];
80
+ export const REALESTATE_TEMPLATES = [
81
+ {
82
+ id: "realestate.automated-listing",
83
+ name: "Automated Listing Management",
84
+ description: "Delegate property listing creation and portal publishing to Mitarbyte's Listing Agent",
85
+ vertical: "realestate",
86
+ scope: {
87
+ actions: [
88
+ "realestate.listing.create",
89
+ "realestate.listing.update",
90
+ "realestate.listing.publish",
91
+ ],
92
+ resourcePatterns: ["portfolio-property"],
93
+ effect: "ALLOW",
94
+ },
95
+ constraints: {
96
+ time: { defaultDuration: "P365D" },
97
+ rateLimits: { max_listings_per_day: 20 },
98
+ },
99
+ delegateType: "AGENT",
100
+ },
101
+ {
102
+ id: "realestate.tenant-screening",
103
+ name: "AI-Assisted Tenant Screening",
104
+ description: "Delegate initial tenant screening to Mitarbyte's Screening Agent with human approval for final decision",
105
+ vertical: "realestate",
106
+ scope: {
107
+ actions: [
108
+ "realestate.tenant.screen",
109
+ "realestate.document.classify",
110
+ "realestate.document.extract",
111
+ ],
112
+ resourcePatterns: ["portfolio-tenant"],
113
+ effect: "ALLOW",
114
+ conditions: {
115
+ gdpr_consent_required: true,
116
+ data_retention_days: 90,
117
+ },
118
+ },
119
+ constraints: {
120
+ time: { defaultDuration: "P30D" },
121
+ escalationRules: {
122
+ always_escalate_to: "property_manager",
123
+ escalation_method: "APPROVAL_REQUIRED",
124
+ },
125
+ },
126
+ delegateType: "AGENT",
127
+ },
128
+ {
129
+ id: "realestate.maintenance-automation",
130
+ name: "Automated Maintenance Coordination",
131
+ description: "Delegate maintenance ticket creation, contractor assignment, and cost approval (up to threshold)",
132
+ vertical: "realestate",
133
+ scope: {
134
+ actions: [
135
+ "realestate.maintenance.create",
136
+ "realestate.maintenance.assign",
137
+ "realestate.maintenance.approve_cost",
138
+ ],
139
+ resourcePatterns: ["portfolio-maintenance"],
140
+ effect: "ALLOW",
141
+ },
142
+ constraints: {
143
+ time: { defaultDuration: "P180D" },
144
+ transactionLimits: {
145
+ max_repair_cost: { currency: "EUR", value: 2000 },
146
+ max_tickets_per_week: 15,
147
+ },
148
+ escalationRules: {
149
+ cost_above: { currency: "EUR", value: 1000 },
150
+ escalation_method: "APPROVAL_REQUIRED",
151
+ },
152
+ },
153
+ delegateType: "AGENT",
154
+ },
155
+ ];
156
+ export const realestateTaxonomy = {
157
+ id: "realestate",
158
+ version: "1.0.0",
159
+ name: "Real Estate & Immobilienverwaltung",
160
+ actions: REALESTATE_ACTIONS,
161
+ resourcePatterns: REALESTATE_RESOURCES,
162
+ constraintTemplates: [],
163
+ mandateTemplates: REALESTATE_TEMPLATES,
164
+ validateScope(scope) {
165
+ const errors = [];
166
+ const validActions = new Set(REALESTATE_ACTIONS.map((a) => a.id));
167
+ const scopeWithActions = scope;
168
+ for (const action of scopeWithActions.actions || []) {
169
+ if (!validActions.has(action)) {
170
+ errors.push({
171
+ path: `scope.actions[${action}]`,
172
+ message: `Unknown action: ${action}`,
173
+ code: "UNKNOWN_ACTION",
174
+ });
175
+ }
176
+ }
177
+ return { valid: errors.length === 0, errors };
178
+ },
179
+ validateConstraints(_constraints) {
180
+ return { valid: true, errors: [] };
181
+ },
182
+ };
183
+ export default realestateTaxonomy;
184
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { TaxonomyResourcePattern } from "@mandaitor/taxonomy-core";
2
+ /**
3
+ * Resource patterns follow the Mitarbyte portfolio hierarchy:
4
+ * portfolio → property → unit → tenant
5
+ */
6
+ export declare const REALESTATE_RESOURCES: TaxonomyResourcePattern[];
7
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,uBAAuB,EAiDzD,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Resource patterns follow the Mitarbyte portfolio hierarchy:
3
+ * portfolio → property → unit → tenant
4
+ */
5
+ export const REALESTATE_RESOURCES = [
6
+ {
7
+ name: "portfolio-property",
8
+ pattern: "mitarbyte:portfolio:{portfolioId}/property:{propertyId}/*",
9
+ description: "Resources scoped to a specific property in a portfolio",
10
+ parameters: [
11
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
12
+ { name: "propertyId", type: "string", description: "Individual property ID", required: true },
13
+ ],
14
+ },
15
+ {
16
+ name: "portfolio-tenant",
17
+ pattern: "mitarbyte:portfolio:{portfolioId}/tenant:{tenantId}/*",
18
+ description: "Resources scoped to a specific tenant",
19
+ parameters: [
20
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
21
+ { name: "tenantId", type: "string", description: "Tenant ID", required: true },
22
+ ],
23
+ },
24
+ {
25
+ name: "portfolio-maintenance",
26
+ pattern: "mitarbyte:portfolio:{portfolioId}/maintenance:*",
27
+ description: "All maintenance tickets in a portfolio",
28
+ parameters: [
29
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
30
+ ],
31
+ },
32
+ {
33
+ name: "portfolio-wide",
34
+ pattern: "mitarbyte:portfolio:{portfolioId}/*",
35
+ description: "All resources within a portfolio — use with caution",
36
+ parameters: [
37
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
38
+ ],
39
+ },
40
+ {
41
+ name: "portfolio-documents",
42
+ pattern: "mitarbyte:portfolio:{portfolioId}/documents:{documentType}/*",
43
+ description: "Documents of a specific type within a portfolio",
44
+ parameters: [
45
+ { name: "portfolioId", type: "string", description: "Property portfolio ID", required: true },
46
+ {
47
+ name: "documentType",
48
+ type: "string",
49
+ description: "Document type (contract, invoice, correspondence)",
50
+ required: true,
51
+ },
52
+ ],
53
+ },
54
+ ];
55
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA8B;IAC7D;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,2DAA2D;QACpE,WAAW,EAAE,wDAAwD;QACrE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7F,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9F;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,uDAAuD;QAChE,WAAW,EAAE,uCAAuC;QACpD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7F,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC/E;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,iDAAiD;QAC1D,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9F;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,qCAAqC;QAC9C,WAAW,EAAE,qDAAqD;QAClE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9F;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,8DAA8D;QACvE,WAAW,EAAE,iDAAiD;QAC9D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7F;gBACE,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;gBAChE,QAAQ,EAAE,IAAI;aACf;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TaxonomyMandateTemplate } from "@mandaitor/taxonomy-core";
2
+ export declare const REALESTATE_TEMPLATES: TaxonomyMandateTemplate[];
3
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,eAAO,MAAM,oBAAoB,EAAE,uBAAuB,EAsFzD,CAAC"}
@@ -0,0 +1,84 @@
1
+ export const REALESTATE_TEMPLATES = [
2
+ {
3
+ id: "realestate.automated-listing",
4
+ name: "Automated Listing Management",
5
+ description: "Delegate property listing creation and portal publishing to Mitarbyte's Listing Agent",
6
+ vertical: "realestate",
7
+ scope: {
8
+ actions: [
9
+ "realestate.listing.create",
10
+ "realestate.listing.update",
11
+ "realestate.listing.publish",
12
+ ],
13
+ resourcePatterns: ["portfolio-property"],
14
+ effect: "ALLOW",
15
+ },
16
+ constraints: { time: { defaultDuration: "P365D" }, rateLimits: { max_listings_per_day: 20 } },
17
+ delegateType: "AGENT",
18
+ },
19
+ {
20
+ id: "realestate.tenant-screening",
21
+ name: "AI-Assisted Tenant Screening",
22
+ description: "Delegate initial tenant screening to Mitarbyte's Screening Agent with human approval for final decision",
23
+ vertical: "realestate",
24
+ scope: {
25
+ actions: [
26
+ "realestate.tenant.screen",
27
+ "realestate.document.classify",
28
+ "realestate.document.extract",
29
+ ],
30
+ resourcePatterns: ["portfolio-tenant"],
31
+ effect: "ALLOW",
32
+ conditions: { gdpr_consent_required: true, data_retention_days: 90 },
33
+ },
34
+ constraints: {
35
+ time: { defaultDuration: "P30D" },
36
+ escalationRules: {
37
+ always_escalate_to: "property_manager",
38
+ escalation_method: "APPROVAL_REQUIRED",
39
+ },
40
+ },
41
+ delegateType: "AGENT",
42
+ },
43
+ {
44
+ id: "realestate.maintenance-automation",
45
+ name: "Automated Maintenance Coordination",
46
+ description: "Delegate maintenance ticket creation, contractor assignment, and cost approval (up to threshold)",
47
+ vertical: "realestate",
48
+ scope: {
49
+ actions: [
50
+ "realestate.maintenance.create",
51
+ "realestate.maintenance.assign",
52
+ "realestate.maintenance.approve_cost",
53
+ ],
54
+ resourcePatterns: ["portfolio-maintenance"],
55
+ effect: "ALLOW",
56
+ },
57
+ constraints: {
58
+ time: { defaultDuration: "P180D" },
59
+ transactionLimits: {
60
+ max_repair_cost: { currency: "EUR", value: 2000 },
61
+ max_tickets_per_week: 15,
62
+ },
63
+ escalationRules: {
64
+ cost_above: { currency: "EUR", value: 1000 },
65
+ escalation_method: "APPROVAL_REQUIRED",
66
+ },
67
+ },
68
+ delegateType: "AGENT",
69
+ },
70
+ {
71
+ id: "realestate.document-processing",
72
+ name: "Automated Document Processing",
73
+ description: "Delegate document classification and data extraction to Mitarbyte's Document Agent",
74
+ vertical: "realestate",
75
+ scope: {
76
+ actions: ["realestate.document.classify", "realestate.document.extract"],
77
+ resourcePatterns: ["portfolio-documents"],
78
+ effect: "ALLOW",
79
+ },
80
+ constraints: { time: { defaultDuration: "P365D" }, rateLimits: { max_documents_per_day: 200 } },
81
+ delegateType: "AGENT",
82
+ },
83
+ ];
84
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,oBAAoB,GAA8B;IAC7D;QACE,EAAE,EAAE,8BAA8B;QAClC,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,uFAAuF;QACzF,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,2BAA2B;gBAC3B,2BAA2B;gBAC3B,4BAA4B;aAC7B;YACD,gBAAgB,EAAE,CAAC,oBAAoB,CAAC;YACxC,MAAM,EAAE,OAAO;SAChB;QACD,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE;QAC7F,YAAY,EAAE,OAAO;KACtB;IACD;QACE,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,yGAAyG;QAC3G,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,0BAA0B;gBAC1B,8BAA8B;gBAC9B,6BAA6B;aAC9B;YACD,gBAAgB,EAAE,CAAC,kBAAkB,CAAC;YACtC,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;SACrE;QACD,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE;YACjC,eAAe,EAAE;gBACf,kBAAkB,EAAE,kBAAkB;gBACtC,iBAAiB,EAAE,mBAAmB;aACvC;SACF;QACD,YAAY,EAAE,OAAO;KACtB;IACD;QACE,EAAE,EAAE,mCAAmC;QACvC,IAAI,EAAE,oCAAoC;QAC1C,WAAW,EACT,kGAAkG;QACpG,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,+BAA+B;gBAC/B,+BAA+B;gBAC/B,qCAAqC;aACtC;YACD,gBAAgB,EAAE,CAAC,uBAAuB,CAAC;YAC3C,MAAM,EAAE,OAAO;SAChB;QACD,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;YAClC,iBAAiB,EAAE;gBACjB,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;gBACjD,oBAAoB,EAAE,EAAE;aACzB;YACD,eAAe,EAAE;gBACf,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5C,iBAAiB,EAAE,mBAAmB;aACvC;SACF;QACD,YAAY,EAAE,OAAO;KACtB;IACD;QACE,EAAE,EAAE,gCAAgC;QACpC,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,oFAAoF;QACtF,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,8BAA8B,EAAE,6BAA6B,CAAC;YACxE,gBAAgB,EAAE,CAAC,qBAAqB,CAAC;YACzC,MAAM,EAAE,OAAO;SAChB;QACD,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,EAAE;QAC/F,YAAY,EAAE,OAAO;KACtB;CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@mandaitor/taxonomy-realestate",
3
+ "version": "0.2.0",
4
+ "description": "Mandaitor — Real estate industry taxonomy (Mitarbyte)",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "dependencies": {
18
+ "@mandaitor/taxonomy-core": "0.2.0"
19
+ },
20
+ "devDependencies": {
21
+ "typescript": "^5.6.0",
22
+ "vitest": "^2.0.0"
23
+ },
24
+ "publishConfig": {
25
+ "registry": "https://registry.npmjs.org",
26
+ "access": "public"
27
+ },
28
+ "license": "MIT",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/C4RR13P0TT3R/mandaitor.git",
32
+ "directory": "packages/taxonomy-realestate"
33
+ },
34
+ "scripts": {
35
+ "build": "tsc",
36
+ "test": "vitest run",
37
+ "test:unit": "vitest run",
38
+ "typecheck": "tsc -p tsconfig.typecheck.json",
39
+ "lint": "eslint src/",
40
+ "lint:fix": "eslint src/ --fix",
41
+ "clean": "rm -rf dist tsconfig.tsbuildinfo"
42
+ }
43
+ }