@axonity-ai/mcp 0.17.1 → 0.19.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.
package/README.md CHANGED
@@ -55,8 +55,9 @@ was kept here. A conformance test asserts their absence.
55
55
 
56
56
  ### The generic entity family
57
57
 
58
- Twelve entities — **workflow, agent, tool, skill, policy, reference_doc,
59
- persona, output_schema, prompt_snippet, flow, data_table, measure** — share one shape,
58
+ Thirteen entities — **workflow, agent, tool, skill, policy, reference_doc,
59
+ persona, output_schema, prompt_snippet, flow, data_table, measure,
60
+ application** — share one shape,
60
61
  though not every entity gets every verb (see the per-entity notes below for the
61
62
  exceptions):
62
63
 
@@ -73,8 +74,9 @@ exceptions):
73
74
  | `request_publish_<entity>` | Ask for a draft to be published — creates a pending approval; never publishes. |
74
75
 
75
76
  Exceptions: `persona` has no `create_persona` (create only via
76
- `create_agent_persona`). And `list_data_tables` answers **one page**, not the
77
- whole library — see Tables below.
77
+ `create_agent_persona`). And `list_data_tables` (like `list_measures` and
78
+ `list_applications`) answers **one page**, not the whole library — see Tables
79
+ below.
78
80
 
79
81
  Three more entities use the same verbs **without** the draft ones —
80
82
  **data_source, table_relationship, dashboard**. None is versioned: a change is
@@ -91,7 +93,8 @@ backend applies it before the rows come back:
91
93
  `list_prompt_snippets({ deleted? })`,
92
94
  `list_data_tables({ name?, status?, isDynamic? })`,
93
95
  `list_data_sources({ enabled? })`,
94
- `list_table_relationships({ tableId? })`.
96
+ `list_table_relationships({ tableId? })`,
97
+ `list_applications({ name? })`.
95
98
 
96
99
  That table is **generated** from the pinned schema's own query parameters
97
100
  (`npm run generate:filters` → `src/generated/listFilters.ts`), not hand-listed.
@@ -129,7 +132,8 @@ Plus:
129
132
 
130
133
  ### Version history, rollback, and version-level delete
131
134
 
132
- For the eleven versioned entities (including `flow` and `data_table`):
135
+ For the versioned entities (including `flow`, `data_table`, `measure` and
136
+ `application`):
133
137
 
134
138
  | Tool | What it does |
135
139
  |------|--------------|
@@ -255,10 +259,11 @@ across these routes — the tool parameter names say which.
255
259
  would yield), `toolId` (whether a row exists) and `isLive` (whether a run
256
260
  can reach it) separately — an author who ticked "may add rows" and has not
257
261
  published has granted nothing yet.
258
- - **The semantic model** (`data_source`, `data_table` with provenance,
259
- `table_relationship`, `measure`, concepts, `dashboard`): a workspace
260
- connects a warehouse such as BigQuery, dynamic tables are filled from it on
261
- a schedule, measures define the numbers over those tables, concepts say
262
+ - **The semantic model** (`data_source`, `query`, `data_table`,
263
+ `table_relationship`, `measure`, concepts and their links, `dashboard`): a
264
+ workspace connects a warehouse such as BigQuery, named queries read it,
265
+ dynamic tables are filled by those queries on a schedule, measures define
266
+ the numbers over those tables, concepts say
262
267
  what each word and number means, and dashboards show the measures. Read
263
268
  `axonity_semantic_conventions` before building one — the platform serves
264
269
  those rules.
@@ -273,12 +278,24 @@ across these routes — the tool parameter names say which.
273
278
  `query_data_source` runs read-only SQL with capped rows (`truncated` says
274
279
  when rows were left out); a 422 is the query being refused, a 502 is the
275
280
  warehouse.
276
- - **There is no sync object.** A dynamic table carries its own
277
- `provenance` — `{ sourceId, sql, grain, keyColumns, mode, cron, timezone,
278
- enabled }` — on `create_data_table` / `update_data_table`, so a changed
279
- query is published like a changed column. `refresh_data_table` fills it
280
- now instead of at its next turn (it does not wait for the result; read
281
- the table's `fill` afterwards).
281
+ - **A query is its own versioned entity** (`query`): the generic family
282
+ plus the version tools, `request_publish_query`, `test_query` (run it
283
+ once with values; it suggests the `returns`), `read_query_usage` (the
284
+ read tool its publication mints, and which agents hold it) and
285
+ `list_query_live_versions`. It carries the SQL, the source, the grain,
286
+ its typed `parameters` and its described `returns`.
287
+ - **There is no sync object, and no `provenance`.** A table says what fills
288
+ it in `filledBy` — `author`, `workflow` or `query` — and a query-filled
289
+ table names its query in `fillingQueryId` and when it runs in `rhythm`
290
+ (`{ cron, timezone, keyColumns, mode, enabled }`). Only a table filled by
291
+ a query or a workflow is dynamic, and only a dynamic table can be read by
292
+ a measure. `refresh_data_table` fills it now instead of at its next turn
293
+ (it does not wait for the result; read the table's `fill` afterwards).
294
+ - **Concept links**: a concept's `refersTo` points at one thing;
295
+ `link_concept`, `unlink_concept` and `list_concept_links` hang the same
296
+ word on every column, table, measure, value or query that means it. The
297
+ links are rows of the `concept_links` table and go live when that table
298
+ is published.
282
299
  - **A measure is its own versioned entity**: the generic family plus the
283
300
  version tools, `request_publish_measure`, and `list_measure_live_versions`.
284
301
  It names the concept it means in `concept`, and the questions it answers
@@ -317,6 +334,42 @@ across these routes — the tool parameter names say which.
317
334
  tile). Plus `duplicate_dashboard`.
318
335
  - A reference doc has no `semanticKind` any more; the platform refuses it
319
336
  and the other retired fields and says where each one went.
337
+ - **Applications** (`application`): a program an agent operates through an
338
+ executor — a Windows program (`win32`) or a website (`web`) — with its
339
+ `limits`, what the agent may never do in it (processes, windows, keys,
340
+ buttons, folders, domains, secrets by name). The generic family and the
341
+ version tools, and `request_publish_application`: an executor receives only
342
+ the published limits, so only a human makes them live.
343
+ - **Executors**: `set_application_executors` / `read_application_executors`
344
+ choose the machines an application runs on (the whole set at once);
345
+ `list_executors`, `read_executor`, `read_executor_applications` and
346
+ `list_executor_commands` only read. Registering or revoking an executor
347
+ is a human's job — it mints a token, and no tool here ever returns one.
348
+ - **What it has learned**: `list_application_knowledge` (elements,
349
+ instructions, lessons, one page at a time) and
350
+ `list_application_knowledge_versions`; `forget_application_knowledge`,
351
+ `restore_application_knowledge` and `write_application_knowledge` to
352
+ correct it. Linking executors and changing knowledge are reserved for a
353
+ workspace administrator on the platform, and a service token always
354
+ counts as a member, so today those answer with a refusal that says so.
355
+ - **Who may read what** (labels, audiences, roles): every policy, skill,
356
+ reference doc and table carries a label — `level` (public, internal,
357
+ confidential) and `audienceIds`, whom it is meant for. `list_audiences` /
358
+ `read_audience` give the ids to put there, `list_roles` / `read_role` say
359
+ what each role reads and maintains, and `read_member_roles` which roles a
360
+ colleague holds. Leave the label out and it gets the default (internal, for
361
+ Staff); `level: null` makes a thing readable by nobody. Narrowing a label is
362
+ always allowed; widening it is a colleague's act, and the refusal says so.
363
+ An agent's `clearance` is set by an administrator; a workflow's by its
364
+ author, through the publish approval. Managing audiences and roles is not
365
+ here yet.
366
+ - **The knowledge graph** (Cortex), read with the token's own clearance:
367
+ `search_knowledge_graph`, `list_knowledge_topics`, `list_topic_facts`,
368
+ `read_fact` (passages, sources, certainty, validity, which run taught it),
369
+ `read_source`, `list_knowledge_tree`, `list_related_topics` and
370
+ `list_archived_facts`. Looking only: confirming, correcting, archiving or
371
+ relabelling a fact ends with a person. With the module off, every call says
372
+ so in plain words.
320
373
  - `list_deleted_prompt_snippets` calls `/api/v1/prompt-snippets/deleted`; the
321
374
  backend returns it as `{ items: [... ] }`, and the tool forwards that response
322
375
  unchanged.
package/dist/errors.js CHANGED
@@ -167,21 +167,51 @@ export class AuthError extends AxonityApiError {
167
167
  * cannot…" here sends it and its human to the token settings for something no
168
168
  * token setting fixes (#78).
169
169
  */
170
- const ADMIN_ONLY_SENTENCE = /only administrators/i;
170
+ const ADMIN_ONLY_SENTENCE = /only (administrators|an administrator)\b/i;
171
+ /**
172
+ * The platform's sentence when a whole MODULE is off in the workspace
173
+ * ("Cortex is switched off in this workspace…"). Not the token's fault and not
174
+ * the call's: the advice is the opposite of the scope advice, so it gets its
175
+ * own words (axonity-mcp#88).
176
+ */
177
+ const MODULE_OFF_SENTENCE = /is switched off in this workspace/i;
178
+ /**
179
+ * The platform's refusal to WIDEN a label — make knowledge readable for more
180
+ * people. Widening is publishing, and only a colleague who maintains the
181
+ * audiences may do it; a token never can, whatever its scopes (axonity-mcp#88).
182
+ */
183
+ const WIDENING_SENTENCE = /widen(ing)? a label/i;
184
+ /** The 403 explanation for a refusal whose body says why. */
185
+ function forbiddenExplanation(said) {
186
+ if (MODULE_OFF_SENTENCE.test(said)) {
187
+ return ("Forbidden (403): MODULE SWITCHED OFF. This part of Axonity is switched " +
188
+ "off in this workspace, so nothing in it can be read or changed — this " +
189
+ "is not a mistake in your call and not a limit of your token. Tell your " +
190
+ "human: a platform administrator can switch it on.");
191
+ }
192
+ if (WIDENING_SENTENCE.test(said)) {
193
+ return ("Forbidden (403): WIDENING A LABEL. Making something readable for more " +
194
+ "people (a lower level, or an audience added) is publishing it, and only " +
195
+ "a colleague who maintains those audiences may do that — never an agent " +
196
+ "or a token. Narrowing is always allowed. Keep the label as it is, or ask " +
197
+ "a colleague to widen it in Axonity.");
198
+ }
199
+ if (ADMIN_ONLY_SENTENCE.test(said)) {
200
+ return ("Forbidden (403): ADMINISTRATOR ONLY. This action is reserved for a " +
201
+ "workspace administrator, and a service token always counts as a " +
202
+ "member — so no token can do it, whatever its scopes. This is not a " +
203
+ "mistake in your call and retrying will not help. Tell your human: " +
204
+ "an administrator can do it in Axonity.");
205
+ }
206
+ return ("Forbidden (403): this service token is not allowed to perform that action. " +
207
+ "A read-only token cannot create, update, delete, or request-publish, and no " +
208
+ "token may publish directly — use request_publish_* and let a human approve.");
209
+ }
171
210
  /** 403 — the token lacks the scope for this action (e.g. read-only on a write). */
172
211
  export class ForbiddenError extends AxonityApiError {
173
212
  constructor(body) {
174
213
  const env = asEnvelope(body);
175
- const adminOnly = ADMIN_ONLY_SENTENCE.test(describeBody(body) ?? "");
176
- super(withDetail(adminOnly
177
- ? "Forbidden (403): ADMINISTRATOR ONLY. This action is reserved for a " +
178
- "workspace administrator, and a service token always counts as a " +
179
- "member — so no token can do it, whatever its scopes. This is not a " +
180
- "mistake in your call and retrying will not help. Tell your human: " +
181
- "an administrator can do it in Axonity."
182
- : "Forbidden (403): this service token is not allowed to perform that action. " +
183
- "A read-only token cannot create, update, delete, or request-publish, and no " +
184
- "token may publish directly — use request_publish_* and let a human approve.", body), 403, body, env?.code ?? "forbidden", env?.retryable ?? false);
214
+ super(withDetail(forbiddenExplanation(describeBody(body) ?? ""), body), 403, body, env?.code ?? "forbidden", env?.retryable ?? false);
185
215
  this.name = "ForbiddenError";
186
216
  }
187
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -91,7 +91,13 @@ export const LIST_FILTERS = {
91
91
  arg: "isDynamic",
92
92
  query: "is_dynamic",
93
93
  type: "boolean",
94
- description: "true: only tables a workflow may change. false: only reference data the author maintains. Omit for both.",
94
+ description: "true: only tables whose rows change without an author typing them. false: only reference data the author maintains. Omit for both. Derived from filledBy, which is the more precise question.",
95
+ },
96
+ {
97
+ arg: "filledBy",
98
+ query: "filled_by",
99
+ type: "string",
100
+ description: "Only tables filled this way: author, workflow or query. A value outside the three is refused rather than silently ignored.",
95
101
  },
96
102
  ],
97
103
  "data_source": [
@@ -118,5 +124,21 @@ export const LIST_FILTERS = {
118
124
  description: "Only the measures that read this table — what a table page shows.",
119
125
  },
120
126
  ],
127
+ "application": [
128
+ {
129
+ arg: "name",
130
+ query: "name",
131
+ type: "string",
132
+ description: "Only the application with exactly this name.",
133
+ },
134
+ ],
135
+ "query": [
136
+ {
137
+ arg: "dataSourceId",
138
+ query: "dataSourceId",
139
+ type: "string",
140
+ description: "Only the queries that read this source.",
141
+ },
142
+ ],
121
143
  };
122
144
  //# sourceMappingURL=listFilters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listFilters.js","sourceRoot":"","sources":["../../src/generated/listFilters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAiC;IACxD,UAAU,EAAE;QACV;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,sGAAsG;SACzG;QACD;YACE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,kFAAkF;SACrF;KACF;IACD,OAAO,EAAE;QACP;YACE,GAAG,EAAE,eAAe;YACpB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,uNAAuN;SAC1N;KACF;IACD,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,0PAA0P;SAC7P;QACD;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,uGAAuG;SAC1G;KACF;IACD,eAAe,EAAE;QACf;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,0PAA0P;SAC7P;QACD;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,uGAAuG;SAC1G;KACF;IACD,gBAAgB,EAAE;QAChB;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,oKAAoK;SACvK;KACF;IACD,YAAY,EAAE;QACZ;YACE,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,gOAAgO;SACnO;QACD;YACE,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,2JAA2J;SAC9J;QACD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,0GAA0G;SAC7G;KACF;IACD,aAAa,EAAE;QACb;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,4FAA4F;SAC/F;KACF;IACD,oBAAoB,EAAE;QACpB;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,0IAA0I;SAC7I;KACF;IACD,SAAS,EAAE;QACT;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,mEAAmE;SACtE;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"listFilters.js","sourceRoot":"","sources":["../../src/generated/listFilters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAiC;IACxD,UAAU,EAAE;QACV;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,sGAAsG;SACzG;QACD;YACE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,kFAAkF;SACrF;KACF;IACD,OAAO,EAAE;QACP;YACE,GAAG,EAAE,eAAe;YACpB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,uNAAuN;SAC1N;KACF;IACD,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,0PAA0P;SAC7P;QACD;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,uGAAuG;SAC1G;KACF;IACD,eAAe,EAAE;QACf;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,0PAA0P;SAC7P;QACD;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,uGAAuG;SAC1G;KACF;IACD,gBAAgB,EAAE;QAChB;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,oKAAoK;SACvK;KACF;IACD,YAAY,EAAE;QACZ;YACE,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,gOAAgO;SACnO;QACD;YACE,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,2JAA2J;SAC9J;QACD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,+LAA+L;SAClM;QACD;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,4HAA4H;SAC/H;KACF;IACD,aAAa,EAAE;QACb;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,4FAA4F;SAC/F;KACF;IACD,oBAAoB,EAAE;QACpB;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,0IAA0I;SAC7I;KACF;IACD,SAAS,EAAE;QACT;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,mEAAmE;SACtE;KACF;IACD,aAAa,EAAE;QACb;YACE,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,8CAA8C;SACjD;KACF;IACD,OAAO,EAAE;QACP;YACE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,yCAAyC;SAC5C;KACF;CACF,CAAC"}
package/dist/index.js CHANGED
@@ -28,12 +28,16 @@ import { registerDataTableTools } from "./tools/dataTables.js";
28
28
  import { assertFormulaShape, registerMeasureFormulaTools } from "./tools/measureFormula.js";
29
29
  import { assertPlaceholderCredentials } from "./tools/credentials.js";
30
30
  import { registerAttachTools, registerCatalogTools, registerConnectorTools, registerDependencyTools, registerPersonaTools, } from "./tools/extras.js";
31
+ import { registerApplicationTools } from "./tools/applications.js";
32
+ import { registerAccessTools } from "./tools/access.js";
31
33
  import { registerAuthoringSpecTools } from "./tools/authoringSpec.js";
32
34
  import { registerCompanyTools } from "./tools/company.js";
33
35
  import { registerComponentTools } from "./tools/components.js";
34
36
  import { registerConceptTools } from "./tools/concepts.js";
37
+ import { registerKnowledgeGraphTools } from "./tools/knowledgeGraph.js";
35
38
  import { registerOperationsTools } from "./tools/operations.js";
36
39
  import { registerPromptPlacementTools } from "./tools/promptPlacement.js";
40
+ import { registerQueryTools } from "./tools/queries.js";
37
41
  import { LIST_FILTERS } from "./generated/listFilters.js";
38
42
  import { registerEntityTools } from "./tools/register.js";
39
43
  import { registerRunTools } from "./tools/runs.js";
@@ -44,22 +48,32 @@ import { registerTriggerTools } from "./tools/triggers.js";
44
48
  import { registerApprovalTools, registerExecutionTools, registerValidationTools, } from "./tools/validation.js";
45
49
  import { registerVersionTools } from "./tools/versions.js";
46
50
  import { registerWorkflowMutations } from "./tools/workflowMutations.js";
47
- const PROVENANCE_NOTE = "WHERE THE ROWS COME FROM — `provenance`, for a dynamic table filled from " +
48
- "a warehouse. It replaces the old data-source sync: there is no separate " +
49
- "sync object any more, so create_data_source_sync / run_data_source_sync " +
50
- "do not exist. `provenance` is " +
51
- "`{ sourceId, sql, grain, keyColumns?, mode?, cron, timezone?, enabled? }`: " +
52
- "`sourceId` the data source; `sql` the query whose RESULT fills the table " +
53
- "(try it first with query_data_source); `grain` what ONE ROW of that " +
54
- "result is, as a sentence (\"one row per month per country\") — " +
55
- "mandatory, it decides what the table can be asked for ever after; " +
56
- "`keyColumns` which columns identify a row for `mode: \"upsert\"` (the " +
57
- "default — `append` takes no key); `cron` when it runs, read in " +
58
- "`timezone` (default UTC); `enabled: false` pauses it. A table with " +
59
- "provenance has no other filler — a workflow may not also write its " +
60
- "rows. It is part of the table's design, so a changed query is published " +
61
- "through request_publish_data_table like a changed column. To fill it " +
62
- "now rather than at its next turn: refresh_data_table. " +
51
+ /**
52
+ * What fills a table (axonity-flow#2013). The inline `provenance` bag is gone:
53
+ * its SQL, source and grain moved to a named query, and what stays on the
54
+ * table is which filler it has and when it runs.
55
+ */
56
+ const FILL_NOTE = "WHAT FILLS IT — `filledBy`, one word: `author` (the default: reference " +
57
+ "data its author maintains), `workflow` (a workflow writes the rows, " +
58
+ "limited to `allowedOperations`) or `query` (a named query fetches them). " +
59
+ "A table has ONE filler. `isDynamic` is no longer sent: it follows from " +
60
+ "`filledBy` — a table filled by a query or a workflow is dynamic, and " +
61
+ "ONLY A DYNAMIC TABLE CAN BE READ BY A MEASURE. Never set `filledBy: " +
62
+ "\"workflow\"` on a table no workflow fills just to make a measure read " +
63
+ "it; give it a query. " +
64
+ "\n\nFILLED BY A QUERY: `fillingQueryId` is the query (create_query, " +
65
+ "list_queries) — required with `filledBy: \"query\"`, refused otherwise, " +
66
+ "and one query fills one table. The query carries the SQL, the source " +
67
+ "and the grain. `rhythm` says when and how it fills: " +
68
+ "`{ cron, timezone?, keyColumns?, mode?, enabled? }` — `cron` when it " +
69
+ "runs, read in `timezone` (default UTC; an empty cron never runs by " +
70
+ "itself); `mode` `upsert` (the default: replaces the rows that match " +
71
+ "`keyColumns` and adds the rest) or `append` (takes no key); `enabled: " +
72
+ "false` pauses it and keeps its rows. Leave `rhythm` out and the table " +
73
+ "fills only when asked: refresh_data_table. The fill runs the query as " +
74
+ "it stands. " +
75
+ "\n\n`provenance` and `clearProvenance` no longer exist and are refused " +
76
+ "— the query took their place. " +
63
77
  "\n\nMEASURES ARE NOT ON THE TABLE. A measure is its own entity " +
64
78
  "(create_measure); a table carries only its `timeAxis` " +
65
79
  "(`{ column, grain }`), which every measure over it reads.";
@@ -96,8 +110,8 @@ const MEASURE_NOTE = "READ get_measure_formula_spec FIRST; never write a functio
96
110
  "as text or as the stored tree. Four kinds, one grammar: " +
97
111
  "\n- a BASE aggregates one COLUMN of one table: " +
98
112
  "`sum(orders.amount) where orders.channel = 'd2c'`. It reads a column, " +
99
- "never a calculation per row — a value per row belongs in the table's " +
100
- "source query (`provenance.sql`), as a column of its own; " +
113
+ "never a calculation per row — a value per row belongs in the query " +
114
+ "that fills the table, as a column of its own; " +
101
115
  "\n- a DERIVED measure computes with other measures by name: " +
102
116
  "`[revenue_d2c] + [revenue_retail]`, `divide([cm1], [net_revenue])`, " +
103
117
  "`divide([revenue_d2c], [net_revenue] ignore orders.channel)` for a share " +
@@ -125,6 +139,94 @@ const MEASURE_NOTE = "READ get_measure_formula_spec FIRST; never write a functio
125
139
  "refused with `legacy_field`. " +
126
140
  "\n\nIt is a DRAFT until published: request_publish_measure. Only a " +
127
141
  "published measure gives a certified number.";
142
+ /**
143
+ * What an application is made of (axonity-flow#1901). The limits are the point:
144
+ * an executor enforces them on every command, so a wrong key is a limit nobody
145
+ * enforces — the platform refuses unknown keys, and this says which exist.
146
+ */
147
+ const APPLICATION_NOTE = "Fields: `name` (unique in the workspace), `technology` (`win32` for a " +
148
+ "Windows desktop program, `web` for a site in a browser), `description` " +
149
+ "and `limits` — what an agent may NEVER do in it, enforced by the executor " +
150
+ "on the machine. `limits` keys stay snake_case, the way the executor reads " +
151
+ "them, and an unknown key is refused: `processes` (executables it may " +
152
+ "touch, `app.exe`), `windows` (window classes it may act in), " +
153
+ "`never_keys` (key combinations it may never send, `ctrl+a`), " +
154
+ "`never_buttons` (button captions it may never press), `folders` (folders " +
155
+ "it stays inside), `domains` (web domains it stays inside, " +
156
+ "`nl.wikipedia.org`), `secrets` (workspace secrets it may type, BY NAME — " +
157
+ "never a value), `home` (a website's start address) and `readers` (per " +
158
+ "control class, how a screen reader reads it). " +
159
+ "\n\nAn executor receives only the PUBLISHED limits, never a draft: " +
160
+ "request_publish_application, then a human approves. Which machines run it " +
161
+ "is set_application_executors.";
162
+ /**
163
+ * Who may read a piece of knowledge (axonity-mcp#88, S2; axonity-flow#1918).
164
+ * The four knowledge kinds carry a label; the backend already took the fields,
165
+ * and nothing told an agent they exist or that `null` means "nobody".
166
+ */
167
+ const LABEL_NOTE = "WHO MAY READ IT — the label. `level` is how sensitive it is (public, " +
168
+ "internal or confidential); `audienceIds` is whom it is meant for, as ids " +
169
+ "from list_audiences — never guess one and never match on a name. Leave " +
170
+ "both out and it gets the workspace default: internal, for Staff. " +
171
+ "Sending `level: null` means NO label: nobody can read it — no colleague, " +
172
+ "no agent — until a colleague who maintains its audience labels it. You " +
173
+ "can only give a label you can read yourself.";
174
+ const LABEL_UPDATE_NOTE = "CHANGING WHO MAY READ IT. Narrowing is always allowed: a higher " +
175
+ "`level`, or an audience taken away. WIDENING — a lower level, or an " +
176
+ "audience added — makes it readable for more people, which is publishing " +
177
+ "it, and only a colleague who maintains those audiences may do that. A " +
178
+ "token never can: the refusal says so, and the way forward is to ask a " +
179
+ "colleague in Axonity, not to try another route. `audienceIds` replaces " +
180
+ "the whole set — send the ones it keeps too. `level: null` removes the " +
181
+ "label, which leaves it readable by nobody.";
182
+ /** What an agent or a process may read (axonity-mcp#88, S2). */
183
+ const CLEARANCE_SHAPE = "`clearance` is `{ maxLevel, audienceIds }`: up to which level it reads " +
184
+ "(public, internal or confidential; null reads nothing) and for which " +
185
+ "audiences (ids from list_audiences).";
186
+ const AGENT_CLEARANCE_NOTE = "WHAT THE AGENT MAY READ. " +
187
+ CLEARANCE_SHAPE +
188
+ " Only an ADMINISTRATOR sets it, so a token sending it is refused: leave " +
189
+ "it out and the agent gets the workspace default, internal for Staff. " +
190
+ "Inside a workflow the agent never reads more than the workflow's own " +
191
+ "clearance.";
192
+ const WORKFLOW_CLEARANCE_NOTE = "WHAT THE PROCESS MAY READ. " +
193
+ CLEARANCE_SHAPE +
194
+ " Set it to the audiences of whoever the process serves. A new workflow " +
195
+ "starts with the workspace default (internal, for Staff); change it with " +
196
+ "update_workflow({ fields: { clearance } }). It takes effect through the " +
197
+ "publish approval like the rest of the workflow, and no agent in the " +
198
+ "process ever reads more than this.";
199
+ /**
200
+ * What a query is made of (axonity-flow#2010, S1). A query is a named, typed
201
+ * read of one source: it answers an agent's question once published, and it
202
+ * fills a table. The SQL, source and grain that used to sit in a table's
203
+ * `provenance` live here now.
204
+ */
205
+ const QUERY_NOTE = "A QUERY is a named, typed read of one data source. Published, it does " +
206
+ "two things: it becomes a read tool an agent can be given (its " +
207
+ "`description` is what that agent reads), and it can fill a table " +
208
+ "(`filledBy: \"query\"`, `fillingQueryId` on the table). " +
209
+ "\n\nFields: `name` (unique in the workspace; the tool carries it), " +
210
+ "`description` (what it answers), `dataSourceId` (required — " +
211
+ "list_data_sources), `sql` (read-only, in the warehouse's own dialect, " +
212
+ "with each input written `:name`; read_data_source_schema spells the " +
213
+ "tables), `grain` (what ONE ROW is, as a sentence — \"one row per month " +
214
+ "per country\"), `questions` (how somebody would ask for this, at most " +
215
+ "20), `parameters` and `returns`. " +
216
+ "\n\n`parameters` (at most 20): `[{ name, label?, kind, description?, " +
217
+ "required?, default?, choiceOptions? }]`. `kind` is text, number, date, " +
218
+ "datetime, time, yes-no or choice — one value, never a list or an " +
219
+ "object. A value is BOUND, never written into the statement. An optional " +
220
+ "one with no value binds NULL, which is what `(:land is null or l = " +
221
+ ":land)` is written for. " +
222
+ "\n\n`returns`: `[{ name, label?, kind, description, concept? }]`, one " +
223
+ "per column the statement hands back, named exactly as it returns it. " +
224
+ "`kind` adds object and list to the parameter kinds. Every column needs " +
225
+ "a `description` before the query can be published. " +
226
+ "\n\nThe statement can carry its own figures: a query with no table " +
227
+ "behind it (a `select … union all select …` of plan values) is a query " +
228
+ "like any other. Try it with test_query before you ask for publication; " +
229
+ "its answer suggests `returns` from what came back.";
128
230
  /**
129
231
  * The entities the connector covers. Core entities (C4), memory entities (C5)
130
232
  * — skills, policies, reference docs — which have the same draft→publish
@@ -138,6 +240,8 @@ const ENTITIES = [
138
240
  updateMethod: "PATCH",
139
241
  label: "workflows (business processes)",
140
242
  deleteVersionParam: "expectedVersion",
243
+ createNote: WORKFLOW_CLEARANCE_NOTE,
244
+ updateWarning: WORKFLOW_CLEARANCE_NOTE,
141
245
  },
142
246
  {
143
247
  singular: "agent",
@@ -145,6 +249,8 @@ const ENTITIES = [
145
249
  updateMethod: "PUT",
146
250
  label: "agents",
147
251
  deleteVersionParam: "expectedVersion",
252
+ createNote: AGENT_CLEARANCE_NOTE,
253
+ updateWarning: AGENT_CLEARANCE_NOTE,
148
254
  },
149
255
  {
150
256
  singular: "tool",
@@ -162,6 +268,8 @@ const ENTITIES = [
162
268
  updateMethod: "PUT",
163
269
  label: "skills (reusable know-how for agents)",
164
270
  deleteVersionParam: "expected_version",
271
+ createNote: LABEL_NOTE,
272
+ updateWarning: LABEL_UPDATE_NOTE,
165
273
  },
166
274
  {
167
275
  singular: "policy",
@@ -170,6 +278,8 @@ const ENTITIES = [
170
278
  label: "policies (rules and guardrails for agents)",
171
279
  plural: "policies",
172
280
  deleteVersionParam: "expected_version",
281
+ createNote: LABEL_NOTE,
282
+ updateWarning: LABEL_UPDATE_NOTE,
173
283
  },
174
284
  {
175
285
  singular: "reference_doc",
@@ -177,6 +287,8 @@ const ENTITIES = [
177
287
  updateMethod: "PUT",
178
288
  label: "reference docs (background knowledge for agents)",
179
289
  deleteVersionParam: "expected_version",
290
+ createNote: LABEL_NOTE,
291
+ updateWarning: LABEL_UPDATE_NOTE,
180
292
  },
181
293
  {
182
294
  singular: "output_schema",
@@ -226,20 +338,24 @@ const ENTITIES = [
226
338
  label: "tables (authored reference data agents and decisions read)",
227
339
  deleteVersionParam: "expected_version",
228
340
  listPaging: { defaultPageSize: 20, maxPageSize: 200 },
229
- createNote: `${PROVENANCE_NOTE}\n\n${DATE_TABLE_NOTE}`,
341
+ createNote: `${FILL_NOTE}\n\n${DATE_TABLE_NOTE}\n\n${LABEL_NOTE}`,
230
342
  deleteNote: BREAKS_MEASURE_NOTE,
231
343
  publishNote: BREAKS_MEASURE_NOTE,
232
- updateWarning: PROVENANCE_NOTE +
344
+ updateWarning: FILL_NOTE +
345
+ " On an update: `clearFillingQuery: true` takes the query away and " +
346
+ "leaves the rows that are there; `rhythm` is replaced whole when sent; " +
347
+ "`clearRhythm: true` takes it away (the table then fills only when " +
348
+ "asked), which is not the same as pausing it. " +
233
349
  "\n\n" +
234
350
  DATE_TABLE_NOTE +
235
- " Sending `provenance` replaces it whole; `clearProvenance: true` " +
236
- "takes the source away and leaves the rows that are there. " +
237
351
  "\n\n`rows` AND `columns` ARE WHOLE-COLLECTION FIELDS: sending either " +
238
352
  "REPLACES it entirely. Passing one row in `rows` does not append it — it " +
239
353
  "deletes every other row in the table. To change content, use " +
240
354
  "add_data_table_row / update_data_table_row / delete_data_table_row, " +
241
355
  "which address a single row and cannot destroy the rest. Use `rows` here " +
242
- "only when you genuinely mean to replace the whole content.",
356
+ "only when you genuinely mean to replace the whole content." +
357
+ "\n\n" +
358
+ LABEL_UPDATE_NOTE,
243
359
  },
244
360
  {
245
361
  // A measure was a field on a table; the semantic model (axonity-flow#1881
@@ -273,6 +389,60 @@ const ENTITIES = [
273
389
  "the tables it reads follow from its formula. Sending `definition` " +
274
390
  "replaces it whole, so send the `expression` with it.",
275
391
  },
392
+ {
393
+ // A named read of one source (axonity-flow#2010, S1), with routes in the
394
+ // same order and spelling as a measure's — so the whole family comes from
395
+ // the registrars. Running it once, and who holds its tool, are in
396
+ // tools/queries.ts.
397
+ singular: "query",
398
+ basePath: "/api/v1/queries",
399
+ updateMethod: "PUT",
400
+ plural: "queries",
401
+ label: "queries (named, typed reads of a data source that answer an agent and fill tables)",
402
+ deleteVersionParam: "expectedVersion",
403
+ listPaging: { defaultPageSize: 20, maxPageSize: 200 },
404
+ createNote: QUERY_NOTE,
405
+ deleteNote: "A query that fills a table, or whose tool an agent holds, is used: " +
406
+ "read_query_usage says who holds its tool, and list_data_tables " +
407
+ "({ filledBy: \"query\" }) which tables it fills.",
408
+ publishNote: "Refused while read_query's `publishBlockers` is not empty — each one " +
409
+ "names what is missing (a grain, a column without a description, a " +
410
+ "parameter the statement does not use). Publishing makes its read tool " +
411
+ "live for every agent that holds it.",
412
+ updateWarning: QUERY_NOTE +
413
+ " On an update, `parameters`, `returns` and `questions` are replaced " +
414
+ "WHOLE when sent: read first and send the complete list, each item " +
415
+ "with its `id` so it stays the same item.",
416
+ },
417
+ {
418
+ // A program an agent operates through an executor (axonity-flow#1901),
419
+ // with routes in the same order and spelling as a table's — so the whole
420
+ // family comes from the registrars. What is not generic (the executors it
421
+ // runs on, what it has learned) is in tools/applications.ts.
422
+ singular: "application",
423
+ basePath: "/api/v1/applications",
424
+ updateMethod: "PUT",
425
+ label: "applications (programs an agent operates through an executor, with their limits)",
426
+ deleteVersionParam: "expected_version",
427
+ listPaging: { defaultPageSize: 20, maxPageSize: 200 },
428
+ createNote: APPLICATION_NOTE,
429
+ updateWarning: APPLICATION_NOTE +
430
+ " `limits` is replaced WHOLE when sent: read the application first and " +
431
+ "send the complete object, or a limit you left out is gone.",
432
+ publishNote: "The limits are what an executor on a customer's machine is allowed to " +
433
+ "do, which is why only a human makes them live. Until the approval is " +
434
+ "decided, the executors keep the limits published before. " +
435
+ "\n\nPublishing is also what rebuilds the application's act/observe " +
436
+ "tools from the published version. To publish again WITHOUT a change — " +
437
+ "an application already live, no draft, the request refused as " +
438
+ "`already_live` — call ensure_application_major_version first: it opens " +
439
+ "a draft of the current content, and this request then goes through. " +
440
+ "Never edit a field just to make a draft. A platform release rebuilds " +
441
+ "these tools by itself on start, so a new tool shape after a deploy " +
442
+ "needs no publish. To take a workflow live with the application its " +
443
+ "agents operate, request this alongside request_publish_release: a " +
444
+ "release does not carry the application yet.",
445
+ },
276
446
  // The three below arrived with axonity-flow#1849 (axonity-mcp#78). None is
277
447
  // versioned or publish-approved: a change is live the moment it is saved, so
278
448
  // there is no draft to discard and no request_publish_*. Each lists one page
@@ -296,9 +466,9 @@ const ENTITIES = [
296
466
  "(maxBytesBilled, maxSeconds, allowedDatasets, forbiddenDatasets, " +
297
467
  "personalColumns, dateFilters); all are empty by default. " +
298
468
  "\n\nThen test_data_source to see whether it answers. A table is " +
299
- "filled from this source through its own `provenance.sourceId` " +
300
- "(create_data_table) — not through a sync, and not through a " +
301
- "reference doc.",
469
+ "filled from this source by a query that reads it (create_query, " +
470
+ "then `filledBy: \"query\"` and `fillingQueryId` on the table) — not " +
471
+ "through a sync, and not through a reference doc.",
302
472
  updateWarning: "NO DRAFT: this changes the live source, which every table it fills and every query " +
303
473
  "uses at once. `config` and `policy` are replaced WHOLE when sent — " +
304
474
  "read first and send the complete block.",
@@ -376,6 +546,12 @@ const VERSIONED = [
376
546
  publishedPath: "versions",
377
547
  },
378
548
  { singular: "measure", basePath: "/api/v1/measures", publishedPath: "versions" },
549
+ { singular: "query", basePath: "/api/v1/queries", publishedPath: "versions" },
550
+ {
551
+ singular: "application",
552
+ basePath: "/api/v1/applications",
553
+ publishedPath: "versions",
554
+ },
379
555
  ];
380
556
  export function registerAll(server, client) {
381
557
  registerConventions(server, client);
@@ -415,7 +591,11 @@ export function registerAll(server, client) {
415
591
  registerMeasureFormulaTools(server, client);
416
592
  registerDashboardTools(server, client);
417
593
  registerConceptTools(server, client);
594
+ registerQueryTools(server, client);
418
595
  registerComponentTools(server, client);
596
+ registerApplicationTools(server, client);
597
+ registerAccessTools(server, client);
598
+ registerKnowledgeGraphTools(server, client);
419
599
  }
420
600
  export function buildServer(client) {
421
601
  const server = new McpServer({ name: "axonity", version: "0.1.0" });