@wowok/skills 2.2.2 → 2.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,7 +43,7 @@ npm install -g @wowok/skills
43
43
  | **Always** | `wowok-output` | Metadata always in prompt (~100 tokens). AI auto-loads full content when needed. |
44
44
  | **On-demand** | All others | AI matches description to task. Only loaded when relevant. |
45
45
 
46
- > **v2.0 migration**: The 4 rule-reference skills (`wowok-tools`, `wowok-safety`, `wowok-scenario`, `wowok-guard`) were sunk into the MCP knowledge layer and are no longer installed. Their content is served by the MCP server itself — `schema_query` actions `get_tool_reference` / `get_safety_rules` / `get_guard_design_patterns`, and `project_operation` actions.
46
+ > **v2.0 migration**: The 4 rule-reference skills (`wowok-tools`, `wowok-safety`, `wowok-scenario`, `wowok-guard`) were sunk into the MCP knowledge layer and are no longer installed. Their content is served by the MCP server itself — `schema_query` actions `get_tool_reference` / `get_safety_rules` / `get_guard_design_patterns`, and `industry_pack_operation` actions.
47
47
 
48
48
  ## Quick Start
49
49
 
@@ -183,7 +183,7 @@ const providerSkill = getSkillByName('wowok-provider');
183
183
  |--------------|---------------|
184
184
  | `wowok-tools` | MCP `schema_query` action='get_tool_reference' |
185
185
  | `wowok-safety` | MCP `schema_query` action='get_safety_rules' + runtime confirm-gate on every write |
186
- | `wowok-scenario` | MCP `project_operation` actions 'recommend_industry' / 'create_project' |
186
+ | `wowok-scenario` | MCP `industry_pack_operation` actions 'recommend_industry' / 'list_modes' |
187
187
  | `wowok-guard` | MCP `schema_query` actions 'get_guard_design_patterns' / 'get_guard_templates' |
188
188
 
189
189
  ## Related Projects
package/dist/skills.d.ts CHANGED
@@ -8,7 +8,7 @@ import { Skill, SkillConfig, SkillRole, RoleSkills, SkillMode } from './types';
8
8
  * - wowok-tools → MCP tools-reference
9
9
  * (schema_query action='get_tool_reference')
10
10
  * - wowok-scenario → MCP scenario-modes
11
- * (project_operation recommend_industry / create_project,
11
+ * (industry_pack_operation recommend_industry / list_modes,
12
12
  * industry mode registry)
13
13
  * - wowok-guard → MCP guard-design-patterns
14
14
  * (schema_query action='get_guard_design_patterns')
@@ -47,7 +47,7 @@ import { Skill, SkillConfig, SkillRole, RoleSkills, SkillMode } from './types';
47
47
  */
48
48
  /**
49
49
  * Skills removed in the GLM5-31 sink refactor. Their content lives in the MCP
50
- * knowledge layer and is served via schema_query / project_operation — no skill
50
+ * knowledge layer and is served via schema_query / industry_pack_operation — no skill
51
51
  * installation required. Kept here for migration detection (checkSkillMigration).
52
52
  */
53
53
  export declare const DEPRECATED_SKILLS: readonly ["wowok-safety", "wowok-tools", "wowok-scenario", "wowok-guard"];
@@ -82,7 +82,7 @@ export declare function getRoleSkills(): RoleSkills[];
82
82
  * Note: Guard design / tool usage / safety / industry-mode questions are now
83
83
  * served directly by the MCP knowledge layer (schema_query actions
84
84
  * get_guard_design_patterns / get_tool_reference / get_safety_rules, and
85
- * project_operation recommend_industry) — no skill installation required.
85
+ * industry_pack_operation recommend_industry) — no skill installation required.
86
86
  */
87
87
  export declare function recommendSkills(intent: string): Skill[];
88
88
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,2EAKpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK/D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAgHzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,IAAI,KAAK,EAAE,CAEnC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,CAExD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,EAAE,CAExE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,EAAE,CAsC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CA0CvD;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,CAYtF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC,CAMD;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG;IAC9D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB,CAqBA"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,2EAKpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK/D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAgHzB,CAAC;AA2IF;;GAEG;AACH,wBAAgB,SAAS,IAAI,KAAK,EAAE,CAEnC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,CAExD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,EAAE,CAExE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,EAAE,CAsC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CA0CvD;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,CAYtF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC,CAMD;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG;IAC9D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB,CAqBA"}
package/dist/skills.js CHANGED
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.wowokSkills = exports.SKILL_MIGRATION_MAP = exports.DEPRECATED_SKILLS = void 0;
4
37
  exports.getSkills = getSkills;
@@ -10,6 +43,8 @@ exports.recommendSkills = recommendSkills;
10
43
  exports.negotiateSkillMode = negotiateSkillMode;
11
44
  exports.negotiateAllSkills = negotiateAllSkills;
12
45
  exports.checkSkillMigration = checkSkillMigration;
46
+ const fs = __importStar(require("fs"));
47
+ const path = __importStar(require("path"));
13
48
  /**
14
49
  * WoWok Skills organized by role (post GLM5-31 sink refactor)
15
50
  *
@@ -19,7 +54,7 @@ exports.checkSkillMigration = checkSkillMigration;
19
54
  * - wowok-tools → MCP tools-reference
20
55
  * (schema_query action='get_tool_reference')
21
56
  * - wowok-scenario → MCP scenario-modes
22
- * (project_operation recommend_industry / create_project,
57
+ * (industry_pack_operation recommend_industry / list_modes,
23
58
  * industry mode registry)
24
59
  * - wowok-guard → MCP guard-design-patterns
25
60
  * (schema_query action='get_guard_design_patterns')
@@ -58,7 +93,7 @@ exports.checkSkillMigration = checkSkillMigration;
58
93
  */
59
94
  /**
60
95
  * Skills removed in the GLM5-31 sink refactor. Their content lives in the MCP
61
- * knowledge layer and is served via schema_query / project_operation — no skill
96
+ * knowledge layer and is served via schema_query / industry_pack_operation — no skill
62
97
  * installation required. Kept here for migration detection (checkSkillMigration).
63
98
  */
64
99
  exports.DEPRECATED_SKILLS = [
@@ -71,7 +106,7 @@ exports.DEPRECATED_SKILLS = [
71
106
  exports.SKILL_MIGRATION_MAP = {
72
107
  'wowok-safety': "MCP schema_query action='get_safety_rules' (+ runtime confirm-gate on every on-chain write)",
73
108
  'wowok-tools': "MCP schema_query action='get_tool_reference'",
74
- 'wowok-scenario': "MCP project_operation action='recommend_industry' / 'list_modes' / 'create_project' (industry mode registry)",
109
+ 'wowok-scenario': "MCP industry_pack_operation action='recommend_industry' / 'list_modes' (industry mode registry)",
75
110
  'wowok-guard': "MCP schema_query action='get_guard_design_patterns' (+ action='get_guard_templates')",
76
111
  };
77
112
  exports.wowokSkills = {
@@ -149,7 +184,7 @@ exports.wowokSkills = {
149
184
  // === ONBOARDING / PLANNING / AUDIT (L3+L4 BRIDGE) ===
150
185
  {
151
186
  name: 'wowok-onboard',
152
- description: 'First-touch onboarding — guides a new user from zero to their first published Service through a Review opening + 12-round user-driven dialogue. Industry mode defaults (freelance/rental/education/travel/...) are served by MCP project_operation recommend_industry. Use when a new user says "I want to open a shop" or has no published Service yet.',
187
+ description: 'First-touch onboarding — guides a new user from zero to their first published Service through a Review opening + 12-round user-driven dialogue. Industry mode defaults (freelance/rental/education/travel/...) are served by MCP industry_pack_operation recommend_industry. Use when a new user says "I want to open a shop" or has no published Service yet.',
153
188
  version: '2.0.0',
154
189
  role: 'shared',
155
190
  loading: 'on-demand',
@@ -181,29 +216,166 @@ exports.wowokSkills = {
181
216
  }
182
217
  ]
183
218
  };
219
+ // ============================================================
220
+ // Runtime registry — disk is the source of truth
221
+ // ============================================================
222
+ //
223
+ // Every accessor resolves the skill list from the PACKAGE DIRECTORY AT
224
+ // RUNTIME (each `<name>/SKILL.md` frontmatter merged over the compiled
225
+ // `wowokSkills` metadata). Because consumers (the agent sidecar via the
226
+ // `@wowok/skills` dependency) reach this package through a junction to the
227
+ // repo working tree, edits to SKILL.md files — content, description, or a
228
+ // brand-new skill folder — take effect within the cache TTL WITHOUT any
229
+ // rebuild.
230
+ const RUNTIME_SCAN_TTL_MS = 3000;
231
+ let runtimeCache = null;
232
+ let runtimeAt = 0;
233
+ /** Resolve the skills package root from the compiled output (dist → root). */
234
+ function packageRoot() {
235
+ return path.resolve(__dirname, '..');
236
+ }
237
+ const VALID_ROLES = [
238
+ 'customer', 'provider', 'supplier', 'collaborator', 'arbitrator', 'shared',
239
+ ];
240
+ /**
241
+ * Minimal YAML frontmatter reader — supports the fields this registry needs
242
+ * (`name`, `description` incl. `|` block scalars, `version`, `role`,
243
+ * `loading`, `related`, `always`). No external YAML dependency.
244
+ */
245
+ function parseFrontmatter(raw) {
246
+ const m = raw.match(/^---\r?\n([\s\S]*?)\r?\n---/);
247
+ if (!m)
248
+ return {};
249
+ const out = {};
250
+ const lines = m[1].split(/\r?\n/);
251
+ let key = null;
252
+ let block = null;
253
+ const flush = () => {
254
+ if (key && block)
255
+ out[key] = block.join('\n').trim();
256
+ key = null;
257
+ block = null;
258
+ };
259
+ for (const line of lines) {
260
+ const listItem = line.match(/^\s+-\s+(.*)$/);
261
+ if (key && block && listItem) {
262
+ block.push(listItem[1].trim());
263
+ continue;
264
+ }
265
+ const kv = line.match(/^([A-Za-z_][\w-]*):\s*(.*)$/);
266
+ if (!kv) {
267
+ // Continuation of a `|` block scalar.
268
+ if (key && block && line.startsWith(' '))
269
+ block.push(line.trim());
270
+ continue;
271
+ }
272
+ flush();
273
+ key = kv[1];
274
+ const val = kv[2].trim();
275
+ if (val === '|' || val === '|-' || val === '') {
276
+ block = [];
277
+ }
278
+ else {
279
+ out[key] = val;
280
+ key = null;
281
+ }
282
+ }
283
+ flush();
284
+ return out;
285
+ }
286
+ function coerceRelated(v) {
287
+ if (Array.isArray(v))
288
+ return v.map(String);
289
+ if (typeof v === 'string') {
290
+ const stripped = v.replace(/^\[[\s\S]*\]$/, (m) => m.slice(1, -1));
291
+ const parts = stripped.split(/[\s,]+/).filter(Boolean);
292
+ return parts.length ? parts : undefined;
293
+ }
294
+ return undefined;
295
+ }
296
+ /** Scan each `NAME/SKILL.md` under the package root; frontmatter wins over compiled metadata. */
297
+ function scanSkillDirectories() {
298
+ const root = packageRoot();
299
+ const compiled = new Map(exports.wowokSkills.skills.map((s) => [s.name, s]));
300
+ const merged = [];
301
+ let entries;
302
+ try {
303
+ entries = fs.readdirSync(root, { withFileTypes: true })
304
+ .filter((e) => e.isDirectory() && e.name !== 'dist' && e.name !== 'scripts' && e.name !== 'node_modules' && !e.name.startsWith('.'))
305
+ .map((e) => e.name);
306
+ }
307
+ catch {
308
+ return exports.wowokSkills.skills;
309
+ }
310
+ for (const name of entries) {
311
+ const file = path.join(root, name, 'SKILL.md');
312
+ if (!fs.existsSync(file))
313
+ continue;
314
+ const compiledEntry = compiled.get(name);
315
+ let fm = {};
316
+ try {
317
+ fm = parseFrontmatter(fs.readFileSync(file, 'utf-8'));
318
+ }
319
+ catch {
320
+ fm = {};
321
+ }
322
+ const role = VALID_ROLES.includes(fm.role)
323
+ ? fm.role
324
+ : compiledEntry?.role ?? 'shared';
325
+ const loading = fm.always === true || fm.always === 'true' || fm.loading === 'always'
326
+ ? 'always'
327
+ : compiledEntry?.loading ?? 'on-demand';
328
+ merged.push({
329
+ name,
330
+ description: typeof fm.description === 'string' && fm.description.trim()
331
+ ? fm.description.trim().replace(/\s+/g, ' ')
332
+ : compiledEntry?.description ?? '',
333
+ version: typeof fm.version === 'string' ? fm.version : compiledEntry?.version ?? '1.0.0',
334
+ role,
335
+ loading,
336
+ related: coerceRelated(fm.related) ?? compiledEntry?.related ?? [],
337
+ });
338
+ }
339
+ // Keep compiled-only entries that have no folder (defensive; normally all
340
+ // compiled skills have folders).
341
+ for (const s of exports.wowokSkills.skills) {
342
+ if (!merged.some((m) => m.name === s.name))
343
+ merged.push(s);
344
+ }
345
+ return merged;
346
+ }
347
+ /** Runtime skill list — fresh within the TTL (default 3s), disk-authoritative. */
348
+ function runtimeSkills() {
349
+ const now = Date.now();
350
+ if (!runtimeCache || now - runtimeAt > RUNTIME_SCAN_TTL_MS) {
351
+ runtimeCache = scanSkillDirectories();
352
+ runtimeAt = now;
353
+ }
354
+ return runtimeCache;
355
+ }
184
356
  /**
185
357
  * Get all skills
186
358
  */
187
359
  function getSkills() {
188
- return exports.wowokSkills.skills;
360
+ return runtimeSkills();
189
361
  }
190
362
  /**
191
363
  * Get skill by name
192
364
  */
193
365
  function getSkillByName(name) {
194
- return exports.wowokSkills.skills.find(skill => skill.name === name);
366
+ return runtimeSkills().find(skill => skill.name === name);
195
367
  }
196
368
  /**
197
369
  * Get skills by role
198
370
  */
199
371
  function getSkillsByRole(role) {
200
- return exports.wowokSkills.skills.filter(skill => skill.role === role);
372
+ return runtimeSkills().filter(skill => skill.role === role);
201
373
  }
202
374
  /**
203
375
  * Get skills by loading mode
204
376
  */
205
377
  function getSkillsByLoading(mode) {
206
- return exports.wowokSkills.skills.filter(skill => skill.loading === mode);
378
+ return runtimeSkills().filter(skill => skill.loading === mode);
207
379
  }
208
380
  /**
209
381
  * Get role-based skill groupings for AI guidance
@@ -253,7 +425,7 @@ function getRoleSkills() {
253
425
  * Note: Guard design / tool usage / safety / industry-mode questions are now
254
426
  * served directly by the MCP knowledge layer (schema_query actions
255
427
  * get_guard_design_patterns / get_tool_reference / get_safety_rules, and
256
- * project_operation recommend_industry) — no skill installation required.
428
+ * industry_pack_operation recommend_industry) — no skill installation required.
257
429
  */
258
430
  function recommendSkills(intent) {
259
431
  const lower = intent.toLowerCase();
@@ -332,7 +504,7 @@ function negotiateSkillMode(mcpVersion, skillVersion) {
332
504
  * @returns array of { skill, version, mode } for all skills
333
505
  */
334
506
  function negotiateAllSkills(mcpVersion) {
335
- return exports.wowokSkills.skills.map((s) => ({
507
+ return runtimeSkills().map((s) => ({
336
508
  skill: s.name,
337
509
  version: s.version,
338
510
  mode: negotiateSkillMode(mcpVersion, s.version),
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
@@ -314,10 +314,10 @@ clock > progress.current_time + 10000
314
314
 
315
315
  **Guard Table**:
316
316
 
317
- | identifier | b_submission | value_type | value | Purpose |
318
- |------------|-------------|-----------|-------|---------|
319
- | 0 | **true** | Address | (submitted at runtime) | Order ID submitted at runtime, converted to Progress via convert_witness |
320
- | 1 | false | U64 | 10000 | Time-lock duration in ms (10 seconds for testing) |
317
+ | identifier | b_submission | value_type | value | name | Purpose |
318
+ |------------|-------------|-----------|-------|------|---------|
319
+ | 0 | **true** | Address | (submitted at runtime) | Order ID (submitted at runtime) | Order ID submitted at runtime, converted to Progress via convert_witness |
320
+ | 1 | false | U64 | 10000 | lock_duration_ms | Time-lock duration in ms (10 seconds for testing) |
321
321
 
322
322
  > **Important**: `10000` ms (10 seconds) is for testing only. In production, set to a reasonable duration (e.g., 8 hours = 28800000 ms).
323
323
 
@@ -1107,7 +1107,78 @@ Fill in the `value` field with the Order ID (or Order name) and resubmit. The `s
1107
1107
  > - Replace `0xfb8bed2f...` with the actual `insurance_withdraw_guard_treasury_v1` address from your Phase 1 response.
1108
1108
  > - The `value` field accepts either an on-chain object ID or a named object reference (e.g., `"test_insurance_order_v1"`).
1109
1109
  > - The `sharing` configuration (`{"Entity": "insurance_treasury_v1"}` at 100% Rate) determines where funds flow. Funds go to the fixed Treasury address regardless of who calls the allocation — this is the safe Entity-sharing pattern that prevents fund theft.
1110
- > - After a successful withdrawal, the Allocation `balance` becomes `0` and a Payment object is created as an immutable record.
1110
+ > - After a successful withdrawal, the Allocation `balance` becomes `0`, a Payment object is created as an immutable record, and the recipient receives the funds as a **CoinWrapper** object (owned but NOT yet spendable). Complete Step 12 to unwrap it into spendable balance.
1111
+
1112
+ ---
1113
+
1114
+ ## Step 12: Receive Funds (Unwrap CoinWrapper — Single Action)
1115
+
1116
+ After `alloc_by_guard` distributes funds, each recipient receives a `CoinWrapper<T>` object — owned but not spendable. **The tool auto-unwraps in ONE action**: no need to query CoinWrapper IDs first, and no need to specify the coin type — received CoinWrappers are auto-enumerated and their inner token type (`CoinWrapper<T>`) is auto-derived on-chain.
1117
+
1118
+ Choose the variant matching the recipient (Treasury approach → 12.1; personal approach → 12.2).
1119
+
1120
+ ### 12.1 Treasury Recipient (Approach 1)
1121
+
1122
+ **Prompt**: Receive recently arrived funds into "insurance_treasury_v1".
1123
+
1124
+ ```json
1125
+ {
1126
+ "tool": "onchain_operations",
1127
+ "data": {
1128
+ "operation_type": "treasury",
1129
+ "data": {
1130
+ "object": "insurance_treasury_v1",
1131
+ "receive": "recently"
1132
+ },
1133
+ "env": {
1134
+ "account": "insurance_provider_v1",
1135
+ "network": "testnet"
1136
+ }
1137
+ }
1138
+ }
1139
+ ```
1140
+
1141
+ > **How it works**: `receive: "recently"` auto-queries every `CoinWrapper` received by the Treasury and deposits them into the Treasury balance in a single transaction. The Treasury's token type (`0x2::wow::WOW`) must match the CoinWrapper's inner type (validated automatically).
1142
+
1143
+ ### 12.2 Personal Recipient (Approach 2)
1144
+
1145
+ **Prompt**: Unwrap all CoinWrappers owned by "insurance_provider_v1" into spendable balance.
1146
+
1147
+ ```json
1148
+ {
1149
+ "tool": "onchain_operations",
1150
+ "data": {
1151
+ "operation_type": "payment",
1152
+ "data": {
1153
+ "receive": true
1154
+ },
1155
+ "env": {
1156
+ "account": "insurance_provider_v1",
1157
+ "network": "testnet"
1158
+ }
1159
+ }
1160
+ }
1161
+ ```
1162
+
1163
+ > **How it works (AUTO-RECEIVE)**: with `receive: true` and `object` omitted, the tool unwraps **every** CoinWrapper currently owned by the caller via `payment::unwrap_to_myself` in a single transaction, deleting the wrappers and transferring the underlying coins to the caller. The coin type is auto-derived from each wrapper's own on-chain type — `type_parameter` is only needed if auto-derivation fails.
1164
+ >
1165
+ > **Optional — unwrap a specific wrapper only**: pass `"object": "<coinwrapper_id_or_name>"` instead of omitting it.
1166
+
1167
+ ### Verify Funds Received
1168
+
1169
+ ```json
1170
+ {
1171
+ "tool": "query_toolkit",
1172
+ "data": {
1173
+ "query_type": "account_balance",
1174
+ "name_or_address": "insurance_treasury_v1",
1175
+ "network": "testnet",
1176
+ "no_cache": true
1177
+ }
1178
+ }
1179
+ ```
1180
+
1181
+ The Treasury (or personal) balance should now include the withdrawn `100000000` MIST (0.1 WOW). For the personal approach, query `"insurance_provider_v1"` instead.
1111
1182
 
1112
1183
  ---
1113
1184
 
@@ -1171,3 +1242,4 @@ Published Machine nodes are immutable (`MoveAbort code: 3`). Create a new Machin
1171
1242
  - [ ] Step 10.2: Advance progress Initial -> Start
1172
1243
  - [ ] Step 10.3: Advance progress Start -> Complete with submission (wait 10s after Step 10.2)
1173
1244
  - [ ] Step 11: Withdraw funds via Allocation (alloc_by_guard with Treasury or personal withdraw guard)
1245
+ - [ ] Step 12: Receive funds (Treasury: `receive: "recently"` / Personal: `payment {receive: true}`) and verify balance