@topy-ai/maggie 0.7.52 → 0.7.53
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.
- package/README-zh-TW.md +48 -2
- package/README.md +66 -54
- package/bin/maggie.js +18 -7
- package/bundled-contracts/maggie-assistant-tools/booking-receptionist-example-v1.json +161 -0
- package/bundled-contracts/maggie-assistant-tools/tool-registry-v1.schema.json +268 -20
- package/bundled-contracts/maggie-deployment/bridge-host-example-v1.json +49 -7
- package/bundled-contracts/maggiedash/booking-email-templates-v1.json +181 -13
- package/bundled-contracts/maggiedash/booking-rules-v1.json +1699 -0
- package/bundled-contracts/maggiedash/stripe-booking-capabilities-v1.json +398 -39
- package/bundled-references/maggiedash-booking/PRD.md +22 -11
- package/bundled-references/maggiedash-booking/RULES.md +167 -0
- package/bundled-references/maggiedash-booking/STRIPE-INTEGRATION.md +42 -4
- package/bundled-references/provider-adapter-contract.md +16 -3
- package/bundled-skills/catalog.json +1 -1
- package/bundled-skills/maggie-assistant-tools/SKILL.md +54 -3
- package/bundled-skills/maggie-assistant-tools/references/approvals-and-audit.md +27 -0
- package/bundled-skills/maggie-assistant-tools/references/booking-receptionist.md +45 -0
- package/bundled-skills/maggie-assistant-tools/references/bridge-host.md +54 -0
- package/bundled-skills/maggie-auth-reference/SKILL.md +18 -0
- package/bundled-skills/maggie-booking/SKILL.md +47 -3
- package/bundled-skills/maggie-deployment/SKILL.md +21 -0
- package/bundled-skills/maggie-deployment/references/cloudflare.md +19 -0
- package/bundled-skills/maggie-deployment/references/vps.md +92 -0
- package/bundled-skills/maggie-design/SKILL.md +17 -3
- package/bundled-skills/maggie-design/references/app-ui-patterns.md +79 -0
- package/bundled-skills/maggie-feedback/SKILL.md +17 -0
- package/bundled-skills/maggie-marketplace/SKILL.md +12 -0
- package/bundled-skills/maggie-marketplace/references/directory-search.md +51 -0
- package/bundled-skills/maggie-marketplace/references/directory.mjs +112 -0
- package/bundled-skills/maggie-mobile-app/SKILL.md +36 -6
- package/bundled-skills/maggie-mobile-app/references/payments-and-push.md +78 -0
- package/bundled-skills/maggie-qa-workflow/SKILL.md +60 -0
- package/bundled-skills/maggie-seo-geo/SKILL.md +33 -0
- package/bundled-skills/maggie-service-booking/SKILL.md +28 -3
- package/bundled-skills/maggie-social-share/SKILL.md +26 -4
- package/bundled-skills/maggie-social-share/references/queue-and-connections.md +28 -0
- package/bundled-tools/clis/maggie_assistant_tools.py +84 -3
- package/bundled-tools/clis/maggie_booking.py +15 -4
- package/bundled-tools/clis/maggie_booking_connect_qa.py +136 -0
- package/bundled-tools/clis/maggie_booking_rules.py +476 -0
- package/bundled-tools/clis/maggie_bridge_host.py +77 -1
- package/bundled-tools/clis/maggie_deployment_ops.py +461 -0
- package/bundled-tools/clis/maggie_design.py +9 -2
- package/bundled-tools/clis/maggie_design_lint.py +75 -3
- package/bundled-tools/clis/maggie_feedback.py +97 -15
- package/bundled-tools/clis/maggie_mobile.py +136 -4
- package/bundled-tools/clis/maggie_qa_app_preflight.py +122 -4
- package/bundled-tools/clis/maggie_qa_fit.py +217 -0
- package/bundled-tools/clis/maggie_qa_workflow.py +5 -0
- package/bundled-tools/clis/maggie_schema_complexity.py +84 -0
- package/bundled-tools/clis/maggie_seo_routes.py +154 -0
- package/bundled-tools/clis/maggie_service_migration.py +272 -0
- package/bundled-tools/clis/maggie_social_queue.py +2 -0
- package/bundled-tools/clis/maggie_social_share.py +52 -6
- package/bundled-tools/runtime/assistant_approval.py +98 -0
- package/package.json +1 -1
- package/references/provider-adapter-contract.md +16 -3
|
@@ -12,41 +12,346 @@
|
|
|
12
12
|
"avoidChargesForNewFlows": true
|
|
13
13
|
},
|
|
14
14
|
"x-api-matrix": [
|
|
15
|
-
{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
{
|
|
15
|
+
{
|
|
16
|
+
"id": "customers",
|
|
17
|
+
"status": "core",
|
|
18
|
+
"resource": "Customer",
|
|
19
|
+
"operations": [
|
|
20
|
+
"POST /v1/customers",
|
|
21
|
+
"GET /v1/customers/:id",
|
|
22
|
+
"POST /v1/customers/:id"
|
|
23
|
+
],
|
|
24
|
+
"bookingUse": "customer mapping and receipts",
|
|
25
|
+
"officialDocs": [
|
|
26
|
+
"https://docs.stripe.com/api/customers"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "checkout_sessions",
|
|
31
|
+
"status": "core",
|
|
32
|
+
"resource": "Checkout Session",
|
|
33
|
+
"operations": [
|
|
34
|
+
"POST /v1/checkout/sessions",
|
|
35
|
+
"GET /v1/checkout/sessions/:id",
|
|
36
|
+
"POST /v1/checkout/sessions/:id/expire"
|
|
37
|
+
],
|
|
38
|
+
"bookingUse": "hosted or embedded one-off booking payments",
|
|
39
|
+
"officialDocs": [
|
|
40
|
+
"https://docs.stripe.com/api/checkout/sessions"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "payment_intents",
|
|
45
|
+
"status": "core",
|
|
46
|
+
"resource": "PaymentIntent",
|
|
47
|
+
"operations": [
|
|
48
|
+
"POST /v1/payment_intents",
|
|
49
|
+
"GET /v1/payment_intents/:id",
|
|
50
|
+
"POST /v1/payment_intents/:id/confirm",
|
|
51
|
+
"POST /v1/payment_intents/:id/cancel",
|
|
52
|
+
"POST /v1/payment_intents/:id/capture"
|
|
53
|
+
],
|
|
54
|
+
"bookingUse": "custom payment UI, SCA, capture, reconciliation",
|
|
55
|
+
"officialDocs": [
|
|
56
|
+
"https://docs.stripe.com/api/payment_intents"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "setup_intents",
|
|
61
|
+
"status": "optional",
|
|
62
|
+
"resource": "SetupIntent",
|
|
63
|
+
"operations": [
|
|
64
|
+
"POST /v1/setup_intents",
|
|
65
|
+
"GET /v1/setup_intents/:id",
|
|
66
|
+
"POST /v1/setup_intents/:id/confirm"
|
|
67
|
+
],
|
|
68
|
+
"bookingUse": "consented saved payment methods",
|
|
69
|
+
"officialDocs": [
|
|
70
|
+
"https://docs.stripe.com/api/setup_intents"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "refunds",
|
|
75
|
+
"status": "core",
|
|
76
|
+
"resource": "Refund",
|
|
77
|
+
"operations": [
|
|
78
|
+
"POST /v1/refunds",
|
|
79
|
+
"GET /v1/refunds/:id",
|
|
80
|
+
"POST /v1/refunds/:id/cancel"
|
|
81
|
+
],
|
|
82
|
+
"bookingUse": "full and partial refunds",
|
|
83
|
+
"officialDocs": [
|
|
84
|
+
"https://docs.stripe.com/api/refunds"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "events",
|
|
89
|
+
"status": "core",
|
|
90
|
+
"resource": "Event",
|
|
91
|
+
"operations": [
|
|
92
|
+
"GET /v1/events/:id",
|
|
93
|
+
"GET /v1/events"
|
|
94
|
+
],
|
|
95
|
+
"bookingUse": "event identity and reconciliation",
|
|
96
|
+
"officialDocs": [
|
|
97
|
+
"https://docs.stripe.com/api/events",
|
|
98
|
+
"https://docs.stripe.com/api/events/types"
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "promotion_codes",
|
|
103
|
+
"status": "optional",
|
|
104
|
+
"resource": "Promotion Code",
|
|
105
|
+
"operations": [
|
|
106
|
+
"POST /v1/promotion_codes",
|
|
107
|
+
"GET /v1/promotion_codes/:id",
|
|
108
|
+
"GET /v1/promotion_codes"
|
|
109
|
+
],
|
|
110
|
+
"bookingUse": "campaign and referral discount codes",
|
|
111
|
+
"officialDocs": [
|
|
112
|
+
"https://docs.stripe.com/api/promotion_codes"
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "coupons",
|
|
117
|
+
"status": "optional",
|
|
118
|
+
"resource": "Coupon",
|
|
119
|
+
"operations": [
|
|
120
|
+
"POST /v1/coupons",
|
|
121
|
+
"GET /v1/coupons/:id",
|
|
122
|
+
"DELETE /v1/coupons/:id"
|
|
123
|
+
],
|
|
124
|
+
"bookingUse": "reusable discounts",
|
|
125
|
+
"officialDocs": [
|
|
126
|
+
"https://docs.stripe.com/api/coupons"
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "customer_balance_transactions",
|
|
131
|
+
"status": "optional",
|
|
132
|
+
"resource": "Customer Balance Transaction",
|
|
133
|
+
"operations": [
|
|
134
|
+
"POST /v1/customers/:id/balance_transactions",
|
|
135
|
+
"GET /v1/customers/:id/balance_transactions"
|
|
136
|
+
],
|
|
137
|
+
"bookingUse": "invoice credit, not gift-card redemption",
|
|
138
|
+
"officialDocs": [
|
|
139
|
+
"https://docs.stripe.com/api/customer_balance_transactions"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "subscriptions",
|
|
144
|
+
"status": "optional",
|
|
145
|
+
"resource": "Subscription",
|
|
146
|
+
"operations": [
|
|
147
|
+
"POST /v1/subscriptions",
|
|
148
|
+
"GET /v1/subscriptions/:id",
|
|
149
|
+
"POST /v1/subscriptions/:id"
|
|
150
|
+
],
|
|
151
|
+
"bookingUse": "memberships billed monthly on the business's connected account, pause/resume",
|
|
152
|
+
"officialDocs": [
|
|
153
|
+
"https://docs.stripe.com/api/subscriptions"
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "invoices",
|
|
158
|
+
"status": "future",
|
|
159
|
+
"resource": "Invoice",
|
|
160
|
+
"operations": [
|
|
161
|
+
"POST /v1/invoices",
|
|
162
|
+
"GET /v1/invoices/:id",
|
|
163
|
+
"POST /v1/invoices/:id/finalize"
|
|
164
|
+
],
|
|
165
|
+
"bookingUse": "future business invoicing",
|
|
166
|
+
"officialDocs": [
|
|
167
|
+
"https://docs.stripe.com/api/invoices"
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"id": "customer_portal_sessions",
|
|
172
|
+
"status": "future",
|
|
173
|
+
"resource": "Billing Portal Session",
|
|
174
|
+
"operations": [
|
|
175
|
+
"POST /v1/billing_portal/sessions"
|
|
176
|
+
],
|
|
177
|
+
"bookingUse": "future customer self-service billing",
|
|
178
|
+
"officialDocs": [
|
|
179
|
+
"https://docs.stripe.com/api/customer_portal/sessions"
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "tax",
|
|
184
|
+
"status": "optional",
|
|
185
|
+
"resource": "Tax Calculation/Transaction",
|
|
186
|
+
"operations": [
|
|
187
|
+
"POST /v1/tax/calculations",
|
|
188
|
+
"POST /v1/tax/transactions/create_from_calculation",
|
|
189
|
+
"POST /v1/tax/transactions/create_reversal"
|
|
190
|
+
],
|
|
191
|
+
"bookingUse": "optional VAT/tax calculation",
|
|
192
|
+
"officialDocs": [
|
|
193
|
+
"https://docs.stripe.com/tax/payment_intent",
|
|
194
|
+
"https://docs.stripe.com/api/tax/transactions"
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "terminal",
|
|
199
|
+
"status": "optional",
|
|
200
|
+
"resource": "Terminal PaymentIntent",
|
|
201
|
+
"operations": [
|
|
202
|
+
"POST /v1/terminal/readers",
|
|
203
|
+
"POST /v1/terminal/readers/:id/process_payment_intent"
|
|
204
|
+
],
|
|
205
|
+
"bookingUse": "in-person payments: server-driven readers per branch location, simulated reader for tests, Tap to Pay in the native app",
|
|
206
|
+
"officialDocs": [
|
|
207
|
+
"https://docs.stripe.com/terminal/payments"
|
|
208
|
+
]
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"id": "connect",
|
|
212
|
+
"status": "platform",
|
|
213
|
+
"resource": "Connected Account",
|
|
214
|
+
"operations": [
|
|
215
|
+
"POST /v2/core/accounts",
|
|
216
|
+
"POST /v2/core/account_links",
|
|
217
|
+
"POST /v1/checkout/sessions (Stripe-Account)",
|
|
218
|
+
"POST /v1/refunds (Stripe-Account)",
|
|
219
|
+
"GET /v1/payouts (Stripe-Account)",
|
|
220
|
+
"GET /v1/disputes (Stripe-Account)"
|
|
221
|
+
],
|
|
222
|
+
"bookingUse": "multi-tenant booking platforms: direct charges on each business's connected account (Stripe-Account header), no application fee option, Accounts v2 onboarding, thin-event destinations, per-account webhook checks",
|
|
223
|
+
"officialDocs": [
|
|
224
|
+
"https://docs.stripe.com/connect"
|
|
225
|
+
]
|
|
226
|
+
}
|
|
30
227
|
],
|
|
31
228
|
"x-webhook-events": [
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
229
|
+
{
|
|
230
|
+
"eventType": "checkout.session.completed",
|
|
231
|
+
"requiredFor": "hosted checkout completion",
|
|
232
|
+
"officialDocs": [
|
|
233
|
+
"https://docs.stripe.com/api/events/types"
|
|
234
|
+
]
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"eventType": "checkout.session.expired",
|
|
238
|
+
"requiredFor": "release an unpaid pending booking when its hosted Checkout expires",
|
|
239
|
+
"officialDocs": [
|
|
240
|
+
"https://docs.stripe.com/api/events/types"
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"eventType": "checkout.session.async_payment_succeeded",
|
|
245
|
+
"requiredFor": "delayed payment completion",
|
|
246
|
+
"officialDocs": [
|
|
247
|
+
"https://docs.stripe.com/api/events/types"
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"eventType": "checkout.session.async_payment_failed",
|
|
252
|
+
"requiredFor": "delayed payment failure",
|
|
253
|
+
"officialDocs": [
|
|
254
|
+
"https://docs.stripe.com/api/events/types"
|
|
255
|
+
]
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"eventType": "payment_intent.processing",
|
|
259
|
+
"requiredFor": "payment pending",
|
|
260
|
+
"officialDocs": [
|
|
261
|
+
"https://docs.stripe.com/api/events/types"
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"eventType": "payment_intent.payment_failed",
|
|
266
|
+
"requiredFor": "payment failure",
|
|
267
|
+
"officialDocs": [
|
|
268
|
+
"https://docs.stripe.com/api/events/types"
|
|
269
|
+
]
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"eventType": "payment_intent.succeeded",
|
|
273
|
+
"requiredFor": "payment confirmation",
|
|
274
|
+
"officialDocs": [
|
|
275
|
+
"https://docs.stripe.com/api/events/types"
|
|
276
|
+
]
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"eventType": "payment_intent.requires_action",
|
|
280
|
+
"requiredFor": "customer action",
|
|
281
|
+
"officialDocs": [
|
|
282
|
+
"https://docs.stripe.com/api/events/types"
|
|
283
|
+
]
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"eventType": "payment_intent.canceled",
|
|
287
|
+
"requiredFor": "payment cancellation",
|
|
288
|
+
"officialDocs": [
|
|
289
|
+
"https://docs.stripe.com/api/events/types"
|
|
290
|
+
]
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"eventType": "refund.created",
|
|
294
|
+
"requiredFor": "refund projection",
|
|
295
|
+
"officialDocs": [
|
|
296
|
+
"https://docs.stripe.com/api/events/types"
|
|
297
|
+
]
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"eventType": "refund.updated",
|
|
301
|
+
"requiredFor": "refund status changes",
|
|
302
|
+
"officialDocs": [
|
|
303
|
+
"https://docs.stripe.com/api/events/types"
|
|
304
|
+
]
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"eventType": "refund.failed",
|
|
308
|
+
"requiredFor": "refund failure",
|
|
309
|
+
"officialDocs": [
|
|
310
|
+
"https://docs.stripe.com/api/events/types"
|
|
311
|
+
]
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"eventType": "setup_intent.succeeded",
|
|
315
|
+
"requiredFor": "saved method setup",
|
|
316
|
+
"officialDocs": [
|
|
317
|
+
"https://docs.stripe.com/api/events/types"
|
|
318
|
+
]
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"eventType": "setup_intent.setup_failed",
|
|
322
|
+
"requiredFor": "saved method failure",
|
|
323
|
+
"officialDocs": [
|
|
324
|
+
"https://docs.stripe.com/api/events/types"
|
|
325
|
+
]
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"eventType": "invoice.paid",
|
|
329
|
+
"requiredFor": "future recurring billing",
|
|
330
|
+
"officialDocs": [
|
|
331
|
+
"https://docs.stripe.com/api/events/types"
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"eventType": "invoice.payment_failed",
|
|
336
|
+
"requiredFor": "future recurring billing failure",
|
|
337
|
+
"officialDocs": [
|
|
338
|
+
"https://docs.stripe.com/api/events/types"
|
|
339
|
+
]
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"eventType": "customer.subscription.updated",
|
|
343
|
+
"requiredFor": "future membership state",
|
|
344
|
+
"officialDocs": [
|
|
345
|
+
"https://docs.stripe.com/api/events/types"
|
|
346
|
+
]
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"eventType": "customer.subscription.deleted",
|
|
350
|
+
"requiredFor": "future membership cancellation",
|
|
351
|
+
"officialDocs": [
|
|
352
|
+
"https://docs.stripe.com/api/events/types"
|
|
353
|
+
]
|
|
354
|
+
}
|
|
50
355
|
],
|
|
51
356
|
"x-native-capabilities": {
|
|
52
357
|
"giftCards": "not-native",
|
|
@@ -59,11 +364,65 @@
|
|
|
59
364
|
"connect": "native"
|
|
60
365
|
},
|
|
61
366
|
"x-ecosystem-integrations": [
|
|
62
|
-
{
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
367
|
+
{
|
|
368
|
+
"id": "gift-up",
|
|
369
|
+
"category": "gift-cards",
|
|
370
|
+
"kind": "stripe-app",
|
|
371
|
+
"status": "evaluate",
|
|
372
|
+
"officialDocs": [
|
|
373
|
+
"https://marketplace.stripe.com/apps/gift-up"
|
|
374
|
+
],
|
|
375
|
+
"maggieDecision": "separate partner gift-card system; retain local reference and reconciliation"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"id": "partnerstack",
|
|
379
|
+
"category": "affiliate-and-referrals",
|
|
380
|
+
"kind": "stripe-app",
|
|
381
|
+
"status": "evaluate",
|
|
382
|
+
"officialDocs": [
|
|
383
|
+
"https://marketplace.stripe.com/apps/partnerstack"
|
|
384
|
+
],
|
|
385
|
+
"maggieDecision": "affiliate payout candidate; local referral attribution remains authoritative"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"id": "stripe-apps",
|
|
389
|
+
"category": "business-operations",
|
|
390
|
+
"kind": "stripe-product",
|
|
391
|
+
"status": "recommended",
|
|
392
|
+
"officialDocs": [
|
|
393
|
+
"https://stripe.com/apps"
|
|
394
|
+
],
|
|
395
|
+
"maggieDecision": "prefer reviewed apps for accounting, CRM, support, analytics, and automation"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"id": "stripe-tax",
|
|
399
|
+
"category": "tax",
|
|
400
|
+
"kind": "stripe-product",
|
|
401
|
+
"status": "evaluate",
|
|
402
|
+
"officialDocs": [
|
|
403
|
+
"https://docs.stripe.com/tax"
|
|
404
|
+
],
|
|
405
|
+
"maggieDecision": "enable only after jurisdiction and tax ownership review"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"id": "stripe-terminal",
|
|
409
|
+
"category": "in-person-payments",
|
|
410
|
+
"kind": "stripe-product",
|
|
411
|
+
"status": "future",
|
|
412
|
+
"officialDocs": [
|
|
413
|
+
"https://docs.stripe.com/terminal"
|
|
414
|
+
],
|
|
415
|
+
"maggieDecision": "future reader operations"
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "stripe-connect",
|
|
419
|
+
"category": "multi-merchant",
|
|
420
|
+
"kind": "stripe-product",
|
|
421
|
+
"status": "future",
|
|
422
|
+
"officialDocs": [
|
|
423
|
+
"https://docs.stripe.com/connect"
|
|
424
|
+
],
|
|
425
|
+
"maggieDecision": "future platform-only capability"
|
|
426
|
+
}
|
|
68
427
|
]
|
|
69
428
|
}
|
|
@@ -46,17 +46,28 @@ creates four user-visible failures:
|
|
|
46
46
|
host integration.
|
|
47
47
|
- Preserve the existing `/_maggie/admin` content and operations workspace.
|
|
48
48
|
|
|
49
|
-
## 4.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
## 4. Scope boundaries
|
|
50
|
+
|
|
51
|
+
Shipped as contracts (rules with shared test vectors in
|
|
52
|
+
[RULES.md](./RULES.md), `maggie booking rules-vectors`) that hosts implement:
|
|
53
|
+
the booking state machine, late payment after an expired hold, venue-time
|
|
54
|
+
schedule inputs, money in minor units, till/checkout maths with tips and
|
|
55
|
+
service charge, payment-policy setup validation, reminders and notices,
|
|
56
|
+
`.ics`, availability rules (split hours, rotas, per-staff durations, gaps,
|
|
57
|
+
groups, peak pricing), team roles and permissions with PIN switching, client
|
|
58
|
+
safety (patch tests, blocked clients), loyalty and memberships, team pay
|
|
59
|
+
(commissions, time clock), and customer accounts. The gift voucher ledger is
|
|
60
|
+
fixed by the [voucher lifecycle contract](./VOUCHERS.md) (0.7.48). A platform
|
|
61
|
+
that hosts many businesses uses Stripe Connect direct charges
|
|
62
|
+
([STRIPE-INTEGRATION.md](./STRIPE-INTEGRATION.md#platform-hosts-stripe-connect)).
|
|
63
|
+
|
|
64
|
+
Still out of scope for the MaggieDash manager UI itself:
|
|
65
|
+
|
|
66
|
+
- Payroll filing, tax filing and inventory management (pay runs export to
|
|
67
|
+
accounting tools instead).
|
|
68
|
+
- Being the merchant of record for businesses: a platform host uses direct
|
|
69
|
+
charges so each business stays the merchant.
|
|
70
|
+
- Advanced waitlist optimisation beyond the bounded priority/FIFO matcher.
|
|
60
71
|
- Replacing the host's authentication, database connection, deployment, or
|
|
61
72
|
media storage.
|
|
62
73
|
- Storing card numbers, CVC, or other payment credentials in the host database.
|