Skip to content

Glossary

A common vocabulary to understand Shara’s documentation, organized into topic blocks. Each term links, where applicable, to the guide where it’s covered in depth. Missing a concept? Write to us at support@aiginer.com.

The glossary is split into blocks: consumption and billing, agents and orchestration, models, security and control, integration (API, webhooks, connectors) and operation (multi-tenant, auditing, licensing). Terms marked with a link have a dedicated guide; the rest are defined here in a self-contained way.

Shara bills for abstract consumption: you never pay for “a provider’s tokens”, but for a single, stable unit of your own. This decouples your invoice from the specific model used underneath and from market price changes.

TermDefinition
STU (Shara Token Units)The client’s single unit of consumption, independent of the model used underneath. All agent activity (reasoning, tool calls, generation) is counted in STU according to an internal conversion table. You pay STU, not a specific provider’s tokens. See STU and quotas.
QuotaThe volume of STU included in your plan each monthly cycle. While you consume within the quota there are no extra charges. The quota renews at the start of each billing period.
OverageSTU consumed above the monthly quota. Billed at a fixed, predictable rate by plan, with no surprise price jumps. If you don’t want overage, the kill-switch cuts off before you exceed the limit you configure.
RolloverCarrying over unconsumed STU to the next month. It has a 20% cap of the monthly quota and the carried-over STU expire after 2 months. Only available on cloud plans; Concerto Local doesn’t consume cloud quota, so rollover doesn’t apply.
Power-mode / low-spendingAutomatic saving mode outside your operating hours: it downgrades the default model alias so it doesn’t drive up cost when no one is working. Configured by time slots.
Self-paying / auto-paying APIThe mechanism by which Shara pays for model usage on your behalf and presents it to you consolidated in STU. You don’t manage provider keys or external balances: Shara absorbs that complexity and bills you a single, predictable line.

Mental rule: quota is what you’ve already paid, overage is what you pay extra if you go over, and rollover is what you rescue from a slow month. The kill-switch is the brake that prevents surprises.

Shara isn’t a single chatbot: it’s a team of specialized agents coordinated by an orchestrator. The client talks to just one; the rest work in the background. See Agents.

TermDefinition
Amadeus / orchestratorThe only agent that talks to the CEO (the human user). It receives the request, decides which specialists get involved, coordinates them in the background and consolidates a single response. It’s the entry and exit point of every conversation.
Departmental agentEach of the 20 specialists (Carlzon, Carnegie, Graham…) covering an area of the company (sales, support, finance, legal, etc.). Works under Amadeus’s orders and never talks directly to the user. See Agents.
escalate_to_amadeusThe escalation tool: when a departmental agent detects that a request exceeds its scope, requires coordinating with another department or needs a higher-level decision, it returns it to Amadeus for re-orchestration. It’s the mechanism that keeps control centralized.
RunAn individual execution of an agent: a call with its input, its context, the tools it invokes and its output. Every run is counted in STU and logged in the audit log. A single user conversation can generate several chained runs.
IDENTITY.mdThe corporate identity (tone, values, brand rules, do/don’t) injected into every interaction of every agent. It evolves via incremental PATCH (rules are added or adjusted) and never by full replacement, so as not to lose the accumulated judgment history.
ApprovalsThe human approval inbox. Any action with relevant effects (sending an email, running an automation, modifying external data) stays pending your sign-off before executing. Approvals expire: if not decided in time, they expire and the action is aborted. See What Shara is.

Shara never exposes the real provider behind a model. It works with stable aliases that abstract power and cost, so we can swap providers underneath without your integration or your invoice ever knowing. See No vendor lock-in.

AliasWhat it’s for
PreludeLight and cheap tier. Fast tasks, classification, simple extractions, short replies. The cheapest in STU.
SonataBalanced tier. The workhorse for most office tasks: drafting, summaries, standard support.
SymphonyHigh tier. Complex reasoning, multi-step analysis, tasks that need more context and precision.
ConcertoModels that run locally, on the Concerto Local plan (on-premise). Don’t consume cloud STU quota because inference happens on your own infrastructure.
TermDefinition
Model aliasThe public name of a model (Prelude, Sonata, Symphony, Concerto). Hides the real provider, avoids lock-in and lets Shara optimize cost/quality without breaking your flow. You don’t choose the provider; you choose (or let Amadeus choose) the alias suited to the task.
Model tierThe alias level used in a specific run. Decided by Amadeus based on task complexity, not the client; the client can set ceilings or preferences, but the fine-grained assignment is automatic.
No lock-inThe guarantee that you don’t end up tied to a provider. Since you only ever see aliases, Shara can replace the underlying engine with a better or cheaper one without anything changing on your side. See No vendor lock-in.

Control isn’t optional: Shara is designed so that nothing important ever runs without supervision and spending never spikes without a brake. See What Shara is.

TermDefinition
Kill-switchAutomatic, multi-level spending cut: per run, per hour and per day. If an execution (or a chain of them) runs away and exceeds the limit you configured, Shara stops it in its tracks before it keeps consuming STU. It’s your insurance against loops and unexpected loads.
Audit logThe immutable, append-only record of every run: input, agent, alias used, tools invoked, output and cost in STU. It chains a hash between records (blockchain-style) so any tampering with the history is detectable. It’s the foundation of traceability and compliance.
ApprovalsSee the “Agents and orchestration” block. In terms of control: no action with an external effect executes without going through the inbox; pending ones expire if not decided, and the expiry is logged.
DPAData Processing Agreement. Without an accepted DPA, agents don’t process personal data. It’s the contract that governs how Shara handles data on behalf of your organization. See No vendor lock-in.

The public API is the surface an external developer uses to integrate Shara with their systems. It authenticates with an API key and applies usage limits. See API and Connectors.

TermDefinition
API keyThe credential that authenticates your calls to Shara’s API. Issued per workspace, sent in the Authorization header, can be revoked and rotated, and must never be exposed in client code or repositories. Each key hangs off a tenant and respects its rate-limit.
Rate-limitThe request limit per unit of time (RPM) that protects the service. If you exceed it, the API responds 429 Too Many Requests. On inbound webhooks the limit applies per IP and is configurable per webhook (60 RPM by default).
IdempotencyThe guarantee that resending the same request doesn’t duplicate it. You identify the event with a unique id (e.g. X-SHARA-Event-Id); if Shara already processed it, it returns the previous result instead of running it again. Essential for safe retries after a timeout.
bash
# Example of an API-key-authenticated call (Authorization header)
curl -X POST https://api.aiginer.com/v1/messages \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "Summarize the latest support ticket and suggest a reply.",
    "idempotency_key": "req_2026-06-16_001"
  }'

Shara exposes signed inbound webhooks: an external system (your CRM, a form, another automation…) signs an event and POSTs it to Shara, which verifies the signature and hands it to the configured agent. There are no outbound webhooks via event subscription: the model is external → Shara, not the other way around.

TermDefinition
Webhook (inbound)A Shara HTTP endpoint that an external system sends events to. Each webhook has its own slug that identifies it and routes the event to the right agent. Created from the workspace panel and authenticated only by HMAC signature (no JWT or cookie).
HMAC signatureThe cryptographic seal proving the event comes from who it claims and hasn’t been altered. Shara computes HMAC-SHA256 (or SHA512) over the raw body in bytes with a per-tenant secret, and compares in constant time (timingSafeEqual). With no secret configured, it rejects everything (fail-closed).
Anti-replay windowThe time interval during which a signature is valid: ±300 seconds, with 60 s clock skew tolerance. The timestamp header prevents someone from reusing a captured request (replay). Validated before the HMAC to avoid wasting CPU or giving timing hints.
Per-tenant secretEvery webhook has its own signing secret, encrypted at rest and used only at verification time. There’s no global secret shared between clients: isolation is per tenant.

The public endpoint and its canonical headers:

bash
POST /webhooks/inbound/{slug}
Content-Type: application/json
X-SHARA-Signature: <hmac-hex>      # signature of the raw body (HMAC-SHA256 by default)
X-SHARA-Timestamp: <unix-seconds>  # anti-replay (±300 s); required if the webhook declares it
X-SHARA-Event-Id: <unique-id>      # idempotency (X-Event-Id, X-Request-Id… also accepted)

Body example (you define it; Shara verifies it, audits it and delivers it to the agent):

json
{
  "event": "lead.created",
  "id": "evt_9f2c1ab7",
  "occurred_at": "2026-06-16T09:30:00Z",
  "contact": {
    "name": "Marta Ruiz",
    "email": "marta@example.com",
    "phone": "+34600111222",
    "company": "Example SL"
  },
  "source": "landing-form"
}

Correct response (200) and idempotent variant when you resend the same X-SHARA-Event-Id:

json
// 200: event accepted and queued for the agent
{ "ok": true, "code": "ok", "eventId": "8b1d…-uuid", "runId": "run_…-uuid" }

// 200: duplicate: Shara already processed it, doesn't run again
{ "ok": true, "code": "duplicate", "eventId": "8b1d…-uuid" }

Possible errors (without leaking internals):

HTTPerrorCause
400payload_invalid / invalid_bodyInvalid JSON or the destination template doesn’t render.
401signature_invalidMissing or incorrect signature, unsupported scheme, or timestamp out of window/missing.
404webhook_not_found / webhook_unavailableNon-existent, paused or revoked slug.
413payload_too_largeBody larger than 1 MB (default limit).
429rate_limitedRate-limit per IP exceeded (RPM configurable per webhook).

How to sign it on the sending side (Node). The HMAC is calculated over the exact raw body you’re about to send, not over a re-serialized JSON:

javascript
import { createHmac } from 'node:crypto';

const secret = process.env.SHARA_WEBHOOK_SECRET;     // per-tenant secret, never in the client
const rawBody = JSON.stringify(payload);             // the SAME bytes you send
const timestamp = Math.floor(Date.now() / 1000);     // unix-seconds, for anti-replay

const signature = createHmac('sha256', secret)
  .update(rawBody)
  .digest('hex');                                    // lowercase hex, 64 chars

await fetch('https://api.aiginer.com/webhooks/inbound/my-slug', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-SHARA-Signature': signature,
    'X-SHARA-Timestamp': String(timestamp),
    'X-SHARA-Event-Id': payload.id,                  // idempotency
  },
  body: rawBody,
});

Retries: Shara doesn’t retry ingestion; it responds synchronously. If you get a 5xx or a timeout, you retry, reusing the same X-SHARA-Event-Id: idempotency guarantees the execution isn’t duplicated.

TermDefinition
ConnectorA specific way to connect Shara with your systems: Desktop Agent, Server Agent, inbound webhooks and MCP gateway. Each connector brings its own authentication and isolation guarantees. See Connectors.
Universal connectorThe overall approach: Shara offers a generic path to integrate practically any system with no custom development, combining the connectors above. The idea is that “if it has an API or a webhook, it can be connected”.
TermDefinition
Tenant (multi-tenant)Your client organization. Shara is multi-tenant: a single platform serves many clients with strict isolation of data across several layers (database and application level). One tenant’s data, webhook secrets, API keys and STU consumption never cross over with another’s.
Licensing service (Ed25519, 30-day grace)The service that validates the license of deployments that aren’t permanently online (mostly Concerto Local). Licenses are signed with Ed25519 (elliptic curve signature, verifiable without contacting the server) and have a 30-day grace period: if the installation loses connectivity with the licensing service, it keeps operating for up to 30 days before requiring revalidation.
Concerto Local / on-premiseShara’s deployment on your own infrastructure (your own servers or private cloud), instead of the managed cloud. Everything runs on-premise (database, agents and Concerto inference) with no cloud component, for €999/month. Built for those who need data to never leave their perimeter. Its consumption and licensing model differs from the cloud one (see Licensing service and Concerto Local).

Looking for a concept in more depth? Start with What Shara is, STU and quotas, API or Connectors.

Can't find something? Write to us at hello@aiginer.com.