@axonity-ai/mcp 0.25.0 → 0.27.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.
@@ -70,8 +70,9 @@ Read this before creating or updating anything.
70
70
  1. \`read_*\` the entity (and \`read_*_published\` if you need to see what is live).
71
71
  2. Edit the DRAFT: \`update_*\`, or workflow-edit tools for workflow structure.
72
72
  3. Validate before publish: \`validate_workflow\` / \`analyze_workflow_reachable_outputs\` /
73
- \`validate_tool_code\` / \`format_tool_code\`. These four are stateless and work with
74
- read-only tokens.
73
+ \`validate_tool_code\` / \`format_tool_code\`. These four save nothing, and a
74
+ read-only token may call them — except \`validate_workflow({ workflowId })\`,
75
+ which needs the \`author\` scope.
75
76
  4. Re-read and verify with a saved tool command: \`execute_tool\` /
76
77
  \`execute_stored_connector\`.
77
78
  5. Fix any issues and re-read again.
@@ -157,11 +158,13 @@ has run cleanly once, at its current version.
157
158
 
158
159
  ## Field shape
159
160
  - All fields are camelCase JSON (e.g. \`capabilityTier\`, not \`capability_tier\`).
160
- ONE documented exception: validator specs (\`permissions.outputValidators\`,
161
- \`permissions.exposedValidatorTools\`) use snake_case keys (\`function\`,
161
+ ONE documented exception: validator specs — in an output_schema's
162
+ \`schemaBody\` (\`validators\`, \`preflight\`), a step's
163
+ \`contract.output_validators\` and a conversation step's
164
+ \`answerContract.validators\` — use snake_case keys (\`function\`,
162
165
  \`target\`, \`args\`, \`when_present\`, \`inputs\`, \`error_message\`,
163
- \`tool_name\`, \`validator_name\`) — they are the same shape at every level and
164
- are stored verbatim, so they are NOT camel-aliased. Send them in snake_case.
166
+ \`tool_name\`, \`validator_name\`) — they are stored verbatim, so they are
167
+ NOT camel-aliased. Send them in snake_case.
165
168
  What those keys MEAN, and how a validator is bound to what it judges, is the
166
169
  Validators section.
167
170
  - \`update_*\` is a partial change for agents/tools and a partial patch for
@@ -173,10 +176,10 @@ has run cleanly once, at its current version.
173
176
  undeclared OR MISSPELLED key is a 422 that names it, not a silent drop. So
174
177
  spelling matters and you get told when it is wrong — good. Other entities are
175
178
  more lenient and may drop an unknown key silently; never rely on that.
176
- - \`agent.tags\` is a free label for grouping and reporting. It GATES NOTHING —
177
- what reaches an agent's prompt is a LINK (\`attach_policy_to_agent\`), visible
178
- in a table a human can read and edit. A role-tag gate on a policy used to
179
- decide that invisibly and is refused outright now: sending
179
+ - An agent has no tags: what reaches an agent's prompt is a LINK
180
+ (\`attach_policy_to_agent\`), visible in a table a human can read and edit.
181
+ A role-tag gate on a policy used to decide that invisibly and is refused
182
+ outright now: sending
180
183
  \`activation.tags\` to \`create_policy\`/\`update_policy\` is a 422. The two
181
184
  surviving gates, \`activation.tools\` and \`activation.delegation\`, each say
182
185
  something a link cannot — "only on turns where this agent holds this tool",
@@ -207,9 +210,13 @@ has run cleanly once, at its current version.
207
210
  the author owns that value and it is overwritten anyway.
208
211
  - **A run can park instead of finishing.** A step that asks a question waits
209
212
  for an answer, so "it never came back" usually means "it is waiting on you".
210
- \`read_run_waiting_on\` says what for; \`answer_run_question\` (or
211
- \`send_run_message\` on a conversation run) resumes it. Answer your own test
212
- runs; on a run a human is depending on, the answer is theirs to give.
213
+ \`list_todo_steps\` has every step that waits on a person (a question, a
214
+ plan, a manual or decision step); \`read_run_waiting_on\` has a timer and an
215
+ answer or callback result on its way; a FOR EACH batch is on
216
+ \`read_run_for_each_progress\`; a conversation run waits in its chat.
217
+ \`answer_run_question\` (or \`send_run_message\` on a conversation run)
218
+ resumes it. Answer your own test runs; on a run a human is depending on, the
219
+ answer is theirs to give.
213
220
  - A FOR EACH launch is not one result. \`read_run_items_summary\` is the
214
221
  roll-up ("4,415 processed · 12 failed") and \`list_run_items\` the rows —
215
222
  with \`outcome: "failed"\`, because the failures are scattered and filtering
@@ -217,17 +224,17 @@ has run cleanly once, at its current version.
217
224
  - A LIST is not the whole list. \`list_workflow_runs\` returns a page —
218
225
  \`{ items, nextCursor, pageSize, hasMore }\`, 20 by default — so counting or
219
226
  concluding from page one while \`hasMore\` is true is how you answer confidently
220
- and wrongly. Follow \`nextCursor\` until it is null. Two further traps: that
221
- route lists LAUNCHES (a 4,415-item FOR EACH is ONE entry carrying
222
- \`forEachProgress\`, so rows are not runs), and the offset-style lists
223
- (\`list_runs\`, \`list_publish_approvals\`) cap silently — a full page means
224
- there may be more, and nothing in the response says so.
227
+ and wrongly. Follow \`nextCursor\` until it is null. And that route lists
228
+ LAUNCHES: a 4,415-item FOR EACH is ONE entry carrying \`forEachProgress\`, so
229
+ rows are not runs. \`list_runs\` pages the same way, by \`nextCursor\` with
230
+ \`hasMore\`. \`list_publish_approvals\` pages by \`offset\` and answers \`total\`
231
+ and \`hasMore\`: raise \`offset\` by \`limit\` until \`hasMore\` is false.
225
232
 
226
233
  ## Delete is recoverable — but not everything is
227
234
  - \`delete_*\` soft-deletes: the entity disappears from \`list_*\` but is not gone.
228
235
  \`restore_*\` brings it back; \`list_deleted_*\` shows what's waiting. This
229
- applies uniformly to workflow, agent, tool, skill, policy, reference_doc,
230
- persona, output_schema, prompt_snippet, and flow.
236
+ applies uniformly to every entity that has a \`delete_*\` and a
237
+ \`restore_*\` tool.
231
238
  - The same applies one level down, to version HISTORY:
232
239
  \`delete_*_version\` removes one entry from history (the current draft and
233
240
  published version are protected and can't be targeted this way);
@@ -236,8 +243,12 @@ has run cleanly once, at its current version.
236
243
  are normal, not a sign of corruption.
237
244
  - \`restore_*\` can itself 409 if a live entity now holds the same name/slot —
238
245
  the error names the conflicting one.
239
- - There is no "archive" state for these ten entities — delete + restore IS the
240
- lifecycle. Runs are the one exception with a true archive/unarchive (see below).
246
+ - Deleting is not archiving. Some entities also have a \`status\` that can be
247
+ \`archived\` — kept, not offered — set with \`update_*\`: \`agent\`, \`tool\`,
248
+ \`skill\`, \`policy\`, \`reference_doc\`, \`output_schema\`, \`data_table\`,
249
+ \`measure\`, \`query\` and \`application\`. The values each takes are in
250
+ \`get_entity_authoring_contract\`. Runs have an archive of their own
251
+ (\`archive_run\` / \`unarchive_run\`, see below).
241
252
 
242
253
  ## Per entity — what to create, and what "complete" means
243
254
 
@@ -287,12 +298,30 @@ made any time before you attach them.
287
298
  so the human approving is not the first to find out.
288
299
  - **An answer that is a file**: \`responseMapping: { "type": "file",
289
300
  "filename": "{{filename}}" }\` keeps the bytes as a file of the run and
290
- returns its reference \`{ fileId, filename, contentType, sizeBytes }\` —
291
- the shape an upload has, so Digitize documents reads it and a
292
- sub-workflow's file parameter takes it. \`filename\` is optional (the
293
- far end's \`Content-Disposition\` name, else \`document\`) and may use
294
- the inputs. No \`responseTransform\` with a file answer. Outside a run
301
+ returns its reference
302
+ \`{ fileId, filename, contentType, sizeBytes, sha256 }\` — the shape an
303
+ upload has, so Digitize documents reads it and a sub-workflow's file
304
+ parameter takes it. \`filename\` is optional (the far end's
305
+ \`Content-Disposition\` name, else \`document\`) and may use the inputs.
306
+ No \`responseTransform\` with a file answer. Outside a run
295
307
  (\`execute_stored_connector\`) nothing is stored: you see name and size.
308
+ - **\`sha256\` in a file reference** is the hex SHA-256 of the bytes,
309
+ computed once when the file was stored. The same bytes have the same
310
+ value under any name, so compare it to recognise a file that was already
311
+ processed (deciding that is the workflow's logic, not the platform's).
312
+ Only a reference in a declared file parameter (\`file\`, or a list of
313
+ \`file\`) is checked against storage. Where one enters a run — a
314
+ manual, API or MCP start, a sub-workflow call (with its copy under
315
+ \`item\` in the child) — its \`filename\`, \`contentType\`,
316
+ \`sizeBytes\` and \`sha256\` are settled from storage, whatever the
317
+ caller wrote. A reference to a file the run may not read keeps what the
318
+ caller wrote and carries no \`sha256\`; at a webhook, cron or
319
+ conditional start that holds for each of them, since such a start links
320
+ no file. A reference anywhere else (an \`object\` field, an undeclared
321
+ key) is not checked and keeps any \`sha256\` the caller wrote. Digitize
322
+ documents always answers the stored \`sha256\` per file it read. So
323
+ compare only the value on a declared file parameter or on Digitize's
324
+ entry, never one in another field or one an agent wrote out.
296
325
  - **executor** — runs a command on a registered executor (a program on
297
326
  the customer's side). The save refuses a tool that names no executor or a
298
327
  command that executor does not know; \`list_executors\` and
@@ -316,17 +345,26 @@ made any time before you attach them.
316
345
  - Required: \`name\`. Enumerated fields, with their ONLY valid values:
317
346
  - \`capabilityTier\`: \`economy\` | \`standard\` (default) | \`smart\` | \`reasoning\`
318
347
  - \`creativityTier\`: \`low\` | \`medium\` (default) | \`high\`
319
- - \`learningMode\`: \`none\` (default) | \`adaptive\` | \`strict\`
320
- - \`avatar\`, \`tags\` (free labels for grouping — they gate nothing; see Field
321
- shape), \`canOwnProcess\` (bool; must be true for an agent to own a
322
- workflow step's flow), \`episodicMemoryEnabled\` (bool).
323
- - \`permissions\` (object): \`planning\`, \`delegation\`, \`verboseOutput\` (bools);
324
- \`outputValidators\` / \`exposedValidatorTools\` (snake_case specs — see Field
325
- shape for the casing, Validators for what they say);
326
- \`expectedOutputSchemaId\` (an output_schema id — MANDATORY whenever you
327
- attach validators here).
348
+ - \`reasoningLevel\`: \`default\` (sends nothing, the model decides) | \`none\` | \`low\` | \`medium\` | \`high\` | \`extra_high\`
349
+ - \`delegation\`: \`off\` (default) | \`on\` (one task to one team member at a time) | \`multi\` (also one task to several at once)
350
+ - \`persona\` (text): who the agent is, in its own words — the character text
351
+ every prompt of this agent opens with. It is a field of the agent and
352
+ publishes with it (axonity-flow#2176); there is no separate persona to
353
+ create, version or publish. To remove it send \`""\`: on an update \`null\`
354
+ leaves it as it is.
355
+ - \`slug\` (its handle, set once at creation; left out: taken from the name),
356
+ \`avatar\`, \`conversational\` (bool: may people talk to it),
357
+ \`delegationBudgetEur\` (what one delegation to it may cost; empty: no
358
+ budget), \`frameworkToolsOff\` (framework tools taken away; \`submit_output\`
359
+ cannot be), \`clearance\` (what it may read; set by an administrator).
360
+ - Output: \`outputSchemaIds\` (the output schemas it answers in — library ids
361
+ or names; a schema outside the list is refused) and \`defaultOutputSchemaId\`
362
+ (the one used when a caller names none; left out: the first). The GATES on
363
+ an output live in the output_schema (see Validators), not on the agent.
328
364
  - Wiring fields — see the Wiring section: \`toolIds\`, \`systemToolIds\`,
329
365
  \`delegationTargetIds\`.
366
+ - Anything else is refused: the body is strict, so a field the platform
367
+ retired (axonity-flow#2176) is a 422 that names it, not a silent drop.
330
368
  - Complete check: an agent with no \`toolIds\`/\`systemToolIds\` has no tools and
331
369
  can only reason/talk. If it is meant to DO something, give it the tools.
332
370
 
@@ -363,14 +401,16 @@ made any time before you attach them.
363
401
  launchable AND has a trigger (see Triggers).
364
402
 
365
403
  ### persona
366
- - An agent's character — 1:1 with an agent. Created only through its agent
367
- (\`create_agent_persona\`: \`name\`, \`characterText\`); then a normal entity
368
- (\`read_persona\`, \`update_persona\`, delete/restore/versions).
404
+ - Not an entity: the agent's \`persona\` field (see agent). Set it with
405
+ \`create_agent\` / \`update_agent\`, or \`create_agent_persona\` (agentId,
406
+ expectedVersion, persona); read it with \`read_agent\` or
407
+ \`read_agent_persona\`. Its history is the agent's versions, and it goes live
408
+ with \`request_publish_agent\`.
369
409
 
370
410
  ### output_schema
371
411
  - A reusable output contract, versioned and publishable. Referenced BY id from a
372
- tool's validators or an agent's \`permissions.expectedOutputSchemaId\` — so
373
- create it first, then point things at the id the create call returns.
412
+ tool's validators or an agent's \`outputSchemaIds\` — so create it first,
413
+ then point things at the id the create call returns.
374
414
  - \`schemaBody\` is a JSON Schema document (\`type\`, \`properties\`,
375
415
  \`required\`) PLUS one key that is not JSON Schema: \`validators\`, the gates
376
416
  run against a submitted output. This is the place a validator can be STEERED
@@ -417,13 +457,24 @@ made any time before you attach them.
417
457
 
418
458
  ## Validators — one shape, one call
419
459
  A validator is a GATE on a submitted output: it runs after an agent produces a
420
- result and can refuse it. Specs are written in two places and carry the same
421
- key names in both — \`permissions.outputValidators\` on an agent, and
422
- \`validators\` inside an output_schema's \`schemaBody\`. The backend's OpenAPI
423
- description of \`schemaBody\` is the source for the full contract, and the
424
- platform's live contract (\`get_entity_authoring_contract\`, output_schema)
425
- wins over this section where this deploy serves it. What follows is the part
426
- you cannot author without, checked against the platform and SUBORDINATE to both.
460
+ result and can refuse it. The backend's OpenAPI description of \`schemaBody\`
461
+ is the source for the full contract, and the platform's live contract
462
+ (\`get_entity_authoring_contract\`, output_schema) wins over this section where
463
+ this deploy serves it. What follows is the part you cannot author without,
464
+ checked against the platform and SUBORDINATE to both.
465
+
466
+ Specs carry the same keys wherever they are written:
467
+ - an output_schema's \`schemaBody\` (\`validators\`, and \`preflight\` for the
468
+ checks an agent may run itself before it submits) — the gate on one value;
469
+ - a workflow step's \`contract.output_validators\` — run on the step's WHOLE
470
+ submission, so a rule about how its outputs relate has something to look at;
471
+ \`validate_workflow\` reports a named validator tool that does not exist;
472
+ - a conversation step's \`answerContract.validators\`, beside its \`schema\` —
473
+ run on the answer the agent hands in; without a \`schema\` nothing runs, and
474
+ \`validate_workflow\` does not report it.
475
+ The agent itself no longer carries specs (axonity-flow#2176): it names the
476
+ schemas it answers in with \`outputSchemaIds\`, and a spec sent on the agent's
477
+ strict create/update body is a 422.
427
478
 
428
479
  - A spec names its check in ONE of two ways, and each brings its own binding:
429
480
  - \`function\` — a shipped predicate (e.g. \`validators.min_length\`), bound
@@ -482,11 +533,8 @@ unresolved values and nothing says so. (Rows whose schema declares no shape are
482
533
  left alone: there is nothing to check against, and guessing would refuse correct
483
534
  configurations.)
484
535
 
485
- WHERE \`field\` AND \`slots\` ARE ACCEPTED: inside an output_schema's
486
- \`schemaBody\`, which is stored verbatim. An agent's
487
- \`permissions.outputValidators\` is a STRICT body — an undeclared key is a 422 —
488
- so a spec written THERE takes neither, and its validator gets the whole output
489
- and no slots. Steer a validator from the output_schema.
536
+ WHERE \`field\` AND \`slots\` ARE CHECKED: when you save an output_schema, in
537
+ its \`schemaBody\`, which is stored verbatim.
490
538
 
491
539
  ### The older, explicit binding
492
540
  A tool spec MAY declare \`inputs\` instead, and a spec with \`inputs\` does NOT
@@ -513,8 +561,9 @@ lives in the entity body:
513
561
  \`update_agent\`. \`toolIds\` and \`systemToolIds\` are DIFFERENT lists; a
514
562
  system-tool id does not go in \`toolIds\`.
515
563
  - agent → agent (delegation): add the callee agent's id to the caller's
516
- \`delegationTargetIds\` (and set \`permissions.delegation: true\`).
517
- - output_schema → agent: \`permissions.expectedOutputSchemaId\` (a single id).
564
+ \`delegationTargetIds\` (and set \`delegation\` to \`on\` or \`multi\`).
565
+ - output_schema → agent: \`outputSchemaIds\` (a list), with
566
+ \`defaultOutputSchemaId\` for the one used when a caller names none.
518
567
  - Changing any of these is read-then-write under optimistic locking: read the
519
568
  agent, edit the field — an id-array is a FULL replace, so include the ids you
520
569
  are keeping — then \`update_agent\` with \`expectedVersion\`.
@@ -588,8 +637,8 @@ doc or a step's activities — and how large each may be, is not decided here: t
588
637
  placement rules are served by the platform and appended to this guide, read live
589
638
  from this deploy each time you call it.
590
639
 
591
- Long-term recall for an agent is the agent's **\`episodicMemoryEnabled\`** flag
592
- (Memory V2, opt-in). Session/workflow memory are RUNTIME, not authored: they are
640
+ An agent has no long-term recall of its own runs: episodic memory went with
641
+ axonity-flow#2176. Session/workflow memory are RUNTIME, not authored: they are
593
642
  written by a run, never set here. This connector does not expose them — the
594
643
  backend serves them per run, but no tool wraps those reads yet, so do not
595
644
  promise a user you can show them.
@@ -615,9 +664,8 @@ elsewhere points at nothing. Do this instead:
615
664
  2. Create the leaf dependencies first (tools, output_schemas). Keep a map from
616
665
  each OLD id to the NEW id the create call returns.
617
666
  3. Create agents, translating every referenced id through your map:
618
- old toolId → new toolId in \`toolIds\`, etc. Never send an old id. If the
619
- source agent has a persona, recreate it with \`create_agent_persona\` on the
620
- new agent.
667
+ old toolId → new toolId in \`toolIds\`, etc. Never send an old id. The
668
+ persona is a field of the agent: copy its \`persona\` text into the create.
621
669
  4. Create workflows; when you add agent/tool references into the document,
622
670
  translate through the map the same way.
623
671
  5. Attach skills/policies/reference-docs by the new ids, then read them back
@@ -628,10 +676,14 @@ The connector never carries a secret across: \`authConfig\` stays placeholders i
628
676
  the new tenant too, and a human fills the real value there.
629
677
 
630
678
  ## Structural workflow edits
631
- - **Start by reading the spec.** \`get_workflow_authoring_spec\` returns FOUR
632
- lists this deploy generates from its own registries: the mutation commands,
633
- the trigger types, the step types (including the ones you may not author, with
634
- the reason), and the schedule-rule shapes with a working example each. Neither
679
+ - **Start by reading the spec.** \`get_workflow_authoring_spec\` returns the
680
+ lists this deploy generates from its own registries: the mutation commands
681
+ (\`operations\`), the trigger types (\`triggerTypes\`), the step types
682
+ (\`stepTypes\`, including the ones you may not author, with the reason), the
683
+ schedule-rule shapes with a working example each (\`scheduleRuleKinds\`), the
684
+ value vocabularies (\`parameterTypes\`, \`outputKinds\`, \`schemaFieldKinds\`),
685
+ the decision evaluators (\`decisionEvaluators\`) and the column kinds of a
686
+ table (\`tableColumnKinds\`). Neither
635
687
  this guide nor the tool descriptions restate any of those lists: a list kept
636
688
  in the connector is right only by maintenance, and it has been wrong twice
637
689
  already, both times in the direction that costs an agent a 422 on something it
@@ -660,7 +712,8 @@ the new tenant too, and a human fills the real value there.
660
712
  Writing \`kind\` on a trigger parameter is not a 422; it is a key nothing
661
713
  reads, so the value silently falls back to text and the workflow runs with
662
714
  the wrong thing. Check which of the three you are writing before you write it.
663
- - \`rulesVersion\` in that response is a content hash over all four lists. While
715
+ - \`rulesVersion\` in that response is a content hash over the whole
716
+ answer. While
664
717
  it is unchanged there is nothing to re-fetch; re-read the spec when it changes,
665
718
  or when a mutation fails with a 422 suggesting your idea of a command is stale.
666
719
  - \`apply_workflow_mutations\` takes a LIST of commands and applies them in order,
@@ -746,13 +799,18 @@ a document to find out what the platform did.
746
799
  \`removedEdges\`. An edge you did not ask for is this, not corruption.
747
800
 
748
801
  ## Validating: two questions, two calls
749
- - \`validate_workflow({ workflowId })\` checks the STORED workflow against the
750
- tenant catalog — it confirms the agents, tools and flows the steps reference
751
- actually exist. This is the "can this run?" answer, and it comes back with
752
- \`catalogChecked: true\`.
753
- - \`validate_workflow({ document })\` is stateless and read-only-token safe, but
754
- without a catalog it can only judge STRUCTURE: \`launchable\` there means the
755
- graph is sound, not that it will run. It says so with \`catalogChecked: false\`.
802
+ - \`validate_workflow({ workflowId })\` checks the workflow as SAVED against the
803
+ tenant catalog — whether the agents, tools and flows the steps reference
804
+ exist and are published — plus its own wiring (its triggers and the knowledge
805
+ attached to it). This is the "can this run?" answer. It needs a token with
806
+ the \`author\` scope.
807
+ - \`validate_workflow({ document })\` judges the document against the same
808
+ catalog, saves nothing, and a read-only token may call it. Without the
809
+ workflow's id it skips the checks about that workflow's own wiring (its
810
+ triggers and the knowledge attached to it), so validate by \`workflowId\` once
811
+ it is saved. Either call answers \`catalogChecked: false\` when the catalog
812
+ could not be built: then \`launchable\` means the graph is sound, not that it
813
+ will run.
756
814
  - Pass exactly one. Before telling a human a workflow is ready, check
757
815
  \`catalogChecked\` — a green structural verdict is the easiest thing to
758
816
  over-read.
@@ -849,13 +907,24 @@ a document to find out what the platform did.
849
907
  \`read_run_session_memory_file\` opens one. When the trace shows a decision but
850
908
  not what it was reading, this is usually where the reason is. Workflow-bound
851
909
  reference material is NOT here — that lives in \`reference_docs\`.
852
- - **\`list_todo_steps\`** is every step in the tenant waiting on a human, across
853
- all runs; \`read_run_waiting_on\` is the same question for one run you already
854
- have. It is PAGED over the waiting RUNS, so \`items\` can be longer than
855
- \`pageSize\` — one run may park several steps. Follow \`nextCursor\` until it
856
- is null before concluding anything about how much is waiting.
857
- - Runs are the only thing with a real archive state — \`archive_run\` is
858
- reversible, \`bulk_delete_runs\` is not.
910
+ - **\`list_todo_steps\`** is every step in the tenant waiting on a person, across
911
+ all runs: an unanswered question (\`ask_user\`), a plan awaiting approval, a
912
+ manual step or a decision step. Not on it: archived runs, conversations, a
913
+ debug pause (\`phase_control\`) and a question already answered. Each item
914
+ belongs to one agent or none (\`agentId\`): a question or a plan to the agent
915
+ that asked, a manual or decision step to the workflow's owner, none for the
916
+ platform's old budget question and for hidden platform workflows. Pass
917
+ \`agentId\` for one agent's items; without it the list shows every item.
918
+ \`groupKey\` is equal for questions with the same workflow, step and text, so
919
+ they can be shown once; each is still answered on its own run.
920
+ - \`list_todo_steps\` is PAGED over the waiting RUNS, so \`items\` can be
921
+ longer than \`pageSize\` — one run may park several steps — or shorter.
922
+ Follow \`nextCursor\` until it is null before concluding anything about how
923
+ much is waiting. \`read_run_waiting_on\` is a different read: the pending
924
+ wake-tasks of one run (a timer; an answer or a callback's result on its way);
925
+ an open question, a FOR EACH batch and a callback still running have none.
926
+ - A run's archive is reversible (\`archive_run\` / \`unarchive_run\`);
927
+ \`bulk_delete_runs\` is not.
859
928
 
860
929
  ## Subworkflows — one workflow calling another
861
930
  Both halves live in the workflow DOCUMENT, so both are ordinary
@@ -944,13 +1013,18 @@ point and it changes without the process changing.
944
1013
  editing code, reviewing it and publishing a tool. A business user maintains a
945
1014
  table; nobody should need you to change a postcode.
946
1015
 
947
- **Static or dynamic — who owns the rows.**
948
- - \`isDynamic: false\` (the default) is reference data the AUTHOR maintains. A
949
- workflow reads it and cannot change it. \`allowedOperations\` must be empty:
950
- a permission nothing honours is refused, not stored.
951
- - \`isDynamic: true\` lets a workflow change the rows, limited to
1016
+ **Who fills it — \`filledBy\`, one per table** (\`author\`, \`workflow\`,
1017
+ \`query\` or \`source\`).
1018
+ - \`author\` (the default) is reference data the AUTHOR maintains. A workflow
1019
+ reads it and cannot change it. \`allowedOperations\` must be empty: a
1020
+ permission nothing honours is refused, not stored.
1021
+ - \`workflow\` lets a workflow change the rows, limited to
952
1022
  \`allowedOperations\` — any of \`add\` / \`update\` / \`delete\`. READING IS
953
1023
  NEVER LISTED there: it is what a table is for and is always allowed.
1024
+ - \`query\` fills the rows from a named query (\`fillingQueryId\`, on its
1025
+ \`rhythm\` or with \`refresh_data_table\`).
1026
+ - \`source\` holds no rows here: they stay in a data source, and \`external\`
1027
+ says where. \`create_data_table\` describes each filler's fields.
954
1028
  - You edit rows through \`add_data_table_row\` / \`update_data_table_row\` /
955
1029
  \`delete_data_table_row\` whatever the table's mode says — those grants are
956
1030
  about what a RUN may do, not about authoring.
@@ -993,8 +1067,8 @@ value across from one of the others, and do not guess. Every column needs a
993
1067
  \`description\`: an agent reads it to know what the column is for, and a save
994
1068
  without one is refused.
995
1069
 
996
- **\`list_data_tables\` is PAGED**, alone among the library lists — a tenant's
997
- reference data has no ceiling. Page one is not the library. Follow
1070
+ **\`list_data_tables\` is PAGED**, like \`list_measures\`, \`list_queries\` and
1071
+ \`list_applications\` — a tenant's reference data has no ceiling. Page one is not the library. Follow
998
1072
  \`nextCursor\` while \`hasMore\` is true, or better, narrow in the query:
999
1073
  \`name\` is exact and unique per workspace, so "does one called X already
1000
1074
  exist" is a single call rather than a walk. The page carries \`rowCount\`, never
@@ -1 +1 @@
1
- {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/tools/conventions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/tools/conventions.ts"],"names":[],"mappings":"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"}
@@ -170,8 +170,9 @@ export function registerDataTableTools(server, client) {
170
170
  "`fill.lastAt`, `fill.lastRowCount` and `fill.lastError` describe the " +
171
171
  "run. " +
172
172
  "\n\nRefused with a 422 when the table is not filled by a query " +
173
- "(`filledBy` is `author` or `workflow`) — its rows come from a workflow " +
174
- "or an author, and there is nothing to run.", { id: z.string().describe("The table's id.") }, async ({ id }) => guard(async () => jsonResult(await client.post(`${BASE}/${id}/refresh`))));
173
+ "(`filledBy` is `author`, `workflow` or `source`) — its rows come from " +
174
+ "an author or a workflow, or stay in their data source, and there is " +
175
+ "nothing to run.", { id: z.string().describe("The table's id.") }, async ({ id }) => guard(async () => jsonResult(await client.post(`${BASE}/${id}/refresh`))));
175
176
  server.tool("list_data_table_tools", "Which tools this table yields, and which of them a RUN can actually " +
176
177
  "reach. Read-only. " +
177
178
  "\n\nA published table mints its own CRUD tools, so giving an agent " +
@@ -1 +1 @@
1
- {"version":3,"file":"dataTables.js","sourceRoot":"","sources":["../../src/tools/dataTables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataTables.js","sourceRoot":"","sources":["../../src/tools/dataTables.ts"],"names":[],"mappings":"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"}
@@ -62,9 +62,11 @@ export async function readEntityContract(client, kinds) {
62
62
  }
63
63
  export function registerEntityContractTools(server, client) {
64
64
  server.tool("get_entity_authoring_contract", "Read this deploy's CREATE CONTRACT per entity kind from the platform " +
65
- "itself — tools (each type's `implementation`, connectors included), " +
66
- "agents, personas, knowledge, schemas, tables, toolboxes, secrets and " +
67
- "starts. Answers `{ kinds, contracts, rulesVersion }`: per kind the " +
65
+ "itself, per kind: `tool` (each type's implementation, connectors " +
66
+ "included), `agent` (its persona included), `application`, `measure`, " +
67
+ "`query`, `data_table`, `output_schema`, `policy`, `skill`, " +
68
+ "`reference_doc`, `prompt_snippet`, `toolbox`, `secret`, " +
69
+ "`conditional_trigger` and `trigger_element`. Answers `{ kinds, contracts, rulesVersion }`: per kind the " +
68
70
  "`create` and `update` fields (name, required, type, allowed values, " +
69
71
  "shape, and `refused` with where the value is authored instead), and " +
70
72
  "`publish.rules` — what stops it from going live, each with a `code` " +
@@ -1 +1 @@
1
- {"version":3,"file":"entityContract.js","sourceRoot":"","sources":["../../src/tools/entityContract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,kFAAkF;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AAE1E,qEAAqE;AACrE,MAAM,CAAC,MAAM,2BAA2B,GACtC,+DAA+D;IAC/D,qCAAqC,qBAAqB,KAAK;IAC/D,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,qEAAqE;IACrE,4DAA4D,CAAC;AAE/D,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAqB,EAAE,KAAgB;IAC9E,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,OAAO,UAAU,CACf,MAAM,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACzC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,eAAe,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;YACjF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,MAAqB;IAClF,MAAM,CAAC,IAAI,CACT,+BAA+B,EAC/B,uEAAuE;QACrE,sEAAsE;QACtE,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,2DAA2D;QAC3D,uEAAuE;QACvE,qEAAqE;QACrE,yCAAyC;QACzC,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,sDAAsD;QACtD,wEAAwE;QACxE,0EAA0E;QAC1E,iEAAiE;QACjE,mBAAmB,EACrB;QACE,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,mEAAmE;YACjE,sEAAsE,CACzE;KACJ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"entityContract.js","sourceRoot":"","sources":["../../src/tools/entityContract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,kFAAkF;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AAE1E,qEAAqE;AACrE,MAAM,CAAC,MAAM,2BAA2B,GACtC,+DAA+D;IAC/D,qCAAqC,qBAAqB,KAAK;IAC/D,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,qEAAqE;IACrE,4DAA4D,CAAC;AAE/D,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAqB,EAAE,KAAgB;IAC9E,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,OAAO,UAAU,CACf,MAAM,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACzC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,eAAe,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;YACjF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,MAAqB;IAClF,MAAM,CAAC,IAAI,CACT,+BAA+B,EAC/B,uEAAuE;QACrE,mEAAmE;QACnE,uEAAuE;QACvE,6DAA6D;QAC7D,0DAA0D;QAC1D,0GAA0G;QAC1G,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,2DAA2D;QAC3D,uEAAuE;QACvE,qEAAqE;QACrE,yCAAyC;QACzC,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,sDAAsD;QACtD,wEAAwE;QACxE,0EAA0E;QAC1E,iEAAiE;QACjE,mBAAmB,EACrB;QACE,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,mEAAmE;YACjE,sEAAsE,CACzE;KACJ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CACvD,CAAC;AACJ,CAAC"}
@@ -1,16 +1,26 @@
1
1
  /**
2
- * Secondary MCP tools: the agent-scoped persona create/read (personas
3
- * themselves are a full generic entity — see index.ts — but creation and the
4
- * by-agent read have no equivalent generic route), connectors (a tool
5
- * subtype), attaching memory to a target, and a few standalone one-offs.
2
+ * Secondary MCP tools: an agent's persona, connectors (a tool subtype),
3
+ * attaching memory to a target, and a few standalone one-offs.
6
4
  *
7
5
  * These use routes with shapes that don't fit the generic entity registrar:
8
- * a persona is created only through its agent, connectors are a tool with
6
+ * the persona is a field of its agent, connectors are a tool with
9
7
  * `type: "connector"` and MUST NOT carry real credentials, and attach/detach
10
8
  * is a path-only link.
11
9
  */
12
10
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
13
11
  import type { AxonityClient } from "../client.js";
12
+ /**
13
+ * The persona is the agent's `persona` field (axonity-flow#2176): the
14
+ * character text every prompt of the agent opens with, published with the
15
+ * agent. The persona entity, its own id, versions, drafts and approvals are
16
+ * gone, and so are the persona routes the tools called (21 persona operations
17
+ * left the API; 19 of them had a tool here).
18
+ *
19
+ * These two tools stay as the migration path: an agent that knows them lands
20
+ * on the field instead of on a 404 it would read as "no such id". Everything
21
+ * else about a persona is the agent's: its history is the agent's versions,
22
+ * it goes live with `request_publish_agent`.
23
+ */
14
24
  export declare function registerPersonaTools(server: McpServer, client: AxonityClient): void;
15
25
  export declare function registerConnectorTools(server: McpServer, client: AxonityClient): void;
16
26
  /** Keep the envelope, project the rows down to identity. */