fvtt-world-cli 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -34
- package/dist/index.js +428 -159
- package/docs/README.md +5 -61
- package/docs/architecture.md +53 -209
- package/docs/commands.md +188 -439
- package/docs/compatibility.md +15 -22
- package/docs/getting-started.md +76 -74
- package/docs/images/module-settings.png +0 -0
- package/docs/protocol.md +231 -189
- package/docs/security.md +149 -322
- package/docs/skill.md +24 -33
- package/package.json +14 -2
- package/skills/foundry-world-editor/SKILL.md +15 -1
- package/skills/foundry-world-editor/SKILL.md.sha256 +1 -1
- package/docs/images/icon.svg +0 -16
- package/docs/images/mark.svg +0 -15
package/README.md
CHANGED
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
# World CLI for Foundry VTT
|
|
2
2
|
|
|
3
|
-
[](https://foundryvtt.com)
|
|
4
|
+
[](https://www.npmjs.com/package/fvtt-world-cli)
|
|
5
|
+
[](https://www.npmjs.com/package/fvtt-world-cli)
|
|
6
|
+
[](LICENSE)
|
|
4
7
|
|
|
5
8
|
Tell your AI agent what should change in your Foundry VTT world, and it happens in the live
|
|
6
9
|
world, validated by Foundry, visible to your players immediately.
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
You → agent: "The scimitar in Valeros's inventory should burn targets on hit.
|
|
10
|
-
Add a Flaming effect to it."
|
|
11
|
-
|
|
12
|
-
agent → fvtt-world-cli:
|
|
13
|
-
actor list --name Valeros find the character
|
|
14
|
-
actor item list --name scimitar find the sword in their inventory
|
|
15
|
-
actor item effect create … add the effect to it
|
|
16
|
-
|
|
17
|
-
agent → you: "Done. Flaming effect added, already live in the world."
|
|
18
|
-
```
|
|
11
|
+

|
|
19
12
|
|
|
20
13
|
Modern agents already understand requests like that. What they have lacked is a safe way into
|
|
21
|
-
Foundry
|
|
22
|
-
bypasses
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
Foundry. Driving the browser UI is brittle and uses extra tokens. Editing world files on disk
|
|
15
|
+
bypasses Foundry's validation.
|
|
16
|
+
|
|
17
|
+
World CLI for Foundry VTT connects your agent to your open GM session. Every change runs through
|
|
18
|
+
Foundry's own APIs, exactly as if a GM had made it in the UI.
|
|
25
19
|
|
|
26
20
|
Two things it's not. It is not an AI game master: it does not run the game, it only edits the
|
|
27
21
|
world when asked. And it includes no AI of its own: you connect the agent you already use, such as
|
|
@@ -40,12 +34,12 @@ A few asks it handles end to end:
|
|
|
40
34
|
- "Turn the bestiary goblin into a flying one that throws dynamite for 2d6 damage, and add it to
|
|
41
35
|
the scene."
|
|
42
36
|
|
|
43
|
-
[Commands](docs/commands.md)
|
|
37
|
+
See [Commands](docs/commands.md) for command families and usage examples.
|
|
44
38
|
|
|
45
39
|
## Setting up
|
|
46
40
|
|
|
47
|
-
The simplest setup is one step: point your AI agent at this repository and ask it to set
|
|
48
|
-
|
|
41
|
+
The simplest setup is one step: point your AI agent at this repository and ask it to set up
|
|
42
|
+
World CLI for Foundry VTT. Then follow its lead. It will most likely ask you to install the module in
|
|
49
43
|
Foundry and click *Pair* there, and it handles the rest itself.
|
|
50
44
|
|
|
51
45
|
### Manual setup
|
|
@@ -73,6 +67,9 @@ agent works with the world.
|
|
|
73
67
|
fvtt-world-cli bridge serve
|
|
74
68
|
```
|
|
75
69
|
|
|
70
|
+
Keep this terminal open and use a second terminal for the remaining commands. Keep the target
|
|
71
|
+
world open in Foundry, logged in as a GM.
|
|
72
|
+
|
|
76
73
|
4. Pair the browser: choose *Pair* in the module's Authorization window, reachable from the
|
|
77
74
|
*World CLI* group in the scene controls or from the module's settings. Then approve the request
|
|
78
75
|
from the terminal. It shows the requesting origin, world, GM, and browser, and asks for a yes
|
|
@@ -82,7 +79,10 @@ agent works with the world.
|
|
|
82
79
|
fvtt-world-cli auth
|
|
83
80
|
```
|
|
84
81
|
|
|
85
|
-
5.
|
|
82
|
+
5. Check the connection in Foundry. The *World CLI* icon in the scene controls turns green when
|
|
83
|
+
connected. Open *Bridge status* from the same group to see the connection details.
|
|
84
|
+
|
|
85
|
+
6. Optionally, install the packaged skill into your AI agent; the next section explains what it
|
|
86
86
|
does:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
@@ -106,11 +106,9 @@ instructions survive updates.
|
|
|
106
106
|
|
|
107
107
|
## Built to be trusted with a live world
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
authority; [Security](docs/security.md) covers the boundaries in full. In short:
|
|
109
|
+
You control which browser connects and which commands the agent may run. The main safeguards are:
|
|
111
110
|
|
|
112
|
-
-
|
|
113
|
-
internet-facing mode.
|
|
111
|
+
- The daemon accepts connections only from your machine, with no internet-facing mode.
|
|
114
112
|
- Nothing connects without your approval: every browser pairs once through an explicit yes at your
|
|
115
113
|
terminal, and no secrets are printed along the way.
|
|
116
114
|
- Foundry remains the authority: every change runs through the same Document APIs and validation
|
|
@@ -119,21 +117,23 @@ authority; [Security](docs/security.md) covers the boundaries in full. In short:
|
|
|
119
117
|
validation and guards as a real call and stops before mutation.
|
|
120
118
|
- Every command has a permission in the active Foundry client: run, ask the GM, or refuse.
|
|
121
119
|
Destructive commands ask the GM by default.
|
|
122
|
-
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
120
|
+
- Commands are typed and validated on both sides of the connection. Macro execution and regions
|
|
121
|
+
that trigger macros are disabled by default and require the GM to enable dedicated commands.
|
|
122
|
+
Region behaviors that execute script code are blocked on every write route.
|
|
123
|
+
- File commands read assets within Foundry's managed `data` source. Writes are limited to the
|
|
124
|
+
active world's asset folders and always exclude its manifest, databases, and packs.
|
|
125
|
+
|
|
126
|
+
[Security](docs/security.md) explains these safeguards and their limits.
|
|
126
127
|
|
|
127
128
|
## Foundry compatibility
|
|
128
129
|
|
|
129
|
-
Supported on Foundry VTT v13 and v14
|
|
130
|
-
|
|
131
|
-
differences that matter to operators.
|
|
130
|
+
Supported and verified on Foundry VTT v13 and v14. Some commands are available only on certain
|
|
131
|
+
Foundry versions. See [Compatibility](docs/compatibility.md) for the differences.
|
|
132
132
|
|
|
133
133
|
## Documentation
|
|
134
134
|
|
|
135
|
-
[
|
|
136
|
-
compatibility, and
|
|
137
|
-
`fvtt-world-cli docs [document]
|
|
135
|
+
The [documentation index](docs/README.md) links to the command reference, setup guides, security,
|
|
136
|
+
compatibility, and technical documentation. These documents also ship with the CLI. Read them
|
|
137
|
+
offline with `fvtt-world-cli docs [document]`.
|
|
138
138
|
|
|
139
139
|
Bug reports and questions go to [GitHub Issues](https://github.com/DroiD16/fvtt-world-cli/issues).
|