@wowok/agent-mcp 3.2.7 → 3.3.0
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 +2 -2
- package/dist/chain-semantics/field-capability.js +1 -1
- package/dist/chain-semantics/freeze-map.js +1 -1
- package/dist/chain-semantics/fund-flow.js +1 -1
- package/dist/chain-semantics/guard-verbs.js +1 -1
- package/dist/chain-semantics/object-graph.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.d.ts +10 -1
- package/dist/composition/compile.js +1 -1
- package/dist/composition/inflight.d.ts +10 -0
- package/dist/composition/inflight.js +1 -1
- package/dist/extensions/business-modules.d.ts +1 -1
- package/dist/extensions/business-modules.js +1 -1
- package/dist/extensions/capability-manifest.js +1 -1
- package/dist/extensions/industry-audit.spec.js +1 -1
- package/dist/extensions/industry-pack.js +1 -1
- package/dist/graph/onchain/edge-schema.js +1 -1
- package/dist/graph/onchain/facts.spec.js +1 -1
- package/dist/graph/onchain/field-manifest.js +1 -1
- package/dist/harness/index.d.ts +1 -0
- package/dist/harness/index.js +1 -1
- package/dist/harness/operation-id.d.ts +1 -0
- package/dist/harness/operation-id.js +1 -0
- package/dist/harness/recover.js +1 -1
- package/dist/index.js +1 -1
- package/dist/intent/types.d.ts +1 -1
- package/dist/intent/types.js +1 -1
- package/dist/keeper/KeeperScan.d.ts +2 -1
- package/dist/keeper/KeeperScan.js +1 -1
- package/dist/keeper/keeper.spec.js +1 -1
- package/dist/keeper/types.d.ts +3 -0
- package/dist/keeper/types.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.d.ts +34 -0
- package/dist/knowledge/allocator-rail-verifier.js +1 -0
- package/dist/knowledge/arbitration-ledger.js +1 -1
- package/dist/knowledge/arbitration-templates.js +1 -1
- package/dist/knowledge/arbitration-venue-order.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +19 -1
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/rules/alloc_audit.json +1 -1
- package/dist/knowledge/baselines/rules/arb.json +1 -1
- package/dist/knowledge/baselines/rules/guard.json +106 -1
- package/dist/knowledge/baselines/rules/machine.json +9 -6
- package/dist/knowledge/baselines/rules/plan.json +40 -17
- package/dist/knowledge/baselines/semantic-facts.js +1 -1
- package/dist/knowledge/builtin-templates.d.ts +1 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/contract-invariants.js +1 -1
- package/dist/knowledge/discount-threshold.d.ts +11 -0
- package/dist/knowledge/discount-threshold.js +1 -1
- package/dist/knowledge/event-semantics.js +1 -1
- package/dist/knowledge/fund-layer.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-anchor-reach.d.ts +1 -1
- package/dist/knowledge/guard-anchor-reach.js +1 -1
- package/dist/knowledge/guard-bindings.js +1 -1
- package/dist/knowledge/guard-design-patterns.d.ts +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-field-cognition.js +1 -1
- package/dist/knowledge/guard-ledger.js +1 -1
- package/dist/knowledge/guard-lint.js +1 -1
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-risk.d.ts +1 -0
- package/dist/knowledge/guard-risk.js +1 -1
- package/dist/knowledge/guard-submission-brief.d.ts +6 -0
- package/dist/knowledge/guard-submission-brief.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +2 -2
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/industry-strategy.js +1 -1
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/machine-ledger.js +1 -1
- package/dist/knowledge/machine-puzzle.d.ts +1 -1
- package/dist/knowledge/machine-puzzle.js +1 -1
- package/dist/knowledge/machine-risk.js +1 -1
- package/dist/knowledge/machine-templates.js +1 -1
- package/dist/knowledge/machine-topology.d.ts +8 -0
- package/dist/knowledge/machine-topology.js +1 -1
- package/dist/knowledge/machine-translation.js +1 -1
- package/dist/knowledge/order-ledger.js +1 -1
- package/dist/knowledge/permission-ledger.js +1 -1
- package/dist/knowledge/protocol-facts.d.ts +16 -0
- package/dist/knowledge/protocol-facts.js +1 -0
- package/dist/knowledge/recipient-constraint.js +1 -1
- package/dist/knowledge/reward-ledger.d.ts +2 -1
- package/dist/knowledge/reward-ledger.js +1 -1
- package/dist/knowledge/reward-templates.js +1 -1
- package/dist/knowledge/safety-rules.d.ts +0 -2
- package/dist/knowledge/safety-rules.js +1 -1
- package/dist/knowledge/scenario-modes.d.ts +7 -0
- package/dist/knowledge/scenario-modes.js +1 -1
- package/dist/knowledge/strategy-manuals.js +1 -1
- package/dist/knowledge/template-loader.d.ts +13 -1
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.d.ts +2 -0
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/tool-constraints.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/workflow-guidance.d.ts +7 -3
- package/dist/knowledge/workflow-guidance.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/monitor/normalize.d.ts +1 -1
- package/dist/monitor/normalize.js +1 -1
- package/dist/monitor/types.d.ts +1 -1
- package/dist/monitor/types.js +1 -1
- package/dist/participation/radar-core.d.ts +1 -1
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/game-theory.d.ts +1 -0
- package/dist/playbooks/service-build/game-theory.js +1 -1
- package/dist/playbooks/service-build/intent-analyzer.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.d.ts +8 -0
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/object-panorama.d.ts +28 -1
- package/dist/playbooks/service-build/object-panorama.js +1 -1
- package/dist/playbooks/service-build/participation-radar.d.ts +2 -0
- package/dist/playbooks/service-build/participation-radar.js +1 -1
- package/dist/playbooks/service-build/relationship-profile.js +1 -1
- package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +1 -1
- package/dist/playbooks/service-build/reverse-mapping.js +1 -1
- package/dist/playbooks/service-build/service-panorama.js +1 -1
- package/dist/playbooks/service-build/service-quote.js +1 -1
- package/dist/playbooks/service-build/service-quote.spec.js +1 -1
- package/dist/relationship/registry.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/role/profiles.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/safety/preview.d.ts +1 -0
- package/dist/safety/preview.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +19 -1
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/allocation.d.ts +1 -1
- package/dist/schema/call/arbitration.d.ts +8 -8
- package/dist/schema/call/arbitration.js +1 -1
- package/dist/schema/call/base.d.ts +52 -5
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +3 -0
- package/dist/schema/call/contact.d.ts +5 -5
- package/dist/schema/call/demand.d.ts +5 -5
- package/dist/schema/call/error-codes.d.ts +1 -1
- package/dist/schema/call/error-codes.js +1 -1
- package/dist/schema/call/guard.d.ts +3 -3
- package/dist/schema/call/guard.js +1 -1
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/machine.d.ts +13 -5
- package/dist/schema/call/machine.js +1 -1
- package/dist/schema/call/order.d.ts +5 -5
- package/dist/schema/call/order.js +1 -1
- package/dist/schema/call/permission.d.ts +5 -5
- package/dist/schema/call/personal.d.ts +4 -4
- package/dist/schema/call/progress.d.ts +5 -5
- package/dist/schema/call/progress.js +1 -1
- package/dist/schema/call/proof.js +1 -1
- package/dist/schema/call/receipt.d.ts +8 -0
- package/dist/schema/call/receipt.js +1 -1
- package/dist/schema/call/repository.d.ts +9 -9
- package/dist/schema/call/repository.js +1 -1
- package/dist/schema/call/reward.d.ts +25 -5
- package/dist/schema/call/reward.js +1 -1
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +10 -5
- package/dist/schema/call/service.js +1 -1
- package/dist/schema/call/treasury.d.ts +5 -5
- package/dist/schema/common/index.d.ts +6 -6
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/goal/index.d.ts +17 -1
- package/dist/schema/goal/planning.d.ts +28 -2
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +3 -0
- package/dist/schema/industry-pack/index.js +1 -1
- package/dist/schema/intent-radar/index.d.ts +9 -0
- package/dist/schema/intent-radar/index.js +1 -1
- package/dist/schema/local/index.d.ts +31 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +57 -43
- package/dist/schema/operations.js +1 -1
- package/dist/schema/query/bi.d.ts +22 -6
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +164 -102
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-query/index.d.ts +2 -0
- package/dist/schema/schema-query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/utils/permission-machine-check.d.ts +2 -0
- package/dist/schema/utils/permission-machine-check.js +1 -1
- package/dist/schema/workflow/index.d.ts +1 -1
- package/dist/schema-query-impl/index.d.ts +1 -1
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.output.json +3 -0
- package/dist/schemas/account_operation.schema.json +4 -4
- package/dist/schemas/benchmark_migration_operation.output.json +42 -0
- package/dist/schemas/benchmark_migration_operation.schema.json +40 -3
- package/dist/schemas/bridge_operation.output.json +3 -0
- package/dist/schemas/goal_operation.schema.json +52 -2
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/industry_pack_operation.output.json +8 -0
- package/dist/schemas/industry_pack_operation.schema.json +9 -0
- package/dist/schemas/intent_radar.output.json +8 -2
- package/dist/schemas/intent_radar.schema.json +4 -1
- package/dist/schemas/local_cache_operation.output.json +3 -0
- package/dist/schemas/local_history_operation.output.json +3 -0
- package/dist/schemas/local_info_operation.output.json +3 -0
- package/dist/schemas/local_mark_operation.output.json +3 -0
- package/dist/schemas/messenger_operation.schema.json +4 -4
- package/dist/schemas/monitor_events.schema.json +3 -1
- package/dist/schemas/onchain_events.output.json +275 -11
- package/dist/schemas/onchain_events.schema.json +25 -1
- package/dist/schemas/onchain_operations.output.json +47 -5
- package/dist/schemas/onchain_operations.schema.json +664 -179
- package/dist/schemas/onchain_operations_allocation.schema.json +7 -7
- package/dist/schemas/onchain_operations_arbitration.schema.json +21 -15
- package/dist/schemas/onchain_operations_contact.schema.json +15 -10
- package/dist/schemas/onchain_operations_demand.schema.json +15 -10
- package/dist/schemas/onchain_operations_gen_passport.schema.json +5 -5
- package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -1
- package/dist/schemas/onchain_operations_guard.schema.json +346 -8
- package/dist/schemas/onchain_operations_machine.schema.json +24 -11
- package/dist/schemas/onchain_operations_order.schema.json +17 -12
- package/dist/schemas/onchain_operations_permission.schema.json +10 -5
- package/dist/schemas/onchain_operations_personal.schema.json +2 -2
- package/dist/schemas/onchain_operations_progress.schema.json +17 -12
- package/dist/schemas/onchain_operations_proof.schema.json +6 -6
- package/dist/schemas/onchain_operations_repository.schema.json +19 -14
- package/dist/schemas/onchain_operations_reward.schema.json +96 -15
- package/dist/schemas/onchain_operations_service.schema.json +33 -21
- package/dist/schemas/onchain_operations_treasury.schema.json +15 -10
- package/dist/schemas/onchain_table_data.output.json +7 -7
- package/dist/schemas/query_toolkit.output.json +268 -44
- package/dist/schemas/query_toolkit.schema.json +1 -1
- package/dist/schemas/schema_query.schema.json +7 -2
- package/dist/schemas/workflow_operation.schema.json +5 -5
- package/dist/schemas/wowok_buildin_info.output.json +140 -3
- package/dist/schemas/wowok_buildin_info.schema.json +2 -2
- package/dist/tools/handlers/benchmark-migration.d.ts +66 -1
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/dispatch-expectations.d.ts +0 -1
- package/dist/tools/handlers/dispatch-expectations.js +1 -1
- package/dist/tools/handlers/industry-pack.js +1 -1
- package/dist/tools/handlers/intent-radar.js +1 -1
- package/dist/tools/handlers/keeper.d.ts +1 -1
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/onchain.d.ts +12 -0
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/query.d.ts +1 -0
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/review-chain.js +1 -1
- package/dist/tools/handlers/schema-query.js +1 -1
- package/dist/tools/handlers/workflow.js +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/move-fn-index.gen.js +1 -1
- package/dist/tools/registry/agent.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/files.js +1 -1
- package/dist/tools/registry/query.js +1 -1
- package/dist/tools/rules-hook.js +1 -1
- package/dist/tools/upgrade-check.d.ts +23 -0
- package/dist/tools/upgrade-check.js +1 -1
- package/dist/tools/wip-deploy-assist.d.ts +6 -0
- package/dist/tools/wip-deploy-assist.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +2 -2
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
60
60
|
},
|
|
61
61
|
"value_type": {
|
|
62
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details.",
|
|
62
63
|
"anyOf": [
|
|
63
64
|
{
|
|
64
65
|
"type": "number",
|
|
@@ -345,11 +346,10 @@
|
|
|
345
346
|
"const": "vecvecu8",
|
|
346
347
|
"description": "vecvecu8"
|
|
347
348
|
}
|
|
348
|
-
]
|
|
349
|
-
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
349
|
+
]
|
|
350
350
|
},
|
|
351
351
|
"value": {
|
|
352
|
-
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).",
|
|
352
|
+
"description": "The actual value data. Format depends on `value_type`:\nTYPE-CLASS SPLIT (F03): scalar value_types (Bool/Address/String/U8..U256) take ONE scalar value (boolean/address string/name/string/number); Vec* value_types (VecBool/VecAddress/VecString/VecU8..VecU256) take a REAL JSON ARRAY of elements — a string (even a Python-repr-looking \"[a, b]\") fails serialization with 'value_type=10 (array) requires a array value'. The historical 'static values must be strings' rule applied to SCALARS only.\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nPROTOCOL SLOT 254 (once, b_submission Address): the submitted value MUST be the ORDER address bound to the operation (payment_info.for_object) — NEVER the Progress/Machine/Arb object the call is advancing. The chain asserts submission(254) == the order address; a Progress address fails the task binding and the forward aborts.\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).",
|
|
353
353
|
"anyOf": [
|
|
354
354
|
{
|
|
355
355
|
"type": "boolean"
|
|
@@ -515,7 +515,7 @@
|
|
|
515
515
|
"type": "string"
|
|
516
516
|
}
|
|
517
517
|
],
|
|
518
|
-
"description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive."
|
|
518
|
+
"description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive. STRONGLY PREFER the NAME form: a numeric ID is resolved VERBATIM at runtime, so a wrong-but-existing ID silently checks a DIFFERENT field and only fails at Guard trigger time (abort 7, no leg named) — a wrong name fails loudly at validation here instead (rndb58d8d 04-ROOTCAUSE-A A2). If you only know the field, list the catalog first via schema_query action='get_guard_queries'."
|
|
519
519
|
},
|
|
520
520
|
"object": {
|
|
521
521
|
"type": "object",
|
|
@@ -1875,13 +1875,26 @@
|
|
|
1875
1875
|
"minimum": 0,
|
|
1876
1876
|
"maximum": 255,
|
|
1877
1877
|
"description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
|
|
1878
|
+
},
|
|
1879
|
+
"convert_witness": {
|
|
1880
|
+
"description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
|
|
1881
|
+
"anyOf": [
|
|
1882
|
+
{
|
|
1883
|
+
"type": "integer",
|
|
1884
|
+
"minimum": -9007199254740991,
|
|
1885
|
+
"maximum": 9007199254740991
|
|
1886
|
+
},
|
|
1887
|
+
{
|
|
1888
|
+
"type": "string"
|
|
1889
|
+
}
|
|
1890
|
+
]
|
|
1878
1891
|
}
|
|
1879
1892
|
},
|
|
1880
1893
|
"required": [
|
|
1881
1894
|
"identifier"
|
|
1882
1895
|
],
|
|
1883
1896
|
"additionalProperties": false,
|
|
1884
|
-
"description": "Reference to the
|
|
1897
|
+
"description": "Reference to the queried object in the Guard table: a Progress address, or an Order address when convert_witness is set."
|
|
1885
1898
|
},
|
|
1886
1899
|
"where": {
|
|
1887
1900
|
"type": "object",
|
|
@@ -1932,6 +1945,91 @@
|
|
|
1932
1945
|
"additionalProperties": false,
|
|
1933
1946
|
"description": "Returns U64. Finds the index of the first or last history entry matching the filter conditions. Returns the history index (U64) if found. Throws error if no matching entry is found (Guard validation fails)."
|
|
1934
1947
|
},
|
|
1948
|
+
{
|
|
1949
|
+
"type": "object",
|
|
1950
|
+
"properties": {
|
|
1951
|
+
"type": {
|
|
1952
|
+
"type": "string",
|
|
1953
|
+
"const": "query_progress_history_time"
|
|
1954
|
+
},
|
|
1955
|
+
"object": {
|
|
1956
|
+
"type": "object",
|
|
1957
|
+
"properties": {
|
|
1958
|
+
"identifier": {
|
|
1959
|
+
"type": "integer",
|
|
1960
|
+
"minimum": 0,
|
|
1961
|
+
"maximum": 255,
|
|
1962
|
+
"description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
|
|
1963
|
+
},
|
|
1964
|
+
"convert_witness": {
|
|
1965
|
+
"description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
|
|
1966
|
+
"anyOf": [
|
|
1967
|
+
{
|
|
1968
|
+
"type": "integer",
|
|
1969
|
+
"minimum": -9007199254740991,
|
|
1970
|
+
"maximum": 9007199254740991
|
|
1971
|
+
},
|
|
1972
|
+
{
|
|
1973
|
+
"type": "string"
|
|
1974
|
+
}
|
|
1975
|
+
]
|
|
1976
|
+
}
|
|
1977
|
+
},
|
|
1978
|
+
"required": [
|
|
1979
|
+
"identifier"
|
|
1980
|
+
],
|
|
1981
|
+
"additionalProperties": false,
|
|
1982
|
+
"description": "Reference to the queried object in the Guard table: a Progress address, or an Order address when convert_witness is set."
|
|
1983
|
+
},
|
|
1984
|
+
"where": {
|
|
1985
|
+
"type": "object",
|
|
1986
|
+
"properties": {
|
|
1987
|
+
"node": {
|
|
1988
|
+
"description": "Optional filter: node name string to match.",
|
|
1989
|
+
"type": "string"
|
|
1990
|
+
},
|
|
1991
|
+
"nextNode": {
|
|
1992
|
+
"description": "Optional filter: next node name string to match — the canonical time anchor is where:{nextNode:'<node>'}, find:'last', which returns the IMMUTABLE moment that node was entered (1280 history.time is written once on entry and never rewritten, unlike the 1272 current-time read which refreshes on re-entry). An empty where {} with find:'last' returns the entry time of the CURRENT node — safe for node-SET gates.",
|
|
1993
|
+
"type": "string"
|
|
1994
|
+
},
|
|
1995
|
+
"timeMin": {
|
|
1996
|
+
"description": "Optional filter: minimum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
|
|
1997
|
+
"type": "string"
|
|
1998
|
+
},
|
|
1999
|
+
"timeMax": {
|
|
2000
|
+
"description": "Optional filter: maximum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
|
|
2001
|
+
"type": "string"
|
|
2002
|
+
},
|
|
2003
|
+
"indexMin": {
|
|
2004
|
+
"description": "Optional filter: minimum history index (inclusive) to search within. Use string to represent U64 value.",
|
|
2005
|
+
"type": "string"
|
|
2006
|
+
},
|
|
2007
|
+
"indexMax": {
|
|
2008
|
+
"description": "Optional filter: maximum history index (inclusive) to search within. Use string to represent U64 value.",
|
|
2009
|
+
"type": "string"
|
|
2010
|
+
}
|
|
2011
|
+
},
|
|
2012
|
+
"additionalProperties": false,
|
|
2013
|
+
"description": "Filter conditions for the progress history time query."
|
|
2014
|
+
},
|
|
2015
|
+
"find": {
|
|
2016
|
+
"type": "string",
|
|
2017
|
+
"enum": [
|
|
2018
|
+
"first",
|
|
2019
|
+
"last"
|
|
2020
|
+
],
|
|
2021
|
+
"description": "'first' finds the earliest matching history entry, 'last' finds the most recent matching history entry."
|
|
2022
|
+
}
|
|
2023
|
+
},
|
|
2024
|
+
"required": [
|
|
2025
|
+
"type",
|
|
2026
|
+
"object",
|
|
2027
|
+
"where",
|
|
2028
|
+
"find"
|
|
2029
|
+
],
|
|
2030
|
+
"additionalProperties": false,
|
|
2031
|
+
"description": "Returns U64. Returns the TIMESTAMP (ms) of the first or last history entry matching the filter conditions — the immutable entry moment of a node (query 1280 progress.history.time). Preferred over query 1272 progress.current_time for time anchors: 1272 reads the node's CURRENT time and refreshes on re-entry (drift-prone), while 1280 is written once on entering next_node and never rewritten. Throws error if no matching entry is found (Guard validation fails)."
|
|
2032
|
+
},
|
|
1935
2033
|
{
|
|
1936
2034
|
"type": "object",
|
|
1937
2035
|
"properties": {
|
|
@@ -2235,6 +2333,77 @@
|
|
|
2235
2333
|
"additionalProperties": false,
|
|
2236
2334
|
"description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
|
|
2237
2335
|
},
|
|
2336
|
+
{
|
|
2337
|
+
"type": "object",
|
|
2338
|
+
"properties": {
|
|
2339
|
+
"type": {
|
|
2340
|
+
"type": "string",
|
|
2341
|
+
"const": "query_progress_history_session_forward_retained_submission_value"
|
|
2342
|
+
},
|
|
2343
|
+
"object": {
|
|
2344
|
+
"type": "object",
|
|
2345
|
+
"properties": {
|
|
2346
|
+
"identifier": {
|
|
2347
|
+
"type": "integer",
|
|
2348
|
+
"minimum": 0,
|
|
2349
|
+
"maximum": 255,
|
|
2350
|
+
"description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
|
|
2351
|
+
}
|
|
2352
|
+
},
|
|
2353
|
+
"required": [
|
|
2354
|
+
"identifier"
|
|
2355
|
+
],
|
|
2356
|
+
"additionalProperties": false,
|
|
2357
|
+
"description": "Reference to the Progress object in the Guard table (must be Address type)."
|
|
2358
|
+
},
|
|
2359
|
+
"historyIdx": {
|
|
2360
|
+
"description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
|
|
2361
|
+
"allOf": [
|
|
2362
|
+
{
|
|
2363
|
+
"$ref": "#/definitions/__schema1"
|
|
2364
|
+
}
|
|
2365
|
+
],
|
|
2366
|
+
"$ref": "#/definitions/__schema0"
|
|
2367
|
+
},
|
|
2368
|
+
"sessionIdx": {
|
|
2369
|
+
"description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
|
|
2370
|
+
"allOf": [
|
|
2371
|
+
{
|
|
2372
|
+
"$ref": "#/definitions/__schema1"
|
|
2373
|
+
}
|
|
2374
|
+
],
|
|
2375
|
+
"$ref": "#/definitions/__schema0"
|
|
2376
|
+
},
|
|
2377
|
+
"forwardIdx": {
|
|
2378
|
+
"description": "GuardNode that returns the forward operation index (U64 type) within the session. Typically an 'identifier' node referencing a U64 value from the Guard table.",
|
|
2379
|
+
"allOf": [
|
|
2380
|
+
{
|
|
2381
|
+
"$ref": "#/definitions/__schema1"
|
|
2382
|
+
}
|
|
2383
|
+
],
|
|
2384
|
+
"$ref": "#/definitions/__schema0"
|
|
2385
|
+
},
|
|
2386
|
+
"identifier": {
|
|
2387
|
+
"description": "GuardNode that returns the submission identifier (U8 type) — which retained submission of the forward to read. Typically an 'identifier' node referencing a U8 value from the Guard table.",
|
|
2388
|
+
"allOf": [
|
|
2389
|
+
{
|
|
2390
|
+
"$ref": "#/definitions/__schema1"
|
|
2391
|
+
}
|
|
2392
|
+
],
|
|
2393
|
+
"$ref": "#/definitions/__schema0"
|
|
2394
|
+
}
|
|
2395
|
+
},
|
|
2396
|
+
"required": [
|
|
2397
|
+
"type",
|
|
2398
|
+
"object",
|
|
2399
|
+
"historyIdx",
|
|
2400
|
+
"sessionIdx",
|
|
2401
|
+
"forwardIdx",
|
|
2402
|
+
"identifier"
|
|
2403
|
+
],
|
|
2404
|
+
"additionalProperties": false,
|
|
2405
|
+
"description": "Returns VecU8 (the ONLY history query that does not return U64). Value of the specified retained submission of a HISTORY record (query 1281) — the history-side counterpart of the ACTIVE-SESSION-ONLY 1268 read, which goes blind once the session migrates into history. Use 1274/1275 to discover the history/session/forward indexes first. Throws error when the record carries no submission for the identifier (Guard validation fails)."
|
|
2406
|
+
},
|
|
2238
2407
|
{
|
|
2239
2408
|
"type": "object",
|
|
2240
2409
|
"properties": {
|
|
@@ -3393,7 +3562,7 @@
|
|
|
3393
3562
|
},
|
|
3394
3563
|
"file_path": {
|
|
3395
3564
|
"type": "string",
|
|
3396
|
-
"description": "
|
|
3565
|
+
"description": "ABSOLUTE path to JSON or Markdown file containing Guard definition. Field name is `file_path` (NOT `file`). File can define: namedNew, description, table, root, rely."
|
|
3397
3566
|
},
|
|
3398
3567
|
"format": {
|
|
3399
3568
|
"default": "json",
|
|
@@ -3662,7 +3831,7 @@
|
|
|
3662
3831
|
"type": "string"
|
|
3663
3832
|
}
|
|
3664
3833
|
],
|
|
3665
|
-
"description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive."
|
|
3834
|
+
"description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive. STRONGLY PREFER the NAME form: a numeric ID is resolved VERBATIM at runtime, so a wrong-but-existing ID silently checks a DIFFERENT field and only fails at Guard trigger time (abort 7, no leg named) — a wrong name fails loudly at validation here instead (rndb58d8d 04-ROOTCAUSE-A A2). If you only know the field, list the catalog first via schema_query action='get_guard_queries'."
|
|
3666
3835
|
},
|
|
3667
3836
|
"object": {
|
|
3668
3837
|
"type": "object",
|
|
@@ -5022,13 +5191,26 @@
|
|
|
5022
5191
|
"minimum": 0,
|
|
5023
5192
|
"maximum": 255,
|
|
5024
5193
|
"description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
|
|
5194
|
+
},
|
|
5195
|
+
"convert_witness": {
|
|
5196
|
+
"description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
|
|
5197
|
+
"anyOf": [
|
|
5198
|
+
{
|
|
5199
|
+
"type": "integer",
|
|
5200
|
+
"minimum": -9007199254740991,
|
|
5201
|
+
"maximum": 9007199254740991
|
|
5202
|
+
},
|
|
5203
|
+
{
|
|
5204
|
+
"type": "string"
|
|
5205
|
+
}
|
|
5206
|
+
]
|
|
5025
5207
|
}
|
|
5026
5208
|
},
|
|
5027
5209
|
"required": [
|
|
5028
5210
|
"identifier"
|
|
5029
5211
|
],
|
|
5030
5212
|
"additionalProperties": false,
|
|
5031
|
-
"description": "Reference to the
|
|
5213
|
+
"description": "Reference to the queried object in the Guard table: a Progress address, or an Order address when convert_witness is set."
|
|
5032
5214
|
},
|
|
5033
5215
|
"where": {
|
|
5034
5216
|
"type": "object",
|
|
@@ -5079,6 +5261,91 @@
|
|
|
5079
5261
|
"additionalProperties": false,
|
|
5080
5262
|
"description": "Returns U64. Finds the index of the first or last history entry matching the filter conditions. Returns the history index (U64) if found. Throws error if no matching entry is found (Guard validation fails)."
|
|
5081
5263
|
},
|
|
5264
|
+
{
|
|
5265
|
+
"type": "object",
|
|
5266
|
+
"properties": {
|
|
5267
|
+
"type": {
|
|
5268
|
+
"type": "string",
|
|
5269
|
+
"const": "query_progress_history_time"
|
|
5270
|
+
},
|
|
5271
|
+
"object": {
|
|
5272
|
+
"type": "object",
|
|
5273
|
+
"properties": {
|
|
5274
|
+
"identifier": {
|
|
5275
|
+
"type": "integer",
|
|
5276
|
+
"minimum": 0,
|
|
5277
|
+
"maximum": 255,
|
|
5278
|
+
"description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
|
|
5279
|
+
},
|
|
5280
|
+
"convert_witness": {
|
|
5281
|
+
"description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
|
|
5282
|
+
"anyOf": [
|
|
5283
|
+
{
|
|
5284
|
+
"type": "integer",
|
|
5285
|
+
"minimum": -9007199254740991,
|
|
5286
|
+
"maximum": 9007199254740991
|
|
5287
|
+
},
|
|
5288
|
+
{
|
|
5289
|
+
"type": "string"
|
|
5290
|
+
}
|
|
5291
|
+
]
|
|
5292
|
+
}
|
|
5293
|
+
},
|
|
5294
|
+
"required": [
|
|
5295
|
+
"identifier"
|
|
5296
|
+
],
|
|
5297
|
+
"additionalProperties": false,
|
|
5298
|
+
"description": "Reference to the queried object in the Guard table: a Progress address, or an Order address when convert_witness is set."
|
|
5299
|
+
},
|
|
5300
|
+
"where": {
|
|
5301
|
+
"type": "object",
|
|
5302
|
+
"properties": {
|
|
5303
|
+
"node": {
|
|
5304
|
+
"description": "Optional filter: node name string to match.",
|
|
5305
|
+
"type": "string"
|
|
5306
|
+
},
|
|
5307
|
+
"nextNode": {
|
|
5308
|
+
"description": "Optional filter: next node name string to match — the canonical time anchor is where:{nextNode:'<node>'}, find:'last', which returns the IMMUTABLE moment that node was entered (1280 history.time is written once on entry and never rewritten, unlike the 1272 current-time read which refreshes on re-entry). An empty where {} with find:'last' returns the entry time of the CURRENT node — safe for node-SET gates.",
|
|
5309
|
+
"type": "string"
|
|
5310
|
+
},
|
|
5311
|
+
"timeMin": {
|
|
5312
|
+
"description": "Optional filter: minimum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
|
|
5313
|
+
"type": "string"
|
|
5314
|
+
},
|
|
5315
|
+
"timeMax": {
|
|
5316
|
+
"description": "Optional filter: maximum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
|
|
5317
|
+
"type": "string"
|
|
5318
|
+
},
|
|
5319
|
+
"indexMin": {
|
|
5320
|
+
"description": "Optional filter: minimum history index (inclusive) to search within. Use string to represent U64 value.",
|
|
5321
|
+
"type": "string"
|
|
5322
|
+
},
|
|
5323
|
+
"indexMax": {
|
|
5324
|
+
"description": "Optional filter: maximum history index (inclusive) to search within. Use string to represent U64 value.",
|
|
5325
|
+
"type": "string"
|
|
5326
|
+
}
|
|
5327
|
+
},
|
|
5328
|
+
"additionalProperties": false,
|
|
5329
|
+
"description": "Filter conditions for the progress history time query."
|
|
5330
|
+
},
|
|
5331
|
+
"find": {
|
|
5332
|
+
"type": "string",
|
|
5333
|
+
"enum": [
|
|
5334
|
+
"first",
|
|
5335
|
+
"last"
|
|
5336
|
+
],
|
|
5337
|
+
"description": "'first' finds the earliest matching history entry, 'last' finds the most recent matching history entry."
|
|
5338
|
+
}
|
|
5339
|
+
},
|
|
5340
|
+
"required": [
|
|
5341
|
+
"type",
|
|
5342
|
+
"object",
|
|
5343
|
+
"where",
|
|
5344
|
+
"find"
|
|
5345
|
+
],
|
|
5346
|
+
"additionalProperties": false,
|
|
5347
|
+
"description": "Returns U64. Returns the TIMESTAMP (ms) of the first or last history entry matching the filter conditions — the immutable entry moment of a node (query 1280 progress.history.time). Preferred over query 1272 progress.current_time for time anchors: 1272 reads the node's CURRENT time and refreshes on re-entry (drift-prone), while 1280 is written once on entering next_node and never rewritten. Throws error if no matching entry is found (Guard validation fails)."
|
|
5348
|
+
},
|
|
5082
5349
|
{
|
|
5083
5350
|
"type": "object",
|
|
5084
5351
|
"properties": {
|
|
@@ -5382,6 +5649,77 @@
|
|
|
5382
5649
|
"additionalProperties": false,
|
|
5383
5650
|
"description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
|
|
5384
5651
|
},
|
|
5652
|
+
{
|
|
5653
|
+
"type": "object",
|
|
5654
|
+
"properties": {
|
|
5655
|
+
"type": {
|
|
5656
|
+
"type": "string",
|
|
5657
|
+
"const": "query_progress_history_session_forward_retained_submission_value"
|
|
5658
|
+
},
|
|
5659
|
+
"object": {
|
|
5660
|
+
"type": "object",
|
|
5661
|
+
"properties": {
|
|
5662
|
+
"identifier": {
|
|
5663
|
+
"type": "integer",
|
|
5664
|
+
"minimum": 0,
|
|
5665
|
+
"maximum": 255,
|
|
5666
|
+
"description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
|
|
5667
|
+
}
|
|
5668
|
+
},
|
|
5669
|
+
"required": [
|
|
5670
|
+
"identifier"
|
|
5671
|
+
],
|
|
5672
|
+
"additionalProperties": false,
|
|
5673
|
+
"description": "Reference to the Progress object in the Guard table (must be Address type)."
|
|
5674
|
+
},
|
|
5675
|
+
"historyIdx": {
|
|
5676
|
+
"description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
|
|
5677
|
+
"allOf": [
|
|
5678
|
+
{
|
|
5679
|
+
"$ref": "#/definitions/__schema1"
|
|
5680
|
+
}
|
|
5681
|
+
],
|
|
5682
|
+
"$ref": "#/definitions/__schema0"
|
|
5683
|
+
},
|
|
5684
|
+
"sessionIdx": {
|
|
5685
|
+
"description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
|
|
5686
|
+
"allOf": [
|
|
5687
|
+
{
|
|
5688
|
+
"$ref": "#/definitions/__schema1"
|
|
5689
|
+
}
|
|
5690
|
+
],
|
|
5691
|
+
"$ref": "#/definitions/__schema0"
|
|
5692
|
+
},
|
|
5693
|
+
"forwardIdx": {
|
|
5694
|
+
"description": "GuardNode that returns the forward operation index (U64 type) within the session. Typically an 'identifier' node referencing a U64 value from the Guard table.",
|
|
5695
|
+
"allOf": [
|
|
5696
|
+
{
|
|
5697
|
+
"$ref": "#/definitions/__schema1"
|
|
5698
|
+
}
|
|
5699
|
+
],
|
|
5700
|
+
"$ref": "#/definitions/__schema0"
|
|
5701
|
+
},
|
|
5702
|
+
"identifier": {
|
|
5703
|
+
"description": "GuardNode that returns the submission identifier (U8 type) — which retained submission of the forward to read. Typically an 'identifier' node referencing a U8 value from the Guard table.",
|
|
5704
|
+
"allOf": [
|
|
5705
|
+
{
|
|
5706
|
+
"$ref": "#/definitions/__schema1"
|
|
5707
|
+
}
|
|
5708
|
+
],
|
|
5709
|
+
"$ref": "#/definitions/__schema0"
|
|
5710
|
+
}
|
|
5711
|
+
},
|
|
5712
|
+
"required": [
|
|
5713
|
+
"type",
|
|
5714
|
+
"object",
|
|
5715
|
+
"historyIdx",
|
|
5716
|
+
"sessionIdx",
|
|
5717
|
+
"forwardIdx",
|
|
5718
|
+
"identifier"
|
|
5719
|
+
],
|
|
5720
|
+
"additionalProperties": false,
|
|
5721
|
+
"description": "Returns VecU8 (the ONLY history query that does not return U64). Value of the specified retained submission of a HISTORY record (query 1281) — the history-side counterpart of the ACTIVE-SESSION-ONLY 1268 read, which goes blind once the session migrates into history. Use 1274/1275 to discover the history/session/forward indexes first. Throws error when the record carries no submission for the identifier (Guard validation fails)."
|
|
5722
|
+
},
|
|
5385
5723
|
{
|
|
5386
5724
|
"type": "object",
|
|
5387
5725
|
"properties": {
|
|
@@ -510,6 +510,10 @@
|
|
|
510
510
|
"description": "Node pair in Machine object"
|
|
511
511
|
},
|
|
512
512
|
"description": "Node pair list"
|
|
513
|
+
},
|
|
514
|
+
"optional": {
|
|
515
|
+
"description": "OPTIONAL pure-side-action leaf marker (v32): order completion NEVER routes through this node and it must never gate money (e.g. a review node the buyer may skip entirely). SESSION METADATA ONLY — the on-chain node struct carries name+pairs, so this is NOT stored on-chain. Composition audits exempt an optional leaf from the FUND-EXIT-01 terminal fund-reachability search: a review leaf with no allocator is by design, not a stranded-funds bug (upw F-06, 6939_upwork-261016).",
|
|
516
|
+
"type": "boolean"
|
|
513
517
|
}
|
|
514
518
|
},
|
|
515
519
|
"required": [
|
|
@@ -697,6 +701,10 @@
|
|
|
697
701
|
"description": "Node pair in Machine object"
|
|
698
702
|
},
|
|
699
703
|
"description": "Node pair list"
|
|
704
|
+
},
|
|
705
|
+
"optional": {
|
|
706
|
+
"description": "OPTIONAL pure-side-action leaf marker (v32): order completion NEVER routes through this node and it must never gate money (e.g. a review node the buyer may skip entirely). SESSION METADATA ONLY — the on-chain node struct carries name+pairs, so this is NOT stored on-chain. Composition audits exempt an optional leaf from the FUND-EXIT-01 terminal fund-reachability search: a review leaf with no allocator is by design, not a stranded-funds bug (upw F-06, 6939_upwork-261016).",
|
|
707
|
+
"type": "boolean"
|
|
700
708
|
}
|
|
701
709
|
},
|
|
702
710
|
"required": [
|
|
@@ -1064,7 +1072,7 @@
|
|
|
1064
1072
|
]
|
|
1065
1073
|
},
|
|
1066
1074
|
"pause": {
|
|
1067
|
-
"description": "Whether to pause generating new Progress objects.",
|
|
1075
|
+
"description": "Whether to pause generating new Progress objects. Chain truth (machine.move:657, the progress-generation entry asserts !bPaused): the pause gates NEW order entry only — in-flight Progress keeps advancing and settling (yfd-ln F-13 misread this as a freeze switch; it never was one).",
|
|
1068
1076
|
"type": "boolean"
|
|
1069
1077
|
},
|
|
1070
1078
|
"publish": {
|
|
@@ -1072,9 +1080,18 @@
|
|
|
1072
1080
|
"type": "boolean"
|
|
1073
1081
|
},
|
|
1074
1082
|
"owner_receive": {
|
|
1075
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this Machine object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received
|
|
1083
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Machine object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received\" — for\n order.receive this is the correct default for \"the buyer got their refund\".\n Example: receive: 'recently'\n• bare object id (string, 0x-prefixed) — one-object form, auto-expanded (F-15):\n pass the id of the single received object you want to unwrap (e.g. a CoinWrapper id).\n Example: receive: '0xabc...'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::wow::WOW>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
|
|
1076
1084
|
"anyOf": [
|
|
1077
1085
|
{
|
|
1086
|
+
"type": "string",
|
|
1087
|
+
"const": "recently"
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"type": "string",
|
|
1091
|
+
"pattern": "^0x[0-9a-fA-F]{8,}$"
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
"minItems": 1,
|
|
1078
1095
|
"type": "array",
|
|
1079
1096
|
"items": {
|
|
1080
1097
|
"type": "object",
|
|
@@ -1182,10 +1199,6 @@
|
|
|
1182
1199
|
],
|
|
1183
1200
|
"additionalProperties": false,
|
|
1184
1201
|
"description": "Received record of Coin objects"
|
|
1185
|
-
},
|
|
1186
|
-
{
|
|
1187
|
-
"type": "string",
|
|
1188
|
-
"const": "recently"
|
|
1189
1202
|
}
|
|
1190
1203
|
]
|
|
1191
1204
|
},
|
|
@@ -1353,6 +1366,7 @@
|
|
|
1353
1366
|
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
1354
1367
|
},
|
|
1355
1368
|
"value_type": {
|
|
1369
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details.",
|
|
1356
1370
|
"anyOf": [
|
|
1357
1371
|
{
|
|
1358
1372
|
"type": "number",
|
|
@@ -1639,11 +1653,10 @@
|
|
|
1639
1653
|
"const": "vecvecu8",
|
|
1640
1654
|
"description": "vecvecu8"
|
|
1641
1655
|
}
|
|
1642
|
-
]
|
|
1643
|
-
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
1656
|
+
]
|
|
1644
1657
|
},
|
|
1645
1658
|
"value": {
|
|
1646
|
-
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).",
|
|
1659
|
+
"description": "The actual value data. Format depends on `value_type`:\nTYPE-CLASS SPLIT (F03): scalar value_types (Bool/Address/String/U8..U256) take ONE scalar value (boolean/address string/name/string/number); Vec* value_types (VecBool/VecAddress/VecString/VecU8..VecU256) take a REAL JSON ARRAY of elements — a string (even a Python-repr-looking \"[a, b]\") fails serialization with 'value_type=10 (array) requires a array value'. The historical 'static values must be strings' rule applied to SCALARS only.\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nPROTOCOL SLOT 254 (once, b_submission Address): the submitted value MUST be the ORDER address bound to the operation (payment_info.for_object) — NEVER the Progress/Machine/Arb object the call is advancing. The chain asserts submission(254) == the order address; a Progress address fails the task binding and the forward aborts.\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).",
|
|
1647
1660
|
"anyOf": [
|
|
1648
1661
|
{
|
|
1649
1662
|
"type": "boolean"
|
|
@@ -1802,7 +1815,7 @@
|
|
|
1802
1815
|
"additionalProperties": false,
|
|
1803
1816
|
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
1804
1817
|
},
|
|
1805
|
-
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
1818
|
+
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}] PROTOCOL SLOT 254: when the Guard table has identifier 254, submit the ORDER address bound to the operation (payment_info.for_object) — never the Progress/Machine object being advanced."
|
|
1806
1819
|
}
|
|
1807
1820
|
},
|
|
1808
1821
|
"required": [
|
|
@@ -1812,7 +1825,7 @@
|
|
|
1812
1825
|
"additionalProperties": false,
|
|
1813
1826
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
1814
1827
|
},
|
|
1815
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
1828
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. SLOT COMPLETENESS (T8 az3-mn-261013): the submission array must cover EVERY b_submission slot in the Guard's table, not just one — a Guard whose table has multiple b_submission entries (e.g. slot 0 + slot 254) aborts on-chain with 'Submission ID not found' (abort 11) when any b_submission slot has no matching entry. Check the Guard's table (each entry with b_submission needs its identifier filled) and include ALL of them. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
1816
1829
|
}
|
|
1817
1830
|
},
|
|
1818
1831
|
"required": [
|