hoi4-agent-tools 2.3.4 → 2.3.5
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 +5 -0
- package/dist/hoi4_agent_tools/core/domain-scan-patterns.js +66 -0
- package/dist/hoi4_agent_tools/mcp/server/base-tools.js +9 -1
- package/dist/hoi4_agent_tools/mcp/tools/chaosx.js +3 -1
- package/dist/hoi4_agent_tools/mcp/tools/focus.js +5 -4
- package/dist/hoi4_agent_tools/mcp/tools/map.js +5 -7
- package/dist/hoi4_agent_tools/probability/service.js +8 -4
- package/dist/hoi4_agent_tools/version.js +1 -1
- package/package.json +1 -1
- package/schemas/configuration.schema.json +1 -1
- package/schemas/continuous-focus-palette.schema.json +1 -1
- package/schemas/custom-weighted-pool.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 +1 -1
- package/schemas/map-operation.schema.json +1 -1
- package/schemas/operation-result.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/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.3.5 - 2026-08-02
|
|
4
|
+
|
|
5
|
+
- Replaced all-domain scans in focus, map, probability, rewrite validation, and country-asset discovery with domain-specific source inventories.
|
|
6
|
+
- Prevented large unrelated mod files from producing `SCAN_BYTE_LIMIT` errors in otherwise bounded MCP work and added low-ceiling regression coverage.
|
|
7
|
+
|
|
3
8
|
## 2.3.4 - 2026-07-28
|
|
4
9
|
|
|
5
10
|
- Bounded large game-backed event scans before workspace-wide lifecycle and helper analysis could exhaust the MCP process and close the stdio transport.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { compareCodeUnits } from './canonical.js';
|
|
2
|
+
function under(roots, glob) {
|
|
3
|
+
return roots.map((root) => `${root.replaceAll('\\', '/').replace(/\/$/u, '')}/${glob}`);
|
|
4
|
+
}
|
|
5
|
+
function uniquePatterns(patterns) {
|
|
6
|
+
return [...new Set(patterns)].sort(compareCodeUnits);
|
|
7
|
+
}
|
|
8
|
+
function englishLocalisationPatterns(roots) {
|
|
9
|
+
return [...under(roots, 'english/**/*.{yml,yaml}'), ...under(roots, '*.{yml,yaml}')];
|
|
10
|
+
}
|
|
11
|
+
/** Sources required to import, link, lint, render, and rewrite focus content. */
|
|
12
|
+
export function focusDomainScanPatterns(workspace) {
|
|
13
|
+
const roots = workspace.registration.roots;
|
|
14
|
+
return uniquePatterns([
|
|
15
|
+
...under(roots.focus, '**/*.txt'),
|
|
16
|
+
...under(roots.focus, '**/*.focus-plan.json'),
|
|
17
|
+
'common/continuous_focus/**/*.txt',
|
|
18
|
+
'common/decisions/**/*.txt',
|
|
19
|
+
'common/ideas/**/*.txt',
|
|
20
|
+
'common/characters/**/*.txt',
|
|
21
|
+
'common/scripted_effects/**/*.txt',
|
|
22
|
+
'common/scripted_triggers/**/*.txt',
|
|
23
|
+
'common/script_constants/**/*.txt',
|
|
24
|
+
'common/mtth/**/*.txt',
|
|
25
|
+
'events/**/*.txt',
|
|
26
|
+
...under(roots.interface, '**/*.gfx'),
|
|
27
|
+
...under(roots.gfx, '**/*.gfx'),
|
|
28
|
+
...englishLocalisationPatterns(roots.localisation),
|
|
29
|
+
]);
|
|
30
|
+
}
|
|
31
|
+
/** Weighted source surfaces and shared definitions used by probability analysis. */
|
|
32
|
+
export function probabilityDomainScanPatterns(workspace, sourcePaths = []) {
|
|
33
|
+
const roots = workspace.registration.roots;
|
|
34
|
+
const normalizedSourcePaths = sourcePaths.map((sourcePath) => sourcePath.replace(/^.*?:/u, '').replaceAll('\\', '/').replace(/^\.\//u, ''));
|
|
35
|
+
return uniquePatterns([
|
|
36
|
+
...normalizedSourcePaths,
|
|
37
|
+
...under(roots.focus, '**/*.txt'),
|
|
38
|
+
'common/decisions/**/*.txt',
|
|
39
|
+
'common/technologies/**/*.txt',
|
|
40
|
+
'common/doctrines/**/*.txt',
|
|
41
|
+
'common/ai_strategy/**/*.txt',
|
|
42
|
+
'common/ai_strategy_plans/**/*.txt',
|
|
43
|
+
'common/ai_focuses/**/*.txt',
|
|
44
|
+
'common/on_actions/**/*.txt',
|
|
45
|
+
'common/scripted_effects/**/*.txt',
|
|
46
|
+
'common/scripted_triggers/**/*.txt',
|
|
47
|
+
'common/script_constants/**/*.txt',
|
|
48
|
+
'common/mtth/**/*.txt',
|
|
49
|
+
'events/**/*.txt',
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
/** Text sources needed to discover country flags and leader portraits. */
|
|
53
|
+
export function countryAssetDiscoveryPatterns(workspace) {
|
|
54
|
+
const roots = workspace.registration.roots;
|
|
55
|
+
return uniquePatterns([
|
|
56
|
+
'history/countries/**/*.txt',
|
|
57
|
+
'common/characters/**/*.txt',
|
|
58
|
+
'common/scripted_effects/**/*.txt',
|
|
59
|
+
'events/**/*.txt',
|
|
60
|
+
...under(roots.interface, '**/*.gfx'),
|
|
61
|
+
...under(roots.gfx, '**/*.gfx'),
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
export function exactChangedFilePatterns(relativePaths) {
|
|
65
|
+
return uniquePatterns(relativePaths.map((relativePath) => relativePath.replaceAll('\\', '/').replace(/^\.\//u, '')));
|
|
66
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { boundedSourceHashEvidence, publicArtifactLink } from '../../core/artifacts.js';
|
|
2
2
|
import { canonicalJson } from '../../core/canonical.js';
|
|
3
|
+
import { exactChangedFilePatterns, focusDomainScanPatterns, } from '../../core/domain-scan-patterns.js';
|
|
3
4
|
import { ServiceError } from '../../core/result.js';
|
|
4
5
|
import { parseClausewitz } from '../../core/source/index.js';
|
|
5
6
|
import { TRANSACTION_MAX_DIAGNOSTICS } from '../../core/transaction-limits.js';
|
|
@@ -35,7 +36,14 @@ function focusReferences(engineSnapshot) {
|
|
|
35
36
|
}
|
|
36
37
|
export async function postValidateTransaction(engine, transaction, principal, signal) {
|
|
37
38
|
engine.invalidate(transaction.workspaceId);
|
|
38
|
-
const
|
|
39
|
+
const workspace = engine.resolver.get(transaction.workspaceId, principal);
|
|
40
|
+
const focusTransaction = transaction.operationKind === 'focus-plan-changes' ||
|
|
41
|
+
transaction.operationKind === 'continuous-focus-plan-changes';
|
|
42
|
+
const snapshot = await engine.scan(transaction.workspaceId, {
|
|
43
|
+
patterns: focusTransaction
|
|
44
|
+
? focusDomainScanPatterns(workspace)
|
|
45
|
+
: exactChangedFilePatterns(transaction.files.map(({ relativePath }) => relativePath)),
|
|
46
|
+
}, principal, signal);
|
|
39
47
|
const changed = new Set(transaction.files.map(({ relativePath }) => sourcePathComparisonKey(relativePath)));
|
|
40
48
|
const diagnostics = snapshot.diagnostics.filter(({ location }) => {
|
|
41
49
|
if (location === undefined)
|
|
@@ -3,6 +3,7 @@ import sharp from 'sharp';
|
|
|
3
3
|
import { z } from 'zod/v4';
|
|
4
4
|
import { publicArtifactLink } from '../../core/artifacts.js';
|
|
5
5
|
import { compareCodeUnits, hashCanonical } from '../../core/canonical.js';
|
|
6
|
+
import { countryAssetDiscoveryPatterns } from '../../core/domain-scan-patterns.js';
|
|
6
7
|
import { emptyServiceResult } from '../../core/result.js';
|
|
7
8
|
import { RenderBudget } from '../../core/render-budget.js';
|
|
8
9
|
import { workspaceIdSchema } from '../../schemas/common.js';
|
|
@@ -382,7 +383,8 @@ export function registerChaosxTools(server, engine, context) {
|
|
|
382
383
|
try {
|
|
383
384
|
const progress = progressReporter(extra);
|
|
384
385
|
await progress.report(0, 3, 'Resolving ChaosX country assets');
|
|
385
|
-
const
|
|
386
|
+
const discoveryWorkspace = engine.resolver.get(workspaceId, context.principal);
|
|
387
|
+
const snapshot = await engine.scan(workspaceId, { patterns: countryAssetDiscoveryPatterns(discoveryWorkspace) }, context.principal, progress.signal);
|
|
386
388
|
const tags = [...new Set(input.countryTags)];
|
|
387
389
|
const { selections, catalog } = await selectCountryAssets(engine, snapshot, workspaceId, tags, input.eventId, context, progress.signal);
|
|
388
390
|
await progress.report(1, 3, 'Rasterizing ChaosX country assets');
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
2
|
import { boundedSourceHashEvidence, publicArtifactLink } from '../../core/artifacts.js';
|
|
3
3
|
import { compareCodeUnits, canonicalJson, hashCanonical } from '../../core/canonical.js';
|
|
4
|
+
import { focusDomainScanPatterns } from '../../core/domain-scan-patterns.js';
|
|
4
5
|
import { RenderBudget } from '../../core/render-budget.js';
|
|
5
6
|
import { emptyServiceResult, ServiceError } from '../../core/result.js';
|
|
6
7
|
import { parseClausewitz } from '../../core/source/index.js';
|
|
@@ -351,9 +352,9 @@ async function executeFocusVisualTool(engine, workbench, context, input, extra,
|
|
|
351
352
|
try {
|
|
352
353
|
const progress = progressReporter(extra);
|
|
353
354
|
await progress.report(0, 4, 'Importing and indexing focus source');
|
|
354
|
-
const snapshot = await engine.scan(workspaceId, {}, context.principal, progress.signal);
|
|
355
|
-
await progress.report(1, 4, 'Focus source index complete');
|
|
356
355
|
const workspace = engine.resolver.get(workspaceId, context.principal);
|
|
356
|
+
const snapshot = await engine.scan(workspaceId, { patterns: focusDomainScanPatterns(workspace) }, context.principal, progress.signal);
|
|
357
|
+
await progress.report(1, 4, 'Focus source index complete');
|
|
357
358
|
const renderBudget = new RenderBudget();
|
|
358
359
|
if (input.mode === 'continuous') {
|
|
359
360
|
selectedContinuousFocusFile(snapshot, relativePath);
|
|
@@ -610,8 +611,8 @@ export function registerFocusTools(server, engine, context) {
|
|
|
610
611
|
try {
|
|
611
612
|
const progress = progressReporter(extra);
|
|
612
613
|
await progress.report(0, 3, 'Building shared workspace index');
|
|
613
|
-
const snapshot = await engine.scan(workspaceId, {}, context.principal, progress.signal);
|
|
614
614
|
const workspace = engine.resolver.get(workspaceId, context.principal);
|
|
615
|
+
const snapshot = await engine.scan(workspaceId, { patterns: focusDomainScanPatterns(workspace) }, context.principal, progress.signal);
|
|
615
616
|
if (input.mode === 'continuous') {
|
|
616
617
|
const selectedFiles = activeContinuousFocusFiles(snapshot).filter((file) => relativePath === undefined || file.relativePath === relativePath);
|
|
617
618
|
if (selectedFiles.length === 0) {
|
|
@@ -849,8 +850,8 @@ export function registerFocusTools(server, engine, context) {
|
|
|
849
850
|
requireServerScope(context, 'hoi4:write');
|
|
850
851
|
const progress = progressReporter(extra);
|
|
851
852
|
await progress.report(0, 5, 'Validating shared index and current source');
|
|
852
|
-
const snapshot = await engine.scan(workspaceId, {}, context.principal, progress.signal);
|
|
853
853
|
const workspace = engine.resolver.get(workspaceId, context.principal);
|
|
854
|
+
const snapshot = await engine.scan(workspaceId, { patterns: focusDomainScanPatterns(workspace) }, context.principal, progress.signal);
|
|
854
855
|
if (input.mode === 'continuous') {
|
|
855
856
|
const plan = input.plan;
|
|
856
857
|
if (createIfMissing &&
|
|
@@ -369,10 +369,8 @@ export function registerMapTools(server, engine, context) {
|
|
|
369
369
|
try {
|
|
370
370
|
const progress = progressReporter(extra);
|
|
371
371
|
await progress.report(0, 3, 'Inspecting and validating the map');
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
nudger.validate(workspaceId, context.principal, progress.signal),
|
|
375
|
-
]);
|
|
372
|
+
const { snapshot, validation } = await nudger.validate(workspaceId, context.principal, progress.signal);
|
|
373
|
+
const sharedRevision = snapshot.revision;
|
|
376
374
|
const selected = selectedMapEntities(snapshot, provinceIds, stateIds, regionIds);
|
|
377
375
|
const provinceGeometry = provinceIds.length === 0
|
|
378
376
|
? undefined
|
|
@@ -392,7 +390,7 @@ export function registerMapTools(server, engine, context) {
|
|
|
392
390
|
schemaVersion: 'map-inspect.v1',
|
|
393
391
|
sourceHashes: sourceEvidence.bounded.sourceHashes,
|
|
394
392
|
metadata: {
|
|
395
|
-
sharedRevision
|
|
393
|
+
sharedRevision,
|
|
396
394
|
sourceHashInventory: sourceEvidence.bounded.inventory,
|
|
397
395
|
},
|
|
398
396
|
};
|
|
@@ -403,7 +401,7 @@ export function registerMapTools(server, engine, context) {
|
|
|
403
401
|
content: `${canonicalJson({
|
|
404
402
|
schemaVersion: 1,
|
|
405
403
|
revision: snapshot.revision,
|
|
406
|
-
sharedRevision
|
|
404
|
+
sharedRevision,
|
|
407
405
|
dimensions: snapshot.index.raster === undefined
|
|
408
406
|
? null
|
|
409
407
|
: {
|
|
@@ -471,7 +469,7 @@ export function registerMapTools(server, engine, context) {
|
|
|
471
469
|
const artifacts = await engine.artifacts.withAtomicChunkedWrites(workspace, artifactWrites, (stored) => Promise.resolve([...stored]), progress.signal);
|
|
472
470
|
const result = emptyServiceResult(workspaceId, {
|
|
473
471
|
revision: snapshot.revision,
|
|
474
|
-
sharedRevision
|
|
472
|
+
sharedRevision,
|
|
475
473
|
width: snapshot.index.raster?.width ?? null,
|
|
476
474
|
height: snapshot.index.raster?.height ?? null,
|
|
477
475
|
definitions: snapshot.index.definitions.length,
|
|
@@ -2,6 +2,7 @@ import { readFile } from 'node:fs/promises';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { canonicalJson, hashCanonical } from '../core/canonical.js';
|
|
4
4
|
import { ClausewitzEvaluationDefinitions } from '../core/clausewitz-evaluation.js';
|
|
5
|
+
import { probabilityDomainScanPatterns } from '../core/domain-scan-patterns.js';
|
|
5
6
|
import { publicArtifactLink } from '../core/artifacts.js';
|
|
6
7
|
import { ServiceError } from '../core/result.js';
|
|
7
8
|
import { PACKAGE_VERSION } from '../version.js';
|
|
@@ -590,10 +591,13 @@ export class ProbabilityAnalyzer {
|
|
|
590
591
|
this.engine = engine;
|
|
591
592
|
this.state = analyzerState(engine);
|
|
592
593
|
}
|
|
593
|
-
async scan(context) {
|
|
594
|
+
async scan(context, sourcePaths = []) {
|
|
594
595
|
if (context.refresh === true)
|
|
595
596
|
this.engine.invalidate(context.workspaceId);
|
|
596
|
-
|
|
597
|
+
const workspace = this.engine.resolver.get(context.workspaceId, context.principal);
|
|
598
|
+
return this.engine.scan(context.workspaceId, {
|
|
599
|
+
patterns: probabilityDomainScanPatterns(workspace, sourcePaths.filter((sourcePath) => sourcePath !== undefined)),
|
|
600
|
+
}, context.principal, context.signal);
|
|
597
601
|
}
|
|
598
602
|
async verifyGameVersion(context, adapter) {
|
|
599
603
|
const workspace = this.engine.resolver.get(context.workspaceId, context.principal);
|
|
@@ -774,7 +778,7 @@ export class ProbabilityAnalyzer {
|
|
|
774
778
|
if (adapter === undefined || source === undefined)
|
|
775
779
|
return { adapters: probabilityAdapters(), artifacts: [], filesScanned: [] };
|
|
776
780
|
const gameVersionVerification = await this.verifyGameVersion(context, adapter);
|
|
777
|
-
const snapshot = await this.scan(context);
|
|
781
|
+
const snapshot = await this.scan(context, [source.path]);
|
|
778
782
|
const surface = discoverWeightedSurface(snapshot, adapter, source, candidatePool);
|
|
779
783
|
const definitions = ClausewitzEvaluationDefinitions.build(snapshot);
|
|
780
784
|
const inspectedCandidates = evaluateExactCandidates(surface, { id: 'inspection', state: {} }, definitions);
|
|
@@ -838,7 +842,7 @@ export class ProbabilityAnalyzer {
|
|
|
838
842
|
request.scenarioSet.workspaceId !== request.workspaceId)
|
|
839
843
|
throw new ServiceError('PROBABILITY_SCENARIO_WORKSPACE_MISMATCH', 'Scenario set belongs to a different workspace');
|
|
840
844
|
const gameVersionVerification = await this.verifyGameVersion(request, request.adapter);
|
|
841
|
-
const snapshot = await this.scan(request);
|
|
845
|
+
const snapshot = await this.scan(request, [request.source.path]);
|
|
842
846
|
const surface = discoverWeightedSurface(snapshot, request.adapter, request.source, request.candidatePool ?? []);
|
|
843
847
|
const definitions = ClausewitzEvaluationDefinitions.build(snapshot);
|
|
844
848
|
const metadata = this.metadata(request, snapshot, surface, request.scenarioSet, request.candidatePool ?? [], gameVersionVerification, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LATEST_PROTOCOL_VERSION } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
export const PACKAGE_NAME = 'hoi4-agent-tools';
|
|
3
|
-
export const PACKAGE_VERSION = '2.3.
|
|
3
|
+
export const PACKAGE_VERSION = '2.3.5';
|
|
4
4
|
export const MCP_PROTOCOL_VERSION = LATEST_PROTOCOL_VERSION;
|
|
5
5
|
export const CONFIG_VERSION = 1;
|
|
6
6
|
export const TRANSACTION_VERSION = 1;
|
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": "2.3.
|
|
4
|
+
"version": "2.3.5",
|
|
5
5
|
"description": "Analyze HOI4 events, tech trees, AI weights, and MTTH; build focus trees, GUIs, and maps.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/configuration.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/continuous-focus-palette.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/custom-weighted-pool.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/event-feature-manifest.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/focus-plan.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/focus-planning-sidecar.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/gui-animation-source.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/gui-helper.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/gui-scenario.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/map-operation.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"oneOf": [
|
|
5
5
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/operation-result.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-analysis-result.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-compare-input.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-evaluate-input.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-inspect-input.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-render-input.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-scenario-set.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-sequence-input.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-simulate-input.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.
|
|
2
|
+
"$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.5/schemas/probability-sweep-input.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.klimPaskov/hoi4-agent-tools",
|
|
4
4
|
"title": "HOI4 Agent Tools",
|
|
5
5
|
"description": "Analyze HOI4 events, tech trees, AI weights, and MTTH; build focus trees, GUIs, and maps.",
|
|
6
|
-
"version": "2.3.
|
|
6
|
+
"version": "2.3.5",
|
|
7
7
|
"repository": {
|
|
8
8
|
"url": "https://github.com/klimPaskov/hoi4-agent-tools",
|
|
9
9
|
"source": "github"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "hoi4-agent-tools",
|
|
16
|
-
"version": "2.3.
|
|
16
|
+
"version": "2.3.5",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
}
|