@topy-ai/maggie 0.7.38 → 0.7.41
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 +82 -6
- package/README.md +99 -7
- package/bin/maggie.js +30 -3
- package/bundled-contracts/maggie-clone/interaction-state-v1.schema.json +26 -0
- package/bundled-contracts/maggie-content/provenance-v1.schema.json +20 -0
- package/bundled-contracts/maggie-design/brand-kit-v1.schema.json +18 -0
- package/bundled-contracts/maggie-design/browser-interactions-v1.schema.json +27 -0
- package/bundled-contracts/maggie-design/css-utility-evidence-v1.schema.json +10 -0
- package/bundled-contracts/maggie-design/dashboard-surface-v1.schema.json +11 -0
- package/bundled-contracts/maggie-design/progressive-enhancement-v1.schema.json +12 -0
- package/bundled-contracts/maggie-design/sample-surface-v1.schema.json +13 -0
- package/bundled-contracts/maggie-design/style-editing-v1.schema.json +35 -0
- package/bundled-contracts/maggie-media/image-generation-policy-v1.json +28 -0
- package/bundled-contracts/maggie-media/video-generation-policy-v1.json +40 -0
- package/bundled-contracts/maggie-media/video-job-v1.schema.json +20 -0
- package/bundled-contracts/maggie-media/video-playback-evidence-v1.schema.json +15 -0
- package/bundled-contracts/maggie-ops/npm11-preflight-v1.schema.json +17 -0
- package/bundled-contracts/maggie-scaffold/host-scaffold-v1.schema.json +25 -0
- package/bundled-contracts/maggie-seo/gsc-readiness-v1.schema.json +19 -0
- package/bundled-contracts/maggie-seo/privacy-origin-evidence-v1.schema.json +11 -0
- package/bundled-contracts/maggie-service-booking/delivery-provider-default-v1.json +8 -0
- package/bundled-contracts/maggie-service-booking/delivery-provider-v1.schema.json +16 -0
- package/bundled-contracts/maggiedash/booking-access-v1.json +5 -4
- package/bundled-contracts/maggiedash/booking-customer-surface-v1.json +12 -1
- package/bundled-contracts/maggiedash/booking-email-templates-v1.json +2 -0
- package/bundled-contracts/maggiedash/booking-host-adapter-v1.json +14 -2
- package/bundled-contracts/maggiedash/booking-runtime.v1.json +41 -0
- package/bundled-contracts/maggiedash/browser-session-v1.schema.json +18 -0
- package/bundled-contracts/maggiedash/content-overrides-v1.schema.json +19 -0
- package/bundled-contracts/maggiedash/execution-board.json +526 -26
- package/bundled-contracts/maggiedash/host-capabilities-v1.schema.json +10 -0
- package/bundled-contracts/maggiedash/public-session-cache-v1.schema.json +17 -0
- package/bundled-contracts/maggiedash/site-structure-v1.schema.json +13 -0
- package/bundled-references/browser-inspection.md +21 -0
- package/bundled-references/maggiedash-booking/ARCHITECTURE.md +218 -0
- package/bundled-references/maggiedash-booking/CURRENT-STATE.md +92 -0
- package/bundled-references/maggiedash-booking/DATA-FLOW.md +143 -0
- package/bundled-references/maggiedash-booking/DATA-MODEL.md +367 -0
- package/bundled-references/maggiedash-booking/DECISIONS.md +94 -0
- package/bundled-references/maggiedash-booking/EXECUTION-BOARD.json +2387 -0
- package/bundled-references/maggiedash-booking/HOST-ADAPTER.md +314 -0
- package/bundled-references/maggiedash-booking/ORAWELLNESS-INTEGRATION-AUDIT.md +227 -0
- package/bundled-references/maggiedash-booking/PAYMENT-GATEWAY.md +267 -0
- package/bundled-references/maggiedash-booking/PRD.md +228 -0
- package/bundled-references/maggiedash-booking/PROGRESS.md +2434 -0
- package/bundled-references/maggiedash-booking/QA-TEST-PLAN.md +235 -0
- package/bundled-references/maggiedash-booking/README.md +271 -0
- package/bundled-references/maggiedash-booking/RUNTIME-OPERATIONS.md +152 -0
- package/bundled-references/maggiedash-booking/SECURITY-COMPLIANCE.md +158 -0
- package/bundled-references/maggiedash-booking/SKILLS-AND-CLI.md +542 -0
- package/bundled-references/maggiedash-booking/STRIPE-INTEGRATION.md +129 -0
- package/bundled-references/maggiedash-booking/TASK-RUNBOOK.md +107 -0
- package/bundled-references/maggiedash-booking/TASKS.md +137 -0
- package/bundled-references/maggiedash-booking/USER-JOURNEYS.md +224 -0
- package/bundled-references/maggiedash-booking/diagrams/booking-dfd.excalidraw +1 -0
- package/bundled-references/maggiedash-booking/diagrams/booking-dfd.mmd +16 -0
- package/bundled-references/maggiedash-booking/diagrams/booking-dfd.png +0 -0
- package/bundled-references/maggiedash-booking/diagrams/booking-dfd.svg +1 -0
- package/bundled-references/maggiedash-booking/diagrams/booking-state-machine.mmd +19 -0
- package/bundled-references/maggiedash-booking/diagrams/booking-state-machine.png +0 -0
- package/bundled-references/maggiedash-booking/diagrams/booking-state-machine.svg +1 -0
- package/bundled-references/maggiedash-booking/diagrams/manager-journey.excalidraw +1 -0
- package/bundled-references/maggiedash-booking/diagrams/manager-journey.mmd +11 -0
- package/bundled-references/maggiedash-booking/diagrams/manager-journey.png +0 -0
- package/bundled-references/maggiedash-booking/diagrams/manager-journey.svg +1 -0
- package/bundled-references/maggiedash-booking/diagrams/payment-sequence.mmd +20 -0
- package/bundled-references/maggiedash-booking/diagrams/payment-sequence.png +0 -0
- package/bundled-references/maggiedash-booking/diagrams/payment-sequence.svg +1 -0
- package/bundled-references/maggiedash-booking/diagrams/system-context.excalidraw +1 -0
- package/bundled-references/maggiedash-booking/diagrams/system-context.mmd +10 -0
- package/bundled-references/maggiedash-booking/diagrams/system-context.png +0 -0
- package/bundled-references/maggiedash-booking/diagrams/system-context.svg +1 -0
- package/bundled-skills/maggie-blog/SKILL.md +12 -0
- package/bundled-skills/maggie-blog-bootstrap/SKILL.md +39 -0
- package/bundled-skills/maggie-booking/SKILL.md +112 -18
- package/bundled-skills/maggie-clone/SKILL.md +13 -0
- package/bundled-skills/maggie-deployment/SKILL.md +6 -0
- package/bundled-skills/maggie-design/SKILL.md +64 -3
- package/bundled-skills/maggie-ops/SKILL.md +12 -0
- package/bundled-skills/maggie-seo-geo/SKILL.md +45 -0
- package/bundled-skills/maggie-service-booking/SKILL.md +14 -0
- package/bundled-tools/clis/maggie_analytics.py +43 -1
- package/bundled-tools/clis/maggie_booking.py +161 -26
- package/bundled-tools/clis/maggie_browser_audit.py +99 -3
- package/bundled-tools/clis/maggie_clone.py +46 -1
- package/bundled-tools/clis/maggie_contracts.py +393 -0
- package/bundled-tools/clis/maggie_dash.py +22 -6
- package/bundled-tools/clis/maggie_design.py +84 -12
- package/bundled-tools/clis/maggie_service_booking.py +50 -1
- package/bundled-tools/clis/maggie_workflows.py +387 -0
- package/bundled-tools/clis/site_audit.py +77 -1
- package/bundled-tools/integrations/analytics.md +14 -0
- package/bundled-tools/runtime/site_baseline.py +3 -0
- package/package.json +1 -1
- package/references/browser-inspection.md +21 -0
package/README-zh-TW.md
CHANGED
|
@@ -2,14 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
[English README](README.md) · [完整繁體中文 README](https://github.com/TOPY-AI-LTD/ai-cmo-skills/blob/main/README.zh-TW.md)
|
|
4
4
|
|
|
5
|
-
`@topy-ai/maggie` 提供
|
|
5
|
+
`@topy-ai/maggie` 提供 20 個可安裝的 AI website workflow skills,支援
|
|
6
6
|
Codex、Claude Code 與相容的 coding agents。
|
|
7
7
|
|
|
8
8
|
## 安裝
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
npx @topy-ai/maggie@0.7.
|
|
12
|
-
npx @topy-ai/maggie doctor --project .
|
|
11
|
+
npx @topy-ai/maggie@0.7.41 init --agent all
|
|
12
|
+
npx @topy-ai/maggie@0.7.41 doctor --project .
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
目前 release 是 `0.7.41`,完成 feedback batches 22、23:加入 declarative
|
|
16
|
+
browser interaction evidence、design markup/style/content-key gate、compiler
|
|
17
|
+
source anchoring、entity double-escape protection、`update --help` read-only,
|
|
18
|
+
以及 noindex hypothetical indexability、可過期 baseline acknowledgement、
|
|
19
|
+
DOM-only link extraction regression。MaggieDash 0.2.10 同步提供 content
|
|
20
|
+
override、短期 browser session、CDN-safe public-session cache contracts;
|
|
21
|
+
authentication 和 isolated dev server 仍由 host 負責。
|
|
22
|
+
|
|
23
|
+
0.7.40 加入 feedback batch 21:progressive enhancement
|
|
24
|
+
的區域/identity/request 驗證、Tailwind utility 與 CSS cascade evidence、
|
|
25
|
+
dashboard/sample surface contract、primary navigation indexability、privacy
|
|
26
|
+
origin parity、provider-neutral site structure、host capability manifest,
|
|
27
|
+
以及包含 duration/price variants 的 Booking treatment group。MaggieDash
|
|
28
|
+
同步更新至 0.2.9,ORA reference host 也提供相同的 capability/site-structure
|
|
29
|
+
邊界。
|
|
30
|
+
|
|
31
|
+
目前也加入 deferred workflow 的共用 contract gate:Gemini image/edit 使用
|
|
32
|
+
Nano Banana 2,hero video 使用 Gemini Omni Flash,GSC 直接擴充 analytics
|
|
33
|
+
release-gate,booking delivery 預設 Resend email + Twilio SMS;credentials、
|
|
34
|
+
billing、storage 和 provider runtime 仍由 host 負責。
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
maggie media image-policy --policy contracts/maggie-media/image-generation-policy-v1.json
|
|
38
|
+
maggie media video-policy --policy contracts/maggie-media/video-generation-policy-v1.json
|
|
39
|
+
maggie analytics gsc-readiness --gsc-evidence .maggie/gsc-readiness.json
|
|
40
|
+
maggie provenance --project . --source src/content/post.md
|
|
41
|
+
maggie scaffold --project . --framework astro --language typescript --write --confirm
|
|
42
|
+
maggie brand-kit --project . --design DESIGN.md --write --confirm
|
|
43
|
+
maggie npm11 --project . --smoke --confirm
|
|
44
|
+
maggie media video-playback --evidence .maggie/video-playback-evidence.json
|
|
45
|
+
maggie booking-delivery --policy .maggie/booking-delivery-policy.json
|
|
13
46
|
```
|
|
14
47
|
|
|
15
48
|
常用流程:
|
|
@@ -21,11 +54,26 @@ maggie memory context --project . --skill <skill-name>
|
|
|
21
54
|
maggie doctor --project . --require-bootstrap --strict
|
|
22
55
|
```
|
|
23
56
|
|
|
57
|
+
Feedback batch quality gates:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
maggie design progressive-check --evidence .maggie/progressive.json
|
|
61
|
+
maggie design dash-validate --plan .maggie/design/dashboard/PLAN.json --evidence .maggie/dashboard.json
|
|
62
|
+
maggie seo privacy-check --evidence .maggie/privacy-origins.json
|
|
63
|
+
maggie dash capabilities-validate --manifest .maggie/host-capabilities.json
|
|
64
|
+
maggie dash structure-validate --model .maggie/site-structure.json --evidence .maggie/site-structure-rendered.json
|
|
65
|
+
maggie service treatment-group-audit --project .
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
這些 gate 只接受經過清理的 build/browser evidence,會在第三方 request 重複、
|
|
69
|
+
Tailwind/CSS cascade、dashboard unsupported surface、privacy origin、site
|
|
70
|
+
structure drift 或重複 treatment product 時 fail closed。
|
|
71
|
+
|
|
24
72
|
主要 skills 包括 clone、design、template、Blog、SEO/GEO、localization、
|
|
25
73
|
deployment、memory、feedback 和 MaggieDash。內容先 draft/review,外部寫入、
|
|
26
74
|
publish 與 production deployment 需要明確確認。
|
|
27
75
|
|
|
28
|
-
目前 release 是 `0.7.
|
|
76
|
+
目前 source tree 的正式 release 是 `0.7.41`。本版完成 feedback batches 22、23:加入 declarative browser interaction evidence、design markup/style/content-key gate、compiler source anchoring、entity double-escape protection、`update --help` read-only、noindex hypothetical indexability、可過期 baseline acknowledgement、DOM-only link extraction regression,以及 MaggieDash 0.2.10 的 content override、短期 browser session、CDN-safe public-session cache contracts。authentication 和 isolated dev server 仍由 host 負責。`maggie-booking` workflow、傳統 email/password、Stripe、Resend、public booking flow 及既有安全邊界維持不變;provider-bound video generation 與 transactional delivery 仍記錄在 issue #39,前一批延後功能仍在 issue #38,不會直接成為 active memory。0.7.33 記錄並審查一筆更正回饋;確認 0.7.32 已正確處理 batch index,沒有修改已驗證的 shared behavior。0.7.32 加入 feedback 一基索引支援、MaggieDash panel 的 source/freshness/error evidence、Consent Mode 與實際 write/no-op reconciliation、SEO baseline recapture、sitemap origin rebasing、content-diff scope、migration ledger reconciliation、deployment credential preflight、release provenance/runtime preflight、icon release gate、opt-in blog auto-publish gate,以及 least-privilege VPS deployer。也修復 top-level `maggie feedback` dispatcher parity。0.7.31 加入 update 差異摘要、atomic installer copy、subset install manifest merge,以及 inventory drift 時 doctor non-zero。0.7.30 補上 feedback tracking issue closeout gate 與 batch 14/15 audit ledger。0.7.29 修正 npm package landing page 使用英文 README;0.7.28 加入 versioned Gemini model policy、明確 fallback 與 provenance、bundled-first CLI
|
|
29
77
|
dispatch、`maggie --version`、feedback batch review 聚合與重複偵測、marketplace enrichment evidence、booking
|
|
30
78
|
worker/resolver evidence,以及 read-only migration preflight。它也包含 host-owned mobile app surface contract、signed-in
|
|
31
79
|
camera-state QA、直接 Astro route resolution、correlated feedback batch,以及
|
|
@@ -63,10 +111,20 @@ delivery outbox:可查看去識別化的狀態與 sanitized error;owner/mana
|
|
|
63
111
|
這是 Maggie 的 server-side delivery queue 與 audit 管理,不取代 Resend 自己的
|
|
64
112
|
domain、audience、campaign 或 analytics console。
|
|
65
113
|
|
|
114
|
+
Booking manager 也已提供 tenant-scoped 的 prepaid treatment package catalogue,
|
|
115
|
+
以及客戶 package entitlement 的手動授予、餘額查詢和預約時的原子核銷:可設定
|
|
116
|
+
包含的 treatment variant 數量、價格、幣別、有效期與啟用狀態。公開客戶流程
|
|
117
|
+
也支援 package checkout、token-bound payment return;manager 可以查看購買紀錄
|
|
118
|
+
並提出受 redemption 保護的 Stripe package refund。Stripe 確認購買或退款後,
|
|
119
|
+
會透過共用 outbox/worker 發送去識別化且具 idempotency 的 Resend 通知。
|
|
120
|
+
|
|
66
121
|
在全新的 Astro 專案中,可以讓安裝流程補上缺少的 Booking runtime 套件:
|
|
67
122
|
|
|
68
123
|
```bash
|
|
69
124
|
maggie booking install --project . --confirm --install-dependencies
|
|
125
|
+
|
|
126
|
+
# 已審核的新主機:安裝缺少的套件並套用 Booking schema
|
|
127
|
+
maggie booking install --project . --confirm --ready
|
|
70
128
|
```
|
|
71
129
|
|
|
72
130
|
這個選項會依照專案現有的 npm/pnpm/yarn/bun lockfile,只安裝缺少的
|
|
@@ -76,6 +134,19 @@ React、Phosphor、Tailwind、PostgreSQL、Stripe 和 SSR adapter 套件,保
|
|
|
76
134
|
Cloudflare/Vercel/Netlify/Deno adapter 的專案會保留原本的部署選擇。
|
|
77
135
|
它不能和 `--dry-run` 或 `--diff` 一起使用。
|
|
78
136
|
|
|
137
|
+
如果 host 需要自動處理 Resend outbox、reminder 和 payment reconciliation,
|
|
138
|
+
可以同時產生 scheduler artifact:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
maggie booking install --project . --confirm --bootstrap --schedule systemd
|
|
142
|
+
# 沒有 systemd 的 host:
|
|
143
|
+
maggie booking worker-schedule --project . --scheduler cron --confirm
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
這只會在 `deploy/` 寫入可審查的 service/timer 或 cron 文件,不會修改
|
|
147
|
+
crontab、啟用 systemd、啟動 worker,也不會輸出 secret。啟用前仍要由 host
|
|
148
|
+
管理員審查 service user,並完成 migration、backup/restore 及 release evidence。
|
|
149
|
+
|
|
79
150
|
Booking 的 browser evidence gate 現在涵蓋全部 15 個 manager routes,在 mobile、
|
|
80
151
|
tablet、desktop 三種 viewport 共需要 45 個 screens,包含 waitlist、locations、
|
|
81
152
|
notifications、reports 和 audit。Production release 仍需要 authenticated HTTPS
|
|
@@ -98,7 +169,12 @@ Booking Team access 支援透過 Resend 發送傳統 email/password 邀請、`ma
|
|
|
98
169
|
maggie booking email-templates-contract
|
|
99
170
|
```
|
|
100
171
|
|
|
101
|
-
Booking
|
|
172
|
+
Booking 內置十種 Resend 事件模板,包含 package purchase confirmation/refund
|
|
173
|
+
與成功 no-show fee charge 通知。No-show 狀態轉換不會自動扣款;只有在
|
|
174
|
+
客戶同意、已有保存的 Stripe payment method、provider off-session capability
|
|
175
|
+
已驗證,且 owner/manager/finance 明確確認後,才會建立 idempotent adjustment
|
|
176
|
+
charge。
|
|
177
|
+
Owner、administrator 和 Booking manager
|
|
102
178
|
可以編輯 draft、用 sandbox sample data 預覽、發佈 audited version,或 rollback
|
|
103
179
|
舊版本。每個事件只接受核准的 placeholder,worker 發送前會 escape value;
|
|
104
180
|
provider credentials 和 recipient address 只留在 server/worker,不會返回瀏覽器。
|
|
@@ -149,6 +225,6 @@ maggie service retirement-audit --project . \
|
|
|
149
225
|
--evidence .maggie/booking/retirement-evidence.json
|
|
150
226
|
```
|
|
151
227
|
|
|
152
|
-
完整中文說明、
|
|
228
|
+
完整中文說明、20 個 skills 清單和 roadmap:
|
|
153
229
|
[繁體中文 README](https://github.com/TOPY-AI-LTD/ai-cmo-skills/blob/main/README.zh-TW.md)
|
|
154
230
|
· [Roadmap](https://github.com/TOPY-AI-LTD/ai-cmo-skills/blob/main/ROADMAP.md)
|
package/README.md
CHANGED
|
@@ -58,17 +58,75 @@ Then invoke the installed skills from your coding agent, for example:
|
|
|
58
58
|
|
|
59
59
|
Maggie keeps the existing project foundation and asks for decisions before
|
|
60
60
|
shared routes, analytics, or publishing boundaries change. The current
|
|
61
|
-
package ships
|
|
61
|
+
package ships 20 installable skills and a local-first MaggieDash foundation.
|
|
62
|
+
|
|
63
|
+
The current release is `0.7.41`. It closes feedback batches 22 and 23 with
|
|
64
|
+
declarative browser interaction evidence, stable design markup/style/content-key
|
|
65
|
+
gates, compiler source anchoring, entity double-escape protection, and a
|
|
66
|
+
read-only `update --help` path. It also adds hypothetical indexability
|
|
67
|
+
diagnostics for `noindex` pages, expiring baseline acknowledgement evidence,
|
|
68
|
+
DOM-only link extraction regression coverage, and provider-neutral MaggieDash
|
|
69
|
+
contracts for content overrides, short-lived browser sessions, and CDN-safe
|
|
70
|
+
public-session cache boundaries. Host-owned authentication and isolated
|
|
71
|
+
dev-server choices remain explicit. MaggieDash 0.2.10 contains the matching
|
|
72
|
+
host contracts.
|
|
73
|
+
|
|
74
|
+
The source tree also includes the selected deferred-workflow contracts for
|
|
75
|
+
Gemini media, clone interaction replay, GSC readiness, git content provenance,
|
|
76
|
+
npm 11, empty-project scaffolding, brand kits, and booking delivery. The
|
|
77
|
+
default provider policy is Gemini Nano Banana 2 for image/edit, Gemini Omni
|
|
78
|
+
Flash for hero video, and Resend email plus Twilio SMS for booking delivery.
|
|
79
|
+
Credentials, billing, storage, and live provider adapters remain host-owned.
|
|
62
80
|
|
|
63
|
-
|
|
81
|
+
```bash
|
|
82
|
+
maggie media image-policy --policy contracts/maggie-media/image-generation-policy-v1.json
|
|
83
|
+
maggie media video-policy --policy contracts/maggie-media/video-generation-policy-v1.json
|
|
84
|
+
maggie analytics gsc-readiness --gsc-evidence .maggie/gsc-readiness.json
|
|
85
|
+
maggie provenance --project . --source src/content/post.md
|
|
86
|
+
maggie scaffold --project . --framework astro --language typescript --write --confirm
|
|
87
|
+
maggie brand-kit --project . --design DESIGN.md --write --confirm
|
|
88
|
+
maggie npm11 --project . --smoke --confirm
|
|
89
|
+
maggie media video-playback --evidence .maggie/video-playback-evidence.json
|
|
90
|
+
maggie booking-delivery --policy .maggie/booking-delivery-policy.json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
These are evidence gates, not implicit provider calls. See the maintainer
|
|
94
|
+
[decision record](../../docs/github-issues/DECISIONS-2026-09-22.md) for the
|
|
95
|
+
remaining host/provider release work.
|
|
96
|
+
|
|
97
|
+
The 0.7.40 release adds feedback batch 21 contracts for
|
|
98
|
+
progressive-enhancement identity/request safety, rendered Tailwind utility and
|
|
99
|
+
CSS-cascade checks, dashboard/sample surface evidence, primary-navigation
|
|
100
|
+
indexability, privacy-origin parity, provider-neutral site structure, host
|
|
101
|
+
capability manifests, and Booking treatment groups with duration/price
|
|
102
|
+
variants. It also includes MaggieDash 0.2.9 host-contract updates.
|
|
103
|
+
|
|
104
|
+
The previous `0.7.39` release candidate added adapter-aware fresh Astro Booking
|
|
64
105
|
installation: blank hosts receive a portable Node SSR config while existing
|
|
65
106
|
deployment adapters remain host-owned. It also adds the installable `maggie-booking`
|
|
66
107
|
workflow for MaggieDash Booking: host bootstrap, traditional email/password
|
|
67
108
|
team access with granular permissions, Stripe payment boundaries, Resend
|
|
68
109
|
outbox and tenant email-template management, public customer booking flow,
|
|
69
110
|
runtime/ops evidence checks, and the maintained Booking implementation docs.
|
|
111
|
+
The manager workspace also includes a tenant-scoped prepaid treatment package
|
|
112
|
+
catalogue with included variant quantities, package pricing, optional expiry,
|
|
113
|
+
and active/inactive state. Managers can also grant tenant-scoped customer
|
|
114
|
+
entitlements, inspect remaining balances, and redeem matching visits
|
|
115
|
+
transactionally when creating a manager booking. Public customers can also
|
|
116
|
+
start package checkout, return through a token-bound payment page, and the
|
|
117
|
+
manager can list and request guarded Stripe package refunds. Verified package
|
|
118
|
+
success/refund transitions also enqueue idempotent Resend confirmation/refund
|
|
119
|
+
emails through the shared delivery worker.
|
|
120
|
+
The Booking flow also supports an explicit, consented Stripe off-session
|
|
121
|
+
no-show fee action after a booking is marked `no_show`; it requires a saved
|
|
122
|
+
payment method, verified provider capability, idempotent adjustment state, and
|
|
123
|
+
queues the customer email through the Resend outbox only after a successful
|
|
124
|
+
charge. A status transition never charges automatically.
|
|
70
125
|
Production activation remains fail-closed until the host migration, owner,
|
|
71
|
-
Stripe, scheduler, and authenticated runtime evidence are supplied.
|
|
126
|
+
Stripe, scheduler, and authenticated runtime evidence are supplied. The
|
|
127
|
+
release candidate also regenerates the published Booking contracts and adds
|
|
128
|
+
an exact npm-tarball smoke test so the registry package cannot silently fall
|
|
129
|
+
behind the source CLI.
|
|
72
130
|
|
|
73
131
|
The previous `0.7.36` release closed the next validated feedback batch:
|
|
74
132
|
production demo fixtures are development-only, Dash infers the persisted
|
|
@@ -527,8 +585,8 @@ artifact schemas.
|
|
|
527
585
|
Recommended upgrade sequence for the current release:
|
|
528
586
|
|
|
529
587
|
```bash
|
|
530
|
-
npx @topy-ai/maggie@0.7.
|
|
531
|
-
npx @topy-ai/maggie@0.7.
|
|
588
|
+
npx @topy-ai/maggie@0.7.39 update --project . --force
|
|
589
|
+
npx @topy-ai/maggie@0.7.39 cleanup --project .
|
|
532
590
|
```
|
|
533
591
|
|
|
534
592
|
Maintainers should pass npm credentials through the repository helper, never
|
|
@@ -642,6 +700,9 @@ has no existing Astro deployment adapter:
|
|
|
642
700
|
|
|
643
701
|
```bash
|
|
644
702
|
maggie booking install --project . --confirm --install-dependencies
|
|
703
|
+
|
|
704
|
+
# Reviewed new host: install missing packages and apply the Booking schema
|
|
705
|
+
maggie booking install --project . --confirm --ready
|
|
645
706
|
```
|
|
646
707
|
|
|
647
708
|
Existing dependency versions are preserved. A blank Astro project receives a
|
|
@@ -663,6 +724,20 @@ one in the local `.env` without printing it. Existing secrets are preserved;
|
|
|
663
724
|
short configured values fail closed. External secret stores must provision the
|
|
664
725
|
key themselves.
|
|
665
726
|
|
|
727
|
+
Generate the worker schedule artifact during install when the host is ready to
|
|
728
|
+
review its Resend outbox, reminders, and payment reconciliation cadence:
|
|
729
|
+
|
|
730
|
+
```bash
|
|
731
|
+
maggie booking install --project . --confirm --bootstrap --schedule systemd
|
|
732
|
+
# or:
|
|
733
|
+
maggie booking worker-schedule --project . --scheduler cron --confirm
|
|
734
|
+
```
|
|
735
|
+
|
|
736
|
+
The command writes reviewable files under `deploy/` only. It does not edit a
|
|
737
|
+
crontab, enable systemd, start a worker, or print secrets. Review the generated
|
|
738
|
+
unit, set an unprivileged service user, and enable it only after the migration,
|
|
739
|
+
backup/restore, and host evidence gates pass.
|
|
740
|
+
|
|
666
741
|
Run the read-only onboarding checklist after installation:
|
|
667
742
|
|
|
668
743
|
```bash
|
|
@@ -689,7 +764,7 @@ Validate the tenant-scoped Booking email-template contract independently:
|
|
|
689
764
|
maggie booking email-templates-contract
|
|
690
765
|
```
|
|
691
766
|
|
|
692
|
-
The Booking workspace includes
|
|
767
|
+
The Booking workspace includes ten Resend event templates. Owner,
|
|
693
768
|
administrator, and Booking managers can edit drafts, preview sandboxed sample
|
|
694
769
|
data, publish audited versions, and roll back earlier versions. Event-specific
|
|
695
770
|
placeholders are allowlisted and escaped before the host worker sends through
|
|
@@ -1007,7 +1082,7 @@ repairs with `maggie dash sections validate`, `fanout-validate`,
|
|
|
1007
1082
|
`maggie dash inventory` to classify published pages once into disjoint kinds.
|
|
1008
1083
|
See the [quality contract examples](https://github.com/TOPY-AI-LTD/ai-cmo-skills/blob/main/contracts/maggiedash/quality-contracts.md).
|
|
1009
1084
|
|
|
1010
|
-
The package includes all
|
|
1085
|
+
The package includes all 20 installable skills: `maggie-blog-bootstrap`,
|
|
1011
1086
|
`maggie-dash`, `maggie-clone`, `maggie-clone-to-template`, `maggie-marketplace`,
|
|
1012
1087
|
`maggie-template`, `maggie-design`, `maggie-ops`, `maggie-deployment`,
|
|
1013
1088
|
`maggie-project-context`, `maggie-seo-geo`, `maggie-social-share`,
|
|
@@ -1065,6 +1140,23 @@ maggie list
|
|
|
1065
1140
|
maggie --help
|
|
1066
1141
|
```
|
|
1067
1142
|
|
|
1143
|
+
Feedback batch quality gates:
|
|
1144
|
+
|
|
1145
|
+
```bash
|
|
1146
|
+
maggie design progressive-check --evidence .maggie/progressive.json
|
|
1147
|
+
maggie design dash-validate --plan .maggie/design/dashboard/PLAN.json --evidence .maggie/dashboard.json
|
|
1148
|
+
maggie design sample-validate --plan .maggie/design/sample/PLAN.json --evidence .maggie/sample.json
|
|
1149
|
+
maggie seo privacy-check --evidence .maggie/privacy-origins.json
|
|
1150
|
+
maggie dash capabilities-validate --manifest .maggie/host-capabilities.json
|
|
1151
|
+
maggie dash structure-validate --model .maggie/site-structure.json --evidence .maggie/site-structure-rendered.json
|
|
1152
|
+
maggie service treatment-group-audit --project .
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
These checks consume sanitized build/browser evidence and fail closed on
|
|
1156
|
+
third-party request churn, stale utility CSS, unsupported dashboard panels,
|
|
1157
|
+
privacy-policy origin drift, site-structure drift, or duplicated treatment
|
|
1158
|
+
products.
|
|
1159
|
+
|
|
1068
1160
|
## Safety model
|
|
1069
1161
|
|
|
1070
1162
|
- Clone only sites the user owns or is authorized to reproduce.
|
package/bin/maggie.js
CHANGED
|
@@ -58,7 +58,7 @@ Usage:
|
|
|
58
58
|
maggie doctor [--project PATH]
|
|
59
59
|
maggie bootstrap interview [project]
|
|
60
60
|
maggie dash init|install|status|migrate|transition|variant|cms --project PATH [options]
|
|
61
|
-
maggie booking install|inspect|setup|contract|runtime-validate|ops-validate|release-gate|stripe-audit|tasks --project PATH [options]
|
|
61
|
+
maggie booking install|worker-schedule|inspect|setup|contract|runtime-validate|ops-validate|release-gate|stripe-audit|tasks --project PATH [options]
|
|
62
62
|
maggie dash sections <validate|prompt|keys|remap-translations|fanout-validate|locale-validate|variant-copy-validate|media-validate|bindings-validate|idempotency-validate|reconcile> [options]
|
|
63
63
|
maggie dash inventory --pages-file FILE [--require-page-kinds] [--require-source-coverage]
|
|
64
64
|
maggie dash api-contract --spec FILE
|
|
@@ -68,6 +68,12 @@ Usage:
|
|
|
68
68
|
maggie dash components-audit --bindings-file FILE --sections-file FILE --pages-file FILE
|
|
69
69
|
maggie dash status --project PATH
|
|
70
70
|
maggie dash migrate --project PATH --confirm
|
|
71
|
+
maggie dash capabilities-validate|session-check|content-overrides-check --manifest FILE
|
|
72
|
+
maggie dash cache-boundary-check --evidence FILE
|
|
73
|
+
maggie dash structure-validate --model FILE --evidence FILE
|
|
74
|
+
maggie design progressive-check|css-check|css-cascade-check|style-check --evidence FILE
|
|
75
|
+
maggie design dash-init|dash-validate|sample-init|sample-validate [options]
|
|
76
|
+
maggie seo privacy-check --evidence FILE
|
|
71
77
|
maggie content FILE --source PROVIDER --project PATH --confirm
|
|
72
78
|
maggie agent-content write --url URL --allowed-origin ORIGIN --token-env ENV --payload FILE
|
|
73
79
|
maggie bootstrap phase <start|pass|fail|status> <phase> [project]
|
|
@@ -85,6 +91,7 @@ Usage:
|
|
|
85
91
|
maggie clone-to-template validate <id>
|
|
86
92
|
maggie clone run <homepage-url> --run-id <id>
|
|
87
93
|
maggie clone status --run-id <id>
|
|
94
|
+
maggie clone interactions --run-id <id> --browse PATH --interactions FILE
|
|
88
95
|
maggie design run <target-url> --clone-run <id>
|
|
89
96
|
maggie design reference-ui --project PATH --reference PATH --surface blog,service --confirm
|
|
90
97
|
maggie design init --project PATH --surface blog|service --reference-run PATH --confirm
|
|
@@ -94,6 +101,7 @@ Usage:
|
|
|
94
101
|
maggie design icon-inventory --project PATH --source-dir src --runtime assets/icons.css --output docs/icon-inventory.json
|
|
95
102
|
maggie design icon-release-gate --icon-report FILE --browser-report FILE --output FILE
|
|
96
103
|
maggie design author --project PATH --route /about --purpose TEXT --audience TEXT --confirm
|
|
104
|
+
maggie design markup-check --html FILE [--require-content-keys]
|
|
97
105
|
maggie design in-place --project PATH --route /pricing [--content-source PATH]
|
|
98
106
|
maggie design section --project PATH --route /pricing --section-id ID
|
|
99
107
|
maggie design section-validate --before FILE --after FILE --section-id ID
|
|
@@ -126,6 +134,13 @@ Usage:
|
|
|
126
134
|
maggie migration identity --identity-file FILE [--expected-file FILE]
|
|
127
135
|
maggie schedule PATH/.maggie/schedule.json --project PATH
|
|
128
136
|
maggie analytics [traffic-audit|release-gate] --project PATH --environment staging
|
|
137
|
+
maggie analytics gsc-readiness --gsc-evidence FILE
|
|
138
|
+
maggie media [image-policy|video-policy|video-job|video-playback] [--policy/--job/--evidence FILE]
|
|
139
|
+
maggie provenance --project PATH [--source PATH] [--output FILE]
|
|
140
|
+
maggie scaffold --project PATH --framework astro|nextjs|sveltekit|nuxt|vite-react|vite-vue [--write --confirm]
|
|
141
|
+
maggie brand-kit --manifest FILE | --project PATH --design DESIGN.md [--write --confirm]
|
|
142
|
+
maggie npm11 --project PATH [--smoke --confirm]
|
|
143
|
+
maggie booking-delivery [--policy FILE]
|
|
129
144
|
maggie release PATH --environment staging --target vps-with-cloudflare-dns
|
|
130
145
|
maggie api lifecycle --project PATH [--execute --allow-quota]
|
|
131
146
|
maggie memory <init|list|search|context|add|record-error|transition|export> --project PATH
|
|
@@ -136,7 +151,7 @@ Usage:
|
|
|
136
151
|
maggie site-audit URL [--crawl] [--access-log FILE] [--require-sitemap-request] [--languages en-GB,es-MX,ja-JP] [--check-hreflang] [--check-internal-links]
|
|
137
152
|
maggie site-audit URL --crawl --save-baseline FILE --reviewer NAME
|
|
138
153
|
maggie site-audit URL --crawl --baseline FILE [--reason-all REASON]
|
|
139
|
-
maggie browser-audit URL --browse PATH --output DIR --required SELECTOR [--sticky SELECTOR]
|
|
154
|
+
maggie browser-audit URL --browse PATH --output DIR --required SELECTOR [--sticky SELECTOR] [--interactions FILE]
|
|
140
155
|
maggie verification coverage --contract FILE --evidence FILE
|
|
141
156
|
maggie ops audit|preflight|verify|lockfiles|seed-manifest|google-capabilities|favicon-check --project PATH
|
|
142
157
|
maggie ops google-capabilities --project PATH --report FILE [--output FILE]
|
|
@@ -400,6 +415,10 @@ function install(args) {
|
|
|
400
415
|
}
|
|
401
416
|
|
|
402
417
|
function update(args) {
|
|
418
|
+
if (args.some((item) => ["--help", "-h"].includes(item))) {
|
|
419
|
+
usage();
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
403
422
|
const root = projectRoot(args);
|
|
404
423
|
const skills = selectedSkills(args);
|
|
405
424
|
const force = args.includes("--force");
|
|
@@ -469,7 +488,8 @@ function docs(args) {
|
|
|
469
488
|
function seo(args) {
|
|
470
489
|
const command = args[0];
|
|
471
490
|
const scripts = { performance: "maggie_performance.py", images: "maggie_images.py", sitemap: "maggie_sitemap.py", indexnow: "maggie_indexnow.py", "social-cards": "maggie_social_cards.py", "head-tags": "maggie_head_tags.py" };
|
|
472
|
-
if (
|
|
491
|
+
if (command === "privacy-check") return workflowCli("maggie_contracts.py", ["privacy-check", ...args.slice(1)]);
|
|
492
|
+
if (!scripts[command]) throw new Error("seo command must be performance, images, sitemap, indexnow, social-cards, head-tags, or privacy-check");
|
|
473
493
|
workflowCli(scripts[command], args.slice(1));
|
|
474
494
|
}
|
|
475
495
|
|
|
@@ -564,6 +584,8 @@ try {
|
|
|
564
584
|
else if (command === "clone-to-template") workflowCli("maggie_clone_to_template.py", args);
|
|
565
585
|
else if (command === "design" && args[0] === "icon-inventory") workflowCli("maggie_icon_inventory.py", args.slice(1));
|
|
566
586
|
else if (command === "design" && args[0] === "icon-release-gate") workflowCli("maggie_icon_release_gate.py", args.slice(1));
|
|
587
|
+
else if (command === "design" && ["progressive-check", "css-check", "css-cascade-check", "style-check", "dash-init", "dash-validate", "sample-init", "sample-validate"].includes(args[0])) workflowCli("maggie_contracts.py", args);
|
|
588
|
+
else if (command === "design" && args[0] === "markup-check") workflowCli("maggie_design.py", args);
|
|
567
589
|
else if (command === "design") workflowCli("maggie_design.py", args);
|
|
568
590
|
else if (command === "auth") workflowCli("maggie_auth.py", args);
|
|
569
591
|
else if (command === "blog") workflowCli("maggie_blog.py", args);
|
|
@@ -580,6 +602,10 @@ try {
|
|
|
580
602
|
else if (command === "migration") workflowCli("maggie_migration.py", args);
|
|
581
603
|
else if (command === "schedule") workflowCli("maggie_schedule.py", args);
|
|
582
604
|
else if (command === "analytics") workflowCli("maggie_analytics.py", args);
|
|
605
|
+
else if (["media", "provenance", "scaffold", "brand-kit", "npm11", "booking-delivery"].includes(command)) {
|
|
606
|
+
const workflowArgs = command === "media" ? ["media", ...args] : command === "brand-kit" ? ["brand-kit", ...args] : command === "npm11" ? ["npm11", ...args] : command === "booking-delivery" ? ["booking-delivery", ...args] : [command, ...args];
|
|
607
|
+
workflowCli("maggie_workflows.py", workflowArgs);
|
|
608
|
+
}
|
|
583
609
|
else if (command === "release") workflowCli("maggie_release.py", args);
|
|
584
610
|
else if (command === "bootstrap") workflowCli("maggie.py", ["bootstrap", ...args]);
|
|
585
611
|
else if (command === "api") workflowCli("maggie.py", ["api", ...args]);
|
|
@@ -590,6 +616,7 @@ try {
|
|
|
590
616
|
else if (command === "site-audit") workflowCli("site_audit.py", args);
|
|
591
617
|
else if (command === "browser-audit") workflowCli("maggie_browser_audit.py", args);
|
|
592
618
|
else if (command === "verification") workflowCli("maggie_verification.py", args);
|
|
619
|
+
else if (command === "dash" && ["capabilities-validate", "structure-validate", "content-overrides-check", "session-check", "cache-boundary-check"].includes(args[0])) workflowCli("maggie_contracts.py", args);
|
|
593
620
|
else if (command === "dash") workflowCli("maggie_dash.py", args);
|
|
594
621
|
else if (command === "booking") workflowCli("maggie_booking.py", args);
|
|
595
622
|
else if (command === "agent-content") workflowCli("maggie_agent_content.py", args);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://maggie.noblox.app/contracts/maggie-clone/interaction-state-v1.schema.json",
|
|
4
|
+
"title": "Maggie clone interaction-state evidence v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["schemaVersion", "sourceRunId", "interactionManifest", "viewports", "states"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": {"const": "maggie-clone-interaction-state.v1"},
|
|
9
|
+
"sourceRunId": {"type": "string", "pattern": "^[A-Za-z0-9._-]+$"},
|
|
10
|
+
"interactionManifest": {"type": "string", "minLength": 1},
|
|
11
|
+
"viewports": {"type": "array", "items": {"enum": ["desktop", "tablet", "mobile"]}, "minItems": 3, "uniqueItems": true},
|
|
12
|
+
"states": {
|
|
13
|
+
"type": "array",
|
|
14
|
+
"minItems": 1,
|
|
15
|
+
"items": {"type": "object", "required": ["viewport", "stepId", "status"], "properties": {
|
|
16
|
+
"viewport": {"enum": ["desktop", "tablet", "mobile"]},
|
|
17
|
+
"stepId": {"type": "string"},
|
|
18
|
+
"status": {"enum": ["passed", "failed"]},
|
|
19
|
+
"screenshot": {"type": ["string", "null"]},
|
|
20
|
+
"error": {"type": ["string", "null"]}
|
|
21
|
+
}, "additionalProperties": false}
|
|
22
|
+
},
|
|
23
|
+
"redacted": {"const": true}
|
|
24
|
+
},
|
|
25
|
+
"additionalProperties": false
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://maggie.noblox.app/contracts/maggie-content/provenance-v1.schema.json",
|
|
4
|
+
"title": "Maggie git-backed content provenance v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["schemaVersion", "commit", "branch", "dirty", "sourceRevision", "authoringBoundary"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": {"const": "maggie-content-provenance.v1"},
|
|
9
|
+
"commit": {"type": "string", "pattern": "^[0-9a-f]{7,64}$"},
|
|
10
|
+
"branch": {"type": "string", "minLength": 1},
|
|
11
|
+
"dirty": {"type": "boolean"},
|
|
12
|
+
"sourceRevision": {"type": "string", "pattern": "^[0-9a-f]{7,64}$"},
|
|
13
|
+
"sourcePath": {"type": "string", "minLength": 1},
|
|
14
|
+
"authoringBoundary": {"enum": ["git-source", "host-runtime", "generated-artifact"]},
|
|
15
|
+
"tracked": {"type": "boolean"},
|
|
16
|
+
"staleWritePolicy": {"const": "reject-unless-source-revision-matches"},
|
|
17
|
+
"capturedAt": {"type": "string", "format": "date-time"}
|
|
18
|
+
},
|
|
19
|
+
"additionalProperties": false
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://maggie.noblox.app/contracts/maggie-design/brand-kit-v1.schema.json",
|
|
4
|
+
"title": "Maggie reusable brand kit v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["schemaVersion", "designTokens", "logo", "typography", "icons", "assetManifest", "preview", "designBoundary"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": {"const": "maggie-brand-kit.v1"},
|
|
9
|
+
"designTokens": {"type": "object", "minProperties": 1},
|
|
10
|
+
"logo": {"type": "object", "required": ["primary", "variants"], "properties": {"primary": {"type": "string"}, "variants": {"type": "array", "items": {"type": "string"}}}, "additionalProperties": false},
|
|
11
|
+
"typography": {"type": "object", "required": ["families", "weights"], "properties": {"families": {"type": "array", "minItems": 1}, "weights": {"type": "array", "minItems": 1}}, "additionalProperties": false},
|
|
12
|
+
"icons": {"type": "object", "required": ["library", "policy"], "properties": {"library": {"type": "string"}, "policy": {"enum": ["library-first", "host-defined"]}}, "additionalProperties": false},
|
|
13
|
+
"assetManifest": {"type": "string", "minLength": 1},
|
|
14
|
+
"preview": {"type": "string", "minLength": 1},
|
|
15
|
+
"designBoundary": {"const": "DESIGN.md-and-host-tokens-are-source-of-truth"}
|
|
16
|
+
},
|
|
17
|
+
"additionalProperties": false
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://maggie.noblox.app/contracts/browser-interactions-v1.schema.json",
|
|
4
|
+
"title": "Maggie browser interaction evidence v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["schemaVersion", "steps"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": {"const": "maggie-browser-interactions.v1"},
|
|
9
|
+
"steps": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"minItems": 1,
|
|
12
|
+
"items": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"required": ["id", "action"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {"type": "string", "pattern": "^[A-Za-z0-9._-]+$"},
|
|
17
|
+
"action": {"enum": ["click", "fill", "type", "select", "press", "wait", "assert-visible", "assert-enabled", "assert-disabled", "assert-checked", "assert-editable", "assert-text", "assert-style", "assert-no-request"]},
|
|
18
|
+
"selector": {"type": "string"},
|
|
19
|
+
"property": {"type": "string"},
|
|
20
|
+
"origin": {"type": "string"}
|
|
21
|
+
},
|
|
22
|
+
"additionalProperties": true
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"additionalProperties": false
|
|
27
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Maggie rendered CSS utility evidence",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schemaVersion", "elements"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schemaVersion": {"const": "maggie-css-utility-evidence.v1"},
|
|
8
|
+
"elements": {"type": "array"}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Maggie operator dashboard surface",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schemaVersion", "route", "requiredEvidence"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schemaVersion": {"const": "maggie-dashboard-surface.v1"},
|
|
8
|
+
"route": {"type": "string"},
|
|
9
|
+
"requiredEvidence": {"type": "array", "minItems": 6}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Maggie progressive enhancement evidence",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schemaVersion", "region", "initial", "states"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schemaVersion": {"const": "maggie-progressive-enhancement.v1"},
|
|
8
|
+
"region": {"type": "object", "required": ["id", "selector", "swapScope"]},
|
|
9
|
+
"initial": {"type": "object", "required": ["thirdPartyRequests", "identities"]},
|
|
10
|
+
"states": {"type": "array", "minItems": 1}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Maggie layout sample surface",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schemaVersion", "route", "noindex", "sitemapIncluded", "finishChecklist"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schemaVersion": {"const": "maggie-sample-surface.v1"},
|
|
8
|
+
"route": {"type": "string"},
|
|
9
|
+
"noindex": {"const": true},
|
|
10
|
+
"sitemapIncluded": {"const": false},
|
|
11
|
+
"finishChecklist": {"type": "array", "minItems": 1}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://maggie.noblox.app/contracts/style-editing-v1.schema.json",
|
|
4
|
+
"title": "Maggie design style editing contract v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["schemaVersion", "properties", "templates"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": {"const": "maggie-style-editing.v1"},
|
|
9
|
+
"properties": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"minItems": 1,
|
|
12
|
+
"items": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"required": ["name", "pattern"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"name": {"type": "string", "pattern": "^[A-Za-z][A-Za-z0-9-]*$"},
|
|
17
|
+
"pattern": {"type": "string", "minLength": 1},
|
|
18
|
+
"scale": {"type": "array", "items": {"type": "string"}}
|
|
19
|
+
},
|
|
20
|
+
"additionalProperties": false
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"templates": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"required": ["id", "styles"],
|
|
28
|
+
"properties": {"id": {"type": "string"}, "appliesTo": {"type": "string"}, "styles": {"type": "object"}},
|
|
29
|
+
"additionalProperties": false
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"customValues": {"const": "allow only after property pattern validation"}
|
|
33
|
+
},
|
|
34
|
+
"additionalProperties": false
|
|
35
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://maggie.noblox.app/contracts/maggie-media/image-generation-policy-v1.json",
|
|
4
|
+
"title": "Maggie Gemini image generation and editing policy v1",
|
|
5
|
+
"schemaVersion": "maggie-image-generation-policy.v1",
|
|
6
|
+
"provider": "google-gemini",
|
|
7
|
+
"model": "gemini-3.1-flash-image",
|
|
8
|
+
"fallbackModel": "gemini-3.1-flash-lite-image",
|
|
9
|
+
"endpointEnv": "GEMINI_API_ENDPOINT",
|
|
10
|
+
"apiKeyEnv": "GEMINI_API_KEY",
|
|
11
|
+
"billingMode": "host-managed-or-byok",
|
|
12
|
+
"rights": {
|
|
13
|
+
"inputRightsRequired": true,
|
|
14
|
+
"outputReviewRequired": true,
|
|
15
|
+
"syntheticWatermarkExpected": true
|
|
16
|
+
},
|
|
17
|
+
"moderation": {
|
|
18
|
+
"preflightRequired": true,
|
|
19
|
+
"postGenerationReviewRequired": true,
|
|
20
|
+
"blockedOutputPolicy": "discard-and-report"
|
|
21
|
+
},
|
|
22
|
+
"outputs": {
|
|
23
|
+
"allowedMimeTypes": ["image/png", "image/jpeg", "image/webp"],
|
|
24
|
+
"allowedSizes": ["1K", "2K", "4K"],
|
|
25
|
+
"maxReferenceImages": 14
|
|
26
|
+
},
|
|
27
|
+
"provenance": ["provider", "model", "promptHash", "inputAssetHashes", "sourceRevision", "createdAt"]
|
|
28
|
+
}
|