@your-world/cli 0.1.6 → 0.1.8
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/dist/adapters/claude-code-adapter.d.ts +16 -0
- package/dist/adapters/claude-code-adapter.js +106 -0
- package/dist/adapters/claude-code-adapter.js.map +1 -0
- package/dist/adapters/codex-adapter.d.ts +1 -0
- package/dist/adapters/codex-adapter.js +26 -12
- package/dist/adapters/codex-adapter.js.map +1 -1
- package/dist/adapters/external-agent-adapter.d.ts +4 -0
- package/dist/adapters/external-agent-adapter.js +13 -0
- package/dist/adapters/external-agent-adapter.js.map +1 -1
- package/dist/cli/action-submit.js +47 -14
- package/dist/cli/action-submit.js.map +1 -1
- package/dist/cli/agent-adapter-discovery.d.ts +10 -0
- package/dist/cli/agent-adapter-discovery.js +124 -0
- package/dist/cli/agent-adapter-discovery.js.map +1 -0
- package/dist/cli/bin.js +8 -3
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/observe.js +3 -2
- package/dist/cli/observe.js.map +1 -1
- package/dist/cli/play-goal.js +8 -0
- package/dist/cli/play-goal.js.map +1 -1
- package/dist/cli/play-init.d.ts +7 -0
- package/dist/cli/play-init.js +45 -9
- package/dist/cli/play-init.js.map +1 -1
- package/dist/cli/play-run.js +8 -3
- package/dist/cli/play-run.js.map +1 -1
- package/dist/cli/player-init.js +1 -1
- package/dist/cli/player-init.js.map +1 -1
- package/dist/cli/rules.js +3 -2
- package/dist/cli/rules.js.map +1 -1
- package/dist/cli/shared.js +29 -14
- package/dist/cli/shared.js.map +1 -1
- package/dist/config/credential-store.js +6 -3
- package/dist/config/credential-store.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/optional-prop.d.ts +1 -0
- package/dist/optional-prop.js +12 -0
- package/dist/optional-prop.js.map +1 -0
- package/dist/prompting/agents-template.js +1 -0
- package/dist/prompting/agents-template.js.map +1 -1
- package/dist/prompting/turn-summary.js +45 -3
- package/dist/prompting/turn-summary.js.map +1 -1
- package/dist/public-goal-sync.d.ts +3 -0
- package/dist/public-goal-sync.js +15 -0
- package/dist/public-goal-sync.js.map +1 -0
- package/dist/runtime/player-runtime.d.ts +2 -2
- package/dist/runtime/player-runtime.js +98 -39
- package/dist/runtime/player-runtime.js.map +1 -1
- package/dist/runtime/session-store.d.ts +2 -0
- package/dist/runtime/session-store.js +9 -2
- package/dist/runtime/session-store.js.map +1 -1
- package/dist/runtime/settlement-sync.js +80 -18
- package/dist/runtime/settlement-sync.js.map +1 -1
- package/dist/runtime/turn-orchestrator.js +3 -2
- package/dist/runtime/turn-orchestrator.js.map +1 -1
- package/dist/runtime/workspace-manager.js +8 -6
- package/dist/runtime/workspace-manager.js.map +1 -1
- package/dist/types.d.ts +59 -38
- package/dist/world-client.d.ts +6 -5
- package/dist/world-client.js +27 -15
- package/dist/world-client.js.map +1 -1
- package/package.json +4 -2
- package/dist/adapters/generic-command-adapter.d.ts +0 -12
- package/dist/adapters/generic-command-adapter.js +0 -58
- package/dist/adapters/generic-command-adapter.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SettlementSync = void 0;
|
|
4
|
+
const optional_prop_1 = require("../optional-prop");
|
|
4
5
|
class SettlementSync {
|
|
5
6
|
store;
|
|
6
7
|
client;
|
|
@@ -29,24 +30,28 @@ class SettlementSync {
|
|
|
29
30
|
}
|
|
30
31
|
exports.SettlementSync = SettlementSync;
|
|
31
32
|
function summarizeSettlement(verb, actionId, events) {
|
|
32
|
-
const rejected = events
|
|
33
|
+
const rejected = findEvent(events, 'action_rejected');
|
|
33
34
|
if (rejected) {
|
|
34
|
-
const code =
|
|
35
|
-
const reason =
|
|
35
|
+
const code = rejected.data.code;
|
|
36
|
+
const reason = rejected.data.reason;
|
|
36
37
|
return {
|
|
37
38
|
tick: rejected.tick,
|
|
38
39
|
actionId,
|
|
39
40
|
status: 'rejected',
|
|
40
41
|
verb,
|
|
41
42
|
summary: reason ? `${verb} rejected: ${reason}` : `${verb} rejected`,
|
|
42
|
-
code,
|
|
43
|
-
reason,
|
|
43
|
+
...(0, optional_prop_1.optionalProp)('code', code),
|
|
44
|
+
...(0, optional_prop_1.optionalProp)('reason', reason),
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
|
-
const accepted = events
|
|
47
|
+
const accepted = findEvent(events, 'action_accepted');
|
|
47
48
|
const detailEvent = events.find((event) => event.type !== 'action_accepted');
|
|
49
|
+
const tickSource = detailEvent ?? accepted ?? events[0];
|
|
50
|
+
if (!tickSource) {
|
|
51
|
+
throw new Error(`Settlement events for action ${actionId} are empty.`);
|
|
52
|
+
}
|
|
48
53
|
return {
|
|
49
|
-
tick:
|
|
54
|
+
tick: tickSource.tick,
|
|
50
55
|
actionId,
|
|
51
56
|
status: 'accepted',
|
|
52
57
|
verb,
|
|
@@ -55,26 +60,83 @@ function summarizeSettlement(verb, actionId, events) {
|
|
|
55
60
|
}
|
|
56
61
|
function summarizeAcceptedEvent(event) {
|
|
57
62
|
switch (event.type) {
|
|
63
|
+
case 'frame_placed': {
|
|
64
|
+
return `build frame placed for ${event.data.targetStructureTypeId}`;
|
|
65
|
+
}
|
|
66
|
+
case 'construction_completed': {
|
|
67
|
+
return `built ${event.data.targetStructureTypeId}`;
|
|
68
|
+
}
|
|
58
69
|
case 'move': {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
return x === undefined || y === undefined ? 'move succeeded' : `move to (${x}, ${y}) succeeded`;
|
|
70
|
+
const target = readMoveTarget(event.data);
|
|
71
|
+
return target ? `move to (${String(target.x)}, ${String(target.y)}) succeeded` : 'move succeeded';
|
|
62
72
|
}
|
|
63
73
|
case 'gather': {
|
|
64
|
-
|
|
65
|
-
const amount = typeof event.data.amount === 'number' ? event.data.amount : 1;
|
|
66
|
-
return `gathered ${amount} ${itemId}`;
|
|
74
|
+
return `gathered ${String(event.data.amount)} ${event.data.itemId}`;
|
|
67
75
|
}
|
|
68
76
|
case 'process': {
|
|
69
|
-
|
|
70
|
-
return `processed ${recipeId}`;
|
|
77
|
+
return `processed ${event.data.recipeId}`;
|
|
71
78
|
}
|
|
72
79
|
case 'build': {
|
|
73
|
-
|
|
74
|
-
return `built ${structureType}`;
|
|
80
|
+
return `built ${event.data.structureType}`;
|
|
75
81
|
}
|
|
76
|
-
|
|
82
|
+
case 'plant':
|
|
83
|
+
case 'harvest':
|
|
84
|
+
case 'consume':
|
|
85
|
+
case 'transfer':
|
|
86
|
+
case 'execute_contract':
|
|
87
|
+
case 'trade_create':
|
|
88
|
+
case 'trade_accept':
|
|
89
|
+
case 'trade_cancel':
|
|
90
|
+
case 'attack':
|
|
91
|
+
case 'agent_joined':
|
|
92
|
+
case 'action_accepted':
|
|
93
|
+
case 'action_ignored':
|
|
94
|
+
case 'action_rejected':
|
|
95
|
+
case 'tick_summary':
|
|
96
|
+
case 'project_supply_progress':
|
|
97
|
+
case 'project_supplied':
|
|
98
|
+
case 'construction_progress':
|
|
99
|
+
case 'project_expired':
|
|
100
|
+
case 'asset_withdraw_denied':
|
|
101
|
+
case 'crop_grow':
|
|
102
|
+
case 'organization_created':
|
|
103
|
+
case 'organization_member_added':
|
|
104
|
+
case 'organization_member_role_changed':
|
|
105
|
+
case 'factory_created':
|
|
106
|
+
case 'factory_recipe_changed':
|
|
107
|
+
case 'factory_contract_set':
|
|
108
|
+
case 'factory_work_started':
|
|
109
|
+
case 'factory_work_stopped':
|
|
110
|
+
case 'factory_processed_tick':
|
|
111
|
+
case 'contract_definition_created':
|
|
112
|
+
case 'contract_definition_opened':
|
|
113
|
+
case 'contract_definition_paused':
|
|
114
|
+
case 'contract_definition_closed':
|
|
115
|
+
case 'contract_instance_created':
|
|
116
|
+
case 'contract_instance_settled':
|
|
117
|
+
case 'contract_instance_failed':
|
|
77
118
|
return `${event.type} succeeded`;
|
|
78
119
|
}
|
|
79
120
|
}
|
|
121
|
+
function readMoveTarget(data) {
|
|
122
|
+
if (isRecord(data.to) && typeof data.to.x === 'number' && typeof data.to.y === 'number') {
|
|
123
|
+
return {
|
|
124
|
+
x: data.to.x,
|
|
125
|
+
y: data.to.y,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (typeof data.toX === 'number' && typeof data.toY === 'number') {
|
|
129
|
+
return {
|
|
130
|
+
x: data.toX,
|
|
131
|
+
y: data.toY,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
function isRecord(value) {
|
|
137
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
138
|
+
}
|
|
139
|
+
function findEvent(events, type) {
|
|
140
|
+
return events.find((event) => event.type === type);
|
|
141
|
+
}
|
|
80
142
|
//# sourceMappingURL=settlement-sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settlement-sync.js","sourceRoot":"","sources":["../../src/runtime/settlement-sync.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"settlement-sync.js","sourceRoot":"","sources":["../../src/runtime/settlement-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TurnOrchestrator = void 0;
|
|
4
|
+
const optional_prop_1 = require("../optional-prop");
|
|
4
5
|
class TurnOrchestrator {
|
|
5
6
|
store;
|
|
6
7
|
client;
|
|
@@ -25,14 +26,14 @@ class TurnOrchestrator {
|
|
|
25
26
|
goal: session.goal,
|
|
26
27
|
agentId: session.agentId,
|
|
27
28
|
serverUrl: session.serverUrl,
|
|
28
|
-
tickIntervalMs
|
|
29
|
+
...(0, optional_prop_1.optionalProp)('tickIntervalMs', session.tickPollIntervalMs),
|
|
29
30
|
observeSummary: sanitizeObserveSummary(tickInbox.observe),
|
|
30
31
|
recentEvents: sanitizeRecentEvents(tickInbox.events),
|
|
31
32
|
lastAction,
|
|
32
33
|
lastSettlement,
|
|
33
34
|
submissionState: {
|
|
34
35
|
hasSubmitted: session.runState === 'submitted',
|
|
35
|
-
activeRunId
|
|
36
|
+
...(0, optional_prop_1.optionalProp)('activeRunId', session.activeRunId),
|
|
36
37
|
runState: session.runState,
|
|
37
38
|
},
|
|
38
39
|
latestObservedTickAtStart: session.latestObservedTick,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-orchestrator.js","sourceRoot":"","sources":["../../src/runtime/turn-orchestrator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"turn-orchestrator.js","sourceRoot":"","sources":["../../src/runtime/turn-orchestrator.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAKhD,MAAa,gBAAgB;IAEJ;IACA;IAFrB,YACqB,KAAmB,EACnB,MAAuB;QADvB,UAAK,GAAL,KAAK,CAAc;QACnB,WAAM,GAAN,MAAM,CAAiB;IACzC,CAAC;IAEJ,KAAK,CAAC,YAAY,CAAC,IAAY;QAC3B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7H,OAAO;YACH,IAAI;YACJ,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAA6B,EAAE,KAAa,EAAE,SAA0B;QAC5F,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAEvH,OAAO;YACH,KAAK;YACL,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,GAAG,IAAA,4BAAY,EAAC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,CAAC;YAC7D,cAAc,EAAE,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC;YACzD,YAAY,EAAE,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC;YACpD,UAAU;YACV,cAAc;YACd,eAAe,EAAE;gBACb,YAAY,EAAE,OAAO,CAAC,QAAQ,KAAK,WAAW;gBAC9C,GAAG,IAAA,4BAAY,EAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;gBACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B;YACD,yBAAyB,EAAE,OAAO,CAAC,kBAAkB;SACxD,CAAC;IACN,CAAC;CACJ;AAvCD,4CAuCC;AAED,SAAS,sBAAsB,CAAC,OAAmC;IAC/D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7D,OAAO;QACH,GAAG,IAAI;QACP,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAsE;IAC/F,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAiC;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACtI,CAAC"}
|
|
@@ -11,8 +11,9 @@ class WorkspaceManager {
|
|
|
11
11
|
}
|
|
12
12
|
async ensureWorkspace(session) {
|
|
13
13
|
await this.store.ensureWorkspace();
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const instructionFilePath = this.store.instructionFilePath(session.adapter);
|
|
15
|
+
if (!(await fileExists(instructionFilePath))) {
|
|
16
|
+
await (0, promises_1.writeFile)(instructionFilePath, (0, agents_template_1.renderAgentsTemplate)({
|
|
16
17
|
profile: session.profile,
|
|
17
18
|
goal: session.goal,
|
|
18
19
|
workDir: session.workDir,
|
|
@@ -37,20 +38,21 @@ class WorkspaceManager {
|
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
40
|
async syncAgentsGoal(session) {
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
const instructionFilePath = this.store.instructionFilePath(session.adapter);
|
|
42
|
+
if (!(await fileExists(instructionFilePath))) {
|
|
43
|
+
await (0, promises_1.writeFile)(instructionFilePath, (0, agents_template_1.renderAgentsTemplate)({
|
|
42
44
|
profile: session.profile,
|
|
43
45
|
goal: session.goal,
|
|
44
46
|
workDir: session.workDir,
|
|
45
47
|
}), 'utf8');
|
|
46
48
|
return true;
|
|
47
49
|
}
|
|
48
|
-
const existing = await (0, promises_1.readFile)(
|
|
50
|
+
const existing = await (0, promises_1.readFile)(instructionFilePath, 'utf8');
|
|
49
51
|
const next = (0, agents_template_1.syncGoalInAgentsTemplate)(existing, session.goal);
|
|
50
52
|
if (next === null || next === existing) {
|
|
51
53
|
return false;
|
|
52
54
|
}
|
|
53
|
-
await (0, promises_1.writeFile)(
|
|
55
|
+
await (0, promises_1.writeFile)(instructionFilePath, next, 'utf8');
|
|
54
56
|
return true;
|
|
55
57
|
}
|
|
56
58
|
async syncActiveRunGoal(runId, goal) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/runtime/workspace-manager.ts"],"names":[],"mappings":";;;AAAA,+CAA+D;AAE/D,kEAA8F;AAC9F,4DAA8D;AAI9D,MAAa,gBAAgB;IACI;IAA7B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,KAAK,CAAC,eAAe,CAAC,OAA6B;QAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/runtime/workspace-manager.ts"],"names":[],"mappings":";;;AAAA,+CAA+D;AAE/D,kEAA8F;AAC9F,4DAA8D;AAI9D,MAAa,gBAAgB;IACI;IAA7B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,KAAK,CAAC,eAAe,CAAC,OAA6B;QAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAA,oBAAS,EACX,mBAAmB,EACnB,IAAA,sCAAoB,EAAC;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;aAC3B,CAAC,EACF,MAAM,CACT,CAAC;YACF,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAuB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAsB;QACjD,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAA,gCAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA6B;QAIxC,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEvH,OAAO;YACH,aAAa;YACb,gBAAgB;SACnB,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAA6B;QACtD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAA,oBAAS,EACX,mBAAmB,EACnB,IAAA,sCAAoB,EAAC;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;aAC3B,CAAC,EACF,MAAM,CACT,CAAC;YACF,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAA,0CAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,IAAA,oBAAS,EAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAa,EAAE,IAAY;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,YAAY,GAAiB;YAC/B,GAAG,QAAQ;YACX,IAAI;SACP,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAA,gCAAiB,EAAC,YAAY,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAlFD,4CAkFC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACtC,IAAI,CAAC;QACD,MAAM,IAAA,iBAAM,EAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
verb: string;
|
|
4
|
-
target?: string | number | Record<string, unknown>;
|
|
5
|
-
params?: Record<string, unknown>;
|
|
6
|
-
reason?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface ActRequest extends Action {
|
|
9
|
-
basedOnTick?: number;
|
|
10
|
-
intendedStartTick?: number;
|
|
11
|
-
}
|
|
1
|
+
import type { Action, ActRequest, ActResponse, WorldEvent } from '@your-world/common';
|
|
2
|
+
export type { Action, ActRequest, ActResponse, WorldEvent } from '@your-world/common';
|
|
12
3
|
export interface InventoryItem {
|
|
13
4
|
itemId: string;
|
|
14
5
|
amount: number;
|
|
@@ -33,7 +24,7 @@ export interface NearbyResource {
|
|
|
33
24
|
}
|
|
34
25
|
export interface NearbyStructure {
|
|
35
26
|
structureId: string;
|
|
36
|
-
|
|
27
|
+
structureTypeId?: string;
|
|
37
28
|
origin?: {
|
|
38
29
|
x: number;
|
|
39
30
|
y: number;
|
|
@@ -47,16 +38,53 @@ export interface NearbyStructure {
|
|
|
47
38
|
y: number;
|
|
48
39
|
};
|
|
49
40
|
hp?: number;
|
|
50
|
-
|
|
51
|
-
|
|
41
|
+
state?: {
|
|
42
|
+
kind: 'static';
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'gate';
|
|
45
|
+
open: boolean;
|
|
46
|
+
};
|
|
52
47
|
sourceBuildRecipeId?: string;
|
|
53
48
|
builderAgentId?: string;
|
|
49
|
+
ownerRef?: {
|
|
50
|
+
kind: 'agent';
|
|
51
|
+
agentId: string;
|
|
52
|
+
} | {
|
|
53
|
+
kind: 'organization';
|
|
54
|
+
organizationId: string;
|
|
55
|
+
};
|
|
56
|
+
withdrawLevel?: 'owner' | 'organization' | 'public';
|
|
57
|
+
canWithdraw?: boolean;
|
|
54
58
|
distance?: number;
|
|
55
59
|
}
|
|
60
|
+
export interface FactoryView {
|
|
61
|
+
factoryId: string;
|
|
62
|
+
ownerRef?: {
|
|
63
|
+
kind: 'agent';
|
|
64
|
+
agentId: string;
|
|
65
|
+
} | {
|
|
66
|
+
kind: 'organization';
|
|
67
|
+
organizationId: string;
|
|
68
|
+
};
|
|
69
|
+
structureTypeId?: string;
|
|
70
|
+
activeRecipeId?: string;
|
|
71
|
+
activeContractDefinitionIds?: string[];
|
|
72
|
+
minWorkersToRun?: number;
|
|
73
|
+
maxWorkers?: number;
|
|
74
|
+
assignedWorkerCount?: number;
|
|
75
|
+
maxRunsPerTick?: number;
|
|
76
|
+
storageCapacityGrams?: number;
|
|
77
|
+
storageUsedGrams?: number;
|
|
78
|
+
inventorySummary?: InventoryItem[];
|
|
79
|
+
availableRecipeIds?: string[];
|
|
80
|
+
lastTickRuns?: number;
|
|
81
|
+
canConfigure?: boolean;
|
|
82
|
+
joinedByViewer?: boolean;
|
|
83
|
+
}
|
|
56
84
|
export interface NearbyProject {
|
|
57
85
|
projectId: string;
|
|
58
86
|
recipeId?: string;
|
|
59
|
-
|
|
87
|
+
targetStructureTypeId?: string;
|
|
60
88
|
builderAgentId?: string;
|
|
61
89
|
origin?: {
|
|
62
90
|
x: number;
|
|
@@ -94,7 +122,7 @@ export interface VisibleTrade {
|
|
|
94
122
|
tradeId: string;
|
|
95
123
|
creatorAgentId: string;
|
|
96
124
|
toAgentId?: string;
|
|
97
|
-
status?:
|
|
125
|
+
status?: string;
|
|
98
126
|
createdAtTick?: number;
|
|
99
127
|
expiresAtTick?: number;
|
|
100
128
|
ticksUntilExpire?: number;
|
|
@@ -124,7 +152,7 @@ export type ObserveArchetypeHint = {
|
|
|
124
152
|
kind: 'structure';
|
|
125
153
|
archetypeId: string;
|
|
126
154
|
structureId: string;
|
|
127
|
-
|
|
155
|
+
structureTypeId?: string;
|
|
128
156
|
origin?: {
|
|
129
157
|
x: number;
|
|
130
158
|
y: number;
|
|
@@ -154,6 +182,7 @@ export type ObserveArchetypeHint = {
|
|
|
154
182
|
};
|
|
155
183
|
export interface ObserveResponse {
|
|
156
184
|
tick: number;
|
|
185
|
+
agentId?: string;
|
|
157
186
|
map?: {
|
|
158
187
|
width: number;
|
|
159
188
|
height: number;
|
|
@@ -168,6 +197,7 @@ export interface ObserveResponse {
|
|
|
168
197
|
carryWeightGrams?: number;
|
|
169
198
|
carryLimitGrams?: number;
|
|
170
199
|
carryRemainingGrams?: number;
|
|
200
|
+
joinedFactoryId?: string;
|
|
171
201
|
talents?: Record<string, {
|
|
172
202
|
baseLevel: number;
|
|
173
203
|
level: number;
|
|
@@ -178,6 +208,7 @@ export interface ObserveResponse {
|
|
|
178
208
|
nearbyStructures?: NearbyStructure[];
|
|
179
209
|
nearbyProjects?: NearbyProject[];
|
|
180
210
|
nearbyAgents?: NearbyAgent[];
|
|
211
|
+
factories?: FactoryView[];
|
|
181
212
|
visibleTrades?: VisibleTrade[];
|
|
182
213
|
adjacentTiles?: Array<{
|
|
183
214
|
x: number;
|
|
@@ -187,7 +218,7 @@ export interface ObserveResponse {
|
|
|
187
218
|
occupiedBy?: {
|
|
188
219
|
kind: 'resource' | 'crop' | 'structure' | 'project' | 'agent';
|
|
189
220
|
id: string;
|
|
190
|
-
|
|
221
|
+
typeId?: string;
|
|
191
222
|
};
|
|
192
223
|
canMove: boolean;
|
|
193
224
|
canBuild: boolean;
|
|
@@ -237,24 +268,12 @@ export interface PlayerAgentCreateResponse {
|
|
|
237
268
|
agentId: string;
|
|
238
269
|
agentToken: string;
|
|
239
270
|
}
|
|
240
|
-
export interface
|
|
241
|
-
|
|
242
|
-
reason?: string;
|
|
243
|
-
startTick?: number;
|
|
244
|
-
duplicate?: boolean;
|
|
245
|
-
currentTick?: number;
|
|
246
|
-
basedOnTick?: number;
|
|
247
|
-
intendedStartTick?: number;
|
|
248
|
-
lateSubmission?: boolean;
|
|
249
|
-
[key: string]: unknown;
|
|
271
|
+
export interface AgentProfileUpdateRequest {
|
|
272
|
+
publicGoal?: string;
|
|
250
273
|
}
|
|
251
|
-
export interface
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
type: string;
|
|
255
|
-
actorId?: string;
|
|
256
|
-
actionId?: string;
|
|
257
|
-
data: Record<string, unknown>;
|
|
274
|
+
export interface AgentProfileUpdateResponse {
|
|
275
|
+
agentId: string;
|
|
276
|
+
publicGoal?: string;
|
|
258
277
|
}
|
|
259
278
|
export interface EventQueryResult {
|
|
260
279
|
events: WorldEvent[];
|
|
@@ -277,6 +296,7 @@ export interface ToolReadResponse<T> {
|
|
|
277
296
|
export interface WorldClientRoutes {
|
|
278
297
|
playerInit: string;
|
|
279
298
|
playerAgents: string;
|
|
299
|
+
agentProfile: string;
|
|
280
300
|
join: string;
|
|
281
301
|
observe: string;
|
|
282
302
|
act: string;
|
|
@@ -331,11 +351,11 @@ export interface TickContext {
|
|
|
331
351
|
readonly tools: AgentTools;
|
|
332
352
|
observe(): Promise<ObserveResponse>;
|
|
333
353
|
remember(key: string, value: unknown): void;
|
|
334
|
-
recall
|
|
354
|
+
recall(key: string): unknown;
|
|
335
355
|
hasCommitted(): boolean;
|
|
336
356
|
commit(action: Action): Promise<void>;
|
|
337
357
|
}
|
|
338
|
-
export type Policy = (context: TickContext) => Promise<Action | null |
|
|
358
|
+
export type Policy = (context: TickContext) => Promise<Action | null | undefined> | Action | null | undefined;
|
|
339
359
|
export interface TickRunnerOptions {
|
|
340
360
|
client: WorldClientLike;
|
|
341
361
|
policy: Policy;
|
|
@@ -344,9 +364,10 @@ export interface TickRunnerOptions {
|
|
|
344
364
|
pollIntervalMs?: number;
|
|
345
365
|
}
|
|
346
366
|
export interface WorldClientLike {
|
|
347
|
-
readonly agentId
|
|
367
|
+
readonly agentId: string | undefined;
|
|
348
368
|
playerInit(input: PlayerInitRequest): Promise<PlayerInitResponse>;
|
|
349
369
|
createPlayerAgent(playerCredential: string, input: PlayerAgentCreateRequest): Promise<PlayerAgentCreateResponse>;
|
|
370
|
+
updateAgentProfile(input: AgentProfileUpdateRequest): Promise<AgentProfileUpdateResponse>;
|
|
350
371
|
join(input?: JoinRequest): Promise<JoinResponse>;
|
|
351
372
|
observe(asOfTick?: number, targeting?: ObserveTargetingQuery): Promise<ObserveResponse>;
|
|
352
373
|
act(action: ActRequest): Promise<ActResponse>;
|
package/dist/world-client.d.ts
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { ActRequest, ActResponse, ConditionalRequestOptions, EventQueryResult, JoinRequest, JoinResponse, ObserveResponse, ObserveTargetingQuery, PlayerAgentCreateRequest, PlayerAgentCreateResponse, PlayerInitRequest, PlayerInitResponse, TickInfoResponse, TickSignal, ToolQuery, ToolReadResponse, WorldClientOptions } from './types';
|
|
1
|
+
import { ActRequest, ActResponse, AgentProfileUpdateRequest, AgentProfileUpdateResponse, ConditionalRequestOptions, EventQueryResult, JoinRequest, JoinResponse, ObserveResponse, ObserveTargetingQuery, PlayerAgentCreateRequest, PlayerAgentCreateResponse, PlayerInitRequest, PlayerInitResponse, TickInfoResponse, TickSignal, ToolQuery, ToolReadResponse, WorldClientOptions } from './types';
|
|
2
2
|
export declare class WorldClientError extends Error {
|
|
3
3
|
readonly status: number;
|
|
4
|
-
readonly code
|
|
5
|
-
readonly details
|
|
4
|
+
readonly code: string | undefined;
|
|
5
|
+
readonly details: unknown;
|
|
6
6
|
constructor(message: string, status: number, code?: string, details?: unknown);
|
|
7
7
|
}
|
|
8
8
|
export declare class WorldClient {
|
|
9
9
|
private readonly baseUrl;
|
|
10
|
-
private readonly token
|
|
10
|
+
private readonly token;
|
|
11
11
|
private readonly fetchImpl;
|
|
12
12
|
private readonly routes;
|
|
13
|
-
private _agentId
|
|
13
|
+
private _agentId;
|
|
14
14
|
constructor(options: WorldClientOptions);
|
|
15
15
|
get agentId(): string | undefined;
|
|
16
16
|
playerInit(input: PlayerInitRequest): Promise<PlayerInitResponse>;
|
|
17
17
|
createPlayerAgent(playerCredential: string, input: PlayerAgentCreateRequest): Promise<PlayerAgentCreateResponse>;
|
|
18
|
+
updateAgentProfile(input: AgentProfileUpdateRequest): Promise<AgentProfileUpdateResponse>;
|
|
18
19
|
join(input?: JoinRequest): Promise<JoinResponse>;
|
|
19
20
|
observe(asOfTick?: number, targeting?: ObserveTargetingQuery): Promise<ObserveResponse>;
|
|
20
21
|
act(action: ActRequest): Promise<ActResponse>;
|
package/dist/world-client.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WorldClient = exports.WorldClientError = void 0;
|
|
4
|
+
const common_1 = require("@your-world/common");
|
|
5
|
+
const optional_prop_1 = require("./optional-prop");
|
|
4
6
|
const DEFAULT_ROUTES = {
|
|
5
7
|
playerInit: '/player/init',
|
|
6
8
|
playerAgents: '/player/agents',
|
|
9
|
+
agentProfile: '/agent/profile',
|
|
7
10
|
join: '/join',
|
|
8
11
|
observe: '/observe',
|
|
9
12
|
act: '/act',
|
|
@@ -53,10 +56,16 @@ class WorldClient {
|
|
|
53
56
|
authorization: `Bearer ${playerCredential}`,
|
|
54
57
|
});
|
|
55
58
|
}
|
|
59
|
+
updateAgentProfile(input) {
|
|
60
|
+
return this.request('POST', this.routes.agentProfile, input);
|
|
61
|
+
}
|
|
56
62
|
async join(input = {}) {
|
|
57
63
|
const payload = {
|
|
58
|
-
...
|
|
59
|
-
|
|
64
|
+
...(() => {
|
|
65
|
+
const { agentId: _agentId, ...rest } = input;
|
|
66
|
+
return rest;
|
|
67
|
+
})(),
|
|
68
|
+
...(0, optional_prop_1.optionalProp)('agentId', input.agentId ?? this._agentId),
|
|
60
69
|
};
|
|
61
70
|
const response = await this.request('POST', this.routes.join, payload);
|
|
62
71
|
this._agentId = response.agentId;
|
|
@@ -64,9 +73,9 @@ class WorldClient {
|
|
|
64
73
|
}
|
|
65
74
|
observe(asOfTick, targeting = {}) {
|
|
66
75
|
return this.request('GET', this.routes.observe, undefined, {
|
|
67
|
-
asOfTick,
|
|
68
|
-
archetype
|
|
69
|
-
resource
|
|
76
|
+
...(0, optional_prop_1.optionalProp)('asOfTick', asOfTick),
|
|
77
|
+
...(0, optional_prop_1.optionalProp)('archetype', targeting.archetype),
|
|
78
|
+
...(0, optional_prop_1.optionalProp)('resource', targeting.resource),
|
|
70
79
|
});
|
|
71
80
|
}
|
|
72
81
|
act(action) {
|
|
@@ -93,7 +102,7 @@ class WorldClient {
|
|
|
93
102
|
});
|
|
94
103
|
}
|
|
95
104
|
async waitForNextTick(afterTick, pollIntervalMs = 1000, signal) {
|
|
96
|
-
|
|
105
|
+
for (;;) {
|
|
97
106
|
if (signal?.aborted) {
|
|
98
107
|
throw new Error('Aborted while waiting for next tick.');
|
|
99
108
|
}
|
|
@@ -117,10 +126,13 @@ class WorldClient {
|
|
|
117
126
|
}
|
|
118
127
|
async request(method, path, body, query, headers) {
|
|
119
128
|
const response = await this.requestRaw(method, path, body, {
|
|
120
|
-
query,
|
|
121
|
-
headers,
|
|
129
|
+
...(0, optional_prop_1.optionalProp)('query', query),
|
|
130
|
+
...(0, optional_prop_1.optionalProp)('headers', headers),
|
|
122
131
|
});
|
|
123
|
-
|
|
132
|
+
if (response.payload === undefined) {
|
|
133
|
+
throw new WorldClientError(`Request succeeded without a JSON response body: ${path}`, response.status, 'EMPTY_RESPONSE');
|
|
134
|
+
}
|
|
135
|
+
return response.payload;
|
|
124
136
|
}
|
|
125
137
|
async conditionalRead(path, params, options) {
|
|
126
138
|
const query = { ...params };
|
|
@@ -138,9 +150,9 @@ class WorldClient {
|
|
|
138
150
|
});
|
|
139
151
|
return {
|
|
140
152
|
status: response.status,
|
|
141
|
-
etag
|
|
142
|
-
version
|
|
143
|
-
body
|
|
153
|
+
...(0, optional_prop_1.optionalProp)('etag', response.headers.get('etag') ?? undefined),
|
|
154
|
+
...(0, optional_prop_1.optionalProp)('version', response.headers.get('x-version') ?? undefined),
|
|
155
|
+
...(0, optional_prop_1.optionalProp)('body', response.payload),
|
|
144
156
|
};
|
|
145
157
|
}
|
|
146
158
|
async requestRaw(method, path, body, options = {}) {
|
|
@@ -160,14 +172,14 @@ class WorldClient {
|
|
|
160
172
|
const response = await this.fetchImpl(url, {
|
|
161
173
|
method,
|
|
162
174
|
headers,
|
|
163
|
-
body
|
|
175
|
+
...(body === undefined ? {} : { body: JSON.stringify(body) }),
|
|
164
176
|
});
|
|
165
177
|
const text = await response.text();
|
|
166
178
|
const payload = text.length > 0 ? safeParseJson(text) : undefined;
|
|
167
179
|
const allowedStatus = options.allowStatuses?.includes(response.status) ?? false;
|
|
168
180
|
if (!response.ok && !allowedStatus) {
|
|
169
181
|
const errorPayload = isRecord(payload) ? payload : {};
|
|
170
|
-
const message = (typeof errorPayload.message === 'string' && errorPayload.message) || `Request failed: ${response.status}`;
|
|
182
|
+
const message = (typeof errorPayload.message === 'string' && errorPayload.message) || `Request failed: ${String(response.status)}`;
|
|
171
183
|
throw new WorldClientError(message, response.status, typeof errorPayload.code === 'string' ? errorPayload.code : undefined, errorPayload.details);
|
|
172
184
|
}
|
|
173
185
|
return {
|
|
@@ -196,7 +208,7 @@ function stripTrailingSlash(input) {
|
|
|
196
208
|
}
|
|
197
209
|
function safeParseJson(raw) {
|
|
198
210
|
try {
|
|
199
|
-
return
|
|
211
|
+
return (0, common_1.parseJsonValue)(raw, 'HTTP response body');
|
|
200
212
|
}
|
|
201
213
|
catch {
|
|
202
214
|
return raw;
|
package/dist/world-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-client.js","sourceRoot":"","sources":["../src/world-client.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"world-client.js","sourceRoot":"","sources":["../src/world-client.ts"],"names":[],"mappings":"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"}
|