Tool tree
gradeNot graded
page: Every page
create_experimentAction
Create a NOVA LAB plant-growth experiment, persist it, and submit it for human approval. Status becomes AWAITING_APPROVAL with approval_required=true. NOVA supports synthetic plant-growth factorial experiments only—not universal science. Supported factors: temperature, water, light, CO2, nutrients (also accepted as TEMPERATURE, WATER, LIGHT, CO2, NUTRIENTS). Provide factor_levels and units for each factor, plus replicates. Does not approve or run the experiment; the server state machine blocks execution until a human approves. Emits experiment_created and approval_requested events. Returns experiment_id, status, estimated_observations, and approval_required. Use when starting a new investigation.
View tool JSON
{
"name": "create_experiment",
"kind": "act",
"impl": "imperative",
"description": "Create a NOVA LAB plant-growth experiment, persist it, and submit it for human approval. Status becomes AWAITING_APPROVAL with approval_required=true. NOVA supports synthetic plant-growth factorial experiments only—not universal science. Supported factors: temperature, water, light, CO2, nutrients (also accepted as TEMPERATURE, WATER, LIGHT, CO2, NUTRIENTS). Provide factor_levels and units for each factor, plus replicates. Does not approve or run the experiment; the server state machine blocks execution until a human approves. Emits experiment_created and approval_requested events. Returns experiment_id, status, estimated_observations, and approval_required. Use when starting a new investigation.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"question",
"hypothesis",
"factors",
"factor_levels",
"units",
"replicates",
"seed",
"simulation_version",
"provenance"
],
"properties": {
"question": {
"type": "string",
"minLength": 1,
"description": "Scientific question the experiment asks."
},
"hypothesis": {
"type": "string",
"minLength": 1,
"description": "Testable hypothesis for this design."
},
"factors": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"temperature",
"water",
"light",
"CO2",
"nutrients",
"TEMPERATURE",
"WATER",
"LIGHT",
"NUTRIENTS"
]
},
"description": "Plant-growth factors only: temperature, water, light, CO2, nutrients."
},
"factor_levels": {
"type": "object",
"description": "Map of factor → numeric levels (keys may be lowercase or TEMPERATURE-style). Every listed factor needs a non-empty array.",
"additionalProperties": {
"type": "array",
"minItems": 1,
"items": {
"type": "number"
}
}
},
"units": {
"type": "object",
"description": "Map of factor → unit string (e.g. celsius, relative). Required for every factor.",
"additionalProperties": {
"type": "string",
"minLength": 1
}
},
"replicates": {
"type": "integer",
"minimum": 1,
"description": "Number of replicates per factor combination."
},
"seed": {
"type": "integer",
"description": "Integer RNG seed for the deterministic synthetic simulation."
},
"simulation_version": {
"type": "string",
"minLength": 1,
"description": "Simulation engine version string (e.g. nova-sim-v1)."
},
"provenance": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"actor"
],
"properties": {
"source": {
"type": "string",
"minLength": 1
},
"actor": {
"type": "string",
"minLength": 1
},
"notes": {
"type": "string"
},
"parent_experiment_id": {
"type": "string",
"description": "Optional parent experiment id for lineage (normally omit; prefer replicate_experiment)."
}
}
}
}
},
"page": "/"
}run_experimentAction
Execute an already APPROVED experiment on the NOVA server. Human approval is required beforehand; if status is AWAITING_APPROVAL (or otherwise not APPROVED), the server rejects the run with HUMAN_APPROVAL_REQUIRED—the tool does not decide approval itself. On success: synthetic simulation runs, observations persist, status becomes COMPLETED, and lifecycle events are recorded. Returns experiment_id, status, observation_count, simulation_version, and seed. Does not expose hidden simulator world parameters or equations. Use only after a human has approved the design.
View tool JSON
{
"name": "run_experiment",
"kind": "act",
"impl": "imperative",
"description": "Execute an already APPROVED experiment on the NOVA server. Human approval is required beforehand; if status is AWAITING_APPROVAL (or otherwise not APPROVED), the server rejects the run with HUMAN_APPROVAL_REQUIRED—the tool does not decide approval itself. On success: synthetic simulation runs, observations persist, status becomes COMPLETED, and lifecycle events are recorded. Returns experiment_id, status, observation_count, simulation_version, and seed. Does not expose hidden simulator world parameters or equations. Use only after a human has approved the design.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"experiment_id"
],
"properties": {
"experiment_id": {
"type": "string",
"minLength": 1,
"description": "Id of an experiment that is currently APPROVED."
}
}
},
"page": "/"
}get_resultsAnswer
Return persisted synthetic observations for one experiment_id from the NOVA database. Does not regenerate data or re-run the simulator. Each observation includes factor_values, measured_outcome (biomass, growth_rate), replicate_index, and combination_index. Records a results_retrieved audit event. Returns an empty observations list if the experiment has not been run. Use after run_experiment (or whenever observations already exist).
View tool JSON
{
"name": "get_results",
"kind": "answer",
"impl": "imperative",
"description": "Return persisted synthetic observations for one experiment_id from the NOVA database. Does not regenerate data or re-run the simulator. Each observation includes factor_values, measured_outcome (biomass, growth_rate), replicate_index, and combination_index. Records a results_retrieved audit event. Returns an empty observations list if the experiment has not been run. Use after run_experiment (or whenever observations already exist).",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"experiment_id"
],
"properties": {
"experiment_id": {
"type": "string",
"minLength": 1,
"description": "Experiment whose persisted observations should be returned."
}
}
},
"page": "/"
}analyze_resultsAction
Analyze persisted observations for a COMPLETED experiment using NOVA’s statistical engine (growth ~ temperature + water + temperature:water). Retrieves stored observations, calculates effects (not fabricated or LLM-invented), persists an Analysis row, emits analysis_completed, and sets status to ANALYZED. Returns experiment_id, analysis_id, analysis_version, model specification, factor/interaction effects, confidence intervals, significance statistics (t, p, SE), simulation_version, and seed. Does not expose hidden simulator equations. Use after run_experiment.
View tool JSON
{
"name": "analyze_results",
"kind": "act",
"impl": "imperative",
"description": "Analyze persisted observations for a COMPLETED experiment using NOVA’s statistical engine (growth ~ temperature + water + temperature:water). Retrieves stored observations, calculates effects (not fabricated or LLM-invented), persists an Analysis row, emits analysis_completed, and sets status to ANALYZED. Returns experiment_id, analysis_id, analysis_version, model specification, factor/interaction effects, confidence intervals, significance statistics (t, p, SE), simulation_version, and seed. Does not expose hidden simulator equations. Use after run_experiment.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"experiment_id"
],
"properties": {
"experiment_id": {
"type": "string",
"minLength": 1,
"description": "COMPLETED experiment with persisted observations."
}
}
},
"page": "/"
}save_findingAction
Persist an interpretive finding written by the external agent, linked to experiment_id and analysis_id. The server validates that the experiment exists, the analysis exists, and the analysis belongs to that experiment—unrelated analysis references are rejected (PROVENANCE_MISMATCH). Does not auto-generate findings; the agent must supply finding_text and confidence. Maintains provenance Finding → Analysis → Experiment → Observations, records finding_saved, and returns finding_id, experiment_id, analysis_id, finding, confidence, and timestamp. Use after analyze_results.
View tool JSON
{
"name": "save_finding",
"kind": "act",
"impl": "imperative",
"description": "Persist an interpretive finding written by the external agent, linked to experiment_id and analysis_id. The server validates that the experiment exists, the analysis exists, and the analysis belongs to that experiment—unrelated analysis references are rejected (PROVENANCE_MISMATCH). Does not auto-generate findings; the agent must supply finding_text and confidence. Maintains provenance Finding → Analysis → Experiment → Observations, records finding_saved, and returns finding_id, experiment_id, analysis_id, finding, confidence, and timestamp. Use after analyze_results.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"experiment_id",
"analysis_id",
"finding_text",
"confidence"
],
"properties": {
"experiment_id": {
"type": "string",
"minLength": 1,
"description": "Experiment that owns the analysis evidence."
},
"analysis_id": {
"type": "string",
"minLength": 1,
"description": "Persisted analysis that evidences this finding (must belong to experiment_id)."
},
"finding_text": {
"type": "string",
"minLength": 1,
"description": "Agent-authored interpretive claim; not generated by NOVA."
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Reporter confidence in [0, 1]."
},
"replication_id": {
"type": "string",
"description": "Optional persisted replication record id."
}
}
},
"page": "/"
}replicate_experimentAction
Create an independent replication of original_experiment_id using the same experimental design and a NEW server-derived seed. Persists a replication experiment, generates new synthetic observations (not copies), independently calculates replication effects, and evaluates replication_success = same direction AND confidence interval overlap AND relative effect difference < 20%. Persists the Replication record and emits replication_completed. Returns original/replication ids, seeds, effects, confidence intervals, criterion flags, and replication_success. Does not hardcode success or expose hidden simulator internals. Original must already have persisted observations.
View tool JSON
{
"name": "replicate_experiment",
"kind": "act",
"impl": "imperative",
"description": "Create an independent replication of original_experiment_id using the same experimental design and a NEW server-derived seed. Persists a replication experiment, generates new synthetic observations (not copies), independently calculates replication effects, and evaluates replication_success = same direction AND confidence interval overlap AND relative effect difference < 20%. Persists the Replication record and emits replication_completed. Returns original/replication ids, seeds, effects, confidence intervals, criterion flags, and replication_success. Does not hardcode success or expose hidden simulator internals. Original must already have persisted observations.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"original_experiment_id"
],
"properties": {
"original_experiment_id": {
"type": "string",
"minLength": 1,
"description": "Experiment to replicate (must already have persisted observations)."
}
}
},
"page": "/"
}