{"ok":true,"site":{"host":"nema-vault.migarci2.dev","url":"https://nema-vault.migarci2.dev/","type":"live","desc":"The personal learning vault: signed evidence, derived learner state, and a disclosure the learner approves one request at a time.","tools":[{"name":"get_vault_summary","kind":"act","impl":"imperative","description":"Read the counts the vault shows in its summary strip: concepts with evidence, how many are durable, usable or fragile, how many reviews are due, and how many receipts, pending receipts, disclosures and goals the vault holds. Updates the summary panel on screen. Only bands are returned. Evidence history never leaves the vault.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_learner_state","kind":"answer","impl":"imperative","description":"Read the learner state table: one row per concept with a band per ability and the next review date. Pass concept ids to narrow it. Highlights the state table and the learning graph on screen. Only bands are returned. Evidence history never leaves the vault.","inputSchema":{"type":"object","properties":{"concepts":{"type":"array","items":{"type":"string"},"description":"Concept ids such as nema:pan-sauces. Omit for every concept that has evidence."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_learning_goal","kind":"act","impl":"imperative","description":"Set an active learning goal from a title and a list of concept ids. Goals only re-order learning needs: they never create evidence and never move a band. Adds the goal to the goals panel on screen.","inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"Short title of the goal, in the words the learner used."},"concepts":{"type":"array","items":{"type":"string"},"description":"Concept ids from the nema registry, for example nema:pan-sauces."}},"required":["title","concepts"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_readiness_assertion","kind":"act","impl":"imperative","description":"Ask the learner to disclose status bands for the concepts a site needs, and return a signed, audience bound assertion that expires in 30 minutes. The learner must approve the disclosure in the page before a token is returned. Opens the consent modal on screen and waits up to 120 seconds. Only bands are returned. Evidence history never leaves the vault.","inputSchema":{"type":"object","properties":{"audience":{"type":"string","description":"Origin of the site that will verify the token, for example https://saucier.migarci2.dev."},"purpose":{"type":"string","description":"Short machine readable purpose, for example personalize-pan-sauces-path."},"requirements":{"type":"array","description":"The concept and ability pairs the site asked about. Nothing outside this list can be disclosed.","items":{"type":"object","properties":{"concept":{"type":"string"},"ability":{"type":"string"}},"required":["concept","ability"],"additionalProperties":false}}},"required":["audience","purpose","requirements"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_evidence_receipt","kind":"act","impl":"imperative","description":"Hand a signed evidence receipt to the vault. The vault checks the issuer against its trusted list, verifies the signature, rejects duplicates, recomputes the learner state and returns the exact bands that moved. The result names the trust tier it earned: registered (a key in the trusted list), origin (a key the issuer publishes at /.well-known/nema-issuer.json), self (a key the receipt carries, worth a self report at most) or pending (nothing could check it, so nothing moved). Adds a row to the evidence ledger on screen.","inputSchema":{"type":"object","properties":{"token":{"type":"string","description":"A compact nema1 evidence receipt token issued by a provider."}},"required":["token"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_learning_needs","kind":"act","impl":"imperative","description":"Ask the vault what to study next. Returns ordered learning needs derived from the state, the active goals and the recorded misconceptions, each with a kind, a reason, minutes and a rubric. Pass budgetMinutes to fill a session of that length. Updates the needs panel on screen. Only bands are returned. Evidence history never leaves the vault.","inputSchema":{"type":"object","properties":{"budgetMinutes":{"type":"number","description":"Minutes the learner has right now. Omit for the full ordered list."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"record_agent_assessment","kind":"act","impl":"imperative","description":"Record the result of an assessment the agent ran against the vault rubric for one learning need. The learner answers, the agent grades criterion by criterion, and the vault stores it as an unsigned receipt with grader agent-assessed, weight 0.6, labelled as agent evidence in the ledger. Needs an id from get_learning_needs: an unknown need id is rejected. Adds a row to the evidence ledger on screen.","inputSchema":{"type":"object","properties":{"needId":{"type":"string","description":"The needId returned by get_learning_needs."},"rubricResults":{"type":"array","description":"One entry per rubric criterion of that need, with the judgement the agent made.","items":{"type":"object","properties":{"criterion":{"type":"string"},"met":{"type":"boolean"}},"required":["criterion","met"],"additionalProperties":false}},"learnerAnswerSummary":{"type":"string","description":"One or two sentences summarising what the learner actually said."}},"required":["needId","rubricResults","learnerAnswerSummary"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_disclosure_ledger","kind":"answer","impl":"imperative","description":"List every disclosure the learner approved: audience, purpose, the exact bands shared, when it was shared and when it expires. This is the audit trail the learner keeps of what left the vault. Highlights the disclosure ledger on screen.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_evidence_ledger","kind":"answer","impl":"imperative","description":"List the receipts the vault holds, newest first: issuer, activity, claims, grader, signature state, trust tier and the effect each one had on the learner state. This is the view the learner has of their own ledger, and it is never included in a disclosure. Highlights the evidence ledger on screen.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"How many receipts to return, newest first. Omit for all of them."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"propose_concept_alignment","kind":"act","impl":"imperative","description":"Propose that a concept id a site uses in its own vocabulary means a concept in the nema registry. Sites are not required to use nema: ids, so this is how a site that says \"browning-science\" is understood as nema:maillard-reaction. Nothing is translated by proposing: the alignment is added to the Alignments list in the vault page and the learner must confirm it there before it moves a band or answers a requirement. Returns proposed with the new id, or exists with the alignment already in play for that name.","inputSchema":{"type":"object","properties":{"origin":{"type":"string","description":"Origin of the site that uses this name, for example https://maillard.migarci2.dev."},"providerConcept":{"type":"string","description":"The site's own concept id, as it appears in its manifest, without the nema: prefix."},"concept":{"type":"string","description":"The nema registry concept it means, for example nema:maillard-reaction."},"relation":{"type":"string","enum":["equivalent","broader","narrower"],"description":"equivalent when the two names mean the same thing, narrower when the site concept is a part of the registry concept, broader when it covers more."},"rationale":{"type":"string","description":"One sentence for the learner: why these two names are the same thing."}},"required":["origin","providerConcept","concept","relation","rationale"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_concept_alignments","kind":"answer","impl":"imperative","description":"List the concept alignments this vault holds: which local concept id of which site means which nema registry concept, who proposed it, and whether the learner confirmed, rejected or has not answered yet. Pass an origin to narrow it to one site. Only confirmed alignments translate anything. Highlights the alignments list on screen.","inputSchema":{"type":"object","properties":{"origin":{"type":"string","description":"Origin of one site, for example https://maillard.migarci2.dev. Omit for every site."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_learning_goal_form","kind":"act","impl":"declarative","description":"Set the learner's active goal from the goal form in the vault page. Goals only re-order learning needs, they never create evidence and never change a band.","inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"What I want to be able to do"},"concepts":{"type":"string","description":"nema:concept-id, nema:another-concept"}},"required":["title","concepts"]},"__source":"spec","__declarative":true}],"category":"Health & Education","favicon":"/favicons/nema-vault.migarci2.dev.png","apiSurface":"spec","toolCount":12}}