meguro-mcp 0.2.10 → 0.2.13
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/CHANGELOG.md +26 -0
- package/README.md +35 -22
- package/package.json +1 -1
- package/scripts/generate-readme-tools.mjs +67 -12
- package/src/docs.mjs +3191 -70
- package/src/protocol.mjs +6 -0
- package/src/server.mjs +3 -3
- package/src/tools.mjs +1155 -480
package/src/docs.mjs
CHANGED
|
@@ -12,9 +12,23 @@ const RECEIPT_GUIDE_V4_VERSION = 4;
|
|
|
12
12
|
const RECEIPT_GUIDE_LATEST_VERSION = 5;
|
|
13
13
|
const RECEIPT_GUIDE_V6_VERSION = 6;
|
|
14
14
|
const RECEIPT_GUIDE_V7_VERSION = 7;
|
|
15
|
+
const RECEIPT_GUIDE_V8_VERSION = 8;
|
|
16
|
+
const RECEIPT_GUIDE_V9_VERSION = 9;
|
|
17
|
+
const RECEIPT_GUIDE_V10_VERSION = 10;
|
|
18
|
+
const RECEIPT_GUIDE_V11_VERSION = 11;
|
|
19
|
+
const RECEIPT_GUIDE_V12_VERSION = 12;
|
|
20
|
+
const RECEIPT_GUIDE_V13_VERSION = 13;
|
|
21
|
+
const RECEIPT_GUIDE_V14_VERSION = 14;
|
|
22
|
+
const RECEIPT_GUIDE_V15_VERSION = 15;
|
|
23
|
+
const RECEIPT_GUIDE_V16_VERSION = 16;
|
|
24
|
+
const RECEIPT_GUIDE_V17_VERSION = 17;
|
|
25
|
+
const RECEIPT_GUIDE_V18_VERSION = 18;
|
|
15
26
|
const GATE_POLICY_VERSION = 1;
|
|
16
27
|
const GATE_POLICY_V2_VERSION = 2;
|
|
17
28
|
const GATE_POLICY_V3_VERSION = 3;
|
|
29
|
+
const GATE_POLICY_V4_VERSION = 4;
|
|
30
|
+
const GATE_POLICY_V5_VERSION = 5;
|
|
31
|
+
const GATE_POLICY_V6_VERSION = 6;
|
|
18
32
|
const GETTING_STARTED_VERSION = 1;
|
|
19
33
|
const GETTING_STARTED_V2_VERSION = 2;
|
|
20
34
|
const GETTING_STARTED_LATEST_VERSION = 3;
|
|
@@ -23,11 +37,73 @@ const GETTING_STARTED_V5_VERSION = 5;
|
|
|
23
37
|
const GETTING_STARTED_V6_VERSION = 6;
|
|
24
38
|
const GETTING_STARTED_V7_VERSION = 7;
|
|
25
39
|
const GETTING_STARTED_V8_VERSION = 8;
|
|
40
|
+
const GETTING_STARTED_V9_VERSION = 9;
|
|
41
|
+
const GETTING_STARTED_V10_VERSION = 10;
|
|
42
|
+
const GETTING_STARTED_V11_VERSION = 11;
|
|
43
|
+
const GETTING_STARTED_V12_VERSION = 12;
|
|
44
|
+
const GETTING_STARTED_V13_VERSION = 13;
|
|
45
|
+
const GETTING_STARTED_V14_VERSION = 14;
|
|
46
|
+
const GETTING_STARTED_V15_VERSION = 15;
|
|
47
|
+
const GETTING_STARTED_V16_VERSION = 16;
|
|
48
|
+
const GETTING_STARTED_V17_VERSION = 17;
|
|
49
|
+
const GETTING_STARTED_V18_VERSION = 18;
|
|
50
|
+
const GETTING_STARTED_V19_VERSION = 19;
|
|
51
|
+
const GETTING_STARTED_V20_VERSION = 20;
|
|
52
|
+
const GETTING_STARTED_V21_VERSION = 21;
|
|
53
|
+
const GETTING_STARTED_V22_VERSION = 22;
|
|
54
|
+
const GETTING_STARTED_V23_VERSION = 23;
|
|
55
|
+
const GETTING_STARTED_V24_VERSION = 24;
|
|
56
|
+
const GETTING_STARTED_V25_VERSION = 25;
|
|
57
|
+
const GETTING_STARTED_V26_VERSION = 26;
|
|
58
|
+
const GETTING_STARTED_V27_VERSION = 27;
|
|
59
|
+
const GETTING_STARTED_V28_VERSION = 28;
|
|
60
|
+
const GETTING_STARTED_V29_VERSION = 29;
|
|
61
|
+
const GETTING_STARTED_V30_VERSION = 30;
|
|
62
|
+
const GETTING_STARTED_V31_VERSION = 31;
|
|
63
|
+
const GETTING_STARTED_V32_VERSION = 32;
|
|
64
|
+
const GETTING_STARTED_V33_VERSION = 33;
|
|
65
|
+
const GETTING_STARTED_V34_VERSION = 34;
|
|
66
|
+
const GETTING_STARTED_V35_VERSION = 35;
|
|
67
|
+
const GETTING_STARTED_V36_VERSION = 36;
|
|
68
|
+
const GETTING_STARTED_V37_VERSION = 37;
|
|
69
|
+
const GETTING_STARTED_V38_VERSION = 38;
|
|
70
|
+
const GETTING_STARTED_V39_VERSION = 39;
|
|
26
71
|
const PRODUCT_GUIDE_VERSION = 1;
|
|
27
72
|
const PRODUCT_GUIDE_V2_VERSION = 2;
|
|
28
73
|
const PRODUCT_GUIDE_V3_VERSION = 3;
|
|
29
74
|
const PRODUCT_GUIDE_V4_VERSION = 4;
|
|
30
75
|
const PRODUCT_GUIDE_V5_VERSION = 5;
|
|
76
|
+
const PRODUCT_GUIDE_V6_VERSION = 6;
|
|
77
|
+
const PRODUCT_GUIDE_V7_VERSION = 7;
|
|
78
|
+
const PRODUCT_GUIDE_V8_VERSION = 8;
|
|
79
|
+
const PRODUCT_GUIDE_V9_VERSION = 9;
|
|
80
|
+
const PRODUCT_GUIDE_V10_VERSION = 10;
|
|
81
|
+
const PRODUCT_GUIDE_V11_VERSION = 11;
|
|
82
|
+
const PRODUCT_GUIDE_V12_VERSION = 12;
|
|
83
|
+
const PRODUCT_GUIDE_V13_VERSION = 13;
|
|
84
|
+
const PRODUCT_GUIDE_V14_VERSION = 14;
|
|
85
|
+
const PRODUCT_GUIDE_V15_VERSION = 15;
|
|
86
|
+
const PRODUCT_GUIDE_V16_VERSION = 16;
|
|
87
|
+
const PRODUCT_GUIDE_V17_VERSION = 17;
|
|
88
|
+
const PRODUCT_GUIDE_V18_VERSION = 18;
|
|
89
|
+
const PRODUCT_GUIDE_V19_VERSION = 19;
|
|
90
|
+
const PRODUCT_GUIDE_V20_VERSION = 20;
|
|
91
|
+
const PRODUCT_GUIDE_V21_VERSION = 21;
|
|
92
|
+
const PRODUCT_GUIDE_V22_VERSION = 22;
|
|
93
|
+
const PRODUCT_GUIDE_V23_VERSION = 23;
|
|
94
|
+
const PRODUCT_GUIDE_V24_VERSION = 24;
|
|
95
|
+
const PRODUCT_GUIDE_V25_VERSION = 25;
|
|
96
|
+
const PRODUCT_GUIDE_V26_VERSION = 26;
|
|
97
|
+
const PRODUCT_GUIDE_V27_VERSION = 27;
|
|
98
|
+
const PRODUCT_GUIDE_V28_VERSION = 28;
|
|
99
|
+
const PRODUCT_GUIDE_V29_VERSION = 29;
|
|
100
|
+
const PRODUCT_GUIDE_V30_VERSION = 30;
|
|
101
|
+
const PRODUCT_GUIDE_V31_VERSION = 31;
|
|
102
|
+
const PRODUCT_GUIDE_V32_VERSION = 32;
|
|
103
|
+
const PRODUCT_GUIDE_V33_VERSION = 33;
|
|
104
|
+
const PRODUCT_GUIDE_V34_VERSION = 34;
|
|
105
|
+
const PRODUCT_GUIDE_V35_VERSION = 35;
|
|
106
|
+
const PRODUCT_GUIDE_V36_VERSION = 36;
|
|
31
107
|
const RECEIPT_GUIDE_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_VERSION}`;
|
|
32
108
|
const RECEIPT_GUIDE_V2_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V2_VERSION}`;
|
|
33
109
|
const RECEIPT_GUIDE_V3_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V3_VERSION}`;
|
|
@@ -35,9 +111,23 @@ const RECEIPT_GUIDE_V4_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V4_VE
|
|
|
35
111
|
const RECEIPT_GUIDE_LATEST_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_LATEST_VERSION}`;
|
|
36
112
|
const RECEIPT_GUIDE_V6_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V6_VERSION}`;
|
|
37
113
|
const RECEIPT_GUIDE_V7_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V7_VERSION}`;
|
|
114
|
+
const RECEIPT_GUIDE_V8_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V8_VERSION}`;
|
|
115
|
+
const RECEIPT_GUIDE_V9_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V9_VERSION}`;
|
|
116
|
+
const RECEIPT_GUIDE_V10_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V10_VERSION}`;
|
|
117
|
+
const RECEIPT_GUIDE_V11_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V11_VERSION}`;
|
|
118
|
+
const RECEIPT_GUIDE_V12_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V12_VERSION}`;
|
|
119
|
+
const RECEIPT_GUIDE_V13_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V13_VERSION}`;
|
|
120
|
+
const RECEIPT_GUIDE_V14_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V14_VERSION}`;
|
|
121
|
+
const RECEIPT_GUIDE_V15_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V15_VERSION}`;
|
|
122
|
+
const RECEIPT_GUIDE_V16_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V16_VERSION}`;
|
|
123
|
+
const RECEIPT_GUIDE_V17_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V17_VERSION}`;
|
|
124
|
+
const RECEIPT_GUIDE_V18_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V18_VERSION}`;
|
|
38
125
|
const GATE_POLICY_URI = `meguro://docs/gate-policy/v${GATE_POLICY_VERSION}`;
|
|
39
126
|
const GATE_POLICY_V2_URI = `meguro://docs/gate-policy/v${GATE_POLICY_V2_VERSION}`;
|
|
40
127
|
const GATE_POLICY_V3_URI = `meguro://docs/gate-policy/v${GATE_POLICY_V3_VERSION}`;
|
|
128
|
+
const GATE_POLICY_V4_URI = `meguro://docs/gate-policy/v${GATE_POLICY_V4_VERSION}`;
|
|
129
|
+
const GATE_POLICY_V5_URI = `meguro://docs/gate-policy/v${GATE_POLICY_V5_VERSION}`;
|
|
130
|
+
const GATE_POLICY_V6_URI = `meguro://docs/gate-policy/v${GATE_POLICY_V6_VERSION}`;
|
|
41
131
|
const GETTING_STARTED_URI = `meguro://docs/getting-started/v${GETTING_STARTED_VERSION}`;
|
|
42
132
|
const GETTING_STARTED_V2_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V2_VERSION}`;
|
|
43
133
|
const GETTING_STARTED_LATEST_URI = `meguro://docs/getting-started/v${GETTING_STARTED_LATEST_VERSION}`;
|
|
@@ -46,15 +136,110 @@ const GETTING_STARTED_V5_URI = `meguro://docs/getting-started/v${GETTING_STARTED
|
|
|
46
136
|
const GETTING_STARTED_V6_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V6_VERSION}`;
|
|
47
137
|
const GETTING_STARTED_V7_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V7_VERSION}`;
|
|
48
138
|
const GETTING_STARTED_V8_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V8_VERSION}`;
|
|
139
|
+
const GETTING_STARTED_V9_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V9_VERSION}`;
|
|
140
|
+
const GETTING_STARTED_V10_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V10_VERSION}`;
|
|
141
|
+
const GETTING_STARTED_V11_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V11_VERSION}`;
|
|
142
|
+
const GETTING_STARTED_V12_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V12_VERSION}`;
|
|
143
|
+
const GETTING_STARTED_V13_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V13_VERSION}`;
|
|
144
|
+
const GETTING_STARTED_V14_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V14_VERSION}`;
|
|
145
|
+
const GETTING_STARTED_V15_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V15_VERSION}`;
|
|
146
|
+
const GETTING_STARTED_V16_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V16_VERSION}`;
|
|
147
|
+
const GETTING_STARTED_V17_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V17_VERSION}`;
|
|
148
|
+
const GETTING_STARTED_V18_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V18_VERSION}`;
|
|
149
|
+
const GETTING_STARTED_V19_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V19_VERSION}`;
|
|
150
|
+
const GETTING_STARTED_V20_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V20_VERSION}`;
|
|
151
|
+
const GETTING_STARTED_V21_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V21_VERSION}`;
|
|
152
|
+
const GETTING_STARTED_V22_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V22_VERSION}`;
|
|
153
|
+
const GETTING_STARTED_V23_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V23_VERSION}`;
|
|
154
|
+
const GETTING_STARTED_V24_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V24_VERSION}`;
|
|
155
|
+
const GETTING_STARTED_V25_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V25_VERSION}`;
|
|
156
|
+
const GETTING_STARTED_V26_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V26_VERSION}`;
|
|
157
|
+
const GETTING_STARTED_V27_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V27_VERSION}`;
|
|
158
|
+
const GETTING_STARTED_V28_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V28_VERSION}`;
|
|
159
|
+
const GETTING_STARTED_V29_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V29_VERSION}`;
|
|
160
|
+
const GETTING_STARTED_V30_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V30_VERSION}`;
|
|
161
|
+
const GETTING_STARTED_V31_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V31_VERSION}`;
|
|
162
|
+
const GETTING_STARTED_V32_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V32_VERSION}`;
|
|
163
|
+
const GETTING_STARTED_V33_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V33_VERSION}`;
|
|
164
|
+
const GETTING_STARTED_V34_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V34_VERSION}`;
|
|
165
|
+
const GETTING_STARTED_V35_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V35_VERSION}`;
|
|
166
|
+
const GETTING_STARTED_V36_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V36_VERSION}`;
|
|
167
|
+
const GETTING_STARTED_V37_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V37_VERSION}`;
|
|
168
|
+
const GETTING_STARTED_V38_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V38_VERSION}`;
|
|
169
|
+
const GETTING_STARTED_V39_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V39_VERSION}`;
|
|
49
170
|
const PRODUCT_GUIDE_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_VERSION}`;
|
|
50
171
|
const PRODUCT_GUIDE_V2_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V2_VERSION}`;
|
|
51
172
|
const PRODUCT_GUIDE_V3_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V3_VERSION}`;
|
|
52
173
|
const PRODUCT_GUIDE_V4_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V4_VERSION}`;
|
|
53
174
|
const PRODUCT_GUIDE_V5_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V5_VERSION}`;
|
|
175
|
+
const PRODUCT_GUIDE_V6_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V6_VERSION}`;
|
|
176
|
+
const PRODUCT_GUIDE_V7_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V7_VERSION}`;
|
|
177
|
+
const PRODUCT_GUIDE_V8_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V8_VERSION}`;
|
|
178
|
+
const PRODUCT_GUIDE_V9_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V9_VERSION}`;
|
|
179
|
+
const PRODUCT_GUIDE_V10_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V10_VERSION}`;
|
|
180
|
+
const PRODUCT_GUIDE_V11_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V11_VERSION}`;
|
|
181
|
+
const PRODUCT_GUIDE_V12_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V12_VERSION}`;
|
|
182
|
+
const PRODUCT_GUIDE_V13_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V13_VERSION}`;
|
|
183
|
+
const PRODUCT_GUIDE_V14_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V14_VERSION}`;
|
|
184
|
+
const PRODUCT_GUIDE_V15_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V15_VERSION}`;
|
|
185
|
+
const PRODUCT_GUIDE_V16_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V16_VERSION}`;
|
|
186
|
+
const PRODUCT_GUIDE_V17_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V17_VERSION}`;
|
|
187
|
+
const PRODUCT_GUIDE_V18_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V18_VERSION}`;
|
|
188
|
+
const PRODUCT_GUIDE_V19_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V19_VERSION}`;
|
|
189
|
+
const PRODUCT_GUIDE_V20_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V20_VERSION}`;
|
|
190
|
+
const PRODUCT_GUIDE_V21_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V21_VERSION}`;
|
|
191
|
+
const PRODUCT_GUIDE_V22_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V22_VERSION}`;
|
|
192
|
+
const PRODUCT_GUIDE_V23_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V23_VERSION}`;
|
|
193
|
+
const PRODUCT_GUIDE_V24_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V24_VERSION}`;
|
|
194
|
+
const PRODUCT_GUIDE_V25_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V25_VERSION}`;
|
|
195
|
+
const PRODUCT_GUIDE_V26_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V26_VERSION}`;
|
|
196
|
+
const PRODUCT_GUIDE_V27_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V27_VERSION}`;
|
|
197
|
+
const PRODUCT_GUIDE_V28_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V28_VERSION}`;
|
|
198
|
+
const PRODUCT_GUIDE_V29_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V29_VERSION}`;
|
|
199
|
+
const PRODUCT_GUIDE_V30_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V30_VERSION}`;
|
|
200
|
+
const PRODUCT_GUIDE_V31_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V31_VERSION}`;
|
|
201
|
+
const PRODUCT_GUIDE_V32_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V32_VERSION}`;
|
|
202
|
+
const PRODUCT_GUIDE_V33_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V33_VERSION}`;
|
|
203
|
+
const PRODUCT_GUIDE_V34_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V34_VERSION}`;
|
|
204
|
+
const PRODUCT_GUIDE_V35_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V35_VERSION}`;
|
|
205
|
+
const PRODUCT_GUIDE_V36_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V36_VERSION}`;
|
|
54
206
|
export const DOCUMENTATION_INDEX_URI = 'meguro://docs/index/v1';
|
|
55
207
|
export const DOCUMENTATION_INDEX_V2_URI = 'meguro://docs/index/v2';
|
|
56
208
|
export const DOCUMENTATION_INDEX_V3_URI = 'meguro://docs/index/v3';
|
|
57
209
|
export const DOCUMENTATION_INDEX_V4_URI = 'meguro://docs/index/v4';
|
|
210
|
+
export const DOCUMENTATION_INDEX_V5_URI = 'meguro://docs/index/v5';
|
|
211
|
+
export const DOCUMENTATION_INDEX_V6_URI = 'meguro://docs/index/v6';
|
|
212
|
+
export const DOCUMENTATION_INDEX_V7_URI = 'meguro://docs/index/v7';
|
|
213
|
+
export const DOCUMENTATION_INDEX_V8_URI = 'meguro://docs/index/v8';
|
|
214
|
+
export const DOCUMENTATION_INDEX_V9_URI = 'meguro://docs/index/v9';
|
|
215
|
+
export const DOCUMENTATION_INDEX_V10_URI = 'meguro://docs/index/v10';
|
|
216
|
+
export const DOCUMENTATION_INDEX_V11_URI = 'meguro://docs/index/v11';
|
|
217
|
+
export const DOCUMENTATION_INDEX_V12_URI = 'meguro://docs/index/v12';
|
|
218
|
+
export const DOCUMENTATION_INDEX_V13_URI = 'meguro://docs/index/v13';
|
|
219
|
+
export const DOCUMENTATION_INDEX_V14_URI = 'meguro://docs/index/v14';
|
|
220
|
+
export const DOCUMENTATION_INDEX_V15_URI = 'meguro://docs/index/v15';
|
|
221
|
+
export const DOCUMENTATION_INDEX_V16_URI = 'meguro://docs/index/v16';
|
|
222
|
+
export const DOCUMENTATION_INDEX_V17_URI = 'meguro://docs/index/v17';
|
|
223
|
+
export const DOCUMENTATION_INDEX_V18_URI = 'meguro://docs/index/v18';
|
|
224
|
+
export const DOCUMENTATION_INDEX_V19_URI = 'meguro://docs/index/v19';
|
|
225
|
+
export const DOCUMENTATION_INDEX_V20_URI = 'meguro://docs/index/v20';
|
|
226
|
+
export const DOCUMENTATION_INDEX_V21_URI = 'meguro://docs/index/v21';
|
|
227
|
+
export const DOCUMENTATION_INDEX_V22_URI = 'meguro://docs/index/v22';
|
|
228
|
+
export const DOCUMENTATION_INDEX_V23_URI = 'meguro://docs/index/v23';
|
|
229
|
+
export const DOCUMENTATION_INDEX_V24_URI = 'meguro://docs/index/v24';
|
|
230
|
+
export const DOCUMENTATION_INDEX_V25_URI = 'meguro://docs/index/v25';
|
|
231
|
+
export const DOCUMENTATION_INDEX_V26_URI = 'meguro://docs/index/v26';
|
|
232
|
+
export const DOCUMENTATION_INDEX_V27_URI = 'meguro://docs/index/v27';
|
|
233
|
+
export const DOCUMENTATION_INDEX_V28_URI = 'meguro://docs/index/v28';
|
|
234
|
+
export const DOCUMENTATION_INDEX_V29_URI = 'meguro://docs/index/v29';
|
|
235
|
+
export const DOCUMENTATION_INDEX_V30_URI = 'meguro://docs/index/v30';
|
|
236
|
+
export const DOCUMENTATION_INDEX_V31_URI = 'meguro://docs/index/v31';
|
|
237
|
+
export const DOCUMENTATION_INDEX_V32_URI = 'meguro://docs/index/v32';
|
|
238
|
+
export const DOCUMENTATION_INDEX_V33_URI = 'meguro://docs/index/v33';
|
|
239
|
+
export const DOCUMENTATION_INDEX_V34_URI = 'meguro://docs/index/v34';
|
|
240
|
+
export const DOCUMENTATION_INDEX_V35_URI = 'meguro://docs/index/v35';
|
|
241
|
+
export const DOCUMENTATION_INDEX_V36_URI = 'meguro://docs/index/v36';
|
|
242
|
+
export const DOCUMENTATION_INDEX_V37_URI = 'meguro://docs/index/v37';
|
|
58
243
|
|
|
59
244
|
const DOCUMENTATION_CURRENCY_V1 = deepFreeze({
|
|
60
245
|
indexVersion: 1,
|
|
@@ -96,7 +281,357 @@ const DOCUMENTATION_CURRENCY_V4 = deepFreeze({
|
|
|
96
281
|
'receipt-guide': RECEIPT_GUIDE_V7_URI,
|
|
97
282
|
},
|
|
98
283
|
});
|
|
99
|
-
const
|
|
284
|
+
const DOCUMENTATION_CURRENCY_V5 = deepFreeze({
|
|
285
|
+
indexVersion: 5,
|
|
286
|
+
currentUriByTopic: {
|
|
287
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
288
|
+
'getting-started': GETTING_STARTED_V9_URI,
|
|
289
|
+
index: DOCUMENTATION_INDEX_V5_URI,
|
|
290
|
+
'product-guide': PRODUCT_GUIDE_V6_URI,
|
|
291
|
+
'receipt-guide': RECEIPT_GUIDE_V8_URI,
|
|
292
|
+
},
|
|
293
|
+
});
|
|
294
|
+
const DOCUMENTATION_CURRENCY_V6 = deepFreeze({
|
|
295
|
+
indexVersion: 6,
|
|
296
|
+
currentUriByTopic: {
|
|
297
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
298
|
+
'getting-started': GETTING_STARTED_V10_URI,
|
|
299
|
+
index: DOCUMENTATION_INDEX_V6_URI,
|
|
300
|
+
'product-guide': PRODUCT_GUIDE_V7_URI,
|
|
301
|
+
'receipt-guide': RECEIPT_GUIDE_V9_URI,
|
|
302
|
+
},
|
|
303
|
+
});
|
|
304
|
+
const DOCUMENTATION_CURRENCY_V7 = deepFreeze({
|
|
305
|
+
indexVersion: 7,
|
|
306
|
+
currentUriByTopic: {
|
|
307
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
308
|
+
'getting-started': GETTING_STARTED_V11_URI,
|
|
309
|
+
index: DOCUMENTATION_INDEX_V7_URI,
|
|
310
|
+
'product-guide': PRODUCT_GUIDE_V8_URI,
|
|
311
|
+
'receipt-guide': RECEIPT_GUIDE_V9_URI,
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
const DOCUMENTATION_CURRENCY_V8 = deepFreeze({
|
|
315
|
+
indexVersion: 8,
|
|
316
|
+
currentUriByTopic: {
|
|
317
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
318
|
+
'getting-started': GETTING_STARTED_V12_URI,
|
|
319
|
+
index: DOCUMENTATION_INDEX_V8_URI,
|
|
320
|
+
'product-guide': PRODUCT_GUIDE_V9_URI,
|
|
321
|
+
'receipt-guide': RECEIPT_GUIDE_V9_URI,
|
|
322
|
+
},
|
|
323
|
+
});
|
|
324
|
+
const DOCUMENTATION_CURRENCY_V9 = deepFreeze({
|
|
325
|
+
indexVersion: 9,
|
|
326
|
+
currentUriByTopic: {
|
|
327
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
328
|
+
'getting-started': GETTING_STARTED_V13_URI,
|
|
329
|
+
index: DOCUMENTATION_INDEX_V9_URI,
|
|
330
|
+
'product-guide': PRODUCT_GUIDE_V10_URI,
|
|
331
|
+
'receipt-guide': RECEIPT_GUIDE_V9_URI,
|
|
332
|
+
},
|
|
333
|
+
});
|
|
334
|
+
const DOCUMENTATION_CURRENCY_V10 = deepFreeze({
|
|
335
|
+
indexVersion: 10,
|
|
336
|
+
currentUriByTopic: {
|
|
337
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
338
|
+
'getting-started': GETTING_STARTED_V14_URI,
|
|
339
|
+
index: DOCUMENTATION_INDEX_V10_URI,
|
|
340
|
+
'product-guide': PRODUCT_GUIDE_V11_URI,
|
|
341
|
+
'receipt-guide': RECEIPT_GUIDE_V9_URI,
|
|
342
|
+
},
|
|
343
|
+
});
|
|
344
|
+
const DOCUMENTATION_CURRENCY_V11 = deepFreeze({
|
|
345
|
+
indexVersion: 11,
|
|
346
|
+
currentUriByTopic: {
|
|
347
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
348
|
+
'getting-started': GETTING_STARTED_V15_URI,
|
|
349
|
+
index: DOCUMENTATION_INDEX_V11_URI,
|
|
350
|
+
'product-guide': PRODUCT_GUIDE_V12_URI,
|
|
351
|
+
'receipt-guide': RECEIPT_GUIDE_V9_URI,
|
|
352
|
+
},
|
|
353
|
+
});
|
|
354
|
+
const DOCUMENTATION_CURRENCY_V12 = deepFreeze({
|
|
355
|
+
indexVersion: 12,
|
|
356
|
+
currentUriByTopic: {
|
|
357
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
358
|
+
'getting-started': GETTING_STARTED_V16_URI,
|
|
359
|
+
index: DOCUMENTATION_INDEX_V12_URI,
|
|
360
|
+
'product-guide': PRODUCT_GUIDE_V13_URI,
|
|
361
|
+
'receipt-guide': RECEIPT_GUIDE_V10_URI,
|
|
362
|
+
},
|
|
363
|
+
});
|
|
364
|
+
const DOCUMENTATION_CURRENCY_V13 = deepFreeze({
|
|
365
|
+
indexVersion: 13,
|
|
366
|
+
currentUriByTopic: {
|
|
367
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
368
|
+
'getting-started': GETTING_STARTED_V17_URI,
|
|
369
|
+
index: DOCUMENTATION_INDEX_V13_URI,
|
|
370
|
+
'product-guide': PRODUCT_GUIDE_V14_URI,
|
|
371
|
+
'receipt-guide': RECEIPT_GUIDE_V10_URI,
|
|
372
|
+
},
|
|
373
|
+
});
|
|
374
|
+
const DOCUMENTATION_CURRENCY_V14 = deepFreeze({
|
|
375
|
+
indexVersion: 14,
|
|
376
|
+
currentUriByTopic: {
|
|
377
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
378
|
+
'getting-started': GETTING_STARTED_V18_URI,
|
|
379
|
+
index: DOCUMENTATION_INDEX_V14_URI,
|
|
380
|
+
'product-guide': PRODUCT_GUIDE_V15_URI,
|
|
381
|
+
'receipt-guide': RECEIPT_GUIDE_V10_URI,
|
|
382
|
+
},
|
|
383
|
+
});
|
|
384
|
+
const DOCUMENTATION_CURRENCY_V15 = deepFreeze({
|
|
385
|
+
indexVersion: 15,
|
|
386
|
+
currentUriByTopic: {
|
|
387
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
388
|
+
'getting-started': GETTING_STARTED_V19_URI,
|
|
389
|
+
index: DOCUMENTATION_INDEX_V15_URI,
|
|
390
|
+
'product-guide': PRODUCT_GUIDE_V16_URI,
|
|
391
|
+
'receipt-guide': RECEIPT_GUIDE_V10_URI,
|
|
392
|
+
},
|
|
393
|
+
});
|
|
394
|
+
const DOCUMENTATION_CURRENCY_V16 = deepFreeze({
|
|
395
|
+
indexVersion: 16,
|
|
396
|
+
currentUriByTopic: {
|
|
397
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
398
|
+
'getting-started': GETTING_STARTED_V20_URI,
|
|
399
|
+
index: DOCUMENTATION_INDEX_V16_URI,
|
|
400
|
+
'product-guide': PRODUCT_GUIDE_V17_URI,
|
|
401
|
+
'receipt-guide': RECEIPT_GUIDE_V10_URI,
|
|
402
|
+
},
|
|
403
|
+
});
|
|
404
|
+
const DOCUMENTATION_CURRENCY_V17 = deepFreeze({
|
|
405
|
+
indexVersion: 17,
|
|
406
|
+
currentUriByTopic: {
|
|
407
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
408
|
+
'getting-started': GETTING_STARTED_V21_URI,
|
|
409
|
+
index: DOCUMENTATION_INDEX_V17_URI,
|
|
410
|
+
'product-guide': PRODUCT_GUIDE_V18_URI,
|
|
411
|
+
'receipt-guide': RECEIPT_GUIDE_V10_URI,
|
|
412
|
+
},
|
|
413
|
+
});
|
|
414
|
+
const DOCUMENTATION_CURRENCY_V18 = deepFreeze({
|
|
415
|
+
indexVersion: 18,
|
|
416
|
+
currentUriByTopic: {
|
|
417
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
418
|
+
'getting-started': GETTING_STARTED_V22_URI,
|
|
419
|
+
index: DOCUMENTATION_INDEX_V18_URI,
|
|
420
|
+
'product-guide': PRODUCT_GUIDE_V19_URI,
|
|
421
|
+
'receipt-guide': RECEIPT_GUIDE_V11_URI,
|
|
422
|
+
},
|
|
423
|
+
});
|
|
424
|
+
const DOCUMENTATION_CURRENCY_V19 = deepFreeze({
|
|
425
|
+
indexVersion: 19,
|
|
426
|
+
currentUriByTopic: {
|
|
427
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
428
|
+
'getting-started': GETTING_STARTED_V23_URI,
|
|
429
|
+
index: DOCUMENTATION_INDEX_V19_URI,
|
|
430
|
+
'product-guide': PRODUCT_GUIDE_V20_URI,
|
|
431
|
+
'receipt-guide': RECEIPT_GUIDE_V11_URI,
|
|
432
|
+
},
|
|
433
|
+
});
|
|
434
|
+
const DOCUMENTATION_CURRENCY_V20 = deepFreeze({
|
|
435
|
+
indexVersion: 20,
|
|
436
|
+
currentUriByTopic: {
|
|
437
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
438
|
+
'getting-started': GETTING_STARTED_V24_URI,
|
|
439
|
+
index: DOCUMENTATION_INDEX_V20_URI,
|
|
440
|
+
'product-guide': PRODUCT_GUIDE_V21_URI,
|
|
441
|
+
'receipt-guide': RECEIPT_GUIDE_V12_URI,
|
|
442
|
+
},
|
|
443
|
+
});
|
|
444
|
+
const DOCUMENTATION_CURRENCY_V21 = deepFreeze({
|
|
445
|
+
indexVersion: 21,
|
|
446
|
+
currentUriByTopic: {
|
|
447
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
448
|
+
'getting-started': GETTING_STARTED_V25_URI,
|
|
449
|
+
index: DOCUMENTATION_INDEX_V21_URI,
|
|
450
|
+
'product-guide': PRODUCT_GUIDE_V22_URI,
|
|
451
|
+
'receipt-guide': RECEIPT_GUIDE_V13_URI,
|
|
452
|
+
},
|
|
453
|
+
});
|
|
454
|
+
const DOCUMENTATION_CURRENCY_V22 = deepFreeze({
|
|
455
|
+
indexVersion: 22,
|
|
456
|
+
currentUriByTopic: {
|
|
457
|
+
'gate-policy': GATE_POLICY_V3_URI,
|
|
458
|
+
'getting-started': GETTING_STARTED_V26_URI,
|
|
459
|
+
index: DOCUMENTATION_INDEX_V22_URI,
|
|
460
|
+
'product-guide': PRODUCT_GUIDE_V23_URI,
|
|
461
|
+
'receipt-guide': RECEIPT_GUIDE_V13_URI,
|
|
462
|
+
},
|
|
463
|
+
});
|
|
464
|
+
const DOCUMENTATION_CURRENCY_V23 = deepFreeze({
|
|
465
|
+
indexVersion: 23,
|
|
466
|
+
currentUriByTopic: {
|
|
467
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
468
|
+
'getting-started': GETTING_STARTED_V27_URI,
|
|
469
|
+
index: DOCUMENTATION_INDEX_V23_URI,
|
|
470
|
+
'product-guide': PRODUCT_GUIDE_V24_URI,
|
|
471
|
+
'receipt-guide': RECEIPT_GUIDE_V14_URI,
|
|
472
|
+
},
|
|
473
|
+
});
|
|
474
|
+
const DOCUMENTATION_CURRENCY_V24 = deepFreeze({
|
|
475
|
+
indexVersion: 24,
|
|
476
|
+
currentUriByTopic: {
|
|
477
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
478
|
+
'getting-started': GETTING_STARTED_V28_URI,
|
|
479
|
+
index: DOCUMENTATION_INDEX_V24_URI,
|
|
480
|
+
'product-guide': PRODUCT_GUIDE_V25_URI,
|
|
481
|
+
'receipt-guide': RECEIPT_GUIDE_V14_URI,
|
|
482
|
+
},
|
|
483
|
+
});
|
|
484
|
+
const DOCUMENTATION_CURRENCY_V25 = deepFreeze({
|
|
485
|
+
indexVersion: 25,
|
|
486
|
+
currentUriByTopic: {
|
|
487
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
488
|
+
'getting-started': GETTING_STARTED_V29_URI,
|
|
489
|
+
index: DOCUMENTATION_INDEX_V25_URI,
|
|
490
|
+
'product-guide': PRODUCT_GUIDE_V26_URI,
|
|
491
|
+
'receipt-guide': RECEIPT_GUIDE_V14_URI,
|
|
492
|
+
},
|
|
493
|
+
});
|
|
494
|
+
const DOCUMENTATION_CURRENCY_V26 = deepFreeze({
|
|
495
|
+
indexVersion: 26,
|
|
496
|
+
currentUriByTopic: {
|
|
497
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
498
|
+
'getting-started': GETTING_STARTED_V30_URI,
|
|
499
|
+
index: DOCUMENTATION_INDEX_V26_URI,
|
|
500
|
+
'product-guide': PRODUCT_GUIDE_V27_URI,
|
|
501
|
+
'receipt-guide': RECEIPT_GUIDE_V14_URI,
|
|
502
|
+
},
|
|
503
|
+
});
|
|
504
|
+
// MEG-880: one new current generation carrying the admitted-recipe facts. Prior generations keep
|
|
505
|
+
// their exact bytes; guidance is never edited in place.
|
|
506
|
+
const DOCUMENTATION_CURRENCY_V27 = deepFreeze({
|
|
507
|
+
indexVersion: 27,
|
|
508
|
+
currentUriByTopic: {
|
|
509
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
510
|
+
'getting-started': GETTING_STARTED_V31_URI,
|
|
511
|
+
index: DOCUMENTATION_INDEX_V27_URI,
|
|
512
|
+
'product-guide': PRODUCT_GUIDE_V28_URI,
|
|
513
|
+
'receipt-guide': RECEIPT_GUIDE_V14_URI,
|
|
514
|
+
},
|
|
515
|
+
});
|
|
516
|
+
// MEG-907: one new current generation carrying the ruled "When not to use Meguro" boundary.
|
|
517
|
+
// Prior generations keep their exact bytes; the section is minted, never edited in place.
|
|
518
|
+
const DOCUMENTATION_CURRENCY_V28 = deepFreeze({
|
|
519
|
+
indexVersion: 28,
|
|
520
|
+
currentUriByTopic: {
|
|
521
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
522
|
+
'getting-started': GETTING_STARTED_V32_URI,
|
|
523
|
+
index: DOCUMENTATION_INDEX_V28_URI,
|
|
524
|
+
'product-guide': PRODUCT_GUIDE_V29_URI,
|
|
525
|
+
'receipt-guide': RECEIPT_GUIDE_V14_URI,
|
|
526
|
+
},
|
|
527
|
+
});
|
|
528
|
+
// MEG-1034: one new current generation publishing the v1 served/internal-only/deferred vertical
|
|
529
|
+
// boundary. Prior generations keep their exact bytes; the boundary is minted, never edited in place.
|
|
530
|
+
const DOCUMENTATION_CURRENCY_V29 = deepFreeze({
|
|
531
|
+
indexVersion: 29,
|
|
532
|
+
currentUriByTopic: {
|
|
533
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
534
|
+
'getting-started': GETTING_STARTED_V33_URI,
|
|
535
|
+
index: DOCUMENTATION_INDEX_V29_URI,
|
|
536
|
+
'product-guide': PRODUCT_GUIDE_V30_URI,
|
|
537
|
+
'receipt-guide': RECEIPT_GUIDE_V15_URI,
|
|
538
|
+
},
|
|
539
|
+
});
|
|
540
|
+
// MEG-1058: one new current generation publishing the template delivery tier — templates_list is
|
|
541
|
+
// the compact catalog and template_get is the authoritative detail hop. Prior generations keep
|
|
542
|
+
// their exact bytes; the new sequence is minted, never edited in place.
|
|
543
|
+
const DOCUMENTATION_CURRENCY_V30 = deepFreeze({
|
|
544
|
+
indexVersion: 30,
|
|
545
|
+
currentUriByTopic: {
|
|
546
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
547
|
+
'getting-started': GETTING_STARTED_V34_URI,
|
|
548
|
+
index: DOCUMENTATION_INDEX_V30_URI,
|
|
549
|
+
'product-guide': PRODUCT_GUIDE_V31_URI,
|
|
550
|
+
'receipt-guide': RECEIPT_GUIDE_V15_URI,
|
|
551
|
+
},
|
|
552
|
+
});
|
|
553
|
+
// MEG-1065: the public run-receipt Markdown representation is already immutable at issuance;
|
|
554
|
+
// publish that in-band contract as one new current generation without rewriting prior guidance.
|
|
555
|
+
const DOCUMENTATION_CURRENCY_V31 = deepFreeze({
|
|
556
|
+
indexVersion: 31,
|
|
557
|
+
currentUriByTopic: {
|
|
558
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
559
|
+
'getting-started': GETTING_STARTED_V34_URI,
|
|
560
|
+
index: DOCUMENTATION_INDEX_V31_URI,
|
|
561
|
+
'product-guide': PRODUCT_GUIDE_V31_URI,
|
|
562
|
+
'receipt-guide': RECEIPT_GUIDE_V16_URI,
|
|
563
|
+
},
|
|
564
|
+
});
|
|
565
|
+
// MEG-967: the winback operating cost is published under its corrected name.
|
|
566
|
+
const DOCUMENTATION_CURRENCY_V32 = deepFreeze({
|
|
567
|
+
indexVersion: 32,
|
|
568
|
+
currentUriByTopic: {
|
|
569
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
570
|
+
'getting-started': GETTING_STARTED_V34_URI,
|
|
571
|
+
index: DOCUMENTATION_INDEX_V32_URI,
|
|
572
|
+
'product-guide': PRODUCT_GUIDE_V31_URI,
|
|
573
|
+
'receipt-guide': RECEIPT_GUIDE_V17_URI,
|
|
574
|
+
},
|
|
575
|
+
});
|
|
576
|
+
// MEG-1074: publish canonical MCP request forms without rewriting historical guidance.
|
|
577
|
+
const DOCUMENTATION_CURRENCY_V33 = deepFreeze({
|
|
578
|
+
indexVersion: 33,
|
|
579
|
+
currentUriByTopic: {
|
|
580
|
+
'gate-policy': GATE_POLICY_V4_URI,
|
|
581
|
+
'getting-started': GETTING_STARTED_V35_URI,
|
|
582
|
+
index: DOCUMENTATION_INDEX_V33_URI,
|
|
583
|
+
'product-guide': PRODUCT_GUIDE_V32_URI,
|
|
584
|
+
'receipt-guide': RECEIPT_GUIDE_V17_URI,
|
|
585
|
+
},
|
|
586
|
+
});
|
|
587
|
+
// MEG-1107: mint one internally consistent current generation. The prior product guide and Gate
|
|
588
|
+
// policy each carried stale current-version pointers; every prior resource keeps its exact bytes.
|
|
589
|
+
const DOCUMENTATION_CURRENCY_V34 = deepFreeze({
|
|
590
|
+
indexVersion: 34,
|
|
591
|
+
currentUriByTopic: {
|
|
592
|
+
'gate-policy': GATE_POLICY_V5_URI,
|
|
593
|
+
'getting-started': GETTING_STARTED_V36_URI,
|
|
594
|
+
index: DOCUMENTATION_INDEX_V34_URI,
|
|
595
|
+
'product-guide': PRODUCT_GUIDE_V33_URI,
|
|
596
|
+
'receipt-guide': RECEIPT_GUIDE_V17_URI,
|
|
597
|
+
},
|
|
598
|
+
});
|
|
599
|
+
// MEG-1129: publish a coherent successor after correcting only Getting Started's canonical
|
|
600
|
+
// discovery-first ordinals. Product Guide and index advance together so all current pointers agree.
|
|
601
|
+
const DOCUMENTATION_CURRENCY_V35 = deepFreeze({
|
|
602
|
+
indexVersion: 35,
|
|
603
|
+
currentUriByTopic: {
|
|
604
|
+
'gate-policy': GATE_POLICY_V5_URI,
|
|
605
|
+
'getting-started': GETTING_STARTED_V37_URI,
|
|
606
|
+
index: DOCUMENTATION_INDEX_V35_URI,
|
|
607
|
+
'product-guide': PRODUCT_GUIDE_V34_URI,
|
|
608
|
+
'receipt-guide': RECEIPT_GUIDE_V17_URI,
|
|
609
|
+
},
|
|
610
|
+
});
|
|
611
|
+
// MEG-1204: publish one truthful generation. The Gate check is renamed for the only fact it
|
|
612
|
+
// decides on, the mutable Gate-absence claim leaves every current document, and the receipt guide's
|
|
613
|
+
// generated list is republished as an honest field index. Every prior resource keeps its bytes.
|
|
614
|
+
const DOCUMENTATION_CURRENCY_V36 = deepFreeze({
|
|
615
|
+
indexVersion: 36,
|
|
616
|
+
currentUriByTopic: {
|
|
617
|
+
'gate-policy': GATE_POLICY_V6_URI,
|
|
618
|
+
'getting-started': GETTING_STARTED_V38_URI,
|
|
619
|
+
index: DOCUMENTATION_INDEX_V36_URI,
|
|
620
|
+
'product-guide': PRODUCT_GUIDE_V35_URI,
|
|
621
|
+
'receipt-guide': RECEIPT_GUIDE_V18_URI,
|
|
622
|
+
},
|
|
623
|
+
});
|
|
624
|
+
const DOCUMENTATION_CURRENCY_V37 = deepFreeze({
|
|
625
|
+
indexVersion: 37,
|
|
626
|
+
currentUriByTopic: {
|
|
627
|
+
'gate-policy': GATE_POLICY_V6_URI,
|
|
628
|
+
'getting-started': GETTING_STARTED_V39_URI,
|
|
629
|
+
index: DOCUMENTATION_INDEX_V37_URI,
|
|
630
|
+
'product-guide': PRODUCT_GUIDE_V36_URI,
|
|
631
|
+
'receipt-guide': RECEIPT_GUIDE_V18_URI,
|
|
632
|
+
},
|
|
633
|
+
});
|
|
634
|
+
const CURRENT_DOCUMENTATION_CURRENCY = DOCUMENTATION_CURRENCY_V37;
|
|
100
635
|
|
|
101
636
|
function documentationVersionFromUri(uri) {
|
|
102
637
|
const match = /\/v([1-9][0-9]*)$/u.exec(uri);
|
|
@@ -125,7 +660,30 @@ const CURRENT_PRODUCT_GUIDE_URI = CURRENT_DOCUMENTATION_CURRENCY.currentUriByTop
|
|
|
125
660
|
const CURRENT_RECEIPT_GUIDE_URI = CURRENT_DOCUMENTATION_CURRENCY.currentUriByTopic['receipt-guide'];
|
|
126
661
|
const CURRENT_GATE_POLICY_URI = CURRENT_DOCUMENTATION_CURRENCY.currentUriByTopic['gate-policy'];
|
|
127
662
|
const CURRENT_INDEX_URI = CURRENT_DOCUMENTATION_CURRENCY.currentUriByTopic.index;
|
|
128
|
-
|
|
663
|
+
const MCP_ZERO_PRIOR_KNOWLEDGE_INTRO = `Meguro is a rehearsal and technical-evaluation environment for commerce agents. A practice store is an isolated commerce model that never touches a live store. Store time is its simulated clock. A run is a bounded evaluation that advances Store time. A receipt is the record of the calls, changes, and evidence Meguro captured. This connection lets you discover or create a practice store, run an evaluation, and inspect its receipt. These are rehearsal results, not forecasts, certifications, or proof of live performance.`;
|
|
664
|
+
const MCP_INITIALIZE_DOCUMENTATION_INSTRUCTIONS = `${MCP_ZERO_PRIOR_KNOWLEDGE_INTRO} Start with \`${CURRENT_GETTING_STARTED_URI}\` or call \`docs_read({ topic: "getting-started", version: ${documentationVersionFromUri(CURRENT_GETTING_STARTED_URI)} })\`; for general Meguro questions, read \`${CURRENT_PRODUCT_GUIDE_URI}\` or call \`docs_read({ topic: "product-guide", version: ${documentationVersionFromUri(CURRENT_PRODUCT_GUIDE_URI)} })\`. Every receipt carries automatic Recorded API behavior under the Default run policy; Configured Receipt Gate is a separate optional configured policy. Distinguish the documentation resource version in each \`meguro://docs/.../vN\` URI, the runtime Gate policy contract \`meguro.release-gate-policy.v1\` version 1, and the requested Shopify Admin API version from ${ADMIN_API_SUPPORTED_VERSIONS.map((version) => `\`${version}\``).join(' or ')} with default \`${ADMIN_API_DEFAULT_VERSION}\`.`;
|
|
665
|
+
|
|
666
|
+
function configuredDashboardOrigin(dashboardUrl) {
|
|
667
|
+
const configured = String(dashboardUrl ?? '').trim();
|
|
668
|
+
if (!configured) return null;
|
|
669
|
+
try {
|
|
670
|
+
const parsed = new URL(configured);
|
|
671
|
+
if (!['http:', 'https:'].includes(parsed.protocol) || parsed.username || parsed.password) return null;
|
|
672
|
+
return parsed.origin;
|
|
673
|
+
} catch {
|
|
674
|
+
return null;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
export function mcpInitializeInstructions(dashboardUrl) {
|
|
679
|
+
const origin = configuredDashboardOrigin(dashboardUrl);
|
|
680
|
+
if (!origin) return MCP_INITIALIZE_DOCUMENTATION_INSTRUCTIONS;
|
|
681
|
+
const accountEntry = `${origin}/`;
|
|
682
|
+
const authorizationManagement = `${origin}/#settings?section=connection`;
|
|
683
|
+
return `${MCP_INITIALIZE_DOCUMENTATION_INSTRUCTIONS} Human setup: open \`${accountEntry}\` to sign in or create an account, then approve browser consent. Meguro's server grant and the MCP client's local connection/token state are separate. Open \`${authorizationManagement}\` to revoke server refresh access or reconnect; reconnecting creates a fresh grant, and Console cannot erase client-local state.`;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
export const MCP_INITIALIZE_INSTRUCTIONS = mcpInitializeInstructions();
|
|
129
687
|
export const PRODUCT_GUIDE_SHA256 = 'e5450c1b4181cec4d6ed0a498dbff1cb25d2e223ff2228928aecbbce9674f074';
|
|
130
688
|
|
|
131
689
|
function deepFreeze(value) {
|
|
@@ -725,6 +1283,135 @@ const RECEIPT_FIELDS_V7 = deepFreeze({
|
|
|
725
1283
|
]),
|
|
726
1284
|
});
|
|
727
1285
|
|
|
1286
|
+
const RECEIPT_FIELDS_V8 = deepFreeze({
|
|
1287
|
+
...RECEIPT_FIELDS_V7,
|
|
1288
|
+
'meguro.shared-receipt.v2': stableFields([
|
|
1289
|
+
...RECEIPT_FIELDS_V7['meguro.shared-receipt.v2'],
|
|
1290
|
+
'resultSemantics',
|
|
1291
|
+
]),
|
|
1292
|
+
'meguro.run-result-semantics.v1': stableFields([
|
|
1293
|
+
'evidenceAssertions.basis',
|
|
1294
|
+
'evidenceAssertions.coverage.failed',
|
|
1295
|
+
'evidenceAssertions.coverage.notExercised',
|
|
1296
|
+
'evidenceAssertions.coverage.passed',
|
|
1297
|
+
'evidenceAssertions.coverage.total',
|
|
1298
|
+
'evidenceAssertions.coverage.unavailable',
|
|
1299
|
+
'evidenceAssertions.namedFailures[].detail',
|
|
1300
|
+
'evidenceAssertions.namedFailures[].family',
|
|
1301
|
+
'evidenceAssertions.namedFailures[].id',
|
|
1302
|
+
'evidenceAssertions.namedFailures[].label',
|
|
1303
|
+
'evidenceAssertions.semanticDomain',
|
|
1304
|
+
'evidenceAssertions.status',
|
|
1305
|
+
'interpretation',
|
|
1306
|
+
'legacyFieldGuidance.fields[]',
|
|
1307
|
+
'legacyFieldGuidance.instruction',
|
|
1308
|
+
'lifecycle.meaning',
|
|
1309
|
+
'lifecycle.semanticDomain',
|
|
1310
|
+
'lifecycle.sourceStatus',
|
|
1311
|
+
'lifecycle.status',
|
|
1312
|
+
'modeledScenarioOutcome.availability',
|
|
1313
|
+
'modeledScenarioOutcome.evidenceBoundary',
|
|
1314
|
+
'modeledScenarioOutcome.reason',
|
|
1315
|
+
'modeledScenarioOutcome.semanticDomain',
|
|
1316
|
+
'modeledScenarioOutcome.statement',
|
|
1317
|
+
'modeledScenarioOutcome.status',
|
|
1318
|
+
'modeledScenarioOutcome.value.basis',
|
|
1319
|
+
'modeledScenarioOutcome.value.netContributionCents',
|
|
1320
|
+
'modeledScenarioOutcome.value.netRevenueCents',
|
|
1321
|
+
'modeledScenarioOutcome.disclosure',
|
|
1322
|
+
'schemaVersion',
|
|
1323
|
+
'technicalPolicyVerdict.basis',
|
|
1324
|
+
'technicalPolicyVerdict.policyName',
|
|
1325
|
+
'technicalPolicyVerdict.replaceableDefault',
|
|
1326
|
+
'technicalPolicyVerdict.semanticDomain',
|
|
1327
|
+
'technicalPolicyVerdict.status',
|
|
1328
|
+
]),
|
|
1329
|
+
});
|
|
1330
|
+
|
|
1331
|
+
const RECEIPT_FIELDS_V9 = deepFreeze({
|
|
1332
|
+
...RECEIPT_FIELDS_V8,
|
|
1333
|
+
'meguro.shared-receipt.v2': stableFields([
|
|
1334
|
+
...RECEIPT_FIELDS_V8['meguro.shared-receipt.v2'],
|
|
1335
|
+
'expectedRefusals.assertions[].assertionKey',
|
|
1336
|
+
'expectedRefusals.assertions[].callSequences[]',
|
|
1337
|
+
'expectedRefusals.assertions[].correctionObserved',
|
|
1338
|
+
'expectedRefusals.assertions[].detail',
|
|
1339
|
+
'expectedRefusals.assertions[].operationName',
|
|
1340
|
+
'expectedRefusals.assertions[].status',
|
|
1341
|
+
'expectedRefusals.handledRejectedCallSequences[]',
|
|
1342
|
+
'expectedRefusals.schemaVersion',
|
|
1343
|
+
'expectedRefusals.summary.failed',
|
|
1344
|
+
'expectedRefusals.summary.matched',
|
|
1345
|
+
'expectedRefusals.summary.total',
|
|
1346
|
+
]),
|
|
1347
|
+
});
|
|
1348
|
+
|
|
1349
|
+
const RECEIPT_FIELDS_V10 = deepFreeze({
|
|
1350
|
+
...RECEIPT_FIELDS_V9,
|
|
1351
|
+
'meguro.shared-receipt.v2': stableFields([
|
|
1352
|
+
...RECEIPT_FIELDS_V9['meguro.shared-receipt.v2'],
|
|
1353
|
+
'counts.acceptedMutationCalls',
|
|
1354
|
+
'counts.appliedCommerceActions',
|
|
1355
|
+
'counts.idempotentReplays',
|
|
1356
|
+
'counts.rejectedMutationCalls',
|
|
1357
|
+
]),
|
|
1358
|
+
'meguro.hosted-impact-report.v1': stableFields([
|
|
1359
|
+
...RECEIPT_FIELDS_V9['meguro.hosted-impact-report.v1'],
|
|
1360
|
+
'footprint.acceptedMutationCalls',
|
|
1361
|
+
'footprint.appliedCommerceActions',
|
|
1362
|
+
'footprint.idempotentReplays',
|
|
1363
|
+
'footprint.rejectedMutationCalls',
|
|
1364
|
+
]),
|
|
1365
|
+
});
|
|
1366
|
+
|
|
1367
|
+
const RECEIPT_FIELDS_V11 = deepFreeze({
|
|
1368
|
+
...RECEIPT_FIELDS_V10,
|
|
1369
|
+
'meguro.shared-receipt.v2': stableFields([
|
|
1370
|
+
...RECEIPT_FIELDS_V10['meguro.shared-receipt.v2'],
|
|
1371
|
+
'changes[].delta',
|
|
1372
|
+
'changes[].entityType',
|
|
1373
|
+
'changes[].epistemic',
|
|
1374
|
+
'changes[].source',
|
|
1375
|
+
'changes[].unit',
|
|
1376
|
+
]),
|
|
1377
|
+
});
|
|
1378
|
+
|
|
1379
|
+
const TEMPLATE_EVENT_RESOLUTION_FIELDS = Object.freeze([
|
|
1380
|
+
'eventResolution.classification',
|
|
1381
|
+
'eventResolution.evaluationHorizonDays',
|
|
1382
|
+
'eventResolution.eventWindow.basis',
|
|
1383
|
+
'eventResolution.eventWindow.endDay',
|
|
1384
|
+
'eventResolution.eventWindow.key',
|
|
1385
|
+
'eventResolution.eventWindow.label',
|
|
1386
|
+
'eventResolution.eventWindow.startDay',
|
|
1387
|
+
'eventResolution.measuredHorizon.basis',
|
|
1388
|
+
'eventResolution.measuredHorizon.measuredDays',
|
|
1389
|
+
'eventResolution.measuredHorizon.plannedDays',
|
|
1390
|
+
'eventResolution.measuredHorizon.ranToPlannedEnd',
|
|
1391
|
+
'eventResolution.measuredHorizon.worldDays.fromDay',
|
|
1392
|
+
'eventResolution.measuredHorizon.worldDays.plannedToDay',
|
|
1393
|
+
'eventResolution.measuredHorizon.worldDays.toDay',
|
|
1394
|
+
'eventResolution.reason',
|
|
1395
|
+
'eventResolution.schemaVersion',
|
|
1396
|
+
'eventResolution.source.templateKey',
|
|
1397
|
+
'eventResolution.source.templateLabel',
|
|
1398
|
+
'eventResolution.source.templateRevision',
|
|
1399
|
+
'eventResolution.status',
|
|
1400
|
+
]);
|
|
1401
|
+
|
|
1402
|
+
const RECEIPT_FIELDS_V13 = deepFreeze({
|
|
1403
|
+
...RECEIPT_FIELDS_V11,
|
|
1404
|
+
'meguro.shared-receipt.v2': stableFields([
|
|
1405
|
+
...RECEIPT_FIELDS_V11['meguro.shared-receipt.v2'],
|
|
1406
|
+
...TEMPLATE_EVENT_RESOLUTION_FIELDS,
|
|
1407
|
+
]),
|
|
1408
|
+
'meguro.hosted-impact-report.v1': stableFields([
|
|
1409
|
+
...RECEIPT_FIELDS_V11['meguro.hosted-impact-report.v1']
|
|
1410
|
+
.filter((field) => !field.startsWith('eventResolution.events[]')),
|
|
1411
|
+
...TEMPLATE_EVENT_RESOLUTION_FIELDS,
|
|
1412
|
+
]),
|
|
1413
|
+
});
|
|
1414
|
+
|
|
728
1415
|
const FIELD_MEANINGS = Object.freeze({
|
|
729
1416
|
schemaVersion: 'Selects the immutable wire contract used to interpret the remaining fields.',
|
|
730
1417
|
evidenceContext: 'Carries the declared subject, attempt history, and world provenance without verifying a customer-declared build identity.',
|
|
@@ -976,6 +1663,20 @@ export const GATE_POLICY_V3_CHECKS = deepFreeze(GATE_POLICY_V1_CHECKS.map((check
|
|
|
976
1663
|
flip: absoluteGateVerdictFactText(check.flip),
|
|
977
1664
|
})));
|
|
978
1665
|
|
|
1666
|
+
// MEG-1204: the first check's only policy input, citation, threshold, and flip basis is
|
|
1667
|
+
// `facts.summary.failed`. Naming it for blocked writes and errors claimed two evidence kinds the
|
|
1668
|
+
// policy never reads; `facts.rows[].rejectedCalls` corroborates a failing row without deciding it.
|
|
1669
|
+
// Documentation versions 1 through 5 keep their original bytes under the earlier name.
|
|
1670
|
+
export const GATE_POLICY_V6_CHECKS = deepFreeze(GATE_POLICY_V3_CHECKS.map((check) => (
|
|
1671
|
+
check.name === 'blocked-write and error evidence'
|
|
1672
|
+
? {
|
|
1673
|
+
...check,
|
|
1674
|
+
name: 'failing receipt evidence',
|
|
1675
|
+
flip: 'a no-go flips only when later immutable receipt evidence establishes no failing receipt row, making facts.summary.failed = 0',
|
|
1676
|
+
}
|
|
1677
|
+
: { ...check }
|
|
1678
|
+
)));
|
|
1679
|
+
|
|
979
1680
|
const GATE_POLICY_TEXT = `# Meguro Gate policy v1
|
|
980
1681
|
|
|
981
1682
|
Published URI: \`${GATE_POLICY_URI}\`
|
|
@@ -1343,29 +2044,40 @@ ${REAL_STORE_HISTORY_LANE_BRIDGE}`,
|
|
|
1343
2044
|
'| What runs exist or what happened? | Call \`runs_list\` and the relevant status, report, or impact tool. |',
|
|
1344
2045
|
'| What practice runs exist or what happened? | Call \`practice_runs_list\` and the relevant \`practice_run_status\`, \`practice_run_report\`, or \`practice_run_impact\` tool. |',
|
|
1345
2046
|
);
|
|
1346
|
-
|
|
2047
|
+
function versionLabelsText(currency) {
|
|
2048
|
+
const indexUri = currency.currentUriByTopic.index;
|
|
2049
|
+
const gatePolicyUri = currency.currentUriByTopic['gate-policy'];
|
|
2050
|
+
return `## Three different version labels
|
|
1347
2051
|
|
|
1348
2052
|
- **Documentation resource version:** the trailing \`vN\` in an immutable \`meguro://docs/.../vN\`
|
|
1349
|
-
URI identifies that document's bytes. Read \`${
|
|
2053
|
+
URI identifies that document's bytes. Read \`${indexUri}\` for the current resource URI in
|
|
1350
2054
|
every documentation family.
|
|
1351
2055
|
- **Runtime Gate policy contract version:** \`meguro.release-gate-policy.v1\`, version \`1\`, identifies
|
|
1352
2056
|
the policy evaluated against receipt facts. The current explanatory documentation for that contract
|
|
1353
|
-
is \`${
|
|
2057
|
+
is \`${gatePolicyUri}\`; its documentation resource version is a separate number.
|
|
1354
2058
|
- **Requested Shopify Admin API version:** the version segment in an Admin request selects one of
|
|
1355
2059
|
${ADMIN_API_SUPPORTED_VERSIONS.map((version) => `\`${version}\``).join(' or ')}. The current default is
|
|
1356
2060
|
\`${ADMIN_API_DEFAULT_VERSION}\`; a caller may still request a supported non-default version, and the
|
|
1357
2061
|
resulting plan and evidence retain that requested value.`;
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
2062
|
+
}
|
|
2063
|
+
function deeperDocumentationText(currency) {
|
|
2064
|
+
const receiptGuideUri = currency.currentUriByTopic['receipt-guide'];
|
|
2065
|
+
const gatePolicyUri = currency.currentUriByTopic['gate-policy'];
|
|
2066
|
+
const indexUri = currency.currentUriByTopic.index;
|
|
2067
|
+
return `## Deeper in-band documentation
|
|
2068
|
+
|
|
2069
|
+
- Receipt interpretation: read \`${receiptGuideUri}\` or call
|
|
2070
|
+
\`docs_read({ topic: "receipt-guide", version: ${documentationVersionFromUri(receiptGuideUri)} })\`.
|
|
2071
|
+
- Gate policy: read \`${gatePolicyUri}\` or call
|
|
2072
|
+
\`docs_read({ topic: "gate-policy", version: ${documentationVersionFromUri(gatePolicyUri)} })\`.
|
|
2073
|
+
- Current-document pointers: read \`${indexUri}\` or call
|
|
2074
|
+
\`docs_read({ topic: "index", version: ${documentationVersionFromUri(indexUri)} })\`.
|
|
1366
2075
|
|
|
1367
2076
|
All published documentation resources are immutable. Cite the exact URI, version, and SHA-256
|
|
1368
2077
|
digest returned by Meguro.`;
|
|
2078
|
+
}
|
|
2079
|
+
const DOCUMENTATION_V4_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V4);
|
|
2080
|
+
const DOCUMENTATION_V4_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V4);
|
|
1369
2081
|
const GETTING_STARTED_V7_DEEPER_DOCUMENTATION_TEXT = `## Deeper in-band documentation
|
|
1370
2082
|
|
|
1371
2083
|
- Receipt interpretation: read \`${RECEIPT_GUIDE_URI}\` or
|
|
@@ -1404,8 +2116,8 @@ is absent when an effect-level action is declared.`;
|
|
|
1404
2116
|
const GETTING_STARTED_V8_TEXT = GETTING_STARTED_V7_TEXT
|
|
1405
2117
|
.replace('# Getting started with Meguro v7', '# Getting started with Meguro v8')
|
|
1406
2118
|
.replace(`Published URI: \`${GETTING_STARTED_V7_URI}\``, `Published URI: \`${GETTING_STARTED_V8_URI}\``)
|
|
1407
|
-
.replace(GETTING_STARTED_V7_DEEPER_DOCUMENTATION_TEXT,
|
|
1408
|
-
.replace('## Control and data planes', `${
|
|
2119
|
+
.replace(GETTING_STARTED_V7_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V4_DEEPER_DOCUMENTATION_TEXT)
|
|
2120
|
+
.replace('## Control and data planes', `${DOCUMENTATION_V4_VERSION_LABELS_TEXT}\n\n## Control and data planes`)
|
|
1409
2121
|
.replace('## Deeper in-band documentation', `${CIMD_TROUBLESHOOTING_TEXT}\n\n## Deeper in-band documentation`);
|
|
1410
2122
|
const PRODUCT_GUIDE_V5_TEXT = PRODUCT_GUIDE_V4_TEXT
|
|
1411
2123
|
.replace('# Meguro product guide v4', '# Meguro product guide v5')
|
|
@@ -1413,16 +2125,886 @@ const PRODUCT_GUIDE_V5_TEXT = PRODUCT_GUIDE_V4_TEXT
|
|
|
1413
2125
|
.replace(
|
|
1414
2126
|
`read
|
|
1415
2127
|
\`${RECEIPT_GUIDE_URI}\` or \`${RECEIPT_GUIDE_V2_URI}\`.`,
|
|
1416
|
-
`read \`${
|
|
2128
|
+
`read \`${DOCUMENTATION_CURRENCY_V4.currentUriByTopic['receipt-guide']}\`.`,
|
|
1417
2129
|
)
|
|
1418
|
-
.replaceAll(RECEIPT_GUIDE_URI,
|
|
1419
|
-
.replaceAll(RECEIPT_GUIDE_V2_URI,
|
|
1420
|
-
.replaceAll(GATE_POLICY_V2_URI,
|
|
1421
|
-
.replaceAll(GETTING_STARTED_V7_URI,
|
|
2130
|
+
.replaceAll(RECEIPT_GUIDE_URI, DOCUMENTATION_CURRENCY_V4.currentUriByTopic['receipt-guide'])
|
|
2131
|
+
.replaceAll(RECEIPT_GUIDE_V2_URI, DOCUMENTATION_CURRENCY_V4.currentUriByTopic['receipt-guide'])
|
|
2132
|
+
.replaceAll(GATE_POLICY_V2_URI, DOCUMENTATION_CURRENCY_V4.currentUriByTopic['gate-policy'])
|
|
2133
|
+
.replaceAll(GETTING_STARTED_V7_URI, DOCUMENTATION_CURRENCY_V4.currentUriByTopic['getting-started'])
|
|
1422
2134
|
.replace(
|
|
1423
2135
|
'## Stable concepts versus changing facts',
|
|
1424
|
-
`${
|
|
2136
|
+
`${DOCUMENTATION_V4_VERSION_LABELS_TEXT}\n\n${ASSERTION_FAMILY_EXERCISE_TEXT}\n\n${CHANNEL_ABSTRACTION_TEXT}\n\n## Stable concepts versus changing facts`,
|
|
2137
|
+
);
|
|
2138
|
+
const RUN_RESULT_DIMENSIONS_GUIDANCE_TEXT = `## Four independent run-result dimensions
|
|
2139
|
+
|
|
2140
|
+
Read \`resultSemantics\` as four independent answers. There is no overall run status, and one
|
|
2141
|
+
dimension never changes the meaning of another:
|
|
2142
|
+
|
|
2143
|
+
1. \`lifecycle\` says whether the run prepared, ran, completed, failed, or expired.
|
|
2144
|
+
2. \`evidenceAssertions\` reports the bounded named assertions that passed, failed, or were not
|
|
2145
|
+
available; read \`coverage\` and \`namedFailures\` for the exact scope.
|
|
2146
|
+
3. \`technicalPolicyVerdict\` reports the replaceable technical policy applied to the recorded
|
|
2147
|
+
evidence. It is not the modeled economic result or a release decision.
|
|
2148
|
+
4. \`modeledScenarioOutcome\` reports the treated-minus-untreated comparison inside Meguro's
|
|
2149
|
+
declared practice-world assumptions. Present its supplied \`statement\` unchanged—for example,
|
|
2150
|
+
“Modeled scenario outcome: net contribution was +$327.60 versus the untreated reference world.”
|
|
2151
|
+
|
|
2152
|
+
Never describe \`modeledScenarioOutcome\` as EARNED, COST, successful, passed, or failed. It is not
|
|
2153
|
+
a compatibility, Gate, release-safety, live-market, merchant-result, or future-performance claim.
|
|
2154
|
+
Unknown or unavailable dimensions stay explicit; do not infer them from another dimension.
|
|
2155
|
+
|
|
2156
|
+
The older \`summary.status\`, \`defaultVerdict.status\`, \`verdict\`, and
|
|
2157
|
+
\`measurement.headline\` fields remain only for wire compatibility. Do not use those legacy fields
|
|
2158
|
+
as an overall result or as current language for an agent, customer, or generated headline.`;
|
|
2159
|
+
const EXPECTED_REFUSAL_GUIDANCE_TEXT = `## Expected-refusal assertions
|
|
2160
|
+
|
|
2161
|
+
An expected refusal changes classification only when the authenticated run owner records an exact
|
|
2162
|
+
assertion plan before the relevant call. Each declaration binds the run, store, attempt, raw
|
|
2163
|
+
call-sequence boundary, exact mutation operation, optional target or request fingerprint,
|
|
2164
|
+
allowlisted rejection reason, responsible layer, and attempt budget. Documentation prose,
|
|
2165
|
+
operation naming, a generic error class, or a later explanation never declares intent.
|
|
2166
|
+
|
|
2167
|
+
Read the server-emitted \`expectedRefusals.assertions[]\` result; do not infer a second result in a
|
|
2168
|
+
client or renderer. A \`matched\` refusal remains a rejected call in the raw ledger, footprint, and
|
|
2169
|
+
timeline, while \`handledRejectedCallSequences[]\` records why the technical default and Gate do not
|
|
2170
|
+
count it as an unhandled rejection. \`unexpectedly-accepted\`, \`wrong-reason\`, \`wrong-layer\`,
|
|
2171
|
+
\`missing\`, \`excess-attempts\`, and \`invalid-late-declaration\` fail the assertion. An undeclared
|
|
2172
|
+
rejection keeps its existing unhandled behavior.`;
|
|
2173
|
+
const DOCUMENTATION_V5_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V5);
|
|
2174
|
+
const DOCUMENTATION_V5_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V5);
|
|
2175
|
+
const GETTING_STARTED_V9_TEXT = GETTING_STARTED_V8_TEXT
|
|
2176
|
+
.replace('# Getting started with Meguro v8', '# Getting started with Meguro v9')
|
|
2177
|
+
.replace(`Published URI: \`${GETTING_STARTED_V8_URI}\``, `Published URI: \`${GETTING_STARTED_V9_URI}\``)
|
|
2178
|
+
.replace(DOCUMENTATION_V4_VERSION_LABELS_TEXT, DOCUMENTATION_V5_VERSION_LABELS_TEXT)
|
|
2179
|
+
.replace(DOCUMENTATION_V4_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V5_DEEPER_DOCUMENTATION_TEXT)
|
|
2180
|
+
.replace('## Deeper in-band documentation', `${RUN_RESULT_DIMENSIONS_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2181
|
+
const PRODUCT_GUIDE_V6_TEXT = PRODUCT_GUIDE_V5_TEXT
|
|
2182
|
+
.replace('# Meguro product guide v5', '# Meguro product guide v6')
|
|
2183
|
+
.replace(`Published URI: \`${PRODUCT_GUIDE_V5_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V6_URI}\``)
|
|
2184
|
+
.replace(DOCUMENTATION_V4_VERSION_LABELS_TEXT, DOCUMENTATION_V5_VERSION_LABELS_TEXT)
|
|
2185
|
+
.replaceAll(RECEIPT_GUIDE_V7_URI, RECEIPT_GUIDE_V8_URI)
|
|
2186
|
+
.replaceAll(GETTING_STARTED_V8_URI, GETTING_STARTED_V9_URI)
|
|
2187
|
+
.replaceAll(DOCUMENTATION_INDEX_V4_URI, DOCUMENTATION_INDEX_V5_URI)
|
|
2188
|
+
.replace('## Stable concepts versus changing facts', `${RUN_RESULT_DIMENSIONS_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2189
|
+
const DOCUMENTATION_V6_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V6);
|
|
2190
|
+
const DOCUMENTATION_V6_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V6);
|
|
2191
|
+
const GETTING_STARTED_V10_TEXT = GETTING_STARTED_V9_TEXT
|
|
2192
|
+
.replace('# Getting started with Meguro v9', '# Getting started with Meguro v10')
|
|
2193
|
+
.replace(`Published URI: \`${GETTING_STARTED_V9_URI}\``, `Published URI: \`${GETTING_STARTED_V10_URI}\``)
|
|
2194
|
+
.replace(DOCUMENTATION_V5_VERSION_LABELS_TEXT, DOCUMENTATION_V6_VERSION_LABELS_TEXT)
|
|
2195
|
+
.replace(DOCUMENTATION_V5_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V6_DEEPER_DOCUMENTATION_TEXT)
|
|
2196
|
+
.replace('## Deeper in-band documentation', `${EXPECTED_REFUSAL_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2197
|
+
const PRODUCT_GUIDE_V7_TEXT = PRODUCT_GUIDE_V6_TEXT
|
|
2198
|
+
.replace('# Meguro product guide v6', '# Meguro product guide v7')
|
|
2199
|
+
.replace(`Published URI: \`${PRODUCT_GUIDE_V6_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V7_URI}\``)
|
|
2200
|
+
.replace(DOCUMENTATION_V5_VERSION_LABELS_TEXT, DOCUMENTATION_V6_VERSION_LABELS_TEXT)
|
|
2201
|
+
.replaceAll(RECEIPT_GUIDE_V8_URI, RECEIPT_GUIDE_V9_URI)
|
|
2202
|
+
.replaceAll(GETTING_STARTED_V9_URI, GETTING_STARTED_V10_URI)
|
|
2203
|
+
.replaceAll(DOCUMENTATION_INDEX_V5_URI, DOCUMENTATION_INDEX_V6_URI)
|
|
2204
|
+
.replace('## Stable concepts versus changing facts', `${EXPECTED_REFUSAL_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2205
|
+
const PER_STORE_HISTORY_GUIDANCE_TEXT = `## Begin with live store facts
|
|
2206
|
+
|
|
2207
|
+
Each practice store's history span is a live per-store fact. Before choosing a run, call
|
|
2208
|
+
\`stores_list({})\` and read \`stores[].historySpan.days\` on the selected row. For the exact Store Passport,
|
|
2209
|
+
call \`store_passport({ storeId })\` and read \`historySpan.historyDays\`. A finished receipt carries
|
|
2210
|
+
the run's starting provenance at \`worldProvenance.warmupSpan.days\`. Use the exact live value for
|
|
2211
|
+
the selected store; never infer history from a template name, store label, tier, or another store.
|
|
2212
|
+
|
|
2213
|
+
An ordinary newly created practice store from \`store_create\` currently begins with zero history.
|
|
2214
|
+
Zero history is a planning fact, not a defect: choose a scenario that does not require pre-existing
|
|
2215
|
+
events, or select a store whose live provenance reports enough history for the intended evaluation.
|
|
2216
|
+
The server-owned seeded sample is a distinct provisioning lane and currently reports 90 days. That
|
|
2217
|
+
is today's sample fact, not a universal promise: never assume a future sample has 90 days; read its
|
|
2218
|
+
live provenance.
|
|
2219
|
+
|
|
2220
|
+
A tier \`historyDays\` value does not authorize nonzero warmup for an ordinary store. Ordinary-store
|
|
2221
|
+
warmup remains unchanged and requires a separate founder-signed amendment.
|
|
2222
|
+
|
|
2223
|
+
When a run drives or schedules Store time, the selected store moves through Store days; between runs,
|
|
2224
|
+
its Store time stays frozen. The receipt is the store's memory of that run: recorded API behavior,
|
|
2225
|
+
accepted and rejected changes, and the bounded evidence earned inside the declared world.
|
|
2226
|
+
|
|
2227
|
+
Practice results do not prove live-market demand, future revenue, production performance, or live
|
|
2228
|
+
Shopify acceptance. Live-platform claims require the relevant real-platform or Shopify Exam evidence;
|
|
2229
|
+
never infer them from practice compatibility or modeled outcomes.`;
|
|
2230
|
+
const DOCUMENTATION_V7_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V7);
|
|
2231
|
+
const DOCUMENTATION_V7_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V7);
|
|
2232
|
+
const GETTING_STARTED_V11_TEXT = GETTING_STARTED_V10_TEXT
|
|
2233
|
+
.replace('# Getting started with Meguro v10', '# Getting started with Meguro v11')
|
|
2234
|
+
.replace(`Published URI: \`${GETTING_STARTED_V10_URI}\``, `Published URI: \`${GETTING_STARTED_V11_URI}\``)
|
|
2235
|
+
.replace(DOCUMENTATION_V6_VERSION_LABELS_TEXT, DOCUMENTATION_V7_VERSION_LABELS_TEXT)
|
|
2236
|
+
.replace(DOCUMENTATION_V6_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V7_DEEPER_DOCUMENTATION_TEXT)
|
|
2237
|
+
.replace(/## Begin with the world\n\n[\s\S]*?\n\n## Identities/u, `${PER_STORE_HISTORY_GUIDANCE_TEXT}\n\n## Identities`)
|
|
2238
|
+
.replace(
|
|
2239
|
+
`2. Call \`stores_list()\`; reuse an owned practice store or call
|
|
2240
|
+
\`store_create({ templateKey })\` with a key returned by \`templates_list\`.`,
|
|
2241
|
+
`2. Call \`stores_list()\`; reuse an owned practice store or call
|
|
2242
|
+
\`store_create({ templateKey })\` with a key returned by \`templates_list\`. Before choosing a run,
|
|
2243
|
+
read \`stores[].historySpan.days\` on the selected row; when you need the exact passport value, call
|
|
2244
|
+
\`store_passport({ storeId })\` and read \`historySpan.historyDays\`.`,
|
|
2245
|
+
);
|
|
2246
|
+
const ADMIN_RECIPE_DISCOVERY_GUIDANCE_TEXT = `## Discover Admin recipes before lookup
|
|
2247
|
+
|
|
2248
|
+
Call \`admin_recipes_list({})\` to enumerate every canonical Admin recipe before choosing one. Each row
|
|
2249
|
+
contains a stable \`id\`, operation name, purpose, confirmation requirement, and authored aliases and
|
|
2250
|
+
keywords. Then call \`admin_schema({ lookup: "recipe", name: "<id>" })\` with the selected stable id.
|
|
2251
|
+
|
|
2252
|
+
If \`admin_schema\` returns a recipe miss, follow its bounded \`teaching.nextCall\` exactly. The teaching
|
|
2253
|
+
payload contains only canonical recipe ids and authored aliases or keywords; it never guesses a semantic
|
|
2254
|
+
match or runs \`admin_probe\`.`;
|
|
2255
|
+
const DOCUMENTATION_V8_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V8);
|
|
2256
|
+
const DOCUMENTATION_V8_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V8);
|
|
2257
|
+
const GETTING_STARTED_V12_TEXT = GETTING_STARTED_V11_TEXT
|
|
2258
|
+
.replace('# Getting started with Meguro v11', '# Getting started with Meguro v12')
|
|
2259
|
+
.replace(`Published URI: \`${GETTING_STARTED_V11_URI}\``, `Published URI: \`${GETTING_STARTED_V12_URI}\``)
|
|
2260
|
+
.replace(DOCUMENTATION_V7_VERSION_LABELS_TEXT, DOCUMENTATION_V8_VERSION_LABELS_TEXT)
|
|
2261
|
+
.replace(DOCUMENTATION_V7_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V8_DEEPER_DOCUMENTATION_TEXT)
|
|
2262
|
+
.replace('## Identities', `${ADMIN_RECIPE_DISCOVERY_GUIDANCE_TEXT}\n\n## Identities`);
|
|
2263
|
+
const PRODUCT_GUIDE_V8_TEXT = PRODUCT_GUIDE_V7_TEXT
|
|
2264
|
+
.replace('# Meguro product guide v7', '# Meguro product guide v8')
|
|
2265
|
+
.replace(`Published URI: \`${PRODUCT_GUIDE_V7_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V8_URI}\``)
|
|
2266
|
+
.replace(DOCUMENTATION_V6_VERSION_LABELS_TEXT, DOCUMENTATION_V7_VERSION_LABELS_TEXT)
|
|
2267
|
+
.replaceAll(GETTING_STARTED_V10_URI, GETTING_STARTED_V11_URI)
|
|
2268
|
+
.replaceAll(DOCUMENTATION_INDEX_V6_URI, DOCUMENTATION_INDEX_V7_URI)
|
|
2269
|
+
.replace(/## Begin with the world\n\n[\s\S]*?\n\n## Core nouns/u, `${PER_STORE_HISTORY_GUIDANCE_TEXT}\n\n## Core nouns`)
|
|
2270
|
+
.replace(
|
|
2271
|
+
'| What stores exist? | Call \`stores_list\`. |',
|
|
2272
|
+
`| What stores exist? | Call \`stores_list\`. |
|
|
2273
|
+
| How much history does this store have? | Before selecting a run, read \`stores[].historySpan.days\` from \`stores_list\`, or call \`store_passport({ storeId })\` and read \`historySpan.historyDays\`; use receipt \`worldProvenance.warmupSpan.days\` for the run's recorded starting provenance. |`,
|
|
2274
|
+
);
|
|
2275
|
+
const PRODUCT_GUIDE_V9_TEXT = PRODUCT_GUIDE_V8_TEXT
|
|
2276
|
+
.replace('# Meguro product guide v8', '# Meguro product guide v9')
|
|
2277
|
+
.replace(`Published URI: \`${PRODUCT_GUIDE_V8_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V9_URI}\``)
|
|
2278
|
+
.replace(DOCUMENTATION_V7_VERSION_LABELS_TEXT, DOCUMENTATION_V8_VERSION_LABELS_TEXT)
|
|
2279
|
+
.replaceAll(GETTING_STARTED_V11_URI, GETTING_STARTED_V12_URI)
|
|
2280
|
+
.replaceAll(DOCUMENTATION_INDEX_V7_URI, DOCUMENTATION_INDEX_V8_URI)
|
|
2281
|
+
.replace('## Core nouns', `${ADMIN_RECIPE_DISCOVERY_GUIDANCE_TEXT}\n\n## Core nouns`);
|
|
2282
|
+
const ADMIN_EXECUTION_PREFLIGHT_GUIDANCE_TEXT = `## Execute Admin calls without teaching rejections
|
|
2283
|
+
|
|
2284
|
+
Call \`get_connection_details({ storeId })\` and follow its structured
|
|
2285
|
+
\`adminExecutionGuide\`. Authentication has two separate lanes:
|
|
2286
|
+
|
|
2287
|
+
- Hosted OAuth authenticates hosted MCP/control-plane calls. The public STDIO package uses its
|
|
2288
|
+
workspace-bound account API key for the same control plane.
|
|
2289
|
+
- Shopify-shaped Admin data-plane calls use the returned Admin URL and the returned per-store token
|
|
2290
|
+
as the \`X-Shopify-Access-Token\` header value. Examples use
|
|
2291
|
+
\`<SHOPIFY_ADMIN_ACCESS_TOKEN>\`; never place the returned value in docs, model/chat logs, or errors.
|
|
2292
|
+
An OAuth bearer is not an Admin data-plane credential.
|
|
2293
|
+
|
|
2294
|
+
The guide derives the current run state and cursors from the selected store. Follow its executable
|
|
2295
|
+
sequence: discover/create/select a store; start or confirm a \`running\` run; use
|
|
2296
|
+
\`admin_recipes_list\` and \`admin_schema\` to perform the exact required read/preflight; submit one
|
|
2297
|
+
bounded mutation; independently read back; then finish and inspect the run and receipt. A missing,
|
|
2298
|
+
provisioning, or terminal run is not write-ready; follow \`validNextCalls\` instead of sending a
|
|
2299
|
+
mutation.
|
|
2300
|
+
|
|
2301
|
+
For recipe and mutation lookups, read \`match.executionRequirements\`. It publishes a stable
|
|
2302
|
+
\`reasonCode\`, \`requiredState\`, and \`validNextCalls\`. Only
|
|
2303
|
+
\`inventoryAdjustQuantities\` requires the facade's prior per-location available-quantity read and
|
|
2304
|
+
places that observation in \`input.changes[].changeFromQuantity\`; a stale value continues to return
|
|
2305
|
+
\`COMPARE_QUANTITY_STALE\` and must be followed by a fresh read. Do not infer that read-before-write
|
|
2306
|
+
rule for unrelated mutations. Apply the published \`readBeforeWrite.bindings\` for the returned inventory
|
|
2307
|
+
item ID, location ID, and available quantity before using the mutation example.
|
|
2308
|
+
|
|
2309
|
+
For Admin GraphQL \`${ADMIN_API_SUPPORTED_VERSIONS.join(' and ')}\`, only
|
|
2310
|
+
\`inventoryAdjustQuantities\` and \`refundCreate\` require
|
|
2311
|
+
\`@idempotent(key: String!)\`. Place \`@idempotent(key: $idempotencyKey)\` exactly once on the single
|
|
2312
|
+
supported mutation root field. The resolved key must be a non-empty string no larger than 256 bytes.
|
|
2313
|
+
Use the authority-derived example when present; unrelated roots must not receive this directive.
|
|
2314
|
+
Malformed GraphQL and stale-cursor/concurrency responses retain their existing specific behavior.`;
|
|
2315
|
+
const DOCUMENTATION_V9_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V9);
|
|
2316
|
+
const DOCUMENTATION_V9_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V9);
|
|
2317
|
+
const GETTING_STARTED_V13_TEXT = GETTING_STARTED_V12_TEXT
|
|
2318
|
+
.replace('# Getting started with Meguro v12', '# Getting started with Meguro v13')
|
|
2319
|
+
.replace(`Published URI: \`${GETTING_STARTED_V12_URI}\``, `Published URI: \`${GETTING_STARTED_V13_URI}\``)
|
|
2320
|
+
.replace(DOCUMENTATION_V8_VERSION_LABELS_TEXT, DOCUMENTATION_V9_VERSION_LABELS_TEXT)
|
|
2321
|
+
.replace(DOCUMENTATION_V8_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V9_DEEPER_DOCUMENTATION_TEXT)
|
|
2322
|
+
.replace('## Identities', `${ADMIN_EXECUTION_PREFLIGHT_GUIDANCE_TEXT}\n\n## Identities`);
|
|
2323
|
+
const PRODUCT_GUIDE_V10_TEXT = PRODUCT_GUIDE_V9_TEXT
|
|
2324
|
+
.replace('# Meguro product guide v9', '# Meguro product guide v10')
|
|
2325
|
+
.replace(`Published URI: \`${PRODUCT_GUIDE_V9_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V10_URI}\``)
|
|
2326
|
+
.replace(DOCUMENTATION_V8_VERSION_LABELS_TEXT, DOCUMENTATION_V9_VERSION_LABELS_TEXT)
|
|
2327
|
+
.replaceAll(GETTING_STARTED_V12_URI, GETTING_STARTED_V13_URI)
|
|
2328
|
+
.replaceAll(DOCUMENTATION_INDEX_V8_URI, DOCUMENTATION_INDEX_V9_URI)
|
|
2329
|
+
.replace('## Core nouns', `${ADMIN_EXECUTION_PREFLIGHT_GUIDANCE_TEXT}\n\n## Core nouns`);
|
|
2330
|
+
// MEG-889: the superseded sentence, and the one newly minted current documents carry instead.
|
|
2331
|
+
// Prior documents keep the bytes they published; the correction only moves forward.
|
|
2332
|
+
const STALE_COMPARE_QUANTITY_SUPERSEDED_TEXT = 'a stale value continues to return\n`COMPARE_QUANTITY_STALE` and must be followed by a fresh read.';
|
|
2333
|
+
const STALE_CHANGE_FROM_QUANTITY_TEXT = 'a stale value returns\n`CHANGE_FROM_QUANTITY_STALE` and must be followed by a fresh read. That refusal is\nattributed to your request, not to a modeled store rule, so predeclare it with the exact\n`readBeforeWrite.staleCursorExpectedRefusal` facts rather than restating a reason or a layer.';
|
|
2334
|
+
|
|
2335
|
+
const PRACTICE_RUN_LIFECYCLE_GUIDANCE_TEXT = `## Practice-run state, evidence, and terminal confirmation
|
|
2336
|
+
|
|
2337
|
+
Every \`practice_run_start\` and \`practice_run_status\` response carries one machine-readable
|
|
2338
|
+
\`lifecycleContract\`; \`practice_run_advance\` follows that same authority. Accepted writes are
|
|
2339
|
+
attempt-local and disposable. Their actions are retained in the immutable receipt and Impact
|
|
2340
|
+
evidence, while the ordinary practice store returns to its scenario baseline after conclusion.
|
|
2341
|
+
Terminal reads remain available for inspection, and terminal writes are refused.
|
|
2342
|
+
|
|
2343
|
+
An ordinary conclusion is metered exactly once. The server-owned auto-provisioned sample run
|
|
2344
|
+
is exempt under its explicit provisioned-sample classification; do not infer that exemption for an
|
|
2345
|
+
ordinary store or run.
|
|
2346
|
+
|
|
2347
|
+
Before each advance, call \`practice_run_status\` and copy both current cursors. A preterminal
|
|
2348
|
+
advance behaves normally. If the requested target reaches or crosses \`endDay\`, Meguro refuses
|
|
2349
|
+
without moving Store time and returns the current Store day, requested target, \`endDay\`, the
|
|
2350
|
+
consequence (conclude the attempt and close its write lane), and an exact retry. Retry that exact
|
|
2351
|
+
shape with \`confirmConclusion: true\` only when you intend to conclude. The confirmed request is
|
|
2352
|
+
idempotent: the run concludes, the terminal lock is written, and ordinary metering settles exactly
|
|
2353
|
+
once.`;
|
|
2354
|
+
const DOCUMENTATION_V10_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V10);
|
|
2355
|
+
const DOCUMENTATION_V10_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V10);
|
|
2356
|
+
const GETTING_STARTED_V14_TEXT = GETTING_STARTED_V13_TEXT
|
|
2357
|
+
.replace('# Getting started with Meguro v13', '# Getting started with Meguro v14')
|
|
2358
|
+
.replace(`Published URI: \`${GETTING_STARTED_V13_URI}\``, `Published URI: \`${GETTING_STARTED_V14_URI}\``)
|
|
2359
|
+
.replace(DOCUMENTATION_V9_VERSION_LABELS_TEXT, DOCUMENTATION_V10_VERSION_LABELS_TEXT)
|
|
2360
|
+
.replace(DOCUMENTATION_V9_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V10_DEEPER_DOCUMENTATION_TEXT)
|
|
2361
|
+
.replace('## Identities', `${PRACTICE_RUN_LIFECYCLE_GUIDANCE_TEXT}\n\n## Identities`);
|
|
2362
|
+
const PRODUCT_GUIDE_V11_TEXT = PRODUCT_GUIDE_V10_TEXT
|
|
2363
|
+
.replace('# Meguro product guide v10', '# Meguro product guide v11')
|
|
2364
|
+
.replace(`Published URI: \`${PRODUCT_GUIDE_V10_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V11_URI}\``)
|
|
2365
|
+
.replace(DOCUMENTATION_V9_VERSION_LABELS_TEXT, DOCUMENTATION_V10_VERSION_LABELS_TEXT)
|
|
2366
|
+
.replaceAll(GETTING_STARTED_V13_URI, GETTING_STARTED_V14_URI)
|
|
2367
|
+
.replaceAll(DOCUMENTATION_INDEX_V9_URI, DOCUMENTATION_INDEX_V10_URI)
|
|
2368
|
+
.replace('## Core nouns', `${PRACTICE_RUN_LIFECYCLE_GUIDANCE_TEXT}\n\n## Core nouns`);
|
|
2369
|
+
const HOSTED_OAUTH_AUTHORITY_LIFECYCLE_GUIDANCE_TEXT = `## Hosted OAuth: one lifecycle, two authorities
|
|
2370
|
+
|
|
2371
|
+
A hosted connection has two independent authorities. Meguro stores the server grant and refresh
|
|
2372
|
+
family; the MCP client separately stores its local connection and token cache. The account-entry and
|
|
2373
|
+
authorization-management URLs supplied by \`initialize\` come from the configured Console origin.
|
|
2374
|
+
Meguro cannot erase client-local state, and a client cannot revoke a server grant merely by deleting
|
|
2375
|
+
its local connection.
|
|
2376
|
+
|
|
2377
|
+
1. **First connect.** The human opens the supplied account entry, signs in or creates an account,
|
|
2378
|
+
and approves browser consent. Each approval creates a fresh random server grant.
|
|
2379
|
+
2. **Normal expiry.** The client refreshes its access token while that server grant remains active.
|
|
2380
|
+
3. **Missing scope.** Reconnect or reauthorize. Fresh consent creates a new grant with the requested
|
|
2381
|
+
scopes; an existing grant's scopes never mutate.
|
|
2382
|
+
4. **Console Revoke.** Revoking the grant stops refresh immediately. An already-issued access token
|
|
2383
|
+
may remain valid for up to 15 minutes.
|
|
2384
|
+
5. **Client Disconnect/Remove.** Removing the connection clears client-local configuration and token
|
|
2385
|
+
state. That does not revoke the server grant; inspect or revoke it separately in Console.
|
|
2386
|
+
6. **Reconnect/Re-add.** Browser consent runs again and creates a fresh grant. Older grants may
|
|
2387
|
+
remain active until they are revoked separately.
|
|
2388
|
+
7. **Claude Code \`401 invalid_token\`.** Remove the stored Meguro server entry and re-add it; the
|
|
2389
|
+
affected client can retain an expired token, so logout/login is not sufficient recovery.`;
|
|
2390
|
+
const DOCUMENTATION_V11_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V11);
|
|
2391
|
+
const DOCUMENTATION_V11_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V11);
|
|
2392
|
+
const GETTING_STARTED_V15_TEXT = GETTING_STARTED_V14_TEXT
|
|
2393
|
+
.replace('# Getting started with Meguro v14', '# Getting started with Meguro v15')
|
|
2394
|
+
.replace(`Published URI: \`${GETTING_STARTED_V14_URI}\``, `Published URI: \`${GETTING_STARTED_V15_URI}\``)
|
|
2395
|
+
.replace(DOCUMENTATION_V10_VERSION_LABELS_TEXT, DOCUMENTATION_V11_VERSION_LABELS_TEXT)
|
|
2396
|
+
.replace(DOCUMENTATION_V10_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V11_DEEPER_DOCUMENTATION_TEXT)
|
|
2397
|
+
.replace(CIMD_TROUBLESHOOTING_TEXT, HOSTED_OAUTH_AUTHORITY_LIFECYCLE_GUIDANCE_TEXT);
|
|
2398
|
+
const PRODUCT_GUIDE_V12_TEXT = PRODUCT_GUIDE_V11_TEXT
|
|
2399
|
+
.replace('# Meguro product guide v11', '# Meguro product guide v12')
|
|
2400
|
+
.replace(`Published URI: \`${PRODUCT_GUIDE_V11_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V12_URI}\``)
|
|
2401
|
+
.replace(DOCUMENTATION_V10_VERSION_LABELS_TEXT, DOCUMENTATION_V11_VERSION_LABELS_TEXT)
|
|
2402
|
+
.replaceAll(GETTING_STARTED_V14_URI, GETTING_STARTED_V15_URI)
|
|
2403
|
+
.replaceAll(DOCUMENTATION_INDEX_V10_URI, DOCUMENTATION_INDEX_V11_URI)
|
|
2404
|
+
.replace('## Core nouns', `${HOSTED_OAUTH_AUTHORITY_LIFECYCLE_GUIDANCE_TEXT}\n\n## Core nouns`);
|
|
2405
|
+
const RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT = `## Return resolution and evidence accounting
|
|
2406
|
+
|
|
2407
|
+
Return approval records policy approval only; it has no refund or store-credit economics.
|
|
2408
|
+
Return-linked cash is an explicit idempotent \`returnRefund(returnRefundInput:)\` resolution. Ordinary
|
|
2409
|
+
order cash and store credit are \`refundCreate(input:)\` resolutions; \`RefundInput.note\` is opaque
|
|
2410
|
+
customer text and never selects or changes a Return. The two financial resolutions are
|
|
2411
|
+
mutually exclusive for one return.
|
|
2412
|
+
|
|
2413
|
+
Receipt and Impact footprints keep four distinct counts. \`acceptedMutationCalls\` counts accepted
|
|
2414
|
+
mutation invocations, including safe idempotent replays. \`rejectedMutationCalls\` counts refused
|
|
2415
|
+
mutation invocations. \`idempotentReplays\` is the accepted-call subset that reused an existing result.
|
|
2416
|
+
\`appliedCommerceActions\` counts modeled commerce actions actually applied, so it excludes refused
|
|
2417
|
+
calls and replays. Read the resolution-specific change or effect line for the exact dollar economics.`;
|
|
2418
|
+
const DOCUMENTATION_V12_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V12);
|
|
2419
|
+
const DOCUMENTATION_V12_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V12);
|
|
2420
|
+
const GETTING_STARTED_V16_TEXT = GETTING_STARTED_V15_TEXT
|
|
2421
|
+
.replace('# Getting started with Meguro v15', '# Getting started with Meguro v16')
|
|
2422
|
+
.replace('Published URI: `' + GETTING_STARTED_V15_URI + '`', 'Published URI: `' + GETTING_STARTED_V16_URI + '`')
|
|
2423
|
+
.replace(DOCUMENTATION_V11_VERSION_LABELS_TEXT, DOCUMENTATION_V12_VERSION_LABELS_TEXT)
|
|
2424
|
+
.replace(DOCUMENTATION_V11_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V12_DEEPER_DOCUMENTATION_TEXT)
|
|
2425
|
+
.replace('## Identities', `${RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT}\n\n## Identities`);
|
|
2426
|
+
const PRODUCT_GUIDE_V13_TEXT = PRODUCT_GUIDE_V12_TEXT
|
|
2427
|
+
.replace('# Meguro product guide v12', '# Meguro product guide v13')
|
|
2428
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V12_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V13_URI + '`')
|
|
2429
|
+
.replace(DOCUMENTATION_V11_VERSION_LABELS_TEXT, DOCUMENTATION_V12_VERSION_LABELS_TEXT)
|
|
2430
|
+
.replaceAll(RECEIPT_GUIDE_V9_URI, RECEIPT_GUIDE_V10_URI)
|
|
2431
|
+
.replaceAll(GETTING_STARTED_V15_URI, GETTING_STARTED_V16_URI)
|
|
2432
|
+
.replaceAll(DOCUMENTATION_INDEX_V11_URI, DOCUMENTATION_INDEX_V12_URI)
|
|
2433
|
+
.replace('## Core nouns', `${RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT}\n\n## Core nouns`);
|
|
2434
|
+
const SUPERSEDED_IDEMPOTENCY_REQUIREMENTS_TEXT = `For Admin GraphQL \`${ADMIN_API_SUPPORTED_VERSIONS.join(' and ')}\`, only
|
|
2435
|
+
\`inventoryAdjustQuantities\` and \`refundCreate\` require
|
|
2436
|
+
\`@idempotent(key: String!)\`. Place \`@idempotent(key: $idempotencyKey)\` exactly once on the single
|
|
2437
|
+
supported mutation root field. The resolved key must be a non-empty string no larger than 256 bytes.
|
|
2438
|
+
Use the authority-derived example when present; unrelated roots must not receive this directive.`;
|
|
2439
|
+
const CURRENT_IDEMPOTENCY_REQUIREMENTS_TEXT = `For Admin GraphQL \`${ADMIN_API_SUPPORTED_VERSIONS.join(' and ')}\`, the authoritative set is:
|
|
2440
|
+
\`inventoryAdjustQuantities\`, \`refundCreate\`, and the store-credit \`returnRefund\` branch require
|
|
2441
|
+
\`@idempotent(key: String!)\`. Place \`@idempotent(key: $idempotencyKey)\` exactly once on the single
|
|
2442
|
+
supported mutation root field. The resolved key must be a non-empty string no larger than 256 bytes.
|
|
2443
|
+
Use the authority-derived example when present; unrelated roots and non-store-credit
|
|
2444
|
+
\`returnRefund\` branches must not receive this directive.`;
|
|
2445
|
+
const DOCUMENTATION_V13_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V13);
|
|
2446
|
+
const DOCUMENTATION_V13_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V13);
|
|
2447
|
+
const GETTING_STARTED_V17_TEXT = GETTING_STARTED_V16_TEXT
|
|
2448
|
+
.replace('# Getting started with Meguro v16', '# Getting started with Meguro v17')
|
|
2449
|
+
.replace('Published URI: `' + GETTING_STARTED_V16_URI + '`', 'Published URI: `' + GETTING_STARTED_V17_URI + '`')
|
|
2450
|
+
.replace(DOCUMENTATION_V12_VERSION_LABELS_TEXT, DOCUMENTATION_V13_VERSION_LABELS_TEXT)
|
|
2451
|
+
.replace(DOCUMENTATION_V12_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V13_DEEPER_DOCUMENTATION_TEXT)
|
|
2452
|
+
.replace(SUPERSEDED_IDEMPOTENCY_REQUIREMENTS_TEXT, CURRENT_IDEMPOTENCY_REQUIREMENTS_TEXT);
|
|
2453
|
+
const PRODUCT_GUIDE_V14_TEXT = PRODUCT_GUIDE_V13_TEXT
|
|
2454
|
+
.replace('# Meguro product guide v13', '# Meguro product guide v14')
|
|
2455
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V13_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V14_URI + '`')
|
|
2456
|
+
.replace(DOCUMENTATION_V12_VERSION_LABELS_TEXT, DOCUMENTATION_V13_VERSION_LABELS_TEXT)
|
|
2457
|
+
.replaceAll(GETTING_STARTED_V16_URI, GETTING_STARTED_V17_URI)
|
|
2458
|
+
.replaceAll(DOCUMENTATION_INDEX_V12_URI, DOCUMENTATION_INDEX_V13_URI)
|
|
2459
|
+
.replace(SUPERSEDED_IDEMPOTENCY_REQUIREMENTS_TEXT, CURRENT_IDEMPOTENCY_REQUIREMENTS_TEXT);
|
|
2460
|
+
const ZERO_PRIOR_KNOWLEDGE_GUIDANCE_TEXT = `## Start here: what Meguro means
|
|
2461
|
+
|
|
2462
|
+
Meguro is a rehearsal and technical-evaluation environment for commerce agents. It lets an agent
|
|
2463
|
+
rehearse decisions against modeled commerce behavior without touching a live store.
|
|
2464
|
+
|
|
2465
|
+
- A **practice store** is an isolated simulation of a commerce store. Its state and changes remain
|
|
2466
|
+
inside Meguro.
|
|
2467
|
+
- **Store time** is that simulation's clock. It advances only through the bounded evaluation flow;
|
|
2468
|
+
it is not wall-clock time on a live store.
|
|
2469
|
+
- A **run** is one bounded evaluation of an agent against a selected practice store.
|
|
2470
|
+
- A **receipt** is the immutable record produced by a run: the calls, accepted and rejected changes,
|
|
2471
|
+
and evidence Meguro recorded.
|
|
2472
|
+
|
|
2473
|
+
Meguro's result is rehearsal evidence. It is not a forecast, certification, or proof of live-market,
|
|
2474
|
+
production, or Shopify performance.`;
|
|
2475
|
+
const DOCUMENTATION_V14_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V14);
|
|
2476
|
+
const DOCUMENTATION_V14_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V14);
|
|
2477
|
+
const GETTING_STARTED_V18_TEXT = GETTING_STARTED_V17_TEXT
|
|
2478
|
+
.replace('# Getting started with Meguro v17', '# Getting started with Meguro v18')
|
|
2479
|
+
.replace('Published URI: `' + GETTING_STARTED_V17_URI + '`', 'Published URI: `' + GETTING_STARTED_V18_URI + '`')
|
|
2480
|
+
.replace(
|
|
2481
|
+
`# Getting started with Meguro v18\n\nPublished URI: \`${GETTING_STARTED_V18_URI}\``,
|
|
2482
|
+
`# Getting started with Meguro v18\n\n${ZERO_PRIOR_KNOWLEDGE_GUIDANCE_TEXT}\n\nPublished URI: \`${GETTING_STARTED_V18_URI}\``,
|
|
2483
|
+
)
|
|
2484
|
+
.replace(DOCUMENTATION_V13_VERSION_LABELS_TEXT, DOCUMENTATION_V14_VERSION_LABELS_TEXT)
|
|
2485
|
+
.replace(DOCUMENTATION_V13_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V14_DEEPER_DOCUMENTATION_TEXT);
|
|
2486
|
+
const PRODUCT_GUIDE_V15_TEXT = PRODUCT_GUIDE_V14_TEXT
|
|
2487
|
+
.replace('# Meguro product guide v14', '# Meguro product guide v15')
|
|
2488
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V14_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V15_URI + '`')
|
|
2489
|
+
.replace(
|
|
2490
|
+
`# Meguro product guide v15\n\nPublished URI: \`${PRODUCT_GUIDE_V15_URI}\``,
|
|
2491
|
+
`# Meguro product guide v15\n\n${ZERO_PRIOR_KNOWLEDGE_GUIDANCE_TEXT}\n\nPublished URI: \`${PRODUCT_GUIDE_V15_URI}\``,
|
|
2492
|
+
)
|
|
2493
|
+
.replace(DOCUMENTATION_V13_VERSION_LABELS_TEXT, DOCUMENTATION_V14_VERSION_LABELS_TEXT)
|
|
2494
|
+
.replaceAll(GETTING_STARTED_V17_URI, GETTING_STARTED_V18_URI)
|
|
2495
|
+
.replaceAll(DOCUMENTATION_INDEX_V13_URI, DOCUMENTATION_INDEX_V14_URI);
|
|
2496
|
+
const ORDINARY_STORE_HISTORY_DEFAULT_GUIDANCE_TEXT = PER_STORE_HISTORY_GUIDANCE_TEXT
|
|
2497
|
+
.replace(
|
|
2498
|
+
`An ordinary newly created practice store from \`store_create\` currently begins with zero history.
|
|
2499
|
+
Zero history is a planning fact, not a defect: choose a scenario that does not require pre-existing
|
|
2500
|
+
events, or select a store whose live provenance reports enough history for the intended evaluation.
|
|
2501
|
+
The server-owned seeded sample is a distinct provisioning lane and currently reports 90 days. That
|
|
2502
|
+
is today's sample fact, not a universal promise: never assume a future sample has 90 days; read its
|
|
2503
|
+
live provenance.`,
|
|
2504
|
+
`An ordinary newly created practice store from \`store_create\` receives 120 days of queryable
|
|
2505
|
+
history by server default. The direct HTTP creation API may supply an explicit \`warmupDays\` value;
|
|
2506
|
+
that explicit value overrides the default and remains bounded by the store span. \`store_create\`
|
|
2507
|
+
does not expose that override. The server-owned seeded sample is a distinct provisioning lane and
|
|
2508
|
+
currently reports its explicit 90-day span. That is today's sample fact, not a universal promise:
|
|
2509
|
+
never assume a future sample has 90 days; read its live provenance.`,
|
|
2510
|
+
)
|
|
2511
|
+
.replace(
|
|
2512
|
+
`A tier \`historyDays\` value does not authorize nonzero warmup for an ordinary store. Ordinary-store
|
|
2513
|
+
warmup remains unchanged and requires a separate founder-signed amendment.`,
|
|
2514
|
+
`A tier \`historyDays\` value is not the creation authority. Ordinary-store warmup comes from the
|
|
2515
|
+
single server-owned creation default or an explicit direct-API override.`,
|
|
2516
|
+
);
|
|
2517
|
+
const DOCUMENTATION_V15_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V15);
|
|
2518
|
+
const DOCUMENTATION_V15_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V15);
|
|
2519
|
+
const GETTING_STARTED_V19_TEXT = GETTING_STARTED_V18_TEXT
|
|
2520
|
+
.replace('# Getting started with Meguro v18', '# Getting started with Meguro v19')
|
|
2521
|
+
.replace('Published URI: `' + GETTING_STARTED_V18_URI + '`', 'Published URI: `' + GETTING_STARTED_V19_URI + '`')
|
|
2522
|
+
.replace(DOCUMENTATION_V14_VERSION_LABELS_TEXT, DOCUMENTATION_V15_VERSION_LABELS_TEXT)
|
|
2523
|
+
.replace(DOCUMENTATION_V14_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V15_DEEPER_DOCUMENTATION_TEXT)
|
|
2524
|
+
.replace(PER_STORE_HISTORY_GUIDANCE_TEXT, ORDINARY_STORE_HISTORY_DEFAULT_GUIDANCE_TEXT);
|
|
2525
|
+
const PRODUCT_GUIDE_V16_TEXT = PRODUCT_GUIDE_V15_TEXT
|
|
2526
|
+
.replace('# Meguro product guide v15', '# Meguro product guide v16')
|
|
2527
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V15_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V16_URI + '`')
|
|
2528
|
+
.replace(DOCUMENTATION_V14_VERSION_LABELS_TEXT, DOCUMENTATION_V15_VERSION_LABELS_TEXT)
|
|
2529
|
+
.replaceAll(GETTING_STARTED_V18_URI, GETTING_STARTED_V19_URI)
|
|
2530
|
+
.replaceAll(DOCUMENTATION_INDEX_V14_URI, DOCUMENTATION_INDEX_V15_URI)
|
|
2531
|
+
.replace(PER_STORE_HISTORY_GUIDANCE_TEXT, ORDINARY_STORE_HISTORY_DEFAULT_GUIDANCE_TEXT);
|
|
2532
|
+
const SAMPLE_ONBOARDING_TRUTH_TEXT = `An ordinary conclusion is metered exactly once. The live seeded sample is a free onboarding run on
|
|
2533
|
+
an ordinary, fully interrogable practice store. Its account-owned onboarding grant waives the active-
|
|
2534
|
+
store slot and names the one free attempt; after that attempt is consumed, every run on the sample
|
|
2535
|
+
store meters normally.
|
|
2536
|
+
|
|
2537
|
+
Hide removes the sample store only from the Console fleet. Connected agents can still discover,
|
|
2538
|
+
query, and use that same store through MCP. The account's sample claim, the original run coordinate,
|
|
2539
|
+
and its receipt remain permanent; hiding, showing, or retrying provisioning cannot create another
|
|
2540
|
+
free store or run.`;
|
|
2541
|
+
const DOCUMENTATION_V16_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V16);
|
|
2542
|
+
const DOCUMENTATION_V16_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V16);
|
|
2543
|
+
const GETTING_STARTED_V20_TEXT = GETTING_STARTED_V19_TEXT
|
|
2544
|
+
.replace('# Getting started with Meguro v19', '# Getting started with Meguro v20')
|
|
2545
|
+
.replace('Published URI: `' + GETTING_STARTED_V19_URI + '`', 'Published URI: `' + GETTING_STARTED_V20_URI + '`')
|
|
2546
|
+
.replace(DOCUMENTATION_V15_VERSION_LABELS_TEXT, DOCUMENTATION_V16_VERSION_LABELS_TEXT)
|
|
2547
|
+
.replace(DOCUMENTATION_V15_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V16_DEEPER_DOCUMENTATION_TEXT)
|
|
2548
|
+
.replace(
|
|
2549
|
+
`An ordinary conclusion is metered exactly once. The server-owned auto-provisioned sample run
|
|
2550
|
+
is exempt under its explicit provisioned-sample classification; do not infer that exemption for an
|
|
2551
|
+
ordinary store or run.`,
|
|
2552
|
+
SAMPLE_ONBOARDING_TRUTH_TEXT,
|
|
2553
|
+
);
|
|
2554
|
+
const PRODUCT_GUIDE_V17_TEXT = PRODUCT_GUIDE_V16_TEXT
|
|
2555
|
+
.replace('# Meguro product guide v16', '# Meguro product guide v17')
|
|
2556
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V16_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V17_URI + '`')
|
|
2557
|
+
.replace(DOCUMENTATION_V15_VERSION_LABELS_TEXT, DOCUMENTATION_V16_VERSION_LABELS_TEXT)
|
|
2558
|
+
.replaceAll(GETTING_STARTED_V19_URI, GETTING_STARTED_V20_URI)
|
|
2559
|
+
.replaceAll(DOCUMENTATION_INDEX_V15_URI, DOCUMENTATION_INDEX_V16_URI)
|
|
2560
|
+
.replace(
|
|
2561
|
+
`An ordinary conclusion is metered exactly once. The server-owned auto-provisioned sample run
|
|
2562
|
+
is exempt under its explicit provisioned-sample classification; do not infer that exemption for an
|
|
2563
|
+
ordinary store or run.`,
|
|
2564
|
+
SAMPLE_ONBOARDING_TRUTH_TEXT,
|
|
2565
|
+
);
|
|
2566
|
+
const SHARED_SAMPLE_HISTORY_GUIDANCE_TEXT = ORDINARY_STORE_HISTORY_DEFAULT_GUIDANCE_TEXT
|
|
2567
|
+
.replace(
|
|
2568
|
+
`The server-owned seeded sample is a distinct provisioning lane and
|
|
2569
|
+
currently reports its explicit 90-day span. That is today's sample fact, not a universal promise:
|
|
2570
|
+
never assume a future sample has 90 days; read its live provenance.`,
|
|
2571
|
+
`The live seeded sample is an ordinary practice store using the same shared store machinery.
|
|
2572
|
+
Its server-owned configuration explicitly supplies 90 days of queryable history instead of the
|
|
2573
|
+
ordinary 120-day default. These are different inputs to the same machinery, not different
|
|
2574
|
+
provisioning lanes. That explicit 90-day span is today's sample fact, not a universal promise:
|
|
2575
|
+
never assume a future sample has 90 days; read its live provenance.`,
|
|
2576
|
+
);
|
|
2577
|
+
const DOCUMENTATION_V17_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V17);
|
|
2578
|
+
const DOCUMENTATION_V17_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V17);
|
|
2579
|
+
const GETTING_STARTED_V21_TEXT = GETTING_STARTED_V20_TEXT
|
|
2580
|
+
.replace('# Getting started with Meguro v20', '# Getting started with Meguro v21')
|
|
2581
|
+
.replace('Published URI: `' + GETTING_STARTED_V20_URI + '`', 'Published URI: `' + GETTING_STARTED_V21_URI + '`')
|
|
2582
|
+
.replace(DOCUMENTATION_V16_VERSION_LABELS_TEXT, DOCUMENTATION_V17_VERSION_LABELS_TEXT)
|
|
2583
|
+
.replace(DOCUMENTATION_V16_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V17_DEEPER_DOCUMENTATION_TEXT)
|
|
2584
|
+
.replace(ORDINARY_STORE_HISTORY_DEFAULT_GUIDANCE_TEXT, SHARED_SAMPLE_HISTORY_GUIDANCE_TEXT);
|
|
2585
|
+
const PRODUCT_GUIDE_V18_TEXT = PRODUCT_GUIDE_V17_TEXT
|
|
2586
|
+
.replace('# Meguro product guide v17', '# Meguro product guide v18')
|
|
2587
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V17_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V18_URI + '`')
|
|
2588
|
+
.replace(DOCUMENTATION_V16_VERSION_LABELS_TEXT, DOCUMENTATION_V17_VERSION_LABELS_TEXT)
|
|
2589
|
+
.replaceAll(GETTING_STARTED_V20_URI, GETTING_STARTED_V21_URI)
|
|
2590
|
+
.replaceAll(DOCUMENTATION_INDEX_V16_URI, DOCUMENTATION_INDEX_V17_URI)
|
|
2591
|
+
.replace(ORDINARY_STORE_HISTORY_DEFAULT_GUIDANCE_TEXT, SHARED_SAMPLE_HISTORY_GUIDANCE_TEXT);
|
|
2592
|
+
const COMPATIBILITY_AND_FINAL_GATE_GUIDANCE_TEXT = `## Compatibility scope and final receipt Gate
|
|
2593
|
+
|
|
2594
|
+
\`Query.node\` and \`Query.nodes\` are polymorphic modeled-limit roots, not blanket Shopify Node
|
|
2595
|
+
compatibility claims. Read their \`nodeScope\` from the exact-version \`admin_schema\` compatibility
|
|
2596
|
+
manifest before selecting a fragment. Only \`nodeScope.supportedObjectTypes\` has the closed target-
|
|
2597
|
+
artifact, Meguro SDL, resolver, stable-identity, and executable-fixture proof. Every other Shopify
|
|
2598
|
+
Node implementor remains outside that claim even when Shopify declares it as Node; do not infer
|
|
2599
|
+
support from the root coordinate, type name, or target API alone.
|
|
2600
|
+
|
|
2601
|
+
The receipt's top-level \`gate\` is the one server-owned customer-facing promotion status. A failed
|
|
2602
|
+
named \`resultSemantics.evidenceAssertions\` assertion or
|
|
2603
|
+
\`rejectionAttribution.requiresReview = true\` prevents \`gate.status = passing\`. A matched expected
|
|
2604
|
+
refusal and a proven handled correction remain visible as raw rejected calls without becoming
|
|
2605
|
+
unhandled failures. \`resultSemantics.technicalPolicyVerdict\` remains independent and may pass while
|
|
2606
|
+
evidence fails. Consume the exact supplied \`gate\` in Console, MCP, public/private receipt, download,
|
|
2607
|
+
or generated copy; never derive another status from calls or legacy fields.`;
|
|
2608
|
+
const DOCUMENTATION_V18_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V18);
|
|
2609
|
+
const DOCUMENTATION_V18_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V18);
|
|
2610
|
+
const GETTING_STARTED_V22_TEXT = GETTING_STARTED_V21_TEXT
|
|
2611
|
+
.replace('# Getting started with Meguro v21', '# Getting started with Meguro v22')
|
|
2612
|
+
.replace('Published URI: `' + GETTING_STARTED_V21_URI + '`', 'Published URI: `' + GETTING_STARTED_V22_URI + '`')
|
|
2613
|
+
.replace(DOCUMENTATION_V17_VERSION_LABELS_TEXT, DOCUMENTATION_V18_VERSION_LABELS_TEXT)
|
|
2614
|
+
.replace(DOCUMENTATION_V17_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V18_DEEPER_DOCUMENTATION_TEXT)
|
|
2615
|
+
.replaceAll(RECEIPT_GUIDE_V10_URI, RECEIPT_GUIDE_V11_URI)
|
|
2616
|
+
.replace('## Deeper in-band documentation', `${COMPATIBILITY_AND_FINAL_GATE_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2617
|
+
const PRODUCT_GUIDE_V19_TEXT = PRODUCT_GUIDE_V18_TEXT
|
|
2618
|
+
.replace('# Meguro product guide v18', '# Meguro product guide v19')
|
|
2619
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V18_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V19_URI + '`')
|
|
2620
|
+
.replace(DOCUMENTATION_V17_VERSION_LABELS_TEXT, DOCUMENTATION_V18_VERSION_LABELS_TEXT)
|
|
2621
|
+
.replaceAll(GETTING_STARTED_V21_URI, GETTING_STARTED_V22_URI)
|
|
2622
|
+
.replaceAll(DOCUMENTATION_INDEX_V17_URI, DOCUMENTATION_INDEX_V18_URI)
|
|
2623
|
+
.replaceAll(RECEIPT_GUIDE_V10_URI, RECEIPT_GUIDE_V11_URI)
|
|
2624
|
+
.replace('## Stable concepts versus changing facts', `${COMPATIBILITY_AND_FINAL_GATE_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2625
|
+
const ONBOARDING_EVALUATION_GRANT_GUIDANCE_TEXT = `## One user-chosen onboarding evaluation
|
|
2626
|
+
|
|
2627
|
+
Each fresh account has one account-owned onboarding evaluation grant. While it is available,
|
|
2628
|
+
\`templates_list\` and the Console project the same server-owned \`starterPlans\` for every practice-
|
|
2629
|
+
store template. Choose the store and template you want to evaluate; the first accepted start binds
|
|
2630
|
+
the grant atomically to that store, template revision, deterministic root evaluation, and the
|
|
2631
|
+
template's pinned ideal horizon. The sample is not privileged by its route, name, seed, or shape: it
|
|
2632
|
+
uses the grant only when you choose it.
|
|
2633
|
+
|
|
2634
|
+
Use each selected plan's exact \`practiceRunStart.clock\`. Ordinary immutable receipt segments remain
|
|
2635
|
+
bounded by the current plan's per-attempt limit. When the ideal horizon is longer, continue the same
|
|
2636
|
+
root with \`continueFromAttemptId\`; every authorized segment carries the same
|
|
2637
|
+
\`onboardingEvaluation\` fact and consumes no monthly simulation-run credit. The sample POST remains
|
|
2638
|
+
an idempotent first-segment walkthrough; continue a longer bound sample through the ordinary run
|
|
2639
|
+
API rather than POSTing another sample.
|
|
2640
|
+
|
|
2641
|
+
The grant is spent once for the whole root chain. Identical retries converge on one root. Hiding,
|
|
2642
|
+
showing, deleting, recreating, choosing another store, or changing sample identity cannot restore or
|
|
2643
|
+
move it. A legacy account with the old consumption marker remains consumed. After the pinned ideal
|
|
2644
|
+
horizon, every new segment or run follows ordinary tier canvas, continuation, and monthly allowance
|
|
2645
|
+
rules. Read the returned plan and authorization facts; never infer entitlement or caps in a client.`;
|
|
2646
|
+
const DOCUMENTATION_V19_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V19);
|
|
2647
|
+
const DOCUMENTATION_V19_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V19);
|
|
2648
|
+
const GETTING_STARTED_V23_TEXT = GETTING_STARTED_V22_TEXT
|
|
2649
|
+
.replace('# Getting started with Meguro v22', '# Getting started with Meguro v23')
|
|
2650
|
+
.replace('Published URI: `' + GETTING_STARTED_V22_URI + '`', 'Published URI: `' + GETTING_STARTED_V23_URI + '`')
|
|
2651
|
+
.replace(DOCUMENTATION_V18_VERSION_LABELS_TEXT, DOCUMENTATION_V19_VERSION_LABELS_TEXT)
|
|
2652
|
+
.replace(DOCUMENTATION_V18_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V19_DEEPER_DOCUMENTATION_TEXT)
|
|
2653
|
+
.replace('## Deeper in-band documentation', `${ONBOARDING_EVALUATION_GRANT_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2654
|
+
const PRODUCT_GUIDE_V20_TEXT = PRODUCT_GUIDE_V19_TEXT
|
|
2655
|
+
.replace('# Meguro product guide v19', '# Meguro product guide v20')
|
|
2656
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V19_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V20_URI + '`')
|
|
2657
|
+
.replace(DOCUMENTATION_V18_VERSION_LABELS_TEXT, DOCUMENTATION_V19_VERSION_LABELS_TEXT)
|
|
2658
|
+
.replaceAll(GETTING_STARTED_V22_URI, GETTING_STARTED_V23_URI)
|
|
2659
|
+
.replaceAll(DOCUMENTATION_INDEX_V18_URI, DOCUMENTATION_INDEX_V19_URI)
|
|
2660
|
+
.replace('## Stable concepts versus changing facts', `${ONBOARDING_EVALUATION_GRANT_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2661
|
+
const DOCUMENTATION_V20_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V20);
|
|
2662
|
+
const DOCUMENTATION_V20_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V20);
|
|
2663
|
+
const GETTING_STARTED_V24_TEXT = GETTING_STARTED_V23_TEXT
|
|
2664
|
+
.replace('# Getting started with Meguro v23', '# Getting started with Meguro v24')
|
|
2665
|
+
.replace('Published URI: `' + GETTING_STARTED_V23_URI + '`', 'Published URI: `' + GETTING_STARTED_V24_URI + '`')
|
|
2666
|
+
.replace(DOCUMENTATION_V19_VERSION_LABELS_TEXT, DOCUMENTATION_V20_VERSION_LABELS_TEXT)
|
|
2667
|
+
.replace(DOCUMENTATION_V19_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V20_DEEPER_DOCUMENTATION_TEXT);
|
|
2668
|
+
const PRODUCT_GUIDE_V21_TEXT = PRODUCT_GUIDE_V20_TEXT
|
|
2669
|
+
.replace('# Meguro product guide v20', '# Meguro product guide v21')
|
|
2670
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V20_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V21_URI + '`')
|
|
2671
|
+
.replace(DOCUMENTATION_V19_VERSION_LABELS_TEXT, DOCUMENTATION_V20_VERSION_LABELS_TEXT)
|
|
2672
|
+
.replaceAll(GETTING_STARTED_V23_URI, GETTING_STARTED_V24_URI)
|
|
2673
|
+
.replaceAll(DOCUMENTATION_INDEX_V19_URI, DOCUMENTATION_INDEX_V20_URI)
|
|
2674
|
+
.replaceAll(RECEIPT_GUIDE_V11_URI, RECEIPT_GUIDE_V12_URI);
|
|
2675
|
+
const TEMPLATE_EVENT_RESOLUTION_GUIDANCE_TEXT = `## Creation-pinned template event resolution
|
|
2676
|
+
|
|
2677
|
+
New hosted run and impact receipts carry one \`eventResolution\` derived from the template
|
|
2678
|
+
evaluation context copied into the practice store at creation. \`source\` names that immutable
|
|
2679
|
+
template key, label, and revision; it is not a lookup against the current template catalog.
|
|
2680
|
+
|
|
2681
|
+
For a discrete event, \`status = resolved\` only when the exact measured world-day horizon spans the
|
|
2682
|
+
complete pinned \`eventWindow\`. Coverage ending before, starting after, or including only part of
|
|
2683
|
+
that window is \`not-resolved\`. A continuously modeled response is \`not-applicable\` because it has
|
|
2684
|
+
no discrete event window. A historical or custom store without pinned context is \`unavailable\`;
|
|
2685
|
+
clients must not infer or fabricate context from current template metadata. Preserve the supplied
|
|
2686
|
+
reason and measured horizon beside the status. Historical issued receipt bytes do not change.`;
|
|
2687
|
+
const DOCUMENTATION_V21_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V21);
|
|
2688
|
+
const DOCUMENTATION_V21_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V21);
|
|
2689
|
+
const GETTING_STARTED_V25_TEXT = GETTING_STARTED_V24_TEXT
|
|
2690
|
+
.replace('# Getting started with Meguro v24', '# Getting started with Meguro v25')
|
|
2691
|
+
.replace('Published URI: `' + GETTING_STARTED_V24_URI + '`', 'Published URI: `' + GETTING_STARTED_V25_URI + '`')
|
|
2692
|
+
.replace(DOCUMENTATION_V20_VERSION_LABELS_TEXT, DOCUMENTATION_V21_VERSION_LABELS_TEXT)
|
|
2693
|
+
.replace(DOCUMENTATION_V20_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V21_DEEPER_DOCUMENTATION_TEXT)
|
|
2694
|
+
.replace('## Deeper in-band documentation', `${TEMPLATE_EVENT_RESOLUTION_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2695
|
+
const PRODUCT_GUIDE_V22_TEXT = PRODUCT_GUIDE_V21_TEXT
|
|
2696
|
+
.replace('# Meguro product guide v21', '# Meguro product guide v22')
|
|
2697
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V21_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V22_URI + '`')
|
|
2698
|
+
.replace(DOCUMENTATION_V20_VERSION_LABELS_TEXT, DOCUMENTATION_V21_VERSION_LABELS_TEXT)
|
|
2699
|
+
.replaceAll(GETTING_STARTED_V24_URI, GETTING_STARTED_V25_URI)
|
|
2700
|
+
.replaceAll(DOCUMENTATION_INDEX_V20_URI, DOCUMENTATION_INDEX_V21_URI)
|
|
2701
|
+
.replaceAll(RECEIPT_GUIDE_V12_URI, RECEIPT_GUIDE_V13_URI)
|
|
2702
|
+
.replace('## Stable concepts versus changing facts', `${TEMPLATE_EVENT_RESOLUTION_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2703
|
+
const ADVANCE_CURSOR_GUIDANCE_TEXT = `## One server-owned advance cursor
|
|
2704
|
+
|
|
2705
|
+
Every practice-run start and status response carries \`practiceRun.advanceCursor\` with exactly
|
|
2706
|
+
\`expectedDay\` and \`expectedCallSeq\`. Copy that object unchanged into the next
|
|
2707
|
+
\`practice_run_advance\` call or HTTP advance body. Do not choose between \`currentDay\` and
|
|
2708
|
+
\`watermarkDay\`, and do not combine call-sequence fields from separate reads.
|
|
2709
|
+
|
|
2710
|
+
Start, accepted-call status, zero-call status, advance, checkpoint, terminal confirmation,
|
|
2711
|
+
refusal recovery, checkpoint reopen, and completed status all return the same server-owned shape.
|
|
2712
|
+
A stale cursor fails closed and moves no Store time; the refusal returns a fresh \`advanceCursor\`
|
|
2713
|
+
for one exact retry. The frozen scalar response fields and legacy flat \`expectedDay\` plus
|
|
2714
|
+
\`expectedCallSeq\` request fields remain available together for compatibility.`;
|
|
2715
|
+
const DOCUMENTATION_V22_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V22);
|
|
2716
|
+
const DOCUMENTATION_V22_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V22);
|
|
2717
|
+
const GETTING_STARTED_V26_TEXT = GETTING_STARTED_V25_TEXT
|
|
2718
|
+
.replace('# Getting started with Meguro v25', '# Getting started with Meguro v26')
|
|
2719
|
+
.replace('Published URI: `' + GETTING_STARTED_V25_URI + '`', 'Published URI: `' + GETTING_STARTED_V26_URI + '`')
|
|
2720
|
+
.replace(DOCUMENTATION_V21_VERSION_LABELS_TEXT, DOCUMENTATION_V22_VERSION_LABELS_TEXT)
|
|
2721
|
+
.replace(DOCUMENTATION_V21_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V22_DEEPER_DOCUMENTATION_TEXT)
|
|
2722
|
+
.replace(
|
|
2723
|
+
'practice_run_advance({ attemptId, days, expectedDay, expectedCallSeq })',
|
|
2724
|
+
'practice_run_advance({ attemptId, days, advanceCursor })',
|
|
2725
|
+
)
|
|
2726
|
+
.replace(
|
|
2727
|
+
'Before each advance, call `practice_run_status` and copy both current cursors.',
|
|
2728
|
+
'Before each advance, call `practice_run_status` and copy `practiceRun.advanceCursor` unchanged.',
|
|
2729
|
+
)
|
|
2730
|
+
.replace('## Deeper in-band documentation', `${ADVANCE_CURSOR_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2731
|
+
const PRODUCT_GUIDE_V23_TEXT = PRODUCT_GUIDE_V22_TEXT
|
|
2732
|
+
.replace('# Meguro product guide v22', '# Meguro product guide v23')
|
|
2733
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V22_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V23_URI + '`')
|
|
2734
|
+
.replace(DOCUMENTATION_V21_VERSION_LABELS_TEXT, DOCUMENTATION_V22_VERSION_LABELS_TEXT)
|
|
2735
|
+
.replaceAll(GETTING_STARTED_V25_URI, GETTING_STARTED_V26_URI)
|
|
2736
|
+
.replaceAll(DOCUMENTATION_INDEX_V21_URI, DOCUMENTATION_INDEX_V22_URI)
|
|
2737
|
+
.replace(
|
|
2738
|
+
'Before each advance, call `practice_run_status` and copy both current cursors.',
|
|
2739
|
+
'Before each advance, call `practice_run_status` and copy `practiceRun.advanceCursor` unchanged.',
|
|
2740
|
+
)
|
|
2741
|
+
.replace('## Stable concepts versus changing facts', `${ADVANCE_CURSOR_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2742
|
+
const MUTABLE_GATE_ABSENCE_TEXT = `No configured Receipt Gate exists. The receipt's recorded API behavior remains available.`;
|
|
2743
|
+
// MEG-1204: a documentation resource cannot know whether the reading account or practice store
|
|
2744
|
+
// currently has a configured Gate. The current generation states the standing rule and routes the
|
|
2745
|
+
// live question to the Gate tools; versions carrying the mutable sentence keep their exact bytes.
|
|
2746
|
+
const STATE_NEUTRAL_GATE_PRESENCE_TEXT = `A configured Receipt Gate is optional per account and practice store, and this document cannot
|
|
2747
|
+
report whether one exists for you. Discover the current state through the Gate tools. Its absence
|
|
2748
|
+
never removes the receipt's automatic Recorded API behavior.`;
|
|
2749
|
+
const RECEIPT_PRODUCT_TERMINOLOGY_GUIDANCE_TEXT = `## Automatic receipt facts and optional configured policy
|
|
2750
|
+
|
|
2751
|
+
Every concluded receipt carries **Recorded API behavior** automatically, whether or not a
|
|
2752
|
+
**Configured Receipt Gate** exists. Customer-facing Recorded API behavior is rendered from the
|
|
2753
|
+
receipt's existing fact-phrase authority. **Default run policy** names the provenance of that
|
|
2754
|
+
automatic interpretation; it is not a separately configured product.
|
|
2755
|
+
|
|
2756
|
+
**Configured Receipt Gate** is the optional configured policy over selected receipt facts exposed
|
|
2757
|
+
by the frozen \`gate_configure\`, \`gate_evaluate\`, and \`gate_verdict\` tool names.
|
|
2758
|
+
${MUTABLE_GATE_ABSENCE_TEXT}
|
|
2759
|
+
|
|
2760
|
+
These customer terms do not rename machine fields or values. Preserve \`gate\`, \`gate.status\`,
|
|
2761
|
+
\`technicalPolicyVerdict\`, \`defaultVerdict\`, policy ids and versions, schema names, routes, tool
|
|
2762
|
+
names, and raw JSON exactly as supplied.`;
|
|
2763
|
+
const DOCUMENTATION_V23_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V23);
|
|
2764
|
+
const DOCUMENTATION_V23_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V23);
|
|
2765
|
+
const GETTING_STARTED_V27_TEXT = GETTING_STARTED_V26_TEXT
|
|
2766
|
+
.replace('# Getting started with Meguro v26', '# Getting started with Meguro v27')
|
|
2767
|
+
.replace('Published URI: `' + GETTING_STARTED_V26_URI + '`', 'Published URI: `' + GETTING_STARTED_V27_URI + '`')
|
|
2768
|
+
.replace(DOCUMENTATION_V22_VERSION_LABELS_TEXT, DOCUMENTATION_V23_VERSION_LABELS_TEXT)
|
|
2769
|
+
.replace(DOCUMENTATION_V22_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V23_DEEPER_DOCUMENTATION_TEXT)
|
|
2770
|
+
.replace('## Deeper in-band documentation', `${RECEIPT_PRODUCT_TERMINOLOGY_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2771
|
+
const PRODUCT_GUIDE_V24_TEXT = PRODUCT_GUIDE_V23_TEXT
|
|
2772
|
+
.replace('# Meguro product guide v23', '# Meguro product guide v24')
|
|
2773
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V23_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V24_URI + '`')
|
|
2774
|
+
.replace(DOCUMENTATION_V22_VERSION_LABELS_TEXT, DOCUMENTATION_V23_VERSION_LABELS_TEXT)
|
|
2775
|
+
.replaceAll(GETTING_STARTED_V26_URI, GETTING_STARTED_V27_URI)
|
|
2776
|
+
.replaceAll(DOCUMENTATION_INDEX_V22_URI, DOCUMENTATION_INDEX_V23_URI)
|
|
2777
|
+
.replaceAll(RECEIPT_GUIDE_V13_URI, RECEIPT_GUIDE_V14_URI)
|
|
2778
|
+
.replace('## Stable concepts versus changing facts', `${RECEIPT_PRODUCT_TERMINOLOGY_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2779
|
+
const OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT = `## Shopify return finance mechanics
|
|
2780
|
+
|
|
2781
|
+
Meguro's public Admin GraphQL surface follows the pinned Shopify Admin schema. A return cash refund
|
|
2782
|
+
uses \`returnRefund(returnRefundInput:)\` with \`returnId\` and exact
|
|
2783
|
+
\`returnRefundLineItems\`. A return-linked store-credit refund uses \`refundCreate(input:)\` with
|
|
2784
|
+
the order, exact refund line items, and \`refundMethods[].storeCreditRefund.amount\` as a
|
|
2785
|
+
\`MoneyInput\`. Both mutation roots require exactly one field-level
|
|
2786
|
+
\`@idempotent(key: String!)\` directive.
|
|
2787
|
+
|
|
2788
|
+
Public read-back uses official \`Refund\`, \`OrderTransaction\`, \`Return.refunds\`,
|
|
2789
|
+
\`Return.suggestedRefund\`, and \`Return.suggestedFinancialOutcome\` fields. Rehearsal-specific
|
|
2790
|
+
resolution kind, customer linkage, modeled economics, settlement, and replay evidence live in the
|
|
2791
|
+
private receipt and committed change register; they are not synthetic Shopify fields. Approval
|
|
2792
|
+
alone remains non-financial, and \`giftCardCreate\` remains SKU-linked loyalty credit rather than a
|
|
2793
|
+
return refund.`;
|
|
2794
|
+
const CORRECTED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT = RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT
|
|
2795
|
+
.replace('A cash\nrefund is an explicit idempotent `refundCreate` resolution. Return-linked store credit is a distinct\nidempotent `returnRefund` resolution', 'A cash\nrefund is an explicit idempotent `returnRefund` resolution. Return-linked store credit is a distinct\nidempotent `refundCreate` resolution');
|
|
2796
|
+
const CUSTOMER_LINKED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT = CORRECTED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT
|
|
2797
|
+
.replace(
|
|
2798
|
+
'and never routes through SKU-linked loyalty credit.',
|
|
2799
|
+
'and never routes through proactive customer-linked loyalty GiftCards.',
|
|
2800
|
+
);
|
|
2801
|
+
const CORRECTED_IDEMPOTENCY_REQUIREMENTS_TEXT = `For Admin GraphQL \`${ADMIN_API_SUPPORTED_VERSIONS.join(' and ')}\`, the authoritative set is:
|
|
2802
|
+
\`inventoryAdjustQuantities\`, \`refundCreate\`, and \`returnRefund\` require
|
|
2803
|
+
\`@idempotent(key: String!)\`. Place \`@idempotent(key: $idempotencyKey)\` exactly once on the single
|
|
2804
|
+
supported mutation root field. The resolved key must be a non-empty string no larger than 256 bytes.
|
|
2805
|
+
Use the authority-derived example when present; unrelated roots must not receive this directive.`;
|
|
2806
|
+
const DOCUMENTATION_V24_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V24);
|
|
2807
|
+
const DOCUMENTATION_V24_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V24);
|
|
2808
|
+
const GETTING_STARTED_V28_TEXT = GETTING_STARTED_V27_TEXT
|
|
2809
|
+
.replace('# Getting started with Meguro v27', '# Getting started with Meguro v28')
|
|
2810
|
+
.replace('Published URI: `' + GETTING_STARTED_V27_URI + '`', 'Published URI: `' + GETTING_STARTED_V28_URI + '`')
|
|
2811
|
+
.replace(DOCUMENTATION_V23_VERSION_LABELS_TEXT, DOCUMENTATION_V24_VERSION_LABELS_TEXT)
|
|
2812
|
+
.replace(DOCUMENTATION_V23_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V24_DEEPER_DOCUMENTATION_TEXT)
|
|
2813
|
+
.replace(RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT, CORRECTED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT)
|
|
2814
|
+
.replace(CURRENT_IDEMPOTENCY_REQUIREMENTS_TEXT, CORRECTED_IDEMPOTENCY_REQUIREMENTS_TEXT)
|
|
2815
|
+
.replace('## Deeper in-band documentation', `${OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT}\n\n## Deeper in-band documentation`);
|
|
2816
|
+
const PRODUCT_GUIDE_V25_TEXT = PRODUCT_GUIDE_V24_TEXT
|
|
2817
|
+
.replace('# Meguro product guide v24', '# Meguro product guide v25')
|
|
2818
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V24_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V25_URI + '`')
|
|
2819
|
+
.replace(DOCUMENTATION_V23_VERSION_LABELS_TEXT, DOCUMENTATION_V24_VERSION_LABELS_TEXT)
|
|
2820
|
+
.replaceAll(GETTING_STARTED_V27_URI, GETTING_STARTED_V28_URI)
|
|
2821
|
+
.replaceAll(DOCUMENTATION_INDEX_V23_URI, DOCUMENTATION_INDEX_V24_URI)
|
|
2822
|
+
.replace(RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT, CORRECTED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT)
|
|
2823
|
+
.replace(CURRENT_IDEMPOTENCY_REQUIREMENTS_TEXT, CORRECTED_IDEMPOTENCY_REQUIREMENTS_TEXT)
|
|
2824
|
+
.replace('## Stable concepts versus changing facts', `${OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT}\n\n## Stable concepts versus changing facts`);
|
|
2825
|
+
const CUSTOMER_LINKED_LOYALTY_GIFT_CARD_GUIDANCE_TEXT = `## Customer-linked loyalty GiftCards
|
|
2826
|
+
|
|
2827
|
+
Proactive loyalty value uses Shopify Admin \`giftCardCreate(input:)\` with \`initialValue: Decimal\`
|
|
2828
|
+
and \`customerId: ID\`. The public request and \`GiftCard.customer\` identify the modeled customer;
|
|
2829
|
+
there is no SKU selector or SKU response field. Meguro derives the internal product cohort only
|
|
2830
|
+
from the order/customer authority already present in the practice store.
|
|
2831
|
+
|
|
2832
|
+
This mutation is not declared \`@idempotent\`. An exact retry after the first accepted gift card
|
|
2833
|
+
returns a structured \`GiftCardUserError\` and applies no second commerce action. Read accepted
|
|
2834
|
+
gift cards independently through \`giftCards(first:, after:)\`; their initial value and balance
|
|
2835
|
+
reconcile to the accepted-action receipt cost. Return-linked store credit remains a separate
|
|
2836
|
+
\`refundCreate.refundMethods.storeCreditRefund\` resolution and never uses \`giftCardCreate\`.`;
|
|
2837
|
+
const CORRECTED_OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT = OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT
|
|
2838
|
+
.replace(
|
|
2839
|
+
'alone remains non-financial, and `giftCardCreate` remains SKU-linked loyalty credit rather than a\nreturn refund.',
|
|
2840
|
+
'alone remains non-financial. Proactive customer-linked `giftCardCreate` loyalty GiftCards remain\ndistinct from return refunds and return-linked store credit.',
|
|
2841
|
+
);
|
|
2842
|
+
const DOCUMENTATION_V25_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V25);
|
|
2843
|
+
const DOCUMENTATION_V25_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V25);
|
|
2844
|
+
const GETTING_STARTED_V29_TEXT = GETTING_STARTED_V28_TEXT
|
|
2845
|
+
.replace('# Getting started with Meguro v28', '# Getting started with Meguro v29')
|
|
2846
|
+
.replace('Published URI: `' + GETTING_STARTED_V28_URI + '`', 'Published URI: `' + GETTING_STARTED_V29_URI + '`')
|
|
2847
|
+
.replace(DOCUMENTATION_V24_VERSION_LABELS_TEXT, DOCUMENTATION_V25_VERSION_LABELS_TEXT)
|
|
2848
|
+
.replace(DOCUMENTATION_V24_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V25_DEEPER_DOCUMENTATION_TEXT)
|
|
2849
|
+
.replace(CORRECTED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT, CUSTOMER_LINKED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT)
|
|
2850
|
+
.replace(
|
|
2851
|
+
OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT,
|
|
2852
|
+
`${CORRECTED_OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT}\n\n${CUSTOMER_LINKED_LOYALTY_GIFT_CARD_GUIDANCE_TEXT}`,
|
|
2853
|
+
);
|
|
2854
|
+
const PRODUCT_GUIDE_V26_TEXT = PRODUCT_GUIDE_V25_TEXT
|
|
2855
|
+
.replace('# Meguro product guide v25', '# Meguro product guide v26')
|
|
2856
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V25_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V26_URI + '`')
|
|
2857
|
+
.replace(DOCUMENTATION_V24_VERSION_LABELS_TEXT, DOCUMENTATION_V25_VERSION_LABELS_TEXT)
|
|
2858
|
+
.replaceAll(GETTING_STARTED_V28_URI, GETTING_STARTED_V29_URI)
|
|
2859
|
+
.replaceAll(DOCUMENTATION_INDEX_V24_URI, DOCUMENTATION_INDEX_V25_URI)
|
|
2860
|
+
.replace(CORRECTED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT, CUSTOMER_LINKED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT)
|
|
2861
|
+
.replace(
|
|
2862
|
+
OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT,
|
|
2863
|
+
`${CORRECTED_OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT}\n\n${CUSTOMER_LINKED_LOYALTY_GIFT_CARD_GUIDANCE_TEXT}`,
|
|
1425
2864
|
);
|
|
2865
|
+
const ORDER_REFUND_AUTHORITY_GUIDANCE_TEXT = `## Return cash resolution and ordinary order refunds
|
|
2866
|
+
|
|
2867
|
+
Return approval is policy-only and has no refund or store-credit economics. To resolve one exact
|
|
2868
|
+
Return with cash, use \`returnRefund(returnRefundInput:)\` with its \`returnId\` and exact
|
|
2869
|
+
\`returnRefundLineItems\`. That is the Return-linked financial operation.
|
|
2870
|
+
|
|
2871
|
+
\`refundCreate(input:)\` is instead an ordinary order refund. It may refund a paid order that has no
|
|
2872
|
+
Return. \`RefundInput.note\` is opaque customer text and never selects or changes a Return. Cash
|
|
2873
|
+
requires an explicit valid \`transactions\` refund; order store credit requires
|
|
2874
|
+
\`refundMethods[].storeCreditRefund.amount\`. These methods are mutually exclusive. If neither method is supplied, the practice Admin
|
|
2875
|
+
returns structured \`userErrors\` and changes no state. Store credit has no cash transaction, but it
|
|
2876
|
+
contributes to the Refund and Order refunded totals.
|
|
2877
|
+
|
|
2878
|
+
Read the committed Refund through \`Order.refunds\`. Its id, order, method, amount, cumulative order
|
|
2879
|
+
total, and replay identity remain stable after checkpoint reopen. An ordinary order Refund projects
|
|
2880
|
+
\`Refund.return\` as null. The cumulative refund cap is the order's authoritative paid amount across
|
|
2881
|
+
cash and store-credit methods. Reuse the same \`@idempotent\` key only for an exact replay; the replay
|
|
2882
|
+
returns the same Refund and applies no second commerce action or financial effect.
|
|
2883
|
+
|
|
2884
|
+
Receipt and Impact footprints keep four distinct counts. \`acceptedMutationCalls\` includes accepted
|
|
2885
|
+
replays; \`rejectedMutationCalls\` counts refused calls; \`idempotentReplays\` identifies reused
|
|
2886
|
+
results; and \`appliedCommerceActions\` counts only newly applied modeled actions.`;
|
|
2887
|
+
const ORDER_REFUND_EVIDENCE_GUIDANCE_TEXT = `## Refund evidence accounting
|
|
2888
|
+
|
|
2889
|
+
Return cash uses the committed \`returnRefund\` resolution. Ordinary cash and store-credit order
|
|
2890
|
+
refunds use the committed \`refundCreate\` authority and do not select or change a Return. Receipt
|
|
2891
|
+
and Impact footprints distinguish accepted calls, rejected calls, idempotent replays, and newly
|
|
2892
|
+
applied commerce actions; read the resolution-specific change line for the exact method and amount.`;
|
|
2893
|
+
const ORDER_REFUND_LOYALTY_GUIDANCE_TEXT = CUSTOMER_LINKED_LOYALTY_GIFT_CARD_GUIDANCE_TEXT.replace(
|
|
2894
|
+
'Return-linked store credit remains a separate\n`refundCreate.refundMethods.storeCreditRefund` resolution and never uses `giftCardCreate`.',
|
|
2895
|
+
'Order store credit remains a separate ordinary order refund through\n`refundCreate.refundMethods.storeCreditRefund` and never uses `giftCardCreate`.',
|
|
2896
|
+
);
|
|
2897
|
+
const ADMITTED_RECIPE_DISCOVERY_GUIDANCE_TEXT = `## Discover Admin recipes before lookup
|
|
2898
|
+
|
|
2899
|
+
Call \`admin_recipes_list({})\` to enumerate every canonical Admin recipe before choosing one. Every
|
|
2900
|
+
listed recipe has already been admitted: its exact document is valid against both the pinned official
|
|
2901
|
+
Shopify schema for its declared \`apiVersion\` and Meguro's served subset. A recipe that fails that
|
|
2902
|
+
contract is absent from the list rather than listed with a warning.
|
|
2903
|
+
|
|
2904
|
+
Each row carries a stable \`id\`, operation name, purpose, confirmation requirement, authored aliases
|
|
2905
|
+
and keywords, and the facts you are expected to act on:
|
|
2906
|
+
|
|
2907
|
+
- \`apiVersion\` — the Admin version the document is written for. Send it; do not substitute another.
|
|
2908
|
+
- \`intendedTemplates\` — the practice store templates the recipe is built for.
|
|
2909
|
+
- \`expectedFidelity\` — always \`supported\`, because unsupported coordinates are never published as recipes.
|
|
2910
|
+
- \`knownSupportBoundary\` — what the recipe deliberately does not cover.
|
|
2911
|
+
- \`outcome\` — for a read, \`emptyResult.meaning\` states exactly what an empty page does and does not
|
|
2912
|
+
prove. Treat an empty page as that answer, not as a failure to retry. For a mutation,
|
|
2913
|
+
\`consequence.statement\` names the state change that commits and \`consequence.readbackProves\`
|
|
2914
|
+
names what an independent read-back establishes.
|
|
2915
|
+
- \`prerequisites\` — conditions that must already hold. Each carries a stable \`id\` and, where one
|
|
2916
|
+
exists, the \`establishedBy\` recipe that creates the condition. Run that recipe first.
|
|
2917
|
+
|
|
2918
|
+
Then call \`admin_schema({ lookup: "recipe", name: "<id>" })\` with the selected stable id for the exact
|
|
2919
|
+
document and the same facts, including the read-back query for a mutation.
|
|
2920
|
+
|
|
2921
|
+
If a request is refused for selecting an unsupported coordinate, the error carries one registry-owned
|
|
2922
|
+
remedy in \`extensions.remedy\`: the supported coordinate to use and the exact copyable document. Use
|
|
2923
|
+
that remedy and ignore any generic GraphQL spelling suggestion.
|
|
2924
|
+
|
|
2925
|
+
If \`admin_schema\` returns a recipe miss, follow its bounded \`teaching.nextCall\` exactly. The teaching
|
|
2926
|
+
payload contains only canonical recipe ids and authored aliases or keywords; it never guesses a semantic
|
|
2927
|
+
match or runs \`admin_probe\`.`;
|
|
2928
|
+
const DOCUMENTATION_V26_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V26);
|
|
2929
|
+
const DOCUMENTATION_V26_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V26);
|
|
2930
|
+
const GETTING_STARTED_V30_TEXT = GETTING_STARTED_V29_TEXT
|
|
2931
|
+
.replace('# Getting started with Meguro v29', '# Getting started with Meguro v30')
|
|
2932
|
+
.replace('Published URI: `' + GETTING_STARTED_V29_URI + '`', 'Published URI: `' + GETTING_STARTED_V30_URI + '`')
|
|
2933
|
+
.replace(DOCUMENTATION_V25_VERSION_LABELS_TEXT, DOCUMENTATION_V26_VERSION_LABELS_TEXT)
|
|
2934
|
+
.replace(DOCUMENTATION_V25_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V26_DEEPER_DOCUMENTATION_TEXT)
|
|
2935
|
+
.replace(CUSTOMER_LINKED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT, ORDER_REFUND_EVIDENCE_GUIDANCE_TEXT)
|
|
2936
|
+
.replace(CORRECTED_OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT, ORDER_REFUND_AUTHORITY_GUIDANCE_TEXT)
|
|
2937
|
+
.replace(CUSTOMER_LINKED_LOYALTY_GIFT_CARD_GUIDANCE_TEXT, ORDER_REFUND_LOYALTY_GUIDANCE_TEXT);
|
|
2938
|
+
const PRODUCT_GUIDE_V27_TEXT = PRODUCT_GUIDE_V26_TEXT
|
|
2939
|
+
.replace('# Meguro product guide v26', '# Meguro product guide v27')
|
|
2940
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V26_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V27_URI + '`')
|
|
2941
|
+
.replace(DOCUMENTATION_V25_VERSION_LABELS_TEXT, DOCUMENTATION_V26_VERSION_LABELS_TEXT)
|
|
2942
|
+
.replaceAll(GETTING_STARTED_V29_URI, GETTING_STARTED_V30_URI)
|
|
2943
|
+
.replaceAll(DOCUMENTATION_INDEX_V25_URI, DOCUMENTATION_INDEX_V26_URI)
|
|
2944
|
+
.replace(CUSTOMER_LINKED_RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT, ORDER_REFUND_EVIDENCE_GUIDANCE_TEXT)
|
|
2945
|
+
.replace(CORRECTED_OFFICIAL_RETURN_FINANCE_GUIDANCE_TEXT, ORDER_REFUND_AUTHORITY_GUIDANCE_TEXT)
|
|
2946
|
+
.replace(CUSTOMER_LINKED_LOYALTY_GIFT_CARD_GUIDANCE_TEXT, ORDER_REFUND_LOYALTY_GUIDANCE_TEXT);
|
|
2947
|
+
/**
|
|
2948
|
+
* MEG-907: the RULED CANONICAL "When not to use Meguro" copy, carried verbatim from the ruling
|
|
2949
|
+
* document — not paraphrased, re-led, or compressed. The section owns Meguro's limits in Meguro's
|
|
2950
|
+
* own voice per the blame-register law, and deliberately restates no price, tier limit, trial
|
|
2951
|
+
* length, compatibility count, corpus size, percentage, or time span.
|
|
2952
|
+
*
|
|
2953
|
+
* The canonical copy closes with a "Where it fits" line whose receipt claims are gated on Brief #4
|
|
2954
|
+
* landing before launch. That line is HELD here: the quotable report-back block ships on the
|
|
2955
|
+
* authenticated report (MEG-828), but the shared receipt an agent actually hands to a ratifying
|
|
2956
|
+
* human — `meguro.shared-receipt.v2` — does not carry it, and Brief #4's share-page work is ruled
|
|
2957
|
+
* to be built at faucet-open. It is held whole rather than softened or partially paraphrased.
|
|
2958
|
+
*/
|
|
2959
|
+
const WHEN_NOT_TO_USE_SECTION_TEXT = `## When not to use Meguro
|
|
2960
|
+
|
|
2961
|
+
Meguro is deliberately narrow. It is the wrong tool when:
|
|
2962
|
+
|
|
2963
|
+
**You need proof of live performance.** Receipts are rehearsal evidence from a simulated store — not forecasts, certifications, or evidence of market demand. Meguro says this in-band because it's true.
|
|
2964
|
+
|
|
2965
|
+
**Your critical path lives outside the modeled subset.** Meguro models a subset of the Shopify Admin API and refuses the rest with a teaching error rather than faking behavior. If the calls your app depends on aren't in the modeled subset — the refusal enumerates it, and the compatibility table lists it — Meguro cannot exercise them, and won't pretend to.
|
|
2966
|
+
|
|
2967
|
+
**You're testing storefront, themes, or checkout UX.** A practice store is commerce state behind an Admin-shaped API, not a rendered storefront.
|
|
2968
|
+
|
|
2969
|
+
**You're load-testing.** The throttle model exists to exercise your agent's backoff discipline, not to benchmark a platform.
|
|
2970
|
+
|
|
2971
|
+
**Your agent never touches commerce state.** If it reads a static catalog once, a fixture file is cheaper.
|
|
2972
|
+
|
|
2973
|
+
**You want someone to run your agent for you.** Meguro never executes your agent; it provides the store and the record. Bring your own agent — that's the design, not a gap.`;
|
|
2974
|
+
|
|
2975
|
+
const DOCUMENTATION_V27_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V27);
|
|
2976
|
+
const DOCUMENTATION_V27_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V27);
|
|
2977
|
+
const GETTING_STARTED_V31_TEXT = GETTING_STARTED_V30_TEXT
|
|
2978
|
+
.replace('# Getting started with Meguro v30', '# Getting started with Meguro v31')
|
|
2979
|
+
.replace('Published URI: `' + GETTING_STARTED_V30_URI + '`', 'Published URI: `' + GETTING_STARTED_V31_URI + '`')
|
|
2980
|
+
.replace(DOCUMENTATION_V26_VERSION_LABELS_TEXT, DOCUMENTATION_V27_VERSION_LABELS_TEXT)
|
|
2981
|
+
.replace(DOCUMENTATION_V26_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V27_DEEPER_DOCUMENTATION_TEXT)
|
|
2982
|
+
.replace(ADMIN_RECIPE_DISCOVERY_GUIDANCE_TEXT, ADMITTED_RECIPE_DISCOVERY_GUIDANCE_TEXT);
|
|
2983
|
+
const PRODUCT_GUIDE_V28_TEXT = PRODUCT_GUIDE_V27_TEXT
|
|
2984
|
+
.replace('# Meguro product guide v27', '# Meguro product guide v28')
|
|
2985
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V27_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V28_URI + '`')
|
|
2986
|
+
.replace(DOCUMENTATION_V26_VERSION_LABELS_TEXT, DOCUMENTATION_V27_VERSION_LABELS_TEXT)
|
|
2987
|
+
.replaceAll(GETTING_STARTED_V30_URI, GETTING_STARTED_V31_URI)
|
|
2988
|
+
.replaceAll(DOCUMENTATION_INDEX_V26_URI, DOCUMENTATION_INDEX_V27_URI)
|
|
2989
|
+
.replace(ADMIN_RECIPE_DISCOVERY_GUIDANCE_TEXT, ADMITTED_RECIPE_DISCOVERY_GUIDANCE_TEXT);
|
|
2990
|
+
const DOCUMENTATION_V28_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V28);
|
|
2991
|
+
const DOCUMENTATION_V28_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V28);
|
|
2992
|
+
const GETTING_STARTED_V32_TEXT = GETTING_STARTED_V31_TEXT
|
|
2993
|
+
.replace('# Getting started with Meguro v31', '# Getting started with Meguro v32')
|
|
2994
|
+
.replace('Published URI: `' + GETTING_STARTED_V31_URI + '`', 'Published URI: `' + GETTING_STARTED_V32_URI + '`')
|
|
2995
|
+
.replace(DOCUMENTATION_V27_VERSION_LABELS_TEXT, DOCUMENTATION_V28_VERSION_LABELS_TEXT)
|
|
2996
|
+
.replace(DOCUMENTATION_V27_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V28_DEEPER_DOCUMENTATION_TEXT)
|
|
2997
|
+
.replace(STALE_COMPARE_QUANTITY_SUPERSEDED_TEXT, STALE_CHANGE_FROM_QUANTITY_TEXT);
|
|
2998
|
+
const PRODUCT_GUIDE_V29_TEXT = PRODUCT_GUIDE_V28_TEXT
|
|
2999
|
+
.replace('# Meguro product guide v28', '# Meguro product guide v29')
|
|
3000
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V28_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V29_URI + '`')
|
|
3001
|
+
.replace(DOCUMENTATION_V27_VERSION_LABELS_TEXT, DOCUMENTATION_V28_VERSION_LABELS_TEXT)
|
|
3002
|
+
.replaceAll(GETTING_STARTED_V31_URI, GETTING_STARTED_V32_URI)
|
|
3003
|
+
.replaceAll(DOCUMENTATION_INDEX_V27_URI, DOCUMENTATION_INDEX_V28_URI)
|
|
3004
|
+
// The boundary sits immediately after the orientation, where a reader deciding whether Meguro
|
|
3005
|
+
// fits at all will meet it before investing in the rest of the guide.
|
|
3006
|
+
.replace('## Begin with live store facts', `${WHEN_NOT_TO_USE_SECTION_TEXT}\n\n## Begin with live store facts`)
|
|
3007
|
+
.replace(STALE_COMPARE_QUANTITY_SUPERSEDED_TEXT, STALE_CHANGE_FROM_QUANTITY_TEXT);
|
|
1426
3008
|
const RECEIPT_GUIDE_V6_TEXT = simulationVocabularyText(
|
|
1427
3009
|
RECEIPT_GUIDE_V5_TEXT
|
|
1428
3010
|
.replace('# Meguro receipt guide v5', '# Meguro receipt guide v6')
|
|
@@ -1455,6 +3037,413 @@ const RECEIPT_GUIDE_V7_WITH_BASIS = RECEIPT_GUIDE_V6_TEXT
|
|
|
1455
3037
|
.replace('Published URI: `' + RECEIPT_GUIDE_V6_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V7_URI + '`')
|
|
1456
3038
|
.replace('## Field inventory', `${DAILY_METRIC_BASIS_GUIDE_TEXT}\n\n## Field inventory`);
|
|
1457
3039
|
const RECEIPT_GUIDE_V7_TEXT = replaceDerivedFieldInventory(RECEIPT_GUIDE_V7_WITH_BASIS, RECEIPT_FIELDS_V7);
|
|
3040
|
+
const RECEIPT_GUIDE_V8_WITH_DIMENSIONS = RECEIPT_GUIDE_V7_TEXT
|
|
3041
|
+
.replace('# Meguro receipt guide v7', '# Meguro receipt guide v8')
|
|
3042
|
+
.replace(`Published URI: \`${RECEIPT_GUIDE_V7_URI}\``, `Published URI: \`${RECEIPT_GUIDE_V8_URI}\``)
|
|
3043
|
+
.replace('## Field inventory', `${RUN_RESULT_DIMENSIONS_GUIDANCE_TEXT}\n\n## Field inventory`);
|
|
3044
|
+
const RECEIPT_GUIDE_V8_TEXT = replaceDerivedFieldInventory(RECEIPT_GUIDE_V8_WITH_DIMENSIONS, RECEIPT_FIELDS_V8);
|
|
3045
|
+
const RECEIPT_GUIDE_V9_WITH_EXPECTED_REFUSALS = RECEIPT_GUIDE_V8_TEXT
|
|
3046
|
+
.replace('# Meguro receipt guide v8', '# Meguro receipt guide v9')
|
|
3047
|
+
.replace(`Published URI: \`${RECEIPT_GUIDE_V8_URI}\``, `Published URI: \`${RECEIPT_GUIDE_V9_URI}\``)
|
|
3048
|
+
.replace('## Field inventory', `${EXPECTED_REFUSAL_GUIDANCE_TEXT}\n\n## Field inventory`);
|
|
3049
|
+
const RECEIPT_GUIDE_V9_TEXT = replaceDerivedFieldInventory(RECEIPT_GUIDE_V9_WITH_EXPECTED_REFUSALS, RECEIPT_FIELDS_V9);
|
|
3050
|
+
const RECEIPT_GUIDE_V10_WITH_RETURN_RESOLUTIONS = RECEIPT_GUIDE_V9_TEXT
|
|
3051
|
+
.replace('# Meguro receipt guide v9', '# Meguro receipt guide v10')
|
|
3052
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V9_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V10_URI + '`')
|
|
3053
|
+
.replace('## Field inventory', `${RETURN_RESOLUTION_EVIDENCE_GUIDANCE_TEXT}\n\n## Field inventory`);
|
|
3054
|
+
const RECEIPT_GUIDE_V10_TEXT = replaceDerivedFieldInventory(RECEIPT_GUIDE_V10_WITH_RETURN_RESOLUTIONS, RECEIPT_FIELDS_V10);
|
|
3055
|
+
const RECEIPT_GUIDE_V11_WITH_FINAL_GATE = RECEIPT_GUIDE_V10_TEXT
|
|
3056
|
+
.replace('# Meguro receipt guide v10', '# Meguro receipt guide v11')
|
|
3057
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V10_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V11_URI + '`')
|
|
3058
|
+
.replace('## Field inventory', `${COMPATIBILITY_AND_FINAL_GATE_GUIDANCE_TEXT}\n\n## Field inventory`);
|
|
3059
|
+
const RECEIPT_GUIDE_V11_TEXT = replaceDerivedFieldInventory(RECEIPT_GUIDE_V11_WITH_FINAL_GATE, RECEIPT_FIELDS_V10);
|
|
3060
|
+
const COMMITTED_CHANGE_REGISTER_GUIDANCE_TEXT = `## Complete committed change register
|
|
3061
|
+
|
|
3062
|
+
For newly issued receipts, \`changes[]\` comes from the accepted action's authoritative modeled
|
|
3063
|
+
before/after consequence, not from requested mutation fields. Each row names the operation and
|
|
3064
|
+
modeled entity type, carries the exact committed \`before\` and \`after\` values, and identifies its
|
|
3065
|
+
\`epistemic\` and \`source\` basis. Numeric rows may also carry \`delta\` and \`unit\`.
|
|
3066
|
+
|
|
3067
|
+
Requested values that did not commit do not appear. Normalized values are the committed values.
|
|
3068
|
+
Rejected actions do not create change rows. When later accepted actions produce the same public
|
|
3069
|
+
consequence fact byte-for-byte, the receipt records that public fact once; distinct before/after
|
|
3070
|
+
truth remains distinct. Historical issued receipt bytes and older guide versions do not change.`;
|
|
3071
|
+
const RECEIPT_GUIDE_V12_WITH_COMPLETE_CHANGES = RECEIPT_GUIDE_V11_TEXT
|
|
3072
|
+
.replace('# Meguro receipt guide v11', '# Meguro receipt guide v12')
|
|
3073
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V11_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V12_URI + '`')
|
|
3074
|
+
.replace('## Field inventory', `${COMMITTED_CHANGE_REGISTER_GUIDANCE_TEXT}\n\n## Field inventory`);
|
|
3075
|
+
const RECEIPT_GUIDE_V12_TEXT = replaceDerivedFieldInventory(RECEIPT_GUIDE_V12_WITH_COMPLETE_CHANGES, RECEIPT_FIELDS_V11);
|
|
3076
|
+
const RECEIPT_GUIDE_V13_WITH_TEMPLATE_CONTEXT = RECEIPT_GUIDE_V12_TEXT
|
|
3077
|
+
.replace('# Meguro receipt guide v12', '# Meguro receipt guide v13')
|
|
3078
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V12_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V13_URI + '`')
|
|
3079
|
+
.replace('## Field inventory', `${TEMPLATE_EVENT_RESOLUTION_GUIDANCE_TEXT}\n\n## Field inventory`);
|
|
3080
|
+
const RECEIPT_GUIDE_V13_TEXT = replaceDerivedFieldInventory(
|
|
3081
|
+
RECEIPT_GUIDE_V13_WITH_TEMPLATE_CONTEXT,
|
|
3082
|
+
RECEIPT_FIELDS_V13,
|
|
3083
|
+
);
|
|
3084
|
+
const RECEIPT_GUIDE_V14_WITH_TERMINOLOGY = RECEIPT_GUIDE_V13_TEXT
|
|
3085
|
+
.replace('# Meguro receipt guide v13', '# Meguro receipt guide v14')
|
|
3086
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V13_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V14_URI + '`')
|
|
3087
|
+
.replace('## Field inventory', `${RECEIPT_PRODUCT_TERMINOLOGY_GUIDANCE_TEXT}\n\n## Field inventory`);
|
|
3088
|
+
const RECEIPT_GUIDE_V14_TEXT = replaceDerivedFieldInventory(
|
|
3089
|
+
RECEIPT_GUIDE_V14_WITH_TERMINOLOGY,
|
|
3090
|
+
RECEIPT_FIELDS_V13,
|
|
3091
|
+
);
|
|
3092
|
+
/**
|
|
3093
|
+
* MEG-1034: the v1 capability boundary, published once as new immutable versions.
|
|
3094
|
+
*
|
|
3095
|
+
* The active documents taught verticals a v1 user cannot execute — Shopify Return writes, Gift Card
|
|
3096
|
+
* creation and readback, cross-location transfer — while describing aggregate scenario physics in
|
|
3097
|
+
* the same voice as served entities. These sections replace that teaching. Internal-only physics is
|
|
3098
|
+
* preserved and described as modeled evidence; deferred verticals appear once, as unavailable, with
|
|
3099
|
+
* no request shape, recipe, readback instruction or nearby substitute.
|
|
3100
|
+
*/
|
|
3101
|
+
const V1_IDEMPOTENCY_REQUIREMENTS_TEXT = `For Admin GraphQL \`${ADMIN_API_SUPPORTED_VERSIONS.join(' and ')}\`, the authoritative set is:
|
|
3102
|
+
\`inventoryAdjustQuantities\` and \`refundCreate\` require
|
|
3103
|
+
\`@idempotent(key: String!)\`. Place \`@idempotent(key: $idempotencyKey)\` exactly once on the single
|
|
3104
|
+
supported mutation root field. The resolved key must be a non-empty string no larger than 256 bytes.
|
|
3105
|
+
Use the authority-derived example when present; unrelated roots must not receive this directive.`;
|
|
3106
|
+
|
|
3107
|
+
const V1_ORDER_REFUND_AUTHORITY_TEXT = `## Ordinary order refunds
|
|
3108
|
+
|
|
3109
|
+
\`refundCreate(input:)\` is the served financial write, and it issues cash only. It refunds a
|
|
3110
|
+
canonical Order — one your agent committed by completing a Draft Order.
|
|
3111
|
+
|
|
3112
|
+
Name the lines you are refunding. \`input.refundLineItems\` must carry at least one line item of that
|
|
3113
|
+
same committed Order, each with a positive whole \`quantity\` and each line named at most once. Value
|
|
3114
|
+
and currency come from the Order's own committed lines, never from the request, so \`input.currency\`
|
|
3115
|
+
may only repeat the Order's currency and there is no amount field to set. The cumulative refund cap
|
|
3116
|
+
is the Order's own outstanding paid amount. \`RefundInput.note\` is opaque customer text.
|
|
3117
|
+
|
|
3118
|
+
\`restockType\` chooses what happens to the units: \`RETURN\` restocks them and \`NO_RESTOCK\` does
|
|
3119
|
+
not. Those are the only two restock decisions this lane models, and the restock location is the
|
|
3120
|
+
Order's own — a caller-selected \`locationId\` is refused.
|
|
3121
|
+
|
|
3122
|
+
Read the committed Refund through \`Order.refunds\`; the Order's \`totalRefundedSet\` and the refunded
|
|
3123
|
+
leg of \`netPaymentSet\` answer for it too. Its id, order, amount, cumulative order total, and replay
|
|
3124
|
+
identity remain stable after checkpoint reopen. Reuse the same \`@idempotent\` key only for an exact
|
|
3125
|
+
replay; the replay returns the same Refund and applies no second commerce action or financial effect.
|
|
3126
|
+
|
|
3127
|
+
Amount-only refunds, explicit transaction routing, store credit, shipping, duties, discrepancy
|
|
3128
|
+
reasons, over-refunding, and a caller-selected \`processedAt\` are not v1 capabilities. Meguro serves
|
|
3129
|
+
no \`Order.transactions\`, so \`RefundInput.transactions\`, \`RefundInput.refundMethods\` and
|
|
3130
|
+
\`Customer.storeCreditAccounts\` are absent from the schema: naming one fails ordinary GraphQL
|
|
3131
|
+
validation rather than returning a substitute.
|
|
3132
|
+
|
|
3133
|
+
Return arrivals, returned units, restocking and their refund economics are modeled evidence produced
|
|
3134
|
+
by world physics. They are read as Impact evidence, never as a Shopify Return entity, and no Shopify
|
|
3135
|
+
Return write is served in v1.
|
|
3136
|
+
|
|
3137
|
+
Receipt and Impact footprints keep four distinct counts. \`acceptedMutationCalls\` includes accepted
|
|
3138
|
+
replays; \`rejectedMutationCalls\` counts refused calls; \`idempotentReplays\` identifies reused
|
|
3139
|
+
results; and \`appliedCommerceActions\` counts only newly applied modeled actions.`;
|
|
3140
|
+
|
|
3141
|
+
const V1_REFUND_EVIDENCE_TEXT = `## Refund evidence accounting
|
|
3142
|
+
|
|
3143
|
+
A cash refund of a canonical Order's committed lines uses the \`refundCreate\` authority, and it is
|
|
3144
|
+
the only served financial write. Modeled return and restocking economics are separate Impact
|
|
3145
|
+
evidence and select nothing on the Order. Receipt and Impact footprints distinguish accepted calls,
|
|
3146
|
+
rejected calls, idempotent replays, and newly applied commerce actions; read the resolution-specific
|
|
3147
|
+
change line for the exact lines and amount.`;
|
|
3148
|
+
|
|
3149
|
+
const V1_MODELED_EVIDENCE_TEXT = `## Served capability and modeled evidence
|
|
3150
|
+
|
|
3151
|
+
A practice store publishes two different kinds of fact, and a template declares them separately.
|
|
3152
|
+
|
|
3153
|
+
- **Served capability.** \`supportedReads\` and \`supportedWrites\` name Shopify Admin coordinates in
|
|
3154
|
+
Meguro's served 2026-07 subset. Every one of them is executable, and every write commits an entity
|
|
3155
|
+
you can read back through an official coordinate.
|
|
3156
|
+
- **Modeled evidence.** \`modeledEvidence\` names aggregate world physics: background sales, demand,
|
|
3157
|
+
baskets, return and restocking pressure, fulfillment pressure, loyalty-credit economics, cohort
|
|
3158
|
+
response and cross-location transfer physics. You read these as Impact evidence on the receipt.
|
|
3159
|
+
|
|
3160
|
+
Modeled evidence is never a served Shopify entity. Background sales and demand are not \`Order\`
|
|
3161
|
+
records, and background return, fulfillment, cohort and loyalty pressure is not a served entity of
|
|
3162
|
+
any kind. The only served Orders are the ones an agent commits through Draft-order completion, together
|
|
3163
|
+
with their canonical children. The shopper surface commits none: it serves UCP general access, which
|
|
3164
|
+
cannot collect payment or place an Order, so a checkout there ends at a buyer handoff.`;
|
|
3165
|
+
|
|
3166
|
+
// These six documents were issued before the shopper checkout withdrawal. Their issued bytes remain
|
|
3167
|
+
// fixed, so their own construction uses the issuance-time wording rather than the current v1 text.
|
|
3168
|
+
const ISSUED_ORDER_REFUND_AUTHORITY_TEXT = `## Ordinary order refunds
|
|
3169
|
+
|
|
3170
|
+
\`refundCreate(input:)\` is the served financial write, and it issues cash only. It refunds a
|
|
3171
|
+
canonical Order — one your agent committed by completing a Draft Order or a storefront checkout.
|
|
3172
|
+
|
|
3173
|
+
Name the lines you are refunding. \`input.refundLineItems\` must carry at least one line item of that
|
|
3174
|
+
same committed Order, each with a positive whole \`quantity\` and each line named at most once. Value
|
|
3175
|
+
and currency come from the Order's own committed lines, never from the request, so \`input.currency\`
|
|
3176
|
+
may only repeat the Order's currency and there is no amount field to set. The cumulative refund cap
|
|
3177
|
+
is the Order's own outstanding paid amount. \`RefundInput.note\` is opaque customer text.
|
|
3178
|
+
|
|
3179
|
+
\`restockType\` chooses what happens to the units: \`RETURN\` restocks them and \`NO_RESTOCK\` does
|
|
3180
|
+
not. Those are the only two restock decisions this lane models, and the restock location is the
|
|
3181
|
+
Order's own — a caller-selected \`locationId\` is refused.
|
|
3182
|
+
|
|
3183
|
+
Read the committed Refund through \`Order.refunds\`; the Order's \`totalRefundedSet\` and the refunded
|
|
3184
|
+
leg of \`netPaymentSet\` answer for it too. Its id, order, amount, cumulative order total, and replay
|
|
3185
|
+
identity remain stable after checkpoint reopen. Reuse the same \`@idempotent\` key only for an exact
|
|
3186
|
+
replay; the replay returns the same Refund and applies no second commerce action or financial effect.
|
|
3187
|
+
|
|
3188
|
+
Amount-only refunds, explicit transaction routing, store credit, shipping, duties, discrepancy
|
|
3189
|
+
reasons, over-refunding, and a caller-selected \`processedAt\` are not v1 capabilities. Meguro serves
|
|
3190
|
+
no \`Order.transactions\`, so \`RefundInput.transactions\`, \`RefundInput.refundMethods\` and
|
|
3191
|
+
\`Customer.storeCreditAccounts\` are absent from the schema: naming one fails ordinary GraphQL
|
|
3192
|
+
validation rather than returning a substitute.
|
|
3193
|
+
|
|
3194
|
+
Return arrivals, returned units, restocking and their refund economics are modeled evidence produced
|
|
3195
|
+
by world physics. They are read as Impact evidence, never as a Shopify Return entity, and no Shopify
|
|
3196
|
+
Return write is served in v1.
|
|
3197
|
+
|
|
3198
|
+
Receipt and Impact footprints keep four distinct counts. \`acceptedMutationCalls\` includes accepted
|
|
3199
|
+
replays; \`rejectedMutationCalls\` counts refused calls; \`idempotentReplays\` identifies reused
|
|
3200
|
+
results; and \`appliedCommerceActions\` counts only newly applied modeled actions.`;
|
|
3201
|
+
const ISSUED_MODELED_EVIDENCE_TEXT = `## Served capability and modeled evidence
|
|
3202
|
+
|
|
3203
|
+
A practice store publishes two different kinds of fact, and a template declares them separately.
|
|
3204
|
+
|
|
3205
|
+
- **Served capability.** \`supportedReads\` and \`supportedWrites\` name Shopify Admin coordinates in
|
|
3206
|
+
Meguro's served 2026-07 subset. Every one of them is executable, and every write commits an entity
|
|
3207
|
+
you can read back through an official coordinate.
|
|
3208
|
+
- **Modeled evidence.** \`modeledEvidence\` names aggregate world physics: background sales, demand,
|
|
3209
|
+
baskets, return and restocking pressure, fulfillment pressure, loyalty-credit economics, cohort
|
|
3210
|
+
response and cross-location transfer physics. You read these as Impact evidence on the receipt.
|
|
3211
|
+
|
|
3212
|
+
Modeled evidence is never a served Shopify entity. Background sales and demand are not \`Order\`
|
|
3213
|
+
records, and background return, fulfillment, cohort and loyalty pressure is not a served entity of
|
|
3214
|
+
any kind. The only served Orders are the ones an agent commits through Draft-order completion or a
|
|
3215
|
+
storefront checkout, together with their canonical children.`;
|
|
3216
|
+
|
|
3217
|
+
function issuedCheckoutEraDocumentationText(text) {
|
|
3218
|
+
return text
|
|
3219
|
+
.replace(V1_ORDER_REFUND_AUTHORITY_TEXT, ISSUED_ORDER_REFUND_AUTHORITY_TEXT)
|
|
3220
|
+
.replace(V1_MODELED_EVIDENCE_TEXT, ISSUED_MODELED_EVIDENCE_TEXT);
|
|
3221
|
+
}
|
|
3222
|
+
|
|
3223
|
+
const V1_VERTICAL_BOUNDARY_TEXT = `## Not available in v1
|
|
3224
|
+
|
|
3225
|
+
These Shopify verticals are deferred. Meguro serves no coordinate for them, so a document naming one
|
|
3226
|
+
fails ordinary GraphQL validation rather than returning a substitute.
|
|
3227
|
+
|
|
3228
|
+
- Arbitrary Product creation. Activate a pre-authored DRAFT Product with
|
|
3229
|
+
\`productUpdate(status: ACTIVE)\` instead.
|
|
3230
|
+
- Collections.
|
|
3231
|
+
- The Shopify Return lifecycle.
|
|
3232
|
+
- Persistent Customer history and enumerable customer-segment membership.
|
|
3233
|
+
- Gift Cards.
|
|
3234
|
+
- Cross-location inventory transfer as a Shopify operation.
|
|
3235
|
+
|
|
3236
|
+
Their modeled counterparts, where the world models one, remain internal physics and are reported as
|
|
3237
|
+
modeled evidence.`;
|
|
3238
|
+
|
|
3239
|
+
const V1_RECEIPT_RESOLUTION_TEXT = `## Order refund resolution and evidence accounting
|
|
3240
|
+
|
|
3241
|
+
A cash refund of a canonical Order's committed lines is a \`refundCreate(input:)\` resolution;
|
|
3242
|
+
\`RefundInput.note\` is opaque customer text and the amount is priced from the named lines. Store
|
|
3243
|
+
credit is not a v1 refund method. Modeled return and restocking economics are separate Impact
|
|
3244
|
+
evidence and are not a Shopify Return lifecycle. The \`storeCreditNetCostCents\` figures under
|
|
3245
|
+
\`financialSourceTotals\` are internal-only modeled loyalty-credit economics on the same footing: they
|
|
3246
|
+
report world physics, and no Shopify store-credit entity or refund method backs them.`;
|
|
3247
|
+
|
|
3248
|
+
const RECEIPT_GUIDE_V15_WITH_BOUNDARY = RECEIPT_GUIDE_V14_TEXT
|
|
3249
|
+
.replace('# Meguro receipt guide v14', '# Meguro receipt guide v15')
|
|
3250
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V14_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V15_URI + '`')
|
|
3251
|
+
.replace(`## Return resolution and evidence accounting
|
|
3252
|
+
|
|
3253
|
+
Return approval records policy approval only; it has no refund or store-credit economics.
|
|
3254
|
+
Return-linked cash is an explicit idempotent \`returnRefund(returnRefundInput:)\` resolution. Ordinary
|
|
3255
|
+
order cash and store credit are \`refundCreate(input:)\` resolutions; \`RefundInput.note\` is opaque
|
|
3256
|
+
customer text and never selects or changes a Return. The two financial resolutions are
|
|
3257
|
+
mutually exclusive for one return.`, V1_RECEIPT_RESOLUTION_TEXT);
|
|
3258
|
+
const RECEIPT_GUIDE_V15_TEXT = replaceDerivedFieldInventory(
|
|
3259
|
+
RECEIPT_GUIDE_V15_WITH_BOUNDARY,
|
|
3260
|
+
RECEIPT_FIELDS_V13,
|
|
3261
|
+
);
|
|
3262
|
+
const PUBLIC_RUN_RECEIPT_MARKDOWN_REPRESENTATION_TEXT = `## Public run receipt JSON and Markdown representations
|
|
3263
|
+
|
|
3264
|
+
This contract applies only to a presentation-bearing public **run** receipt. Its
|
|
3265
|
+
\`canonicalPath\` addresses canonical JSON; append \`.md\` to address its one fixed Markdown
|
|
3266
|
+
alternate. An issued canonical JSON artifact carries \`receipt.presentation.markdown\` with
|
|
3267
|
+
\`mediaType\`, \`bytes\`, \`sha256\`, and \`text\`.
|
|
3268
|
+
|
|
3269
|
+
Meguro compiles that object before immutable public-receipt storage. The stored canonical JSON
|
|
3270
|
+
artifact carries it, so the canonical JSON artifact and its digest cover that stored presentation.
|
|
3271
|
+
The \`.md\` resource serves exactly the stored \`receipt.presentation.markdown.text\`. It selects
|
|
3272
|
+
those bytes and does not render or classify prose during the request.
|
|
3273
|
+
|
|
3274
|
+
JSON and Markdown are distinct representations with distinct digests. \`Content-Digest\` and
|
|
3275
|
+
\`X-Meguro-SHA256\` cover the bytes of the representation selected by its fixed URI. The JSON
|
|
3276
|
+
resource advertises exactly one Markdown alternate through \`Link\`. \`HEAD\` returns the
|
|
3277
|
+
corresponding \`GET\` representation metadata with no body. \`Accept: text/markdown\` on the JSON
|
|
3278
|
+
URI does not switch representations and does not introduce \`Vary: Accept\`.
|
|
3279
|
+
|
|
3280
|
+
Only permitted browser origins may read \`Content-Digest\`, \`Link\`, and \`X-Meguro-SHA256\` through
|
|
3281
|
+
the served CORS exposure contract; do not infer universal origin admission. Unknown, malformed,
|
|
3282
|
+
expired, or non-presentation Markdown resources use the same opaque \`receipt-unavailable\` refusal
|
|
3283
|
+
and receipt-retention boundary as canonical JSON. Public Impact receipts have no Markdown
|
|
3284
|
+
representation contract.`;
|
|
3285
|
+
const RECEIPT_GUIDE_V16_WITH_MARKDOWN_REPRESENTATION = RECEIPT_GUIDE_V15_TEXT
|
|
3286
|
+
.replace('# Meguro receipt guide v15', '# Meguro receipt guide v16')
|
|
3287
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V15_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V16_URI + '`')
|
|
3288
|
+
.replace('## Field inventory', `${PUBLIC_RUN_RECEIPT_MARKDOWN_REPRESENTATION_TEXT}\n\n## Field inventory`);
|
|
3289
|
+
const RECEIPT_GUIDE_V16_TEXT = replaceDerivedFieldInventory(
|
|
3290
|
+
RECEIPT_GUIDE_V16_WITH_MARKDOWN_REPRESENTATION,
|
|
3291
|
+
RECEIPT_FIELDS_V13,
|
|
3292
|
+
);
|
|
3293
|
+
|
|
3294
|
+
// MEG-967: `send_winback_offer` commits one operating cost —
|
|
3295
|
+
// customerCount x (contactCostCents + annoyancePenaltyCents). Naming it an "offer cost" read as
|
|
3296
|
+
// offer value, which the discount governs instead. Publish the corrected field name as one new
|
|
3297
|
+
// generation; v4-v16 keep their bytes and their original name.
|
|
3298
|
+
const RECEIPT_GUIDE_V17_TEXT = RECEIPT_GUIDE_V16_TEXT
|
|
3299
|
+
.replace('# Meguro receipt guide v16', '# Meguro receipt guide v17')
|
|
3300
|
+
.replace('Published URI: `' + RECEIPT_GUIDE_V16_URI + '`', 'Published URI: `' + RECEIPT_GUIDE_V17_URI + '`')
|
|
3301
|
+
.replaceAll('winbackOfferCostCents', 'winbackContactRecoveryCostCents');
|
|
3302
|
+
|
|
3303
|
+
const DOCUMENTATION_V29_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V29);
|
|
3304
|
+
const DOCUMENTATION_V29_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V29);
|
|
3305
|
+
const DOCUMENTATION_V30_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V30);
|
|
3306
|
+
const DOCUMENTATION_V30_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V30);
|
|
3307
|
+
const DOCUMENTATION_V33_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V33);
|
|
3308
|
+
const DOCUMENTATION_V33_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V33);
|
|
3309
|
+
const DOCUMENTATION_V34_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V34);
|
|
3310
|
+
const DOCUMENTATION_V34_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V34);
|
|
3311
|
+
const DOCUMENTATION_V35_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V35);
|
|
3312
|
+
const DOCUMENTATION_V35_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V35);
|
|
3313
|
+
|
|
3314
|
+
const GETTING_STARTED_V33_TEXT = GETTING_STARTED_V32_TEXT
|
|
3315
|
+
.replace('# Getting started with Meguro v32', '# Getting started with Meguro v33')
|
|
3316
|
+
.replace('Published URI: `' + GETTING_STARTED_V32_URI + '`', 'Published URI: `' + GETTING_STARTED_V33_URI + '`')
|
|
3317
|
+
.replace(DOCUMENTATION_V28_VERSION_LABELS_TEXT, DOCUMENTATION_V29_VERSION_LABELS_TEXT)
|
|
3318
|
+
.replace(DOCUMENTATION_V28_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V29_DEEPER_DOCUMENTATION_TEXT)
|
|
3319
|
+
.replaceAll(RECEIPT_GUIDE_V14_URI, RECEIPT_GUIDE_V15_URI)
|
|
3320
|
+
.replace(CORRECTED_IDEMPOTENCY_REQUIREMENTS_TEXT, V1_IDEMPOTENCY_REQUIREMENTS_TEXT)
|
|
3321
|
+
.replace(ORDER_REFUND_EVIDENCE_GUIDANCE_TEXT, V1_REFUND_EVIDENCE_TEXT)
|
|
3322
|
+
.replace(ORDER_REFUND_AUTHORITY_GUIDANCE_TEXT, V1_ORDER_REFUND_AUTHORITY_TEXT)
|
|
3323
|
+
.replace(`${ORDER_REFUND_LOYALTY_GUIDANCE_TEXT}\n\n`, '')
|
|
3324
|
+
.replace('## Deeper in-band documentation', `${V1_MODELED_EVIDENCE_TEXT}\n\n${V1_VERTICAL_BOUNDARY_TEXT}\n\n## Deeper in-band documentation`);
|
|
3325
|
+
|
|
3326
|
+
const GETTING_STARTED_V34_SUCCESSOR_TEXT = GETTING_STARTED_V33_TEXT
|
|
3327
|
+
.replace('# Getting started with Meguro v33', '# Getting started with Meguro v34')
|
|
3328
|
+
.replace('Published URI: `' + GETTING_STARTED_V33_URI + '`', 'Published URI: `' + GETTING_STARTED_V34_URI + '`')
|
|
3329
|
+
.replace(DOCUMENTATION_V29_VERSION_LABELS_TEXT, DOCUMENTATION_V30_VERSION_LABELS_TEXT)
|
|
3330
|
+
.replace(DOCUMENTATION_V29_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V30_DEEPER_DOCUMENTATION_TEXT)
|
|
3331
|
+
.replaceAll(DOCUMENTATION_INDEX_V29_URI, DOCUMENTATION_INDEX_V30_URI)
|
|
3332
|
+
.replace(`1. Call \`templates_list()\` to discover the exact supported template keys.
|
|
3333
|
+
2. Call \`stores_list()\`; reuse an owned practice store or call
|
|
3334
|
+
\`store_create({ templateKey })\` with a key returned by \`templates_list\`.`, `Canonical cold sequence: \`templates_list\` → \`template_get\` → \`store_create\` → \`practice_run_start\`.
|
|
3335
|
+
|
|
3336
|
+
1. Call \`templates_list()\` to discover the exact supported template keys. It is the compact
|
|
3337
|
+
complete catalog: every row carries \`key\`, \`label\`, \`category\`, \`recommended\`, \`bestFor\`
|
|
3338
|
+
and \`recommendedRunDays\` — enough to choose, and no contracts.
|
|
3339
|
+
2. Call \`template_get({ templateKey })\` for the key you are considering. It returns that one
|
|
3340
|
+
template's complete record: what the agent sees, timing, supported reads and writes, operation
|
|
3341
|
+
contracts, unsupported contracts, capability boundaries, modeled evidence and physics, and
|
|
3342
|
+
rubric fields. Choose from the catalog, then read the template you chose.
|
|
3343
|
+
3. Call \`stores_list()\`; reuse an owned practice store or call
|
|
3344
|
+
\`store_create({ templateKey })\` with a key returned by \`templates_list\`.`)
|
|
3345
|
+
.replace(
|
|
3346
|
+
'| Which templates are available? | Call \\`templates_list\\`. |',
|
|
3347
|
+
'| Which templates are available? | Call \\`templates_list\\` to choose, then \\`template_get({ templateKey })\\` for that template\'s contracts and boundaries. |',
|
|
3348
|
+
);
|
|
3349
|
+
const GETTING_STARTED_V34_TEXT = issuedCheckoutEraDocumentationText(GETTING_STARTED_V34_SUCCESSOR_TEXT);
|
|
3350
|
+
|
|
3351
|
+
const PRODUCT_GUIDE_V30_TEXT = PRODUCT_GUIDE_V29_TEXT
|
|
3352
|
+
.replace('# Meguro product guide v29', '# Meguro product guide v30')
|
|
3353
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V29_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V30_URI + '`')
|
|
3354
|
+
.replace(DOCUMENTATION_V28_VERSION_LABELS_TEXT, DOCUMENTATION_V29_VERSION_LABELS_TEXT)
|
|
3355
|
+
.replaceAll(GETTING_STARTED_V32_URI, GETTING_STARTED_V33_URI)
|
|
3356
|
+
.replaceAll(DOCUMENTATION_INDEX_V28_URI, DOCUMENTATION_INDEX_V29_URI)
|
|
3357
|
+
.replaceAll(RECEIPT_GUIDE_V14_URI, RECEIPT_GUIDE_V15_URI)
|
|
3358
|
+
.replace(CORRECTED_IDEMPOTENCY_REQUIREMENTS_TEXT, V1_IDEMPOTENCY_REQUIREMENTS_TEXT)
|
|
3359
|
+
.replace(ORDER_REFUND_EVIDENCE_GUIDANCE_TEXT, V1_REFUND_EVIDENCE_TEXT)
|
|
3360
|
+
.replace(ORDER_REFUND_AUTHORITY_GUIDANCE_TEXT, V1_ORDER_REFUND_AUTHORITY_TEXT)
|
|
3361
|
+
.replace(`${ORDER_REFUND_LOYALTY_GUIDANCE_TEXT}\n\n`, '')
|
|
3362
|
+
.replace('## Begin with live store facts', `${V1_MODELED_EVIDENCE_TEXT}\n\n${V1_VERTICAL_BOUNDARY_TEXT}\n\n## Begin with live store facts`);
|
|
3363
|
+
|
|
3364
|
+
const PRODUCT_GUIDE_V31_SUCCESSOR_TEXT = PRODUCT_GUIDE_V30_TEXT
|
|
3365
|
+
.replace('# Meguro product guide v30', '# Meguro product guide v31')
|
|
3366
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V30_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V31_URI + '`')
|
|
3367
|
+
.replace(DOCUMENTATION_V29_VERSION_LABELS_TEXT, DOCUMENTATION_V30_VERSION_LABELS_TEXT)
|
|
3368
|
+
.replaceAll(GETTING_STARTED_V33_URI, GETTING_STARTED_V34_URI)
|
|
3369
|
+
.replaceAll(DOCUMENTATION_INDEX_V29_URI, DOCUMENTATION_INDEX_V30_URI);
|
|
3370
|
+
const PRODUCT_GUIDE_V31_TEXT = issuedCheckoutEraDocumentationText(PRODUCT_GUIDE_V31_SUCCESSOR_TEXT);
|
|
3371
|
+
|
|
3372
|
+
const CANONICAL_ADVANCE_CURSOR_GUIDANCE_TEXT = `## One server-owned advance cursor
|
|
3373
|
+
|
|
3374
|
+
Every practice-run start and status response carries \`practiceRun.advanceCursor\` with exactly
|
|
3375
|
+
\`expectedDay\` and \`expectedCallSeq\`. Copy that object unchanged into the next
|
|
3376
|
+
\`practice_run_advance\` call or HTTP advance body. Do not choose between \`currentDay\` and
|
|
3377
|
+
\`watermarkDay\`, and do not combine call-sequence fields from separate reads.
|
|
3378
|
+
|
|
3379
|
+
Start, accepted-call status, zero-call status, advance, checkpoint, terminal confirmation,
|
|
3380
|
+
refusal recovery, checkpoint reopen, and completed status all return the same server-owned shape.
|
|
3381
|
+
A stale cursor fails closed and moves no Store time; the refusal returns a fresh \`advanceCursor\`
|
|
3382
|
+
for one exact retry.`;
|
|
3383
|
+
|
|
3384
|
+
const GETTING_STARTED_V35_SUCCESSOR_TEXT = GETTING_STARTED_V34_SUCCESSOR_TEXT
|
|
3385
|
+
.replace('# Getting started with Meguro v34', '# Getting started with Meguro v35')
|
|
3386
|
+
.replace('Published URI: `' + GETTING_STARTED_V34_URI + '`', 'Published URI: `' + GETTING_STARTED_V35_URI + '`')
|
|
3387
|
+
.replace(DOCUMENTATION_V30_VERSION_LABELS_TEXT, DOCUMENTATION_V33_VERSION_LABELS_TEXT)
|
|
3388
|
+
.replace(DOCUMENTATION_V30_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V33_DEEPER_DOCUMENTATION_TEXT)
|
|
3389
|
+
.replaceAll(DOCUMENTATION_INDEX_V30_URI, DOCUMENTATION_INDEX_V33_URI)
|
|
3390
|
+
.replace(`- \`storeId\` is the canonical public id of a practice store. \`worldId\` is the legacy alias for the
|
|
3391
|
+
same id; prefer \`storeId\` in new integrations.`, `- \`storeId\` is the public id of a practice store. Pass it unchanged to
|
|
3392
|
+
\`get_connection_details\` and \`practice_run_start\`.
|
|
3393
|
+
- When declaring an external-agent source revision, use \`externalAgent.commitSha\`.`)
|
|
3394
|
+
.replace(ADVANCE_CURSOR_GUIDANCE_TEXT, CANONICAL_ADVANCE_CURSOR_GUIDANCE_TEXT);
|
|
3395
|
+
const GETTING_STARTED_V35_TEXT = issuedCheckoutEraDocumentationText(GETTING_STARTED_V35_SUCCESSOR_TEXT);
|
|
3396
|
+
|
|
3397
|
+
const GETTING_STARTED_V36_SUCCESSOR_TEXT = GETTING_STARTED_V35_SUCCESSOR_TEXT
|
|
3398
|
+
.replace('# Getting started with Meguro v35', '# Getting started with Meguro v36')
|
|
3399
|
+
.replace('Published URI: `' + GETTING_STARTED_V35_URI + '`', 'Published URI: `' + GETTING_STARTED_V36_URI + '`')
|
|
3400
|
+
.replace(DOCUMENTATION_V33_VERSION_LABELS_TEXT, DOCUMENTATION_V34_VERSION_LABELS_TEXT)
|
|
3401
|
+
.replace(DOCUMENTATION_V33_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V34_DEEPER_DOCUMENTATION_TEXT)
|
|
3402
|
+
.replaceAll(DOCUMENTATION_INDEX_V33_URI, DOCUMENTATION_INDEX_V34_URI)
|
|
3403
|
+
.replaceAll(GATE_POLICY_V4_URI, GATE_POLICY_V5_URI);
|
|
3404
|
+
const GETTING_STARTED_V36_TEXT = issuedCheckoutEraDocumentationText(GETTING_STARTED_V36_SUCCESSOR_TEXT);
|
|
3405
|
+
|
|
3406
|
+
const GETTING_STARTED_V37_TEXT = GETTING_STARTED_V36_SUCCESSOR_TEXT
|
|
3407
|
+
.replace('# Getting started with Meguro v36', '# Getting started with Meguro v37')
|
|
3408
|
+
.replace('Published URI: `' + GETTING_STARTED_V36_URI + '`', 'Published URI: `' + GETTING_STARTED_V37_URI + '`')
|
|
3409
|
+
.replace(DOCUMENTATION_V34_VERSION_LABELS_TEXT, DOCUMENTATION_V35_VERSION_LABELS_TEXT)
|
|
3410
|
+
.replace(DOCUMENTATION_V34_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V35_DEEPER_DOCUMENTATION_TEXT)
|
|
3411
|
+
.replaceAll(DOCUMENTATION_INDEX_V34_URI, DOCUMENTATION_INDEX_V35_URI)
|
|
3412
|
+
.replace('3. Call `get_connection_details({ storeId })`', '4. Call `get_connection_details({ storeId })`')
|
|
3413
|
+
.replace('4. Call `practice_run_start({ storeId, clock })`', '5. Call `practice_run_start({ storeId, clock })`')
|
|
3414
|
+
.replace('5. Run the commerce agent', '6. Run the commerce agent')
|
|
3415
|
+
.replace('6. Call `practice_run_status({ attemptId })`', '7. Call `practice_run_status({ attemptId })`')
|
|
3416
|
+
.replace('7. Call `practice_run_advance({ attemptId, days, advanceCursor })`', '8. Call `practice_run_advance({ attemptId, days, advanceCursor })`')
|
|
3417
|
+
.replace('8. Call `practice_run_finish({ attemptId })`', '9. Call `practice_run_finish({ attemptId })`')
|
|
3418
|
+
.replace('9. Call `practice_run_report({ attemptId })`', '10. Call `practice_run_report({ attemptId })`');
|
|
3419
|
+
|
|
3420
|
+
const PRODUCT_GUIDE_V32_SUCCESSOR_TEXT = PRODUCT_GUIDE_V31_SUCCESSOR_TEXT
|
|
3421
|
+
.replace('# Meguro product guide v31', '# Meguro product guide v32')
|
|
3422
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V31_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V32_URI + '`')
|
|
3423
|
+
.replace(DOCUMENTATION_V30_VERSION_LABELS_TEXT, DOCUMENTATION_V33_VERSION_LABELS_TEXT)
|
|
3424
|
+
.replaceAll(GETTING_STARTED_V34_URI, GETTING_STARTED_V35_URI)
|
|
3425
|
+
.replaceAll(DOCUMENTATION_INDEX_V30_URI, DOCUMENTATION_INDEX_V33_URI)
|
|
3426
|
+
.replace(ADVANCE_CURSOR_GUIDANCE_TEXT, CANONICAL_ADVANCE_CURSOR_GUIDANCE_TEXT);
|
|
3427
|
+
const PRODUCT_GUIDE_V32_TEXT = issuedCheckoutEraDocumentationText(PRODUCT_GUIDE_V32_SUCCESSOR_TEXT);
|
|
3428
|
+
|
|
3429
|
+
const PRODUCT_GUIDE_V33_SUCCESSOR_TEXT = PRODUCT_GUIDE_V32_SUCCESSOR_TEXT
|
|
3430
|
+
.replace('# Meguro product guide v32', '# Meguro product guide v33')
|
|
3431
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V32_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V33_URI + '`')
|
|
3432
|
+
.replace(DOCUMENTATION_V33_VERSION_LABELS_TEXT, DOCUMENTATION_V34_VERSION_LABELS_TEXT)
|
|
3433
|
+
.replaceAll(GETTING_STARTED_V35_URI, GETTING_STARTED_V36_URI)
|
|
3434
|
+
.replaceAll(DOCUMENTATION_INDEX_V33_URI, DOCUMENTATION_INDEX_V34_URI)
|
|
3435
|
+
.replaceAll(RECEIPT_GUIDE_V15_URI, RECEIPT_GUIDE_V17_URI)
|
|
3436
|
+
.replaceAll(GATE_POLICY_V3_URI, GATE_POLICY_V5_URI)
|
|
3437
|
+
.replaceAll(GATE_POLICY_V4_URI, GATE_POLICY_V5_URI);
|
|
3438
|
+
const PRODUCT_GUIDE_V33_TEXT = issuedCheckoutEraDocumentationText(PRODUCT_GUIDE_V33_SUCCESSOR_TEXT);
|
|
3439
|
+
|
|
3440
|
+
const PRODUCT_GUIDE_V34_TEXT = PRODUCT_GUIDE_V33_SUCCESSOR_TEXT
|
|
3441
|
+
.replace('# Meguro product guide v33', '# Meguro product guide v34')
|
|
3442
|
+
.replace('Published URI: `' + PRODUCT_GUIDE_V33_URI + '`', 'Published URI: `' + PRODUCT_GUIDE_V34_URI + '`')
|
|
3443
|
+
.replace(DOCUMENTATION_V34_VERSION_LABELS_TEXT, DOCUMENTATION_V35_VERSION_LABELS_TEXT)
|
|
3444
|
+
.replaceAll(GETTING_STARTED_V36_URI, GETTING_STARTED_V37_URI)
|
|
3445
|
+
.replaceAll(DOCUMENTATION_INDEX_V34_URI, DOCUMENTATION_INDEX_V35_URI);
|
|
3446
|
+
|
|
1458
3447
|
const GATE_POLICY_V2_TEXT = simulationVocabularyText(
|
|
1459
3448
|
GATE_POLICY_TEXT
|
|
1460
3449
|
.replace('# Meguro Gate policy v1', '# Meguro Gate policy v2')
|
|
@@ -1467,6 +3456,11 @@ const GATE_POLICY_V1_CHECK_TEXT = GATE_POLICY_V1_CHECKS.map((check) => `### ${ch
|
|
|
1467
3456
|
- Flip condition: ${check.flip}.`).join('\n\n');
|
|
1468
3457
|
const GATE_POLICY_V3_CHECK_TEXT = GATE_POLICY_V3_CHECKS.map((check) => `### ${check.name}
|
|
1469
3458
|
|
|
3459
|
+
- Receipt facts: ${check.facts.map((fact) => `\`${fact}\``).join(', ')}
|
|
3460
|
+
- Threshold: ${check.threshold}.
|
|
3461
|
+
- Flip condition: ${check.flip}.`).join('\n\n');
|
|
3462
|
+
const GATE_POLICY_V6_CHECK_TEXT = GATE_POLICY_V6_CHECKS.map((check) => `### ${check.name}
|
|
3463
|
+
|
|
1470
3464
|
- Receipt facts: ${check.facts.map((fact) => `\`${fact}\``).join(', ')}
|
|
1471
3465
|
- Threshold: ${check.threshold}.
|
|
1472
3466
|
- Flip condition: ${check.flip}.`).join('\n\n');
|
|
@@ -1496,6 +3490,107 @@ corrects its fact-path addressing against the complete canonical verdict payload
|
|
|
1496
3490
|
the runtime thresholds or either historical documentation resource. Versions 1 and 2 retain their
|
|
1497
3491
|
original bytes and digests, while this corrected resource remains immutable at \`${GATE_POLICY_V3_URI}\`.`,
|
|
1498
3492
|
);
|
|
3493
|
+
const GATE_POLICY_V4_TEXT = GATE_POLICY_V3_TEXT
|
|
3494
|
+
.replace('# Meguro Gate policy v3', '# Meguro Configured Receipt Gate policy v4')
|
|
3495
|
+
.replace(`Published URI: \`${GATE_POLICY_V3_URI}\``, `Published URI: \`${GATE_POLICY_V4_URI}\``)
|
|
3496
|
+
.replace('## Canonical fact root', `${RECEIPT_PRODUCT_TERMINOLOGY_GUIDANCE_TEXT}\n\n## Canonical fact root`);
|
|
3497
|
+
const GATE_POLICY_V5_TEXT = GATE_POLICY_V4_TEXT
|
|
3498
|
+
.replace('# Meguro Configured Receipt Gate policy v4', '# Meguro Configured Receipt Gate policy v5')
|
|
3499
|
+
.replace('Published URI: `' + GATE_POLICY_V4_URI + '`', 'Published URI: `' + GATE_POLICY_V5_URI + '`')
|
|
3500
|
+
.replaceAll(GATE_POLICY_V3_URI, GATE_POLICY_V5_URI)
|
|
3501
|
+
.replace(
|
|
3502
|
+
'Documentation version 3\ncorrects its fact-path addressing against the complete canonical verdict payload;',
|
|
3503
|
+
'Documentation version 5\npublishes that fact-path addressing against the complete canonical verdict payload;',
|
|
3504
|
+
)
|
|
3505
|
+
.replace(
|
|
3506
|
+
'Versions 1 and 2 retain their\noriginal bytes and digests',
|
|
3507
|
+
'Versions 1 through 4 retain their\noriginal bytes and digests',
|
|
3508
|
+
);
|
|
3509
|
+
|
|
3510
|
+
// MEG-1204: one atomic generation. Each new version carries every correction that applies to it and
|
|
3511
|
+
// no other movement; v5/v37/v34/v17/v35 and earlier keep their exact bytes and digests.
|
|
3512
|
+
const GATE_POLICY_V6_TEXT = GATE_POLICY_V5_TEXT
|
|
3513
|
+
.replace('# Meguro Configured Receipt Gate policy v5', '# Meguro Configured Receipt Gate policy v6')
|
|
3514
|
+
.replaceAll(GATE_POLICY_V5_URI, GATE_POLICY_V6_URI)
|
|
3515
|
+
.replace(GATE_POLICY_V3_CHECK_TEXT, GATE_POLICY_V6_CHECK_TEXT)
|
|
3516
|
+
.replace(MUTABLE_GATE_ABSENCE_TEXT, STATE_NEUTRAL_GATE_PRESENCE_TEXT)
|
|
3517
|
+
.replace('Documentation version 5\npublishes', 'Documentation version 6\npublishes')
|
|
3518
|
+
.replace('Versions 1 through 4 retain their\noriginal bytes and digests', 'Versions 1 through 5 retain their\noriginal bytes and digests');
|
|
3519
|
+
|
|
3520
|
+
const RECEIPT_GUIDE_V18_FIELD_INDEX_HEADING_TEXT = `## Generated field index
|
|
3521
|
+
|
|
3522
|
+
This section is a generated index of paths, not an authored interpretation. Every documented path
|
|
3523
|
+
below participates in the bidirectional completeness guard: it proves that every schema path is
|
|
3524
|
+
documented and that no documented path has left its schema. It does not establish what a field
|
|
3525
|
+
means; read the authored sections above for meaning, basis, and limits. \`[]\` means each array
|
|
3526
|
+
item. A field whose value is an opaque, separately versioned object is documented at that object
|
|
3527
|
+
boundary and by its own schema section.`;
|
|
3528
|
+
const RECEIPT_GUIDE_V17_FIELD_INVENTORY_HEADING_TEXT = `## Field inventory
|
|
3529
|
+
|
|
3530
|
+
Every documented path below participates in the bidirectional completeness guard. \`[]\` means each
|
|
3531
|
+
array item. A field whose value is an opaque, separately versioned object is documented at that
|
|
3532
|
+
object boundary and by its own schema section.`;
|
|
3533
|
+
const RECEIPT_GUIDE_V17_WINBACK_MEANING_TEXT = ' — Recorded winback offer cost cents in meguro.hosted-impact-report.v1; interpret it with that schema\'s basis and adjacent evidence fields.';
|
|
3534
|
+
const RECEIPT_GUIDE_V18_WINBACK_MEANING_TEXT = ' — The per-contact recovery operating cost in cents: contact cost plus annoyance penalty for each contacted customer. It is an operating cost, distinct from any discount that changes the recovered price.';
|
|
3535
|
+
const RECEIPT_GUIDE_V18_TEXT = RECEIPT_GUIDE_V17_TEXT
|
|
3536
|
+
.replace('# Meguro receipt guide v17', '# Meguro receipt guide v18')
|
|
3537
|
+
.replaceAll(RECEIPT_GUIDE_V17_URI, RECEIPT_GUIDE_V18_URI)
|
|
3538
|
+
.replace(MUTABLE_GATE_ABSENCE_TEXT, STATE_NEUTRAL_GATE_PRESENCE_TEXT)
|
|
3539
|
+
.replace(RECEIPT_GUIDE_V17_FIELD_INVENTORY_HEADING_TEXT, RECEIPT_GUIDE_V18_FIELD_INDEX_HEADING_TEXT)
|
|
3540
|
+
.replaceAll(RECEIPT_GUIDE_V17_WINBACK_MEANING_TEXT, RECEIPT_GUIDE_V18_WINBACK_MEANING_TEXT);
|
|
3541
|
+
|
|
3542
|
+
const DOCUMENTATION_V36_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V36);
|
|
3543
|
+
const DOCUMENTATION_V36_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V36);
|
|
3544
|
+
const DOCUMENTATION_V37_VERSION_LABELS_TEXT = versionLabelsText(DOCUMENTATION_CURRENCY_V37);
|
|
3545
|
+
const DOCUMENTATION_V37_DEEPER_DOCUMENTATION_TEXT = deeperDocumentationText(DOCUMENTATION_CURRENCY_V37);
|
|
3546
|
+
|
|
3547
|
+
const HISTORY_SPAN_BASIS_FACT_TEXT = `Each practice store's history span is a live per-store fact. Its immutable creation basis is
|
|
3548
|
+
\`historySpan.creation\`: \`historySpan.creation.startDate\`, \`historySpan.creation.endDate\`, and
|
|
3549
|
+
\`historySpan.creation.days\` always describe the generated span. Its live queryable basis is
|
|
3550
|
+
\`historySpan.current.days\`, which can advance when a run advances Store time. Do not combine fields
|
|
3551
|
+
across those structures.`;
|
|
3552
|
+
const HOSTED_REAL_STORE_HISTORY_LANE_GUIDANCE_TEXT = `Meguro's separate real-store history lane is served through hosted OAuth MCP and public STDIO. Call
|
|
3553
|
+
\`runs_list\` to discover history runs, \`run_status\` to inspect one, \`run_report\` to read its report,
|
|
3554
|
+
and \`twin_diff\` only for a valid recorded history-run pair.`;
|
|
3555
|
+
|
|
3556
|
+
const GETTING_STARTED_V38_TEXT = GETTING_STARTED_V37_TEXT
|
|
3557
|
+
.replace('# Getting started with Meguro v37', '# Getting started with Meguro v38')
|
|
3558
|
+
.replaceAll(GETTING_STARTED_V37_URI, GETTING_STARTED_V38_URI)
|
|
3559
|
+
.replace(DOCUMENTATION_V35_VERSION_LABELS_TEXT, DOCUMENTATION_V36_VERSION_LABELS_TEXT)
|
|
3560
|
+
.replace(DOCUMENTATION_V35_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V36_DEEPER_DOCUMENTATION_TEXT)
|
|
3561
|
+
.replace(MUTABLE_GATE_ABSENCE_TEXT, STATE_NEUTRAL_GATE_PRESENCE_TEXT);
|
|
3562
|
+
|
|
3563
|
+
const PRODUCT_GUIDE_V35_TEXT = PRODUCT_GUIDE_V34_TEXT
|
|
3564
|
+
.replace('# Meguro product guide v34', '# Meguro product guide v35')
|
|
3565
|
+
.replaceAll(PRODUCT_GUIDE_V34_URI, PRODUCT_GUIDE_V35_URI)
|
|
3566
|
+
.replace(DOCUMENTATION_V35_VERSION_LABELS_TEXT, DOCUMENTATION_V36_VERSION_LABELS_TEXT)
|
|
3567
|
+
.replaceAll(GETTING_STARTED_V37_URI, GETTING_STARTED_V38_URI)
|
|
3568
|
+
.replaceAll(DOCUMENTATION_INDEX_V35_URI, DOCUMENTATION_INDEX_V36_URI)
|
|
3569
|
+
.replaceAll(RECEIPT_GUIDE_V17_URI, RECEIPT_GUIDE_V18_URI)
|
|
3570
|
+
.replaceAll(GATE_POLICY_V5_URI, GATE_POLICY_V6_URI)
|
|
3571
|
+
.replace(MUTABLE_GATE_ABSENCE_TEXT, STATE_NEUTRAL_GATE_PRESENCE_TEXT);
|
|
3572
|
+
|
|
3573
|
+
const GETTING_STARTED_V39_TEXT = GETTING_STARTED_V38_TEXT
|
|
3574
|
+
.replace('# Getting started with Meguro v38', '# Getting started with Meguro v39')
|
|
3575
|
+
.replaceAll(GETTING_STARTED_V38_URI, GETTING_STARTED_V39_URI)
|
|
3576
|
+
.replace(DOCUMENTATION_V36_VERSION_LABELS_TEXT, DOCUMENTATION_V37_VERSION_LABELS_TEXT)
|
|
3577
|
+
.replace(DOCUMENTATION_V36_DEEPER_DOCUMENTATION_TEXT, DOCUMENTATION_V37_DEEPER_DOCUMENTATION_TEXT)
|
|
3578
|
+
.replaceAll(DOCUMENTATION_INDEX_V36_URI, DOCUMENTATION_INDEX_V37_URI)
|
|
3579
|
+
.replace(REAL_STORE_HISTORY_LANE_BRIDGE, HOSTED_REAL_STORE_HISTORY_LANE_GUIDANCE_TEXT)
|
|
3580
|
+
.replace("Each practice store's history span is a live per-store fact.", HISTORY_SPAN_BASIS_FACT_TEXT)
|
|
3581
|
+
.replaceAll('stores[].historySpan.days', 'stores[].historySpan.current.days')
|
|
3582
|
+
.replaceAll('historySpan.historyDays', 'historySpan.current.days');
|
|
3583
|
+
|
|
3584
|
+
const PRODUCT_GUIDE_V36_TEXT = PRODUCT_GUIDE_V35_TEXT
|
|
3585
|
+
.replace('# Meguro product guide v35', '# Meguro product guide v36')
|
|
3586
|
+
.replaceAll(PRODUCT_GUIDE_V35_URI, PRODUCT_GUIDE_V36_URI)
|
|
3587
|
+
.replace(DOCUMENTATION_V36_VERSION_LABELS_TEXT, DOCUMENTATION_V37_VERSION_LABELS_TEXT)
|
|
3588
|
+
.replaceAll(GETTING_STARTED_V38_URI, GETTING_STARTED_V39_URI)
|
|
3589
|
+
.replaceAll(DOCUMENTATION_INDEX_V36_URI, DOCUMENTATION_INDEX_V37_URI)
|
|
3590
|
+
.replace(REAL_STORE_HISTORY_LANE_BRIDGE, HOSTED_REAL_STORE_HISTORY_LANE_GUIDANCE_TEXT)
|
|
3591
|
+
.replace("Each practice store's history span is a live per-store fact.", HISTORY_SPAN_BASIS_FACT_TEXT)
|
|
3592
|
+
.replaceAll('stores[].historySpan.days', 'stores[].historySpan.current.days')
|
|
3593
|
+
.replaceAll('historySpan.historyDays', 'historySpan.current.days');
|
|
1499
3594
|
|
|
1500
3595
|
function gatePolicyValueAt(value, path) {
|
|
1501
3596
|
return path.replace(/\[(\d+)\]/gu, '.$1').split('.').reduce((current, key) => {
|
|
@@ -1674,50 +3769,608 @@ const CATALOG = buildDocumentationCatalog([
|
|
|
1674
3769
|
text: GETTING_STARTED_V8_TEXT,
|
|
1675
3770
|
},
|
|
1676
3771
|
{
|
|
1677
|
-
topic: '
|
|
1678
|
-
version:
|
|
1679
|
-
uri:
|
|
1680
|
-
name: '
|
|
1681
|
-
title: '
|
|
1682
|
-
description: '
|
|
1683
|
-
text:
|
|
1684
|
-
expectedSha256: PRODUCT_GUIDE_SHA256,
|
|
3772
|
+
topic: 'getting-started',
|
|
3773
|
+
version: GETTING_STARTED_V9_VERSION,
|
|
3774
|
+
uri: GETTING_STARTED_V9_URI,
|
|
3775
|
+
name: 'Getting started with Meguro v9',
|
|
3776
|
+
title: 'Getting started with Meguro v9',
|
|
3777
|
+
description: 'Hosted sequence with four independent run-result dimensions and neutral modeled-outcome language.',
|
|
3778
|
+
text: GETTING_STARTED_V9_TEXT,
|
|
1685
3779
|
},
|
|
1686
3780
|
{
|
|
1687
|
-
topic: '
|
|
1688
|
-
version:
|
|
1689
|
-
uri:
|
|
1690
|
-
name: '
|
|
1691
|
-
title: '
|
|
1692
|
-
description: '
|
|
1693
|
-
text:
|
|
3781
|
+
topic: 'getting-started',
|
|
3782
|
+
version: GETTING_STARTED_V10_VERSION,
|
|
3783
|
+
uri: GETTING_STARTED_V10_URI,
|
|
3784
|
+
name: 'Getting started with Meguro v10',
|
|
3785
|
+
title: 'Getting started with Meguro v10',
|
|
3786
|
+
description: 'Hosted sequence with immutable pre-call expected-refusal declarations and server-emitted assertion results.',
|
|
3787
|
+
text: GETTING_STARTED_V10_TEXT,
|
|
1694
3788
|
},
|
|
1695
3789
|
{
|
|
1696
|
-
topic: '
|
|
1697
|
-
version:
|
|
1698
|
-
uri:
|
|
1699
|
-
name: '
|
|
1700
|
-
title: '
|
|
1701
|
-
description: '
|
|
1702
|
-
text:
|
|
3790
|
+
topic: 'getting-started',
|
|
3791
|
+
version: GETTING_STARTED_V11_VERSION,
|
|
3792
|
+
uri: GETTING_STARTED_V11_URI,
|
|
3793
|
+
name: 'Getting started with Meguro v11',
|
|
3794
|
+
title: 'Getting started with Meguro v11',
|
|
3795
|
+
description: 'Hosted sequence with live per-store history discovery and explicit ordinary-store versus seeded-sample provenance.',
|
|
3796
|
+
text: GETTING_STARTED_V11_TEXT,
|
|
1703
3797
|
},
|
|
1704
3798
|
{
|
|
1705
|
-
topic: '
|
|
1706
|
-
version:
|
|
1707
|
-
uri:
|
|
1708
|
-
name: '
|
|
1709
|
-
title: '
|
|
1710
|
-
description: 'Hosted
|
|
1711
|
-
text:
|
|
3799
|
+
topic: 'getting-started',
|
|
3800
|
+
version: GETTING_STARTED_V12_VERSION,
|
|
3801
|
+
uri: GETTING_STARTED_V12_URI,
|
|
3802
|
+
name: 'Getting started with Meguro v12',
|
|
3803
|
+
title: 'Getting started with Meguro v12',
|
|
3804
|
+
description: 'Hosted sequence with registry-derived Admin recipe enumeration and bounded miss recovery.',
|
|
3805
|
+
text: GETTING_STARTED_V12_TEXT,
|
|
1712
3806
|
},
|
|
1713
3807
|
{
|
|
1714
|
-
topic: '
|
|
1715
|
-
version:
|
|
1716
|
-
uri:
|
|
1717
|
-
name: '
|
|
1718
|
-
title: '
|
|
1719
|
-
description: '
|
|
1720
|
-
text:
|
|
3808
|
+
topic: 'getting-started',
|
|
3809
|
+
version: GETTING_STARTED_V13_VERSION,
|
|
3810
|
+
uri: GETTING_STARTED_V13_URI,
|
|
3811
|
+
name: 'Getting started with Meguro v13',
|
|
3812
|
+
title: 'Getting started with Meguro v13',
|
|
3813
|
+
description: 'Hosted sequence with state-aware Admin authentication, read-before-write, and idempotency preflight guidance.',
|
|
3814
|
+
text: GETTING_STARTED_V13_TEXT,
|
|
3815
|
+
},
|
|
3816
|
+
{
|
|
3817
|
+
topic: 'getting-started',
|
|
3818
|
+
version: GETTING_STARTED_V14_VERSION,
|
|
3819
|
+
uri: GETTING_STARTED_V14_URI,
|
|
3820
|
+
name: 'Getting started with Meguro v14',
|
|
3821
|
+
title: 'Getting started with Meguro v14',
|
|
3822
|
+
description: 'Hosted sequence with disposable attempt-state, retained evidence, terminal access, metering, and explicit run-end guidance.',
|
|
3823
|
+
text: GETTING_STARTED_V14_TEXT,
|
|
3824
|
+
},
|
|
3825
|
+
{
|
|
3826
|
+
topic: 'getting-started',
|
|
3827
|
+
version: GETTING_STARTED_V15_VERSION,
|
|
3828
|
+
uri: GETTING_STARTED_V15_URI,
|
|
3829
|
+
name: 'Getting started with Meguro v15',
|
|
3830
|
+
title: 'Getting started with Meguro v15',
|
|
3831
|
+
description: 'Hosted sequence with environment-derived account entry and the complete two-authority OAuth lifecycle.',
|
|
3832
|
+
text: GETTING_STARTED_V15_TEXT,
|
|
3833
|
+
},
|
|
3834
|
+
{
|
|
3835
|
+
topic: 'getting-started',
|
|
3836
|
+
version: GETTING_STARTED_V16_VERSION,
|
|
3837
|
+
uri: GETTING_STARTED_V16_URI,
|
|
3838
|
+
name: 'Getting started with Meguro v16',
|
|
3839
|
+
title: 'Getting started with Meguro v16',
|
|
3840
|
+
description: 'Hosted sequence with explicit, mutually exclusive return-resolution operations and four-way receipt evidence accounting.',
|
|
3841
|
+
text: GETTING_STARTED_V16_TEXT,
|
|
3842
|
+
},
|
|
3843
|
+
{
|
|
3844
|
+
topic: 'getting-started',
|
|
3845
|
+
version: GETTING_STARTED_V17_VERSION,
|
|
3846
|
+
uri: GETTING_STARTED_V17_URI,
|
|
3847
|
+
name: 'Getting started with Meguro v17',
|
|
3848
|
+
title: 'Getting started with Meguro v17',
|
|
3849
|
+
description: 'Hosted sequence with the corrected authoritative idempotency set for return-linked store credit.',
|
|
3850
|
+
text: GETTING_STARTED_V17_TEXT,
|
|
3851
|
+
},
|
|
3852
|
+
{
|
|
3853
|
+
topic: 'getting-started',
|
|
3854
|
+
version: GETTING_STARTED_V18_VERSION,
|
|
3855
|
+
uri: GETTING_STARTED_V18_URI,
|
|
3856
|
+
name: 'Getting started with Meguro v18',
|
|
3857
|
+
title: 'Getting started with Meguro v18',
|
|
3858
|
+
description: 'Zero-prior-knowledge hosted sequence that defines Meguro, practice stores, Store time, runs, receipts, and the rehearsal boundary before operational guidance.',
|
|
3859
|
+
text: GETTING_STARTED_V18_TEXT,
|
|
3860
|
+
},
|
|
3861
|
+
{
|
|
3862
|
+
topic: 'getting-started',
|
|
3863
|
+
version: GETTING_STARTED_V19_VERSION,
|
|
3864
|
+
uri: GETTING_STARTED_V19_URI,
|
|
3865
|
+
name: 'Getting started with Meguro v19',
|
|
3866
|
+
title: 'Getting started with Meguro v19',
|
|
3867
|
+
description: 'Zero-prior-knowledge hosted sequence that defines Meguro, practice stores, Store time, runs, receipts, and the rehearsal boundary, with the server-owned 120-day ordinary-store history default and explicit direct-API override rule.',
|
|
3868
|
+
text: GETTING_STARTED_V19_TEXT,
|
|
3869
|
+
},
|
|
3870
|
+
{
|
|
3871
|
+
topic: 'getting-started',
|
|
3872
|
+
version: GETTING_STARTED_V20_VERSION,
|
|
3873
|
+
uri: GETTING_STARTED_V20_URI,
|
|
3874
|
+
name: 'Getting started with Meguro v20',
|
|
3875
|
+
title: 'Getting started with Meguro v20',
|
|
3876
|
+
description: 'Zero-prior-knowledge hosted sequence that preserves the rehearsal boundary and defines the normalized sample-store onboarding, visibility, discovery, permanent-claim, receipt, and metering contract.',
|
|
3877
|
+
text: GETTING_STARTED_V20_TEXT,
|
|
3878
|
+
},
|
|
3879
|
+
{
|
|
3880
|
+
topic: 'getting-started',
|
|
3881
|
+
version: GETTING_STARTED_V21_VERSION,
|
|
3882
|
+
uri: GETTING_STARTED_V21_URI,
|
|
3883
|
+
name: 'Getting started with Meguro v21',
|
|
3884
|
+
title: 'Getting started with Meguro v21',
|
|
3885
|
+
description: 'Zero-prior-knowledge hosted sequence that preserves the rehearsal boundary, normalized sample-store contract, and truthful shared store machinery for the explicit 90-day sample history configuration.',
|
|
3886
|
+
text: GETTING_STARTED_V21_TEXT,
|
|
3887
|
+
},
|
|
3888
|
+
{
|
|
3889
|
+
topic: 'getting-started',
|
|
3890
|
+
version: GETTING_STARTED_V22_VERSION,
|
|
3891
|
+
uri: GETTING_STARTED_V22_URI,
|
|
3892
|
+
name: 'Getting started with Meguro v22',
|
|
3893
|
+
title: 'Getting started with Meguro v22',
|
|
3894
|
+
description: 'Zero-prior-knowledge hosted sequence preserving the rehearsal boundary, with exact polymorphic Node compatibility scope and one server-owned final receipt Gate.',
|
|
3895
|
+
text: GETTING_STARTED_V22_TEXT,
|
|
3896
|
+
},
|
|
3897
|
+
{
|
|
3898
|
+
topic: 'getting-started',
|
|
3899
|
+
version: GETTING_STARTED_V23_VERSION,
|
|
3900
|
+
uri: GETTING_STARTED_V23_URI,
|
|
3901
|
+
name: 'Getting started with Meguro v23',
|
|
3902
|
+
title: 'Getting started with Meguro v23',
|
|
3903
|
+
description: 'Zero-prior-knowledge hosted sequence preserving the rehearsal boundary with one account-owned, user-chosen onboarding evaluation grant and server-owned per-template executable plans.',
|
|
3904
|
+
text: GETTING_STARTED_V23_TEXT,
|
|
3905
|
+
},
|
|
3906
|
+
{
|
|
3907
|
+
topic: 'getting-started',
|
|
3908
|
+
version: GETTING_STARTED_V24_VERSION,
|
|
3909
|
+
uri: GETTING_STARTED_V24_URI,
|
|
3910
|
+
name: 'Getting started with Meguro v24',
|
|
3911
|
+
title: 'Getting started with Meguro v24',
|
|
3912
|
+
description: 'Zero-prior-knowledge hosted sequence preserving the rehearsal boundary and routing receipt interpretation to the complete committed change register.',
|
|
3913
|
+
text: GETTING_STARTED_V24_TEXT,
|
|
3914
|
+
},
|
|
3915
|
+
{
|
|
3916
|
+
topic: 'getting-started',
|
|
3917
|
+
version: GETTING_STARTED_V25_VERSION,
|
|
3918
|
+
uri: GETTING_STARTED_V25_URI,
|
|
3919
|
+
name: 'Getting started with Meguro v25',
|
|
3920
|
+
title: 'Getting started with Meguro v25',
|
|
3921
|
+
description: 'Zero-prior-knowledge hosted sequence preserving the rehearsal boundary with creation-pinned template event resolution and explicit legacy unavailability.',
|
|
3922
|
+
text: GETTING_STARTED_V25_TEXT,
|
|
3923
|
+
},
|
|
3924
|
+
{
|
|
3925
|
+
topic: 'getting-started',
|
|
3926
|
+
version: GETTING_STARTED_V26_VERSION,
|
|
3927
|
+
uri: GETTING_STARTED_V26_URI,
|
|
3928
|
+
name: 'Getting started with Meguro v26',
|
|
3929
|
+
title: 'Getting started with Meguro v26',
|
|
3930
|
+
description: 'Zero-prior-knowledge hosted sequence preserving the rehearsal boundary with one server-owned, machine-copyable practice-run advance cursor.',
|
|
3931
|
+
text: GETTING_STARTED_V26_TEXT,
|
|
3932
|
+
},
|
|
3933
|
+
{
|
|
3934
|
+
topic: 'getting-started',
|
|
3935
|
+
version: GETTING_STARTED_V27_VERSION,
|
|
3936
|
+
uri: GETTING_STARTED_V27_URI,
|
|
3937
|
+
name: 'Getting started with Meguro v27',
|
|
3938
|
+
title: 'Getting started with Meguro v27',
|
|
3939
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable advance cursor and distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate while preserving frozen machine contracts.',
|
|
3940
|
+
text: GETTING_STARTED_V27_TEXT,
|
|
3941
|
+
},
|
|
3942
|
+
{
|
|
3943
|
+
topic: 'getting-started',
|
|
3944
|
+
version: GETTING_STARTED_V28_VERSION,
|
|
3945
|
+
uri: GETTING_STARTED_V28_URI,
|
|
3946
|
+
name: 'Getting started with Meguro v28',
|
|
3947
|
+
title: 'Getting started with Meguro v28',
|
|
3948
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, and using the pinned official Shopify refund, return-refund, store-credit, transaction, and suggested-outcome mechanics.',
|
|
3949
|
+
text: GETTING_STARTED_V28_TEXT,
|
|
3950
|
+
},
|
|
3951
|
+
{
|
|
3952
|
+
topic: 'getting-started',
|
|
3953
|
+
version: GETTING_STARTED_V29_VERSION,
|
|
3954
|
+
uri: GETTING_STARTED_V29_URI,
|
|
3955
|
+
name: 'Getting started with Meguro v29',
|
|
3956
|
+
title: 'Getting started with Meguro v29',
|
|
3957
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, and keeping official Shopify return finance distinct from customer-linked loyalty GiftCard mechanics.',
|
|
3958
|
+
text: GETTING_STARTED_V29_TEXT,
|
|
3959
|
+
},
|
|
3960
|
+
{
|
|
3961
|
+
topic: 'getting-started',
|
|
3962
|
+
version: GETTING_STARTED_V30_VERSION,
|
|
3963
|
+
uri: GETTING_STARTED_V30_URI,
|
|
3964
|
+
name: 'Getting started with Meguro v30',
|
|
3965
|
+
title: 'Getting started with Meguro v30',
|
|
3966
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with Return-linked cash on returnRefund and ordinary cash or store-credit order refunds on refundCreate, including explicit method, replay, cap, and read-back rules.',
|
|
3967
|
+
text: GETTING_STARTED_V30_TEXT,
|
|
3968
|
+
},
|
|
3969
|
+
{
|
|
3970
|
+
topic: 'getting-started',
|
|
3971
|
+
version: GETTING_STARTED_V31_VERSION,
|
|
3972
|
+
uri: GETTING_STARTED_V31_URI,
|
|
3973
|
+
name: 'Getting started with Meguro v31',
|
|
3974
|
+
title: 'Getting started with Meguro v31',
|
|
3975
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with admitted Admin recipes that publish declared API version, intended templates, support boundary, empty-result or committed-consequence semantics, prerequisites, and one registry-owned copyable remedy.',
|
|
3976
|
+
text: GETTING_STARTED_V31_TEXT,
|
|
3977
|
+
},
|
|
3978
|
+
{
|
|
3979
|
+
topic: 'getting-started',
|
|
3980
|
+
version: GETTING_STARTED_V32_VERSION,
|
|
3981
|
+
uri: GETTING_STARTED_V32_URI,
|
|
3982
|
+
name: 'Getting started with Meguro v32',
|
|
3983
|
+
title: 'Getting started with Meguro v32',
|
|
3984
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with admitted Admin recipes that publish declared API version, intended templates, support boundary, empty-result or committed-consequence semantics, prerequisites, and one registry-owned copyable remedy.',
|
|
3985
|
+
text: GETTING_STARTED_V32_TEXT,
|
|
3986
|
+
},
|
|
3987
|
+
{
|
|
3988
|
+
topic: 'getting-started',
|
|
3989
|
+
version: GETTING_STARTED_V33_VERSION,
|
|
3990
|
+
uri: GETTING_STARTED_V33_URI,
|
|
3991
|
+
name: 'Getting started with Meguro v33',
|
|
3992
|
+
title: 'Getting started with Meguro v33',
|
|
3993
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with admitted Admin recipes that publish declared API version, intended templates, support boundary, empty-result or committed-consequence semantics, prerequisites, and one registry-owned copyable remedy, and publishing the v1 served, internal-only and deferred vertical boundary so served Admin capability and modeled Impact evidence are declared separately.',
|
|
3994
|
+
text: GETTING_STARTED_V33_TEXT,
|
|
3995
|
+
},
|
|
3996
|
+
{
|
|
3997
|
+
topic: 'getting-started',
|
|
3998
|
+
version: GETTING_STARTED_V34_VERSION,
|
|
3999
|
+
uri: GETTING_STARTED_V34_URI,
|
|
4000
|
+
name: 'Getting started with Meguro v34',
|
|
4001
|
+
title: 'Getting started with Meguro v34',
|
|
4002
|
+
description: 'Zero-prior-knowledge hosted sequence carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with admitted Admin recipes that publish declared API version, intended templates, support boundary, empty-result or committed-consequence semantics, prerequisites, and one registry-owned copyable remedy, and publishing the v1 served, internal-only and deferred vertical boundary so served Admin capability and modeled Impact evidence are declared separately, and publishing the two-tier template discovery hop so templates_list is the compact complete catalog and template_get returns one template\'s complete authoritative record before store_create.',
|
|
4003
|
+
text: GETTING_STARTED_V34_TEXT,
|
|
4004
|
+
},
|
|
4005
|
+
{
|
|
4006
|
+
topic: 'getting-started',
|
|
4007
|
+
version: GETTING_STARTED_V35_VERSION,
|
|
4008
|
+
uri: GETTING_STARTED_V35_URI,
|
|
4009
|
+
name: 'Getting started with Meguro v35',
|
|
4010
|
+
title: 'Getting started with Meguro v35',
|
|
4011
|
+
description: 'Zero-prior-knowledge hosted sequence teaching only canonical MCP request forms: storeId, externalAgent.commitSha, and the nested practiceRun.advanceCursor.',
|
|
4012
|
+
text: GETTING_STARTED_V35_TEXT,
|
|
4013
|
+
},
|
|
4014
|
+
{
|
|
4015
|
+
topic: 'getting-started',
|
|
4016
|
+
version: GETTING_STARTED_V36_VERSION,
|
|
4017
|
+
uri: GETTING_STARTED_V36_URI,
|
|
4018
|
+
name: 'Getting started with Meguro v36',
|
|
4019
|
+
title: 'Getting started with Meguro v36',
|
|
4020
|
+
description: 'Zero-prior-knowledge hosted sequence with one consistent current documentation generation and canonical MCP request forms.',
|
|
4021
|
+
text: GETTING_STARTED_V36_TEXT,
|
|
4022
|
+
},
|
|
4023
|
+
{
|
|
4024
|
+
topic: 'getting-started',
|
|
4025
|
+
version: GETTING_STARTED_V37_VERSION,
|
|
4026
|
+
uri: GETTING_STARTED_V37_URI,
|
|
4027
|
+
name: 'Getting started with Meguro v37',
|
|
4028
|
+
title: 'Getting started with Meguro v37',
|
|
4029
|
+
description: 'Zero-prior-knowledge hosted sequence with one consistent current documentation generation and canonical MCP request forms.',
|
|
4030
|
+
text: GETTING_STARTED_V37_TEXT,
|
|
4031
|
+
},
|
|
4032
|
+
{
|
|
4033
|
+
topic: 'getting-started',
|
|
4034
|
+
version: GETTING_STARTED_V38_VERSION,
|
|
4035
|
+
uri: GETTING_STARTED_V38_URI,
|
|
4036
|
+
name: 'Getting started with Meguro v38',
|
|
4037
|
+
title: 'Getting started with Meguro v38',
|
|
4038
|
+
description: 'Zero-prior-knowledge hosted sequence with state-neutral Configured Receipt Gate guidance and one consistent current documentation generation.',
|
|
4039
|
+
text: GETTING_STARTED_V38_TEXT,
|
|
4040
|
+
},
|
|
4041
|
+
{
|
|
4042
|
+
topic: 'getting-started',
|
|
4043
|
+
version: GETTING_STARTED_V39_VERSION,
|
|
4044
|
+
uri: GETTING_STARTED_V39_URI,
|
|
4045
|
+
name: 'Getting started with Meguro v39',
|
|
4046
|
+
title: 'Getting started with Meguro v39',
|
|
4047
|
+
description: 'Zero-prior-knowledge hosted sequence with labelled creation and current history bases, and truthful hosted real-store history-tool guidance.',
|
|
4048
|
+
text: GETTING_STARTED_V39_TEXT,
|
|
4049
|
+
},
|
|
4050
|
+
{
|
|
4051
|
+
topic: 'product-guide',
|
|
4052
|
+
version: PRODUCT_GUIDE_VERSION,
|
|
4053
|
+
uri: PRODUCT_GUIDE_URI,
|
|
4054
|
+
name: 'Meguro product guide v1',
|
|
4055
|
+
title: 'Meguro product guide v1',
|
|
4056
|
+
description: 'Stable product concepts, evidence boundaries, surface responsibilities, and question-to-source routing.',
|
|
4057
|
+
text: PRODUCT_GUIDE_TEXT,
|
|
4058
|
+
expectedSha256: PRODUCT_GUIDE_SHA256,
|
|
4059
|
+
},
|
|
4060
|
+
{
|
|
4061
|
+
topic: 'product-guide',
|
|
4062
|
+
version: PRODUCT_GUIDE_V2_VERSION,
|
|
4063
|
+
uri: PRODUCT_GUIDE_V2_URI,
|
|
4064
|
+
name: 'Meguro product guide v2',
|
|
4065
|
+
title: 'Meguro product guide v2',
|
|
4066
|
+
description: 'Stable product concepts, simulation vocabulary, evidence boundaries, surface responsibilities, and question-to-source routing.',
|
|
4067
|
+
text: PRODUCT_GUIDE_V2_TEXT,
|
|
4068
|
+
},
|
|
4069
|
+
{
|
|
4070
|
+
topic: 'product-guide',
|
|
4071
|
+
version: PRODUCT_GUIDE_V3_VERSION,
|
|
4072
|
+
uri: PRODUCT_GUIDE_V3_URI,
|
|
4073
|
+
name: 'Meguro product guide v3',
|
|
4074
|
+
title: 'Meguro product guide v3',
|
|
4075
|
+
description: 'World-first product concepts, evidence boundaries, surface responsibilities, and question-to-source routing.',
|
|
4076
|
+
text: PRODUCT_GUIDE_V3_TEXT,
|
|
4077
|
+
},
|
|
4078
|
+
{
|
|
4079
|
+
topic: 'product-guide',
|
|
4080
|
+
version: PRODUCT_GUIDE_V4_VERSION,
|
|
4081
|
+
uri: PRODUCT_GUIDE_V4_URI,
|
|
4082
|
+
name: 'Meguro product guide v4',
|
|
4083
|
+
title: 'Meguro product guide v4',
|
|
4084
|
+
description: 'Hosted-first product concepts, practice-run vocabulary, evidence boundaries, and question-to-source routing.',
|
|
4085
|
+
text: PRODUCT_GUIDE_V4_TEXT,
|
|
4086
|
+
},
|
|
4087
|
+
{
|
|
4088
|
+
topic: 'product-guide',
|
|
4089
|
+
version: PRODUCT_GUIDE_V5_VERSION,
|
|
4090
|
+
uri: PRODUCT_GUIDE_V5_URI,
|
|
4091
|
+
name: 'Meguro product guide v5',
|
|
4092
|
+
title: 'Meguro product guide v5',
|
|
4093
|
+
description: 'Current-link-derived product concepts with version-label, assertion-family, and effect-level channel guidance.',
|
|
4094
|
+
text: PRODUCT_GUIDE_V5_TEXT,
|
|
4095
|
+
},
|
|
4096
|
+
{
|
|
4097
|
+
topic: 'product-guide',
|
|
4098
|
+
version: PRODUCT_GUIDE_V6_VERSION,
|
|
4099
|
+
uri: PRODUCT_GUIDE_V6_URI,
|
|
4100
|
+
name: 'Meguro product guide v6',
|
|
4101
|
+
title: 'Meguro product guide v6',
|
|
4102
|
+
description: 'Current product concepts with four independent run-result dimensions and legacy-field guidance.',
|
|
4103
|
+
text: PRODUCT_GUIDE_V6_TEXT,
|
|
4104
|
+
},
|
|
4105
|
+
{
|
|
4106
|
+
topic: 'product-guide',
|
|
4107
|
+
version: PRODUCT_GUIDE_V7_VERSION,
|
|
4108
|
+
uri: PRODUCT_GUIDE_V7_URI,
|
|
4109
|
+
name: 'Meguro product guide v7',
|
|
4110
|
+
title: 'Meguro product guide v7',
|
|
4111
|
+
description: 'Current product concepts with exact expected-refusal declaration and classification semantics.',
|
|
4112
|
+
text: PRODUCT_GUIDE_V7_TEXT,
|
|
4113
|
+
},
|
|
4114
|
+
{
|
|
4115
|
+
topic: 'product-guide',
|
|
4116
|
+
version: PRODUCT_GUIDE_V8_VERSION,
|
|
4117
|
+
uri: PRODUCT_GUIDE_V8_URI,
|
|
4118
|
+
name: 'Meguro product guide v8',
|
|
4119
|
+
title: 'Meguro product guide v8',
|
|
4120
|
+
description: 'Current product concepts with live per-store history discovery and truthful creation-lane provenance.',
|
|
4121
|
+
text: PRODUCT_GUIDE_V8_TEXT,
|
|
4122
|
+
},
|
|
4123
|
+
{
|
|
4124
|
+
topic: 'product-guide',
|
|
4125
|
+
version: PRODUCT_GUIDE_V9_VERSION,
|
|
4126
|
+
uri: PRODUCT_GUIDE_V9_URI,
|
|
4127
|
+
name: 'Meguro product guide v9',
|
|
4128
|
+
title: 'Meguro product guide v9',
|
|
4129
|
+
description: 'Current product concepts with Admin recipe enumeration and bounded lookup-miss teaching.',
|
|
4130
|
+
text: PRODUCT_GUIDE_V9_TEXT,
|
|
4131
|
+
},
|
|
4132
|
+
{
|
|
4133
|
+
topic: 'product-guide',
|
|
4134
|
+
version: PRODUCT_GUIDE_V10_VERSION,
|
|
4135
|
+
uri: PRODUCT_GUIDE_V10_URI,
|
|
4136
|
+
name: 'Meguro product guide v10',
|
|
4137
|
+
title: 'Meguro product guide v10',
|
|
4138
|
+
description: 'Current product concepts with structured Admin execution preflight and separated control/data-plane authentication.',
|
|
4139
|
+
text: PRODUCT_GUIDE_V10_TEXT,
|
|
4140
|
+
},
|
|
4141
|
+
{
|
|
4142
|
+
topic: 'product-guide',
|
|
4143
|
+
version: PRODUCT_GUIDE_V11_VERSION,
|
|
4144
|
+
uri: PRODUCT_GUIDE_V11_URI,
|
|
4145
|
+
name: 'Meguro product guide v11',
|
|
4146
|
+
title: 'Meguro product guide v11',
|
|
4147
|
+
description: 'Current product concepts with one practice-run lifecycle contract and explicit terminal-boundary confirmation.',
|
|
4148
|
+
text: PRODUCT_GUIDE_V11_TEXT,
|
|
4149
|
+
},
|
|
4150
|
+
{
|
|
4151
|
+
topic: 'product-guide',
|
|
4152
|
+
version: PRODUCT_GUIDE_V12_VERSION,
|
|
4153
|
+
uri: PRODUCT_GUIDE_V12_URI,
|
|
4154
|
+
name: 'Meguro product guide v12',
|
|
4155
|
+
title: 'Meguro product guide v12',
|
|
4156
|
+
description: 'Current product concepts with the complete hosted-OAuth server-grant and client-local authority lifecycle.',
|
|
4157
|
+
text: PRODUCT_GUIDE_V12_TEXT,
|
|
4158
|
+
},
|
|
4159
|
+
{
|
|
4160
|
+
topic: 'product-guide',
|
|
4161
|
+
version: PRODUCT_GUIDE_V13_VERSION,
|
|
4162
|
+
uri: PRODUCT_GUIDE_V13_URI,
|
|
4163
|
+
name: 'Meguro product guide v13',
|
|
4164
|
+
title: 'Meguro product guide v13',
|
|
4165
|
+
description: 'Current product concepts with explicit return-resolution economics and call, rejection, replay, and action evidence.',
|
|
4166
|
+
text: PRODUCT_GUIDE_V13_TEXT,
|
|
4167
|
+
},
|
|
4168
|
+
{
|
|
4169
|
+
topic: 'product-guide',
|
|
4170
|
+
version: PRODUCT_GUIDE_V14_VERSION,
|
|
4171
|
+
uri: PRODUCT_GUIDE_V14_URI,
|
|
4172
|
+
name: 'Meguro product guide v14',
|
|
4173
|
+
title: 'Meguro product guide v14',
|
|
4174
|
+
description: 'Current product concepts with one authoritative idempotency set including return-linked store credit.',
|
|
4175
|
+
text: PRODUCT_GUIDE_V14_TEXT,
|
|
4176
|
+
},
|
|
4177
|
+
{
|
|
4178
|
+
topic: 'product-guide',
|
|
4179
|
+
version: PRODUCT_GUIDE_V15_VERSION,
|
|
4180
|
+
uri: PRODUCT_GUIDE_V15_URI,
|
|
4181
|
+
name: 'Meguro product guide v15',
|
|
4182
|
+
title: 'Meguro product guide v15',
|
|
4183
|
+
description: 'Current product concepts with a zero-prior-knowledge primer before operational guidance.',
|
|
4184
|
+
text: PRODUCT_GUIDE_V15_TEXT,
|
|
4185
|
+
},
|
|
4186
|
+
{
|
|
4187
|
+
topic: 'product-guide',
|
|
4188
|
+
version: PRODUCT_GUIDE_V16_VERSION,
|
|
4189
|
+
uri: PRODUCT_GUIDE_V16_URI,
|
|
4190
|
+
name: 'Meguro product guide v16',
|
|
4191
|
+
title: 'Meguro product guide v16',
|
|
4192
|
+
description: 'Current product concepts with the server-owned 120-day ordinary-store history default and explicit direct-API override rule.',
|
|
4193
|
+
text: PRODUCT_GUIDE_V16_TEXT,
|
|
4194
|
+
},
|
|
4195
|
+
{
|
|
4196
|
+
topic: 'product-guide',
|
|
4197
|
+
version: PRODUCT_GUIDE_V17_VERSION,
|
|
4198
|
+
uri: PRODUCT_GUIDE_V17_URI,
|
|
4199
|
+
name: 'Meguro product guide v17',
|
|
4200
|
+
title: 'Meguro product guide v17',
|
|
4201
|
+
description: 'Current product concepts with one account-owned sample-onboarding authority and ordinary store, lifecycle, visibility, discovery, receipt, and metering behavior.',
|
|
4202
|
+
text: PRODUCT_GUIDE_V17_TEXT,
|
|
4203
|
+
},
|
|
4204
|
+
{
|
|
4205
|
+
topic: 'product-guide',
|
|
4206
|
+
version: PRODUCT_GUIDE_V18_VERSION,
|
|
4207
|
+
uri: PRODUCT_GUIDE_V18_URI,
|
|
4208
|
+
name: 'Meguro product guide v18',
|
|
4209
|
+
title: 'Meguro product guide v18',
|
|
4210
|
+
description: 'Current product concepts with one account-owned sample-onboarding authority and truthful shared store machinery for the explicit 90-day sample history configuration.',
|
|
4211
|
+
text: PRODUCT_GUIDE_V18_TEXT,
|
|
4212
|
+
},
|
|
4213
|
+
{
|
|
4214
|
+
topic: 'product-guide',
|
|
4215
|
+
version: PRODUCT_GUIDE_V19_VERSION,
|
|
4216
|
+
uri: PRODUCT_GUIDE_V19_URI,
|
|
4217
|
+
name: 'Meguro product guide v19',
|
|
4218
|
+
title: 'Meguro product guide v19',
|
|
4219
|
+
description: 'Current product concepts with exact polymorphic Node compatibility scope and one server-owned final receipt Gate.',
|
|
4220
|
+
text: PRODUCT_GUIDE_V19_TEXT,
|
|
4221
|
+
},
|
|
4222
|
+
{
|
|
4223
|
+
topic: 'product-guide',
|
|
4224
|
+
version: PRODUCT_GUIDE_V20_VERSION,
|
|
4225
|
+
uri: PRODUCT_GUIDE_V20_URI,
|
|
4226
|
+
name: 'Meguro product guide v20',
|
|
4227
|
+
title: 'Meguro product guide v20',
|
|
4228
|
+
description: 'Current product concepts preserving the rehearsal boundary with one atomic user-chosen onboarding evaluation grant, bounded receipt segments, and shared MCP/Console planning.',
|
|
4229
|
+
text: PRODUCT_GUIDE_V20_TEXT,
|
|
4230
|
+
},
|
|
4231
|
+
{
|
|
4232
|
+
topic: 'product-guide',
|
|
4233
|
+
version: PRODUCT_GUIDE_V21_VERSION,
|
|
4234
|
+
uri: PRODUCT_GUIDE_V21_URI,
|
|
4235
|
+
name: 'Meguro product guide v21',
|
|
4236
|
+
title: 'Meguro product guide v21',
|
|
4237
|
+
description: 'Current product concepts preserving the rehearsal boundary and routing receipt interpretation to the complete committed change register.',
|
|
4238
|
+
text: PRODUCT_GUIDE_V21_TEXT,
|
|
4239
|
+
},
|
|
4240
|
+
{
|
|
4241
|
+
topic: 'product-guide',
|
|
4242
|
+
version: PRODUCT_GUIDE_V22_VERSION,
|
|
4243
|
+
uri: PRODUCT_GUIDE_V22_URI,
|
|
4244
|
+
name: 'Meguro product guide v22',
|
|
4245
|
+
title: 'Meguro product guide v22',
|
|
4246
|
+
description: 'Current product concepts preserving the rehearsal boundary with creation-pinned template event resolution and no current-catalog reconstruction.',
|
|
4247
|
+
text: PRODUCT_GUIDE_V22_TEXT,
|
|
4248
|
+
},
|
|
4249
|
+
{
|
|
4250
|
+
topic: 'product-guide',
|
|
4251
|
+
version: PRODUCT_GUIDE_V23_VERSION,
|
|
4252
|
+
uri: PRODUCT_GUIDE_V23_URI,
|
|
4253
|
+
name: 'Meguro product guide v23',
|
|
4254
|
+
title: 'Meguro product guide v23',
|
|
4255
|
+
description: 'Current product concepts preserving the rehearsal boundary with one server-owned, machine-copyable practice-run advance cursor.',
|
|
4256
|
+
text: PRODUCT_GUIDE_V23_TEXT,
|
|
4257
|
+
},
|
|
4258
|
+
{
|
|
4259
|
+
topic: 'product-guide',
|
|
4260
|
+
version: PRODUCT_GUIDE_V24_VERSION,
|
|
4261
|
+
uri: PRODUCT_GUIDE_V24_URI,
|
|
4262
|
+
name: 'Meguro product guide v24',
|
|
4263
|
+
title: 'Meguro product guide v24',
|
|
4264
|
+
description: 'Current product concepts including the server-owned, machine-copyable advance cursor and distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate while preserving frozen machine contracts.',
|
|
4265
|
+
text: PRODUCT_GUIDE_V24_TEXT,
|
|
4266
|
+
},
|
|
4267
|
+
{
|
|
4268
|
+
topic: 'product-guide',
|
|
4269
|
+
version: PRODUCT_GUIDE_V25_VERSION,
|
|
4270
|
+
uri: PRODUCT_GUIDE_V25_URI,
|
|
4271
|
+
name: 'Meguro product guide v25',
|
|
4272
|
+
title: 'Meguro product guide v25',
|
|
4273
|
+
description: 'Current product concepts including the server-owned, machine-copyable advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with official Shopify return-finance mechanics and private receipt-owned rehearsal economics.',
|
|
4274
|
+
text: PRODUCT_GUIDE_V25_TEXT,
|
|
4275
|
+
},
|
|
4276
|
+
{
|
|
4277
|
+
topic: 'product-guide',
|
|
4278
|
+
version: PRODUCT_GUIDE_V26_VERSION,
|
|
4279
|
+
uri: PRODUCT_GUIDE_V26_URI,
|
|
4280
|
+
name: 'Meguro product guide v26',
|
|
4281
|
+
title: 'Meguro product guide v26',
|
|
4282
|
+
description: 'Current product concepts carrying the server-owned, machine-copyable advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with official customer-linked loyalty GiftCards, bounded modeled economics, replay refusal, and distinct return store credit.',
|
|
4283
|
+
text: PRODUCT_GUIDE_V26_TEXT,
|
|
4284
|
+
},
|
|
4285
|
+
{
|
|
4286
|
+
topic: 'product-guide',
|
|
4287
|
+
version: PRODUCT_GUIDE_V27_VERSION,
|
|
4288
|
+
uri: PRODUCT_GUIDE_V27_URI,
|
|
4289
|
+
name: 'Meguro product guide v27',
|
|
4290
|
+
title: 'Meguro product guide v27',
|
|
4291
|
+
description: 'Current product concepts carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with one ordinary order-refund authority, explicit cash or store-credit method, opaque notes, cumulative paid-amount caps, stable replay, and no invented Return linkage.',
|
|
4292
|
+
text: PRODUCT_GUIDE_V27_TEXT,
|
|
4293
|
+
},
|
|
4294
|
+
{
|
|
4295
|
+
topic: 'product-guide',
|
|
4296
|
+
version: PRODUCT_GUIDE_V28_VERSION,
|
|
4297
|
+
uri: PRODUCT_GUIDE_V28_URI,
|
|
4298
|
+
name: 'Meguro product guide v28',
|
|
4299
|
+
title: 'Meguro product guide v28',
|
|
4300
|
+
description: 'Current product concepts carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with one ordinary order-refund authority, explicit cash or store-credit method, opaque notes, cumulative paid-amount caps, stable replay, and no invented Return linkage.',
|
|
4301
|
+
text: PRODUCT_GUIDE_V28_TEXT,
|
|
4302
|
+
},
|
|
4303
|
+
{
|
|
4304
|
+
topic: 'product-guide',
|
|
4305
|
+
version: PRODUCT_GUIDE_V29_VERSION,
|
|
4306
|
+
uri: PRODUCT_GUIDE_V29_URI,
|
|
4307
|
+
name: 'Meguro product guide v29',
|
|
4308
|
+
title: 'Meguro product guide v29',
|
|
4309
|
+
description: 'Current product concepts carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with one ordinary order-refund authority, explicit cash or store-credit method, opaque notes, cumulative paid-amount caps, stable replay, and no invented Return linkage.',
|
|
4310
|
+
text: PRODUCT_GUIDE_V29_TEXT,
|
|
4311
|
+
},
|
|
4312
|
+
{
|
|
4313
|
+
topic: 'product-guide',
|
|
4314
|
+
version: PRODUCT_GUIDE_V30_VERSION,
|
|
4315
|
+
uri: PRODUCT_GUIDE_V30_URI,
|
|
4316
|
+
name: 'Meguro product guide v30',
|
|
4317
|
+
title: 'Meguro product guide v30',
|
|
4318
|
+
description: 'Current product concepts carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with one ordinary order-refund authority that refunds named committed Order lines for cash, opaque notes, cumulative paid-amount caps, stable replay, and no invented Return linkage, and publishing the v1 served, internal-only and deferred vertical boundary so aggregate scenario physics is reported as modeled evidence rather than a Shopify entity.',
|
|
4319
|
+
text: PRODUCT_GUIDE_V30_TEXT,
|
|
4320
|
+
},
|
|
4321
|
+
{
|
|
4322
|
+
topic: 'product-guide',
|
|
4323
|
+
version: PRODUCT_GUIDE_V31_VERSION,
|
|
4324
|
+
uri: PRODUCT_GUIDE_V31_URI,
|
|
4325
|
+
name: 'Meguro product guide v31',
|
|
4326
|
+
title: 'Meguro product guide v31',
|
|
4327
|
+
description: 'Current product concepts carrying the server-owned, machine-copyable practice-run advance cursor, distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate, with one ordinary order-refund authority that refunds named committed Order lines for cash, opaque notes, cumulative paid-amount caps, stable replay, and no invented Return linkage, and publishing the v1 served, internal-only and deferred vertical boundary so aggregate scenario physics is reported as modeled evidence rather than a Shopify entity, tracking the two-tier template discovery hop introduced in getting-started v34.',
|
|
4328
|
+
text: PRODUCT_GUIDE_V31_TEXT,
|
|
4329
|
+
},
|
|
4330
|
+
{
|
|
4331
|
+
topic: 'product-guide',
|
|
4332
|
+
version: PRODUCT_GUIDE_V32_VERSION,
|
|
4333
|
+
uri: PRODUCT_GUIDE_V32_URI,
|
|
4334
|
+
name: 'Meguro product guide v32',
|
|
4335
|
+
title: 'Meguro product guide v32',
|
|
4336
|
+
description: 'Current product concepts carrying only the server-owned, machine-copyable nested practice-run advance cursor.',
|
|
4337
|
+
text: PRODUCT_GUIDE_V32_TEXT,
|
|
4338
|
+
},
|
|
4339
|
+
{
|
|
4340
|
+
topic: 'product-guide',
|
|
4341
|
+
version: PRODUCT_GUIDE_V33_VERSION,
|
|
4342
|
+
uri: PRODUCT_GUIDE_V33_URI,
|
|
4343
|
+
name: 'Meguro product guide v33',
|
|
4344
|
+
title: 'Meguro product guide v33',
|
|
4345
|
+
description: 'Current product concepts with one consistent current documentation generation and the server-owned nested practice-run advance cursor.',
|
|
4346
|
+
text: PRODUCT_GUIDE_V33_TEXT,
|
|
4347
|
+
},
|
|
4348
|
+
{
|
|
4349
|
+
topic: 'product-guide',
|
|
4350
|
+
version: PRODUCT_GUIDE_V34_VERSION,
|
|
4351
|
+
uri: PRODUCT_GUIDE_V34_URI,
|
|
4352
|
+
name: 'Meguro product guide v34',
|
|
4353
|
+
title: 'Meguro product guide v34',
|
|
4354
|
+
description: 'Current product concepts with one consistent current documentation generation and the server-owned nested practice-run advance cursor.',
|
|
4355
|
+
text: PRODUCT_GUIDE_V34_TEXT,
|
|
4356
|
+
},
|
|
4357
|
+
{
|
|
4358
|
+
topic: 'product-guide',
|
|
4359
|
+
version: PRODUCT_GUIDE_V35_VERSION,
|
|
4360
|
+
uri: PRODUCT_GUIDE_V35_URI,
|
|
4361
|
+
name: 'Meguro product guide v35',
|
|
4362
|
+
title: 'Meguro product guide v35',
|
|
4363
|
+
description: 'Current product concepts with state-neutral Configured Receipt Gate guidance and one consistent current documentation generation.',
|
|
4364
|
+
text: PRODUCT_GUIDE_V35_TEXT,
|
|
4365
|
+
},
|
|
4366
|
+
{
|
|
4367
|
+
topic: 'product-guide',
|
|
4368
|
+
version: PRODUCT_GUIDE_V36_VERSION,
|
|
4369
|
+
uri: PRODUCT_GUIDE_V36_URI,
|
|
4370
|
+
name: 'Meguro product guide v36',
|
|
4371
|
+
title: 'Meguro product guide v36',
|
|
4372
|
+
description: 'Current product concepts with labelled creation and current history bases, and truthful hosted real-store history-tool guidance.',
|
|
4373
|
+
text: PRODUCT_GUIDE_V36_TEXT,
|
|
1721
4374
|
},
|
|
1722
4375
|
{
|
|
1723
4376
|
topic: 'index',
|
|
@@ -1755,6 +4408,303 @@ const CATALOG = buildDocumentationCatalog([
|
|
|
1755
4408
|
description: 'Immutable current-version pointers after the current-link, version-label, and explanatory-rider documentation mint.',
|
|
1756
4409
|
text: documentationIndexText(DOCUMENTATION_CURRENCY_V4, DOCUMENTATION_INDEX_V4_URI),
|
|
1757
4410
|
},
|
|
4411
|
+
{
|
|
4412
|
+
topic: 'index',
|
|
4413
|
+
version: DOCUMENTATION_CURRENCY_V5.indexVersion,
|
|
4414
|
+
uri: DOCUMENTATION_INDEX_V5_URI,
|
|
4415
|
+
name: 'Meguro documentation index v5',
|
|
4416
|
+
title: 'Meguro documentation index v5',
|
|
4417
|
+
description: 'Immutable current-version pointers after the run-result semantic-dimensions documentation mint.',
|
|
4418
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V5, DOCUMENTATION_INDEX_V5_URI),
|
|
4419
|
+
},
|
|
4420
|
+
{
|
|
4421
|
+
topic: 'index',
|
|
4422
|
+
version: DOCUMENTATION_CURRENCY_V6.indexVersion,
|
|
4423
|
+
uri: DOCUMENTATION_INDEX_V6_URI,
|
|
4424
|
+
name: 'Meguro documentation index v6',
|
|
4425
|
+
title: 'Meguro documentation index v6',
|
|
4426
|
+
description: 'Immutable current-version pointers after the expected-refusal assertion documentation mint.',
|
|
4427
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V6, DOCUMENTATION_INDEX_V6_URI),
|
|
4428
|
+
},
|
|
4429
|
+
{
|
|
4430
|
+
topic: 'index',
|
|
4431
|
+
version: DOCUMENTATION_CURRENCY_V7.indexVersion,
|
|
4432
|
+
uri: DOCUMENTATION_INDEX_V7_URI,
|
|
4433
|
+
name: 'Meguro documentation index v7',
|
|
4434
|
+
title: 'Meguro documentation index v7',
|
|
4435
|
+
description: 'Immutable current-version pointers after the live per-store history-truth documentation mint.',
|
|
4436
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V7, DOCUMENTATION_INDEX_V7_URI),
|
|
4437
|
+
},
|
|
4438
|
+
{
|
|
4439
|
+
topic: 'index',
|
|
4440
|
+
version: DOCUMENTATION_CURRENCY_V8.indexVersion,
|
|
4441
|
+
uri: DOCUMENTATION_INDEX_V8_URI,
|
|
4442
|
+
name: 'Meguro documentation index v8',
|
|
4443
|
+
title: 'Meguro documentation index v8',
|
|
4444
|
+
description: 'Immutable current-version pointers after the Admin recipe discovery and teaching-response mint.',
|
|
4445
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V8, DOCUMENTATION_INDEX_V8_URI),
|
|
4446
|
+
},
|
|
4447
|
+
{
|
|
4448
|
+
topic: 'index',
|
|
4449
|
+
version: DOCUMENTATION_CURRENCY_V9.indexVersion,
|
|
4450
|
+
uri: DOCUMENTATION_INDEX_V9_URI,
|
|
4451
|
+
name: 'Meguro documentation index v9',
|
|
4452
|
+
title: 'Meguro documentation index v9',
|
|
4453
|
+
description: 'Immutable current-version pointers after the structured Admin execution-preflight mint.',
|
|
4454
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V9, DOCUMENTATION_INDEX_V9_URI),
|
|
4455
|
+
},
|
|
4456
|
+
{
|
|
4457
|
+
topic: 'index',
|
|
4458
|
+
version: DOCUMENTATION_CURRENCY_V10.indexVersion,
|
|
4459
|
+
uri: DOCUMENTATION_INDEX_V10_URI,
|
|
4460
|
+
name: 'Meguro documentation index v10',
|
|
4461
|
+
title: 'Meguro documentation index v10',
|
|
4462
|
+
description: 'Immutable current-version pointers after the practice-run lifecycle and terminal-confirmation mint.',
|
|
4463
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V10, DOCUMENTATION_INDEX_V10_URI),
|
|
4464
|
+
},
|
|
4465
|
+
{
|
|
4466
|
+
topic: 'index',
|
|
4467
|
+
version: DOCUMENTATION_CURRENCY_V11.indexVersion,
|
|
4468
|
+
uri: DOCUMENTATION_INDEX_V11_URI,
|
|
4469
|
+
name: 'Meguro documentation index v11',
|
|
4470
|
+
title: 'Meguro documentation index v11',
|
|
4471
|
+
description: 'Immutable current-version pointers after the hosted-OAuth authority-lifecycle mint.',
|
|
4472
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V11, DOCUMENTATION_INDEX_V11_URI),
|
|
4473
|
+
},
|
|
4474
|
+
{
|
|
4475
|
+
topic: 'index',
|
|
4476
|
+
version: DOCUMENTATION_CURRENCY_V12.indexVersion,
|
|
4477
|
+
uri: DOCUMENTATION_INDEX_V12_URI,
|
|
4478
|
+
name: 'Meguro documentation index v12',
|
|
4479
|
+
title: 'Meguro documentation index v12',
|
|
4480
|
+
description: 'Immutable current-version pointers after the return-resolution and evidence-accounting mint.',
|
|
4481
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V12, DOCUMENTATION_INDEX_V12_URI),
|
|
4482
|
+
},
|
|
4483
|
+
{
|
|
4484
|
+
topic: 'index',
|
|
4485
|
+
version: DOCUMENTATION_CURRENCY_V13.indexVersion,
|
|
4486
|
+
uri: DOCUMENTATION_INDEX_V13_URI,
|
|
4487
|
+
name: 'Meguro documentation index v13',
|
|
4488
|
+
title: 'Meguro documentation index v13',
|
|
4489
|
+
description: 'Immutable current-version pointers after correcting the return store-credit idempotency contract.',
|
|
4490
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V13, DOCUMENTATION_INDEX_V13_URI),
|
|
4491
|
+
},
|
|
4492
|
+
{
|
|
4493
|
+
topic: 'index',
|
|
4494
|
+
version: DOCUMENTATION_CURRENCY_V14.indexVersion,
|
|
4495
|
+
uri: DOCUMENTATION_INDEX_V14_URI,
|
|
4496
|
+
name: 'Meguro documentation index v14',
|
|
4497
|
+
title: 'Meguro documentation index v14',
|
|
4498
|
+
description: 'Immutable current-version pointers after the zero-prior-knowledge onboarding correction.',
|
|
4499
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V14, DOCUMENTATION_INDEX_V14_URI),
|
|
4500
|
+
},
|
|
4501
|
+
{
|
|
4502
|
+
topic: 'index',
|
|
4503
|
+
version: DOCUMENTATION_CURRENCY_V15.indexVersion,
|
|
4504
|
+
uri: DOCUMENTATION_INDEX_V15_URI,
|
|
4505
|
+
name: 'Meguro documentation index v15',
|
|
4506
|
+
title: 'Meguro documentation index v15',
|
|
4507
|
+
description: 'Immutable current-version pointers after the server-owned ordinary-store history-default mint.',
|
|
4508
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V15, DOCUMENTATION_INDEX_V15_URI),
|
|
4509
|
+
},
|
|
4510
|
+
{
|
|
4511
|
+
topic: 'index',
|
|
4512
|
+
version: DOCUMENTATION_CURRENCY_V16.indexVersion,
|
|
4513
|
+
uri: DOCUMENTATION_INDEX_V16_URI,
|
|
4514
|
+
name: 'Meguro documentation index v16',
|
|
4515
|
+
title: 'Meguro documentation index v16',
|
|
4516
|
+
description: 'Immutable current-version pointers after the sample-normalization closeout documentation mint.',
|
|
4517
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V16, DOCUMENTATION_INDEX_V16_URI),
|
|
4518
|
+
},
|
|
4519
|
+
{
|
|
4520
|
+
topic: 'index',
|
|
4521
|
+
version: DOCUMENTATION_CURRENCY_V17.indexVersion,
|
|
4522
|
+
uri: DOCUMENTATION_INDEX_V17_URI,
|
|
4523
|
+
name: 'Meguro documentation index v17',
|
|
4524
|
+
title: 'Meguro documentation index v17',
|
|
4525
|
+
description: 'Immutable current-version pointers after correcting the sample history configuration to use shared store machinery.',
|
|
4526
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V17, DOCUMENTATION_INDEX_V17_URI),
|
|
4527
|
+
},
|
|
4528
|
+
{
|
|
4529
|
+
topic: 'index',
|
|
4530
|
+
version: DOCUMENTATION_CURRENCY_V18.indexVersion,
|
|
4531
|
+
uri: DOCUMENTATION_INDEX_V18_URI,
|
|
4532
|
+
name: 'Meguro documentation index v18',
|
|
4533
|
+
title: 'Meguro documentation index v18',
|
|
4534
|
+
description: 'Immutable current-version pointers after closing polymorphic Node compatibility and final receipt Gate authority.',
|
|
4535
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V18, DOCUMENTATION_INDEX_V18_URI),
|
|
4536
|
+
},
|
|
4537
|
+
{
|
|
4538
|
+
topic: 'index',
|
|
4539
|
+
version: DOCUMENTATION_CURRENCY_V19.indexVersion,
|
|
4540
|
+
uri: DOCUMENTATION_INDEX_V19_URI,
|
|
4541
|
+
name: 'Meguro documentation index v19',
|
|
4542
|
+
title: 'Meguro documentation index v19',
|
|
4543
|
+
description: 'Immutable current-version pointers after the user-chosen onboarding evaluation grant mint.',
|
|
4544
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V19, DOCUMENTATION_INDEX_V19_URI),
|
|
4545
|
+
},
|
|
4546
|
+
{
|
|
4547
|
+
topic: 'index',
|
|
4548
|
+
version: DOCUMENTATION_CURRENCY_V20.indexVersion,
|
|
4549
|
+
uri: DOCUMENTATION_INDEX_V20_URI,
|
|
4550
|
+
name: 'Meguro documentation index v20',
|
|
4551
|
+
title: 'Meguro documentation index v20',
|
|
4552
|
+
description: 'Immutable current-version pointers after receipts adopted the complete committed change register.',
|
|
4553
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V20, DOCUMENTATION_INDEX_V20_URI),
|
|
4554
|
+
},
|
|
4555
|
+
{
|
|
4556
|
+
topic: 'index',
|
|
4557
|
+
version: DOCUMENTATION_CURRENCY_V21.indexVersion,
|
|
4558
|
+
uri: DOCUMENTATION_INDEX_V21_URI,
|
|
4559
|
+
name: 'Meguro documentation index v21',
|
|
4560
|
+
title: 'Meguro documentation index v21',
|
|
4561
|
+
description: 'Immutable current-version pointers after receipts adopted creation-pinned template event resolution.',
|
|
4562
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V21, DOCUMENTATION_INDEX_V21_URI),
|
|
4563
|
+
},
|
|
4564
|
+
{
|
|
4565
|
+
topic: 'index',
|
|
4566
|
+
version: DOCUMENTATION_CURRENCY_V22.indexVersion,
|
|
4567
|
+
uri: DOCUMENTATION_INDEX_V22_URI,
|
|
4568
|
+
name: 'Meguro documentation index v22',
|
|
4569
|
+
title: 'Meguro documentation index v22',
|
|
4570
|
+
description: 'Immutable current-version pointers after practice runs adopted one server-owned, machine-copyable advance cursor.',
|
|
4571
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V22, DOCUMENTATION_INDEX_V22_URI),
|
|
4572
|
+
},
|
|
4573
|
+
{
|
|
4574
|
+
topic: 'index',
|
|
4575
|
+
version: DOCUMENTATION_CURRENCY_V23.indexVersion,
|
|
4576
|
+
uri: DOCUMENTATION_INDEX_V23_URI,
|
|
4577
|
+
name: 'Meguro documentation index v23',
|
|
4578
|
+
title: 'Meguro documentation index v23',
|
|
4579
|
+
description: 'Immutable current-version pointers after disambiguating automatic Recorded API behavior from the optional Configured Receipt Gate.',
|
|
4580
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V23, DOCUMENTATION_INDEX_V23_URI),
|
|
4581
|
+
},
|
|
4582
|
+
{
|
|
4583
|
+
topic: 'index',
|
|
4584
|
+
version: DOCUMENTATION_CURRENCY_V24.indexVersion,
|
|
4585
|
+
uri: DOCUMENTATION_INDEX_V24_URI,
|
|
4586
|
+
name: 'Meguro documentation index v24',
|
|
4587
|
+
title: 'Meguro documentation index v24',
|
|
4588
|
+
description: 'Immutable current-version pointers after adopting official Shopify return-finance mechanics.',
|
|
4589
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V24, DOCUMENTATION_INDEX_V24_URI),
|
|
4590
|
+
},
|
|
4591
|
+
{
|
|
4592
|
+
topic: 'index',
|
|
4593
|
+
version: DOCUMENTATION_CURRENCY_V25.indexVersion,
|
|
4594
|
+
uri: DOCUMENTATION_INDEX_V25_URI,
|
|
4595
|
+
name: 'Meguro documentation index v25',
|
|
4596
|
+
title: 'Meguro documentation index v25',
|
|
4597
|
+
description: 'Immutable current-version pointers after adopting official customer-linked Shopify loyalty GiftCard mechanics.',
|
|
4598
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V25, DOCUMENTATION_INDEX_V25_URI),
|
|
4599
|
+
},
|
|
4600
|
+
{
|
|
4601
|
+
topic: 'index',
|
|
4602
|
+
version: DOCUMENTATION_CURRENCY_V26.indexVersion,
|
|
4603
|
+
uri: DOCUMENTATION_INDEX_V26_URI,
|
|
4604
|
+
name: 'Meguro documentation index v26',
|
|
4605
|
+
title: 'Meguro documentation index v26',
|
|
4606
|
+
description: 'Immutable current-version pointers after establishing the ordinary order-refund authority and correcting Return linkage teaching.',
|
|
4607
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V26, DOCUMENTATION_INDEX_V26_URI),
|
|
4608
|
+
},
|
|
4609
|
+
{
|
|
4610
|
+
topic: 'index',
|
|
4611
|
+
version: DOCUMENTATION_CURRENCY_V27.indexVersion,
|
|
4612
|
+
uri: DOCUMENTATION_INDEX_V27_URI,
|
|
4613
|
+
name: 'Meguro documentation index v27',
|
|
4614
|
+
title: 'Meguro documentation index v27',
|
|
4615
|
+
description: 'Immutable current-version pointers after admitted Admin recipes began publishing declared version, outcome semantics, prerequisites, and one registry-owned remedy.',
|
|
4616
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V27, DOCUMENTATION_INDEX_V27_URI),
|
|
4617
|
+
},
|
|
4618
|
+
{
|
|
4619
|
+
topic: 'index',
|
|
4620
|
+
version: DOCUMENTATION_CURRENCY_V28.indexVersion,
|
|
4621
|
+
uri: DOCUMENTATION_INDEX_V28_URI,
|
|
4622
|
+
name: 'Meguro documentation index v28',
|
|
4623
|
+
title: 'Meguro documentation index v28',
|
|
4624
|
+
description: 'Immutable current-version pointers after admitted Admin recipes began publishing declared version, outcome semantics, prerequisites, and one registry-owned remedy.',
|
|
4625
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V28, DOCUMENTATION_INDEX_V28_URI),
|
|
4626
|
+
},
|
|
4627
|
+
{
|
|
4628
|
+
topic: 'index',
|
|
4629
|
+
version: DOCUMENTATION_CURRENCY_V29.indexVersion,
|
|
4630
|
+
uri: DOCUMENTATION_INDEX_V29_URI,
|
|
4631
|
+
name: 'Meguro documentation index v29',
|
|
4632
|
+
title: 'Meguro documentation index v29',
|
|
4633
|
+
description: 'Immutable current-version pointers after the v1 served, internal-only and deferred vertical boundary was published.',
|
|
4634
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V29, DOCUMENTATION_INDEX_V29_URI),
|
|
4635
|
+
},
|
|
4636
|
+
{
|
|
4637
|
+
topic: 'index',
|
|
4638
|
+
version: DOCUMENTATION_CURRENCY_V30.indexVersion,
|
|
4639
|
+
uri: DOCUMENTATION_INDEX_V30_URI,
|
|
4640
|
+
name: 'Meguro documentation index v30',
|
|
4641
|
+
title: 'Meguro documentation index v30',
|
|
4642
|
+
description: 'Immutable current-version pointers after the compact templates_list and template_get detail hop were published.',
|
|
4643
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V30, DOCUMENTATION_INDEX_V30_URI),
|
|
4644
|
+
},
|
|
4645
|
+
{
|
|
4646
|
+
topic: 'index',
|
|
4647
|
+
version: DOCUMENTATION_CURRENCY_V31.indexVersion,
|
|
4648
|
+
uri: DOCUMENTATION_INDEX_V31_URI,
|
|
4649
|
+
name: 'Meguro documentation index v31',
|
|
4650
|
+
title: 'Meguro documentation index v31',
|
|
4651
|
+
description: 'Immutable current-version pointers after publishing the stored public run-receipt Markdown representation contract.',
|
|
4652
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V31, DOCUMENTATION_INDEX_V31_URI),
|
|
4653
|
+
},
|
|
4654
|
+
{
|
|
4655
|
+
topic: 'index',
|
|
4656
|
+
version: DOCUMENTATION_CURRENCY_V32.indexVersion,
|
|
4657
|
+
uri: DOCUMENTATION_INDEX_V32_URI,
|
|
4658
|
+
name: 'Meguro documentation index v32',
|
|
4659
|
+
title: 'Meguro documentation index v32',
|
|
4660
|
+
description: 'Immutable current-version pointers after renaming the winback operating cost to its contact/recovery meaning.',
|
|
4661
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V32, DOCUMENTATION_INDEX_V32_URI),
|
|
4662
|
+
},
|
|
4663
|
+
{
|
|
4664
|
+
topic: 'index',
|
|
4665
|
+
version: DOCUMENTATION_CURRENCY_V33.indexVersion,
|
|
4666
|
+
uri: DOCUMENTATION_INDEX_V33_URI,
|
|
4667
|
+
name: 'Meguro documentation index v33',
|
|
4668
|
+
title: 'Meguro documentation index v33',
|
|
4669
|
+
description: 'Immutable current-version pointers after retiring obsolete MCP request aliases.',
|
|
4670
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V33, DOCUMENTATION_INDEX_V33_URI),
|
|
4671
|
+
},
|
|
4672
|
+
{
|
|
4673
|
+
topic: 'index',
|
|
4674
|
+
version: DOCUMENTATION_CURRENCY_V34.indexVersion,
|
|
4675
|
+
uri: DOCUMENTATION_INDEX_V34_URI,
|
|
4676
|
+
name: 'Meguro documentation index v34',
|
|
4677
|
+
title: 'Meguro documentation index v34',
|
|
4678
|
+
description: 'Immutable current-version pointers after reconciling every current documentation cross-reference.',
|
|
4679
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V34, DOCUMENTATION_INDEX_V34_URI),
|
|
4680
|
+
},
|
|
4681
|
+
{
|
|
4682
|
+
topic: 'index',
|
|
4683
|
+
version: DOCUMENTATION_CURRENCY_V35.indexVersion,
|
|
4684
|
+
uri: DOCUMENTATION_INDEX_V35_URI,
|
|
4685
|
+
name: 'Meguro documentation index v35',
|
|
4686
|
+
title: 'Meguro documentation index v35',
|
|
4687
|
+
description: 'Immutable current-version pointers after reconciling every current documentation cross-reference.',
|
|
4688
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V35, DOCUMENTATION_INDEX_V35_URI),
|
|
4689
|
+
},
|
|
4690
|
+
{
|
|
4691
|
+
topic: 'index',
|
|
4692
|
+
version: DOCUMENTATION_CURRENCY_V36.indexVersion,
|
|
4693
|
+
uri: DOCUMENTATION_INDEX_V36_URI,
|
|
4694
|
+
name: 'Meguro documentation index v36',
|
|
4695
|
+
title: 'Meguro documentation index v36',
|
|
4696
|
+
description: 'Immutable current-version pointers for the truthful Gate-check and field-index generation.',
|
|
4697
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V36, DOCUMENTATION_INDEX_V36_URI),
|
|
4698
|
+
},
|
|
4699
|
+
{
|
|
4700
|
+
topic: 'index',
|
|
4701
|
+
version: DOCUMENTATION_CURRENCY_V37.indexVersion,
|
|
4702
|
+
uri: DOCUMENTATION_INDEX_V37_URI,
|
|
4703
|
+
name: 'Meguro documentation index v37',
|
|
4704
|
+
title: 'Meguro documentation index v37',
|
|
4705
|
+
description: 'Immutable current-version pointers for the labelled hosted-history generation.',
|
|
4706
|
+
text: documentationIndexText(DOCUMENTATION_CURRENCY_V37, DOCUMENTATION_INDEX_V37_URI),
|
|
4707
|
+
},
|
|
1758
4708
|
{
|
|
1759
4709
|
topic: 'receipt-guide',
|
|
1760
4710
|
version: RECEIPT_GUIDE_VERSION,
|
|
@@ -1818,6 +4768,105 @@ const CATALOG = buildDocumentationCatalog([
|
|
|
1818
4768
|
description: 'V6 receipt interpretation plus explicit signed net-unit semantics for daily impact rows.',
|
|
1819
4769
|
text: RECEIPT_GUIDE_V7_TEXT,
|
|
1820
4770
|
},
|
|
4771
|
+
{
|
|
4772
|
+
topic: 'receipt-guide',
|
|
4773
|
+
version: RECEIPT_GUIDE_V8_VERSION,
|
|
4774
|
+
uri: RECEIPT_GUIDE_V8_URI,
|
|
4775
|
+
name: 'Meguro receipt guide v8',
|
|
4776
|
+
title: 'Meguro receipt guide v8',
|
|
4777
|
+
description: 'V7 receipt interpretation plus four independent run-result dimensions and neutral modeled-outcome semantics.',
|
|
4778
|
+
text: RECEIPT_GUIDE_V8_TEXT,
|
|
4779
|
+
},
|
|
4780
|
+
{
|
|
4781
|
+
topic: 'receipt-guide',
|
|
4782
|
+
version: RECEIPT_GUIDE_V9_VERSION,
|
|
4783
|
+
uri: RECEIPT_GUIDE_V9_URI,
|
|
4784
|
+
name: 'Meguro receipt guide v9',
|
|
4785
|
+
title: 'Meguro receipt guide v9',
|
|
4786
|
+
description: 'V8 receipt interpretation plus immutable expected-refusal assertion results and handled raw-call coordinates.',
|
|
4787
|
+
text: RECEIPT_GUIDE_V9_TEXT,
|
|
4788
|
+
},
|
|
4789
|
+
{
|
|
4790
|
+
topic: 'receipt-guide',
|
|
4791
|
+
version: RECEIPT_GUIDE_V10_VERSION,
|
|
4792
|
+
uri: RECEIPT_GUIDE_V10_URI,
|
|
4793
|
+
name: 'Meguro receipt guide v10',
|
|
4794
|
+
title: 'Meguro receipt guide v10',
|
|
4795
|
+
description: 'V9 receipt interpretation plus explicit return-resolution economics and four-way mutation evidence accounting.',
|
|
4796
|
+
text: RECEIPT_GUIDE_V10_TEXT,
|
|
4797
|
+
},
|
|
4798
|
+
{
|
|
4799
|
+
topic: 'receipt-guide',
|
|
4800
|
+
version: RECEIPT_GUIDE_V11_VERSION,
|
|
4801
|
+
uri: RECEIPT_GUIDE_V11_URI,
|
|
4802
|
+
name: 'Meguro receipt guide v11',
|
|
4803
|
+
title: 'Meguro receipt guide v11',
|
|
4804
|
+
description: 'V10 receipt interpretation plus exact polymorphic Node compatibility scope and one server-owned final receipt Gate.',
|
|
4805
|
+
text: RECEIPT_GUIDE_V11_TEXT,
|
|
4806
|
+
},
|
|
4807
|
+
{
|
|
4808
|
+
topic: 'receipt-guide',
|
|
4809
|
+
version: RECEIPT_GUIDE_V12_VERSION,
|
|
4810
|
+
uri: RECEIPT_GUIDE_V12_URI,
|
|
4811
|
+
name: 'Meguro receipt guide v12',
|
|
4812
|
+
title: 'Meguro receipt guide v12',
|
|
4813
|
+
description: 'V11 receipt interpretation plus the authoritative complete committed change register and provenance fields.',
|
|
4814
|
+
text: RECEIPT_GUIDE_V12_TEXT,
|
|
4815
|
+
},
|
|
4816
|
+
{
|
|
4817
|
+
topic: 'receipt-guide',
|
|
4818
|
+
version: RECEIPT_GUIDE_V13_VERSION,
|
|
4819
|
+
uri: RECEIPT_GUIDE_V13_URI,
|
|
4820
|
+
name: 'Meguro receipt guide v13',
|
|
4821
|
+
title: 'Meguro receipt guide v13',
|
|
4822
|
+
description: 'V12 receipt interpretation plus creation-pinned template event resolution, measured-horizon boundaries, and explicit legacy unavailability.',
|
|
4823
|
+
text: RECEIPT_GUIDE_V13_TEXT,
|
|
4824
|
+
},
|
|
4825
|
+
{
|
|
4826
|
+
topic: 'receipt-guide',
|
|
4827
|
+
version: RECEIPT_GUIDE_V14_VERSION,
|
|
4828
|
+
uri: RECEIPT_GUIDE_V14_URI,
|
|
4829
|
+
name: 'Meguro receipt guide v14',
|
|
4830
|
+
title: 'Meguro receipt guide v14',
|
|
4831
|
+
description: 'V13 receipt interpretation distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate while preserving frozen machine fields.',
|
|
4832
|
+
text: RECEIPT_GUIDE_V14_TEXT,
|
|
4833
|
+
},
|
|
4834
|
+
{
|
|
4835
|
+
topic: 'receipt-guide',
|
|
4836
|
+
version: RECEIPT_GUIDE_V15_VERSION,
|
|
4837
|
+
uri: RECEIPT_GUIDE_V15_URI,
|
|
4838
|
+
name: 'Meguro receipt guide v15',
|
|
4839
|
+
title: 'Meguro receipt guide v15',
|
|
4840
|
+
description: 'Receipt interpretation distinguishing automatic Recorded API behavior from the optional Configured Receipt Gate while preserving frozen machine fields, with the v1 refund boundary: canonical Order line-item cash refunds are the served financial write and modeled return economics are Impact evidence.',
|
|
4841
|
+
text: RECEIPT_GUIDE_V15_TEXT,
|
|
4842
|
+
},
|
|
4843
|
+
{
|
|
4844
|
+
topic: 'receipt-guide',
|
|
4845
|
+
version: RECEIPT_GUIDE_V16_VERSION,
|
|
4846
|
+
uri: RECEIPT_GUIDE_V16_URI,
|
|
4847
|
+
name: 'Meguro receipt guide v16',
|
|
4848
|
+
title: 'Meguro receipt guide v16',
|
|
4849
|
+
description: 'Receipt interpretation plus the issuance-time stored Markdown representation contract for presentation-bearing public run receipts.',
|
|
4850
|
+
text: RECEIPT_GUIDE_V16_TEXT,
|
|
4851
|
+
},
|
|
4852
|
+
{
|
|
4853
|
+
topic: 'receipt-guide',
|
|
4854
|
+
version: RECEIPT_GUIDE_V17_VERSION,
|
|
4855
|
+
uri: RECEIPT_GUIDE_V17_URI,
|
|
4856
|
+
name: 'Meguro receipt guide v17',
|
|
4857
|
+
title: 'Meguro receipt guide v17',
|
|
4858
|
+
description: 'Receipt interpretation naming the winback operating cost as the contact/recovery cost it commits, distinct from the discount that governs recovered price.',
|
|
4859
|
+
text: RECEIPT_GUIDE_V17_TEXT,
|
|
4860
|
+
},
|
|
4861
|
+
{
|
|
4862
|
+
topic: 'receipt-guide',
|
|
4863
|
+
version: RECEIPT_GUIDE_V18_VERSION,
|
|
4864
|
+
uri: RECEIPT_GUIDE_V18_URI,
|
|
4865
|
+
name: 'Meguro receipt guide v18',
|
|
4866
|
+
title: 'Meguro receipt guide v18',
|
|
4867
|
+
description: 'Receipt interpretation with the generated path list republished as a field index and an authored winback contact-recovery cost definition.',
|
|
4868
|
+
text: RECEIPT_GUIDE_V18_TEXT,
|
|
4869
|
+
},
|
|
1821
4870
|
{
|
|
1822
4871
|
topic: 'gate-policy',
|
|
1823
4872
|
version: GATE_POLICY_VERSION,
|
|
@@ -1845,6 +4894,33 @@ const CATALOG = buildDocumentationCatalog([
|
|
|
1845
4894
|
description: 'Immutable named checks with absolute fact paths against the complete canonical Gate verdict payload.',
|
|
1846
4895
|
text: GATE_POLICY_V3_TEXT,
|
|
1847
4896
|
},
|
|
4897
|
+
{
|
|
4898
|
+
topic: 'gate-policy',
|
|
4899
|
+
version: GATE_POLICY_V4_VERSION,
|
|
4900
|
+
uri: GATE_POLICY_V4_URI,
|
|
4901
|
+
name: 'Meguro Configured Receipt Gate policy v4',
|
|
4902
|
+
title: 'Meguro Configured Receipt Gate policy v4',
|
|
4903
|
+
description: 'Immutable configured-policy guide distinguishing Configured Receipt Gate from automatic Recorded API behavior and its Default run policy provenance.',
|
|
4904
|
+
text: GATE_POLICY_V4_TEXT,
|
|
4905
|
+
},
|
|
4906
|
+
{
|
|
4907
|
+
topic: 'gate-policy',
|
|
4908
|
+
version: GATE_POLICY_V5_VERSION,
|
|
4909
|
+
uri: GATE_POLICY_V5_URI,
|
|
4910
|
+
name: 'Meguro Configured Receipt Gate policy v5',
|
|
4911
|
+
title: 'Meguro Configured Receipt Gate policy v5',
|
|
4912
|
+
description: 'Immutable configured-policy guide with one self-consistent current policy URI and version narrative.',
|
|
4913
|
+
text: GATE_POLICY_V5_TEXT,
|
|
4914
|
+
},
|
|
4915
|
+
{
|
|
4916
|
+
topic: 'gate-policy',
|
|
4917
|
+
version: GATE_POLICY_V6_VERSION,
|
|
4918
|
+
uri: GATE_POLICY_V6_URI,
|
|
4919
|
+
name: 'Meguro Configured Receipt Gate policy v6',
|
|
4920
|
+
title: 'Meguro Configured Receipt Gate policy v6',
|
|
4921
|
+
description: 'Immutable configured-policy guide naming the failing-receipt-evidence check for the single fact it decides on, with state-neutral Gate guidance.',
|
|
4922
|
+
text: GATE_POLICY_V6_TEXT,
|
|
4923
|
+
},
|
|
1848
4924
|
], CURRENT_DOCUMENTATION_CURRENCY);
|
|
1849
4925
|
|
|
1850
4926
|
export function documentationResources() {
|
|
@@ -1865,10 +4941,14 @@ function documentationList(values, conjunction = 'and') {
|
|
|
1865
4941
|
return `${values.slice(0, -1).join(', ')}, ${conjunction} ${values.at(-1)}`;
|
|
1866
4942
|
}
|
|
1867
4943
|
|
|
1868
|
-
export function deriveDocumentationToolContract(resources) {
|
|
4944
|
+
export function deriveDocumentationToolContract(resources, currency = CURRENT_DOCUMENTATION_CURRENCY) {
|
|
1869
4945
|
if (!Array.isArray(resources) || resources.length === 0) {
|
|
1870
4946
|
throw new Error('Documentation tool contract requires at least one published resource');
|
|
1871
4947
|
}
|
|
4948
|
+
const currentUriByTopic = currency?.currentUriByTopic;
|
|
4949
|
+
if (!currentUriByTopic || typeof currentUriByTopic !== 'object') {
|
|
4950
|
+
throw new Error('Documentation tool contract requires the current documentation currency map');
|
|
4951
|
+
}
|
|
1872
4952
|
const byTopic = new Map();
|
|
1873
4953
|
const seen = new Set();
|
|
1874
4954
|
for (const resource of resources) {
|
|
@@ -1895,26 +4975,67 @@ export function deriveDocumentationToolContract(resources) {
|
|
|
1895
4975
|
const topics = [...byTopic.keys()].sort(codepointCompare);
|
|
1896
4976
|
const versions = [...new Set([...byTopic.values()].flatMap((rows) => rows.map((row) => row.version)))]
|
|
1897
4977
|
.sort((left, right) => left - right);
|
|
1898
|
-
const
|
|
4978
|
+
const versionsByTopic = {};
|
|
4979
|
+
const currentByTopic = {};
|
|
4980
|
+
for (const topic of topics) {
|
|
1899
4981
|
const rows = byTopic.get(topic).sort((left, right) => left.version - right.version);
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
4982
|
+
versionsByTopic[topic] = rows.map((row) => row.version);
|
|
4983
|
+
const currentUri = String(currentUriByTopic[topic] ?? '');
|
|
4984
|
+
if (!currentUri) throw new Error(`Documentation currency map has no current entry for ${topic}`);
|
|
4985
|
+
const current = documentationVersionFromUri(currentUri);
|
|
4986
|
+
if (!versionsByTopic[topic].includes(current)) {
|
|
4987
|
+
throw new Error(`Documentation currency map names an unpublished ${topic} version: v${current}`);
|
|
4988
|
+
}
|
|
4989
|
+
currentByTopic[topic] = current;
|
|
4990
|
+
}
|
|
4991
|
+
// MEG-1059: one derived `<topic>: latest vN of N` row per topic. The deleted description embedded
|
|
4992
|
+
// every historical version AND each latest document's full description — 2,816 bytes of discovery
|
|
4993
|
+
// that grew with every append-only mint, on a surface a caller reads before it can ask anything.
|
|
4994
|
+
const summary = topics
|
|
4995
|
+
.map((topic) => `${topic}: latest v${currentByTopic[topic]} of ${versionsByTopic[topic].length}`)
|
|
4996
|
+
.join('; ');
|
|
1904
4997
|
const topicList = documentationList(topics);
|
|
1905
|
-
const versionList = documentationList(versions);
|
|
1906
4998
|
return deepFreeze({
|
|
1907
4999
|
topics,
|
|
1908
5000
|
versions,
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
5001
|
+
versionsByTopic: deepFreeze(versionsByTopic),
|
|
5002
|
+
currentByTopic: deepFreeze(currentByTopic),
|
|
5003
|
+
// MEG-695/MEG-704 vocabulary: docs_read is the one tool that names the rehearsal boundary, and
|
|
5004
|
+
// the prose says "simulation". Compacting the registry must not withdraw that.
|
|
5005
|
+
description: 'Read immutable Meguro simulation documentation in-band, including the rehearsal boundary. '
|
|
5006
|
+
+ `Published: ${summary}. `
|
|
5007
|
+
+ 'Pass an exact published integer version, or "latest" to resolve this topic\'s current one; '
|
|
5008
|
+
+ 'either way the response carries the concrete integer version and its immutable '
|
|
5009
|
+
+ 'meguro://docs/<topic>/vN URI, so citations pin bytes. Account deletion is not an MCP tool.',
|
|
1912
5010
|
topicDescription: `Published Meguro simulation-documentation topic. Registry topics: ${topicList}.`,
|
|
1913
|
-
versionDescription:
|
|
5011
|
+
versionDescription: 'Exact published immutable version, or "latest" for this topic\'s current published version.',
|
|
1914
5012
|
topicError: `topic must be ${documentationList(topics, 'or')}`,
|
|
5013
|
+
versionError: 'version must be a positive integer or the exact string "latest"',
|
|
1915
5014
|
});
|
|
1916
5015
|
}
|
|
1917
5016
|
|
|
5017
|
+
/**
|
|
5018
|
+
* MEG-1059: resolve one documentation read. `latest` is a discovery sentinel resolved through the
|
|
5019
|
+
* SAME currency map the initialize instructions cite — it mints no alias resource and no second
|
|
5020
|
+
* registry, and the caller is handed the concrete immutable entry.
|
|
5021
|
+
*/
|
|
5022
|
+
export function resolveDocumentationRead(topic, version, contract = documentationToolContract()) {
|
|
5023
|
+
if (!contract.topics.includes(topic)) throw new Error(contract.topicError);
|
|
5024
|
+
const resolved = version === 'latest' ? contract.currentByTopic[topic] : version;
|
|
5025
|
+
if (!Number.isSafeInteger(resolved) || resolved < 1) throw new Error(contract.versionError);
|
|
5026
|
+
const published = contract.versionsByTopic[topic];
|
|
5027
|
+
if (!published.includes(resolved)) {
|
|
5028
|
+
// Name what this topic actually publishes and the two choices that work. The deleted message
|
|
5029
|
+
// said only "not found", which leaves blind retry as the caller's only move.
|
|
5030
|
+
throw new Error(
|
|
5031
|
+
`${topic} publishes v${published[0]}-v${published.at(-1)}; v${resolved} is not published. `
|
|
5032
|
+
+ `Current latest is v${contract.currentByTopic[topic]}. `
|
|
5033
|
+
+ `Call docs_read({ topic: "${topic}", version: "latest" }) or an exact published integer.`,
|
|
5034
|
+
);
|
|
5035
|
+
}
|
|
5036
|
+
return documentationByTopic(topic, resolved);
|
|
5037
|
+
}
|
|
5038
|
+
|
|
1918
5039
|
export function documentationToolContract() {
|
|
1919
5040
|
return deriveDocumentationToolContract(documentationResources());
|
|
1920
5041
|
}
|
|
@@ -1922,10 +5043,10 @@ export function documentationToolContract() {
|
|
|
1922
5043
|
export function receiptGuideFieldManifest() {
|
|
1923
5044
|
return deepFreeze({
|
|
1924
5045
|
schemas() {
|
|
1925
|
-
return Object.keys(
|
|
5046
|
+
return Object.keys(RECEIPT_FIELDS_V13).sort();
|
|
1926
5047
|
},
|
|
1927
5048
|
schemaFields(schema) {
|
|
1928
|
-
const fields =
|
|
5049
|
+
const fields = RECEIPT_FIELDS_V13[schema];
|
|
1929
5050
|
if (!fields) throw new Error(`Receipt schema not documented: ${schema}`);
|
|
1930
5051
|
return [...fields];
|
|
1931
5052
|
},
|