| Tool |
Mission |
Required |
Optional |
Output |
Access |
| Tool.AddFile |
Add a public document (PDF datasheet, spec, web page) to a library by its URL (PnP Add-PnPFile): fetched by SPICE from public addresses only, its text extracted page by page into a ContentType.SourceDocument row keyed from the URL (a re-add replaces it). |
site, url |
list, key |
|
Member |
| Tool.AddNodes |
BRAINSTORM.23g: put many items on the mind map in one call, all children of one parent - SharePoint's UpdateListItems batch of New commands. Deterministic (the caller names the titles); written as the tool, so on the moderated Ideas list they wait for approval. Skips titles already under that parent. |
parent, titles |
site, list |
|
Member |
| Tool.AdvanceListItem |
Move a list item to the next Status its ContentType's Transitions declare (SharePoint's workflow status move): validates the arc, refuses an undeclared move and a missing RequiresField, then persists; an arc that declares Workflow= starts that workflow on the item. Same move as the form's Next-step button. |
site, list, itemId, to |
|
|
Member |
| Tool.Advise |
The city advisor: gather the city's wisdom (KnowledgeArticles) + agency (crews) + open gaps + building blocks, analyse where the gaps are, and return ranked SUGGESTIONS - what to build/approve next, which single-covered seats to staff, and the next standard to borrow. The anti-paperclip move (Bostrom's maximiser lesson): it PROPOSES, you dispose - it never makes a system change itself. Deterministic, no LLM. A building-block station: compose before Tool.MakePage and the belt publishes the suggestions as a page. Args: none. |
|
|
|
Member |
| Tool.ApprovalGate |
V11.23i a reusable governance gate station: halts a pipeline before a step that spends money (estimatedCostUsd over costThreshold, default 1.00) or touches an external system (external=true), and raises a Pending checkpoint on /approvals. Passes through with approved=true, or when neither costly nor external. The 'get me onboard before we commit money/external' control. Args: approved, estimatedCostUsd, costThreshold, external, pipeline, reason, summary. Deterministic, no LLM. |
|
approved, estimatedCostUsd, costThreshold, external, pipeline, reason, summary |
|
Member |
| Tool.ApproveBuild |
The operator's approve+build for a PARKED autonomous build (the human half of the anti-paperclip gate). When autonomous builds are gated, the crew parks a composable build as a Pending approval on /approvals; this records the matching Approved entry and then builds it (delegates to Tool.RequestCapability ungated). So a system change happens only on a human decision. Args: need (required), routingId/site/from (optional). |
need |
routingId, site, from |
|
Member |
| Tool.ArXiv |
Fetch and index academic papers from arXiv.org |
|
|
|
Member |
| Tool.Ask |
V11.23c ask the agency layer what handles a need: posts your question (Chat) to the Hub bus (see /comms) and answers deterministically from the declared agencies/pipelines - recommends the best agency, its entry CEO to send a Task to, and the pipelines it can run. The resolve step of the handoff router (no LLM). Args: input (required), from (optional). |
input |
from |
|
Member |
| Tool.BuildPipeline |
V11.23h the self-evolution primitive: build a NEW pipeline at runtime from existing catalog machines, written as declared rows (machine-bound WorkCenters + Routing + ordered RoutingOperations) via the provisioning seam - so it appears on /blueprints and is runnable via Tool.RunPipeline immediately. No code, no new grammar; this is the minimum block that lets the system build the rest itself (gap -> research -> build -> runnable). Args: routingId (required), then machines (csv of Tool ids, in order) OR need (composed from the catalog); optional site (default Manufacturing), title, product. Idempotent per row-Key. |
routingId |
machines, need, site, title, product |
|
Member |
| Tool.Catalog.FitsRequisition |
Judge every catalog candidate of a purchase requisition's category by its declared fit rules (DT.Catalog.Fits.Category: each rule Yes, No or Unchecked with the reason) and price them by the catalog rollups; recommend the cheapest fitting candidate delivered to the requisition's country within its budget. Args: site, list, itemId (the requisition); recommend=true also writes RecommendedOfferRef and a Fit check section to the requisition's Comments as the caller. |
site, list, itemId |
recommend |
|
Member |
| Tool.CityAutopilot |
The city's LLM-agent OODA step: one autonomous pass that OBSERVES the city (Tool.CityStatus), DECIDES the single next capability to build (Tool.Llm reasoning over the briefing), and ACTS (Tool.RequestCapability - build it when composable from the building blocks, else escalate a gap). Pure orchestration over existing machines; the composable-only safety boundary is inherited from Tool.RequestCapability. Safe no-op when no real LLM is configured (offline Echo provider observes only). Args: dryRun (optional - observe+decide without acting), from (optional requester). |
|
dryRun, requireApproval, from |
|
Member |
| Tool.CityStatus |
Query the city: one consolidated briefing of the platform's live state - machine + building-block + crew counts, the production lines that have run, pending approvals, and the open capability gaps (what needs doing). The read half of self-management; pairs with Tool.RequestCapability / Tool.BuildPipeline / Tool.RunPipeline to act. No args. Deterministic, no LLM. |
|
site |
|
Member |
| Tool.ComposeBriefing |
AGT.67: a seat's briefing composed from the layers declared in Scope.SeatBriefing (global rules, hubs, open work, the seat's own site, and approved wisdom when a topic is given): each layer is a SavedQuery, a fact an earlier layer delivered is not repeated, each layer keeps to its character budget and says what it held back. Args: seat (required), topic (optional, turns on the task layer). |
|
|
|
Member |
| Tool.CostRollup |
Roll up router-recorded LLM spend over a period. Returns Markdown showing total spend, top departments, top models. Args: sinceDays / sinceHours / topN. |
|
sinceHours, sinceDays, topN |
|
Lead |
| Tool.CrawlContentSources |
BRAINSTORM.9: crawl every ticked content source with its provider and upsert one mind-map node per folder under a root node per source; re-crawling merges. |
site, sources, list |
|
|
Member |
| Tool.DeepResearch |
Tavily research for in-depth multi-source synthesis |
|
|
|
Member |
| Tool.Dispatch |
V11.23d the handoff router's execute step: resolve a need to the best declared agency + its best-matching pipeline, post the Task to the Hub bus (Submitted->Done on /comms), and RUN the pipeline via Tool.RunPipeline (cost + provenance on /production). Args: input (required need), site (optional, default Manufacturing), from (optional). Operator + recursive sub-agency execution are later slices. |
input |
site, from |
|
Member |
| Tool.ExportDeckPptx |
V11.22g Markdown outline -> real .pptx (PresentationML) export via dependency-free OpenXML - the download sibling of Tool.RenderSlideDeck (same outline grammar, same parse). Args: outline (required Markdown, one '#'-heading per slide, '-'/'*' bullets), topic (optional cover title), audience (optional cover subtitle). Output: a Markdown summary followed by the .pptx package as Base64 (data:pptx;base64,...). Emits the ISO/IEC 29500 minimal part set (presentation + presProps + master + layout + theme + one part per slide) so PowerPoint opens it without repair. |
outline |
topic, audience |
|
Member |
| Tool.ExportDocumentDocx |
V11.22f Markdown -> real .docx (WordprocessingML) export via dependency-free OpenXML - the download sibling of Tool.RenderDocument (same Markdown subset, same input). Args: markdown (required body), title (optional), author (optional). Output: a Markdown summary followed by the .docx package as Base64 (data:docx;base64,...). Closes the OpenSwarm 'Docs Agent -> Word' gap the system way: an OPC package is a zip of XML parts, so no library is needed. |
markdown |
title, author |
|
Member |
| Tool.FetchKnowledge |
Fetch a knowledge slot on demand. Use when you need data that wasn't pre-loaded into the briefing - recent items from a list, an actor's memory log, or a saved CAML query summary. Argument: expression='Kind(arg, name=value)'. |
expression |
|
|
Member |
| Tool.FileIssue |
BRAINSTORM.26b: an agent files what it cannot do or fix itself on the backlog's Issues list (/sites/Projects/Lists/Issues) - Bug, Improvement (a suggestion), New Feature (a missing tool or capability) or Feedback - so being stuck becomes a work item, not a dead end. Deterministic; an open issue with the same title is not filed twice. |
kind, title, description |
context |
|
Member |
| Tool.FindStockMedia |
V11.22u stock-media station: real stock photos for a query via Pexels (free tier) - the B-roll/visuals stage, a sibling to image generation. Args: query (required, or 'topic'), count (1-10, default 3), orientation (landscape/portrait/square). Returns Markdown photo URLs + photographer credit + Pexels page (attribution). Gated on Plugins:pexels:ApiKey; degrades to a success notice when absent so it is pipeline-safe. |
query |
count, orientation |
|
Member |
| Tool.GenerateImage |
V11.22k image generation as one machine with interchangeable vendors (IImageProvider strategy). Args: prompt (required), provider (optional: pollinations [free/keyless, default] | cloudflare [FLUX, free tier, 1024x1024] | gemini [Nano Banana, needs billing] | fal [paid]), model/width/height/steps (optional). Returns the image inline as a data:image base64 URI (vendors return bytes; a URL-only vendor surfaces its link). Keyed vendors degrade to an actionable 'not configured' notice. |
prompt |
provider, model, width, height, steps |
|
Member |
| Tool.GenerateVideo |
V11.22e provider-agnostic video generator (Sora / Veo / Seedance / RunwayML). Gated on Plugins:videogen:ApiKey + Plugins:videogen:Endpoint - degrades silently when either is absent. Args: prompt (required), durationSec (optional, default 8, capped at 60). Returns Markdown summary of the request + raw response. Cost-aware by design: durationSec clamping + V8.5a per-actor cost ceiling on Actor.VideoGen. |
prompt |
durationSec |
|
Member |
| Tool.GetFile |
Read the extracted text of a library document a page range at a time (PnP Get-PnPFile -AsString), with its page count and source URL; read-gated like the list. |
site, itemId |
list, pages, maxChars |
|
Member |
| Tool.ListSchema |
Returns a list's resolved ContentType field schema as JSON. Call before AddListItem to learn what fields the list expects. |
site, list |
|
|
Assistant |
| Tool.ListSiteTemplates |
BRAINSTORM.27c: SharePoint's template picker for agents - the templates a site can be created from, with key (STS#0), category, the lists and features they bring; catalogue=true adds SharePoint's full WEBTEMP catalogue and the Fab 40, built or not. |
|
category, catalogue |
|
Member |
| Tool.Llm |
DeepSeek-backed language model for reasoning, drafting, and code generation |
|
|
|
Member |
| Tool.MakePage |
V11.23l a Parts-Factory machine: manufacture a SharePoint page artifact by cloning a declared page template (Scope.PageTemplates), filling its {{tokens}} from the args, and writing a ContentType.Page item (PageName/Title/Layout) into the site's pages library via provisioning - so it renders the normal SP way at /sites/{site}/Pages/{slug} (Page.xslt + MasterPage). Idempotent per page key; C# is the seam, the template + rules are data. Args: site, pageName (required), title, template (default OneColumnHtml), list (default SitePages), plus template tokens (e.g. body). |
site, pageName |
title, template, list, body |
|
Member |
| Tool.ProposeProject |
BRAINSTORM.22: the demand funnel (Project Server demand management) - turns a mind-map node into a proposal: ONE approval request that, when approved, creates the project on /sites/Projects (Status Planning), one ProjectTask per approved child node in map order, and links the node back (ProjectRef, Stage Project). The node moves to Stage Proposal at once. Deterministic, no model. |
site, list, itemId |
code |
|
Member |
| Tool.ProposeSiteKit |
BRAINSTORM.28d: the New site outcome - takes a node's approved site kit (child shape-kit-node, a PnP Provisioning Template), maps it with the PnpToDelta XSLT into fields, content types and a list feature for the target site (a new site from Brainstorm.SiteKitTemplate when it does not exist), and parks ONE approval request. Deterministic, no model. |
site, list, itemId, target |
|
|
Member |
| Tool.QualityGate |
V11.22r QC inspection station: checks the payload (defaults to priorOutput) against acceptance criteria - mustContain (';'-separated required substrings), forbid (';'-separated banned substrings), mustMatch (';'-separated XPath assertions, payload parsed as XML). On pass it returns the payload unchanged (transparent filter); on fail it returns success=false so the run halts (the QC gate + rework). XSD structure + Schematron-in-XPath business rules, reusing existing protocols. |
|
payload, mustContain, forbid, mustMatch |
|
Member |
| Tool.ReadNodes |
BRAINSTORM.17: read mind-map items by id with progressive disclosure - a summary (title, path, status, parent, children, links) or every column. |
ids |
site, list, detail |
|
Member |
| Tool.RenderDocument |
V11.22d inline Markdown -> HTML5 document renderer with a print-friendly stylesheet. Subset supported: headings (# ## ###), paragraphs, bullet lists (- or *), numbered lists (1.), bold (**text**), italic (*text*), inline code (`code`), links ([text](url)), images . V11.22j: an image src of gen:prompt resolves to a free Pollinations image URL. Args: markdown (required body), title (optional cover heading), author (optional byline). Output: complete HTML5 document - any headless-Chromium wrapper can ingest it for PDF export. View live at /studio/doc. |
markdown |
title, author |
|
Member |
| Tool.RenderSlideDeck |
V11.22b inline Markdown -> HTML5 deck renderer. One section per '#'-prefixed slide heading; '-'/'*' bullets become li entries. V11.22j: a Markdown image line  adds a hero image to the slide - gen: resolves to a free Pollinations image URL (browser fetches it; renderer stays pure), http(s) URLs pass through. Args: outline (required Markdown), topic (optional cover title), audience (optional subtitle). Output: complete HTML5 document with a self-contained inline stylesheet. No file I/O - the caller chooses where to persist. View live at /studio/deck. |
outline |
topic, audience |
|
Member |
| Tool.Request |
V11.23e the agency MVP front door: drop a need and it triages via the declared DT.AgencyTriage DMN table (Kind + HasHandler -> Answer | Process | Decompose) and acts - Answer via Tool.Ask, Process via Tool.Dispatch (runs a pipeline). The decision is logged on /comms. Args: input (required), kind (chat|task|multitask, default task), site (optional, default Manufacturing), from (optional). |
input |
kind, site, from |
|
Member |
| Tool.RequestCapability |
The crew's capability front door (the Factorio research-tree move): drop a need and it either BUILDS it from the existing building-block machines (delegates to Tool.BuildPipeline when fully composable from the catalog) or REQUESTS a new block (files a gap to /gaps + /forge naming the missing primitive) when the crew can't build it from their blocks. Pure orchestration over Tool.ResearchGap (compose-check) + Tool.BuildPipeline (self-build) + the gap backlog (request). Args: need (required), routingId (optional, derived from the need), site (optional, default Manufacturing), from (optional). |
need |
routingId, site, from, requireApproval |
|
Member |
| Tool.RequestFeatureActivation |
BRAINSTORM.27c: Manage site features > Activate, as a request - parks an ActivateFeature on a site for approval. |
feature, site |
justification |
|
Member |
| Tool.RequestFeatureStapling |
BRAINSTORM.27c: SharePoint's feature stapling as a request - parks a stapler Feature (FeatureSiteTemplateAssociation) so every new site from a template gets a feature. |
feature, template |
justification |
|
Member |
| Tool.ResearchGap |
V11.23g the Research plant's core: compose a candidate pipeline for a capability gap from existing catalog machines (keyword match over Tool parts), and flag the need's aspects no machine covers as 'needs a new machine (code)'. Reuse-first; code is the rare escalation. Posts the proposal to /comms. Args: input (required need). Deterministic, no LLM. |
input |
|
|
Member |
| Tool.RunPipeline |
V11.22m/o the agency's pipeline machine. DNA path: pass routingId (+site) to run a DECLARED Routing from the DB - its operations + station MachineToolId bindings (the ISA-88 procedure model, reusing Erp.Tm). Ad-hoc path: pass steps (JSON array of {name, tool, args?}). Threads each step's output to the next as priorOutput (Pipes-and-Filters: stations talk through the payload, not to each other), returns a JSON run record (genealogy). Any other args are shared run inputs. Fail-fast: a failed step stops the run. |
|
routingId, site, steps |
|
Member |
| Tool.SearchRows |
BRAINSTORM.17: search list items by words across the lists MapChat.SearchLists names (SharePoint search's result source, as data); returns ids, paths and snippets. |
query |
limit, lists |
|
Member |
| Tool.SelectXPath |
A building-block station that reads ONLY the slice of the payload it needs, via XPath, and leaves the rest of the belt untouched - the Pipes-and-Filters / Content-Enricher discipline as a reusable filter machine. A line composes it to pull a node from an upstream XML product (xml={{priorOutput}} xpath=//Deck/Title); the slice becomes this step's output. Args: xml (required), xpath (required), separator (optional, joins multiple matches). Deterministic, no LLM. |
xml, xpath |
separator |
|
Member |
| Tool.SendMessage |
V11.23a the agency send_message: post a typed message or task onto the Hub bus, addressed to an operator or agency. Args: to (required target), input (required body/task), kind (chat|task|multitask, default task), expectedOutput (optional acceptance target), from (optional sender), parentId (optional sub-task link). Monitored on /comms; the dynamic handoff router (later cycle) picks up posted Tasks and routes them to a competent handler (operator | pipeline | sub-agency). |
to, input |
kind, expectedOutput, from, status, parentId |
|
Member |
| Tool.SiteContents |
BRAINSTORM.27d: SharePoint's Site Contents for agents - what a site is for and what each list holds, one line each, with the links to the list and About this list. The first step of progressive disclosure; Tool.ListSchema is the next. |
site |
|
|
Member |
| Tool.Storage |
Read/write to the SPICE storage layer (lists, libraries, property bag) |
|
|
|
Lead |
| Tool.SuggestIdeas |
BRAINSTORM.5: propose child ideas for a mind-map node - one model call over the node, its path, siblings and children (rejected ideas fed back as do-not-repeat), each idea written as a child row that waits for approval (content approval on the list). |
site, list, itemId |
steer, count |
|
Member |
| Tool.SyncExternalList |
STUDIOS.6: keep a list in step with a line-of-business system (SharePoint BCS External List): fetch each named Connector, map its body to rows with its Transform, upsert every row by its key - merge an existing item (only the connector's own columns change), add a new one. Deterministic, no LLM. |
connector, site, list |
key, contentType |
|
Member |
| Tool.TransformXslt |
V11.22n declarative pipeline transform station: apply a declared XSLT to the XML payload (reuse-of-XSLT, no code per transform). Decoupled - reads only its input + stylesheet, nothing about adjacent stations. Args: xslt (required stylesheet string), xml (payload; defaults to priorOutput from the previous station). Returns the transformed XML/text. |
|
mapper, xslt, xml |
|
Member |
| Tool.WebFetch |
Fetch a public URL as text (web_fetch); LAN and private addresses are refused. |
url |
maxChars |
|
Member |
| Tool.WebSearch |
Search the public web for technical references and current information |
|
|
|
Member |
| Tool |
Mission |
Required |
Optional |
Output |
Access |
| Tool.DeleteListItem |
Delete a list item (SharePoint UpdateListItems Cmd=Delete). The row goes to the site recycle bin and can be restored from /sites/{site}/_recycle. With the Write right a caller may delete rows it authored; deleting another's row (or one with no Author) needs Manage. Args: site (REQUIRED), list (REQUIRED), itemId (REQUIRED - the row key, 'item:' prefix optional). |
site, list, itemId |
|
JSON |
Member |
| Tool.ExtractSources |
Populate the Source Library: mine research text into N rated, taxonomized SourceCard rows. Routes one LLM call asking for each cited source as a labeled block (URL/TITLE/CATEGORY/RATING/WHY), clamps rating + category to the declared SourceTaxonomy vocabulary, and writes the rows to the Sources list. Args: input (REQUIRED - research to mine, or a prior step's output), site/department (default ResearchEnrichment), list (default Sources), model (the SourceModel stamp; defaults to the provider used), max (cap, default 8). Returns a pointer; writes 0 rows + an honest error if no provider answers (never fabricates sources). |
|
input, site, list, model, max |
Pointer text |
Member |
| Tool.HarvestFeeds |
Fill the Source Library from the declared feed Connector parts (RSS/Atom): fetch each feed, write one SourceCard per item carrying the feed's own title, link and summary, and skip URLs already catalogued. Rates nothing - rows land SourceRating=Unrated, so machine-collected rows stay one facet click away from judged ones. No LLM call, no cost. Args: connector (optional - one Connector id or a comma list), taxonomy (optional - a Connector Taxonomy group, e.g. Radar/Models; with neither, every UNTAGGED feed), site/list (default ResearchEnrichment/Sources), contentType (optional - a SourceCard child the target list declares, e.g. ContentType.ModelRelease), max (items per feed, default 15). Returns a pointer; a dead feed is named rather than folded into the total. |
|
connector, contentType, taxonomy, site, list, max |
Pointer text |
Member |
| Tool.HarvestQuotes |
Record today's price for every instrument on the declared watchlist (Scope.Watchlist) as one typed MarketSignal row per symbol per day: price, percent move since the previous close, currency, exchange and observation time. Keyless, deterministic, no LLM. Re-running the same day is a no-op; tomorrow adds a row, so the list becomes a price history rather than a snapshot. Args: connector (default Connector.YahooQuote), site/list (default MarketDesk/Signals). |
|
connector, site, list |
Pointer text |
Member |
| Tool.ModerateListItem |
Approve or reject a list item on a list with content approval (SharePoint UpdateListItems Cmd=Moderate): status 0 Approved, 1 Rejected, with an optional approval comment. A pending or rejected item is seen only by approvers and its author. Needs the approve right on the list (Edit level or higher). Versioned, fires ItemUpdated. Args: site (REQUIRED), list (REQUIRED), itemId (REQUIRED - the row key, 'item:' prefix optional), status (REQUIRED, 0 or 1), comment. |
site, list, itemId, status |
comment |
JSON |
Lead |
| Tool.PublishToList |
Publish a pipeline step's output as a typed, retrievable list item. Files the prior step's output (or an explicit body) as one row in a named list so it is FetchKnowledge-retrievable via ListView. Args: list (REQUIRED), site/department (REQUIRED), contentType (optional - validates the row), bodyField (field that receives the body, default 'Body'), titleField (default 'Title'), title (optional - derived from the first line), summaryField (optional - a bounded lead from the body), key (optional - a stable row id, 'item:' prefix optional, default a fresh row-<guid>; publishing again with the same key REPLACES that whole row, so a re-run is idempotent - to change single fields use Tool.UpdateListItem), and field-<Name>=<value> for extra typed fields. Returns a short pointer sentence (so a downstream SendMail delivers a pointer, not the body). |
list |
site, contentType, bodyField, titleField, title, summaryField, body, key |
Pointer text |
Member |
| Tool.UpdateListItem |
Update fields on an existing list item (SharePoint UpdateListItems Cmd=Update / MERGE): only the field-<Name>=<value> args supplied change, every other column keeps its value. Each field must be declared on the row's ContentType and validate; Author and _-prefixed engine fields are refused. Same write as the list Edit form: versioning snapshot, policy gate, ItemUpdated alerts and webhooks. Args: site (REQUIRED), list (REQUIRED), itemId (REQUIRED - the row key, 'item:' prefix optional), field-<Name>. Returns JSON with the changed field names. |
site, list, itemId |
|
JSON |
Member |