@wowok/agent-mcp 3.0.2 → 3.0.3
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/LICENSE +0 -3
- package/dist/harness/recover.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/knowledge/account-marks.js +1 -1
- package/dist/knowledge/arbitration-risk.js +1 -1
- package/dist/knowledge/flywheel-loop.d.ts +4 -52
- package/dist/knowledge/flywheel-loop.js +1 -1
- package/dist/knowledge/guard-lint.js +1 -1
- package/dist/knowledge/index.d.ts +2 -225
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/machine-risk.js +1 -1
- package/dist/knowledge/machine-translation.js +1 -1
- package/dist/knowledge/onchain-constants.js +1 -1
- package/dist/knowledge/order-ledger.d.ts +2 -2
- package/dist/knowledge/order-ledger.js +1 -1
- package/dist/knowledge/order-puzzle.d.ts +4 -4
- package/dist/knowledge/order-puzzle.js +1 -1
- package/dist/knowledge/order-risk.d.ts +1 -0
- package/dist/knowledge/order-risk.js +1 -1
- package/dist/knowledge/order-templates.d.ts +1 -1
- package/dist/knowledge/order-templates.js +1 -1
- package/dist/knowledge/safety-rules.js +1 -1
- package/dist/knowledge/service-ledger.js +1 -1
- package/dist/knowledge/service-risk.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/workspace-lists.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/context-assembly.d.ts +3 -1
- package/dist/playbooks/service-build/context-assembly.js +1 -1
- package/dist/playbooks/service-build/machine-nodes.d.ts +2 -0
- package/dist/playbooks/service-build/machine-nodes.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.d.ts +7 -0
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/review/machine.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/call/base.d.ts +12 -3
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +4 -0
- package/dist/schema/call/bridge.js +1 -1
- package/dist/schema/call/error-codes.d.ts +2 -0
- package/dist/schema/call/error-codes.js +1 -0
- package/dist/schema/call/guard.d.ts +4 -4
- package/dist/schema/call/semantic.d.ts +9 -1
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/goal/index.d.ts +3 -3
- package/dist/schema/goal/planning.d.ts +2 -2
- package/dist/schema/industry-pack/index.d.ts +4 -4
- package/dist/schema/industry-pack/modes.d.ts +4 -4
- package/dist/schema/local/index.d.ts +558 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/messenger/index.d.ts +25 -25
- package/dist/schema/operations.d.ts +1 -1
- package/dist/schema/persona/index.d.ts +2 -2
- package/dist/schema/query/bi.d.ts +0 -4
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-query/index.d.ts +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/trust/index.d.ts +3 -3
- package/dist/schema/workspace/index.d.ts +1 -1
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.output.json +4 -0
- package/dist/schemas/bridge_operation.output.json +4 -0
- package/dist/schemas/index.json +7 -1
- package/dist/schemas/local_history_operation.output.json +1458 -0
- package/dist/schemas/local_history_operation.schema.json +105 -0
- package/dist/schemas/local_info_operation.output.json +4 -0
- package/dist/schemas/local_mark_operation.output.json +4 -0
- package/dist/schemas/onchain_operations.output.json +4 -1
- package/dist/schemas/onchain_operations.schema.json +30 -10
- package/dist/schemas/onchain_operations_guard.schema.json +30 -10
- package/dist/schemas/query_toolkit.output.json +17 -16
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/local.d.ts +1 -0
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/registry/local.js +1 -1
- package/dist/tools/shared.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +2 -2
- package/dist/knowledge/allocation-confirm.d.ts +0 -115
- package/dist/knowledge/allocation-confirm.js +0 -1
- package/dist/knowledge/allocation-context.d.ts +0 -58
- package/dist/knowledge/allocation-context.js +0 -1
- package/dist/knowledge/allocation-translation.d.ts +0 -72
- package/dist/knowledge/allocation-translation.js +0 -1
- package/dist/knowledge/arb-confirm.d.ts +0 -28
- package/dist/knowledge/arb-confirm.js +0 -1
- package/dist/knowledge/arb-translation.d.ts +0 -48
- package/dist/knowledge/arb-translation.js +0 -1
- package/dist/knowledge/arbitration-confirm.d.ts +0 -135
- package/dist/knowledge/arbitration-confirm.js +0 -1
- package/dist/knowledge/arbitration-context.d.ts +0 -81
- package/dist/knowledge/arbitration-context.js +0 -1
- package/dist/knowledge/arbitration-translation.d.ts +0 -91
- package/dist/knowledge/arbitration-translation.js +0 -1
- package/dist/knowledge/bridge-confirm.d.ts +0 -26
- package/dist/knowledge/bridge-confirm.js +0 -1
- package/dist/knowledge/bridge-translation.d.ts +0 -37
- package/dist/knowledge/bridge-translation.js +0 -1
- package/dist/knowledge/contact-confirm.d.ts +0 -27
- package/dist/knowledge/contact-confirm.js +0 -1
- package/dist/knowledge/contact-translation.d.ts +0 -39
- package/dist/knowledge/contact-translation.js +0 -1
- package/dist/knowledge/demand-confirm.d.ts +0 -32
- package/dist/knowledge/demand-confirm.js +0 -1
- package/dist/knowledge/demand-context.d.ts +0 -17
- package/dist/knowledge/demand-context.js +0 -1
- package/dist/knowledge/demand-ledger.d.ts +0 -26
- package/dist/knowledge/demand-ledger.js +0 -1
- package/dist/knowledge/demand-puzzle.d.ts +0 -29
- package/dist/knowledge/demand-puzzle.js +0 -1
- package/dist/knowledge/demand-templates.d.ts +0 -12
- package/dist/knowledge/demand-templates.js +0 -1
- package/dist/knowledge/demand-translation.d.ts +0 -55
- package/dist/knowledge/demand-translation.js +0 -1
- package/dist/knowledge/examples-scanner-cli.d.ts +0 -1
- package/dist/knowledge/examples-scanner-cli.js +0 -1
- package/dist/knowledge/examples-scanner.d.ts +0 -121
- package/dist/knowledge/examples-scanner.js +0 -1
- package/dist/knowledge/glossary.d.ts +0 -18
- package/dist/knowledge/glossary.js +0 -1
- package/dist/knowledge/guard-bytecode-spec.d.ts +0 -82
- package/dist/knowledge/guard-bytecode-spec.js +0 -1
- package/dist/knowledge/guard-confirm.d.ts +0 -86
- package/dist/knowledge/guard-confirm.js +0 -1
- package/dist/knowledge/immutability.d.ts +0 -11
- package/dist/knowledge/immutability.js +0 -1
- package/dist/knowledge/machine-confirm.d.ts +0 -102
- package/dist/knowledge/machine-confirm.js +0 -1
- package/dist/knowledge/machine-context.d.ts +0 -160
- package/dist/knowledge/machine-context.js +0 -1
- package/dist/knowledge/machine-render.d.ts +0 -41
- package/dist/knowledge/machine-render.js +0 -1
- package/dist/knowledge/mcp-schema-audit-cli.d.ts +0 -1
- package/dist/knowledge/mcp-schema-audit-cli.js +0 -1
- package/dist/knowledge/mcp-schema-audit.d.ts +0 -91
- package/dist/knowledge/mcp-schema-audit.js +0 -1
- package/dist/knowledge/messenger-guard-guidance.d.ts +0 -17
- package/dist/knowledge/messenger-guard-guidance.js +0 -1
- package/dist/knowledge/order-confirm.d.ts +0 -115
- package/dist/knowledge/order-confirm.js +0 -1
- package/dist/knowledge/order-context.d.ts +0 -66
- package/dist/knowledge/order-context.js +0 -1
- package/dist/knowledge/order-translation.d.ts +0 -78
- package/dist/knowledge/order-translation.js +0 -1
- package/dist/knowledge/overrides-loader.d.ts +0 -13
- package/dist/knowledge/overrides-loader.js +0 -1
- package/dist/knowledge/passport-confirm.d.ts +0 -130
- package/dist/knowledge/passport-confirm.js +0 -1
- package/dist/knowledge/passport-context.d.ts +0 -59
- package/dist/knowledge/passport-context.js +0 -1
- package/dist/knowledge/passport-puzzle.d.ts +0 -108
- package/dist/knowledge/passport-puzzle.js +0 -1
- package/dist/knowledge/passport-risk.d.ts +0 -70
- package/dist/knowledge/passport-risk.js +0 -1
- package/dist/knowledge/passport-translation.d.ts +0 -68
- package/dist/knowledge/passport-translation.js +0 -1
- package/dist/knowledge/payment-confirm.d.ts +0 -26
- package/dist/knowledge/payment-confirm.js +0 -1
- package/dist/knowledge/payment-translation.d.ts +0 -37
- package/dist/knowledge/payment-translation.js +0 -1
- package/dist/knowledge/permission-confirm.d.ts +0 -110
- package/dist/knowledge/permission-confirm.js +0 -1
- package/dist/knowledge/permission-context.d.ts +0 -69
- package/dist/knowledge/permission-context.js +0 -1
- package/dist/knowledge/permission-translation.d.ts +0 -57
- package/dist/knowledge/permission-translation.js +0 -1
- package/dist/knowledge/personal-confirm.d.ts +0 -29
- package/dist/knowledge/personal-confirm.js +0 -1
- package/dist/knowledge/personal-translation.d.ts +0 -37
- package/dist/knowledge/personal-translation.js +0 -1
- package/dist/knowledge/process-model.d.ts +0 -14
- package/dist/knowledge/process-model.js +0 -1
- package/dist/knowledge/progress-confirm.d.ts +0 -108
- package/dist/knowledge/progress-confirm.js +0 -1
- package/dist/knowledge/progress-context.d.ts +0 -123
- package/dist/knowledge/progress-context.js +0 -1
- package/dist/knowledge/progress-translation.d.ts +0 -52
- package/dist/knowledge/progress-translation.js +0 -1
- package/dist/knowledge/proof-confirm.d.ts +0 -31
- package/dist/knowledge/proof-confirm.js +0 -1
- package/dist/knowledge/proof-context.d.ts +0 -17
- package/dist/knowledge/proof-context.js +0 -1
- package/dist/knowledge/proof-ledger.d.ts +0 -34
- package/dist/knowledge/proof-ledger.js +0 -1
- package/dist/knowledge/proof-puzzle.d.ts +0 -35
- package/dist/knowledge/proof-puzzle.js +0 -1
- package/dist/knowledge/proof-templates.d.ts +0 -22
- package/dist/knowledge/proof-templates.js +0 -1
- package/dist/knowledge/proof-translation.d.ts +0 -52
- package/dist/knowledge/proof-translation.js +0 -1
- package/dist/knowledge/registrar-confirm.d.ts +0 -26
- package/dist/knowledge/registrar-confirm.js +0 -1
- package/dist/knowledge/registrar-translation.d.ts +0 -37
- package/dist/knowledge/registrar-translation.js +0 -1
- package/dist/knowledge/repository-confirm.d.ts +0 -40
- package/dist/knowledge/repository-confirm.js +0 -1
- package/dist/knowledge/repository-context.d.ts +0 -12
- package/dist/knowledge/repository-context.js +0 -1
- package/dist/knowledge/repository-ledger.d.ts +0 -25
- package/dist/knowledge/repository-ledger.js +0 -1
- package/dist/knowledge/repository-puzzle.d.ts +0 -30
- package/dist/knowledge/repository-puzzle.js +0 -1
- package/dist/knowledge/repository-templates.d.ts +0 -14
- package/dist/knowledge/repository-templates.js +0 -1
- package/dist/knowledge/repository-translation.d.ts +0 -58
- package/dist/knowledge/repository-translation.js +0 -1
- package/dist/knowledge/resource-confirm.d.ts +0 -25
- package/dist/knowledge/resource-confirm.js +0 -1
- package/dist/knowledge/resource-translation.d.ts +0 -37
- package/dist/knowledge/resource-translation.js +0 -1
- package/dist/knowledge/reward-confirm.d.ts +0 -116
- package/dist/knowledge/reward-confirm.js +0 -1
- package/dist/knowledge/reward-context.d.ts +0 -127
- package/dist/knowledge/reward-context.js +0 -1
- package/dist/knowledge/reward-translation.d.ts +0 -58
- package/dist/knowledge/reward-translation.js +0 -1
- package/dist/knowledge/service-confirm.d.ts +0 -161
- package/dist/knowledge/service-confirm.js +0 -1
- package/dist/knowledge/service-context.d.ts +0 -66
- package/dist/knowledge/service-context.js +0 -1
- package/dist/knowledge/service-translation.d.ts +0 -103
- package/dist/knowledge/service-translation.js +0 -1
- package/dist/knowledge/treasury-confirm.d.ts +0 -133
- package/dist/knowledge/treasury-confirm.js +0 -1
- package/dist/knowledge/treasury-context.d.ts +0 -64
- package/dist/knowledge/treasury-context.js +0 -1
- package/dist/knowledge/treasury-translation.d.ts +0 -78
- package/dist/knowledge/treasury-translation.js +0 -1
- package/dist/knowledge/util-confirm.d.ts +0 -24
- package/dist/knowledge/util-confirm.js +0 -1
- package/dist/knowledge/util-translation.d.ts +0 -39
- package/dist/knowledge/util-translation.js +0 -1
- package/dist/loop-engineering/aggregate.d.ts +0 -50
- package/dist/loop-engineering/aggregate.js +0 -1
- package/dist/loop-engineering/context-collect.d.ts +0 -7
- package/dist/loop-engineering/context-collect.js +0 -1
- package/dist/loop-engineering/diagnose.d.ts +0 -22
- package/dist/loop-engineering/diagnose.js +0 -1
- package/dist/loop-engineering/improve.d.ts +0 -55
- package/dist/loop-engineering/improve.js +0 -1
- package/dist/loop-engineering/index.d.ts +0 -4
- package/dist/loop-engineering/index.js +0 -1
- package/dist/loop-engineering/pipeline.d.ts +0 -17
- package/dist/loop-engineering/pipeline.js +0 -1
- package/dist/schema/utils/object-type-utils.d.ts +0 -12
- package/dist/schema/utils/object-type-utils.js +0 -1
- package/dist/telemetry/index.d.ts +0 -19
- package/dist/telemetry/index.js +0 -1
- package/dist/telemetry/redact.d.ts +0 -2
- package/dist/telemetry/redact.js +0 -1
- package/dist/telemetry/storage.d.ts +0 -8
- package/dist/telemetry/storage.js +0 -1
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { type ProgressRiskAssessment } from "./progress-risk.js";
|
|
2
|
-
export type ProgressConfirmGateStatus = "approved" | "blocked_checklist" | "blocked_risk" | "blocked_user" | "blocked_environment";
|
|
3
|
-
export interface ProgressConfirmGateResult {
|
|
4
|
-
status: ProgressConfirmGateStatus;
|
|
5
|
-
checklist_result: ProgressChecklistResult;
|
|
6
|
-
risk_result?: ProgressRiskAssessment;
|
|
7
|
-
user_confirmation?: ProgressUserConfirmation;
|
|
8
|
-
environment_result?: ProgressEnvironmentResult;
|
|
9
|
-
confirmation_text?: string;
|
|
10
|
-
block_reason?: string;
|
|
11
|
-
decision_record: ProgressDecisionRecord;
|
|
12
|
-
}
|
|
13
|
-
export interface ProgressChecklistResult {
|
|
14
|
-
all_passed: boolean;
|
|
15
|
-
items: ProgressChecklistItem[];
|
|
16
|
-
}
|
|
17
|
-
export interface ProgressChecklistItem {
|
|
18
|
-
id: string;
|
|
19
|
-
description: string;
|
|
20
|
-
passed: boolean;
|
|
21
|
-
message: string;
|
|
22
|
-
}
|
|
23
|
-
export interface ProgressUserConfirmation {
|
|
24
|
-
questions_asked: ProgressConfirmationQuestion[];
|
|
25
|
-
responses: ProgressConfirmationResponse[];
|
|
26
|
-
all_confirmed: boolean;
|
|
27
|
-
}
|
|
28
|
-
export interface ProgressConfirmationQuestion {
|
|
29
|
-
id: string;
|
|
30
|
-
question: string;
|
|
31
|
-
requires_explicit_yes: boolean;
|
|
32
|
-
related_risk_ids?: string[];
|
|
33
|
-
}
|
|
34
|
-
export interface ProgressConfirmationResponse {
|
|
35
|
-
question_id: string;
|
|
36
|
-
response: "yes" | "no" | "skip";
|
|
37
|
-
}
|
|
38
|
-
export interface ProgressEnvironmentResult {
|
|
39
|
-
passed: boolean;
|
|
40
|
-
checks: {
|
|
41
|
-
name: string;
|
|
42
|
-
passed: boolean;
|
|
43
|
-
message: string;
|
|
44
|
-
}[];
|
|
45
|
-
}
|
|
46
|
-
export interface ProgressDecisionRecord {
|
|
47
|
-
timestamp: string;
|
|
48
|
-
gate_version: string;
|
|
49
|
-
final_status: ProgressConfirmGateStatus;
|
|
50
|
-
layers_passed: string[];
|
|
51
|
-
layers_failed: string[];
|
|
52
|
-
}
|
|
53
|
-
export interface ProgressJsonForConfirm {
|
|
54
|
-
object?: string | null;
|
|
55
|
-
task?: string;
|
|
56
|
-
repository?: {
|
|
57
|
-
op: "add" | "set";
|
|
58
|
-
objects: string[];
|
|
59
|
-
} | {
|
|
60
|
-
op: "remove";
|
|
61
|
-
objects: string[];
|
|
62
|
-
} | {
|
|
63
|
-
op: "clear";
|
|
64
|
-
};
|
|
65
|
-
progress_namedOperator?: {
|
|
66
|
-
op: "add" | "set" | "remove";
|
|
67
|
-
name: string;
|
|
68
|
-
operators: string[];
|
|
69
|
-
};
|
|
70
|
-
operate?: {
|
|
71
|
-
operation: {
|
|
72
|
-
next_node_name: string;
|
|
73
|
-
forward: string;
|
|
74
|
-
};
|
|
75
|
-
op?: "next" | "hold" | "unhold" | "adminUnhold";
|
|
76
|
-
message?: string;
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
export interface ProgressConfirmGateInput {
|
|
80
|
-
progress_json: ProgressJsonForConfirm;
|
|
81
|
-
intent?: string;
|
|
82
|
-
target_objects_types?: string[];
|
|
83
|
-
current_machine?: string;
|
|
84
|
-
machine_published?: boolean;
|
|
85
|
-
current_task?: string | null;
|
|
86
|
-
current_named_operator_count?: number;
|
|
87
|
-
current_context_repository_count?: number;
|
|
88
|
-
current_node?: string;
|
|
89
|
-
forward_already_accomplished?: boolean;
|
|
90
|
-
holder_address?: string | null;
|
|
91
|
-
signer?: string;
|
|
92
|
-
forward_named_operator?: string;
|
|
93
|
-
forward_permission_index?: number | null;
|
|
94
|
-
forward_has_guard?: boolean;
|
|
95
|
-
skip_user_confirmation?: boolean;
|
|
96
|
-
skip_environment_check?: boolean;
|
|
97
|
-
}
|
|
98
|
-
export declare const PROGRESS_OPERATION_CHECKLIST: ProgressChecklistItem[];
|
|
99
|
-
export declare const PROGRESS_CONFIRMATION_QUESTIONS: ProgressConfirmationQuestion[];
|
|
100
|
-
export declare const PROGRESS_CONFIRM_VERSION = "1.0.0";
|
|
101
|
-
export declare function runProgressConfirmGate(input: ProgressConfirmGateInput): ProgressConfirmGateResult;
|
|
102
|
-
export interface ProgressiveProgressCheckResult {
|
|
103
|
-
stage: "checklist" | "risk" | "confirmation" | "environment" | "complete";
|
|
104
|
-
status: "pass" | "fail" | "pending";
|
|
105
|
-
message: string;
|
|
106
|
-
next_action?: string;
|
|
107
|
-
}
|
|
108
|
-
export declare function progressiveProgressCheck(input: ProgressConfirmGateInput): ProgressiveProgressCheckResult;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{MAX_NAMED_OPERATOR_COUNT,MAX_NAMED_OPERATOR_ADDRESS_COUNT,MAX_CONTEXT_REPOSITORY_COUNT}from'@wowok/wowok';import{assessProgressRisks}from'./progress-risk.js';export const PROGRESS_OPERATION_CHECKLIST=[{'id':'C-PR-01','description':'Machine\x20is\x20published\x20(machine::on_progress_new\x20asserts\x20published)','passed':![],'message':''},{'id':'C-PR-02','description':'progress.machine\x20matches\x20the\x20bound\x20Machine\x20(E_MACHINE_NOT_MATCH)','passed':![],'message':''},{'id':'C-PR-03','description':'named_operator\x20count\x20<\x20MAX_NAMED_OPERATOR_COUNT\x20(60)','passed':![],'message':''},{'id':'C-PR-04','description':'named_operator\x20addresses\x20≤\x20MAX_NAMED_OPERATOR_ADDRESS_COUNT\x20(80)','passed':![],'message':''},{'id':'C-PR-05','description':'context_repository\x20count\x20≤\x20MAX_CONTEXT_REPOSITORY_COUNT\x20(30)','passed':![],'message':''},{'id':'C-PR-06','description':'task_set\x20is\x20one-time\x20(E_TASK_ALREADY_SET\x20if\x20already\x20bound)','passed':![],'message':''},{'id':'C-PR-07','description':'operate.op\x20is\x20one\x20of:\x20next\x20|\x20hold\x20|\x20unhold\x20|\x20adminUnhold','passed':![],'message':''},{'id':'C-PR-08','description':'operate.message\x20≤\x20MAX_LONG_NAME_LENGTH\x20(1024\x20chars)','passed':![],'message':''},{'id':'C-PR-09','description':'Forward\x20exists\x20in\x20Machine\x20(current\x20→\x20next_node_name,\x20forward)','passed':![],'message':''},{'id':'C-PR-10','description':'adminUnhold\x20(224\x20permission)\x20double-confirmed\x20by\x20user','passed':![],'message':''}];function runStaticChecklist(a){const b=PROGRESS_OPERATION_CHECKLIST['map'](q=>({...q})),c=a['progress_json'],d=b['find'](q=>q['id']==='C-PR-01');a['machine_published']===![]?(d['passed']=![],d['message']='Machine\x20'+(a['current_machine']??'(unknown)')+'\x20not\x20published'):d['passed']=!![];const e=b['find'](q=>q['id']==='C-PR-02');e['passed']=!!a['current_machine']||!!c['object'],e['message']=e['passed']?'':'No\x20machine\x20bound';const f=b['find'](q=>q['id']==='C-PR-03'),g=a['current_named_operator_count']??0x0,h=c['progress_namedOperator']?.['op']==='add'||c['progress_namedOperator']?.['op']==='set';h&&g>=MAX_NAMED_OPERATOR_COUNT?(f['passed']=![],f['message']='named_operator\x20count\x20'+g+'\x20≥\x20MAX_NAMED_OPERATOR_COUNT\x20'+MAX_NAMED_OPERATOR_COUNT):f['passed']=!![];const i=b['find'](q=>q['id']==='C-PR-04');if(c['progress_namedOperator']){const q=c['progress_namedOperator']['operators']['length'];i['passed']=q<=MAX_NAMED_OPERATOR_ADDRESS_COUNT,i['message']=i['passed']?'':q+'\x20>\x20'+MAX_NAMED_OPERATOR_ADDRESS_COUNT;}else i['passed']=!![];const j=b['find'](r=>r['id']==='C-PR-05');if(c['repository']&&(c['repository']['op']==='add'||c['repository']['op']==='set')){const r=a['current_context_repository_count']??0x0,s=c['repository']['op']==='set'?c['repository']['objects']['length']:c['repository']['objects']['length'],t=c['repository']['op']==='set'?s:r+s;j['passed']=t<=MAX_CONTEXT_REPOSITORY_COUNT,j['message']=j['passed']?'':t+'\x20>\x20'+MAX_CONTEXT_REPOSITORY_COUNT;}else j['passed']=!![];const k=b['find'](u=>u['id']==='C-PR-06');c['task']&&a['current_task']?(k['passed']=![],k['message']='task\x20already\x20set\x20to\x20'+a['current_task']+'\x20—\x20E_TASK_ALREADY_SET\x20will\x20abort'):k['passed']=!![];const l=b['find'](u=>u['id']==='C-PR-07'),m=['next','hold','unhold','adminUnhold'];c['operate']&&c['operate']['op']&&!m['includes'](c['operate']['op'])?(l['passed']=![],l['message']='operate.op\x20must\x20be\x20one\x20of:\x20'+m['join'](',\x20')):l['passed']=!![];const n=b['find'](u=>u['id']==='C-PR-08');if(c['operate']?.['message']){const u=c['operate']['message']['length'];n['passed']=u<=0x400,n['message']=n['passed']?'':'message\x20length\x20'+u+'\x20>\x201024';}else n['passed']=!![];const o=b['find'](v=>v['id']==='C-PR-09');c['operate']?(o['passed']=!![],o['message']='Forward\x20existence\x20verified\x20in\x20L4\x20(queryTableItem_MachineNode)'):o['passed']=!![];const p=b['find'](v=>v['id']==='C-PR-10');return c['operate']?.['op']==='adminUnhold'?(p['passed']=![],p['message']='Pending\x20user\x20confirmation\x20in\x20L3\x20(QPR3)'):p['passed']=!![],{'all_passed':b['filter'](v=>v['id']!=='C-PR-10')['every'](v=>v['passed']),'items':b};}function adaptRiskAssessment(a){const b={'object':a['progress_json']['object'],'task':a['progress_json']['task'],'repository':a['progress_json']['repository'],'progress_namedOperator':a['progress_json']['progress_namedOperator'],'operate':a['progress_json']['operate'],'current_machine':a['current_machine'],'machine_published':a['machine_published'],'current_task':a['current_task'],'current_named_operator_count':a['current_named_operator_count'],'current_context_repository_count':a['current_context_repository_count'],'current_node':a['current_node'],'forward_already_accomplished':a['forward_already_accomplished'],'holder_address':a['holder_address'],'signer':a['signer'],'forward_named_operator':a['forward_named_operator'],'forward_permission_index':a['forward_permission_index'],'forward_has_guard':a['forward_has_guard'],'target_objects_types':a['target_objects_types']};return assessProgressRisks(b);}export const PROGRESS_CONFIRMATION_QUESTIONS=[{'id':'QPR1','question':'Is\x20the\x20target\x20Progress\x20object\x20address\x20correct,\x20and\x20is\x20it\x20bound\x20to\x20the\x20intended\x20Machine?','requires_explicit_yes':!![]},{'id':'QPR2','question':'For\x20task_set:\x20do\x20you\x20acknowledge\x20that\x20task\x20is\x20ONE-TIME\x20and\x20immutable\x20(E_TASK_ALREADY_SET\x20blocks\x20any\x20re-assignment)?','requires_explicit_yes':!![],'related_risk_ids':['R-PR-2-01']},{'id':'QPR3','question':'⚠️\x20For\x20adminUnhold:\x20do\x20you\x20confirm\x20force-releasing\x20the\x20held\x20forward\x20via\x20224\x20permission?\x20This\x20bypasses\x20the\x20holder\x20check.','requires_explicit_yes':!![],'related_risk_ids':['R-PR-3-01']},{'id':'QPR4','question':'For\x20named_operator\x20changes:\x20are\x20all\x20addresses\x20verified\x20as\x20the\x20intended\x20role\x20holders\x20(not\x20expired/compromised)?','requires_explicit_yes':!![],'related_risk_ids':['R-PR-3-02']},{'id':'QPR5','question':'For\x20Forward\x20advance\x20(next/hold):\x20does\x20the\x20Forward\x20exist\x20in\x20the\x20Machine,\x20and\x20is\x20the\x20caller\x20authorized\x20(named_operator\x20match\x20OR\x20order.has_op_permission)?','requires_explicit_yes':!![],'related_risk_ids':['R-PR-3-03','R-PR-4-03']},{'id':'QPR6','question':'For\x20context_repository\x20binding:\x20have\x20you\x20verified\x20the\x20Repository\x20addresses\x20still\x20exist\x20and\x20are\x20owned\x20by\x20trusted\x20parties?','requires_explicit_yes':![],'related_risk_ids':['R-PR-5-02']}];function processUserConfirmation(a,b){const c=[...PROGRESS_CONFIRMATION_QUESTIONS],d=a['progress_json'],e=[];for(const f of c){if(f['id']==='QPR2'&&!d['task'])continue;if(f['id']==='QPR3'&&d['operate']?.['op']!=='adminUnhold')continue;if(f['id']==='QPR4'&&!d['progress_namedOperator'])continue;if(f['id']==='QPR5'&&!d['operate'])continue;if(f['id']==='QPR6'&&!d['repository'])continue;e['push'](f);}if(a['skip_user_confirmation'])return{'questions_asked':e,'responses':e['map'](g=>({'question_id':g['id'],'response':'yes'})),'all_confirmed':!![]};return{'questions_asked':e,'responses':[],'all_confirmed':![]};}function verifyEnvironment(a){const b=[];a['progress_json']['object']&&b['push']({'name':'progress_exists','passed':!![],'message':'Progress\x20'+a['progress_json']['object']+'\x20assumed\x20to\x20exist'});a['current_machine']&&b['push']({'name':'machine_published_and_bound','passed':a['machine_published']!==![],'message':a['machine_published']===![]?'Machine\x20'+a['current_machine']+'\x20NOT\x20published':'Machine\x20'+a['current_machine']+'\x20published\x20and\x20bound'});a['progress_json']['operate']&&b['push']({'name':'forward_exists_in_machine','passed':!![],'message':'Forward\x20\x22'+a['progress_json']['operate']['operation']['forward']+'\x22\x20from\x20\x22'+(a['current_node']??'(unknown)')+'\x22\x20→\x20\x22'+a['progress_json']['operate']['operation']['next_node_name']+'\x22\x20—\x20verify\x20via\x20queryTableItem_MachineNode'});if(a['progress_json']['operate']&&a['signer']){const d=a['forward_named_operator']==='',e=!!a['forward_named_operator']&&a['forward_named_operator']!=='';b['push']({'name':'signer_authorized_for_forward','passed':!![],'message':d?'OrderHolder\x20namespace\x20—\x20signer\x20must\x20be\x20order.owner/agent\x20(use\x20order_next/order_hold)':e?'namedOperator=\x22'+a['forward_named_operator']+'\x22\x20—\x20signer\x20must\x20be\x20in\x20operator\x20list':'Forward.permissionIndex='+(a['forward_permission_index']??'None')+'\x20—\x20signer\x20must\x20have\x20this\x20index'});}if(a['progress_json']['operate']&&a['progress_json']['operate']['op']==='unhold'&&a['holder_address']){const f=a['signer']===a['holder_address'];b['push']({'name':'unhold_by_holder','passed':f,'message':f?'Signer\x20is\x20the\x20holder\x20—\x20unhold\x20allowed':'Signer\x20'+a['signer']+'\x20≠\x20holder\x20'+a['holder_address']+'\x20—\x20E_NOT_THE_HOLDER\x20will\x20abort\x20(use\x20adminUnhold\x20for\x20force\x20release)'});}const c=b['every'](g=>g['passed']);return{'passed':c,'checks':b};}export const PROGRESS_CONFIRM_VERSION='1.0.0';export function runProgressConfirmGate(a){const b=[],c=[],d=runStaticChecklist(a);if(!d['all_passed'])return c['push']('L1_checklist'),{'status':'blocked_checklist','checklist_result':d,'confirmation_text':generateConfirmationText(a,d),'block_reason':'Checklist\x20failed:\x20'+d['items']['filter'](h=>!h['passed'])['map'](h=>h['id'])['join'](',\x20'),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':PROGRESS_CONFIRM_VERSION,'final_status':'blocked_checklist','layers_passed':b,'layers_failed':c}};b['push']('L1_checklist');const e=adaptRiskAssessment(a),f=e['risks']['some'](h=>h['level']==='CRITICAL');if(f)return c['push']('L2_risk'),{'status':'blocked_risk','checklist_result':d,'risk_result':e,'confirmation_text':generateConfirmationText(a,d,e),'block_reason':'CRITICAL\x20risks:\x20'+e['risks']['filter'](h=>h['level']==='CRITICAL')['map'](h=>h['id'])['join'](',\x20'),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':PROGRESS_CONFIRM_VERSION,'final_status':'blocked_risk','layers_passed':b,'layers_failed':c}};b['push']('L2_risk');const g=processUserConfirmation(a,e);if(!g['all_confirmed']){if(a['progress_json']['operate']?.['op']==='adminUnhold'){const h=d['items']['find'](j=>j['id']==='C-PR-10');if(h){const i=g['responses']['find'](j=>j['question_id']==='QPR3');h['passed']=i?.['response']==='yes',h['message']=h['passed']?'':'adminUnhold\x20not\x20confirmed\x20by\x20user\x20(QPR3)';}}if(a['progress_json']['operate']?.['op']==='adminUnhold'){const j=d['items']['find'](k=>k['id']==='C-PR-10');if(j&&!j['passed'])return c['push']('L3_user'),{'status':'blocked_user','checklist_result':d,'risk_result':e,'user_confirmation':g,'confirmation_text':generateConfirmationText(a,d,e),'block_reason':'User\x20did\x20not\x20confirm\x20adminUnhold\x20(QPR3)','decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':PROGRESS_CONFIRM_VERSION,'final_status':'blocked_user','layers_passed':b,'layers_failed':c}};}}b['push']('L3_user');if(a['skip_environment_check'])b['push']('L4_environment');else{const k=verifyEnvironment(a);if(!k['passed'])return c['push']('L4_environment'),{'status':'blocked_environment','checklist_result':d,'risk_result':e,'user_confirmation':g,'environment_result':k,'confirmation_text':generateConfirmationText(a,d,e),'block_reason':'Environment\x20check\x20failed:\x20'+k['checks']['filter'](l=>!l['passed'])['map'](l=>l['name'])['join'](',\x20'),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':PROGRESS_CONFIRM_VERSION,'final_status':'blocked_environment','layers_passed':b,'layers_failed':c}};b['push']('L4_environment');}return{'status':'approved','checklist_result':d,'risk_result':e,'user_confirmation':g,'confirmation_text':generateConfirmationText(a,d,e),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':PROGRESS_CONFIRM_VERSION,'final_status':'approved','layers_passed':b,'layers_failed':c}};}function generateConfirmationText(a,b,c){const d=[],e=a['progress_json'];d['push']('═══\x20Progress\x20Operation\x20Confirmation\x20═══'),d['push']('');e['object']?d['push']('Progress:\x20'+e['object']):d['push']('Progress:\x20NEW\x20(indirect\x20via\x20service::buy)');a['current_machine']&&d['push']('Bound\x20Machine:\x20'+a['current_machine']+'\x20(published:\x20'+(a['machine_published']!==![]?'YES':'NO')+')');a['current_node']&&d['push']('Current\x20node:\x20'+a['current_node']);d['push'](''),d['push']('─\x20Checklist\x20──────────────────');for(const f of b['items']){const g=f['passed']?'✓':'✗';d['push']('\x20\x20'+g+'\x20'+f['id']+':\x20'+f['description']+(f['message']?'\x20—\x20'+f['message']:''));}d['push']('');if(c){d['push']('─\x20Risk\x20Assessment\x20──────────────────'),d['push']('Overall:\x20'+c['overall_risk']),d['push']('Detected:\x20'+c['risks']['length']+'\x20risk(s)');for(const h of c['risks']){d['push']('\x20\x20['+h['level']+']\x20'+h['id']+':\x20'+h['title']);}d['push']('');}d['push']('─\x20Operations\x20──────────────────');if(e['task'])d['push']('-\x20⚠️\x20task_set:\x20'+e['task']+'\x20(one-time,\x20immutable)');if(e['repository'])d['push']('-\x20Repository\x20'+e['repository']['op']+':\x20'+(e['repository']['objects']?.['length']??0x0)+'\x20object(s)');if(e['progress_namedOperator']){const i=e['progress_namedOperator'];d['push']('-\x20namedOperator\x20'+i['op']+'\x20\x22'+i['name']+'\x22:\x20'+i['operators']['length']+'\x20address(es)');}if(e['operate']){const j=e['operate'];d['push']('-\x20Operation:\x20'+j['operation']['forward']+'\x20→\x20'+j['operation']['next_node_name']);if(j['op'])d['push']('\x20\x20op='+j['op']);if(j['op']==='hold')d['push']('\x20\x20⚠️\x20hold\x20(lock\x20forward)');if(j['op']==='adminUnhold')d['push']('\x20\x20⚠️\x20adminUnhold\x20(force\x20release\x20via\x20224)');if(j['op']==='unhold')d['push']('\x20\x20ℹ️\x20unhold\x20(self-release)');if(j['message'])d['push']('\x20\x20Message:\x20\x22'+j['message']+'\x22');}return d['push'](''),d['join']('\x0a');}export function progressiveProgressCheck(a){const b=runStaticChecklist(a);if(!b['all_passed'])return{'stage':'checklist','status':'fail','message':'Checklist\x20failed:\x20'+b['items']['filter'](d=>!d['passed'])['map'](d=>d['id'])['join'](',\x20'),'next_action':'Fix\x20failing\x20checklist\x20items'};const c=adaptRiskAssessment(a);if(c['risks']['some'](d=>d['level']==='CRITICAL'))return{'stage':'risk','status':'fail','message':'CRITICAL\x20risks:\x20'+c['risks']['filter'](d=>d['level']==='CRITICAL')['map'](d=>d['id'])['join'](',\x20'),'next_action':'Resolve\x20CRITICAL\x20risks\x20before\x20proceeding'};if(c['needs_human_review'])return{'stage':'confirmation','status':'pending','message':'Human\x20review\x20required\x20for\x20HIGH\x20risks','next_action':'Confirm\x20risk\x20acceptance'};return{'stage':'complete','status':'pass','message':'All\x20checks\x20passed'};}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { type ProgressScene, type ProgressBuiltinPermissionEntry, type ProgressPhase } from "./progress-ledger.js";
|
|
2
|
-
import { type ProgressPuzzle, type ProgressPuzzleCompleteness } from "./progress-puzzle.js";
|
|
3
|
-
import { type ProgressRiskAssessment, type ProgressRiskRule, type ProgressStakeholder } from "./progress-risk.js";
|
|
4
|
-
import { type ProgressSemanticToSchemaRule } from "./progress-translation.js";
|
|
5
|
-
import { type ProgressTemplate } from "./progress-templates.js";
|
|
6
|
-
import { PROGRESS_OPERATION_CHECKLIST, PROGRESS_CONFIRMATION_QUESTIONS, type ProgressJsonForConfirm } from "./progress-confirm.js";
|
|
7
|
-
export declare const PROGRESS_CONTEXT_VERSION = "1.0.0";
|
|
8
|
-
export type ProgressInjectionMode = "initial_design" | "mid_progress_review" | "pre_advance" | "post_task_binding" | "stakeholder_review" | "apply_check";
|
|
9
|
-
export type ProgressStakeholderPerspective = ProgressStakeholder | "system";
|
|
10
|
-
export interface ProgressContextBundle {
|
|
11
|
-
version: string;
|
|
12
|
-
mode: ProgressInjectionMode;
|
|
13
|
-
stakeholder_perspective?: ProgressStakeholderPerspective;
|
|
14
|
-
matched_scene?: ProgressScene;
|
|
15
|
-
matched_template?: ProgressTemplate;
|
|
16
|
-
matched_pattern?: ProgressSemanticToSchemaRule;
|
|
17
|
-
puzzle_state?: ProgressPuzzle;
|
|
18
|
-
puzzle_completeness?: ProgressPuzzleCompleteness;
|
|
19
|
-
relevant_risks: ProgressRiskRule[];
|
|
20
|
-
risk_assessment?: ProgressRiskAssessment;
|
|
21
|
-
relevant_checklist: typeof PROGRESS_OPERATION_CHECKLIST;
|
|
22
|
-
relevant_questions: typeof PROGRESS_CONFIRMATION_QUESTIONS;
|
|
23
|
-
relevant_builtin_permissions: ProgressBuiltinPermissionEntry[];
|
|
24
|
-
cross_object_refs: ProgressCrossObjectRef[];
|
|
25
|
-
onchain_constraints: ProgressOnchainConstraint[];
|
|
26
|
-
rendering_hints: ProgressRenderingHints;
|
|
27
|
-
}
|
|
28
|
-
export interface ProgressCrossObjectRef {
|
|
29
|
-
object: "Machine" | "Order" | "Repository" | "Permission" | "Service" | "Passport" | "Payment" | "Allocation";
|
|
30
|
-
phase: ProgressPhase | "universal";
|
|
31
|
-
relationship: string;
|
|
32
|
-
description: string;
|
|
33
|
-
}
|
|
34
|
-
export interface ProgressOnchainConstraint {
|
|
35
|
-
name: string;
|
|
36
|
-
value: string | number;
|
|
37
|
-
description: string;
|
|
38
|
-
error_code?: string;
|
|
39
|
-
}
|
|
40
|
-
export interface ProgressRenderingHints {
|
|
41
|
-
include_puzzle_template: boolean;
|
|
42
|
-
include_risk_details: boolean;
|
|
43
|
-
include_questions: boolean;
|
|
44
|
-
include_immutability_warning: boolean;
|
|
45
|
-
include_admin_unhold_warning: boolean;
|
|
46
|
-
include_cross_object_refs: boolean;
|
|
47
|
-
include_terminal_node_note: boolean;
|
|
48
|
-
max_length: number;
|
|
49
|
-
}
|
|
50
|
-
export interface BuildProgressContextInput {
|
|
51
|
-
mode: ProgressInjectionMode;
|
|
52
|
-
intent?: string;
|
|
53
|
-
progress_json?: ProgressJsonForConfirm;
|
|
54
|
-
stakeholder?: ProgressStakeholderPerspective;
|
|
55
|
-
target_phase?: ProgressPhase;
|
|
56
|
-
target_industry?: string;
|
|
57
|
-
max_length?: number;
|
|
58
|
-
current_machine?: string;
|
|
59
|
-
machine_published?: boolean;
|
|
60
|
-
current_task?: string | null;
|
|
61
|
-
current_named_operator_count?: number;
|
|
62
|
-
current_context_repository_count?: number;
|
|
63
|
-
current_node?: string;
|
|
64
|
-
forward_already_accomplished?: boolean;
|
|
65
|
-
holder_address?: string | null;
|
|
66
|
-
signer?: string;
|
|
67
|
-
forward_named_operator?: string;
|
|
68
|
-
forward_permission_index?: number | null;
|
|
69
|
-
forward_has_guard?: boolean;
|
|
70
|
-
target_objects_types?: string[];
|
|
71
|
-
}
|
|
72
|
-
export declare function buildProgressContext(input: BuildProgressContextInput): ProgressContextBundle;
|
|
73
|
-
export declare function buildPromptFromProgressContext(bundle: ProgressContextBundle): string;
|
|
74
|
-
export declare function getProgressContextSummary(bundle: ProgressContextBundle): string;
|
|
75
|
-
export declare function buildStakeholderContext(stakeholder: ProgressStakeholderPerspective, intent?: string, progress_json?: ProgressJsonForConfirm): ProgressContextBundle;
|
|
76
|
-
export declare function quickValidateProgressJson(progress_json: ProgressJsonForConfirm, current_state?: {
|
|
77
|
-
machine_published?: boolean;
|
|
78
|
-
current_task?: string | null;
|
|
79
|
-
current_named_operator_count?: number;
|
|
80
|
-
current_context_repository_count?: number;
|
|
81
|
-
}): {
|
|
82
|
-
ok: boolean;
|
|
83
|
-
violations: string[];
|
|
84
|
-
};
|
|
85
|
-
export declare function getProgressKnowledgeSnapshot(): {
|
|
86
|
-
version: {
|
|
87
|
-
ledger: string;
|
|
88
|
-
puzzle: string;
|
|
89
|
-
risk: string;
|
|
90
|
-
translation: string;
|
|
91
|
-
templates: string;
|
|
92
|
-
confirm: string;
|
|
93
|
-
context: string;
|
|
94
|
-
};
|
|
95
|
-
scenes_count: number;
|
|
96
|
-
builtin_permissions_count: number;
|
|
97
|
-
builtin_permissions: {
|
|
98
|
-
index: 220 | 221 | 222 | 223 | 224 | 225;
|
|
99
|
-
name: string;
|
|
100
|
-
sdk_exposed: boolean;
|
|
101
|
-
}[];
|
|
102
|
-
templates_count: number;
|
|
103
|
-
templates: {
|
|
104
|
-
id: string;
|
|
105
|
-
name: string;
|
|
106
|
-
description: string;
|
|
107
|
-
scenes: string[];
|
|
108
|
-
}[];
|
|
109
|
-
semantic_patterns_count: number;
|
|
110
|
-
schema_rules_count: number;
|
|
111
|
-
constraint_rules_count: number;
|
|
112
|
-
risk_rules_count: number;
|
|
113
|
-
checklist_count: number;
|
|
114
|
-
confirmation_questions_count: number;
|
|
115
|
-
cross_object_refs_count: number;
|
|
116
|
-
onchain_limits: {
|
|
117
|
-
max_named_operator_count: 60;
|
|
118
|
-
max_named_operator_address_count: 80;
|
|
119
|
-
max_context_repository_count: 30;
|
|
120
|
-
};
|
|
121
|
-
injection_modes: ProgressInjectionMode[];
|
|
122
|
-
stakeholders: ProgressStakeholderPerspective[];
|
|
123
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{MAX_NAMED_OPERATOR_COUNT,MAX_NAMED_OPERATOR_ADDRESS_COUNT,MAX_CONTEXT_REPOSITORY_COUNT}from'@wowok/wowok';import{PROGRESS_PERMISSIONS,PROGRESS_LEDGER_VERSION,PROGRESS_CROSS_OBJECT_REFS,inferSceneFromIntent,getScenesByIndustry,getScenesByPhase,getAllBuiltinPermissions,getProgressScenesCount,validateNamedOperatorAddressList,validateNamedOperatorCount,validateContextRepositoryCount}from'./progress-ledger.js';import{initPuzzleFromIntent,checkPuzzleCompleteness}from'./progress-puzzle.js';import{PROGRESS_RISK_VERSION,assessProgressRisks,getAllProgressRiskRules,getProgressRiskRulesCount}from'./progress-risk.js';import{PROGRESS_TRANSLATION_VERSION,PROGRESS_SEMANTIC_TO_SCHEMA_RULES,PROGRESS_SCHEMA_TO_SEMANTIC_RULES,PROGRESS_CONSTRAINT_RULES,matchSemanticPattern}from'./progress-translation.js';import{PROGRESS_TEMPLATES,PROGRESS_TEMPLATES_VERSION,getProgressTemplatesByScene,listProgressTemplates}from'./progress-templates.js';import{PROGRESS_CONFIRM_VERSION,PROGRESS_OPERATION_CHECKLIST,PROGRESS_CONFIRMATION_QUESTIONS}from'./progress-confirm.js';export const PROGRESS_CONTEXT_VERSION='1.0.0';export function buildProgressContext(a){const b=a['max_length']??0xfa0;let c;a['intent']&&(c=inferSceneFromIntent(a['intent']));if(!c&&a['target_phase']){const p=getScenesByPhase(a['target_phase']);if(p['length']>0x0)c=p[0x0];}if(!c&&a['target_industry']){const q=getScenesByIndustry(a['target_industry']);if(q['length']>0x0)c=q[0x0];}let d;if(c){const r=getProgressTemplatesByScene(c['id']);if(r['length']>0x0)d=r[0x0];}let e;if(a['intent']){const s=matchSemanticPattern(a['intent']);if(s['length']>0x0)e=s[0x0];}let f,g;a['mode']==='initial_design'&&a['intent']&&(f=initPuzzleFromIntent({'rule_sentence':a['intent']}),g=checkPuzzleCompleteness(f));const h=filterRiskRules(a['mode'],a['stakeholder'],c);let i;if(a['mode']==='pre_advance'&&a['progress_json']){const t={'object':a['progress_json']['object'],'task':a['progress_json']['task'],'repository':a['progress_json']['repository'],'progress_namedOperator':a['progress_json']['progress_namedOperator'],'operate':a['progress_json']['operate'],'current_machine':a['current_machine'],'machine_published':a['machine_published'],'current_task':a['current_task'],'current_named_operator_count':a['current_named_operator_count'],'current_context_repository_count':a['current_context_repository_count'],'current_node':a['current_node'],'forward_already_accomplished':a['forward_already_accomplished'],'holder_address':a['holder_address'],'signer':a['signer'],'forward_named_operator':a['forward_named_operator'],'forward_permission_index':a['forward_permission_index'],'forward_has_guard':a['forward_has_guard'],'target_objects_types':a['target_objects_types']};i=assessProgressRisks(t);}const j=filterChecklist(a['mode']),k=filterQuestions(a['mode']),l=c?c['builtin_indexes_consumed']:getAllBuiltinPermissions(),m=buildCrossObjectRefs(a['target_phase'],c),n=buildOnchainConstraints(),o=buildRenderingHints(a['mode'],b,a['progress_json']?.['operate']?.['op']==='adminUnhold',!!a['progress_json']?.['task']);return{'version':PROGRESS_CONTEXT_VERSION,'mode':a['mode'],'stakeholder_perspective':a['stakeholder'],'matched_scene':c,'matched_template':d,'matched_pattern':e,'puzzle_state':f,'puzzle_completeness':g,'relevant_risks':h,'risk_assessment':i,'relevant_checklist':j,'relevant_questions':k,'relevant_builtin_permissions':l,'cross_object_refs':m,'onchain_constraints':n,'rendering_hints':o};}function filterRiskRules(a,b,c){const d=getAllProgressRiskRules();if(a==='initial_design')return d['filter'](e=>e['category']==='structural'||e['category']==='lifecycle');if(a==='pre_advance')return d;if(a==='post_task_binding')return d['filter'](e=>e['id']!=='R-PR-2-01');if(a==='stakeholder_review'&&b){if(b==='owner')return d['filter'](e=>e['category']==='permission'||e['category']==='lifecycle'||e['category']==='cross_object');if(b==='named_operator')return d['filter'](e=>e['category']==='permission'||e['id']==='R-PR-4-02'||e['id']==='R-PR-4-03');if(b==='submitter')return d['filter'](e=>e['category']==='semantic'||e['id']==='R-PR-3-03'||e['id']==='R-PR-4-02'||e['id']==='R-PR-4-03');if(b==='system')return d['filter'](e=>e['category']==='cross_object'||e['category']==='structural');}if(a==='apply_check')return d['filter'](e=>e['category']==='cross_object'||e['id']==='R-PR-4-01');return d;}function filterChecklist(a){if(a==='initial_design')return PROGRESS_OPERATION_CHECKLIST['filter'](b=>['C-PR-01','C-PR-03','C-PR-04','C-PR-05']['includes'](b['id']));if(a==='post_task_binding')return PROGRESS_OPERATION_CHECKLIST['filter'](b=>b['id']!=='C-PR-06');if(a==='stakeholder_review')return PROGRESS_OPERATION_CHECKLIST['filter'](b=>['C-PR-01','C-PR-02','C-PR-07','C-PR-09','C-PR-10']['includes'](b['id']));return PROGRESS_OPERATION_CHECKLIST;}function filterQuestions(a){if(a==='pre_advance')return PROGRESS_CONFIRMATION_QUESTIONS;if(a==='post_task_binding')return PROGRESS_CONFIRMATION_QUESTIONS['filter'](b=>b['id']!=='QPR2');if(a==='initial_design')return PROGRESS_CONFIRMATION_QUESTIONS['filter'](b=>b['id']==='QPR5');return[];}function buildCrossObjectRefs(a,b){const c=PROGRESS_CROSS_OBJECT_REFS['map'](d=>({'object':d['object'],'phase':d['phase'],'relationship':d['relationship'],'description':d['relationship']}));if(a)return c['filter'](d=>d['phase']===a||d['phase']==='universal');if(b){const d=b['phases'];return c['filter'](e=>e['phase']==='universal'||d['includes'](e['phase']));}return c;}function buildOnchainConstraints(){return[{'name':'MAX_NAMED_OPERATOR_COUNT','value':MAX_NAMED_OPERATOR_COUNT,'description':'Maximum\x20named_operator\x20namespace\x20entries\x20per\x20Progress','error_code':'E_MAX_NAMED_OPERATOR_COUNT'},{'name':'MAX_NAMED_OPERATOR_ADDRESS_COUNT','value':MAX_NAMED_OPERATOR_ADDRESS_COUNT,'description':'Maximum\x20addresses\x20per\x20named_operator\x20namespace\x20entry','error_code':'E_MAX_NAMED_OPERATOR_ADDRESS_COUNT'},{'name':'MAX_CONTEXT_REPOSITORY_COUNT','value':MAX_CONTEXT_REPOSITORY_COUNT,'description':'Maximum\x20context_repositories\x20per\x20Progress','error_code':'E_MAX_CONTEXT_REPOSITORY_COUNT'},{'name':'PROGRESS_NEW\x20(220)','value':0xdc,'description':'Builtin:\x20create\x20new\x20Progress\x20(asserted\x20by\x20progress::new\x20/\x20new_with_passport;\x20bypassed\x20by\x20service::buy\x20→\x20new_imp)'},{'name':'PROGRESS_NAMED_OPERATOR\x20(221)','value':0xdd,'description':'Builtin:\x20manage\x20named_operator\x20namespace\x20(add/set/remove)'},{'name':'PROGRESS_TASK\x20(222)','value':0xde,'description':'Builtin:\x20submit\x20task\x20(one-time,\x20immutable\x20—\x20E_TASK_ALREADY_SET)','error_code':'E_TASK_ALREADY_SET'},{'name':'PROGRESS_CONTEXT_REPOSITORY\x20(223)','value':0xdf,'description':'Builtin:\x20bind/unbind\x20context\x20Repository\x20(≤\x2030)'},{'name':'PROGRESS_UNHOLD\x20(224)','value':0xe0,'description':'Builtin:\x20adminUnhold\x20(force\x20release,\x20bypasses\x20holder\x20check)','error_code':'E_NOT_THE_HOLDER'},{'name':'PROGRESS_OWNER_RECEIVE\x20(225)','value':0xe1,'description':'Builtin:\x20owner\x20receive\x20(unwrap\x20Receiving<K>\x20/\x20CoinWrapper<T>\x20at\x20terminal\x20node)'},{'name':'E_MACHINE_NOT_MATCH','value':0x4,'description':'Move\x20error:\x20progress.machine\x20≠\x20machine.id_address\x20(every\x20op\x20asserts\x20this)'},{'name':'E_FORWARD_ALREADY_ACCOMPLISHED','value':0x7,'description':'Move\x20error:\x20re-hold\x20on\x20completed\x20forward\x20is\x20blocked'},{'name':'E_NEED_PASSPORT','value':0x9,'description':'Move\x20error:\x20Forward.guard\x20is\x20Some\x20but\x20plain\x20next()\x20called\x20—\x20use\x20*_with_passport\x20variant'},{'name':'E_ORDER_NOT_MATCH','value':0xa,'description':'Move\x20error:\x20order_next/order_hold\x20called\x20but\x20progress.task\x20≠\x20order\x20address'}];}function buildRenderingHints(a,b,c,d){return{'include_puzzle_template':a==='initial_design','include_risk_details':a==='pre_advance'||a==='stakeholder_review','include_questions':a==='pre_advance','include_immutability_warning':d||a==='post_task_binding','include_admin_unhold_warning':c,'include_cross_object_refs':a==='apply_check'||a==='initial_design','include_terminal_node_note':a==='post_task_binding'||a==='pre_advance','max_length':b};}export function buildPromptFromProgressContext(a){const b=[],d=a['rendering_hints'];b['push']('═══\x20Progress\x20Context\x20(mode:\x20'+a['mode']+')\x20═══'),b['push']('');a['stakeholder_perspective']&&(b['push']('Stakeholder\x20perspective:\x20'+a['stakeholder_perspective']),b['push'](''));a['matched_scene']&&(b['push']('Scene:\x20'+a['matched_scene']['name']),b['push']('Phases:\x20'+a['matched_scene']['phases']['join'](',\x20')),b['push']('Requires\x20published\x20Machine:\x20'+(a['matched_scene']['requires_published_machine']?'YES':'NO')),b['push']('Requires\x20Order\x20bound:\x20'+(a['matched_scene']['requires_order_bound']?'YES':'NO')),b['push']('Uses\x20hold\x20mechanism:\x20'+(a['matched_scene']['uses_hold_mechanism']?'YES':'NO')),b['push']('Uses\x20adminUnhold:\x20'+(a['matched_scene']['uses_admin_unhold']?'YES':'NO')),b['push'](''));a['matched_template']&&(b['push']('Suggested\x20template:\x20'+a['matched_template']['id']+'\x20—\x20'+a['matched_template']['name']),b['push'](''));a['matched_pattern']&&(b['push']('Matched\x20pattern:\x20'+a['matched_pattern']['id']+'\x20—\x20'+a['matched_pattern']['pattern_name']),b['push']('Intent:\x20'+a['matched_pattern']['semantic_intent']),b['push'](''));if(d['include_puzzle_template']&&a['puzzle_completeness']){const e=a['puzzle_completeness'];b['push']('─\x20Puzzle\x20Completeness\x20──────────────'),b['push']('Complete:\x20'+(e['complete']?'YES':'NO'));if(e['missing']['length']>0x0){b['push']('Missing\x20dimensions:\x20'+e['missing']['join'](',\x20'));for(const f of e['missing_details']){b['push']('\x20\x20-\x20'+f['dimension']+':\x20'+f['reason']);}}b['push']('Next:\x20'+e['next_step']),b['push']('');}if(d['include_risk_details']&&a['relevant_risks']['length']>0x0){b['push']('─\x20Relevant\x20Risk\x20Rules\x20('+a['relevant_risks']['length']+')\x20──────────────');for(const g of a['relevant_risks']['slice'](0x0,0x6)){b['push']('\x20\x20'+g['id']+'\x20['+g['category']+']\x20—\x20'+g['trigger']);}a['relevant_risks']['length']>0x6&&b['push']('\x20\x20...\x20and\x20'+(a['relevant_risks']['length']-0x6)+'\x20more'),b['push']('');}a['risk_assessment']&&(b['push']('─\x20Risk\x20Assessment\x20──────────────'),b['push']('Overall:\x20'+a['risk_assessment']['overall_risk']),b['push']('Detected:\x20'+a['risk_assessment']['risks']['length']+'\x20risk(s)'),a['risk_assessment']['needs_human_review']&&b['push']('⚠️\x20Needs\x20human\x20review\x20(HIGH/CRITICAL\x20risks\x20present)'),b['push'](''));if(a['relevant_builtin_permissions']['length']>0x0){b['push']('─\x20Builtin\x20Permissions\x20('+a['relevant_builtin_permissions']['length']+')\x20──────────────');for(const i of a['relevant_builtin_permissions']){b['push']('\x20\x20['+i['index']+']\x20'+i['name']+':\x20'+i['description']);}b['push']('');}d['include_immutability_warning']&&(b['push']('⚠️\x20TASK\x20IMMUTABILITY:\x20task_set\x20is\x20ONE-TIME.\x20E_TASK_ALREADY_SET\x20blocks\x20any\x20re-assignment.'),b['push']('\x20\x20\x20Once\x20Progress.task\x20is\x20bound\x20to\x20an\x20Order/Reward,\x20it\x20cannot\x20be\x20changed.'),b['push'](''));d['include_admin_unhold_warning']&&(b['push']('⚠️\x20ADMINUNHOLD\x20(224):\x20Force-release\x20bypasses\x20holder\x20check.'),b['push']('\x20\x20\x20Grant\x20224\x20only\x20to\x20dedicated\x20recovery\x20addresses;\x20log\x20every\x20invocation.'),b['push'](''));if(d['include_cross_object_refs']&&a['cross_object_refs']['length']>0x0){b['push']('─\x20Cross-Object\x20References\x20('+a['cross_object_refs']['length']+')\x20──────────────');for(const j of a['cross_object_refs']['slice'](0x0,0x8)){b['push']('\x20\x20'+j['object']+'\x20['+j['phase']+']:\x20'+j['relationship']);}a['cross_object_refs']['length']>0x8&&b['push']('\x20\x20...\x20and\x20'+(a['cross_object_refs']['length']-0x8)+'\x20more'),b['push']('');}d['include_terminal_node_note']&&(b['push']('─\x20Terminal\x20Node\x20Note\x20──────────────'),b['push']('At\x20terminal\x20nodes\x20(completed/enforced/return_approved/paid),\x20use\x20progress::owner_receive'),b['push']('to\x20unwrap\x20Receiving<K>\x20/\x20CoinWrapper<T>\x20via\x20Payment.unwrap_with_check.'),b['push']('Permission\x20225\x20(PROGRESS_OWNER_RECEIVE)\x20required;\x20recipient\x20=\x20Machine.permission\x20owner.'),b['push'](''));if(a['onchain_constraints']['length']>0x0){b['push']('─\x20On-chain\x20Constraints\x20──────────────');for(const k of a['onchain_constraints']){const l=k['error_code']?'\x20(abort:\x20'+k['error_code']+')':'';b['push']('\x20\x20'+k['name']+'\x20=\x20'+k['value']+'\x20—\x20'+k['description']+l);}b['push']('');}return b['join']('\x0a');}export function getProgressContextSummary(a){const b=['mode='+a['mode'],'scene='+(a['matched_scene']?.['id']??'none'),'risks='+a['relevant_risks']['length'],'permissions='+a['relevant_builtin_permissions']['length'],'cross_refs='+a['cross_object_refs']['length']];if(a['stakeholder_perspective'])b['push']('stakeholder='+a['stakeholder_perspective']);if(a['risk_assessment'])b['push']('overall_risk='+a['risk_assessment']['overall_risk']);if(a['matched_template'])b['push']('template='+a['matched_template']['id']);if(a['matched_pattern'])b['push']('pattern='+a['matched_pattern']['id']);return b['join'](',\x20');}export function buildStakeholderContext(a,b,c){return buildProgressContext({'mode':'stakeholder_review','intent':b,'progress_json':c,'stakeholder':a});}export function quickValidateProgressJson(a,b={}){const c=[];if(a['progress_namedOperator']){const d=validateNamedOperatorAddressList(a['progress_namedOperator']['operators']);if(!d['ok'])c['push'](...d['violations']);if((a['progress_namedOperator']['op']==='add'||a['progress_namedOperator']['op']==='set')&&b['current_named_operator_count']!==undefined){const e=validateNamedOperatorCount(b['current_named_operator_count']);if(!e['ok'])c['push'](e['violation']);}}if(a['repository']&&(a['repository']['op']==='add'||a['repository']['op']==='set')){const f=a['repository']['objects']['length'],g=b['current_context_repository_count']??0x0,h=validateContextRepositoryCount(g,f);if(!h['ok'])c['push'](h['violation']);}return a['task']&&b['current_task']&&c['push']('task\x20already\x20set\x20to\x20'+b['current_task']+'\x20—\x20E_TASK_ALREADY_SET\x20will\x20abort'),b['machine_published']===![]&&c['push']('Machine\x20not\x20published\x20—\x20Progress\x20requires\x20published\x20Machine'),{'ok':c['length']===0x0,'violations':c};}export function getProgressKnowledgeSnapshot(){return{'version':{'ledger':PROGRESS_LEDGER_VERSION,'puzzle':'1.0.0','risk':PROGRESS_RISK_VERSION,'translation':PROGRESS_TRANSLATION_VERSION,'templates':PROGRESS_TEMPLATES_VERSION,'confirm':PROGRESS_CONFIRM_VERSION,'context':PROGRESS_CONTEXT_VERSION},'scenes_count':getProgressScenesCount(),'builtin_permissions_count':PROGRESS_PERMISSIONS['length'],'builtin_permissions':PROGRESS_PERMISSIONS['map'](a=>({'index':a['index'],'name':a['name'],'sdk_exposed':a['sdk_exposed']})),'templates_count':PROGRESS_TEMPLATES['length'],'templates':listProgressTemplates(),'semantic_patterns_count':PROGRESS_SEMANTIC_TO_SCHEMA_RULES['length'],'schema_rules_count':PROGRESS_SCHEMA_TO_SEMANTIC_RULES['length'],'constraint_rules_count':PROGRESS_CONSTRAINT_RULES['length'],'risk_rules_count':getProgressRiskRulesCount(),'checklist_count':PROGRESS_OPERATION_CHECKLIST['length'],'confirmation_questions_count':PROGRESS_CONFIRMATION_QUESTIONS['length'],'cross_object_refs_count':PROGRESS_CROSS_OBJECT_REFS['length'],'onchain_limits':{'max_named_operator_count':MAX_NAMED_OPERATOR_COUNT,'max_named_operator_address_count':MAX_NAMED_OPERATOR_ADDRESS_COUNT,'max_context_repository_count':MAX_CONTEXT_REPOSITORY_COUNT},'injection_modes':['initial_design','mid_progress_review','pre_advance','post_task_binding','stakeholder_review','apply_check'],'stakeholders':['owner','named_operator','submitter','system']};}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export interface ProgressSemanticToSchemaRule {
|
|
2
|
-
id: string;
|
|
3
|
-
pattern_name: string;
|
|
4
|
-
semantic_intent: string;
|
|
5
|
-
match_keywords: string[];
|
|
6
|
-
schema_fields: string[];
|
|
7
|
-
example_json: object;
|
|
8
|
-
reverse_explanation: string;
|
|
9
|
-
}
|
|
10
|
-
export interface ProgressSchemaToSemanticRule {
|
|
11
|
-
element_type: "field" | "op" | "phase";
|
|
12
|
-
type_name: string;
|
|
13
|
-
semantic_explanation: string;
|
|
14
|
-
constraints?: string[];
|
|
15
|
-
}
|
|
16
|
-
export interface ProgressConstraintRule {
|
|
17
|
-
id: string;
|
|
18
|
-
category: "structural" | "semantic" | "permission" | "lifecycle" | "cross_object";
|
|
19
|
-
rule: string;
|
|
20
|
-
applies_to: string[];
|
|
21
|
-
}
|
|
22
|
-
export declare const PROGRESS_SEMANTIC_TO_SCHEMA_RULES: ProgressSemanticToSchemaRule[];
|
|
23
|
-
export declare const PROGRESS_SCHEMA_TO_SEMANTIC_RULES: ProgressSchemaToSemanticRule[];
|
|
24
|
-
export declare const PROGRESS_CONSTRAINT_RULES: ProgressConstraintRule[];
|
|
25
|
-
export declare const PROGRESS_TRANSLATION_VERSION = "1.0.0";
|
|
26
|
-
export declare function matchSemanticPattern(userIntent: string): ProgressSemanticToSchemaRule[];
|
|
27
|
-
export interface ProgressCallDataForExplanation {
|
|
28
|
-
object?: string | null;
|
|
29
|
-
task?: string;
|
|
30
|
-
repository?: {
|
|
31
|
-
op: string;
|
|
32
|
-
objects?: string[];
|
|
33
|
-
};
|
|
34
|
-
progress_namedOperator?: {
|
|
35
|
-
op: string;
|
|
36
|
-
name: string;
|
|
37
|
-
operators?: string[];
|
|
38
|
-
};
|
|
39
|
-
operate?: {
|
|
40
|
-
operation: {
|
|
41
|
-
next_node_name: string;
|
|
42
|
-
forward: string;
|
|
43
|
-
};
|
|
44
|
-
op?: "next" | "hold" | "unhold" | "adminUnhold";
|
|
45
|
-
message?: string;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export declare function explainProgressCallData(data: ProgressCallDataForExplanation): string;
|
|
49
|
-
export declare function explainField(fieldName: string): ProgressSchemaToSemanticRule | undefined;
|
|
50
|
-
export declare function explainOp(opName: string): ProgressSchemaToSemanticRule | undefined;
|
|
51
|
-
export declare function getConstraintsByCategory(category: ProgressConstraintRule["category"]): ProgressConstraintRule[];
|
|
52
|
-
export declare function explainPermissionIndex(index: number): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{isProgressBuiltinPermission,getBuiltinPermissionByIndex}from'./progress-ledger.js';export const PROGRESS_SEMANTIC_TO_SCHEMA_RULES=[{'id':'P-PR-01','pattern_name':'Advance\x20Progress\x20(next\x20/\x20order_next)','semantic_intent':'Push\x20Progress\x20forward\x20via\x20a\x20Forward\x20definition;\x20accumulate\x20weight,\x20possibly\x20complete\x20session','match_keywords':['next','advance','proceed','complete\x20forward'],'schema_fields':['object','operate(operation,\x20op=\x27next\x27)'],'example_json':{'object':'0xPROGRESS_ADDRESS','operate':{'operation':{'next_node_name':'shipped','forward':'ship'},'op':'next','message':'Order\x20shipped\x20via\x20FedEx,\x20tracking\x2012345'}},'reverse_explanation':'operate.op=\x27next\x27\x20→\x20calls\x20progress::next\x20or\x20order_next\x20(if\x20task\x20bound).\x20'+'Move\x20accumulates\x20forward.weight;\x20on\x20reaching\x20threshold,\x20session\x20→\x20history\x20and\x20current\x20=\x20next_node_name.\x20'+'⚠\x20ROUTING\x20RULE:\x20When\x20Forward.namedOperator=\x22\x22\x20(empty\x20string\x20=\x20OrderHolder),\x20the\x20caller\x20MUST\x20use\x20'+'order.progress\x20(not\x20progress.operate)\x20—\x20order_next\x20uses\x20order.has_op_permission\x20which\x20recognizes\x20'+'the\x20OrderHolder\x20short-circuit.\x20Direct\x20progress::next\x20will\x20abort\x20with\x20\x27Permission\x20denied\x27\x20(code\x205).\x20'+'For\x20non-empty\x20namedOperator\x20or\x20permissionIndex-only\x20forwards,\x20use\x20progress.operate\x20directly.'},{'id':'P-PR-02','pattern_name':'Hold\x20Progress\x20(block\x20forward)','semantic_intent':'Lock\x20a\x20Forward\x20so\x20no\x20one\x20else\x20can\x20advance\x20it\x20until\x20unhold','match_keywords':['hold','lock','block','pause\x20forward'],'schema_fields':['object','operate(operation,\x20op=\x27hold\x27,\x20message)'],'example_json':{'object':'0xPROGRESS_ADDRESS','operate':{'operation':{'next_node_name':'revision_required','forward':'request_revision'},'op':'hold','message':'Please\x20revise\x20section\x203'}},'reverse_explanation':'operate.op=\x27hold\x27\x20→\x20calls\x20progress::hold\x20or\x20order_hold.\x20session_hold\x20sets\x20Holder.who\x20=\x20sender;\x20'+'other\x20callers\x20will\x20hit\x20E_NOT_THE_HOLDER\x20if\x20they\x20try\x20to\x20advance.'},{'id':'P-PR-03','pattern_name':'Self-unhold\x20(release\x20own\x20hold)','semantic_intent':'Release\x20a\x20forward\x20that\x20I\x20previously\x20held','match_keywords':['unhold','release','self\x20release'],'schema_fields':['object','operate(operation,\x20op=\x27unhold\x27)'],'example_json':{'object':'0xPROGRESS_ADDRESS','operate':{'operation':{'next_node_name':'reviewing','forward':'resubmit'},'op':'unhold','message':'Revised\x20content\x20uploaded'}},'reverse_explanation':'operate.op=\x27unhold\x27\x20→\x20calls\x20progress::hold(bHold=false)\x20or\x20order_hold(bHold=false).\x20'+'Move\x27s\x20session_hold\x20releases\x20the\x20lock\x20(sender\x20==\x20Holder.who).\x20'+'After\x20release,\x20the\x20forward\x20can\x20be\x20re-locked\x20or\x20accomplished\x20by\x20eligible\x20callers.'},{'id':'P-PR-04','pattern_name':'Admin\x20force-unhold\x20(224\x20permission)','semantic_intent':'Force-release\x20a\x20held\x20forward\x20using\x20224\x20permission,\x20bypassing\x20holder\x20check','match_keywords':['adminUnhold','force\x20unhold','admin\x20release'],'schema_fields':['object','operate(operation,\x20op=\x27adminUnhold\x27)'],'example_json':{'object':'0xPROGRESS_ADDRESS','operate':{'operation':{'next_node_name':'arb_decided','forward':'decide'},'op':'adminUnhold','message':'Admin\x20override:\x20holder\x20unresponsive\x20for\x207\x20days'}},'reverse_explanation':'operate.op=\x27adminUnhold\x27\x20→\x20calls\x20progress::unhold.\x20Move\x20checks\x20sender_has_permission_idcheck(224);\x20'+'if\x20true,\x20force\x20release\x20(bForce=true).\x20If\x20false,\x20falls\x20back\x20to\x20holder-match\x20check.'},{'id':'P-PR-05','pattern_name':'Bind\x20task\x20(one-time,\x20immutable)','semantic_intent':'Associate\x20an\x20Order/Reward\x20address\x20with\x20this\x20Progress\x20(only\x20once\x20per\x20Progress)','match_keywords':['task_set','bind\x20task','set\x20task'],'schema_fields':['object','task'],'example_json':{'object':'0xPROGRESS_ADDRESS','task':'0xORDER_ADDRESS'},'reverse_explanation':'Calls\x20progress::task_set.\x20Move\x20asserts\x20option::is_none(&self.task);\x20if\x20already\x20set,\x20E_TASK_ALREADY_SET\x20aborts.\x20'+'There\x20is\x20NO\x20task_unset\x20—\x20once\x20bound,\x20the\x20Progress\x20is\x20permanently\x20tied\x20to\x20that\x20Order/Reward.'},{'id':'P-PR-06','pattern_name':'Manage\x20context\x20repositories','semantic_intent':'Add/remove/clear\x20Repository\x20objects\x20as\x20query\x20context\x20(≤\x2030\x20total)','match_keywords':['repository','context'],'schema_fields':['object','repository(op,\x20objects)'],'example_json':{'object':'0xPROGRESS_ADDRESS','repository':{'op':'add','objects':['0xREPO1','0xREPO2']}},'reverse_explanation':'op=add:\x20appends\x20(idempotent\x20via\x20vector::contains).\x20op=remove:\x20drops\x20listed\x20addresses.\x20'+'op=clear:\x20empties\x20the\x20list.\x20op=set:\x20clears\x20then\x20adds.\x20Count\x20must\x20stay\x20≤\x20MAX_CONTEXT_REPOSITORY_COUNT\x20(30).'},{'id':'P-PR-07','pattern_name':'Manage\x20named_operator\x20namespace','semantic_intent':'Add/set/remove\x20addresses\x20for\x20a\x20named\x20operator\x20role\x20(Forward\x20gate)','match_keywords':['named_operator','operator'],'schema_fields':['object','progress_namedOperator(op,\x20name,\x20operators)'],'example_json':{'object':'0xPROGRESS_ADDRESS','progress_namedOperator':{'op':'add','name':'logistics','operators':['0xADDR1','0xADDR2']}},'reverse_explanation':'op=add:\x20appends\x20(deduped).\x20op=set:\x20REPLACES\x20the\x20address\x20list.\x20op=remove:\x20drops\x20listed\x20addresses.\x20'+'Up\x20to\x2060\x20named_operator\x20names\x20per\x20Progress;\x20up\x20to\x2080\x20addresses\x20per\x20name.'},{'id':'P-PR-08','pattern_name':'Owner\x20receive\x20(terminal\x20node\x20unwrap)','semantic_intent':'Owner\x20receives\x20Receiving<K>\x20objects\x20or\x20CoinWrapper<T>\x20coins\x20at\x20a\x20terminal\x20node','match_keywords':['owner_receive','unwrap','withdraw'],'schema_fields':['(SDK\x20does\x20not\x20expose\x20this\x20in\x20CallProgress_Data\x20—\x20direct\x20move\x20call\x20required)'],'example_json':{'_note':'Not\x20exposed\x20in\x20CallProgress_Data;\x20direct\x20Move\x20call:','target':'progress::owner_receive<T>','arguments':['progress','machine','permission','received','payment']},'reverse_explanation':'Calls\x20progress::owner_receive\x20(225\x20permission).\x20Unwraps\x20CoinWrapper<T>\x20via\x20Payment.unwrap_with_check,\x20'+'forwards\x20coin/object\x20to\x20Permission\x20owner.\x20Typically\x20triggered\x20at\x20terminal\x20nodes\x20(return_approved,\x20completed,\x20enforced).'}];export const PROGRESS_SCHEMA_TO_SEMANTIC_RULES=[{'element_type':'field','type_name':'object','semantic_explanation':'Progress\x20object\x20address.\x20Always\x20required\x20for\x20operate\x20calls\x20(Progress\x20is\x20created\x20indirectly\x20via\x20service::buy).'},{'element_type':'field','type_name':'task','semantic_explanation':'Bind\x20a\x20task\x20(Order/Reward)\x20address.\x20ONE-TIME\x20only\x20—\x20E_TASK_ALREADY_SET\x20on\x20re-set.'},{'element_type':'field','type_name':'repository','semantic_explanation':'Context\x20Repository\x20list\x20management.\x20op=add/set/remove/clear.\x20Total\x20≤\x20MAX_CONTEXT_REPOSITORY_COUNT\x20(30).'},{'element_type':'field','type_name':'progress_namedOperator','semantic_explanation':'named_operator\x20namespace\x20management.\x20name=\x27\x27\x20is\x20the\x20OrderHolder\x20special\x20namespace.\x20≤\x2060\x20names,\x20≤\x2080\x20addresses\x20each.'},{'element_type':'field','type_name':'operate','semantic_explanation':'Forward\x20advancement\x20/\x20hold\x20/\x20unhold.\x20Contains\x20operation\x20(next_node_name\x20+\x20forward)\x20and\x20hold/adminUnhold/message\x20flags.'},{'element_type':'field','type_name':'operate.operation.next_node_name','semantic_explanation':'Target\x20node\x20name.\x20Must\x20exist\x20in\x20Machine\x20and\x20be\x20reachable\x20from\x20current\x20via\x20a\x20Forward\x20definition.'},{'element_type':'field','type_name':'operate.operation.forward','semantic_explanation':'Forward\x20name.\x20Must\x20be\x20one\x20of\x20the\x20forwards\x20defined\x20from\x20current\x20→\x20next_node_name\x20in\x20the\x20Machine.'},{'element_type':'field','type_name':'operate.op','semantic_explanation':'Operation\x20type:\x20\x27next\x27\x20=\x20advance\x20forward;\x20\x27hold\x27\x20=\x20lock\x20forward\x20(Holder.who\x20=\x20sender);\x20\x27unhold\x27\x20=\x20self-release\x20own\x20hold;\x20\x27adminUnhold\x27\x20=\x20force\x20release\x20via\x20224\x20permission\x20(bypasses\x20holder\x20check).'},{'element_type':'field','type_name':'operate.message','semantic_explanation':'Deliverable\x20message\x20(≤\x20MAX_LONG_NAME_LENGTH).\x20Stored\x20in\x20Holder.msg\x20/\x20delivered\x20on\x20accomplishment.'},{'element_type':'op','type_name':'next','semantic_explanation':'Plain\x20forward\x20advance.\x20Use\x20when\x20no\x20bound\x20Order,\x20OR\x20caller\x20is\x20named_operator\x20(not\x20OrderHolder).'},{'element_type':'op','type_name':'order_next','semantic_explanation':'Order-bound\x20forward\x20advance.\x20Caller\x20must\x20satisfy\x20order.has_op_permission\x20(order\x20owner/agent).'},{'element_type':'op','type_name':'hold','semantic_explanation':'Lock\x20forward.\x20Holder.who\x20=\x20sender;\x20subsequent\x20callers\x20hit\x20E_NOT_THE_HOLDER.'},{'element_type':'op','type_name':'order_hold','semantic_explanation':'Order-bound\x20hold.\x20Same\x20as\x20hold\x20but\x20uses\x20order.has_op_permission\x20for\x20OrderHolder\x20verification.'},{'element_type':'op','type_name':'unhold','semantic_explanation':'Self-release\x20(sender\x20==\x20Holder.who)\x20OR\x20admin\x20force-release\x20(224\x20permission).'},{'element_type':'op','type_name':'namedOperator_add','semantic_explanation':'Append\x20addresses\x20to\x20a\x20named_operator\x20(deduped;\x20fails\x20if\x20name\x20new\x20and\x20≥\x2060\x20names).'},{'element_type':'op','type_name':'namedOperator_set','semantic_explanation':'REPLACE\x20the\x20address\x20list\x20for\x20a\x20named_operator\x20name\x20(or\x20create\x20if\x20name\x20new).'},{'element_type':'op','type_name':'namedOperator_remove','semantic_explanation':'Drop\x20listed\x20addresses\x20from\x20a\x20named_operator\x20name\x20(no-op\x20if\x20name\x20doesn\x27t\x20exist).'},{'element_type':'phase','type_name':'creation','semantic_explanation':'Indirect:\x20service::buy\x20→\x20progress::new_imp\x20(bypasses\x20220\x20assertion\x20via\x20package-internal\x20entry).'},{'element_type':'phase','type_name':'task_binding','semantic_explanation':'One-time\x20task_set\x20(222).\x20E_TASK_ALREADY_SET\x20on\x20any\x20retry.'},{'element_type':'phase','type_name':'forward_advance','semantic_explanation':'Dynamic\x20permission:\x20IsNamedOperator\x20OR\x20Forward.permissionIndex\x20OR\x20Forward.guard\x20(Passport).\x20NOT\x20220-225.'},{'element_type':'phase','type_name':'completed','semantic_explanation':'session.weights\x20≥\x20threshold\x20→\x20push\x20to\x20history,\x20current\x20=\x20next_node.\x20Atomic.'}];export const PROGRESS_CONSTRAINT_RULES=[{'id':'MC-PR-01','category':'structural','rule':'Machine\x20must\x20be\x20published\x20before\x20Progress\x20creation\x20(machine::on_progress_new\x20asserts\x20published\x20state)','applies_to':['creation']},{'id':'MC-PR-02','category':'structural','rule':'Progress.machine\x20is\x20immutable\x20after\x20creation\x20(E_MACHINE_NOT_MATCH\x20on\x20every\x20op)','applies_to':['operate','task','repository','progress_namedOperator']},{'id':'MC-PR-03','category':'structural','rule':'named_operator\x20count\x20<\x20MAX_NAMED_OPERATOR_COUNT\x20(60);\x20E_MAX_NAMED_OPERATOR_COUNT\x20on\x20overflow','applies_to':['progress_namedOperator.op=add\x20(new\x20name)']},{'id':'MC-PR-04','category':'structural','rule':'named_operator\x20addresses\x20<\x20MAX_NAMED_OPERATOR_ADDRESS_COUNT\x20(80);\x20E_MAX_NAMED_OPERATOR_ADDRESS_COUNT\x20on\x20overflow','applies_to':['progress_namedOperator.operators']},{'id':'MC-PR-05','category':'structural','rule':'context_repository\x20count\x20<\x20MAX_CONTEXT_REPOSITORY_COUNT\x20(30);\x20E_MAX_CONTEXT_REPOSITORY_COUNT\x20on\x20overflow','applies_to':['repository.op=add','repository.op=set']},{'id':'MC-PR-06','category':'semantic','rule':'task_set\x20is\x20one-time:\x20E_TASK_ALREADY_SET\x20blocks\x20any\x20re-assignment','applies_to':['task']},{'id':'MC-PR-07','category':'semantic','rule':'operate.op\x20must\x20be\x20one\x20of:\x20next\x20|\x20hold\x20|\x20unhold\x20|\x20adminUnhold\x20(schema-enforced\x20enum)','applies_to':['operate.op']},{'id':'MC-PR-08','category':'semantic','rule':'operate.message\x20must\x20satisfy\x20common::LONG_NAME\x20(≤\x20MAX_LONG_NAME_LENGTH)','applies_to':['operate.message']},{'id':'MC-PR-09','category':'permission','rule':'Forward\x20advance\x20uses\x20DYNAMIC\x20permission:\x20namedOperator\x20OR\x20Forward.permissionIndex\x20OR\x20Forward.guard\x20—\x20NOT\x20220-225','applies_to':['operate\x20(next/hold/unhold)']},{'id':'MC-PR-10','category':'permission','rule':'220-225\x20builtin\x20indexes\x20are\x20MANAGEMENT-ONLY\x20(named_operator/task/repository/unhold/owner_receive)','applies_to':['progress_namedOperator','task','repository','operate.op=\x27adminUnhold\x27']},{'id':'MC-PR-11','category':'permission','rule':'adminUnhold\x20(224)\x20bypasses\x20holder\x20check\x20—\x20grant\x20only\x20to\x20dedicated\x20recovery\x20addresses','applies_to':['operate.op=\x27adminUnhold\x27']},{'id':'MC-PR-12','category':'lifecycle','rule':'Forward\x20already\x20accomplished\x20→\x20E_FORWARD_ALREADY_ACCOMPLISHED\x20on\x20re-hold\x20(idempotent\x20completion)','applies_to':['operate.op=\x27hold\x27']},{'id':'MC-PR-13','category':'lifecycle','rule':'unhold\x20by\x20non-holder\x20requires\x20224\x20permission;\x20else\x20E_NOT_THE_HOLDER','applies_to':['operate.op=\x27unhold\x27']},{'id':'MC-PR-14','category':'cross_object','rule':'order_next/order_hold\x20require\x20progress.task\x20==\x20order\x20address\x20(E_ORDER_NOT_MATCH)','applies_to':['operate\x20(order\x20variant)']},{'id':'MC-PR-15','category':'cross_object','rule':'context_repository_add\x20creates\x20object-linker\x20tx\x20binding\x20—\x20remove\x20before\x20deleting\x20Repository','applies_to':['repository.op=add']},{'id':'MC-PR-16','category':'cross_object','rule':'Forward.guard\x20(Some)\x20requires\x20*_with_passport\x20variant;\x20plain\x20next()\x20aborts\x20E_NEED_PASSPORT','applies_to':['operate\x20(guarded\x20forward)']}];export const PROGRESS_TRANSLATION_VERSION='1.0.0';export function matchSemanticPattern(a){const b=a['toLowerCase']();return PROGRESS_SEMANTIC_TO_SCHEMA_RULES['filter'](c=>c['match_keywords']['some'](d=>b['includes'](d['toLowerCase']())));}export function explainProgressCallData(a){const b=[];!a['object']?b['push']('Operation:\x20CREATE\x20Progress\x20(indirect\x20—\x20service::buy\x20→\x20new_imp)'):b['push']('Operation:\x20OPERATE\x20Progress\x20at\x20'+a['object']);a['task']&&b['push']('-\x20⚠️\x20task_set:\x20'+a['task']+'\x20(one-time,\x20immutable\x20—\x20E_TASK_ALREADY_SET\x20on\x20re-set)');if(a['repository']){const c=a['repository'],d=c['objects']?.['length']??0x0;b['push']('-\x20Repository\x20'+c['op']+':\x20'+d+'\x20object(s)');}if(a['progress_namedOperator']){const e=a['progress_namedOperator'],f=e['operators']?.['length']??0x0,g=e['name']===''?'(OrderHolder\x20namespace)':'\x22'+e['name']+'\x22';b['push']('-\x20namedOperator\x20'+e['op']+'\x20'+g+':\x20'+f+'\x20address(es)');}if(a['operate']){const h=a['operate'];b['push']('-\x20Operation:\x20'+h['operation']['forward']+'\x20→\x20'+h['operation']['next_node_name']);h['op']&&b['push']('\x20\x20op='+h['op']);if(h['op']==='hold')b['push']('\x20\x20⚠️\x20hold:\x20lock\x20this\x20forward\x20(Holder.who\x20=\x20sender)');else{if(h['op']==='adminUnhold')b['push']('\x20\x20⚠️\x20adminUnhold:\x20force\x20release\x20via\x20224\x20permission\x20(bypasses\x20holder\x20check)');else h['op']==='unhold'?b['push']('\x20\x20ℹ️\x20unhold:\x20self-release\x20own\x20hold\x20(sender\x20must\x20==\x20Holder.who)'):b['push']('\x20\x20Submit\x20result\x20(advance\x20forward,\x20accumulate\x20weight\x20toward\x20threshold)');}h['message']&&b['push']('\x20\x20Message:\x20\x22'+h['message']+'\x22');}return b['join']('\x0a');}export function explainField(a){return PROGRESS_SCHEMA_TO_SEMANTIC_RULES['find'](b=>b['element_type']==='field'&&b['type_name']===a);}export function explainOp(a){return PROGRESS_SCHEMA_TO_SEMANTIC_RULES['find'](b=>b['element_type']==='op'&&b['type_name']===a);}export function getConstraintsByCategory(a){return PROGRESS_CONSTRAINT_RULES['filter'](b=>b['category']===a);}export function explainPermissionIndex(a){if(isProgressBuiltinPermission(a)){const b=getBuiltinPermissionByIndex(a);return b['name']+'\x20('+a+')\x20—\x20'+b['description'];}return'Custom/dynamic\x20permission\x20index\x20('+a+')\x20—\x20resolved\x20via\x20Forward.permissionIndex\x20in\x20Machine';}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export type ConfirmSeverity = "block" | "warn" | "info";
|
|
2
|
-
export interface ProofConfirmItem {
|
|
3
|
-
id: string;
|
|
4
|
-
severity: ConfirmSeverity;
|
|
5
|
-
title: string;
|
|
6
|
-
description: string;
|
|
7
|
-
passed: boolean;
|
|
8
|
-
evidence?: string;
|
|
9
|
-
fix_hint?: string;
|
|
10
|
-
}
|
|
11
|
-
export interface ProofCreationCheckInput {
|
|
12
|
-
description?: string;
|
|
13
|
-
proof?: string;
|
|
14
|
-
server_pubkey?: string;
|
|
15
|
-
server_signature?: string;
|
|
16
|
-
proof_type?: number | bigint | string;
|
|
17
|
-
item_count?: number | bigint | string | null;
|
|
18
|
-
about_address?: string | null;
|
|
19
|
-
namedNew?: {
|
|
20
|
-
name: string;
|
|
21
|
-
tag?: string;
|
|
22
|
-
} | null;
|
|
23
|
-
}
|
|
24
|
-
export declare function preCheckProofCreation(input: ProofCreationCheckInput): ProofConfirmItem[];
|
|
25
|
-
export declare function canCreateProof(input: ProofCreationCheckInput): {
|
|
26
|
-
canCreate: boolean;
|
|
27
|
-
blockers: ProofConfirmItem[];
|
|
28
|
-
warnings: ProofConfirmItem[];
|
|
29
|
-
info: ProofConfirmItem[];
|
|
30
|
-
};
|
|
31
|
-
export declare function formatProofCreationSummary(input: ProofCreationCheckInput): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{MAX_PROOF_SIZE,MAX_SERVER_PUBKEY_SIZE,MAX_SERVER_SIGNATURE_SIZE,WOWOK_WTS_PROOF_TYPE}from'@wowok/wowok';function checkDescription(a){const b=!!a['description']&&a['description']['length']>0x0;return{'id':'C-PROOF-01','severity':b?'info':'warn','title':'description\x20is\x20provided\x20and\x20non-empty','description':'description\x20is\x20a\x20REQUIRED\x20field\x20(PF-D-2=A).\x20Move\x20contract\x20stores\x20it\x20as\x20String;\x20SDK\x20enforces\x20isValidDescription.\x20'+'Empty\x20string\x20(\x22\x22)\x20is\x20technically\x20valid\x20but\x20makes\x20the\x20Proof\x20hard\x20to\x20identify\x20in\x20queries.','passed':b,'evidence':a['description']===undefined?'undefined':'length='+a['description']['length'],'fix_hint':'Provide\x20a\x20one-line\x20description\x20like\x20\x22KYC\x20attestation\x20for\x20user\x200xabc\x22.'};}function checkProofContent(a){const b=a['proof']?.['length']??0x0,c=b>0x0&&b<=MAX_PROOF_SIZE;return{'id':'C-PROOF-02','severity':c?'info':'block','title':'proof\x20content\x20within\x20MAX_PROOF_SIZE\x20('+MAX_PROOF_SIZE+'\x20bytes)','description':'The\x20\x27proof\x27\x20string\x20field\x20must\x20be\x20non-empty\x20and\x20≤\x20MAX_PROOF_SIZE\x20bytes.\x20Move\x20aborts\x20with\x20E_MAX_PROOF_SIZE\x20(1)\x20on\x20overflow.\x20'+'Typically\x20holds\x20a\x20merkle\x20root\x20or\x20compact\x20digest\x20—\x20large\x20data\x20should\x20go\x20in\x20a\x20Repository.','passed':c,'evidence':'length='+b+',\x20limit='+MAX_PROOF_SIZE,'fix_hint':'Keep\x20proof\x20content\x20compact.\x20Current\x20overflow:\x20'+Math['max'](0x0,b-MAX_PROOF_SIZE)+'\x20bytes.'};}function checkServerPubkey(a){const b=a['server_pubkey']?.['length']??0x0,c=b>0x0&&b<=MAX_SERVER_PUBKEY_SIZE;return{'id':'C-PROOF-03','severity':c?'info':'block','title':'server_pubkey\x20within\x20MAX_SERVER_PUBKEY_SIZE\x20('+MAX_SERVER_PUBKEY_SIZE+'\x20bytes)','description':'server_pubkey\x20must\x20be\x20non-empty\x20and\x20≤\x20MAX_SERVER_PUBKEY_SIZE\x20bytes.\x20Move\x20aborts\x20with\x20E_MAX_SERVER_PUBKEY_SIZE\x20(2).\x20'+'Submit\x20raw\x20public\x20key\x20bytes\x20(hex-encoded),\x20not\x20a\x20certificate\x20chain.','passed':c,'evidence':'length='+b+',\x20limit='+MAX_SERVER_PUBKEY_SIZE,'fix_hint':'Submit\x20only\x20the\x20raw\x20public\x20key\x20(Ed25519=32B,\x20RSA-2048=256B,\x20BLS12-381\x20G1=48B,\x20G2=96B).'};}function checkServerSignature(a){const b=a['server_signature']?.['length']??0x0,c=b>0x0&&b<=MAX_SERVER_SIGNATURE_SIZE;return{'id':'C-PROOF-04','severity':c?'info':'block','title':'server_signature\x20within\x20MAX_SERVER_SIGNATURE_SIZE\x20('+MAX_SERVER_SIGNATURE_SIZE+'\x20bytes)','description':'server_signature\x20must\x20be\x20non-empty\x20and\x20≤\x20MAX_SERVER_SIGNATURE_SIZE\x20bytes.\x20Move\x20aborts\x20with\x20E_MAX_SERVER_SIGNATURE_SIZE\x20(3).\x20'+'Submit\x20raw\x20signature\x20bytes,\x20not\x20bundled\x20metadata.','passed':c,'evidence':'length='+b+',\x20limit='+MAX_SERVER_SIGNATURE_SIZE,'fix_hint':'Submit\x20only\x20the\x20raw\x20signature\x20(Ed25519=64B,\x20ECDSA=64-72B,\x20BLS12-381=96B,\x20RSA-2048=256B).'};}function checkProofType(a){if(a['proof_type']===undefined||a['proof_type']===null)return{'id':'C-PROOF-05','severity':'block','title':'proof_type\x20is\x20provided','description':'proof_type\x20is\x20a\x20required\x20u64.\x20'+WOWOK_WTS_PROOF_TYPE+'=WOWOK_WTS_PROOF_TYPE\x20(WTS\x20proof);\x202-100\x20reserved\x20for\x20Wowok;\x20>100\x20user-defined.','passed':![],'evidence':'undefined','fix_hint':'Use\x20'+WOWOK_WTS_PROOF_TYPE+'\x20for\x20WTS\x20proofs,\x20or\x20>100\x20for\x20custom\x20types.'};const b=typeof a['proof_type']==='string'?BigInt(a['proof_type']):BigInt(a['proof_type']),c=b>=0x1n,d=c?b>0x1n&&b<=0x64n?'warn':'info':'block';return{'id':'C-PROOF-05','severity':d,'title':'proof_type\x20valid\x20('+WOWOK_WTS_PROOF_TYPE+'=WTS,\x202-100\x20reserved,\x20>100\x20user-defined)','description':'proof_type\x20must\x20be\x20≥\x201\x20(P-PROOF-P2-2).\x20Value\x20'+WOWOK_WTS_PROOF_TYPE+'=WOWOK_WTS_PROOF_TYPE\x20(WTS\x20proof\x20signed\x20by\x20off-chain\x20server).\x20'+'Values\x202-100\x20are\x20reserved\x20for\x20future\x20Wowok-defined\x20types\x20—\x20using\x20them\x20without\x20authority\x20creates\x20semantic\x20confusion.','passed':c,'evidence':'proof_type='+a['proof_type'],'fix_hint':c?undefined:'Use\x20≥\x201.\x20For\x20custom\x20types,\x20use\x20>\x20100.'};}function checkAboutAddress(a){const b=a['about_address'];if(b===null||b===undefined||b==='')return{'id':'C-PROOF-06','severity':'info','title':'about_address\x20is\x20null\x20→\x20free-standing\x20Proof\x20(no\x20on-chain\x20entity\x20binding)','description':'about_address=null\x20is\x20valid\x20(PF-D-1=A,\x20SDK\x20sends\x20Option::none).\x20Use\x20this\x20for\x20free-standing\x20cryptographic\x20statements.\x20'+'For\x20entity-bound\x20attestations,\x20set\x20about_address\x20to\x20the\x20on-chain\x20entity\x20address\x20(raw\x200x-prefixed,\x20not\x20a\x20name).','passed':!![],'evidence':'null/empty\x20→\x20Option::none'};const c=/^0x[0-9a-fA-F]{64}$/['test'](b);return{'id':'C-PROOF-06','severity':c?'info':'block','title':'about_address\x20is\x20a\x20valid\x20raw\x200x-prefixed\x20address\x20(or\x20null)','description':'When\x20provided,\x20about_address\x20must\x20be\x20a\x20raw\x20address\x20(NOT\x20a\x20name).\x20SDK\x20isValidAddress\x20check\x20enforces\x200x-prefixed\x2064-hex\x20format.\x20'+'Name\x20resolution\x20is\x20NOT\x20performed\x20at\x20the\x20SDK\x20layer\x20for\x20this\x20field.','passed':c,'evidence':'about_address='+b['substring'](0x0,0xa)+'...','fix_hint':'Use\x200x-prefixed\x2064-hex\x20address.\x20Names\x20are\x20not\x20accepted.'};}function checkItemCount(a){if(a['item_count']===undefined||a['item_count']===null)return{'id':'C-PROOF-07','severity':'info','title':'item_count\x20is\x20optional\x20(null\x20→\x20Option::none)','description':'item_count\x20is\x20an\x20optional\x20u64.\x20Use\x20it\x20to\x20indicate\x20the\x20number\x20of\x20items\x20in\x20the\x20off-chain\x20data\x20structure\x20(e.g.\x20merkle\x20tree\x20leaf\x20count).\x20'+'When\x20null,\x20SDK\x20sends\x20Option::none\x20to\x20Move.','passed':!![],'evidence':'optional/none'};const b=typeof a['item_count']==='string'?BigInt(a['item_count']):BigInt(a['item_count']),c=b>=0x0n;return{'id':'C-PROOF-07','severity':c?'info':'block','title':'item_count\x20is\x20a\x20non-negative\x20u64\x20(or\x20null)','description':'When\x20provided,\x20item_count\x20must\x20be\x20≥\x200.\x20Used\x20to\x20indicate\x20off-chain\x20data\x20structure\x20size\x20(e.g.\x20merkle\x20leaf\x20count).','passed':c,'evidence':'item_count='+a['item_count']};}function checkNamedNew(a){const b=!!a['namedNew'];return{'id':'C-PROOF-08','severity':b?'info':'warn','title':'namedNew\x20is\x20provided\x20(recommended\x20for\x20discoverability)','description':'namedNew={name,\x20tag?}\x20is\x20optional\x20but\x20recommended.\x20Without\x20it,\x20the\x20Proof\x20is\x20created\x20without\x20a\x20local\x20mark,\x20'+'making\x20it\x20harder\x20to\x20reference\x20in\x20subsequent\x20operations.\x20The\x20\x27name\x27\x20should\x20be\x20descriptive\x20(e.g.\x20\x22kyc_user_abc\x22).','passed':b,'evidence':b?'name='+a['namedNew']['name']:'not\x20provided','fix_hint':'Provide\x20namedNew={name:\x20\x22descriptive_name\x22}\x20for\x20easier\x20subsequent\x20reference.'};}export function preCheckProofCreation(a){return[checkDescription(a),checkProofContent(a),checkServerPubkey(a),checkServerSignature(a),checkProofType(a),checkAboutAddress(a),checkItemCount(a),checkNamedNew(a)];}export function canCreateProof(a){const b=preCheckProofCreation(a);return{'canCreate':b['every'](c=>c['severity']!=='block'||c['passed']),'blockers':b['filter'](c=>c['severity']==='block'&&!c['passed']),'warnings':b['filter'](c=>c['severity']==='warn'&&!c['passed']),'info':b['filter'](c=>c['severity']==='info')};}export function formatProofCreationSummary(a){const {canCreate:b,blockers:c,warnings:d,info:e}=canCreateProof(a),f=[];return f['push'](b?'✓\x20Proof\x20creation\x20pre-check\x20PASSED':'✗\x20Proof\x20creation\x20pre-check\x20FAILED'),f['push'](''),c['length']>0x0&&(f['push']('BLOCKERS\x20(must\x20fix\x20before\x20creation):'),c['forEach'](g=>f['push']('\x20\x20['+g['id']+']\x20'+g['title']+'\x20—\x20'+(g['evidence']??''))),f['push']('')),d['length']>0x0&&(f['push']('WARNINGS\x20(review\x20recommended):'),d['forEach'](g=>f['push']('\x20\x20['+g['id']+']\x20'+g['title']+'\x20—\x20'+(g['evidence']??''))),f['push']('')),e['length']>0x0&&(f['push']('INFO:'),e['forEach'](g=>f['push']('\x20\x20['+g['id']+']\x20'+g['title']))),f['join']('\x0a');}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type ProofScene } from "./proof-ledger.js";
|
|
2
|
-
export declare const PROOF_CONTEXT_VERSION = "1.0.0";
|
|
3
|
-
export interface ProofContextBundle {
|
|
4
|
-
scene?: ProofScene;
|
|
5
|
-
binding: "entity_bound" | "free_standing";
|
|
6
|
-
immutable: true;
|
|
7
|
-
summary: string;
|
|
8
|
-
}
|
|
9
|
-
export interface BuildProofContextInput {
|
|
10
|
-
proof_type?: number | bigint | string;
|
|
11
|
-
about_address?: string | null;
|
|
12
|
-
description?: string;
|
|
13
|
-
proof?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare function buildProofContext(input: BuildProofContextInput): ProofContextBundle;
|
|
16
|
-
export declare function getProofContextSummary(ctx: ProofContextBundle): string;
|
|
17
|
-
export declare function isWtsProof(proofType: number | bigint | string): boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{WOWOK_WTS_PROOF_TYPE}from'@wowok/wowok';import{getProofSceneByType}from'./proof-ledger.js';export const PROOF_CONTEXT_VERSION='1.0.0';export function buildProofContext(a){const b=a['proof_type']!==undefined?getProofSceneByType(a['proof_type']):undefined,c=a['about_address']?'entity_bound':'free_standing',d=[];return b?d['push']('proof_type\x20'+b['proof_type_range']+'\x20('+b['semantic']+')'):d['push']('proof_type\x20not\x20classified'),a['description']&&d['push']('description\x20\x22'+a['description']+'\x22'),d['push'](c==='entity_bound'?'bound\x20to\x20on-chain\x20entity':'free-standing\x20attestation'),d['push']('immutable\x20(freeze_object)'),{'scene':b,'binding':c,'immutable':!![],'summary':d['join']('\x20·\x20')};}export function getProofContextSummary(a){return a['summary'];}export function isWtsProof(a){const b=typeof a==='string'?BigInt(a):BigInt(a);return b===BigInt(WOWOK_WTS_PROOF_TYPE);}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export declare const PROOF_LEDGER_VERSION = "1.0.0";
|
|
2
|
-
export type ProofFieldMutability = "immutable";
|
|
3
|
-
export interface ProofFieldEntry {
|
|
4
|
-
field: string;
|
|
5
|
-
move_field?: string;
|
|
6
|
-
value_type: string;
|
|
7
|
-
semantic: string;
|
|
8
|
-
required: boolean;
|
|
9
|
-
mutability: ProofFieldMutability;
|
|
10
|
-
error_code?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare const PROOF_FIELDS: ProofFieldEntry[];
|
|
13
|
-
export interface ProofErrorEntry {
|
|
14
|
-
code: string;
|
|
15
|
-
value: number;
|
|
16
|
-
description: string;
|
|
17
|
-
related_field: string;
|
|
18
|
-
}
|
|
19
|
-
export declare const PROOF_ERROR_CODES: ProofErrorEntry[];
|
|
20
|
-
export type ProofSceneClassification = "wts" | "custom_reserved" | "custom_user";
|
|
21
|
-
export interface ProofScene {
|
|
22
|
-
id: string;
|
|
23
|
-
classification: ProofSceneClassification;
|
|
24
|
-
proof_type_range: string;
|
|
25
|
-
semantic: string;
|
|
26
|
-
recommended: boolean;
|
|
27
|
-
}
|
|
28
|
-
export declare const PROOF_SCENES: ProofScene[];
|
|
29
|
-
export declare function getProofField(field: string): ProofFieldEntry | undefined;
|
|
30
|
-
export declare function getProofFieldsCount(): number;
|
|
31
|
-
export declare function getProofErrorByCode(code: string): ProofErrorEntry | undefined;
|
|
32
|
-
export declare function getProofErrorByValue(value: number): ProofErrorEntry | undefined;
|
|
33
|
-
export declare function getProofSceneByType(proofType: number | bigint | string): ProofScene | undefined;
|
|
34
|
-
export declare function inferProofSceneFromIntent(intent: string): ProofScene | undefined;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{WOWOK_WTS_PROOF_TYPE,MAX_PROOF_SIZE,MAX_SERVER_PUBKEY_SIZE,MAX_SERVER_SIGNATURE_SIZE}from'@wowok/wowok';export const PROOF_LEDGER_VERSION='1.0.0';export const PROOF_FIELDS=[{'field':'description','value_type':'string','semantic':'Human-readable\x20one-line\x20summary\x20(audit/discoverability).','required':!![],'mutability':'immutable'},{'field':'proof','value_type':'string\x20(hex-encoded)','semantic':'Cryptographic\x20proof\x20content\x20(merkle\x20root\x20/\x20hash\x20digest\x20/\x20compact\x20attestation).','required':!![],'mutability':'immutable','error_code':'E_MAX_PROOF_SIZE'},{'field':'server_pubkey','value_type':'string\x20(hex-encoded)','semantic':'Raw\x20public\x20key\x20of\x20the\x20off-chain\x20signing\x20server\x20(not\x20a\x20certificate).','required':!![],'mutability':'immutable','error_code':'E_MAX_SERVER_PUBKEY_SIZE'},{'field':'server_signature','value_type':'string\x20(hex-encoded)','semantic':'Signature\x20produced\x20by\x20the\x20off-chain\x20server\x20over\x20`proof`\x20(or\x20documented\x20pre-image).','required':!![],'mutability':'immutable','error_code':'E_MAX_SERVER_SIGNATURE_SIZE'},{'field':'proof_type','value_type':'u64','semantic':'Proof\x20verification\x20classification\x20(1=WTS,\x202-100\x20reserved,\x20>100\x20user-defined).','required':!![],'mutability':'immutable'},{'field':'about_address','move_field':'about','value_type':'Option<address>','semantic':'On-chain\x20entity\x20this\x20proof\x20attests\x20to;\x20null\x20=\x20free-standing\x20statement.','required':![],'mutability':'immutable'},{'field':'item_count','move_field':'item_count','value_type':'Option<u64>','semantic':'Optional\x20count\x20of\x20items\x20in\x20the\x20off-chain\x20data\x20structure\x20(e.g.\x20merkle\x20leaf\x20count).','required':![],'mutability':'immutable'},{'field':'signer','value_type':'address','semantic':'The\x20tx\x20sender\x20who\x20created\x20the\x20proof\x20(frozen\x20at\x20creation).','required':!![],'mutability':'immutable'},{'field':'time','value_type':'u64\x20(timestamp\x20ms)','semantic':'Creation\x20timestamp\x20(clock::timestamp_ms).','required':!![],'mutability':'immutable'}];export const PROOF_ERROR_CODES=[{'code':'E_MAX_PROOF_SIZE','value':0x1,'description':'proof\x20string\x20length\x20exceeds\x20MAX_PROOF_SIZE\x20('+MAX_PROOF_SIZE+'\x20bytes).','related_field':'proof'},{'code':'E_MAX_SERVER_PUBKEY_SIZE','value':0x2,'description':'server_pubkey\x20length\x20exceeds\x20MAX_SERVER_PUBKEY_SIZE\x20('+MAX_SERVER_PUBKEY_SIZE+'\x20bytes).','related_field':'server_pubkey'},{'code':'E_MAX_SERVER_SIGNATURE_SIZE','value':0x3,'description':'server_signature\x20length\x20exceeds\x20MAX_SERVER_SIGNATURE_SIZE\x20('+MAX_SERVER_SIGNATURE_SIZE+'\x20bytes).','related_field':'server_signature'}];export const PROOF_SCENES=[{'id':'proof_wts','classification':'wts','proof_type_range':''+WOWOK_WTS_PROOF_TYPE,'semantic':'Wowok\x20Will-To-Sign:\x20an\x20off-chain\x20server\x20attests\x20to\x20a\x20fact\x20and\x20signs\x20it\x20(server_pubkey\x20+\x20server_signature).','recommended':!![]},{'id':'proof_custom_reserved','classification':'custom_reserved','proof_type_range':'2-100','semantic':'Custom\x20proof\x20in\x20Wowok\x20reserved\x20range\x20—\x20NOT\x20recommended\x20(future\x20protocol\x20upgrades\x20may\x20reassign).','recommended':![]},{'id':'proof_custom_user','classification':'custom_user','proof_type_range':'>100','semantic':'User-defined\x20application-specific\x20proof\x20—\x20creator\x20documents\x20the\x20off-chain\x20verification\x20logic.','recommended':!![]}];export function getProofField(a){return PROOF_FIELDS['find'](b=>b['field']===a);}export function getProofFieldsCount(){return PROOF_FIELDS['length'];}export function getProofErrorByCode(a){return PROOF_ERROR_CODES['find'](b=>b['code']===a);}export function getProofErrorByValue(a){return PROOF_ERROR_CODES['find'](b=>b['value']===a);}export function getProofSceneByType(a){const b=typeof a==='string'?BigInt(a):BigInt(a);if(b===BigInt(WOWOK_WTS_PROOF_TYPE))return PROOF_SCENES['find'](c=>c['classification']==='wts');if(b>0x1n&&b<=0x64n)return PROOF_SCENES['find'](c=>c['classification']==='custom_reserved');if(b>0x64n)return PROOF_SCENES['find'](c=>c['classification']==='custom_user');return undefined;}export function inferProofSceneFromIntent(a){const b=a['toLowerCase']();if(/(wts|will.?to.?sign|server.?signed|attestation|merkle|kyc|timestamp)/['test'](b))return PROOF_SCENES['find'](c=>c['classification']==='wts');if(/(reserved|wowok.?defined|protocol.?reserved)/['test'](b))return PROOF_SCENES['find'](c=>c['classification']==='custom_reserved');if(/(custom|user.?defined|application.?specific)/['test'](b))return PROOF_SCENES['find'](c=>c['classification']==='custom_user');return undefined;}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { type ProofScene } from "./proof-ledger.js";
|
|
2
|
-
export declare const PROOF_PUZZLE_VERSION = "1.0.0";
|
|
3
|
-
export type ProofPuzzleDimension = "intent" | "fields";
|
|
4
|
-
export interface ProofIntentPuzzle {
|
|
5
|
-
scene?: ProofScene;
|
|
6
|
-
proof_type?: number;
|
|
7
|
-
}
|
|
8
|
-
export interface ProofFieldState {
|
|
9
|
-
field: string;
|
|
10
|
-
present: boolean;
|
|
11
|
-
required: boolean;
|
|
12
|
-
}
|
|
13
|
-
export interface ProofPuzzle {
|
|
14
|
-
intent: ProofIntentPuzzle;
|
|
15
|
-
fields: ProofFieldState[];
|
|
16
|
-
}
|
|
17
|
-
export interface ProofPuzzleCompleteness {
|
|
18
|
-
complete: boolean;
|
|
19
|
-
missing_required: string[];
|
|
20
|
-
missing_optional: string[];
|
|
21
|
-
reason: string;
|
|
22
|
-
}
|
|
23
|
-
export interface InitProofPuzzleInput {
|
|
24
|
-
intent: string;
|
|
25
|
-
proof_type?: number;
|
|
26
|
-
description?: string;
|
|
27
|
-
proof?: string;
|
|
28
|
-
server_pubkey?: string;
|
|
29
|
-
server_signature?: string;
|
|
30
|
-
about_address?: string | null;
|
|
31
|
-
item_count?: number | bigint | string | null;
|
|
32
|
-
}
|
|
33
|
-
export declare function initProofPuzzleFromIntent(input: InitProofPuzzleInput): ProofPuzzle;
|
|
34
|
-
export declare function checkProofPuzzleCompleteness(puzzle: ProofPuzzle): ProofPuzzleCompleteness;
|
|
35
|
-
export declare function generateProofConfirmationText(puzzle: ProofPuzzle): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{WOWOK_WTS_PROOF_TYPE}from'@wowok/wowok';import{PROOF_FIELDS,inferProofSceneFromIntent}from'./proof-ledger.js';export const PROOF_PUZZLE_VERSION='1.0.0';export function initProofPuzzleFromIntent(a){const b=inferProofSceneFromIntent(a['intent']),c=a['proof_type']??(b?.['classification']==='wts'?WOWOK_WTS_PROOF_TYPE:undefined),d={'description':!!a['description'],'proof':!!a['proof'],'server_pubkey':!!a['server_pubkey'],'server_signature':!!a['server_signature'],'proof_type':c!==undefined,'about_address':a['about_address']!=null&&a['about_address']!=='','item_count':a['item_count']!=null&&a['item_count']!==''},e=PROOF_FIELDS['filter'](g=>g['field']in d||g['field']==='signer'||g['field']==='time')['map'](g=>{if(g['field']==='signer'||g['field']==='time')return{'field':g['field'],'present':!![],'required':g['required']};return{'field':g['field'],'present':!!d[g['field']],'required':g['required']};});return{'intent':{'scene':b,'proof_type':c},'fields':e};}export function checkProofPuzzleCompleteness(a){const b=a['fields']['filter'](e=>e['required']&&!e['present'])['map'](e=>e['field']),c=a['fields']['filter'](e=>!e['required']&&!e['present'])['map'](e=>e['field']),d=b['length']===0x0;return{'complete':d,'missing_required':b,'missing_optional':c,'reason':d?'All\x20required\x20proof\x20fields\x20present.':'Missing\x20required:\x20'+b['join'](',\x20')+'.'};}export function generateProofConfirmationText(a){const b=checkProofPuzzleCompleteness(a),d=a['intent']['scene'],e=d?'Scene:\x20'+d['id']+'\x20(proof_type\x20'+d['proof_type_range']+')':'Scene:\x20not\x20classified\x20(provide\x20more\x20intent)';return[e,b['reason']]['join']('\x0a');}
|