Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
341 commits
Select commit Hold shift + click to select a range
ceadad3
remove unuse code
stevensf1998 Apr 11, 2025
108d181
remove duplicate
stevensf1998 Apr 11, 2025
18f09b1
check if twitter client is init, only ask GAME to return tweetContent
stevensf1998 Apr 11, 2025
a66a8a1
Merge pull request #128 from stevensf1998/feat/acp
stevensf1998 Apr 11, 2025
293b4a9
Revert "bump up python version because of syntax issues for python 3.9"
stevensf1998 Apr 11, 2025
50d20c0
bump up
stevensf1998 Apr 11, 2025
83fc37e
updates ACP examples for changes in ACP plugin options
celesteanglm Apr 13, 2025
1a7dc9a
Adjust the readme
stevensf1998 Apr 14, 2025
bae378c
Merge pull request #129 from stevensf1998/feat/acp
celesteanglm Apr 14, 2025
c986cde
implement evaluator flow
stevensf1998 Apr 14, 2025
67bd91b
adjust read me
stevensf1998 Apr 14, 2025
ceb23ad
readme - Cluster
stevensf1998 Apr 14, 2025
b9d6c12
adjust require_evaluation_arg desc
stevensf1998 Apr 14, 2025
75dfe90
clean up prints log
stevensf1998 Apr 14, 2025
0e06f23
Merge pull request #130 from stevensf1998/feat/acp
Zuhwa Apr 14, 2025
2670690
bump to v0.1.4
celesteanglm Apr 14, 2025
9a727ff
docs: ACP readme minor edit - cleanup numbering
celesteanglm Apr 14, 2025
a22159a
remove print
stevensf1998 Apr 15, 2025
ba7fccb
fix: change jobId type from str to integer
Ang-dot Apr 15, 2025
5caf001
Merge commit 'ba7fccb5997c45b6d9572d95aea7858f89307e24' into feat/acp
stevensf1998 Apr 15, 2025
5f65834
Fix twitter plugin bug
stevensf1998 Apr 15, 2025
ec59ed5
Merge pull request #132 from stevensf1998/feat/acp
stevensf1998 Apr 15, 2025
07e3eed
Better error logging and handling
stevenong99-vp Apr 15, 2025
f33b30a
Printing out the validate transaction response status code
stevenong99-vp Apr 15, 2025
d949917
Prototype better logging
stevenong99-vp Apr 15, 2025
a177a7a
Removing print statement for validate transaction api call
stevenong99-vp Apr 15, 2025
bcbef9a
Merge pull request #133 from game-by-virtuals/refactor/better-logging…
stevensf1998 Apr 15, 2025
9de02e6
Merge branch 'refactor/better-logging-error-handling' of github.com:g…
stevenong99-vp Apr 15, 2025
fa15fa3
Omitting the useless logs
stevenong99-vp Apr 15, 2025
833f2a8
bump to v0.1.5
celesteanglm Apr 15, 2025
5ce7b8b
Print the state as well
stevenong99-vp Apr 15, 2025
6ac8b95
docs: add link to ACP FAQ docs
celesteanglm Apr 16, 2025
8da5ce9
Fix bug causing checksum to fail when creating a new job
stevenong99-vp Apr 17, 2025
543313d
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 17, 2025
1f8f068
Merge pull request #135 from game-by-virtuals/bugfix/checksum-bug
stevenong99-vp Apr 17, 2025
3b56b6e
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 18, 2025
a26389e
implement delete completed job
stevensf1998 Apr 18, 2025
e9a60ce
Updated more logs
stevenong99-vp Apr 21, 2025
a7d9ddb
Users are now in charge of printing the state
stevenong99-vp Apr 21, 2025
f6bec16
Printing the traceback for _pay_job_executable
stevenong99-vp Apr 21, 2025
fa91975
Make agent to exclude itself from search agent result
schoibs-virtuals Apr 21, 2025
fe5eb17
Additional logging in the event of an error
stevenong99-vp Apr 21, 2025
a455818
Implemented Rich library to make logs even better
stevenong99-vp Apr 21, 2025
e1b8fcb
implement reactive flow for acp
stevensf1998 Apr 21, 2025
8aae611
Merge pull request #136 from stevensf1998/feat/acp
stevensf1998 Apr 21, 2025
326542e
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 21, 2025
fad9b3a
ACP reactive example readme + tweak worker logic in example buyer
celesteanglm Apr 21, 2025
a8c1fbd
bump ACP to v0.1.6
celesteanglm Apr 21, 2025
00c723a
Integrated the reactive agent with better logs
stevenong99-vp Apr 22, 2025
bd69b97
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 22, 2025
ed96cf8
Revert to using search instead of _q
schoibs-virtuals Apr 22, 2025
a4cebf2
[acp plugin] standardize file naming, docs cleanup
celesteanglm Apr 22, 2025
18c501d
Quick fix for requireEvaluation being a string and not a boolean
stevenong99-vp Apr 23, 2025
95e9189
Merge pull request #141 from game-by-virtuals/bugfix/cast-non-string-…
stevensf1998 Apr 23, 2025
c3e3dd8
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 23, 2025
b1e5c05
This should cater for all types in requireEvaluation
stevenong99-vp Apr 23, 2025
83717ca
Merge pull request #142 from game-by-virtuals/bugfix/catering-for-all…
stevensf1998 Apr 23, 2025
d784d5c
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 23, 2025
ec626b1
Merge pull request #137 from game-by-virtuals/enhance/avoid-self-comm…
schoibs-virtuals Apr 23, 2025
7798461
docs: Add evaluation examples and usage guide for on_evaluate
LauJoeYing Apr 22, 2025
a1aaf44
docs: add evaluation overview and example directory to main README
LauJoeYing Apr 23, 2025
27962ba
docs: cleanup and format agentic and reactive README for clarity
LauJoeYing Apr 23, 2025
1c53fba
fix: correct typo in agent_goal string
LauJoeYing Apr 23, 2025
3b72298
refactor: adjust according to celeste's review
LauJoeYing Apr 23, 2025
c050c3f
Merge pull request #139 from LauJoeYing/feat/acp-joey-add-evaluation-…
celesteanglm Apr 23, 2025
bee9f2b
bump ACP to v0.1.7
celesteanglm Apr 23, 2025
9e63308
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 25, 2025
6cf48f6
Implement reranker into browse_agent functions. Reranker is enabled b…
stevenong99-vp Apr 28, 2025
d197c93
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 28, 2025
ce2c3fc
Merge pull request #134 from game-by-virtuals/enhance/more-readable-logs
stevensf1998 Apr 28, 2025
0a12366
Merge branch 'feat/acp' of github.com:game-by-virtuals/game-python in…
stevenong99-vp Apr 28, 2025
2c1974d
Merge pull request #144 from game-by-virtuals/feature/search-agent-re…
stevensf1998 Apr 29, 2025
1068273
feat: allowed multiple active jobs for buyer
JoeLim13 Apr 29, 2025
f519beb
feat: add job expiry option while creating job
Ang-dot Apr 30, 2025
34f4711
Merge pull request #146 from game-by-virtuals/acp/yang-add-job-expiry…
celesteanglm Apr 30, 2025
9f74fbb
feat: add tool to prune all except n most recent completed jobs
celesteanglm Apr 30, 2025
59e0d83
bump to 0.1.8
celesteanglm Apr 30, 2025
72e2103
Merge pull request #148 from game-by-virtuals/prune_all_except_n_jobs
celesteanglm Apr 30, 2025
9c2d231
docs: add usage guide for `job_expiry_duration_mins` in plugin setup
LauJoeYing May 2, 2025
2e06fa4
Merge pull request #151 from LauJoeYing/acp/joey-add-job-expiry-usage…
celesteanglm May 2, 2025
03be5da
Bugfix - There is a chance that jobId is a list of dicts instead of a…
stevenong99-vp May 2, 2025
f8d9fc9
Missed a spot where the add_produce_item function was adding a dict
stevenong99-vp May 2, 2025
c7d5257
Merge pull request #152 from game-by-virtuals/bugfix/no-attribute-jobid
celesteanglm May 2, 2025
9f3fa5c
fix: cleanup missing imports
celesteanglm May 2, 2025
ae4fd64
bump to 0.1.9
celesteanglm May 2, 2025
297deb0
improve completed job deletion tooling
celesteanglm May 2, 2025
392cf86
bump to 0.1.10
celesteanglm May 2, 2025
94a8092
downgrade rich version
celesteanglm May 2, 2025
f2f7544
bump to 0.1.11
celesteanglm May 2, 2025
882f962
feat(game_twitter): add an auth gate during initialization
Ang-dot May 5, 2025
4127c97
feat(twitter): add an auth gate during initialization
Ang-dot May 5, 2025
6c94318
docs: add .env.example to refer
Ang-dot May 5, 2025
7576f92
use deliverable from produced inventory
May 5, 2025
0600d47
Merge pull request #153 from game-by-virtuals/twitter-plugin/yang-imp…
celesteanglm May 5, 2025
96a2dd3
bump up acp and twitter plugin versions
celesteanglm May 5, 2025
8fad020
Merge commit 'b7e1180346d83f11858930688ea4869f1cd97780' into feat/acp
stevensf1998 May 6, 2025
140d419
Merge commit '5959b1e39d663fa18610d5859be7b006f1e1ce85' into feat/acp
stevensf1998 May 6, 2025
fe5fc16
fix acp example to point twitterClient
stevensf1998 May 6, 2025
9010794
Merge commit '4a496306f40841cab5b1a40a55880cbe78d49704' into feat/acp
stevensf1998 May 6, 2025
b008606
Merge commit '96a2dd3657d88aa670ca7a444c41864d97d0761a' into feat/acp
stevensf1998 May 6, 2025
38cb4ba
[acp plugin] restrict twitter-plugin-gamesdk to older versions to pre…
celesteanglm May 6, 2025
a40133c
[acp plugin] bump to 0.1.13 with twitter plugin version constraint
celesteanglm May 6, 2025
cc46703
Merge pull request #145 from JoeLim13/feat/acp-allow-multiple-active-…
celesteanglm May 7, 2025
556af0c
[acp plugin] bump to 0.1.4
celesteanglm May 7, 2025
a8f78f4
Fixing agent state bug
stevenong99-vp May 8, 2025
8d3a5cd
Merge pull request #157 from game-by-virtuals/bugfix/get_state_params
stevensf1998 May 8, 2025
f66a57f
Merge commit '8d3a5cd825cec1bcb4a8eb5572c10fbed7000018' into feat/acp
stevensf1998 May 8, 2025
097d056
Removing final instance of useless params
stevenong99-vp May 8, 2025
f900073
Merge pull request #158 from game-by-virtuals/bugfix/get-state-params-2
stevensf1998 May 8, 2025
8e90863
Merge commit 'f900073e4393c9b509a79786c5d21d19742fe9f4' into feat/acp
stevensf1998 May 8, 2025
93c53c6
update interface to support clientName
stevensf1998 May 8, 2025
82f3d8e
add providerAddress
stevensf1998 May 8, 2025
0c759ce
git: exclude .venv/
Ang-dot May 8, 2025
dc568a8
[acp plugin] remove duplicated lastUpdated in AcpJob interface
celesteanglm May 9, 2025
01c695c
[acp plugin] add providerName to AcpJob interface (make it consistent…
celesteanglm May 9, 2025
1a8d673
Merge pull request #159 from game-by-virtuals/remove-duplicated-lastU…
stevensf1998 May 9, 2025
a3f35ef
fix type
stevensf1998 May 9, 2025
5c24254
[acp plugin] fix: use buyer_agent instead of agent so that payment go…
celesteanglm May 9, 2025
20534ad
[acp plugin] bump to 0.1.5
celesteanglm May 9, 2025
c809b9e
[acp plugin] patch for get state fn params
celesteanglm May 9, 2025
c32958a
Bugfix - Revert back to game-sdk 0.1.5 version
stevenong99-vp May 13, 2025
6c74f03
[acp plugin] fix: revert to old version of GAME twitter plugin
celesteanglm May 13, 2025
fbd2aa8
Merge pull request #162 from game-by-virtuals/acp-plugin-twitter-fix
celesteanglm May 13, 2025
32b410a
Merge pull request #161 from game-by-virtuals/bugfix/better-param-naming
celesteanglm May 13, 2025
529c1ae
[acp plugin] bump to v0.1.17
celesteanglm May 13, 2025
a77e870
[acp plugin] fix: add missing import for IInventory
celesteanglm May 14, 2025
7df3c90
refactor: update reset_states tool
Ang-dot May 20, 2025
c5f2885
refactor: update delete_completed_jobs.py
Ang-dot May 20, 2025
cbce3f5
.env: add .env.example for docs
Ang-dot May 20, 2025
3900753
docs: update README files to latest implementation
Ang-dot May 20, 2025
605c892
refactor: add twitter to examples and update examples with latest imp…
Ang-dot May 20, 2025
bb9cfc4
docs: remove warning emoji
Ang-dot May 20, 2025
8951d7c
docs: fix formatting
Ang-dot May 20, 2025
d1a4a59
Merge pull request #164 from game-by-virtuals/acp-plugin/yang-improve…
celesteanglm May 20, 2025
0d653fa
docs: fix formatting
Ang-dot May 20, 2025
e00d9ae
feat: improve tweet content
Ang-dot May 20, 2025
dea6ec3
Merge pull request #165 from game-by-virtuals/acp-plugin/yang-improve…
celesteanglm May 20, 2025
f3348cc
Configs for test and mainet
May 25, 2025
aa36e33
[acp plugin] fixes and examples for test and mainnet configs
celesteanglm May 26, 2025
3cfb5f4
[acp plugin] fixes for configs for agentic example
celesteanglm May 26, 2025
27078f1
[acp plugin] update readme with mainnet config
celesteanglm May 26, 2025
22837d5
[acp plugin] update readme with mainnet config
celesteanglm May 26, 2025
92759fe
Merge pull request #166 from game-by-virtuals/feat/config-prod-dev
celesteanglm May 26, 2025
f9cd2d8
Implement
stevensf1998 May 27, 2025
cb9869c
[acp plugin] modify reset_states script to cater for test/mainnet con…
celesteanglm May 27, 2025
feeab5c
remove unuse code
stevensf1998 May 28, 2025
eaea66c
remove cluster
stevensf1998 May 28, 2025
e440ba5
remove print
stevensf1998 May 28, 2025
0b434b3
[acp plugin] bump to v0.1.18
celesteanglm May 28, 2025
5492682
[acp plugin] fix tools for new config
celesteanglm May 29, 2025
c797257
[acp plugin] fix tools for new config - use mainnet default
celesteanglm May 29, 2025
6bb0994
Merge pull request #168 from game-by-virtuals/feat/acp-twitter-handler
celesteanglm Jun 3, 2025
59b4538
bump to v0.1.19
celesteanglm Jun 3, 2025
05cfb66
feat: value could be dict or array at times
Ang-dot Jun 4, 2025
7fe78c7
refactor: optimize imports and reformat codes
Ang-dot Jun 4, 2025
b8fdb51
bump to v0.1.20
celesteanglm Jun 4, 2025
d8d1d11
Merge branch 'feat/acp' of https://github.com/game-by-virtuals/game-p…
celesteanglm Jun 4, 2025
9184809
[acp plugin] update acp plugin to use acp sdk
hv068 Jun 5, 2025
4aea677
refactor: update prompt in TRANSACTION phase
LauJoeYing Jun 6, 2025
0c21ced
Merge pull request #171 from LauJoeYing/acp/update-prompt
celesteanglm Jun 6, 2025
95d4e25
fix: price is present as float from get state api
Ang-dot Jun 7, 2025
74589a9
refactor: rearrange imports
Ang-dot Jun 7, 2025
7e6a67c
Merge branch 'feat/acp' of https://github.com/game-by-virtuals/game-p…
celesteanglm Jun 7, 2025
16d609c
bump to v0.1.21
celesteanglm Jun 7, 2025
169cedd
refactor: move phase map to interface and simplify _to_state_acp_job …
hv068 Jun 9, 2025
2cd99d6
remove score
stevensf1998 Jun 9, 2025
cc9ab3c
remove score
stevensf1998 Jun 9, 2025
46af45e
fix: remove score and explanation
stevensf1998 Jun 9, 2025
15bf819
bump to v0.1.22
celesteanglm Jun 9, 2025
652160b
fix: align str types between BE and SDK
celesteanglm Jun 10, 2025
8c01d9a
bump to v0.1.23
celesteanglm Jun 10, 2025
a95c777
feat: update tweet functionality
hv068 Jun 12, 2025
f1a67a2
Merge commit '8c01d9a0ff628abe492592e0ed5e240444e72ddd' into feat/acp
stevensf1998 Jun 18, 2025
d42b96a
fix bulter agent cannot be found in clientAddress
stevensf1998 Jun 18, 2025
dc03de2
bump acp plugin to v0.1.24
celesteanglm Jun 18, 2025
4d4b8a3
merge `origin/feat/acp` into `refactor/acp-game-to-acp-sdk`
hv068 Jun 24, 2025
f9014f7
merge remote-tracking branch 'upstream/feat/acp' into refactor/acp-ga…
hv068 Jun 24, 2025
a9d6a0a
Merge pull request #170 from hv068/refactor/acp-game-to-acp-sdk
stevensf1998 Jun 25, 2025
fa1290c
fix alchemy flow
stevensf1998 Jun 25, 2025
9b22b86
fix: sdk job to plugin job typing fix
celesteanglm Jun 25, 2025
56ab8d2
v2 implement
stevensf1998 Jun 26, 2025
b1a2886
qc
stevensf1998 Jun 26, 2025
9a2f90f
fix: better typing via pydantic, convert memos to dict
celesteanglm Jun 26, 2025
ab86ed1
implement alchemy full flow
stevensf1998 Jun 27, 2025
4339550
Fix twitter functions
stevensf1998 Jun 27, 2025
53ff564
refactor: cleanup test logs, rename functions
celesteanglm Jun 28, 2025
83118f7
bump acp plugin to v0.1.26
celesteanglm Jun 28, 2025
1a3bb3b
Merge pull request #175 from game-by-virtuals/feat/acp-alchemy
celesteanglm Jun 28, 2025
d4b5749
bump acp plugin to v0.2.0
celesteanglm Jun 28, 2025
30f7cc0
reduce agent state tooling initial commit
celesteanglm Jun 28, 2025
1cb7a7f
feat: acp plugin tooling - add ignore job and agent address list
celesteanglm Jun 28, 2025
03af428
Merge pull request #176 from game-by-virtuals/feat/plugin-v2-tools
celesteanglm Jun 29, 2025
b619f3d
docs: Add walkthrough images for agent creation steps
LauJoeYing Jun 29, 2025
89cb47a
feat: standardize buyer environment variable name
LauJoeYing Jun 29, 2025
2dd61a1
feat: standardize seller environment variable name
LauJoeYing Jun 29, 2025
41cbe67
docs: update reactive and agentic mode readme
LauJoeYing Jun 29, 2025
86bcee6
refactor: replace os.environ.get with env for agentic folder
LauJoeYing Jun 30, 2025
7489ad8
docs: replace os.environ.get with env object
LauJoeYing Jun 30, 2025
b37176c
feat: bumps virtuals-acp version
Ang-dot Jun 30, 2025
b970ee8
Merge pull request #177 from LauJoeYing/joey-update-docs
celesteanglm Jun 30, 2025
2dabdfd
feat: add graduated flag
celesteanglm Jun 30, 2025
7353e63
fix: graduated flag logic
celesteanglm Jun 30, 2025
43632d5
feat: add graduated flag to evaluator
Ang-dot Jun 30, 2025
0470a87
Merge pull request #178 from game-by-virtuals/feat/graduated-flag
celesteanglm Jun 30, 2025
3216306
feat: add browse agent param keyword
Ang-dot Jun 30, 2025
6f1d3e4
bump acp to v0.2.1
celesteanglm Jun 30, 2025
ab6bc41
feat: add cluster and graduated parameters in ACP plugin setup
LauJoeYing Jun 30, 2025
d1df9e9
Update buyer.py
LauJoeYing Jun 30, 2025
7fcd284
feat: add cluster and graduated parameters in ACP plugin setup
LauJoeYing Jun 30, 2025
922d1fa
Update buyer.py
LauJoeYing Jun 30, 2025
e5388be
Merge pull request #179 from LauJoeYing/joey-update-docs
celesteanglm Jun 30, 2025
31d0dbf
chore: bumps virtuals-acp version
Ang-dot Jul 3, 2025
c2b2a42
chore: bumps virtuals-acp version
Ang-dot Jul 3, 2025
d7237e2
Merge branch 'feat/acp' of https://github.com/game-by-virtuals/game-p…
celesteanglm Jul 3, 2025
891664f
bump to 0.2.2
celesteanglm Jul 3, 2025
ee40edf
refactor: add Threading lock to prevent multiple concurrent alchemy a…
celesteanglm Jul 5, 2025
afca951
fix: use updated ACP SDK for websocket fix
celesteanglm Jul 5, 2025
92897e2
refactor: use threading lock for reactive buyer.py
celesteanglm Jul 5, 2025
0280008
refactor: remove test configs
celesteanglm Jul 5, 2025
f2ece89
refactor: add thread lock for agent.step, add more logging
celesteanglm Jul 6, 2025
450628b
refactor: acp plugin - remove test logs for thread lock example
celesteanglm Jul 6, 2025
e7a909c
Merge pull request #180 from game-by-virtuals/refactor/example-thread…
celesteanglm Jul 6, 2025
fe54ad2
refactor: agent state optimisations
celesteanglm Jul 6, 2025
48c58b0
refactor: call job apis only if needed for agent state
celesteanglm Jul 7, 2025
c0d223d
refactor: handle no limit scenario for agent state
celesteanglm Jul 7, 2025
279ee4e
refactor: remove unused vars for agent state
celesteanglm Jul 7, 2025
1877497
Merge pull request #181 from game-by-virtuals/refactor/agent-state-op…
celesteanglm Jul 7, 2025
ddb10e1
bump acp to v0.2.3
celesteanglm Jul 7, 2025
62a06c2
fix: race condition bug for threading lock example
celesteanglm Jul 10, 2025
7385bde
refactor: remove hardcoding of seller name
celesteanglm Jul 10, 2025
b7878fe
docs: update job queue info in readme
LauJoeYing Jul 11, 2025
7dd85c7
docs: update reduce agent state info in readme and update registry link
LauJoeYing Jul 13, 2025
b17ad3a
Update README.md
LauJoeYing Jul 13, 2025
015457f
Merge pull request #182 from LauJoeYing/joey-update-queue-info
celesteanglm Jul 13, 2025
a137bb2
Merge pull request #183 from LauJoeYing/docs/joey-add-state-managemen…
celesteanglm Jul 13, 2025
aca7322
docs(readme): add instructions for pruning agent state with AcpPlugin…
LauJoeYing Jul 14, 2025
a85e874
Update README.md
LauJoeYing Jul 14, 2025
5527343
Merge pull request #184 from LauJoeYing/docs/joey-add-prune-agent-sta…
celesteanglm Jul 14, 2025
de56e86
chore: bumps virtuals-acp to latest version
Ang-dot Jul 14, 2025
de3ec7e
docs: update acp techbook info and link
LauJoeYing Jul 29, 2025
9a3d7e3
update docs
LauJoeYing Jul 30, 2025
86c8e8c
Merge pull request #185 from LauJoeYing/joey-update-techbook-info-in-…
celesteanglm Jul 30, 2025
e6eebef
refactor: use IDeliverable from virtuals-acp
Ang-dot Jul 30, 2025
6144677
refactor: use python naming convention
Ang-dot Jul 30, 2025
c153cfd
bump to v0.2.6
celesteanglm Jul 30, 2025
b4653cf
bump acp sdk python to version 0.1.22
LauJoeYing Aug 1, 2025
8d64c73
update graduation status and online status logic to both agentic and …
LauJoeYing Aug 1, 2025
bdcf826
Merge pull request #186 from LauJoeYing/joey-add-online-status-n-grad…
celesteanglm Aug 1, 2025
f2545e4
bump acp to v0.2.7
celesteanglm Aug 1, 2025
3c764e7
Merge branch 'main' into feat/acp
celesteanglm Aug 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*.pyc
*__pycache__
*.json
.python-version

*.DS_Store
dist/
Expand Down
Binary file added docs/imgs/ACP-banner.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/Join-acp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/agent-wallet-page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/agent_info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/click_next.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/connect-wallet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/register_new_agent.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/whitelist-wallet-info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/whitelist-wallet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
356 changes: 356 additions & 0 deletions plugins/acp/README.md

Large diffs are not rendered by default.

Empty file added plugins/acp/__init__.py
Empty file.
688 changes: 688 additions & 0 deletions plugins/acp/acp_plugin_gamesdk/acp_plugin.py

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions plugins/acp/acp_plugin_gamesdk/env.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from typing import Optional
from virtuals_acp.env import EnvSettings
from pydantic import field_validator

class PluginEnvSettings(EnvSettings):
GAME_DEV_API_KEY: str
GAME_API_KEY: str
BUYER_AGENT_GAME_TWITTER_ACCESS_TOKEN: str
SELLER_AGENT_GAME_TWITTER_ACCESS_TOKEN: str
WHITELISTED_WALLET_ENTITY_ID: Optional[int] = None
# BUYER_AGENT_TWITTER_BEARER_TOKEN: str
# BUYER_AGENT_TWITTER_API_KEY: str
# BUYER_AGENT_TWITTER_API_SECRET_KEY: str
# BUYER_AGENT_TWITTER_ACCESS_TOKEN: str
# BUYER_AGENT_TWITTER_ACCESS_TOKEN_SECRET: str
# SELLER_AGENT_TWITTER_BEARER_TOKEN: str
# SELLER_AGENT_TWITTER_API_KEY: str
# SELLER_AGENT_TWITTER_API_SECRET_KEY: str
# SELLER_AGENT_TWITTER_ACCESS_TOKEN: str
# SELLER_AGENT_TWITTER_ACCESS_TOKEN_SECRET: str

@field_validator("GAME_DEV_API_KEY", "GAME_API_KEY")
@classmethod
def check_apt_prefix(cls, v: str) -> str:
if v and not v.startswith("apt-"):
raise ValueError("GAME key must start with 'apt-'")
return v

@field_validator("BUYER_AGENT_GAME_TWITTER_ACCESS_TOKEN", "SELLER_AGENT_GAME_TWITTER_ACCESS_TOKEN")
@classmethod
def check_apx_prefix(cls, v: str) -> str:
if v and not v.startswith("apx-"):
raise ValueError("SELLER_AGENT_GAME_TWITTER_ACCESS_TOKEN must start with 'apx-'")
return v

147 changes: 147 additions & 0 deletions plugins/acp/acp_plugin_gamesdk/interface.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
from dataclasses import dataclass
from enum import Enum
from typing import Optional, List, Literal, Dict, Any
from pydantic import BaseModel

from virtuals_acp.models import ACPJobPhase, IDeliverable


class AcpOffering(BaseModel):
name: str
price: float

def __str__(self) -> str:
return f"Offering(name={self.name}, price={self.price})"

class AcpJobPhasesDesc(str, Enum):
REQUEST = "request"
NEGOTIATION = "pending_payment"
TRANSACTION = "in_progress"
EVALUATION = "evaluation"
COMPLETED = "completed"
REJECTED = "rejected"
EXPIRED = "expired"

ACP_JOB_PHASE_MAP: Dict[ACPJobPhase, AcpJobPhasesDesc] = {
ACPJobPhase.REQUEST: AcpJobPhasesDesc.REQUEST,
ACPJobPhase.NEGOTIATION: AcpJobPhasesDesc.NEGOTIATION,
ACPJobPhase.TRANSACTION: AcpJobPhasesDesc.TRANSACTION,
ACPJobPhase.EVALUATION: AcpJobPhasesDesc.EVALUATION,
ACPJobPhase.COMPLETED: AcpJobPhasesDesc.COMPLETED,
ACPJobPhase.REJECTED: AcpJobPhasesDesc.REJECTED,
ACPJobPhase.EXPIRED: AcpJobPhasesDesc.EXPIRED,
}

ACP_JOB_PHASE_REVERSE_MAP: Dict[str, ACPJobPhase] = {
"request": ACPJobPhase.REQUEST,
"pending_payment": ACPJobPhase.NEGOTIATION,
"in_progress": ACPJobPhase.TRANSACTION,
"evaluation": ACPJobPhase.EVALUATION,
"completed": ACPJobPhase.COMPLETED,
"rejected": ACPJobPhase.REJECTED,
"expired": ACPJobPhase.EXPIRED,
}

class AcpRequestMemo(BaseModel):
id: int

def __repr__(self) -> str:
return f"Memo(ID: {self.id})"

class ITweet(BaseModel):
type: Literal["buyer", "seller"]
tweet_id: str
content: str
created_at: int

class IAcpJob(BaseModel):
job_id: Optional[int]
client_name: Optional[str]
provider_name: Optional[str]
desc: str
price: str
provider_address: Optional[str]
phase: AcpJobPhasesDesc
memo: List[AcpRequestMemo]
tweet_history: Optional[List[Optional[ITweet]]]

def __repr__(self) -> str:
return (
f"Job ID: {self.job_id}, "
f"Client Name: {self.client_name}, "
f"Provider Name: {self.provider_name}, "
f"Description: {self.desc}, "
f"Price: {self.price}, "
f"Provider Address: {self.provider_address}, "
f"Phase: {self.phase.value}, "
f"Memo: {self.memo}, "
f"Tweet History: {self.tweet_history}"
)


class IInventory(IDeliverable):
job_id: int
client_name: Optional[str]
provider_name: Optional[str]

class AcpJobsSection(BaseModel):
as_a_buyer: List[IAcpJob]
as_a_seller: List[IAcpJob]

def __str__(self) -> str:
buyer_jobs = "\n".join([f"#{i+1} {str(job)}" for i, job in enumerate(self.as_a_buyer)])
seller_jobs = "\n".join([f"#{i+1} {str(job)}" for i, job in enumerate(self.as_a_seller)])
return f"As Buyer:\n{buyer_jobs}\n\nAs Seller:\n{seller_jobs}"

class AcpJobs(BaseModel):
active: AcpJobsSection
completed: List[IAcpJob]
cancelled: List[IAcpJob]

def __str__(self) -> str:
return (
f"💻 Jobs\n"
f"🌕 Active Jobs:\n{self.active}\n"
f"🟢 Completed:\n{self.completed}\n"
f"🔴 Cancelled:\n{self.cancelled}"
)

class AcpInventory(BaseModel):
acquired: List[IInventory]
produced: Optional[List[IInventory]]

def __str__(self) -> str:
return (
f"💼 Inventory\n"
f"Acquired: {self.acquired}\n"
f"Produced: {self.produced}"
)

class AcpState(BaseModel):
inventory: AcpInventory
jobs: AcpJobs

def __str__(self) -> str:
return (
f"🤖 Agent State".center(50, '=') + "\n"
f"{str(self.inventory)}\n"
f"{str(self.jobs)}\n"
f"State End".center(50, '=')
)

def to_serializable_dict(obj: Any) -> Any:
if isinstance(obj, Enum):
return obj.value
elif isinstance(obj, dict):
return {k: to_serializable_dict(v) for k, v in obj.items()}
elif isinstance(obj, list):
return [to_serializable_dict(item) for item in obj]
elif hasattr(obj, "__dict__"):
return {
k: to_serializable_dict(v)
for k, v in vars(obj).items()
if not k.startswith("_")
}
else:
return obj

28 changes: 28 additions & 0 deletions plugins/acp/examples/agentic/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# ACP Agents' Credentials
WHITELISTED_WALLET_PRIVATE_KEY=<0x-your-whitelisted-wallet-private-key>
BUYER_AGENT_WALLET_ADDRESS=<0x-your-buyer-agent-wallet-address>
SELLER_AGENT_WALLET_ADDRESS=<0x-your-seller-agent-wallet-address>
BUYER_ENTITY_ID=<your-buyer-entity-id>
SELLER_ENTITY_ID=<your-seller-entity-id>
EVALUATOR_ENTITY_ID=<your-evaluator-entity-id>

# GAME API Key (get from https://console.game.virtuals.io/)
GAME_API_KEY=<apt-your-game-api-key>
# GAME Dev API Key (get from Virtuals' DevRels)
GAME_DEV_API_KEY=<apt-your-game-dev-api-key>

# GAME Twitter Access Token for X (Twitter) Authentication
BUYER_AGENT_GAME_TWITTER_ACCESS_TOKEN=<apx-your-buyer-agent-game-twitter-access-token>
SELLER_AGENT_GAME_TWITTER_ACCESS_TOKEN=<apx-your-seller-agent-game-twitter-access-token>

# GAME Twitter Access Token for X (Twitter) Authentication
BUYER_AGENT_TWITTER_BEARER_TOKEN=<your-buyer-agent-twitter-bearer-token>
BUYER_AGENT_TWITTER_API_KEY=<your-buyer-agent-twitter-api-key>
BUYER_AGENT_TWITTER_API_SECRET_KEY=<your-buyer-agent-twitter-api-secret-key>
BUYER_AGENT_TWITTER_ACCESS_TOKEN=<your-buyer-agent-twitter-access-token>
BUYER_AGENT_TWITTER_ACCESS_TOKEN_SECRET=<your-buyer-agent-twitter-access-token-secret>
SELLER_AGENT_TWITTER_BEARER_TOKEN=<your-seller-agent-twitter-bearer-token>
SELLER_AGENT_TWITTER_API_KEY=<your-seller-agent-twitter-api-key>
SELLER_AGENT_TWITTER_API_SECRET_KEY=<your-seller-agent-twitter-api-secret-key>
SELLER_AGENT_TWITTER_ACCESS_TOKEN=<your-seller-agent-twitter-access-token>
SELLER_AGENT_TWITTER_ACCESS_TOKEN_SECRET=<your-seller-agent-twitter-access-token-secret>
Loading