hoi4-agent-tools 3.8.1 → 3.10.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/CHANGELOG.md +24 -1
- package/README.md +1 -1
- package/dist/bin/http.js +2 -0
- package/dist/bin/setup.js +5 -2
- package/dist/bin/stdio.js +29 -1
- package/dist/hoi4_agent_tools/core/configuration.js +8 -0
- package/dist/hoi4_agent_tools/core/engine.js +27 -8
- package/dist/hoi4_agent_tools/core/index.js +45 -20
- package/dist/hoi4_agent_tools/core/job-worker-host.js +40 -2
- package/dist/hoi4_agent_tools/core/job-worker.js +14 -0
- package/dist/hoi4_agent_tools/core/scenario-model.js +1 -1
- package/dist/hoi4_agent_tools/core/server-registry.js +138 -0
- package/dist/hoi4_agent_tools/core/server-status-resource.js +22 -0
- package/dist/hoi4_agent_tools/core/source/cache.js +89 -20
- package/dist/hoi4_agent_tools/event/service.js +7 -0
- package/dist/hoi4_agent_tools/gui/renderer.js +8 -2
- package/dist/hoi4_agent_tools/gui/scenario-generator.js +56 -0
- package/dist/hoi4_agent_tools/gui/scenario.js +2 -0
- package/dist/hoi4_agent_tools/gui/studio.js +31 -12
- package/dist/hoi4_agent_tools/gui/validators.js +22 -0
- package/dist/hoi4_agent_tools/mcp/resources/register-modern.js +13 -1
- package/dist/hoi4_agent_tools/mcp/resources/register.js +6 -0
- package/dist/hoi4_agent_tools/mcp/tools/reference.js +1 -1
- package/dist/hoi4_agent_tools/mcp/tools/technology.js +5 -2
- package/dist/hoi4_agent_tools/mcp/transports/negotiated-stdio.js +9 -0
- package/dist/hoi4_agent_tools/mcp/transports/stdio-lifetime.js +79 -0
- package/dist/hoi4_agent_tools/reference/event-popups.js +87 -0
- package/dist/hoi4_agent_tools/reference/operations.js +151 -1
- package/dist/hoi4_agent_tools/reference/player-text.js +158 -0
- package/dist/hoi4_agent_tools/reference/script-validation.js +315 -33
- package/dist/hoi4_agent_tools/reference/source-locate.js +1 -1
- package/dist/hoi4_agent_tools/schemas/gui-requests.js +18 -4
- package/dist/hoi4_agent_tools/schemas/script-validation.js +40 -7
- package/dist/hoi4_agent_tools/schemas/technology.js +4 -2
- package/dist/hoi4_agent_tools/technology/service.js +7 -0
- package/dist/hoi4_agent_tools/version.js +1 -1
- package/docs/gui.md +25 -0
- package/docs/jobs.md +8 -0
- package/docs/reference.md +38 -0
- package/docs/setup.md +11 -0
- package/docs/tools.md +1 -1
- package/npm-shrinkwrap.json +12 -8
- package/package.json +1 -1
- package/schemas/configuration.schema.json +163 -128
- package/schemas/continuous-focus-palette.schema.json +1 -1
- package/schemas/custom-weighted-pool.schema.json +1 -1
- package/schemas/decision-inspect-input.schema.json +1 -1
- package/schemas/event-feature-manifest.schema.json +1 -1
- package/schemas/focus-plan.schema.json +1 -1
- package/schemas/focus-planning-sidecar.schema.json +1 -1
- package/schemas/gui-animation-source.schema.json +1 -1
- package/schemas/gui-helper.schema.json +1 -1
- package/schemas/gui-scenario.schema.json +38 -22
- package/schemas/helper-expansion-request.schema.json +1 -1
- package/schemas/helper-expansion-summary.schema.json +1 -1
- package/schemas/impact-inspect-input.schema.json +1 -1
- package/schemas/map-operation.schema.json +1 -1
- package/schemas/mechanic-test-input.schema.json +1 -1
- package/schemas/operation-result.schema.json +1 -1
- package/schemas/package-check-input.schema.json +1 -1
- package/schemas/package-manifest.schema.json +1 -1
- package/schemas/probability-analysis-result.schema.json +1 -1
- package/schemas/probability-compare-input.schema.json +1 -1
- package/schemas/probability-evaluate-input.schema.json +1 -1
- package/schemas/probability-inspect-input.schema.json +1 -1
- package/schemas/probability-render-input.schema.json +1 -1
- package/schemas/probability-scenario-set.schema.json +1 -1
- package/schemas/probability-sequence-input.schema.json +1 -1
- package/schemas/probability-simulate-input.schema.json +1 -1
- package/schemas/probability-sweep-input.schema.json +1 -1
- package/schemas/reference-context-input.schema.json +1 -1
- package/schemas/reference-read-input.schema.json +1 -1
- package/schemas/reference-search-input.schema.json +1 -1
- package/schemas/scenario-suite.schema.json +1 -1
- package/schemas/scenario-test-input.schema.json +1 -1
- package/schemas/script-validate-input.schema.json +60 -36
- package/schemas/shared-scenario.schema.json +1 -1
- package/schemas/source-lookup-input.schema.json +1 -1
- package/server.json +2 -2
package/docs/gui.md
CHANGED
|
@@ -184,6 +184,31 @@ Source or scenario `enabled = false` selects disabled appearance and removes the
|
|
|
184
184
|
|
|
185
185
|
The renderer does not run the game engine. Each render includes a fidelity report that separates fields it models from fields it approximates, ignores, cannot resolve, or does not support. Treat that report as part of the review.
|
|
186
186
|
|
|
187
|
+
### Scenario fields
|
|
188
|
+
|
|
189
|
+
Every `scenario` needs an `id`, a short label such as `"usa_1936"`. The other fields describe the game state the window is drawn under:
|
|
190
|
+
|
|
191
|
+
| Field | Meaning |
|
|
192
|
+
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
193
|
+
| `date` | Game date, `"1936.1.1"`. |
|
|
194
|
+
| `controls` | State controllers, `{"64": "GER"}`. |
|
|
195
|
+
| `flags` | Flags on the viewing country, `{"show_settings_page": true}`. |
|
|
196
|
+
| `closedFlags` | `true` treats every flag not listed in `flags` as unset, as on a country that never received it. Without it, an undeclared flag is unknown and every condition that reads it stays unresolved. |
|
|
197
|
+
| `variables` | Variables on the viewing country, `{"settings_page": 1}`. |
|
|
198
|
+
| `values` | Exact runtime values for localisation tokens and scripted GUI properties, keyed as they appear in source. |
|
|
199
|
+
| `visibility` | Forced visibility by element or scripted GUI name, `{"settings_page_events": false}`; it overrides evaluated triggers. |
|
|
200
|
+
| `scopes` | Named scope bindings such as `FROM` with their own state. |
|
|
201
|
+
| `resolution`, `uiScale`, `state`, `language` | Screen size, in-game UI scale, preview element state, and localisation language. |
|
|
202
|
+
| `background` | `"transparent"` renders without the preview backdrop, so pixels the window does not cover are fully transparent in every PNG. |
|
|
203
|
+
|
|
204
|
+
A scripted GUI `visible` or `<element>_visible` trigger that the scenario decides hides or shows its element exactly.
|
|
205
|
+
For compositing, each visible element is its own `<g>` group in the full SVG, with an `id` that matches the element in `layout.json`, which also records every element's box.
|
|
206
|
+
A trigger the scenario cannot decide leaves the element drawn and lists it in the fidelity report as unresolved, so pages that the game shows one at a time can overlap in the preview.
|
|
207
|
+
For tabbed windows, set the flags or variables of the page to show and `closedFlags: true`, then render each page as its own scenario through `relatedScenarios`.
|
|
208
|
+
`GUI_UNRESOLVED_VISIBILITY_OVERLAP` names each overlapping pair drawn together for that reason.
|
|
209
|
+
`GUI_NEAR_CENTRE_OFFSET` names an element whose horizontal centre is between half a pixel and 3 pixels from its parent's centre, which usually means it was meant to be centred.
|
|
210
|
+
Scripted localisation (`defined_text`) used by the window resolves to its first branch whose trigger the scenario decides as true, as long as every earlier branch is decided false; otherwise the token renders as `[dynamic_loc]`. A value in `values` always takes precedence.
|
|
211
|
+
|
|
187
212
|
The generated primary view replaces discovered numeric and text runtime tokens with plausible values. Set `generatedScenarios.preservePlaceholder` to `true`, or disable generation, when the same run should also show unresolved numeric values such as `[?variable|format]` as `[X]` and unresolved text-returning scripted or scoped localisation such as `[GetStatusText]`, `[FROM.GetName]`, and `[?leader_scope.GetName]` as `[dynamic_loc]`. Put `variable` or `GetStatusText` in the supplied scenario's `values` object when an exact value matters; explicit values always take precedence over generated ones and can drive the related meter or state-dependent controls. Supported HOI4 `§` localisation colour controls use the active font's palette and `§!` restores the face colour.
|
|
188
213
|
|
|
189
214
|
A rewrite stops if malformed or unsupported GUI script makes the requested change ambiguous. Frame-sheet animation, nine-slice tiling, progress composition, masking, and the primary and secondary textures referenced by vanilla GFX definitions render offline. Font selection follows mod/game load order and preview language, accepts Paradox hex and numeric color declarations, and uses the supplied HOI4 bitmap or outline font assets without requiring host font installation. Shader operations outside the supported colour subset, hardcoded controls, and dynamic values that are not supplied by a scenario remain fidelity-report entries; an unexecuted shader never hides its resolved base texture.
|
package/docs/jobs.md
CHANGED
|
@@ -51,6 +51,14 @@ A running cancellation is observed by the isolated worker; if a rewrite has alre
|
|
|
51
51
|
Cancelling an ordinary synchronous call prevents admission when possible and otherwise requests cooperative cancellation of its durable job.
|
|
52
52
|
Closing the originating connection does not cancel an accepted native task.
|
|
53
53
|
|
|
54
|
+
A worker busy in long synchronous analysis cannot observe its own cancellation, so the server that started it also supervises read-only jobs.
|
|
55
|
+
A read-only job still running `jobCancelGraceSeconds` (default 10) after cancellation is stopped and settles as cancelled.
|
|
56
|
+
A read-only job still running `jobDeadlineSeconds` (default 1,800) after it was dispatched is stopped and fails with `JOB_DEADLINE_EXCEEDED`; narrow its selector or limits, or raise the setting in the server configuration.
|
|
57
|
+
Rewrite jobs are never stopped this way, because their transaction journal owns write recovery; they keep cooperative cancellation and reconciliation.
|
|
58
|
+
Supervision belongs to the server process that dispatched the worker. A read-only worker whose dispatching server has exited enforces the same deadline itself and then exits; a rewrite worker keeps running until it finishes.
|
|
59
|
+
`jobWorkerMaxHeapMiB` sets a V8 heap ceiling for each worker; without it, workers use Node's default.
|
|
60
|
+
At most `maxSharedTools` (default 4) workers and expensive calls run at once across every server process that shares a `serverStateRoot`; further work waits for capacity.
|
|
61
|
+
|
|
54
62
|
Read-only jobs stage a source-revision-bound result checkpoint before terminal publication.
|
|
55
63
|
If a worker or server stops after that checkpoint, a later authorized process publishes the retained result without rerunning the operation.
|
|
56
64
|
Event and technology helper expansion also saves an authenticated intermediate frontier with its exact source revision and traversal contract.
|
package/docs/reference.md
CHANGED
|
@@ -21,6 +21,7 @@ Markdown headings and recognizable standalone names in generated `.log` files fo
|
|
|
21
21
|
- When `hoi4.source_lookup` finds no definition, `suggestions` lists up to five indexed identifiers within three edits of the requested symbol, nearest first, which catches typos and near-miss names.
|
|
22
22
|
- `hoi4.source_lookup` with `path` and `line` instead of `symbol` locates a source position, such as a diagnostic or a changed line in a diff. `path` may be a result path such as `mod:events/example.txt`, a path relative to a source root, or an absolute path inside one. The result names the file's layer and whether a later layer shadows it, the indexed definitions that contain the line, innermost first, and the chain of enclosing assignments with zero-based occurrences for repeated keys. Its `keyPath` starts inside the innermost definition: pass that definition's `id` as `symbol`, its `kind`, and the `keyPath` to read or list that exact block. Without `column`, the first non-blank character of the line is used. A file with parse errors returns its definitions but no structural chain. Only the requested file's folder is scanned, in every layer.
|
|
23
23
|
- `hoi4.script_validate`: check a bounded effect or trigger body against installed native-command documentation. Supply the body in `source`, its `kind`, and its current `scope`. Results cover syntax, command kind, and declared scope, with exact documentation citations. They do not validate command parameters or prove game execution.
|
|
24
|
+
- `hoi4.script_validate` with `path` instead of `source` checks a whole mod file: every effect and trigger body of an event, decision, national focus, scripted effect, scripted trigger, or on-action file, with the scope the file's structure fixes. It is meant to catch the game's own load errors before launch.
|
|
24
25
|
|
|
25
26
|
## Navigate a definition
|
|
26
27
|
|
|
@@ -58,6 +59,43 @@ It reads supported scopes from `effects_documentation.md`, `triggers_documentati
|
|
|
58
59
|
`valid: true` applies only to `checksPerformed`; `parametersChecked` remains false.
|
|
59
60
|
Inspect the cited parameter syntax and use the relevant domain tools for broader validation.
|
|
60
61
|
Replies prioritize problems, bound `findings`, and report `omittedFindings`; execution is bounded to 256 visited entries and 64,000 UTF-8 source bytes.
|
|
62
|
+
|
|
63
|
+
### Check a whole file
|
|
64
|
+
|
|
65
|
+
Pass `path` (a result path, a path relative to a source root, or an absolute path inside one) without `source`, `kind`, `scope`, or `bindings`.
|
|
66
|
+
The file's folder decides its family and root scopes: event `trigger`, `immediate`, `after`, and option bodies use the event type's scope; decision and focus triggers and effects use country scope; scripted effects, scripted triggers, on actions, and decision `target_trigger` bodies have no fixed scope, so their command kinds are checked and scope rules are skipped.
|
|
67
|
+
`file` reports the family, the number of checked bodies, and how many had no fixed scope; a body without a fixed scope keeps `valid` at `null`.
|
|
68
|
+
File mode lists only problems: matching commands are counted in `checkedCommands`, and unchecked native argument blocks are counted in `argumentBlocksUnchecked`.
|
|
69
|
+
It is bounded to 50,000 visited entries.
|
|
70
|
+
|
|
71
|
+
The mod's scripted effects and triggers count as known commands of their kind.
|
|
72
|
+
Building, ideology, and resource names count as the documented generic triggers that take them as keys (`arms_factory > 2`, `communism > 0.4`), from the documentation's supported lists and from the `common/buildings`, `common/ideologies`, and `common/resources` databases of every source layer.
|
|
73
|
+
`FROM`, chained keywords, `event_target:`, `var:`, `mio:`, and `sp:` blocks are checked for command kinds without scope rules.
|
|
74
|
+
|
|
75
|
+
Two checks predict load errors the game reports:
|
|
76
|
+
|
|
77
|
+
- `SCRIPT_DYNAMIC_VARIABLE_AS_TRIGGER`: a dynamic variable from `dynamic_variables_documentation.md` compared directly as a trigger, such as `num_owned_states > 1`; compare it with `check_variable` instead.
|
|
78
|
+
- `SCRIPT_SCOPE_LINK_WRONG_SCOPE`: a scope link used outside the scopes the wiki's Scopes page allows, such as `controller` in country scope.
|
|
79
|
+
|
|
80
|
+
The scope links `owner`, `controller`, `capital_scope`, `overlord`, and `faction_leader` are recognized in any letter case in both modes.
|
|
81
|
+
|
|
82
|
+
### Player-facing text
|
|
83
|
+
|
|
84
|
+
For event, decision, and national focus files, file mode also checks English text as the game resolves it, from the last loaded definition of each key, and adds `player_text` to `checksPerformed`.
|
|
85
|
+
These findings have `status: "warning"` and never change `valid`:
|
|
86
|
+
|
|
87
|
+
- `SCRIPT_NEWS_TEXT_COLOUR_CODE`: a news event, or an event with a `GFX_report_event` picture, whose title, description, or option text contains a `§` or `£` code, directly or through a `defined_text` branch it shows.
|
|
88
|
+
- `SCRIPT_TEXT_IMPLEMENTATION_WORDING`: event text, or a decision's or focus's name or description, containing development wording such as TODO, placeholder, hardcoded, newly added, or reworked.
|
|
89
|
+
- `SCRIPT_FLAG_TOOLTIP_UNLOCALISED`: a `has_country_flag`, `has_global_flag`, or `has_state_flag` check in a decision's `available` block or a focus's `available` or `bypass` block whose flag has no localisation key, so the requirement tooltip prints the raw flag name. Checks inside `hidden_trigger` and `custom_trigger_tooltip` are skipped, and scripted triggers called from those blocks are not expanded.
|
|
90
|
+
|
|
91
|
+
Each message names the localisation file and line that carries the text.
|
|
92
|
+
|
|
93
|
+
### Repeated event windows
|
|
94
|
+
|
|
95
|
+
File mode reports `SCRIPT_EVENT_POPUP_REPEATED` warnings for any family and adds `event_popups` to `checksPerformed`.
|
|
96
|
+
A visible event fired inside an `every_*` loop reaches one player once per loop member when it is sent to a fixed recipient (`ROOT`, `FROM`, `PREV`, `global`, a tag, an `event_target:` or a `var:` scope), or when it is `major = yes` without `fire_only_once`, because a major event is shown to every country.
|
|
97
|
+
An event sent to each loop member in turn, a hidden event, and an event the scanned sources do not define are not reported.
|
|
98
|
+
Scripted effects called inside a loop are checked in their own file, not followed from the caller.
|
|
61
99
|
Search and context replies also report `limitedByBytes` when metadata exceeds their reply budget.
|
|
62
100
|
Read omitted required sources with targeted calls rather than repeatedly requesting the same oversized bundle.
|
|
63
101
|
Reference text supports UTF-8, Windows-1252, and explicitly BOM-marked UTF-16; native engine source encoding rules remain separate.
|
package/docs/setup.md
CHANGED
|
@@ -84,6 +84,17 @@ See [Local references](reference.md) for source selection and missing-source rep
|
|
|
84
84
|
| A render lacks icons or fonts | Confirm `--game-root` and the mod's asset paths. Read the missing-file findings. |
|
|
85
85
|
| A control's state is unresolved | Supply the scenario's required country, state, controller or variable inputs; do not assume a visible control is available. |
|
|
86
86
|
| A large query takes several minutes | Start with the specific tree, window or source area you need. Use [background jobs](jobs.md) when supported by your client. |
|
|
87
|
+
| Idle server processes accumulate | Set an idle limit as described in [Server lifetime](#server-lifetime). |
|
|
87
88
|
|
|
88
89
|
The supplied Codex registration allows 120 seconds for startup and 600 seconds per tool call.
|
|
90
|
+
|
|
89
91
|
For remote or shared deployments, use the [HTTP guide](http.md).
|
|
92
|
+
|
|
93
|
+
### Server lifetime
|
|
94
|
+
|
|
95
|
+
A stdio server exits when its client closes stdin, and when the process that launched it, such as a `cmd.exe` shim, has exited.
|
|
96
|
+
Some clients start a server for every subagent and keep each connection open after the subagent finishes, so idle servers accumulate and each holds its own index in memory.
|
|
97
|
+
A server with no client traffic and no open request for `stdioIdleExitMinutes` minutes exits.
|
|
98
|
+
That setting applies to every client sharing the server configuration, so prefer the `HOI4_AGENT_STDIO_IDLE_EXIT_MINUTES` environment variable in the affected client's registration; the Codex registrations printed by `hoi4-agent-tools-setup --print-client-config` set it to 30.
|
|
99
|
+
A client that later calls an exited server reports it as disconnected, so leave the limit at `0` (never) for a single long-lived session.
|
|
100
|
+
Over stdio, read the `hoi4-agent://server/status` resource to see every server process that shares the server state root, with its transport, memory, last client activity and the execution limits in effect. Records of exited processes are removed on read; a server that has not updated its record for five minutes is listed as stale.
|
package/docs/tools.md
CHANGED
|
@@ -20,7 +20,7 @@ Use the connected server's live schema for the fields accepted by each call.
|
|
|
20
20
|
| `hoi4.reference_search` | Search local documentation in plain words or script names; each result names its answering line. |
|
|
21
21
|
| `hoi4.reference_read` | Read one revision-bound section, with line continuation. |
|
|
22
22
|
| `hoi4.source_lookup` | Find exact definitions, overrides and usages across game, DLC and mod, or the definition containing a file line. |
|
|
23
|
-
| `hoi4.script_validate` | Check snippet syntax,
|
|
23
|
+
| `hoi4.script_validate` | Check a snippet or a whole mod file for syntax, command kinds, and scopes against local documentation. |
|
|
24
24
|
| `hoi4.event_inspect` | Scan, trace, explain, lint, or assess event chains and their state flow. |
|
|
25
25
|
| `hoi4.event_render` | Render source-linked event routes, options, timing, state, scope, and unresolved edges. |
|
|
26
26
|
| `hoi4.event_compare` | Compare event-chain topology and diagnostics between revisions. |
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hoi4-agent-tools",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.10.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "hoi4-agent-tools",
|
|
9
|
-
"version": "3.
|
|
9
|
+
"version": "3.10.0",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@fontsource-variable/roboto": "5.3.0",
|
|
@@ -5744,9 +5744,9 @@
|
|
|
5744
5744
|
"license": "MIT"
|
|
5745
5745
|
},
|
|
5746
5746
|
"node_modules/proxy-addr": {
|
|
5747
|
-
"version": "2.0.
|
|
5748
|
-
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.
|
|
5749
|
-
"integrity": "sha512-
|
|
5747
|
+
"version": "2.0.8",
|
|
5748
|
+
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz",
|
|
5749
|
+
"integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==",
|
|
5750
5750
|
"license": "MIT",
|
|
5751
5751
|
"dependencies": {
|
|
5752
5752
|
"forwarded": "0.2.0",
|
|
@@ -5754,6 +5754,10 @@
|
|
|
5754
5754
|
},
|
|
5755
5755
|
"engines": {
|
|
5756
5756
|
"node": ">= 0.10"
|
|
5757
|
+
},
|
|
5758
|
+
"funding": {
|
|
5759
|
+
"type": "opencollective",
|
|
5760
|
+
"url": "https://opencollective.com/express"
|
|
5757
5761
|
}
|
|
5758
5762
|
},
|
|
5759
5763
|
"node_modules/punycode": {
|
|
@@ -6256,9 +6260,9 @@
|
|
|
6256
6260
|
}
|
|
6257
6261
|
},
|
|
6258
6262
|
"node_modules/source-map-js": {
|
|
6259
|
-
"version": "1.2.
|
|
6260
|
-
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.
|
|
6261
|
-
"integrity": "sha512-
|
|
6263
|
+
"version": "1.2.2",
|
|
6264
|
+
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
|
|
6265
|
+
"integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
|
|
6262
6266
|
"dev": true,
|
|
6263
6267
|
"license": "BSD-3-Clause",
|
|
6264
6268
|
"engines": {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hoi4-agent-tools",
|
|
3
3
|
"mcpName": "io.github.klimPaskov/hoi4-agent-tools",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.10.0",
|
|
5
5
|
"description": "HOI4 modding tools for agents: local references, visual previews, focus trees, interfaces and maps.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "Apache-2.0",
|