-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtool.json
More file actions
94 lines (94 loc) · 5.14 KB
/
Copy pathtool.json
File metadata and controls
94 lines (94 loc) · 5.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{
"name": "srdcheck",
"version": "0.9.0",
"description": "Deterministic rules verdicts over the SRD for game-running agents. Exit codes are scoped results: 0 passes the named checked scope, 1 conflicts with it, 2 cannot-adjudicate (unknown content or a DM-authority decision, including when the caller is the agent-DM — an honest refusal, not an error). Applied rules carry citations; boundary refusals do not invent them.",
"status": "alpha; versioned machine schemas and the N/N-1 semantic window are reported by `capabilities`",
"rulesets": [
{
"name": "srd-5.2.1",
"version": "0.2.1",
"data_version": "0.2.1",
"rules_version": "0.2.1"
},
{
"name": "toy-tictactoe",
"version": "0.1.0",
"data_version": "0.1.0",
"rules_version": "0.1.0"
}
],
"invocation": {
"command": "python -m srdcheck",
"subcommands": {
"jurisdiction <name>": "Is this named entity known to the loaded rulesets? exit 0 = known content (all matching categories in data.categories); exit 2 = unknown/third-party content.",
"cite <heading>": "Verbatim, page-numbered source text for a named SRD heading. Provenance surface: returns the page's own text, never interpretation.",
"query <type> <params-json>": "Adjudicate a structured proposal. Query types are supplied by the loaded adapters; see query_types below. Existing query tools accept optional table_policy and policy_context metadata.",
"query <type> <params-json> --table-evaluation": "Project the scoped verdict into deterministic, self-attested table.evaluation/1.0. Add --table-context JSON for caller-owned session/entity/correlation references. Table and execution authority stay external.",
"--pipe": "Read one {\"type\", \"params\"} JSON query from stdin.",
"--schema": "Print JSON Schema for input and output.",
"capabilities": "Print engine, protocol, adapter versions/digests, query types, refusal recovery and observability contracts, and MCP tool names.",
"query ... --trace [--request-id <id>]": "Keep the verdict on stdout and emit metadata-only lifecycle NDJSON on stderr.",
"policy validate|export <manifest>": "Import and validate a portable srdcheck.table-policy/1.0 JSON manifest, or export its canonical human/machine form."
},
"query_types": [
"attack.modifiers",
"check.make",
"concentration.check",
"creature.stats",
"creature.valid",
"encounter.xp-budget",
"event.apply",
"feature.uses",
"grapple.initiate",
"help.assist",
"mage-hand.use",
"opportunity-attack.provoked",
"passive.perception",
"reaction.available",
"roll.compose",
"save.check",
"spell.facts",
"transition.commit",
"ttt.move",
"ttt.options",
"turn.options",
"turn.plan"
]
},
"output": "JSON verdict object on stdout: {verdict, exit_code, why, citations[], rule_ids[], adapter, data?}. Exit-2 data contains stable reason and recovery fields. Schema and refusal contract identities are published by --schema, MCP outputSchema, and capabilities.",
"table_evaluation": "query/--pipe --table-evaluation maps legal to checked_clean (or checked_with_advisories when a table policy applies), illegal to an exact-evidence finding, and structured refusals to invalid, unsupported, or incomplete. Output is always self_attested. Its named-query scope is machine-readable and every finding evidence ref resolves in its effective policy. Stateful queries expose cursor.state_precondition_hash.",
"notes": "The 'why' field is templated explanatory prose, not a machine compatibility field. Verdicts are deterministic: same query, same answer, every time. On cannot-adjudicate, branch on structured recovery data rather than prose; an authorized agent-DM may resolve a DM-authority table ruling directly and reuse it through a caller-owned table-policy manifest. turn.options and turn.plan are consistency-tested against each other. For state writes, evaluate with event.apply and verify the exact proposal with transition.commit; the host owns atomic persistence. Use `capabilities` for checked/unchecked scope, refusal mappings, the metadata-only observability schema, and the exact release tuple.",
"mcp": {
"command": "python3 -m srdcheck.mcp",
"transport": "stdio",
"protocolVersion": "2025-06-18",
"tools": [
"jurisdiction",
"table_evaluation",
"attack_modifiers",
"check_make",
"concentration_check",
"creature_stats",
"creature_valid",
"encounter_xp_budget",
"event_apply",
"feature_uses",
"grapple_initiate",
"help_assist",
"mage_hand_use",
"opportunity_attack_provoked",
"passive_perception",
"reaction_available",
"roll_compose",
"save_check",
"spell_facts",
"transition_commit",
"turn_options",
"turn_plan",
"ttt_move",
"ttt_options"
],
"notes": "Zero-dependency stdlib MCP server. Tool descriptions/schemas are supplied by loaded adapters (queries.json). Verdicts arrive as structuredContent; illegal and cannot-adjudicate are results, not protocol errors. The opt-in table_evaluation tool projects one native query without changing native tool response schemas. Set SRDCHECK_TRACE=stderr and pass an optional request_id for out-of-band metadata-only tracing."
},
"_generated_by": "scripts/gen_tool_json.py"
}