@colin999n9/gworld-agent 0.1.0-alpha.1 → 0.1.0-alpha.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/README.md +6 -4
- package/dist/client-installer.js +1 -1
- package/dist/data/indexer-client.js +7 -1
- package/dist/data/indexer-client.js.map +1 -1
- package/dist/domain.d.ts +7 -2
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/mcp/server.js +3 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/runner/legal-actions.d.ts +6 -4
- package/dist/runner/legal-actions.js +13 -5
- package/dist/runner/legal-actions.js.map +1 -1
- package/dist/runner/observation.d.ts +2 -1
- package/dist/runner/observation.js +32 -12
- package/dist/runner/observation.js.map +1 -1
- package/dist/runner/policy.d.ts +2 -2
- package/dist/runner/policy.js.map +1 -1
- package/dist/runner/runtime.d.ts +2 -0
- package/dist/runner/runtime.js +60 -10
- package/dist/runner/runtime.js.map +1 -1
- package/dist/runner/transaction-executor.d.ts +7 -1
- package/dist/runner/transaction-executor.js +28 -3
- package/dist/runner/transaction-executor.js.map +1 -1
- package/package.json +1 -1
- package/skill/gworld/SKILL.md +5 -5
- package/skill/gworld/references/troubleshooting.md +4 -3
package/README.md
CHANGED
|
@@ -10,9 +10,9 @@ Local-first GWorld Agent Runner, stdio MCP server, and installable Agent Skill.
|
|
|
10
10
|
- Interactive users choose a recovery password they know. macOS Keychain can cache it for normal Runner unlocks; headless hosts can use a `0600` password file.
|
|
11
11
|
- MCP never receives a private key, password, arbitrary calldata, raw transaction, contract function, or unrestricted RPC method.
|
|
12
12
|
- Private-key import/export is deliberately local CLI-only. Export requires an interactive confirmation bound to the wallet address and is audit-recorded.
|
|
13
|
-
- Writes require a fresh short-lived legal `actionId`, policy validation, `eth_call` simulation, signing, receipt confirmation, Indexer confirmation
|
|
13
|
+
- Writes require a fresh short-lived legal `actionId`, fresh RPC Agent state, policy validation, `eth_call` simulation, signing, receipt confirmation, and an audit event. Post-receipt Indexer confirmation is reported separately and never changes a confirmed transaction into a failure.
|
|
14
14
|
- A per-profile OS file lock prevents separate CLI/MCP processes from signing concurrently; a crashed process lock is recovered only after its PID is no longer alive.
|
|
15
|
-
-
|
|
15
|
+
- Indexer snapshots are accepted through the network's configured confirmation depth plus one in-flight block. When the Indexer is materially lagging, rebuilding, unavailable, or internally inconsistent, the Runner omits Indexer-discovered map/market actions but still permits contract-readable recovery actions such as check-in and fragment continuation. Every simulation and execution revalidates fresh RPC state and contract preconditions.
|
|
16
16
|
- Default policy permits only low-risk, zero-G-spend actions and at most three transactions per round.
|
|
17
17
|
|
|
18
18
|
Use a new low-balance wallet for GWorld. Never import a primary wallet.
|
|
@@ -22,11 +22,13 @@ Use a new low-balance wallet for GWorld. Never import a primary wallet.
|
|
|
22
22
|
After the package is published:
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
npx @colin999n9/gworld-agent
|
|
25
|
+
npx @colin999n9/gworld-agent join --network testnet --client auto
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
The command creates/unlocks the local encrypted wallet, completes the Agent spawn lifecycle, installs the GWorld Skill, and registers the pinned MCP command with detected Codex and/or Claude clients.
|
|
29
29
|
|
|
30
|
+
The command resolves npm's `latest` version. Before opening hosted-network onboarding, the release owner must confirm that `latest` includes the local-signer submission fix. An earlier preview incorrectly preserved the simulated JSON-RPC account, so a remote RPC that does not custody the player wallet could not sign the transaction.
|
|
31
|
+
|
|
30
32
|
`--client` selects where the local integration is installed; it does not select a wallet, AI model, browser, or in-game Agent:
|
|
31
33
|
|
|
32
34
|
- `--client auto`: detect Codex CLI and Claude CLI on `PATH`, install the shared Skill, and register the pinned `gworld` MCP command with every detected client.
|
|
@@ -113,7 +115,7 @@ Read tools: `gworld_status`, `gworld_observe`, `gworld_get_legal_actions`, `gwor
|
|
|
113
115
|
|
|
114
116
|
Controlled writes: `gworld_join`, `gworld_simulate_action`, `gworld_execute_action`, `gworld_set_policy`, `gworld_start`, and `gworld_pause`.
|
|
115
117
|
|
|
116
|
-
External agents
|
|
118
|
+
External agents should call status → policy → observe → legal actions. If indexed observation is temporarily unavailable, report the degraded view and still call legal actions: the Runner will return only RPC-backed recovery actions. Execution accepts only the returned UUID `actionId`; after any state change or stale/expired error, request a new action list.
|
|
117
119
|
|
|
118
120
|
## Verification
|
|
119
121
|
|
package/dist/client-installer.js
CHANGED
|
@@ -28,7 +28,7 @@ export class ClientInstaller {
|
|
|
28
28
|
installMcp(client, profile) {
|
|
29
29
|
if (this.run(client, ['mcp', 'get', 'gworld']).status === 0)
|
|
30
30
|
return 'already_configured';
|
|
31
|
-
const launch = ['npx', '--yes', '@colin999n9/gworld-agent@0.1.0-alpha.
|
|
31
|
+
const launch = ['npx', '--yes', '@colin999n9/gworld-agent@0.1.0-alpha.3', 'mcp', '--profile', profile];
|
|
32
32
|
const args = client === 'codex'
|
|
33
33
|
? ['mcp', 'add', 'gworld', '--', ...launch]
|
|
34
34
|
: ['mcp', 'add', '--scope', 'user', 'gworld', '--', ...launch];
|
|
@@ -76,7 +76,13 @@ export class AgentIndexerClient {
|
|
|
76
76
|
throw new AgentError('agent_missing', `Indexer resource not found: ${url.pathname}`);
|
|
77
77
|
if (!response.ok)
|
|
78
78
|
throw new AgentError('indexer_unavailable', `Indexer returned HTTP ${response.status}: ${url.pathname}`);
|
|
79
|
-
|
|
79
|
+
let envelope;
|
|
80
|
+
try {
|
|
81
|
+
envelope = (await response.json());
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
throw new AgentError('indexer_unavailable', `Indexer returned invalid JSON: ${url.pathname}`, error);
|
|
85
|
+
}
|
|
80
86
|
if (!envelope || !('data' in envelope) || !/^(0|[1-9]\d*)$/.test(String(envelope.asOfBlock))) {
|
|
81
87
|
throw new AgentError('indexer_unavailable', `Indexer returned an invalid envelope: ${url.pathname}`);
|
|
82
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer-client.js","sourceRoot":"","sources":["../../src/data/indexer-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"indexer-client.js","sourceRoot":"","sources":["../../src/data/indexer-client.ts"],"names":[],"mappings":"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"}
|
package/dist/domain.d.ts
CHANGED
|
@@ -97,13 +97,18 @@ export type IndexerSync = {
|
|
|
97
97
|
finalizedBlock: bigint;
|
|
98
98
|
chainHeadBlock: bigint;
|
|
99
99
|
};
|
|
100
|
-
export type
|
|
100
|
+
export type ActionObservation = {
|
|
101
101
|
chainId: number;
|
|
102
102
|
wallet: Address;
|
|
103
103
|
round: bigint;
|
|
104
|
+
walletGBalance: bigint;
|
|
105
|
+
agent: AgentActionState & {
|
|
106
|
+
id: bigint;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
export type Observation = Omit<ActionObservation, 'agent'> & {
|
|
104
110
|
asOfBlock: bigint;
|
|
105
111
|
sync: IndexerSync;
|
|
106
|
-
walletGBalance: bigint;
|
|
107
112
|
agent: AgentSummary & AgentActionState;
|
|
108
113
|
agents: AgentSummary[];
|
|
109
114
|
tiles: TileView[];
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type AgentErrorCode = 'config_invalid' | 'wallet_locked' | 'wallet_missing' | 'wallet_corrupt' | 'wrong_chain' | 'rpc_unavailable' | 'indexer_unavailable' | 'indexer_lagging' | 'agent_missing' | 'agent_pending' | 'not_agent_owner' | 'action_not_found' | 'action_expired' | 'action_stale' | 'policy_denied' | 'simulation_failed' | 'transaction_reverted' | 'runner_busy' | 'runner_paused' | 'unsupported' | 'unknown';
|
|
1
|
+
export type AgentErrorCode = 'config_invalid' | 'wallet_locked' | 'wallet_missing' | 'wallet_corrupt' | 'wrong_chain' | 'rpc_unavailable' | 'indexer_unavailable' | 'indexer_lagging' | 'agent_missing' | 'agent_pending' | 'not_agent_owner' | 'action_not_found' | 'action_expired' | 'action_stale' | 'policy_denied' | 'simulation_failed' | 'transaction_failed' | 'transaction_reverted' | 'runner_busy' | 'runner_paused' | 'unsupported' | 'unknown';
|
|
2
2
|
export declare class AgentError extends Error {
|
|
3
3
|
readonly code: AgentErrorCode;
|
|
4
4
|
readonly cause?: unknown;
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,CAAiB;IACrB,KAAK,CAAW;IAEzB,YAAY,IAAoB,EAAE,OAAe,EAAE,KAAe;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACrF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;AACvE,CAAC"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -38,7 +38,7 @@ function safeTool(handler) {
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
export function createGWorldMcpServer(runtime) {
|
|
41
|
-
const server = new McpServer({ name: 'gworld-agent', version: '0.1.0-alpha.
|
|
41
|
+
const server = new McpServer({ name: 'gworld-agent', version: '0.1.0-alpha.3' }, { instructions: 'Check gworld_status, read the policy, observe, list legal actions, then simulate and execute only by actionId. Never request wallet secrets or arbitrary calldata.' });
|
|
42
42
|
server.registerTool('gworld_status', {
|
|
43
43
|
description: 'Read the local GWorld Runner, wallet address, selected Agent, chain, and sync status.',
|
|
44
44
|
inputSchema: z.object({}), annotations: readOnly,
|
|
@@ -48,7 +48,7 @@ export function createGWorldMcpServer(runtime) {
|
|
|
48
48
|
inputSchema: z.object({}), annotations: readOnly,
|
|
49
49
|
}, safeTool(() => runtime.observe()));
|
|
50
50
|
server.registerTool('gworld_get_legal_actions', {
|
|
51
|
-
description: 'Return short-lived legal action tickets. Only these actionIds may be simulated or executed.',
|
|
51
|
+
description: 'Return short-lived legal action tickets. If indexed discovery is unhealthy, only RPC-backed recovery actions are returned. Only these actionIds may be simulated or executed.',
|
|
52
52
|
inputSchema: z.object({}), annotations: readOnly,
|
|
53
53
|
}, safeTool(async () => ({ actions: await runtime.getLegalActions() })));
|
|
54
54
|
server.registerTool('gworld_get_activity', {
|
|
@@ -82,7 +82,7 @@ export function createGWorldMcpServer(runtime) {
|
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
server.registerTool('gworld_execute_action', {
|
|
85
|
-
description: 'Revalidate and execute a short-lived legal actionId through policy, simulation, signing, receipt
|
|
85
|
+
description: 'Revalidate fresh RPC state and execute a short-lived legal actionId through policy, simulation, signing, and receipt; report indexing separately.',
|
|
86
86
|
inputSchema: z.object({ actionId: z.string().uuid() }), annotations: writeChain,
|
|
87
87
|
}, async ({ actionId }) => {
|
|
88
88
|
try {
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,eAAe;IACf,gBAAgB;IAChB,0BAA0B;IAC1B,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,wBAAwB;IACxB,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,cAAc;CACN,CAAC;AAEX,MAAM,QAAQ,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAW,CAAC;AACpH,MAAM,UAAU,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAW,CAAC;AACvH,MAAM,UAAU,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAW,CAAC;AAExH,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAA4B,CAAC;IACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC;AAC7G,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,QAAQ,CAAI,OAAyB;IAC5C,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC;YAAC,OAAO,OAAO,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAqB;IACzD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,EAClD,EAAE,YAAY,EAAE,oKAAoK,EAAE,CACvL,CAAC;IAEF,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;QACnC,WAAW,EAAE,uFAAuF;QACpG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ;KACjD,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAErC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;QACpC,WAAW,EAAE,2FAA2F;QACxG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ;KACjD,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtC,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE;QAC9C,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GameAction, LegalAction, Observation, Risk, RunnerPolicy } from '../domain.js';
|
|
1
|
+
import type { ActionObservation, GameAction, LegalAction, Observation, Risk, RunnerPolicy } from '../domain.js';
|
|
2
2
|
type Candidate = {
|
|
3
3
|
action: GameAction;
|
|
4
4
|
risk: Risk;
|
|
@@ -9,14 +9,16 @@ export declare class ActionCatalog {
|
|
|
9
9
|
private readonly now;
|
|
10
10
|
private readonly tickets;
|
|
11
11
|
constructor(ttlMs: number, now?: () => number);
|
|
12
|
-
issue(observation:
|
|
13
|
-
resolve(actionId: string, observation:
|
|
14
|
-
consume(actionId: string, observation:
|
|
12
|
+
issue(observation: ActionObservation, candidates: Candidate[]): LegalAction[];
|
|
13
|
+
resolve(actionId: string, observation: ActionObservation): LegalAction;
|
|
14
|
+
consume(actionId: string, observation: ActionObservation): LegalAction;
|
|
15
15
|
private prune;
|
|
16
16
|
}
|
|
17
17
|
export declare class LegalActionPlanner {
|
|
18
18
|
private readonly catalog;
|
|
19
19
|
constructor(catalog: ActionCatalog);
|
|
20
|
+
private strongCandidates;
|
|
21
|
+
planStrong(observation: ActionObservation, policy: RunnerPolicy): LegalAction[];
|
|
20
22
|
plan(observation: Observation, policy: RunnerPolicy): LegalAction[];
|
|
21
23
|
}
|
|
22
24
|
export {};
|
|
@@ -73,23 +73,31 @@ export class LegalActionPlanner {
|
|
|
73
73
|
constructor(catalog) {
|
|
74
74
|
this.catalog = catalog;
|
|
75
75
|
}
|
|
76
|
-
|
|
76
|
+
strongCandidates(observation) {
|
|
77
77
|
const candidates = [];
|
|
78
78
|
const agent = observation.agent;
|
|
79
|
-
const ap = availableAp(observation, policy);
|
|
80
79
|
const checkinReady = agent.lastCheckinAt === 0n
|
|
81
80
|
|| agent.blockTimestamp >= agent.lastCheckinAt + protocolConfig.checkinCooldownSeconds;
|
|
82
81
|
if (checkinReady && agent.apBalanceCap < protocolConfig.apCheckinCap) {
|
|
83
82
|
candidates.push({ action: { kind: 'checkin', agentId: agent.id }, risk: 'low', reason: 'Check-in is ready and AP is below the faucet threshold.' });
|
|
84
83
|
}
|
|
85
|
-
|
|
86
|
-
if (fragment) {
|
|
84
|
+
if (agent.fragment.jobId !== 0n) {
|
|
87
85
|
candidates.push({
|
|
88
86
|
action: { kind: 'continueFragmentResolution', agentId: agent.id, maxSteps: protocolConfig.maxFragmentBatchSteps },
|
|
89
87
|
risk: 'low',
|
|
90
|
-
reason: `Fragment resolution job ${fragment.jobId} is locking world actions.`,
|
|
88
|
+
reason: `Fragment resolution job ${agent.fragment.jobId} is locking world actions.`,
|
|
91
89
|
});
|
|
92
90
|
}
|
|
91
|
+
return candidates;
|
|
92
|
+
}
|
|
93
|
+
planStrong(observation, policy) {
|
|
94
|
+
return this.catalog.issue(observation, this.strongCandidates(observation).filter((candidate) => policy.allowedActions.includes(candidate.action.kind)));
|
|
95
|
+
}
|
|
96
|
+
plan(observation, policy) {
|
|
97
|
+
const candidates = this.strongCandidates(observation);
|
|
98
|
+
const agent = observation.agent;
|
|
99
|
+
const ap = availableAp(observation, policy);
|
|
100
|
+
const fragment = agent.fragment.jobId !== 0n;
|
|
93
101
|
if (!fragment && agent.position) {
|
|
94
102
|
const nearby = observation.tiles.filter((tile) => tile.activated && adjacent(tile.coord, agent.position));
|
|
95
103
|
for (const tile of nearby) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legal-actions.js","sourceRoot":"","sources":["../../src/runner/legal-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,SAAS,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"legal-actions.js","sourceRoot":"","sources":["../../src/runner/legal-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Address, Observation } from '../domain.js';
|
|
1
|
+
import type { ActionObservation, Address, Observation } from '../domain.js';
|
|
2
2
|
import type { AgentIndexerClient } from '../data/indexer-client.js';
|
|
3
3
|
import type { AgentRpcReader } from '../data/rpc-reader.js';
|
|
4
4
|
export declare class ObservationService {
|
|
@@ -8,5 +8,6 @@ export declare class ObservationService {
|
|
|
8
8
|
private readonly indexer;
|
|
9
9
|
private readonly rpc;
|
|
10
10
|
constructor(chainId: number, wallet: Address, radius: number, indexer: AgentIndexerClient, rpc: AgentRpcReader);
|
|
11
|
+
observeStrong(agentId: bigint): Promise<ActionObservation>;
|
|
11
12
|
observe(agentId: bigint): Promise<Observation>;
|
|
12
13
|
}
|
|
@@ -12,30 +12,50 @@ export class ObservationService {
|
|
|
12
12
|
this.indexer = indexer;
|
|
13
13
|
this.rpc = rpc;
|
|
14
14
|
}
|
|
15
|
-
async
|
|
15
|
+
async observeStrong(agentId) {
|
|
16
16
|
await this.rpc.assertNetwork();
|
|
17
|
-
const [
|
|
18
|
-
|
|
17
|
+
const [strong, asset] = await Promise.all([
|
|
18
|
+
this.rpc.agent(agentId),
|
|
19
|
+
this.rpc.walletAsset(this.wallet),
|
|
20
|
+
]);
|
|
21
|
+
if (strong.owner !== this.wallet) {
|
|
19
22
|
throw new AgentError('not_agent_owner', `Wallet ${this.wallet} does not own Agent ${agentId}`);
|
|
20
23
|
}
|
|
21
24
|
if (!strong.active || !strong.position)
|
|
22
25
|
throw new AgentError('agent_pending', `Agent ${agentId} is not active`);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.
|
|
26
|
+
return {
|
|
27
|
+
chainId: this.chainId,
|
|
28
|
+
wallet: this.wallet,
|
|
29
|
+
round: strong.currentRound,
|
|
30
|
+
walletGBalance: asset.balance,
|
|
31
|
+
agent: { ...strong, id: agentId },
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async observe(agentId) {
|
|
35
|
+
const [indexedAgent, strong] = await Promise.all([
|
|
36
|
+
this.indexer.getAgent(agentId),
|
|
37
|
+
this.observeStrong(agentId),
|
|
26
38
|
]);
|
|
39
|
+
if (indexedAgent.owner !== this.wallet) {
|
|
40
|
+
throw new AgentError('not_agent_owner', `Wallet ${this.wallet} does not own Agent ${agentId}`);
|
|
41
|
+
}
|
|
42
|
+
const world = await this.indexer.world(strong.agent.position, this.radius);
|
|
27
43
|
const [markets, marketRequest] = await Promise.all([
|
|
28
44
|
this.indexer.markets(this.wallet),
|
|
29
|
-
this.indexer.marketRequest(strong.
|
|
45
|
+
this.indexer.marketRequest(strong.round),
|
|
30
46
|
]);
|
|
31
47
|
return {
|
|
32
|
-
|
|
33
|
-
wallet: this.wallet,
|
|
34
|
-
round: strong.currentRound,
|
|
48
|
+
...strong,
|
|
35
49
|
asOfBlock: world.asOfBlock,
|
|
36
50
|
sync: world.sync,
|
|
37
|
-
|
|
38
|
-
|
|
51
|
+
agent: {
|
|
52
|
+
...indexedAgent,
|
|
53
|
+
...strong.agent,
|
|
54
|
+
id: agentId,
|
|
55
|
+
owner: this.wallet,
|
|
56
|
+
lifecycle: 'active',
|
|
57
|
+
position: strong.agent.position,
|
|
58
|
+
},
|
|
39
59
|
agents: world.agents,
|
|
40
60
|
tiles: world.tiles,
|
|
41
61
|
fragments: world.fragments,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/runner/observation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,MAAM,OAAO,kBAAkB;IAEV,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,GAAG;IALtB,YACmB,OAAe,EACf,MAAe,EACf,MAAc,EACd,OAA2B,EAC3B,GAAmB;uBAJnB,OAAO;sBACP,MAAM;sBACN,MAAM;uBACN,OAAO;mBACP,GAAG;IACnB,CAAC;IAEJ,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/runner/observation.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/policy.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ActionObservation, LegalAction, RunnerPolicy } from '../domain.js';
|
|
2
2
|
import type { AuditLog } from './audit-store.js';
|
|
3
3
|
export declare class PolicyEngine {
|
|
4
4
|
private readonly policy;
|
|
@@ -6,5 +6,5 @@ export declare class PolicyEngine {
|
|
|
6
6
|
private readonly now;
|
|
7
7
|
constructor(policy: RunnerPolicy, audit: AuditLog, now?: () => Date);
|
|
8
8
|
current(): RunnerPolicy;
|
|
9
|
-
assertAllowed(ticket: LegalAction, observation:
|
|
9
|
+
assertAllowed(ticket: LegalAction, observation: ActionObservation, automatic?: boolean): Promise<void>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/runner/policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,UAAU,GAAyB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAExE,SAAS,SAAS,CAAC,MAAkB;IACnC,OAAO,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,MAAM,CAAC,MAAkB;IAChC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAO,YAAY;IAEJ,MAAM;IACN,KAAK;IACL,GAAG;IAHtB,YACmB,MAAoB,EACpB,KAAe,EACf,GAAG,GAAe,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;sBAFlC,MAAM;qBACN,KAAK;mBACL,GAAG;IACnB,CAAC;IAEJ,OAAO;QACL,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/runner/policy.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/runtime.d.ts
CHANGED
|
@@ -50,6 +50,7 @@ export declare class AgentRuntime {
|
|
|
50
50
|
private consecutiveLoopFailures;
|
|
51
51
|
constructor(config: AgentConfig, wallet: Address, indexer: AgentIndexerClient, rpc: AgentRpcReader, executor: TransactionExecutor, audit: AuditLog, state?: RuntimeStateStore, persistConfig?: (config: AgentConfig) => Promise<void>, sleep?: (milliseconds: number) => Promise<void>);
|
|
52
52
|
status(): Promise<RunnerStatus>;
|
|
53
|
+
private indexerStatusOrUndefined;
|
|
53
54
|
private selectAgent;
|
|
54
55
|
private waitForBlock;
|
|
55
56
|
join(): Promise<JoinResult>;
|
|
@@ -57,6 +58,7 @@ export declare class AgentRuntime {
|
|
|
57
58
|
observe(): Promise<Observation>;
|
|
58
59
|
getLegalActions(): Promise<LegalAction[]>;
|
|
59
60
|
private assertIndexerUsable;
|
|
61
|
+
private isIndexerDependencyError;
|
|
60
62
|
simulateAction(actionId: string): Promise<{
|
|
61
63
|
action: LegalAction;
|
|
62
64
|
steps: string[];
|
package/dist/runner/runtime.js
CHANGED
|
@@ -45,6 +45,25 @@ export class AgentRuntime {
|
|
|
45
45
|
async status() {
|
|
46
46
|
await this.rpc.assertNetwork();
|
|
47
47
|
const block = await this.rpc.block();
|
|
48
|
+
if (this.config.runner.agentId != null) {
|
|
49
|
+
const agentId = this.config.runner.agentId;
|
|
50
|
+
const strong = await this.rpc.agent(agentId);
|
|
51
|
+
if (strong.owner !== this.wallet) {
|
|
52
|
+
throw new AgentError('not_agent_owner', `Wallet ${this.wallet} does not own Agent ${agentId}`);
|
|
53
|
+
}
|
|
54
|
+
if (!strong.active) {
|
|
55
|
+
return { state: 'pending', chainId: this.config.network.chainId, wallet: this.wallet, agentId, blockNumber: block.number };
|
|
56
|
+
}
|
|
57
|
+
const paused = await this.state.paused();
|
|
58
|
+
return {
|
|
59
|
+
state: this.loop && !paused ? 'running' : paused ? 'paused' : 'ready',
|
|
60
|
+
chainId: this.config.network.chainId,
|
|
61
|
+
wallet: this.wallet,
|
|
62
|
+
agentId,
|
|
63
|
+
blockNumber: block.number,
|
|
64
|
+
sync: await this.indexerStatusOrUndefined(),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
48
67
|
const agents = await this.indexer.walletAgents(this.wallet);
|
|
49
68
|
const selected = this.selectAgent(agents);
|
|
50
69
|
if (!selected)
|
|
@@ -61,6 +80,16 @@ export class AgentRuntime {
|
|
|
61
80
|
sync: await this.indexer.status(),
|
|
62
81
|
};
|
|
63
82
|
}
|
|
83
|
+
async indexerStatusOrUndefined() {
|
|
84
|
+
try {
|
|
85
|
+
return await this.indexer.status();
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
if (!this.isIndexerDependencyError(error))
|
|
89
|
+
throw error;
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
64
93
|
selectAgent(agents) {
|
|
65
94
|
if (this.config.runner.agentId != null)
|
|
66
95
|
return agents.find((agent) => agent.id === this.config.runner.agentId);
|
|
@@ -106,7 +135,7 @@ export class AgentRuntime {
|
|
|
106
135
|
}
|
|
107
136
|
await this.persistConfig(this.config);
|
|
108
137
|
await this.audit.record({ type: 'lifecycle', action: undefined, status: 'joined', detail: { agentId: selected.id.toString() } });
|
|
109
|
-
const observed = await this.observation.
|
|
138
|
+
const observed = await this.observation.observeStrong(selected.id);
|
|
110
139
|
return { wallet: this.wallet, agentId: selected.id, lifecycle: 'active', position: observed.agent.position, transactionHashes: hashes };
|
|
111
140
|
}
|
|
112
141
|
requireAgentId() {
|
|
@@ -118,9 +147,27 @@ export class AgentRuntime {
|
|
|
118
147
|
return this.observation.observe(this.requireAgentId());
|
|
119
148
|
}
|
|
120
149
|
async getLegalActions() {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
150
|
+
let observation;
|
|
151
|
+
let actions;
|
|
152
|
+
try {
|
|
153
|
+
const indexed = await this.observe();
|
|
154
|
+
observation = indexed;
|
|
155
|
+
try {
|
|
156
|
+
this.assertIndexerUsable(indexed);
|
|
157
|
+
actions = this.planner.plan(indexed, this.config.policy);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
if (!this.isIndexerDependencyError(error))
|
|
161
|
+
throw error;
|
|
162
|
+
actions = this.planner.planStrong(indexed, this.config.policy);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
if (!this.isIndexerDependencyError(error))
|
|
167
|
+
throw error;
|
|
168
|
+
observation = await this.observation.observeStrong(this.requireAgentId());
|
|
169
|
+
actions = this.planner.planStrong(observation, this.config.policy);
|
|
170
|
+
}
|
|
124
171
|
const allowed = [];
|
|
125
172
|
for (const action of actions) {
|
|
126
173
|
try {
|
|
@@ -141,14 +188,18 @@ export class AgentRuntime {
|
|
|
141
188
|
const ahead = observation.sync.indexedBlock > observation.sync.chainHeadBlock
|
|
142
189
|
? observation.sync.indexedBlock - observation.sync.chainHeadBlock
|
|
143
190
|
: 0n;
|
|
144
|
-
|
|
191
|
+
const toleratedLag = BigInt(this.config.network.confirmations) + 1n;
|
|
192
|
+
if (observation.sync.state === 'rebuilding' || lag > toleratedLag || ahead > 0n) {
|
|
145
193
|
const distance = ahead > 0n ? `${ahead} block(s) ahead` : `${lag} block(s) behind`;
|
|
146
|
-
throw new AgentError('indexer_lagging', `Indexer is ${observation.sync.state} and ${distance};
|
|
194
|
+
throw new AgentError('indexer_lagging', `Indexer is ${observation.sync.state} and ${distance}; indexed action discovery is paused`);
|
|
147
195
|
}
|
|
148
196
|
}
|
|
197
|
+
isIndexerDependencyError(error) {
|
|
198
|
+
return error instanceof AgentError
|
|
199
|
+
&& (error.code === 'indexer_lagging' || error.code === 'indexer_unavailable' || error.code === 'agent_missing');
|
|
200
|
+
}
|
|
149
201
|
async simulateAction(actionId) {
|
|
150
|
-
const observation = await this.
|
|
151
|
-
this.assertIndexerUsable(observation);
|
|
202
|
+
const observation = await this.observation.observeStrong(this.requireAgentId());
|
|
152
203
|
const ticket = this.catalog.resolve(actionId, observation);
|
|
153
204
|
await this.policy.assertAllowed(ticket, observation);
|
|
154
205
|
const simulation = await this.executor.simulate(ticket.action);
|
|
@@ -156,8 +207,7 @@ export class AgentRuntime {
|
|
|
156
207
|
return { action: ticket, ...simulation };
|
|
157
208
|
}
|
|
158
209
|
async executeAction(actionId) {
|
|
159
|
-
const observation = await this.
|
|
160
|
-
this.assertIndexerUsable(observation);
|
|
210
|
+
const observation = await this.observation.observeStrong(this.requireAgentId());
|
|
161
211
|
const ticket = this.catalog.resolve(actionId, observation);
|
|
162
212
|
await this.policy.assertAllowed(ticket, observation);
|
|
163
213
|
this.catalog.consume(actionId, observation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runner/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runner/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,13 @@ export type ExecutorPublicClient = {
|
|
|
23
23
|
blockNumber: bigint;
|
|
24
24
|
}>;
|
|
25
25
|
};
|
|
26
|
+
type LocalSigner = {
|
|
27
|
+
address: Address;
|
|
28
|
+
type: 'local';
|
|
29
|
+
};
|
|
26
30
|
export type ExecutorWalletClient = {
|
|
27
|
-
|
|
31
|
+
account: LocalSigner;
|
|
32
|
+
writeContract(request: Record<string, unknown>): Promise<Hash>;
|
|
28
33
|
};
|
|
29
34
|
type LifecycleAction = {
|
|
30
35
|
kind: 'createAgent';
|
|
@@ -54,5 +59,6 @@ export declare class TransactionExecutor {
|
|
|
54
59
|
}>;
|
|
55
60
|
execute(action: ExecutableAction): Promise<TransactionResult>;
|
|
56
61
|
private executeLocked;
|
|
62
|
+
private withLocalSigner;
|
|
57
63
|
}
|
|
58
64
|
export {};
|
|
@@ -92,9 +92,23 @@ export class TransactionExecutor {
|
|
|
92
92
|
catch (error) {
|
|
93
93
|
throw new AgentError('simulation_failed', `Simulation failed at ${step.label}`, error);
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
let hash;
|
|
96
|
+
try {
|
|
97
|
+
hash = await this.walletClient.writeContract(this.withLocalSigner(request));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
if (error instanceof AgentError)
|
|
101
|
+
throw error;
|
|
102
|
+
throw new AgentError('transaction_failed', `Transaction submission failed at ${step.label}`, error);
|
|
103
|
+
}
|
|
96
104
|
hashes.push(hash);
|
|
97
|
-
|
|
105
|
+
let receipt;
|
|
106
|
+
try {
|
|
107
|
+
receipt = await this.publicClient.waitForTransactionReceipt({ hash, confirmations: this.confirmations });
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
throw new AgentError('transaction_failed', `Transaction confirmation failed at ${step.label}`, error);
|
|
111
|
+
}
|
|
98
112
|
if (receipt.status !== 'success')
|
|
99
113
|
throw new AgentError('transaction_reverted', `Transaction reverted at ${step.label}`);
|
|
100
114
|
blockNumber = receipt.blockNumber;
|
|
@@ -104,11 +118,22 @@ export class TransactionExecutor {
|
|
|
104
118
|
await this.indexer.waitForBlock(blockNumber, this.indexingTimeoutMs);
|
|
105
119
|
}
|
|
106
120
|
catch (error) {
|
|
107
|
-
if (!(error instanceof AgentError)
|
|
121
|
+
if (!(error instanceof AgentError)
|
|
122
|
+
|| !['indexer_lagging', 'indexer_unavailable', 'agent_missing'].includes(error.code))
|
|
108
123
|
throw error;
|
|
109
124
|
indexing = 'lagging';
|
|
110
125
|
}
|
|
111
126
|
return { action: action.kind, hashes, blockNumber, indexing };
|
|
112
127
|
}
|
|
128
|
+
withLocalSigner(request) {
|
|
129
|
+
if (!request || typeof request !== 'object' || Array.isArray(request)) {
|
|
130
|
+
throw new AgentError('simulation_failed', 'Simulation returned an invalid transaction request');
|
|
131
|
+
}
|
|
132
|
+
const signer = this.walletClient.account;
|
|
133
|
+
if (signer.type !== 'local' || signer.address.toLowerCase() !== this.wallet) {
|
|
134
|
+
throw new AgentError('config_invalid', 'Wallet client local signer does not match the configured profile wallet');
|
|
135
|
+
}
|
|
136
|
+
return { ...request, account: signer };
|
|
137
|
+
}
|
|
113
138
|
}
|
|
114
139
|
//# sourceMappingURL=transaction-executor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-executor.js","sourceRoot":"","sources":["../../src/runner/transaction-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-executor.js","sourceRoot":"","sources":["../../src/runner/transaction-executor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skill/gworld/SKILL.md
CHANGED
|
@@ -5,7 +5,7 @@ description: Operates a GWorld game Agent through the local policy-controlled Ru
|
|
|
5
5
|
|
|
6
6
|
# GWorld
|
|
7
7
|
|
|
8
|
-
Use the installed `gworld_*` MCP tools. The local Runner owns the wallet, validates policy, simulates transactions, signs, waits for receipts, and
|
|
8
|
+
Use the installed `gworld_*` MCP tools. The local Runner owns the wallet, validates policy, simulates transactions, signs, waits for receipts, and reports Indexer confirmation separately.
|
|
9
9
|
|
|
10
10
|
## Non-negotiable safety
|
|
11
11
|
|
|
@@ -21,8 +21,8 @@ Use the installed `gworld_*` MCP tools. The local Runner owns the wallet, valida
|
|
|
21
21
|
1. Call `gworld_status`.
|
|
22
22
|
2. If state is `not_joined`, explain that joining creates on-chain transactions, then call `gworld_join` when the user asked to join or play.
|
|
23
23
|
3. If state is `pending`, call `gworld_join` to resume the spawn lifecycle.
|
|
24
|
-
4. Call `gworld_get_policy`, then `gworld_observe` before recommending actions.
|
|
25
|
-
5. If the Indexer is
|
|
24
|
+
4. Call `gworld_get_policy`, then try `gworld_observe` before recommending actions.
|
|
25
|
+
5. If the Indexer is lagging, rebuilding, unavailable, or `gworld_observe` fails for an Indexer reason, report that the world view is degraded and continue to `gworld_get_legal_actions`. The Runner will omit Indexer-discovered map/market actions and return only contract-readable recovery actions.
|
|
26
26
|
|
|
27
27
|
## Play one turn
|
|
28
28
|
|
|
@@ -31,7 +31,7 @@ Use the installed `gworld_*` MCP tools. The local Runner owns the wallet, valida
|
|
|
31
31
|
3. Explain the chosen action, reason, maximum AP/G exposure, and risk.
|
|
32
32
|
4. Call `gworld_simulate_action` before a manual action when consequences are material or the user asked for a preview.
|
|
33
33
|
5. Call `gworld_execute_action` with only the selected `actionId`.
|
|
34
|
-
6. Report the transaction hash,
|
|
34
|
+
6. Report the transaction hash, receipt block, and `indexing` result. Try a fresh `gworld_observe`; if indexing is still lagging, report the confirmed receipt without resubmitting.
|
|
35
35
|
|
|
36
36
|
For exact rules and action meanings, read [references/rules.md](references/rules.md).
|
|
37
37
|
|
|
@@ -52,7 +52,7 @@ For exact rules and action meanings, read [references/rules.md](references/rules
|
|
|
52
52
|
## Recovery
|
|
53
53
|
|
|
54
54
|
- `action_stale`, `action_expired`, or `action_not_found`: observe, list legal actions again, and choose a new ID.
|
|
55
|
-
- `indexer_lagging`:
|
|
55
|
+
- `indexer_lagging`: indexed world/market actions are temporarily omitted. Use only action IDs the Runner still returns, and never resubmit a confirmed transaction merely because the Indexer has not caught up.
|
|
56
56
|
- `policy_denied`: explain the exact active limit; never bypass it.
|
|
57
57
|
- `wallet_locked`: tell the user to unlock/configure the local Runner outside chat. Never ask them to send credentials.
|
|
58
58
|
- For other failures, inspect `gworld_status` and `gworld_get_activity`, then follow [references/troubleshooting.md](references/troubleshooting.md).
|
|
@@ -4,19 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
1. Call `gworld_status` and confirm chain ID, wallet address, Agent ID, state, and sync.
|
|
6
6
|
2. Call `gworld_get_activity` and locate the latest simulation, transaction, or error.
|
|
7
|
-
3. Call `gworld_observe`
|
|
8
|
-
4. Re-plan with `gworld_get_legal_actions`;
|
|
7
|
+
3. Call `gworld_observe` when status shows a usable Agent. If the Indexer is unavailable, preserve the error as a degraded-world-view warning.
|
|
8
|
+
4. Re-plan with `gworld_get_legal_actions`; the Runner may still return RPC-backed recovery actions. Never retry an old action ID.
|
|
9
9
|
|
|
10
10
|
## Common states
|
|
11
11
|
|
|
12
12
|
- `not_joined`: use `gworld_join` only when joining is intended.
|
|
13
13
|
- `pending`: call `gworld_join` to continue randomness/spawn processing.
|
|
14
14
|
- `paused`: manual observe and action execution remain available; call `gworld_start` only for autonomous play.
|
|
15
|
-
- `lagging` or
|
|
15
|
+
- `lagging`, `rebuilding`, or missing sync details: indexed map/market discovery is unavailable. Use only legal action IDs still returned by the Runner; a confirmed receipt must not be blindly resubmitted.
|
|
16
16
|
|
|
17
17
|
## Errors
|
|
18
18
|
|
|
19
19
|
- Wallet errors are resolved in the user's local terminal or system keychain. Do not request the secret in chat.
|
|
20
20
|
- Network/chain mismatch requires correcting the local profile. Do not suggest switching contract addresses through MCP.
|
|
21
|
+
- `transaction_failed` means submission or receipt confirmation failed before a successful receipt was observed. Check status and activity, then retry only after confirming the wallet nonce did not advance; never blindly rebroadcast an old action.
|
|
21
22
|
- Ownership errors usually mean the profile wallet does not own the selected Agent. Confirm status and local profile rather than attempting another signer.
|
|
22
23
|
- Repeated loop failures: pause, inspect activity, fix the underlying sync/policy/network issue, then resume explicitly.
|