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/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 CURRENT_DOCUMENTATION_CURRENCY = DOCUMENTATION_CURRENCY_V4;
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
- export const MCP_INITIALIZE_INSTRUCTIONS = `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)} })\`; 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}\`.`;
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
- const CURRENT_VERSION_LABELS_TEXT = `## Three different version labels
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 \`${CURRENT_INDEX_URI}\` for the current resource URI in
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 \`${CURRENT_GATE_POLICY_URI}\`; its documentation resource version is a separate number.
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
- const CURRENT_DEEPER_DOCUMENTATION_TEXT = `## Deeper in-band documentation
1359
-
1360
- - Receipt interpretation: read \`${CURRENT_RECEIPT_GUIDE_URI}\` or call
1361
- \`docs_read({ topic: "receipt-guide", version: ${documentationVersionFromUri(CURRENT_RECEIPT_GUIDE_URI)} })\`.
1362
- - Gate policy: read \`${CURRENT_GATE_POLICY_URI}\` or call
1363
- \`docs_read({ topic: "gate-policy", version: ${documentationVersionFromUri(CURRENT_GATE_POLICY_URI)} })\`.
1364
- - Current-document pointers: read \`${CURRENT_INDEX_URI}\` or call
1365
- \`docs_read({ topic: "index", version: ${documentationVersionFromUri(CURRENT_INDEX_URI)} })\`.
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, CURRENT_DEEPER_DOCUMENTATION_TEXT)
1408
- .replace('## Control and data planes', `${CURRENT_VERSION_LABELS_TEXT}\n\n## 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 \`${CURRENT_RECEIPT_GUIDE_URI}\`.`,
2128
+ `read \`${DOCUMENTATION_CURRENCY_V4.currentUriByTopic['receipt-guide']}\`.`,
1417
2129
  )
1418
- .replaceAll(RECEIPT_GUIDE_URI, CURRENT_RECEIPT_GUIDE_URI)
1419
- .replaceAll(RECEIPT_GUIDE_V2_URI, CURRENT_RECEIPT_GUIDE_URI)
1420
- .replaceAll(GATE_POLICY_V2_URI, CURRENT_GATE_POLICY_URI)
1421
- .replaceAll(GETTING_STARTED_V7_URI, CURRENT_GETTING_STARTED_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
- `${CURRENT_VERSION_LABELS_TEXT}\n\n${ASSERTION_FAMILY_EXERCISE_TEXT}\n\n${CHANNEL_ABSTRACTION_TEXT}\n\n## Stable concepts versus changing facts`,
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: 'product-guide',
1678
- version: PRODUCT_GUIDE_VERSION,
1679
- uri: PRODUCT_GUIDE_URI,
1680
- name: 'Meguro product guide v1',
1681
- title: 'Meguro product guide v1',
1682
- description: 'Stable product concepts, evidence boundaries, surface responsibilities, and question-to-source routing.',
1683
- text: PRODUCT_GUIDE_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: 'product-guide',
1688
- version: PRODUCT_GUIDE_V2_VERSION,
1689
- uri: PRODUCT_GUIDE_V2_URI,
1690
- name: 'Meguro product guide v2',
1691
- title: 'Meguro product guide v2',
1692
- description: 'Stable product concepts, simulation vocabulary, evidence boundaries, surface responsibilities, and question-to-source routing.',
1693
- text: PRODUCT_GUIDE_V2_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: 'product-guide',
1697
- version: PRODUCT_GUIDE_V3_VERSION,
1698
- uri: PRODUCT_GUIDE_V3_URI,
1699
- name: 'Meguro product guide v3',
1700
- title: 'Meguro product guide v3',
1701
- description: 'World-first product concepts, evidence boundaries, surface responsibilities, and question-to-source routing.',
1702
- text: PRODUCT_GUIDE_V3_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: 'product-guide',
1706
- version: PRODUCT_GUIDE_V4_VERSION,
1707
- uri: PRODUCT_GUIDE_V4_URI,
1708
- name: 'Meguro product guide v4',
1709
- title: 'Meguro product guide v4',
1710
- description: 'Hosted-first product concepts, practice-run vocabulary, evidence boundaries, and question-to-source routing.',
1711
- text: PRODUCT_GUIDE_V4_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: 'product-guide',
1715
- version: PRODUCT_GUIDE_V5_VERSION,
1716
- uri: PRODUCT_GUIDE_V5_URI,
1717
- name: 'Meguro product guide v5',
1718
- title: 'Meguro product guide v5',
1719
- description: 'Current-link-derived product concepts with version-label, assertion-family, and effect-level channel guidance.',
1720
- text: PRODUCT_GUIDE_V5_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 announcements = topics.map((topic) => {
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
- const latest = rows.at(-1);
1901
- return `${topic} versions [${rows.map((row) => row.version).join(', ')}] `
1902
- + `(latest v${latest.version}: ${latest.description.replace(/[.]+$/u, '')})`;
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
- description: `Read immutable Meguro product and simulation evidence documentation in-band. `
1910
- + `Published registry: ${announcements.join('; ')}. Account deletion is deliberately not an MCP tool. `
1911
- + 'Pass the exact published topic and version so cited documentation never resolves to mutable latest content.',
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: `Published immutable simulation-documentation version. Registry versions: ${versionList}.`,
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(RECEIPT_FIELDS_V7).sort();
5046
+ return Object.keys(RECEIPT_FIELDS_V13).sort();
1926
5047
  },
1927
5048
  schemaFields(schema) {
1928
- const fields = RECEIPT_FIELDS_V7[schema];
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
  },