From fc65a95cb1571179fadcb3c18b702628d1960791 Mon Sep 17 00:00:00 2001 From: Marcel Menk Date: Sat, 18 Jul 2026 14:17:18 +0200 Subject: [PATCH] chore: improved ai context graph node groups --- docs/agenstra/ai-agents/knowledge-graph.md | 9 +- graph/graph.html | 393 +- graph/graph.json | 44603 ++++++++++------ tools/graph/README.md | 11 +- tools/graph/package.json | 1 + tools/graph/src/index.ts | 44 +- .../apps/demo-api/src/demo-api.module.ts | 1 + .../demo-api/src/dto/create-invoice.dto.ts | 3 + .../demo-api/src/entities/invoice.entity.ts | 3 + .../demo-api/src/gateways/status.gateway.ts | 9 + .../demo-api/src/guards/tenant-user.guard.ts | 5 + .../notifications/demo-notification.events.ts | 1 + .../processors/stripe-payment.processor.ts | 5 + .../src/providers/demo-cloud.provider.ts | 5 + .../src/repositories/invoices.repository.ts | 5 + .../services/invoice-overdue.job-handler.ts | 5 + .../demo-api/src/services/invoices.service.ts | 5 + .../src/templates/email-layout.partial.html | 5 + .../templates/invoice-issued.template.html | 5 + .../src/templates/invoice-issued.template.txt | 1 + .../src/lib/services/invoices.service.ts | 5 + .../lib/state/invoices/invoices.actions.ts | 1 + .../lib/state/invoices/invoices.effects.ts | 1 + .../lib/state/invoices/invoices.reducer.ts | 1 + .../lib/state/invoices/invoices.selectors.ts | 1 + .../src/lib/build-knowledge-graph.spec.ts | 71 +- tools/graph/src/lib/build-knowledge-graph.ts | 63 +- tools/graph/src/lib/discover-files.ts | 231 +- tools/graph/src/lib/discover-patches.spec.ts | 45 + tools/graph/src/lib/discover-patches.ts | 103 + tools/graph/src/lib/discover-tools.ts | 59 + tools/graph/src/lib/file-node-type.spec.ts | 73 +- .../graph/src/lib/from-project-graph.spec.ts | 24 +- tools/graph/src/lib/from-project-graph.ts | 21 +- tools/graph/src/lib/link-implements.ts | 149 +- tools/graph/src/lib/link-packages.spec.ts | 43 + tools/graph/src/lib/link-packages.ts | 84 + .../graph/src/lib/link-state-services.spec.ts | 72 + tools/graph/src/lib/link-state-services.ts | 55 + tools/graph/src/lib/link-tool-usage.spec.ts | 102 + tools/graph/src/lib/link-tool-usage.ts | 184 + .../src/lib/parse-webhook-events.spec.ts | 44 + tools/graph/src/lib/parse-webhook-events.ts | 73 + tools/graph/src/lib/parsers-and-links.spec.ts | 57 +- tools/graph/src/lib/schema.ts | 245 +- tools/graph/src/lib/write-html.ts | 393 +- 46 files changed, 30011 insertions(+), 17308 deletions(-) create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/demo-api.module.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/dto/create-invoice.dto.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/entities/invoice.entity.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/guards/tenant-user.guard.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/notifications/demo-notification.events.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/providers/demo-cloud.provider.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/repositories/invoices.repository.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoice-overdue.job-handler.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/email-layout.partial.html create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.html create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.txt create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.actions.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.effects.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.reducer.ts create mode 100644 tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.selectors.ts create mode 100644 tools/graph/src/lib/discover-patches.spec.ts create mode 100644 tools/graph/src/lib/discover-patches.ts create mode 100644 tools/graph/src/lib/discover-tools.ts create mode 100644 tools/graph/src/lib/link-packages.spec.ts create mode 100644 tools/graph/src/lib/link-packages.ts create mode 100644 tools/graph/src/lib/link-state-services.spec.ts create mode 100644 tools/graph/src/lib/link-state-services.ts create mode 100644 tools/graph/src/lib/link-tool-usage.spec.ts create mode 100644 tools/graph/src/lib/link-tool-usage.ts create mode 100644 tools/graph/src/lib/parse-webhook-events.spec.ts create mode 100644 tools/graph/src/lib/parse-webhook-events.ts diff --git a/docs/agenstra/ai-agents/knowledge-graph.md b/docs/agenstra/ai-agents/knowledge-graph.md index b2b08d273..ff8d664d6 100644 --- a/docs/agenstra/ai-agents/knowledge-graph.md +++ b/docs/agenstra/ai-agents/knowledge-graph.md @@ -6,10 +6,13 @@ The monorepo knowledge graph helps humans and AI agents understand structure wit Large Nx workspaces span many apps and libs. The graph unifies: -- Nx **project** dependencies +- Nx **project** dependencies (`app` / `lib` / `tool`) +- Production **npm packages** attributed per app via Nx `createPackageJson` (SBOM-equivalent) +- **patch-package** files under `patches/` when they target an attributed package - **OpenAPI** / **AsyncAPI** operations and channels - **Markdown** concepts under `docs//` -- Heuristic **implements** links from Nest controllers to OpenAPI paths +- Heuristic **implements** links from Nest controllers to OpenAPI paths and gateways to AsyncAPI channels +- Architectural sources: controllers, gateways, jobs, services, repositories, entities, DTOs, guards, modules, domain providers, accumulated NgRx `state` slices, email templates, and webhook events Artifacts live at: @@ -55,7 +58,7 @@ Committed graph files are therefore kept current without a separate manual step. ## Schema overview -- **Nodes:** `app`, `lib`, `domain`, `context`, `feature-group`, `file`, `doc`, `readme`, `openapi`, `asyncapi`, `diagram`, `endpoint`, `concept` +- **Nodes:** `app`, `lib`, `tool`, `package`, `patch`, `domain`, `context`, `feature-group`, `controller`, `gateway`, `job`, `service`, `repository`, `entity`, `dto`, `guard`, `module`, `state`, `provider`, `email`, `webhook-event`, `doc`, `readme`, `openapi`, `asyncapi`, `diagram`, `endpoint`, `concept` - **Edges:** `depends_on`, `contains`, `implements`, `documents`, `belongs_to` See the **Knowledge Graph Skill** for id patterns and traversal recipes. diff --git a/graph/graph.html b/graph/graph.html index 0ab2f9208..cff3d647f 100644 --- a/graph/graph.html +++ b/graph/graph.html @@ -15,17 +15,32 @@ --border: #243044; --app: #7dd3fc; --lib: #c4b5fd; + --tool: #5eead4; + --package: #86efac; + --patch: #fca5a5; --domain: #f87171; --context: #a3e635; --feature-group: #fcd34d; - --file: #94a3b8; + --controller: #67e8f9; + --gateway: #22d3ee; + --job: #f97316; + --service: #a78bfa; + --repository: #818cf8; + --entity: #c084fc; + --dto: #ddd6fe; + --guard: #fb7185; + --module: #94a3b8; + --state: #e879f9; + --provider: #fbbf24; + --email: #f9a8d4; + --webhook-event: #fdba74; --doc: #f472b6; - --readme: #e879f9; + --readme: #d946ef; --openapi: #2dd4bf; --asyncapi: #38bdf8; --diagram: #fb923c; --endpoint: #34d399; - --concept: #fbbf24; + --concept: #fde68a; --scrollbar-thumb: rgba(231, 236, 243, 0.28); --scrollbar-thumb-hover: rgba(231, 236, 243, 0.45); --scrollbar-thumb-active: rgba(231, 236, 243, 0.55); @@ -128,11 +143,91 @@ align-self: end; } .btn:hover { border-color: var(--accent); color: var(--accent); } + .type-filter { + position: relative; + align-self: end; + } + .type-filter-btn { + min-width: 9rem; + display: inline-flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; + } + .type-filter-btn .caret { + font-size: 0.65rem; + opacity: 0.7; + } + .type-filter-summary { + color: var(--muted); + font-weight: 400; + } + .type-filter-panel { + position: absolute; + top: calc(100% + 0.35rem); + right: 0; + z-index: 40; + width: min(22rem, calc(100vw - 1.5rem)); + max-height: min(22rem, calc(100vh - 6rem)); + display: none; + flex-direction: column; + gap: 0.5rem; + padding: 0.55rem; + background: var(--panel); + border: 1px solid var(--border); + border-radius: 6px; + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45); + } + .type-filter.open .type-filter-panel { + display: flex; + } + .type-filter-panel input[type="search"] { + flex: 0 0 auto; + width: 100%; + min-width: 0; + } + .type-filter-list { + flex: 1 1 auto; + min-height: 0; + overflow-y: auto; + display: flex; + flex-direction: column; + gap: 0.15rem; + padding-right: 0.15rem; + } + .type-filter-list label { + display: flex; + align-items: center; + gap: 0.4rem; + padding: 0.28rem 0.35rem; + border-radius: 4px; + cursor: pointer; + user-select: none; + font-size: 0.78rem; + color: var(--muted); + } + .type-filter-list label:hover { + background: var(--panel-2); + color: var(--text); + } + .type-filter-list label.hidden { + display: none; + } + .type-filter-empty { + display: none; + padding: 0.5rem 0.35rem; + font-size: 0.78rem; + color: var(--muted); + } + .type-filter-empty.visible { + display: block; + } .toggles { display: flex; flex-wrap: wrap; gap: 0.55rem; align-items: center; + align-self: end; font-size: 0.78rem; color: var(--muted); } @@ -151,10 +246,25 @@ } .swatch.app { background: var(--app); } .swatch.lib { background: var(--lib); } + .swatch.tool { background: var(--tool); } + .swatch.package { background: var(--package); } + .swatch.patch { background: var(--patch); } .swatch.domain { background: var(--domain); } .swatch.context { background: var(--context); } .swatch.feature-group { background: var(--feature-group); } - .swatch.file { background: var(--file); } + .swatch.controller { background: var(--controller); } + .swatch.gateway { background: var(--gateway); } + .swatch.job { background: var(--job); } + .swatch.service { background: var(--service); } + .swatch.repository { background: var(--repository); } + .swatch.entity { background: var(--entity); } + .swatch.dto { background: var(--dto); } + .swatch.guard { background: var(--guard); } + .swatch.module { background: var(--module); } + .swatch.state { background: var(--state); } + .swatch.provider { background: var(--provider); } + .swatch.email { background: var(--email); } + .swatch.webhook-event { background: var(--webhook-event); } .swatch.doc { background: var(--doc); } .swatch.readme { background: var(--readme); } .swatch.openapi { background: var(--openapi); } @@ -226,7 +336,7 @@ .popover .pop-type.domain { color: var(--domain); } .popover .pop-type.context { color: var(--context); } .popover .pop-type.feature-group { color: var(--feature-group); } - .popover .pop-type.file { color: var(--file); } + .popover .pop-type.controller { color: var(--controller); } .popover .pop-type.doc { color: var(--doc); } .popover .pop-type.readme { color: var(--readme); } .popover .pop-type.openapi { color: var(--openapi); } @@ -316,10 +426,25 @@ } .detail-type.app { color: var(--app); } .detail-type.lib { color: var(--lib); } + .detail-type.tool { color: var(--tool); } + .detail-type.package { color: var(--package); } + .detail-type.patch { color: var(--patch); } .detail-type.domain { color: var(--domain); } .detail-type.context { color: var(--context); } .detail-type.feature-group { color: var(--feature-group); } - .detail-type.file { color: var(--file); } + .detail-type.controller { color: var(--controller); } + .detail-type.gateway { color: var(--gateway); } + .detail-type.job { color: var(--job); } + .detail-type.service { color: var(--service); } + .detail-type.repository { color: var(--repository); } + .detail-type.entity { color: var(--entity); } + .detail-type.dto { color: var(--dto); } + .detail-type.guard { color: var(--guard); } + .detail-type.module { color: var(--module); } + .detail-type.state { color: var(--state); } + .detail-type.provider { color: var(--provider); } + .detail-type.email { color: var(--email); } + .detail-type.webhook-event { color: var(--webhook-event); } .detail-type.doc { color: var(--doc); } .detail-type.readme { color: var(--readme); } .detail-type.openapi { color: var(--openapi); } @@ -389,10 +514,25 @@ .type-tag { font-size: 0.7rem; margin-right: 0.35rem; opacity: 0.9; } .type-tag.app { color: var(--app); } .type-tag.lib { color: var(--lib); } + .type-tag.tool { color: var(--tool); } + .type-tag.package { color: var(--package); } + .type-tag.patch { color: var(--patch); } .type-tag.domain { color: var(--domain); } .type-tag.context { color: var(--context); } .type-tag.feature-group { color: var(--feature-group); } - .type-tag.file { color: var(--file); } + .type-tag.controller { color: var(--controller); } + .type-tag.gateway { color: var(--gateway); } + .type-tag.job { color: var(--job); } + .type-tag.service { color: var(--service); } + .type-tag.repository { color: var(--repository); } + .type-tag.entity { color: var(--entity); } + .type-tag.dto { color: var(--dto); } + .type-tag.guard { color: var(--guard); } + .type-tag.module { color: var(--module); } + .type-tag.state { color: var(--state); } + .type-tag.provider { color: var(--provider); } + .type-tag.email { color: var(--email); } + .type-tag.webhook-event { color: var(--webhook-event); } .type-tag.doc { color: var(--doc); } .type-tag.readme { color: var(--readme); } .type-tag.openapi { color: var(--openapi); } @@ -416,20 +556,47 @@

Forepath Knowledge Graph

-
- - - - - - - - - - - - - +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
No types match.
+
+
+
@@ -458,25 +625,55 @@

Matching nodes

var COLORS = { app: '#7dd3fc', lib: '#c4b5fd', + tool: '#5eead4', + package: '#86efac', + patch: '#fca5a5', domain: '#f87171', context: '#a3e635', 'feature-group': '#fcd34d', - file: '#94a3b8', + controller: '#67e8f9', + gateway: '#22d3ee', + job: '#f97316', + service: '#a78bfa', + repository: '#818cf8', + entity: '#c084fc', + dto: '#ddd6fe', + guard: '#fb7185', + module: '#94a3b8', + state: '#e879f9', + provider: '#fbbf24', + email: '#f9a8d4', + 'webhook-event': '#fdba74', doc: '#f472b6', - readme: '#e879f9', + readme: '#d946ef', openapi: '#2dd4bf', asyncapi: '#38bdf8', diagram: '#fb923c', endpoint: '#34d399', - concept: '#fbbf24' + concept: '#fde68a' }; var RADIUS = { app: 7.5, lib: 6.5, + tool: 6.5, + package: 4, + patch: 4, domain: 10, context: 8, 'feature-group': 7.5, - file: 4.5, + controller: 5, + gateway: 5, + job: 4.5, + service: 4.5, + repository: 4.5, + entity: 4.5, + dto: 4, + guard: 4.5, + module: 4.5, + state: 5.5, + provider: 5, + email: 4.5, + 'webhook-event': 4.5, doc: 4.5, readme: 4.5, openapi: 5.5, @@ -713,10 +910,25 @@

Matching nodes

var byType = { app: [], lib: [], + tool: [], + package: [], + patch: [], domain: [], context: [], 'feature-group': [], - file: [], + controller: [], + gateway: [], + job: [], + service: [], + repository: [], + entity: [], + dto: [], + guard: [], + module: [], + state: [], + provider: [], + email: [], + 'webhook-event': [], doc: [], readme: [], openapi: [], @@ -732,18 +944,34 @@

Matching nodes

else byType.other.push(n); }); + var sourceRing = byType.controller + .concat(byType.gateway) + .concat(byType.job) + .concat(byType.service) + .concat(byType.repository) + .concat(byType.entity) + .concat(byType.dto) + .concat(byType.guard) + .concat(byType.module) + .concat(byType.provider); var rings = [ - { nodes: byType.file, radius: 85 }, - { nodes: byType.diagram, radius: 115 }, - { nodes: byType.openapi.concat(byType.asyncapi), radius: 145 }, - { nodes: byType.endpoint, radius: 175 }, - { nodes: byType.doc.concat(byType.readme), radius: 210 }, - { nodes: byType.lib, radius: 245 }, - { nodes: byType.app, radius: 275 }, - { nodes: byType.context.concat(byType['feature-group']), radius: 305 }, - { nodes: byType.domain, radius: 335 }, - { nodes: byType.concept, radius: 365 }, - { nodes: byType.other, radius: 400 } + { nodes: byType.state, radius: 75 }, + { nodes: sourceRing, radius: 105 }, + { nodes: byType.email, radius: 125 }, + { nodes: byType['webhook-event'], radius: 145 }, + { nodes: byType.diagram, radius: 165 }, + { nodes: byType.openapi.concat(byType.asyncapi), radius: 185 }, + { nodes: byType.endpoint, radius: 215 }, + { nodes: byType.doc.concat(byType.readme), radius: 250 }, + { nodes: byType.lib, radius: 285 }, + { nodes: byType.tool, radius: 300 }, + { nodes: byType.package, radius: 320 }, + { nodes: byType.patch, radius: 335 }, + { nodes: byType.app, radius: 350 }, + { nodes: byType.context.concat(byType['feature-group']), radius: 380 }, + { nodes: byType.domain, radius: 410 }, + { nodes: byType.concept, radius: 440 }, + { nodes: byType.other, radius: 475 } ]; rings.forEach(function (ring) { @@ -797,7 +1025,7 @@

Matching nodes

}); if (!hubs.length) { simNodes.forEach(function (n) { - if (n.type === 'app' || n.type === 'lib') { + if (n.type === 'app' || n.type === 'lib' || n.type === 'tool') { hubs.push(n); hubSet.add(n.id); } @@ -1068,7 +1296,7 @@

Matching nodes

var attrs = node.attrs || {}; var rows = []; var tags = []; - if (node.type === 'app' || node.type === 'lib') { + if (node.type === 'app' || node.type === 'lib' || node.type === 'tool') { if (attrs.root) rows.push(['root', attrs.root]); if (attrs.type) rows.push(['kind', attrs.type]); if (attrs.domain) rows.push(['domain', attrs.domain]); @@ -1078,13 +1306,31 @@

Matching nodes

if (Array.isArray(attrs.targets) && attrs.targets.length) { rows.push(['targets', attrs.targets.slice(0, 8).join(', ')]); } + } else if (node.type === 'package') { + if (attrs.name) rows.push(['name', attrs.name]); + if (attrs.version) rows.push(['version', attrs.version]); + } else if (node.type === 'patch') { + if (attrs.path) rows.push(['path', attrs.path]); + if (attrs.packageName) rows.push(['package', attrs.packageName]); + if (attrs.packageVersion) rows.push(['patched version', attrs.packageVersion]); } else if (node.type === 'domain' || node.type === 'context' || node.type === 'feature-group') { if (attrs.name) rows.push(['name', attrs.name]); if (attrs.label) rows.push(['label', attrs.label]); if (attrs.kind) rows.push(['kind', attrs.kind]); if (attrs.source) rows.push(['source', attrs.source]); } else if ( - node.type === 'file' || + node.type === 'controller' || + node.type === 'gateway' || + node.type === 'job' || + node.type === 'service' || + node.type === 'repository' || + node.type === 'entity' || + node.type === 'dto' || + node.type === 'guard' || + node.type === 'module' || + node.type === 'state' || + node.type === 'provider' || + node.type === 'email' || node.type === 'doc' || node.type === 'readme' || node.type === 'openapi' || @@ -1094,6 +1340,15 @@

Matching nodes

if (attrs.path) rows.push(['path', attrs.path]); if (attrs.languageOrKind) rows.push(['kind', attrs.languageOrKind]); if (attrs.projectName) rows.push(['project', attrs.projectName]); + if (attrs.sliceName) rows.push(['slice', attrs.sliceName]); + if (attrs.templateName) rows.push(['template', attrs.templateName]); + if (Array.isArray(attrs.memberFiles) && attrs.memberFiles.length) { + rows.push(['members', attrs.memberFiles.join(', ')]); + } + } else if (node.type === 'webhook-event') { + if (attrs.eventName) rows.push(['event', attrs.eventName]); + if (attrs.projectName) rows.push(['project', attrs.projectName]); + if (attrs.catalogPath) rows.push(['catalog', attrs.catalogPath]); } else if (node.type === 'endpoint') { if (attrs.specKind) rows.push(['spec', attrs.specKind]); if (attrs.method) rows.push(['method', attrs.method]); @@ -1370,12 +1625,70 @@

Matching nodes

}); function onFilterChange() { + updateTypeFilterSummary(); rebuildSimulation(); } + function updateTypeFilterSummary() { + var inputs = document.querySelectorAll('#typeToggles input[data-type]'); + var checked = 0; + inputs.forEach(function (el) { if (el.checked) checked += 1; }); + var summary = document.getElementById('typeFilterSummary'); + if (!summary) return; + if (checked === 0) summary.textContent = 'none'; + else if (checked === inputs.length) summary.textContent = 'all'; + else summary.textContent = checked + '/' + inputs.length; + } + + function setTypeFilterOpen(open) { + var root = document.getElementById('typeFilter'); + var btn = document.getElementById('typeFilterBtn'); + if (!root || !btn) return; + root.classList.toggle('open', open); + btn.setAttribute('aria-expanded', open ? 'true' : 'false'); + if (open) { + var search = document.getElementById('typeFilterSearch'); + if (search) { + search.focus(); + search.select(); + } + } + } + + function filterTypeOptions() { + var q = (document.getElementById('typeFilterSearch').value || '').trim().toLowerCase(); + var visible = 0; + document.querySelectorAll('#typeToggles label').forEach(function (label) { + var input = label.querySelector('input[data-type]'); + var type = input ? input.getAttribute('data-type') || '' : ''; + var match = !q || type.toLowerCase().indexOf(q) !== -1; + label.classList.toggle('hidden', !match); + if (match) visible += 1; + }); + document.getElementById('typeFilterEmpty').classList.toggle('visible', visible === 0); + } + document.querySelectorAll('#typeToggles input[data-type]').forEach(function (el) { el.addEventListener('change', onFilterChange); }); + updateTypeFilterSummary(); + + document.getElementById('typeFilterBtn').addEventListener('click', function (ev) { + ev.stopPropagation(); + var root = document.getElementById('typeFilter'); + setTypeFilterOpen(!root.classList.contains('open')); + }); + document.getElementById('typeFilterPanel').addEventListener('click', function (ev) { + ev.stopPropagation(); + }); + document.getElementById('typeFilterSearch').addEventListener('input', filterTypeOptions); + document.addEventListener('click', function () { + setTypeFilterOpen(false); + }); + document.addEventListener('keydown', function (ev) { + if (ev.key === 'Escape') setTypeFilterOpen(false); + }); + document.getElementById('showLabels').addEventListener('change', function () { requestDraw(); }); diff --git a/graph/graph.json b/graph/graph.json index 24918ee61..5a29d8394 100644 --- a/graph/graph.json +++ b/graph/graph.json @@ -1,6 +1,6 @@ { "version": 1, - "generatedAt": "2026-07-18T09:23:41.638Z", + "generatedAt": "2026-07-18T12:16:06.388Z", "nodes": [ { "id": "project:@forepath/test/mounted-plugin-fixture", @@ -1453,7 +1453,7 @@ }, { "id": "project:release-integrity", - "type": "lib", + "type": "tool", "attrs": { "name": "release-integrity", "root": "tools/release-integrity", @@ -1462,14 +1462,12 @@ "type:tool", "scope:repo" ], - "type": "lib", + "type": "tool", "targets": [ "lint", "build", "test" - ], - "context": "repo", - "featureGroup": "tool" + ] } }, { @@ -1528,14 +1526,14 @@ }, { "id": "project:graph", - "type": "lib", + "type": "tool", "attrs": { "name": "graph", "root": "tools/graph", "tags": [ "npm:private" ], - "type": "lib", + "type": "tool", "targets": [ "build", "test", @@ -1546,14 +1544,14 @@ }, { "id": "project:code", - "type": "lib", + "type": "tool", "attrs": { "name": "code", "root": "tools/code", "tags": [ "npm:private" ], - "type": "lib", + "type": "tool", "targets": [ "lint", "build", @@ -1563,7 +1561,7 @@ }, { "id": "project:sbom", - "type": "lib", + "type": "tool", "attrs": { "name": "sbom", "root": "tools/sbom", @@ -1572,25 +1570,23 @@ "type:tool", "scope:sbom" ], - "type": "lib", + "type": "tool", "targets": [ "build", "test" - ], - "context": "sbom", - "featureGroup": "tool" + ] } }, { "id": "project:ai", - "type": "lib", + "type": "tool", "attrs": { "name": "ai", "root": "tools/ai", "tags": [ "npm:private" ], - "type": "lib", + "type": "tool", "targets": [ "lint", "build", @@ -1600,28403 +1596,41411 @@ } }, { - "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/README.md", - "type": "readme", + "id": "tool:ci", + "type": "tool", "attrs": { - "path": "libs/domains/forepath/frontend/data-access-project-estimator/README.md", - "languageOrKind": "md", - "projectName": "forepath-frontend-data-access-project-estimator" + "name": "ci", + "root": "tools/ci", + "tags": [ + "type:tool" + ], + "type": "tool", + "targets": [] } }, { - "id": "file:libs/domains/forepath/backend/feature-communication-manager/README.md", - "type": "readme", + "id": "tool:docs", + "type": "tool", "attrs": { - "path": "libs/domains/forepath/backend/feature-communication-manager/README.md", - "languageOrKind": "md", - "projectName": "forepath-backend-feature-communication-manager" + "name": "docs", + "root": "tools/docs", + "tags": [ + "type:tool" + ], + "type": "tool", + "targets": [] } }, { - "id": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", - "type": "openapi", + "id": "package:@bull-board/api", + "type": "package", "attrs": { - "path": "libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", - "languageOrKind": "openapi", - "projectName": "forepath-backend-feature-communication-manager" + "name": "@bull-board/api", + "version": "7.1.5" } }, { - "id": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", - "type": "file", + "id": "package:@bull-board/express", + "type": "package", "attrs": { - "path": "libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", - "languageOrKind": "ts", - "projectName": "forepath-backend-feature-communication-manager" + "name": "@bull-board/express", + "version": "7.1.5" } }, { - "id": "file:libs/domains/decabill/frontend/data-access-billing-console/README.md", - "type": "readme", + "id": "package:@bull-board/nestjs", + "type": "package", "attrs": { - "path": "libs/domains/decabill/frontend/data-access-billing-console/README.md", - "languageOrKind": "md", - "projectName": "decabill-frontend-data-access-billing-console" + "name": "@bull-board/nestjs", + "version": "7.1.5" } }, { - "id": "file:libs/domains/shared/backend/util-dynamic-provider-registry/README.md", - "type": "readme", + "id": "package:@bull-board/ui", + "type": "package", "attrs": { - "path": "libs/domains/shared/backend/util-dynamic-provider-registry/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-dynamic-provider-registry" + "name": "@bull-board/ui", + "version": "7.1.5" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/README.md", - "type": "readme", + "id": "package:@nestjs/bullmq", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-agent-console/README.md", - "languageOrKind": "md", - "projectName": "agenstra-frontend-data-access-agent-console" + "name": "@nestjs/bullmq", + "version": "11.0.4" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/authentication.mmd", - "type": "diagram", + "id": "package:@nestjs/common", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/authentication.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-data-access-agent-console" + "name": "@nestjs/common", + "version": "11.1.6" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/clients.mmd", - "type": "diagram", + "id": "package:@nestjs/core", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/clients.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-data-access-agent-console" + "name": "@nestjs/core", + "version": "11.1.6" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/notifications-state.mmd", - "type": "diagram", + "id": "package:@nestjs/jwt", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/notifications-state.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-data-access-agent-console" + "name": "@nestjs/jwt", + "version": "11.0.2" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/overview.mmd", - "type": "diagram", + "id": "package:@nestjs/platform-express", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/overview.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-data-access-agent-console" + "name": "@nestjs/platform-express", + "version": "11.1.6" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-authentication.mmd", - "type": "diagram", + "id": "package:@nestjs/platform-socket.io", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-authentication.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-data-access-agent-console" + "name": "@nestjs/platform-socket.io", + "version": "11.1.6" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-files.mmd", - "type": "diagram", + "id": "package:@nestjs/throttler", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-files.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-data-access-agent-console" + "name": "@nestjs/throttler", + "version": "6.5.0" } }, { - "id": "file:libs/domains/shared/frontend/util-runtime-config-server/README.md", - "type": "readme", + "id": "package:@nestjs/typeorm", + "type": "package", "attrs": { - "path": "libs/domains/shared/frontend/util-runtime-config-server/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-util-runtime-config-server" + "name": "@nestjs/typeorm", + "version": "11.0.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/README.md", - "type": "readme", + "id": "package:@nestjs/websockets", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/README.md", - "languageOrKind": "md", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@nestjs/websockets", + "version": "11.1.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/agent-console-status-realtime.mmd", - "type": "diagram", + "id": "package:axios", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/agent-console-status-realtime.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "axios", + "version": "1.12.2" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/authentication.mmd", - "type": "diagram", + "id": "package:bcrypt", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/authentication.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "bcrypt", + "version": "6.0.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/autonomous-ticket-decision-tree.mmd", - "type": "diagram", + "id": "package:bullmq", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/autonomous-ticket-decision-tree.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "bullmq", + "version": "5.76.10" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/filter-rules-sync.mmd", - "type": "diagram", + "id": "package:class-transformer", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/filter-rules-sync.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "class-transformer", + "version": "0.5.1" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/knowledge-relations-matrix.mmd", - "type": "diagram", + "id": "package:class-validator", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/knowledge-relations-matrix.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "class-validator", + "version": "0.14.2" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/lifecycle.mmd", - "type": "diagram", + "id": "package:dockerode", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/lifecycle.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "dockerode", + "version": "5.0.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/overview.mmd", - "type": "diagram", + "id": "package:express", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/overview.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "express", + "version": "4.21.2" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-architecture.mmd", - "type": "diagram", + "id": "package:handlebars", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-architecture.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "handlebars", + "version": "4.7.9" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-process.mmd", - "type": "diagram", + "id": "package:ioredis", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-process.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "ioredis", + "version": "5.10.1" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-auto-enrichment-pgvector.mmd", - "type": "diagram", + "id": "package:keycloak-connect", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-auto-enrichment-pgvector.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "keycloak-connect", + "version": "24.0.1" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-autonomous-ticket.mmd", - "type": "diagram", + "id": "package:nest-keycloak-connect", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-autonomous-ticket.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "nest-keycloak-connect", + "version": "2.0.0-alpha.2" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-chat-enhancement.mmd", - "type": "diagram", + "id": "package:nodemailer", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-chat-enhancement.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "nodemailer", + "version": "7.0.13" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-deployment-proxy.mmd", - "type": "diagram", + "id": "package:pg", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-deployment-proxy.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "pg", + "version": "8.16.3" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-environment.mmd", - "type": "diagram", + "id": "package:reflect-metadata", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-environment.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "reflect-metadata", + "version": "0.1.14" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-files.mmd", - "type": "diagram", + "id": "package:rxjs", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-files.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "rxjs", + "version": "7.8.2" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-statistics.mmd", - "type": "diagram", + "id": "package:socket.io", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-statistics.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "socket.io", + "version": "4.8.1" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-ticket-workspace-migrate.mmd", - "type": "diagram", + "id": "package:socket.io-client", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-ticket-workspace-migrate.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "socket.io-client", + "version": "4.8.3" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-vcs.mmd", - "type": "diagram", + "id": "package:ssh2", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-vcs.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "ssh2", + "version": "1.17.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http.mmd", - "type": "diagram", + "id": "package:sshpk", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "sshpk", + "version": "1.18.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ticket-specification-bundle.mmd", - "type": "diagram", + "id": "package:turndown", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ticket-specification-bundle.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "turndown", + "version": "7.2.4" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-workspace-configuration-overrides.mmd", - "type": "diagram", + "id": "package:turndown-plugin-gfm", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-workspace-configuration-overrides.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "turndown-plugin-gfm", + "version": "1.0.2" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-forward.mmd", - "type": "diagram", + "id": "package:typeorm", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-forward.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "typeorm", + "version": "0.3.27" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-terminal.mmd", - "type": "diagram", + "id": "package:uuid", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-terminal.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "uuid", + "version": "11.1.1" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/server-provisioning-sequence.mmd", - "type": "diagram", + "id": "package:@angular/animations", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/server-provisioning-sequence.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/animations", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/statistics-architecture.mmd", - "type": "diagram", + "id": "package:@angular/common", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/statistics-architecture.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/common", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/ticket-board-realtime.mmd", - "type": "diagram", + "id": "package:@angular/compiler", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/ticket-board-realtime.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/compiler", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "type": "asyncapi", + "id": "package:@angular/core", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "languageOrKind": "asyncapi", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/core", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "type": "openapi", + "id": "package:@angular/forms", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "languageOrKind": "openapi", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/forms", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy-directory.controller.ts", - "type": "file", + "id": "package:@angular/platform-browser", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy-directory.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/platform-browser", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy.controller.ts", - "type": "file", + "id": "package:@angular/platform-server", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/platform-server", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-statistics.controller.ts", - "type": "file", + "id": "package:@angular/router", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-statistics.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/router", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-agent-automation-proxy.controller.ts", - "type": "file", + "id": "package:@angular/ssr", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-agent-automation-proxy.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@angular/ssr", + "version": "21.2.6" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-configuration-overrides.controller.ts", - "type": "file", + "id": "package:@milkdown/crepe", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-configuration-overrides.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@milkdown/crepe", + "version": "7.20.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-deployments.controller.ts", - "type": "file", + "id": "package:@milkdown/plugin-listener", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-deployments.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@milkdown/plugin-listener", + "version": "7.20.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-vcs.controller.ts", - "type": "file", + "id": "package:@ngrx/effects", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-vcs.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@ngrx/effects", + "version": "21.1.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "type": "file", + "id": "package:@ngrx/store", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "@ngrx/store", + "version": "21.1.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "type": "file", + "id": "package:apexcharts", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "apexcharts", + "version": "5.10.4" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", - "type": "file", + "id": "package:cookieconsent", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "cookieconsent", + "version": "3.1.1" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/knowledge-tree.controller.ts", - "type": "file", + "id": "package:i18n-iso-countries", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/knowledge-tree.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "i18n-iso-countries", + "version": "7.14.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", - "type": "file", + "id": "package:keycloak-angular", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "keycloak-angular", + "version": "21.0.0" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/ticket-automation.controller.ts", - "type": "file", + "id": "package:keycloak-js", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/ticket-automation.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "keycloak-js", + "version": "26.2.1" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "type": "file", + "id": "package:monaco-editor", + "type": "package", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-controller" + "name": "monaco-editor", + "version": "0.55.1" } }, { - "id": "file:libs/domains/decabill/frontend/feature-billing-console/README.md", - "type": "readme", + "id": "package:ng-apexcharts", + "type": "package", "attrs": { - "path": "libs/domains/decabill/frontend/feature-billing-console/README.md", - "languageOrKind": "md", - "projectName": "decabill-frontend-feature-billing-console" + "name": "ng-apexcharts", + "version": "2.3.0" } }, { - "id": "file:libs/domains/shared/frontend/data-access-communication/README.md", - "type": "readme", + "id": "package:ngx-cookieconsent", + "type": "package", "attrs": { - "path": "libs/domains/shared/frontend/data-access-communication/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-data-access-communication" + "name": "ngx-cookieconsent", + "version": "8.0.0" } }, { - "id": "file:libs/domains/shared/frontend/data-access-notifications/README.md", - "type": "readme", + "id": "package:ngx-monaco-editor-v2", + "type": "package", "attrs": { - "path": "libs/domains/shared/frontend/data-access-notifications/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-data-access-notifications" + "name": "ngx-monaco-editor-v2", + "version": "21.1.4" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/README.md", - "type": "readme", + "id": "package:zone.js", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/README.md", - "languageOrKind": "md", - "projectName": "decabill-backend-feature-billing-manager" + "name": "zone.js", + "version": "0.16.1" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/auth-flow.mmd", - "type": "diagram", + "id": "package:archiver", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/auth-flow.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "archiver", + "version": "8.0.0" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/config-validation-flow.mmd", - "type": "diagram", + "id": "package:iconv-lite", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/config-validation-flow.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "iconv-lite", + "version": "0.7.2" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-location-selection.md", - "type": "readme", + "id": "package:pdf-lib", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/customer-location-selection.md", - "languageOrKind": "md", - "projectName": "decabill-backend-feature-billing-manager" + "name": "pdf-lib", + "version": "1.17.1" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-server-type-selection.md", - "type": "readme", + "id": "package:playwright", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/customer-server-type-selection.md", - "languageOrKind": "md", - "projectName": "decabill-backend-feature-billing-manager" + "name": "playwright", + "version": "1.55.1" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/manual-invoice-administration.mmd", - "type": "diagram", + "id": "package:stripe", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/manual-invoice-administration.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "stripe", + "version": "22.1.1" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/overview.mmd", - "type": "diagram", + "id": "package:xmlbuilder2", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/overview.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "xmlbuilder2", + "version": "4.0.3" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/plan-tax-category.md", - "type": "readme", + "id": "package:@xterm/xterm", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/plan-tax-category.md", - "languageOrKind": "md", - "projectName": "decabill-backend-feature-billing-manager" + "name": "@xterm/xterm", + "version": "5.5.0" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-bill-time.mmd", - "type": "diagram", + "id": "package:marked", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/project-bill-time.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "marked", + "version": "15.0.12" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-board-realtime.mmd", - "type": "diagram", + "id": "package:nest-cloudflare-turnstile", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/project-board-realtime.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "nest-cloudflare-turnstile", + "version": "0.0.17" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/provisioning-architecture.mmd", - "type": "diagram", + "id": "package:ngx-turnstile", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/provisioning-architecture.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "ngx-turnstile", + "version": "0.2.5" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-backorder-retry.mmd", - "type": "diagram", + "id": "package:tslib", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-backorder-retry.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "tslib", + "version": "2.8.1" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoice-payment.mmd", - "type": "diagram", + "id": "package:@mlc-ai/web-llm", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoice-payment.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "@mlc-ai/web-llm", + "version": "0.2.84" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoicing.mmd", - "type": "diagram", + "id": "package:mermaid", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoicing.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "mermaid", + "version": "11.12.2" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-open-positions-billing-day.mmd", - "type": "diagram", + "id": "package:@modelcontextprotocol/sdk", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-open-positions-billing-day.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "@modelcontextprotocol/sdk", + "version": "1.18.2" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-item-update.mmd", - "type": "diagram", + "id": "package:zod", + "type": "package", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-item-update.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "name": "zod", + "version": "4.3.6" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-order.mmd", - "type": "diagram", + "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/README.md", + "type": "readme", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-order.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "path": "libs/domains/forepath/frontend/data-access-project-estimator/README.md", + "languageOrKind": "md", + "projectName": "forepath-frontend-data-access-project-estimator" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/subscription-lifecycle.mmd", - "type": "diagram", + "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-device-capability.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/docs/subscription-lifecycle.mmd", - "languageOrKind": "mmd", - "projectName": "decabill-backend-feature-billing-manager" + "path": "libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-device-capability.service.ts", + "languageOrKind": "ts", + "projectName": "forepath-frontend-data-access-project-estimator" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "type": "asyncapi", + "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-estimate-parser.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "languageOrKind": "asyncapi", - "projectName": "decabill-backend-feature-billing-manager" + "path": "libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-estimate-parser.service.ts", + "languageOrKind": "ts", + "projectName": "forepath-frontend-data-access-project-estimator" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "type": "openapi", + "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-llm-memory-profile.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "languageOrKind": "openapi", - "projectName": "decabill-backend-feature-billing-manager" + "path": "libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-llm-memory-profile.service.ts", + "languageOrKind": "ts", + "projectName": "forepath-frontend-data-access-project-estimator" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-local-llm.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "path": "libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-local-llm.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-frontend-data-access-project-estimator" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-auto-billing.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-pricing-calculator.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-auto-billing.controller.ts", + "path": "libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-pricing-calculator.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-frontend-data-access-project-estimator" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/state/project-estimator", + "type": "state", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "path": "libs/domains/forepath/frontend/data-access-project-estimator/src/lib/state/project-estimator", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-frontend-data-access-project-estimator", + "sliceName": "project-estimator", + "memberFiles": [ + "project-estimator.actions.ts", + "project-estimator.debug.ts", + "project-estimator.effects.ts", + "project-estimator.facade.ts", + "project-estimator.reducer.ts", + "project-estimator.selectors.ts" + ] } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/README.md", + "type": "readme", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", - "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "path": "libs/domains/forepath/backend/feature-communication-manager/README.md", + "languageOrKind": "md", + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", + "type": "openapi", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "path": "libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", + "languageOrKind": "openapi", + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/communication.module.ts", + "type": "module", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", + "path": "libs/domains/forepath/backend/feature-communication-manager/src/lib/communication.module.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", + "type": "controller", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", + "path": "libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/dto/contact-request-response.dto.ts", + "type": "dto", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "path": "libs/domains/forepath/backend/feature-communication-manager/src/lib/dto/contact-request-response.dto.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/dto/create-contact-request.dto.ts", + "type": "dto", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "path": "libs/domains/forepath/backend/feature-communication-manager/src/lib/dto/create-contact-request.dto.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/services/chatwoot-api.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "path": "libs/domains/forepath/backend/feature-communication-manager/src/lib/services/chatwoot-api.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", - "type": "file", + "id": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/services/contact-request.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "path": "libs/domains/forepath/backend/feature-communication-manager/src/lib/services/contact-request.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "forepath-backend-feature-communication-manager" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/README.md", + "type": "readme", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/README.md", + "languageOrKind": "md", + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-billing.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-billing.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-customer-profiles.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-customer-profiles.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-projects.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-projects.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-promotions.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-promotions.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/availability.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/availability.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/backorders.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/backorders.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/cloud-init-configs.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/cloud-init-configs.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscription-items.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/customer-profile.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscription-items.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/customer-profile.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/invoices.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/invoices.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-milestones.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-milestones.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-tickets.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-tickets.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-milestones.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-time-entries.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-milestones.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-time-entries.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-tickets.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/projects.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-tickets.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/projects.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-time-entries.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/promotions.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-time-entries.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/promotions.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/public-withdrawal.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/public-withdrawal.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/utils/cloud-init/agent-controller.utils.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-plans.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/utils/cloud-init/agent-controller.utils.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-plans.service.ts", "languageOrKind": "ts", - "projectName": "decabill-backend-feature-billing-manager" + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/agenstra/frontend/feature-agent-console/README.md", - "type": "readme", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-types.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/agenstra/frontend/feature-agent-console/README.md", - "languageOrKind": "md", - "projectName": "agenstra-frontend-feature-agent-console" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-types.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/sequence-chat-automation-tickets-handoff.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/subscription-items.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/sequence-chat-automation-tickets-handoff.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-feature-agent-console" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/subscription-items.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board-search-and-status.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/subscriptions.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board-search-and-status.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-feature-agent-console" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/subscriptions.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board.md", - "type": "readme", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/usage.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board.md", - "languageOrKind": "md", - "projectName": "agenstra-frontend-feature-agent-console" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/usage.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console" } }, { - "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-prototype-chat.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-billing", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-prototype-chat.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-frontend-feature-agent-console" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-billing", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "admin-billing", + "memberFiles": [ + "admin-billing.actions.ts", + "admin-billing.effects.ts", + "admin-billing.facade.ts", + "admin-billing.reducer.ts", + "admin-billing.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/README.md", - "type": "readme", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-customer-profiles", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/README.md", - "languageOrKind": "md", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-customer-profiles", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "admin-customer-profiles", + "memberFiles": [ + "admin-customer-profiles.actions.ts", + "admin-customer-profiles.effects.ts", + "admin-customer-profiles.facade.ts", + "admin-customer-profiles.reducer.ts", + "admin-customer-profiles.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/agent-events.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-datev-exports", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/agent-events.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-datev-exports", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "admin-datev-exports", + "memberFiles": [ + "admin-datev-exports.actions.ts", + "admin-datev-exports.effects.ts", + "admin-datev-exports.facade.ts", + "admin-datev-exports.reducer.ts", + "admin-datev-exports.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/architecture-vnc.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-invoice-manager", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/architecture-vnc.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-invoice-manager", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "admin-invoice-manager", + "memberFiles": [ + "admin-invoice-manager.actions.ts", + "admin-invoice-manager.effects.ts", + "admin-invoice-manager.facade.ts", + "admin-invoice-manager.reducer.ts", + "admin-invoice-manager.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/deployment-architecture.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-promotions", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/deployment-architecture.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-promotions", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "admin-promotions", + "memberFiles": [ + "admin-promotions.actions.ts", + "admin-promotions.effects.ts", + "admin-promotions.facade.ts", + "admin-promotions.reducer.ts", + "admin-promotions.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/lifecycle.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-subscriptions", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/lifecycle.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-subscriptions", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "admin-subscriptions", + "memberFiles": [ + "admin-subscriptions.actions.ts", + "admin-subscriptions.effects.ts", + "admin-subscriptions.facade.ts", + "admin-subscriptions.reducer.ts", + "admin-subscriptions.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/overview.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/availability", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/overview.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/availability", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "availability", + "memberFiles": [ + "availability.actions.ts", + "availability.effects.ts", + "availability.facade.ts", + "availability.reducer.ts", + "availability.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/regex-filters.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/backorders", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/regex-filters.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/backorders", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "backorders", + "memberFiles": [ + "backorders.actions.ts", + "backorders.effects.ts", + "backorders.facade.ts", + "backorders.reducer.ts", + "backorders.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-deployment.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/billing-capabilities", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-deployment.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/billing-capabilities", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "billing-capabilities", + "memberFiles": [ + "billing-capabilities.actions.ts", + "billing-capabilities.effects.ts", + "billing-capabilities.facade.ts", + "billing-capabilities.reducer.ts", + "billing-capabilities.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-automation-verify.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/billing-dashboard-socket", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-automation-verify.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/billing-dashboard-socket", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "billing-dashboard-socket", + "memberFiles": [ + "billing-dashboard-socket.actions.ts", + "billing-dashboard-socket.effects.ts", + "billing-dashboard-socket.facade.ts", + "billing-dashboard-socket.reducer.ts", + "billing-dashboard-socket.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-environment.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/cloud-init-configs", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-environment.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/cloud-init-configs", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "cloud-init-configs", + "memberFiles": [ + "cloud-init-configs.actions.ts", + "cloud-init-configs.effects.ts", + "cloud-init-configs.facade.ts", + "cloud-init-configs.reducer.ts", + "cloud-init-configs.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-files.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/customer-profile", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-files.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/customer-profile", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "customer-profile", + "memberFiles": [ + "customer-profile.actions.ts", + "customer-profile.effects.ts", + "customer-profile.facade.ts", + "customer-profile.reducer.ts", + "customer-profile.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-vcs.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/invoices", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-vcs.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/invoices", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "invoices", + "memberFiles": [ + "invoices.actions.ts", + "invoices.effects.ts", + "invoices.facade.ts", + "invoices.reducer.ts", + "invoices.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-board-socket", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-board-socket", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "project-board-socket", + "memberFiles": [ + "project-board-socket.actions.ts", + "project-board-socket.constants.ts", + "project-board-socket.effects.ts", + "project-board-socket.facade.ts", + "project-board-socket.reducer.ts", + "project-board-socket.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-vnc-setup.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-milestones", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-vnc-setup.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-milestones", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "project-milestones", + "memberFiles": [ + "project-milestones.actions.ts", + "project-milestones.effects.ts", + "project-milestones.facade.ts", + "project-milestones.reducer.ts", + "project-milestones.selectors.ts", + "project-milestones.utils.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-auth-logs.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-tickets", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-auth-logs.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-tickets", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "project-tickets", + "memberFiles": [ + "project-ticket-global-search.utils.ts", + "project-tickets-subtask-counts.utils.ts", + "project-tickets.actions.ts", + "project-tickets.constants.ts", + "project-tickets.effects.ts", + "project-tickets.facade.ts", + "project-tickets.reducer.ts", + "project-tickets.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-chat.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-time-entries", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-chat.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-time-entries", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "project-time-entries", + "memberFiles": [ + "project-time-entries.actions.ts", + "project-time-entries.effects.ts", + "project-time-entries.facade.ts", + "project-time-entries.reducer.ts", + "project-time-entries.selectors.ts", + "project-time-entries.utils.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-container-stats.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/projects", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-container-stats.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/projects", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "projects", + "memberFiles": [ + "projects.actions.ts", + "projects.effects.ts", + "projects.facade.ts", + "projects.reducer.ts", + "projects.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-file-update.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/promotions", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-file-update.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/promotions", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "promotions", + "memberFiles": [ + "promotions.actions.ts", + "promotions.effects.ts", + "promotions.facade.ts", + "promotions.reducer.ts", + "promotions.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-terminal.mmd", - "type": "diagram", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/public-withdrawal", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-terminal.mmd", - "languageOrKind": "mmd", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/public-withdrawal", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "public-withdrawal", + "memberFiles": [ + "public-withdrawal.actions.ts", + "public-withdrawal.effects.ts", + "public-withdrawal.facade.ts", + "public-withdrawal.reducer.ts", + "public-withdrawal.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "type": "asyncapi", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-plans", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "languageOrKind": "asyncapi", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-plans", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "service-plans", + "memberFiles": [ + "service-plans.actions.ts", + "service-plans.effects.ts", + "service-plans.facade.ts", + "service-plans.reducer.ts", + "service-plans.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "type": "openapi", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-types", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "languageOrKind": "openapi", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-types", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "service-types", + "memberFiles": [ + "service-types.actions.ts", + "service-types.effects.ts", + "service-types.facade.ts", + "service-types.reducer.ts", + "service-types.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-deployments.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/subscription-server-info", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-deployments.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/subscription-server-info", "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "subscription-server-info", + "memberFiles": [ + "subscription-server-info.actions.ts", + "subscription-server-info.effects.ts", + "subscription-server-info.facade.ts", + "subscription-server-info.reducer.ts", + "subscription-server-info.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-environment-variables.controller.ts", - "type": "file", + "id": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/subscriptions", + "type": "state", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-environment-variables.controller.ts", + "path": "libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/subscriptions", "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "projectName": "decabill-frontend-data-access-billing-console", + "sliceName": "subscriptions", + "memberFiles": [ + "subscriptions.actions.ts", + "subscriptions.effects.ts", + "subscriptions.facade.ts", + "subscriptions.reducer.ts", + "subscriptions.selectors.ts" + ] } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-files.controller.ts", - "type": "file", + "id": "file:libs/domains/shared/backend/util-dynamic-provider-registry/README.md", + "type": "readme", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-files.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/shared/backend/util-dynamic-provider-registry/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-dynamic-provider-registry" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", - "type": "file", + "id": "file:libs/domains/shared/backend/util-dynamic-provider-registry/src/lib/dynamic-provider-loader.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "path": "libs/domains/shared/backend/util-dynamic-provider-registry/src/lib/dynamic-provider-loader.service.ts", "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "projectName": "shared-backend-util-dynamic-provider-registry" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/README.md", + "type": "readme", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/README.md", + "languageOrKind": "md", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-vcs.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/authentication.mmd", + "type": "diagram", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-vcs.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/authentication.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-verification.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/clients.mmd", + "type": "diagram", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-verification.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/clients.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/notifications-state.mmd", + "type": "diagram", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/notifications-state.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/overview.mmd", + "type": "diagram", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/overview.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-authentication.mmd", + "type": "diagram", "attrs": { - "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", - "languageOrKind": "ts", - "projectName": "agenstra-backend-feature-agent-manager" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-authentication.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/frontend/util-loading-indicator/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-files.mmd", + "type": "diagram", "attrs": { - "path": "libs/domains/shared/frontend/util-loading-indicator/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-util-loading-indicator" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-files.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/agenstra/frontend/feature-landingpage/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/agents.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/agenstra/frontend/feature-landingpage/README.md", - "languageOrKind": "md", - "projectName": "agenstra-frontend-feature-landingpage" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/agents.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/decabill/frontend/feature-landingpage/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/clients.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/frontend/feature-landingpage/README.md", - "languageOrKind": "md", - "projectName": "decabill-frontend-feature-landingpage" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/clients.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/forepath/frontend/feature-landingpage/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/context-import-admin.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/forepath/frontend/feature-landingpage/README.md", - "languageOrKind": "md", - "projectName": "forepath-frontend-feature-landingpage" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/context-import-admin.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/frontend/feature-notifications/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/deployments.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/shared/frontend/feature-notifications/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-feature-notifications" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/deployments.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/agenstra/frontend/data-access-portal/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/env.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/agenstra/frontend/data-access-portal/README.md", - "languageOrKind": "md", - "projectName": "agenstra-frontend-data-access-portal" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/env.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/decabill/frontend/data-access-portal/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/files.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/decabill/frontend/data-access-portal/README.md", - "languageOrKind": "md", - "projectName": "decabill-frontend-data-access-portal" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/files.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/backend/feature-notifications/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/filter-rules.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/shared/backend/feature-notifications/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-feature-notifications" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/filter-rules.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/controllers/webhook-endpoints.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/knowledge.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/shared/backend/feature-notifications/src/lib/controllers/webhook-endpoints.controller.ts", + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/knowledge.service.ts", "languageOrKind": "ts", - "projectName": "shared-backend-feature-notifications" + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/backend/util-network-address/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/statistics.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/shared/backend/util-network-address/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-network-address" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/statistics.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/frontend/feature-landingpage/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/tickets.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/shared/frontend/feature-landingpage/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-feature-landingpage" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/tickets.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/frontend/util-cookie-consent/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/vcs.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/shared/frontend/util-cookie-consent/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-util-cookie-consent" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/vcs.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/identity/frontend/data-access-auth/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/workspace-config.service.ts", + "type": "service", "attrs": { - "path": "libs/domains/identity/frontend/data-access-auth/README.md", - "languageOrKind": "md", - "projectName": "identity-frontend-data-access-auth" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/workspace-config.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console" } }, { - "id": "file:libs/domains/shared/frontend/util-configuration/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/agents", + "type": "state", "attrs": { - "path": "libs/domains/shared/frontend/util-configuration/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-util-configuration" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/agents", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "agents", + "memberFiles": [ + "agents.actions.ts", + "agents.effects.ts", + "agents.facade.ts", + "agents.reducer.ts", + "agents.selectors.ts", + "agents.types.ts" + ] } }, { - "id": "file:libs/domains/shared/shared/util-network-address/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/client-agent-autonomy", + "type": "state", "attrs": { - "path": "libs/domains/shared/shared/util-network-address/README.md", - "languageOrKind": "md", - "projectName": "shared-shared-util-network-address" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/client-agent-autonomy", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "client-agent-autonomy", + "memberFiles": [ + "client-agent-autonomy.actions.ts", + "client-agent-autonomy.effects.ts", + "client-agent-autonomy.facade.ts", + "client-agent-autonomy.reducer.ts", + "client-agent-autonomy.selectors.ts", + "client-agent-autonomy.types.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/feature-monitoring/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/clients", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/feature-monitoring/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-feature-monitoring" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/clients", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "clients", + "memberFiles": [ + "clients.actions.ts", + "clients.effects.ts", + "clients.facade.ts", + "clients.reducer.ts", + "clients.selectors.ts", + "clients.types.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/context-import", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/context-import", "languageOrKind": "ts", - "projectName": "shared-backend-feature-monitoring" + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "context-import", + "memberFiles": [ + "context-import.actions.ts", + "context-import.effects.ts", + "context-import.facade.ts", + "context-import.reducer.ts", + "context-import.selectors.ts", + "context-import.types.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/util-http-context/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/deployments", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/util-http-context/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-http-context" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/deployments", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "deployments", + "memberFiles": [ + "deployments.actions.ts", + "deployments.effects.ts", + "deployments.facade.ts", + "deployments.reducer.ts", + "deployments.selectors.ts", + "deployments.types.ts" + ] } }, { - "id": "file:libs/domains/shared/frontend/util-docs-parser/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/env", + "type": "state", "attrs": { - "path": "libs/domains/shared/frontend/util-docs-parser/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-util-docs-parser" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/env", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "env", + "memberFiles": [ + "env.actions.ts", + "env.effects.ts", + "env.facade.ts", + "env.reducer.ts", + "env.selectors.ts", + "env.types.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/util-redis-cache/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/files", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/util-redis-cache/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-redis-cache" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/files", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "files", + "memberFiles": [ + "files.actions.ts", + "files.effects.ts", + "files.facade.ts", + "files.reducer.ts", + "files.selectors.ts", + "files.types.ts" + ] } }, { - "id": "file:libs/domains/identity/frontend/feature-auth/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/filter-rules", + "type": "state", "attrs": { - "path": "libs/domains/identity/frontend/feature-auth/README.md", - "languageOrKind": "md", - "projectName": "identity-frontend-feature-auth" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/filter-rules", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "filter-rules", + "memberFiles": [ + "filter-rules.actions.ts", + "filter-rules.effects.ts", + "filter-rules.facade.ts", + "filter-rules.reducer.ts", + "filter-rules.selectors.ts", + "filter-rules.types.ts" + ] } }, { - "id": "file:libs/domains/identity/backend/feature-auth/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/knowledge", + "type": "state", "attrs": { - "path": "libs/domains/identity/backend/feature-auth/README.md", - "languageOrKind": "md", - "projectName": "identity-backend-feature-auth" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/knowledge", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "knowledge", + "memberFiles": [ + "knowledge.actions.ts", + "knowledge.effects.ts", + "knowledge.facade.ts", + "knowledge.reducer.ts", + "knowledge.selectors.ts", + "knowledge.types.ts" + ] } }, { - "id": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/knowledge-board-socket", + "type": "state", "attrs": { - "path": "libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/knowledge-board-socket", "languageOrKind": "ts", - "projectName": "identity-backend-feature-auth" + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "knowledge-board-socket", + "memberFiles": [ + "knowledge-board-socket.actions.ts", + "knowledge-board-socket.constants.ts", + "knowledge-board-socket.effects.ts", + "knowledge-board-socket.facade.ts", + "knowledge-board-socket.reducer.ts", + "knowledge-board-socket.selectors.ts" + ] } }, { - "id": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/notifications", + "type": "state", "attrs": { - "path": "libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/notifications", "languageOrKind": "ts", - "projectName": "identity-backend-feature-auth" + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "notifications", + "memberFiles": [ + "notifications-attention.util.ts", + "notifications-websocket-url.ts", + "notifications.actions.ts", + "notifications.effects.ts", + "notifications.facade.ts", + "notifications.reducer.ts", + "notifications.selectors.ts", + "notifications.types.ts", + "status-socket.constants.ts" + ] } }, { - "id": "file:libs/domains/shared/frontend/feature-docs/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/sockets", + "type": "state", "attrs": { - "path": "libs/domains/shared/frontend/feature-docs/README.md", - "languageOrKind": "md", - "projectName": "shared-frontend-feature-docs" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/sockets", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "sockets", + "memberFiles": [ + "client-chat-automation.constants.ts", + "sockets.actions.ts", + "sockets.effects.ts", + "sockets.facade.ts", + "sockets.reducer.ts", + "sockets.selectors.ts", + "sockets.types.ts" + ] } }, { - "id": "file:libs/domains/identity/frontend/util-auth/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/statistics", + "type": "state", "attrs": { - "path": "libs/domains/identity/frontend/util-auth/README.md", - "languageOrKind": "md", - "projectName": "identity-frontend-util-auth" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/statistics", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "statistics", + "memberFiles": [ + "statistics.actions.ts", + "statistics.effects.ts", + "statistics.facade.ts", + "statistics.reducer.ts", + "statistics.selectors.ts", + "statistics.types.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/util-webhook/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/stats", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/util-webhook/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-webhook" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/stats", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "stats", + "memberFiles": [ + "stats.actions.ts", + "stats.effects.ts", + "stats.facade.ts", + "stats.reducer.ts", + "stats.selectors.ts", + "stats.types.ts" + ] } }, { - "id": "file:libs/domains/identity/backend/util-auth/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/ticket-automation", + "type": "state", "attrs": { - "path": "libs/domains/identity/backend/util-auth/README.md", - "languageOrKind": "md", - "projectName": "identity-backend-util-auth" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/ticket-automation", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "ticket-automation", + "memberFiles": [ + "ticket-automation.actions.ts", + "ticket-automation.effects.ts", + "ticket-automation.facade.ts", + "ticket-automation.reducer.ts", + "ticket-automation.selectors.ts", + "ticket-automation.types.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/util-crypto/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/tickets", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/util-crypto/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-crypto" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/tickets", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "tickets", + "memberFiles": [ + "ticket-global-search.utils.ts", + "tickets-subtask-counts.utils.ts", + "tickets.actions.ts", + "tickets.constants.ts", + "tickets.effects.ts", + "tickets.facade.ts", + "tickets.reducer.ts", + "tickets.selectors.ts", + "tickets.types.ts" + ] } }, { - "id": "file:apps/agenstra/backend-agent-controller/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/tickets-board-socket", + "type": "state", "attrs": { - "path": "apps/agenstra/backend-agent-controller/README.md", - "languageOrKind": "md", - "projectName": "agenstra-backend-agent-controller" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/tickets-board-socket", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "tickets-board-socket", + "memberFiles": [ + "tickets-board-socket.actions.ts", + "tickets-board-socket.constants.ts", + "tickets-board-socket.effects.ts", + "tickets-board-socket.facade.ts", + "tickets-board-socket.reducer.ts", + "tickets-board-socket.selectors.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/util-email/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/vcs", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/util-email/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-email" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/vcs", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "vcs", + "memberFiles": [ + "vcs.actions.ts", + "vcs.effects.ts", + "vcs.facade.ts", + "vcs.reducer.ts", + "vcs.selectors.ts", + "vcs.types.ts" + ] } }, { - "id": "file:libs/domains/shared/backend/util-queue/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/workspace-config", + "type": "state", "attrs": { - "path": "libs/domains/shared/backend/util-queue/README.md", - "languageOrKind": "md", - "projectName": "shared-backend-util-queue" + "path": "libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/workspace-config", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-agent-console", + "sliceName": "workspace-config", + "memberFiles": [ + "workspace-config.actions.ts", + "workspace-config.effects.ts", + "workspace-config.facade.ts", + "workspace-config.reducer.ts", + "workspace-config.selectors.ts", + "workspace-config.types.ts" + ] } }, { - "id": "file:libs/domains/shared/frontend/util-meta/README.md", + "id": "file:libs/domains/shared/frontend/util-runtime-config-server/README.md", "type": "readme", "attrs": { - "path": "libs/domains/shared/frontend/util-meta/README.md", + "path": "libs/domains/shared/frontend/util-runtime-config-server/README.md", "languageOrKind": "md", - "projectName": "shared-frontend-util-meta" + "projectName": "shared-frontend-util-runtime-config-server" } }, { - "id": "file:apps/agenstra/backend-agent-manager/README.md", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/README.md", "type": "readme", "attrs": { - "path": "apps/agenstra/backend-agent-manager/README.md", + "path": "libs/domains/agenstra/backend/feature-agent-controller/README.md", "languageOrKind": "md", - "projectName": "agenstra-backend-agent-manager" + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:apps/forepath/backend-communication/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/agent-console-status-realtime.mmd", + "type": "diagram", "attrs": { - "path": "apps/forepath/backend-communication/README.md", - "languageOrKind": "md", - "projectName": "forepath-backend-communication" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/agent-console-status-realtime.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:apps/shared/platform-authentication/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/authentication.mmd", + "type": "diagram", "attrs": { - "path": "apps/shared/platform-authentication/README.md", - "languageOrKind": "md", - "projectName": "shared-platform-authentication" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/authentication.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:apps/forepath/frontend-landingpage/public/assets/models/qwen2.5-1.5b-instruct/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/autonomous-ticket-decision-tree.mmd", + "type": "diagram", "attrs": { - "path": "apps/forepath/frontend-landingpage/public/assets/models/qwen2.5-1.5b-instruct/README.md", - "languageOrKind": "md", - "projectName": "forepath-frontend-landingpage" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/autonomous-ticket-decision-tree.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/release-integrity/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/filter-rules-sync.mmd", + "type": "diagram", "attrs": { - "path": "tools/release-integrity/README.md", - "languageOrKind": "md", - "projectName": "release-integrity" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/filter-rules-sync.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/graph/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/knowledge-relations-matrix.mmd", + "type": "diagram", "attrs": { - "path": "tools/graph/README.md", - "languageOrKind": "md", - "projectName": "graph" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/knowledge-relations-matrix.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "type": "file", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/lifecycle.mmd", + "type": "diagram", "attrs": { - "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "languageOrKind": "ts", - "projectName": "graph" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/lifecycle.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/docs/demo/billing.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/overview.mmd", + "type": "diagram", "attrs": { - "path": "tools/graph/src/lib/__fixtures__/mini-workspace/docs/demo/billing.md", - "languageOrKind": "md", - "projectName": "graph" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/overview.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", - "type": "asyncapi", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-architecture.mmd", + "type": "diagram", "attrs": { - "path": "tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", - "languageOrKind": "asyncapi", - "projectName": "graph" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-architecture.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", - "type": "openapi", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-process.mmd", + "type": "diagram", "attrs": { - "path": "tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", - "languageOrKind": "openapi", - "projectName": "graph" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-process.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/code/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-auto-enrichment-pgvector.mmd", + "type": "diagram", "attrs": { - "path": "tools/code/README.md", - "languageOrKind": "md", - "projectName": "code" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-auto-enrichment-pgvector.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:tools/ai/README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-autonomous-ticket.mmd", + "type": "diagram", "attrs": { - "path": "tools/ai/README.md", - "languageOrKind": "md", - "projectName": "ai" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-autonomous-ticket.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-chat-enhancement.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-chat-enhancement.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-deployment-proxy.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-deployment-proxy.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/agentctx.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-environment.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/agentctx.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-environment.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/agents.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-files.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/agents.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-files.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/commands.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-statistics.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/commands.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-statistics.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-ticket-workspace-migrate.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/knowledge-graph.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-ticket-workspace-migrate.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-vcs.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/mcp-definitions.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-vcs.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/rules.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/rules.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/ai-agents/skills.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ticket-specification-bundle.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/ai-agents/skills.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ticket-specification-bundle.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/api-reference/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-workspace-configuration-overrides.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/api-reference/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-workspace-configuration-overrides.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/applications/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-forward.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/applications/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-forward.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/applications/backend-agent-controller.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-terminal.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/applications/backend-agent-controller.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-terminal.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/applications/backend-agent-manager.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/server-provisioning-sequence.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/applications/backend-agent-manager.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/server-provisioning-sequence.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/applications/frontend-agent-console.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/statistics-architecture.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/applications/frontend-agent-console.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/statistics-architecture.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/architecture/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/ticket-board-realtime.mmd", + "type": "diagram", "attrs": { - "path": "docs/agenstra/architecture/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/docs/ticket-board-realtime.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/architecture/components.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "type": "asyncapi", "attrs": { - "path": "docs/agenstra/architecture/components.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "languageOrKind": "asyncapi", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/architecture/data-flow.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "type": "openapi", "attrs": { - "path": "docs/agenstra/architecture/data-flow.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "languageOrKind": "openapi", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/architecture/system-overview.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy-directory.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/architecture/system-overview.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy-directory.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/deployment/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/deployment/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/deployment/background-jobs.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-statistics.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/deployment/background-jobs.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-statistics.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/deployment/docker-deployment.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-agent-automation-proxy.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/deployment/docker-deployment.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-agent-automation-proxy.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/deployment/environment-configuration.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-configuration-overrides.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/deployment/environment-configuration.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-configuration-overrides.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/deployment/local-development.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-deployments.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/deployment/local-development.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-deployments.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/deployment/production-checklist.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-vcs.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/deployment/production-checklist.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-vcs.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/deployment/system-requirements.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/deployment/system-requirements.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/features/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/agent-management.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/features/agent-management.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/atlassian-import.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/knowledge-tree.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/features/atlassian-import.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/knowledge-tree.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/authentication.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/features/authentication.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/chat-interface.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/ticket-automation.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/features/chat-interface.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/ticket-automation.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/client-management.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "type": "controller", "attrs": { - "path": "docs/agenstra/features/client-management.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/deployment.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/agent-console-status.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/deployment.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/agent-console-status.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/client-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/dynamic-provider-plugins.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/client-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/email-notifications.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/atlassian-site-connection-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/email-notifications.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/atlassian-site-connection-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/file-management.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/create-atlassian-site-connection.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/file-management.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/create-atlassian-site-connection.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/message-filter-rules.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/create-external-import-config.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/message-filter-rules.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/create-external-import-config.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/server-provisioning.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/external-import-config-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/server-provisioning.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/external-import-config-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/ticket-automation.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/update-atlassian-site-connection.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/ticket-automation.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/update-atlassian-site-connection.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/tickets-and-workspaces.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/update-external-import-config.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/tickets-and-workspaces.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/update-external-import-config.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/usage-statistics.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/create-client-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/usage-statistics.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/create-client-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/version-control.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/create-client.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/version-control.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/create-client.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/vnc-browser-access.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/create-filter-rule.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/vnc-browser-access.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/create-filter-rule.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/web-ide.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/filter-rule-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/web-ide.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/filter-rule-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/webhooks.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/update-filter-rule.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/webhooks.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/update-filter-rule.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/features/websocket-communication.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/create-knowledge-node.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/features/websocket-communication.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/create-knowledge-node.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/getting-started.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/create-knowledge-relation.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/getting-started.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/create-knowledge-relation.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/security/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/knowledge-page-activity-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/security/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/knowledge-page-activity-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/security/accepted-risks.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/knowledge-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/security/accepted-risks.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/knowledge-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/security/ci-security-scanning.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/reorder-knowledge-node.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/security/ci-security-scanning.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/reorder-knowledge-node.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/security/compliance-and-standards.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/update-knowledge-node.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/security/compliance-and-standards.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/update-knowledge-node.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/security/container-images.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/provision-server.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/security/container-images.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/provision-server.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/security/operational-hardening.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/provisioned-server-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/security/operational-hardening.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/provisioned-server-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-chat-io.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-chat-io.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/troubleshooting/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-entity-event.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/troubleshooting/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-entity-event.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/troubleshooting/common-issues.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-filter-drop.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/troubleshooting/common-issues.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-filter-drop.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-filter-flag.dto.ts", + "type": "dto", "attrs": { - "path": "docs/agenstra/troubleshooting/debugging-guide.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-filter-flag.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-summary.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-summary.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/api-reference/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/client-agent-autonomy.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/api-reference/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/client-agent-autonomy.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/applications/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/applications/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/applications/backend-billing-manager.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-run-chat-event.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/applications/backend-billing-manager.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-run-chat-event.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/applications/frontend-billing-console.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-run-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/applications/frontend-billing-console.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-run-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/architecture/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/update-ticket-automation.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/architecture/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/update-ticket-automation.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/architecture/components.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/apply-generated-body.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/architecture/components.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/apply-generated-body.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/architecture/data-flow.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/create-ticket-comment.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/architecture/data-flow.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/create-ticket-comment.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/architecture/system-overview.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/create-ticket.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/architecture/system-overview.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/create-ticket.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/deployment/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/migrate-ticket.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/deployment/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/migrate-ticket.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/deployment/background-jobs.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/start-body-generation-session.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/deployment/background-jobs.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/start-body-generation-session.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/deployment/docker-deployment.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-activity-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/deployment/docker-deployment.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-activity-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/deployment/environment-configuration.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-comment-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/deployment/environment-configuration.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-comment-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/deployment/local-development.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-response.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/deployment/local-development.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/deployment/production-checklist.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/update-ticket.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/deployment/production-checklist.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/update-ticket.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/deployment/system-requirements.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/update-client.dto.ts", + "type": "dto", "attrs": { - "path": "docs/decabill/deployment/system-requirements.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/update-client.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule-client.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule-client.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/authentication.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule-sync-target.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/authentication.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule-sync-target.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/auto-billing.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/auto-billing.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/backorders.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/atlassian-site-connection.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/backorders.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/atlassian-site-connection.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/billing-administration.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/client-agent-autonomy.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/billing-administration.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/client-agent-autonomy.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/cloud-init-configs.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/external-import-config.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/cloud-init-configs.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/external-import-config.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/customer-profiles.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/external-import-sync-marker.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/customer-profiles.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/external-import-sync-marker.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/dashboard-and-server-control.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-node-embedding.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/dashboard-and-server-control.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-node-embedding.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/dynamic-provider-plugins.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-node.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/dynamic-provider-plugins.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-node.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/email-notifications.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-page-activity.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/email-notifications.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-page-activity.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/invoices.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-relation.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/invoices.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-relation.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/multi-tenancy.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/provisioning-reference.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/multi-tenancy.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/provisioning-reference.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/payment-processing.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-agent.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/payment-processing.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-agent.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/project-board.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-filter-drop.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/project-board.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-filter-drop.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/projects.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-filter-flag.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/projects.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-filter-flag.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/promotions.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-io.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/promotions.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-io.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/public-withdrawal.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-client-user.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/public-withdrawal.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-client-user.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/real-time-status.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-client.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/real-time-status.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-client.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/server-provisioning.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-entity-event.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/server-provisioning.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-entity-event.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/service-types-and-plans.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-provisioning-reference.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/service-types-and-plans.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-provisioning-reference.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/subscriptions.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-user.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/subscriptions.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-user.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/features/webhooks.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-activity.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/features/webhooks.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-activity.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/getting-started.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-lease.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/getting-started.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-lease.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/security/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-run-step.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/security/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-run-step.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/security/accepted-risks.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-run.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/security/accepted-risks.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-run.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/security/ci-security-scanning.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/security/ci-security-scanning.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/security/compliance-and-standards.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-body-generation-session.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/security/compliance-and-standards.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-body-generation-session.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/security/container-images.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-comment.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/security/container-images.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-comment.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/security/operational-hardening.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/security/operational-hardening.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/user-environment-read-state.entity.ts", + "type": "entity", "attrs": { - "path": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/user-environment-read-state.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/troubleshooting/README.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "type": "gateway", "attrs": { - "path": "docs/decabill/troubleshooting/README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/troubleshooting/common-issues.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "type": "gateway", "attrs": { - "path": "docs/decabill/troubleshooting/common-issues.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:docs/decabill/troubleshooting/debugging-guide.md", - "type": "doc", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "type": "gateway", "attrs": { - "path": "docs/decabill/troubleshooting/debugging-guide.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:AGENTS.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "type": "gateway", "attrs": { - "path": "AGENTS.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:CHANGELOG.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/agenstra-notifications.module.ts", + "type": "module", "attrs": { - "path": "CHANGELOG.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/agenstra-notifications.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:CONTRIBUTING.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/clients.module.ts", + "type": "module", "attrs": { - "path": "CONTRIBUTING.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/clients.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:README.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/context-import.module.ts", + "type": "module", "attrs": { - "path": "README.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/context-import.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "file:SECURITY.md", - "type": "readme", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/filter-rules.module.ts", + "type": "module", "attrs": { - "path": "SECURITY.md", - "languageOrKind": "md" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/filter-rules.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:GET:/health", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-email-bridge.module.ts", + "type": "module", "attrs": { - "method": "GET", - "pathOrChannel": "/health", - "operationId": "getHealth", - "summary": "Health check", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-email-bridge.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/public/contact-requests", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-notification-bridge.module.ts", + "type": "module", "attrs": { - "method": "POST", - "pathOrChannel": "/public/contact-requests", - "operationId": "submitPublicContactRequest", - "summary": "Submit a public contact request", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-notification-bridge.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/setClient", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-statistics-bridge.module.ts", + "type": "module", "attrs": { - "pathOrChannel": "clients/setClient", - "summary": "Client selects a client context by UUID. Requires authenticated connection.\nThe user must have access to the client (global admin, client creator, or client_users entry).\nOn success, server emits setClientSuccess. On failure, server emits error with one of:\n- \"clientId is required\" (400)\n- \"Unauthorized\" (missing or invalid auth on socket)\n- \"You do not have access to this client\" (403)\n- \"Remote connection failed: ...\" (connection to agent-manager failed)\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-statistics-bridge.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/setClientSuccess", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/statistics.module.ts", + "type": "module", "attrs": { - "pathOrChannel": "clients/setClientSuccess", - "summary": "Server acknowledges selected client context", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/statistics.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/error", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/import/atlassian-external-import.provider.ts", + "type": "provider", "attrs": { - "pathOrChannel": "clients/error", - "summary": "Error responses. Common message values:\n- \"clientId is required\" (setClient missing clientId)\n- \"Unauthorized\" (socket missing userInfo after auth middleware)\n- \"You do not have access to this client\" (403 - setClient forbidden)\n- \"No client selected. Call setClient first.\" (forward without setClient)\n- \"Remote connection not established\" (forward failed)\n- \"Remote connection failed: ...\" (connection to agent-manager failed)\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/import/atlassian-external-import.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/forward", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/provisioning/digital-ocean.provider.ts", + "type": "provider", "attrs": { - "pathOrChannel": "clients/forward", - "summary": "Forward an arbitrary event to the selected client's agents namespace. When `agentId` is provided,\nthe gateway automatically logs in the agent using stored credentials before forwarding the event.\nTo restore chat history for an agent, forward a \"login\" event with `agentId` (the payload is\nautomatically overridden with credentials from the database, triggering login and subsequent\nchat history restoration). Supported events include \"chat\", \"enhanceChat\" (prompt improvement;\npayload `{ message, correlationId, model? }`; response `chatEnhanceResult` unicast from\nagent-manager, proxied to this socket only), \"generateTicketBody\" (ticket body from title;\npayload `{ title, correlationId, model? }`; response `ticketBodyResult` unicast, same envelope\nshape as `chatEnhanceResult`), \"fileUpdate\", \"logout\", \"createTerminal\", \"terminalInput\",\n\"closeTerminal\", etc. The remote agent-manager gateway will process the event and may emit\nresponse events (e.g., \"chatMessage\", \"chatEnhanceResult\", \"ticketBodyResult\",\n\"fileUpdateNotification\", \"terminalCreated\", \"terminalOutput\", \"terminalClosed\", \"containerStats\")\nwhich are automatically forwarded back to the client. The \"containerStats\" event payload\n(defined in the agent-manager AsyncAPI) includes container status (running/stopped) and, when\nrunning, container statistics. For autonomous ticket runs, proxied `chat` may include\n`responseMode: \"single\" | \"stream\" | \"sync\"`, `ephemeral: true`, `continue`, and `resumeSessionSuffix`;\nthe controller also uses isolated suffixes (e.g. `-ticket-auto-loop`, `-ticket-auto-commit-msg`) for\nimplementation turns vs. post-verify conventional-commit subject generation; statistics on the controller\nside record the latter under interaction kind `autonomous_ticket_commit_message`.\nAfter a successful run, the controller also completes the workflow over HTTP by proxying agent-manager VCS\n`commit` and `push` (see controller OpenAPI under `/clients/{clientId}/agents/{agentId}/vcs/...`).\nagent-manager passes these to `sendMessage` and skips `agent_messages` persistence when `ephemeral` is true.\nWhen `ephemeral` is true, chatMessage / chatEvent traffic for that turn is emitted only to the requesting\nsocket (not broadcast to other viewers on the same agent).\nAfter a successful **login** (explicit `forward` with `event: \"login\"` or first-time auto-login before another event),\nthe controller may emit **ticketAutomationRunChatUpsert** (unicast) to hydrate ticket automation runs for that\n`clientId` + `agentId` into the chat timeline (see `clients/ticketAutomationRunChatUpsert`). Live run updates use\nthe same event broadcast to room `client:{clientId}` on the **clients** namespace.\nWhen a ticket row is created or updated (REST or internal), the controller also emits **ticketChatTicketUpsert**\nto room `client:{clientId}` on **clients** (same body as `tickets/ticketUpsert`).\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/provisioning/digital-ocean.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/ticketAutomationRunChatUpsert", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/provisioning/hetzner.provider.ts", + "type": "provider", "attrs": { - "pathOrChannel": "clients/ticketAutomationRunChatUpsert", - "summary": "Controller-originated ticket automation snapshot for the chat UI (namespace **clients** only; not forwarded from\nagent-manager). Aligns with OpenAPI schema `TicketAutomationRunChatEventDto`. Hydration uses `timelineAt` from\n`run.startedAt`; live updates use `run.updatedAt`.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/provisioning/hetzner.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/ticketChatTicketUpsert", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/clients.repository.ts", + "type": "repository", "attrs": { - "pathOrChannel": "clients/ticketChatTicketUpsert", - "summary": "Full `TicketResponseDto` snapshot on namespace **clients** (room `client:{clientId}`), emitted whenever the\ncontroller would emit `ticketUpsert` on namespace **tickets**, so manager/chat UIs can merge ticket metadata\nwithout a `/tickets` socket connection.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/clients.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/forwardAck", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/provisioning-references.repository.ts", + "type": "repository", "attrs": { - "pathOrChannel": "clients/forwardAck", - "summary": "Acknowledgement for forwarded events", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/provisioning-references.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/remoteDisconnected", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/statistics.repository.ts", + "type": "repository", "attrs": { - "pathOrChannel": "clients/remoteDisconnected", - "summary": "Server notifies client that the remote connection to agent-manager has been lost", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/statistics.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/remoteReconnecting", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/ticket-automation-runs-status.repository.ts", + "type": "repository", "attrs": { - "pathOrChannel": "clients/remoteReconnecting", - "summary": "Server notifies client that reconnection to agent-manager is in progress", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/ticket-automation-runs-status.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/remoteReconnected", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/user-environment-read-state.repository.ts", + "type": "repository", "attrs": { - "pathOrChannel": "clients/remoteReconnected", - "summary": "Server notifies client that reconnection to agent-manager was successful", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/user-environment-read-state.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/remoteReconnectError", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-console-status-realtime.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "clients/remoteReconnectError", - "summary": "Server notifies client that a reconnection attempt to agent-manager failed (but will retry)", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-console-status-realtime.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:clients/remoteReconnectFailed", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-console-status.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "clients/remoteReconnectFailed", - "summary": "Server notifies client that all reconnection attempts to agent-manager have failed", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-console-status.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/setClient", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-manager-filter-rules-client.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/setClient", - "summary": "Select workspace for ticket board realtime (Socket.IO namespace \"tickets\"). Same auth and `ensureClientAccess`\nrules as `clients/setClient`. Joins room `client:{clientId}`; server emits only to sockets in that room.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-manager-filter-rules-client.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/setClientSuccess", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/atlassian-site-connection.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/setClientSuccess", - "summary": "Acknowledgement after tickets namespace setClient", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/atlassian-site-connection.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/error", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/auto-context-resolver.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/error", - "summary": "Errors for tickets namespace (e.g. missing clientId, Unauthorized, forbidden client, or \"Unable to set client context\").\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/auto-context-resolver.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/ticketUpsert", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/autonomous-run-orchestrator.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/ticketUpsert", - "summary": "Full ticket row after create/update (aligns with OpenAPI TicketResponseDto).\nA single REST create with `creationTemplate: specification` emits one upsert per ticket (parent plus four subtasks).\n`POST /tickets/{id}/migrate` emits one `ticketRemoved` per id on the source workspace, then one `ticketUpsert` per migrated row on the target workspace.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/autonomous-run-orchestrator.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/ticketRemoved", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-autonomy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/ticketRemoved", - "summary": "Ticket deleted or removed from a workspace list (e.g. workspace move from old client)", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-autonomy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/ticketCommentCreated", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-deployments-proxy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/ticketCommentCreated", - "summary": "New comment on a ticket", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-deployments-proxy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/ticketActivityCreated", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-environment-variables-proxy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/ticketActivityCreated", - "summary": "New activity row (audit trail); aligns with OpenAPI TicketActivityResponseDto", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-environment-variables-proxy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/ticketAutomationUpsert", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-file-system-proxy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/ticketAutomationUpsert", - "summary": "Automation settings row; aligns with OpenAPI ticket automation response", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-file-system-proxy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/ticketAutomationRunUpsert", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-messages-proxy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/ticketAutomationRunUpsert", - "summary": "Automation run summary (may omit `steps`). During agent iterations, emissions may be throttled (about 1s per run)\nin addition to `ticketAutomationRunStepAppended` for each step.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-messages-proxy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:tickets/ticketAutomationRunStepAppended", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-proxy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "tickets/ticketAutomationRunStepAppended", - "summary": "New run step row (e.g. agent_turn iteration)", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-proxy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:pages/setClient", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-vcs-proxy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "pages/setClient", - "summary": "Select workspace for knowledge board realtime (Socket.IO namespace \"pages\"). Same auth and `ensureClientAccess`\nrules as `clients/setClient`. Joins room `client:{clientId}`; server emits only to sockets in that room.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-vcs-proxy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:pages/setClientSuccess", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-automation-chat-realtime.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "pages/setClientSuccess", - "summary": "Acknowledgement after pages namespace setClient", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-automation-chat-realtime.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:pages/error", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-workspace-configuration-overrides-proxy.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "pages/error", - "summary": "Errors for pages namespace (e.g. missing clientId, Unauthorized, forbidden client, or \"Unable to set client context\").\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-workspace-configuration-overrides-proxy.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:pages/knowledgeTreeChanged", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/clients.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "pages/knowledgeTreeChanged", - "summary": "Workspace-scoped signal to refresh the knowledge tree from REST.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/clients.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:pages/knowledgeRelationChanged", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/context-import-orchestrator.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "pages/knowledgeRelationChanged", - "summary": "Workspace-scoped signal to refresh affected relations from REST.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/context-import-orchestrator.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:pages/knowledgePageActivityCreated", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/embeddings/knowledge-embedding-index.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "pages/knowledgePageActivityCreated", - "summary": "Incremental page activity row for currently open page details.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/embeddings/knowledge-embedding-index.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:status/statusSnapshot", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/embeddings/local-embedding.provider.ts", + "type": "provider", "attrs": { - "pathOrChannel": "status/statusSnapshot", - "summary": "Full per-user notification state on connect (git dirty + unread per environment, client rollups, spacesHasAttention).\nUnicast to the connecting socket only. Namespace **status** (STATUS_WEBSOCKET_NAMESPACE, default \"status\").\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/embeddings/local-embedding.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:status/statusPatch", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/external-import-config.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "status/statusPatch", - "summary": "Incremental notification deltas after connect (unicast).", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/external-import-config.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:status/markEnvironmentRead", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/external-import-sync-marker.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "status/markEnvironmentRead", - "summary": "Client marks an environment chat as read; persists user_environment_read_state.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/external-import-sync-marker.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:channel:status/setActiveEnvironment", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/filter-rules-sync.service.ts", + "type": "service", "attrs": { - "pathOrChannel": "status/setActiveEnvironment", - "summary": "Client reports the environment currently in view (suppresses unread for active user).", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/filter-rules-sync.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/auth/login", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/filter-rules.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/auth/login", - "operationId": "login", - "summary": "Login (users auth only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/filter-rules.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/auth/register", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/knowledge-board-realtime.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/auth/register", - "operationId": "register", - "summary": "Register new user (users auth only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/knowledge-board-realtime.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/auth/confirm-email", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/knowledge-tree.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/auth/confirm-email", - "operationId": "confirmEmail", - "summary": "Confirm email with 6-character code (users auth only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/knowledge-tree.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/auth/request-password-reset", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/provisioning.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/auth/request-password-reset", - "operationId": "requestPasswordReset", - "summary": "Request password reset (users auth only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/provisioning.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/auth/reset-password", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/remote-agents-session.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/auth/reset-password", - "operationId": "resetPassword", - "summary": "Reset password with 6-character code (users auth only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/remote-agents-session.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/auth/change-password", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-agent-sync.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/auth/change-password", - "operationId": "changePassword", - "summary": "Change password (authenticated users)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-agent-sync.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/auth/logout", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-client-sync.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/auth/logout", - "operationId": "logout", - "summary": "Log out (users auth only; revokes current session by default)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-client-sync.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:GET:/users", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-query.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/users", - "operationId": "listUsers", - "summary": "List users (admin only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-query.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/users", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-user-sync.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/users", - "operationId": "createUser", - "summary": "Create user (admin only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-user-sync.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:GET:/users/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/users/{id}", - "operationId": "getUser", - "summary": "Get user by id (admin only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/users/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-automation-chat-sync.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/users/{id}", - "operationId": "updateUser", - "summary": "Update user (admin only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-automation-chat-sync.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:DELETE:/users/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-automation.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/users/{id}", - "operationId": "deleteUser", - "summary": "Delete user (admin only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-automation.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/users/{id}/lock", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-board-realtime.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/users/{id}/lock", - "operationId": "lockUser", - "summary": "Lock user account (admin only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-board-realtime.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:POST:/users/{id}/unlock", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/tickets.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/users/{id}/unlock", - "operationId": "unlockUser", - "summary": "Unlock user account (admin only)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/tickets.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-controller" } }, { - "id": "api:HTTP:GET:/filter-rules", - "type": "endpoint", + "id": "file:libs/domains/decabill/frontend/feature-billing-console/README.md", + "type": "readme", "attrs": { - "method": "GET", - "pathOrChannel": "/filter-rules", - "operationId": "listFilterRules", - "summary": "List regex filter rules (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/frontend/feature-billing-console/README.md", + "languageOrKind": "md", + "projectName": "decabill-frontend-feature-billing-console" } }, { - "id": "api:HTTP:POST:/filter-rules", - "type": "endpoint", + "id": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/billing-admin.guard.ts", + "type": "guard", "attrs": { - "method": "POST", - "pathOrChannel": "/filter-rules", - "operationId": "createFilterRule", - "summary": "Create filter rule (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/billing-admin.guard.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-feature-billing-console" } }, { - "id": "api:HTTP:GET:/filter-rules/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/datev-export-enabled.guard.ts", + "type": "guard", "attrs": { - "method": "GET", - "pathOrChannel": "/filter-rules/{id}", - "operationId": "getFilterRule", - "summary": "Get filter rule (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/datev-export-enabled.guard.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-feature-billing-console" } }, { - "id": "api:HTTP:PUT:/filter-rules/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/public-withdrawal-access.guard.ts", + "type": "guard", "attrs": { - "method": "PUT", - "pathOrChannel": "/filter-rules/{id}", - "operationId": "updateFilterRule", - "summary": "Update filter rule (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/public-withdrawal-access.guard.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-feature-billing-console" } }, { - "id": "api:HTTP:DELETE:/filter-rules/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/theme.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/filter-rules/{id}", - "operationId": "deleteFilterRule", - "summary": "Delete filter rule (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/frontend/feature-billing-console/src/lib/theme.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-feature-billing-console" } }, { - "id": "api:HTTP:GET:/imports/atlassian/connections", - "type": "endpoint", + "id": "file:libs/domains/shared/frontend/data-access-communication/README.md", + "type": "readme", "attrs": { - "method": "GET", - "pathOrChannel": "/imports/atlassian/connections", - "operationId": "listAtlassianSiteConnections", - "summary": "List Atlassian site connections (admin only)", - "specKind": "openapi" + "path": "libs/domains/shared/frontend/data-access-communication/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-data-access-communication" } }, { - "id": "api:HTTP:POST:/imports/atlassian/connections", - "type": "endpoint", + "id": "file:libs/domains/shared/frontend/data-access-communication/src/lib/services/contact-request.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/imports/atlassian/connections", - "operationId": "createAtlassianSiteConnection", - "summary": "Create Atlassian site connection (admin only)", - "specKind": "openapi" + "path": "libs/domains/shared/frontend/data-access-communication/src/lib/services/contact-request.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-data-access-communication" } }, { - "id": "api:HTTP:GET:/imports/atlassian/connections/{id}", - "type": "endpoint", + "id": "file:libs/domains/shared/frontend/data-access-communication/src/lib/state/contact-request", + "type": "state", "attrs": { - "method": "GET", - "pathOrChannel": "/imports/atlassian/connections/{id}", - "operationId": "getAtlassianSiteConnection", - "summary": "Get Atlassian site connection (admin only)", - "specKind": "openapi" + "path": "libs/domains/shared/frontend/data-access-communication/src/lib/state/contact-request", + "languageOrKind": "ts", + "projectName": "shared-frontend-data-access-communication", + "sliceName": "contact-request", + "memberFiles": [ + "contact-request.actions.ts", + "contact-request.effects.ts", + "contact-request.facade.ts", + "contact-request.reducer.ts", + "contact-request.selectors.ts" + ] } }, { - "id": "api:HTTP:PUT:/imports/atlassian/connections/{id}", - "type": "endpoint", + "id": "file:libs/domains/shared/frontend/data-access-notifications/README.md", + "type": "readme", "attrs": { - "method": "PUT", - "pathOrChannel": "/imports/atlassian/connections/{id}", - "operationId": "updateAtlassianSiteConnection", - "summary": "Update Atlassian site connection (admin only)", - "specKind": "openapi" + "path": "libs/domains/shared/frontend/data-access-notifications/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-data-access-notifications" } }, { - "id": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", - "type": "endpoint", + "id": "file:libs/domains/shared/frontend/data-access-notifications/src/lib/services/webhook-endpoints.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/imports/atlassian/connections/{id}", - "operationId": "deleteAtlassianSiteConnection", - "summary": "Delete Atlassian site connection (admin only)", - "specKind": "openapi" + "path": "libs/domains/shared/frontend/data-access-notifications/src/lib/services/webhook-endpoints.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-data-access-notifications" } }, { - "id": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", - "type": "endpoint", + "id": "file:libs/domains/shared/frontend/data-access-notifications/src/lib/state/admin-webhooks", + "type": "state", "attrs": { - "method": "POST", - "pathOrChannel": "/imports/atlassian/connections/{id}/test", - "operationId": "testAtlassianSiteConnection", - "summary": "Test Atlassian connection (admin only)", - "specKind": "openapi" + "path": "libs/domains/shared/frontend/data-access-notifications/src/lib/state/admin-webhooks", + "languageOrKind": "ts", + "projectName": "shared-frontend-data-access-notifications", + "sliceName": "admin-webhooks", + "memberFiles": [ + "admin-webhooks.actions.ts", + "admin-webhooks.effects.ts", + "admin-webhooks.facade.ts", + "admin-webhooks.reducer.ts", + "admin-webhooks.selectors.ts" + ] } }, { - "id": "api:HTTP:GET:/imports/atlassian/configs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/README.md", + "type": "readme", "attrs": { - "method": "GET", - "pathOrChannel": "/imports/atlassian/configs", - "operationId": "listExternalImportConfigs", - "summary": "List external import configs (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/README.md", + "languageOrKind": "md", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/imports/atlassian/configs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/auth-flow.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/imports/atlassian/configs", - "operationId": "createExternalImportConfig", - "summary": "Create import config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/auth-flow.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/imports/atlassian/configs/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/config-validation-flow.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/imports/atlassian/configs/{id}", - "operationId": "getExternalImportConfig", - "summary": "Get import config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/config-validation-flow.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PUT:/imports/atlassian/configs/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-location-selection.md", + "type": "readme", "attrs": { - "method": "PUT", - "pathOrChannel": "/imports/atlassian/configs/{id}", - "operationId": "updateExternalImportConfig", - "summary": "Update import config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/customer-location-selection.md", + "languageOrKind": "md", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-server-type-selection.md", + "type": "readme", "attrs": { - "method": "DELETE", - "pathOrChannel": "/imports/atlassian/configs/{id}", - "operationId": "deleteExternalImportConfig", - "summary": "Delete import config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/customer-server-type-selection.md", + "languageOrKind": "md", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/manual-invoice-administration.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/imports/atlassian/configs/{id}/run", - "operationId": "runExternalImportConfig", - "summary": "Run import once for config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/manual-invoice-administration.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/overview.mmd", + "type": "diagram", "attrs": { - "method": "DELETE", - "pathOrChannel": "/imports/atlassian/configs/{id}/markers", - "operationId": "clearExternalImportMarkers", - "summary": "Clear sync markers for config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/overview.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/plan-tax-category.md", + "type": "readme", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets", - "operationId": "listTickets", - "summary": "List project tickets", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/plan-tax-category.md", + "languageOrKind": "md", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-bill-time.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets", - "operationId": "createTicket", - "summary": "Create ticket", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/project-bill-time.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-board-realtime.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets/{id}", - "operationId": "getTicket", - "summary": "Get ticket", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/project-board-realtime.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PATCH:/tickets/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/provisioning-architecture.mmd", + "type": "diagram", "attrs": { - "method": "PATCH", - "pathOrChannel": "/tickets/{id}", - "operationId": "updateTicket", - "summary": "Update ticket", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/provisioning-architecture.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/tickets/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-backorder-retry.mmd", + "type": "diagram", "attrs": { - "method": "DELETE", - "pathOrChannel": "/tickets/{id}", - "operationId": "deleteTicket", - "summary": "Delete ticket", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-backorder-retry.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets/{id}/prototype-prompt", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoice-payment.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets/{id}/prototype-prompt", - "operationId": "getTicketPrototypePrompt", - "summary": "Build prototype prompt for ticket tree", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoice-payment.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets/{id}/comments", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoicing.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets/{id}/comments", - "operationId": "listTicketComments", - "summary": "List ticket comments", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoicing.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets/{id}/comments", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-open-positions-billing-day.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets/{id}/comments", - "operationId": "addTicketComment", - "summary": "Add ticket comment", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-open-positions-billing-day.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets/{id}/activity", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-item-update.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets/{id}/activity", - "operationId": "listTicketActivity", - "summary": "List ticket activity", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-item-update.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-order.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets/{id}/body-generation-sessions", - "operationId": "startTicketBodyGenerationSession", - "summary": "Start AI body generation session", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-order.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets/{id}/apply-generated-body", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/docs/subscription-lifecycle.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets/{id}/apply-generated-body", - "operationId": "applyTicketGeneratedBody", - "summary": "Apply AI-generated ticket body", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/docs/subscription-lifecycle.mmd", + "languageOrKind": "mmd", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets/{id}/migrate", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "type": "asyncapi", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets/{id}/migrate", - "operationId": "migrateTicketToWorkspace", - "summary": "Migrate ticket subtree to another workspace", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "languageOrKind": "asyncapi", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets/{ticketId}/automation", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "type": "openapi", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets/{ticketId}/automation", - "operationId": "getTicketAutomation", - "summary": "Get ticket automation configuration", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "languageOrKind": "openapi", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PATCH:/tickets/{ticketId}/automation", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/billing.module.ts", + "type": "module", "attrs": { - "method": "PATCH", - "pathOrChannel": "/tickets/{ticketId}/automation", - "operationId": "patchTicketAutomation", - "summary": "Update ticket automation configuration", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/billing.module.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets/{ticketId}/automation/approve", - "operationId": "approveTicketAutomation", - "summary": "Approve automation run (when requiresApproval is true)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-auto-billing.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets/{ticketId}/automation/unapprove", - "operationId": "unapproveTicketAutomation", - "summary": "Revoke automation approval (when requiresApproval is true)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-auto-billing.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets/{ticketId}/automation/runs", - "operationId": "listTicketAutomationRuns", - "summary": "List automation runs for a ticket", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/tickets/{ticketId}/automation/runs/{runId}", - "operationId": "getTicketAutomationRun", - "summary": "Get automation run detail including steps", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/tickets/{ticketId}/automation/runs/{runId}/cancel", - "operationId": "cancelTicketAutomationRun", - "summary": "Cancel a pending or running automation run", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agent-autonomy/enabled-agent-ids", - "operationId": "listEnabledAutonomyAgentIds", - "summary": "List agent IDs with prototype autonomy enabled for this client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/autonomy", - "operationId": "getClientAgentAutonomy", - "summary": "Get per-agent autonomy settings", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "type": "controller", "attrs": { - "method": "PUT", - "pathOrChannel": "/clients/{id}/agents/{agentId}/autonomy", - "operationId": "upsertClientAgentAutonomy", - "summary": "Create or update per-agent autonomy settings", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients", - "operationId": "listClients", - "summary": "List clients", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/clients", - "operationId": "createClient", - "summary": "Create client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}", - "operationId": "getClient", - "summary": "Get client by id", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}", - "operationId": "updateClient", - "summary": "Update client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", + "type": "controller", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}", - "operationId": "deleteClient", - "summary": "Delete client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/users", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/users", - "operationId": "getClientUsers", - "summary": "List users associated with a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/users", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/users", - "operationId": "addClientUser", - "summary": "Add a user to a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", + "type": "controller", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/users/{relationshipId}", - "operationId": "removeClientUser", - "summary": "Remove a user from a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents", - "operationId": "listClientAgents", - "summary": "List agents for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents", - "operationId": "createClientAgent", - "summary": "Create agent for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}", - "operationId": "getClientAgent", - "summary": "Get agent by id for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscription-items.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}", - "operationId": "updateClientAgent", - "summary": "Update agent for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscription-items.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "type": "controller", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/agents/{agentId}", - "operationId": "deleteClientAgent", - "summary": "Delete agent for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/models", - "operationId": "listClientAgentModels", - "summary": "List models for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-billing.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/start", - "operationId": "startClientAgent", - "summary": "Start agent environment for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-billing.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-customer-profile.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/stop", - "operationId": "stopClientAgent", - "summary": "Stop agent environment for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-customer-profile.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-datev-export.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/restart", - "operationId": "restartClientAgent", - "summary": "Restart agent environment for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-datev-export.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/availability-check.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/files", - "operationId": "listClientAgentDirectory", - "summary": "List directory contents (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/availability-check.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/availability-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", - "operationId": "readClientAgentFile", - "summary": "Read file content (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/availability-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-cancel.dto.ts", + "type": "dto", "attrs": { - "method": "PUT", - "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", - "operationId": "writeClientAgentFile", - "summary": "Write file content (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-cancel.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-response.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", - "operationId": "deleteClientAgentFileOrDirectory", - "summary": "Delete file or directory (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-retry.dto.ts", + "type": "dto", "attrs": { - "method": "PATCH", - "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", - "operationId": "moveClientAgentFileOrDirectory", - "summary": "Move file or directory (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-retry.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/cancel-subscription.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", - "operationId": "createClientAgentFileOrDirectory", - "summary": "Create file or directory (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/cancel-subscription.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/cloud-init-config-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/environment", - "operationId": "listClientAgentEnvironmentVariables", - "summary": "List environment variables for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/cloud-init-config-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/confirm-public-withdrawal.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/environment", - "operationId": "createClientAgentEnvironmentVariable", - "summary": "Create environment variable for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/confirm-public-withdrawal.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-cloud-init-config.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/agents/{agentId}/environment", - "operationId": "deleteAllClientAgentEnvironmentVariables", - "summary": "Delete all environment variables for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-cloud-init-config.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-invoice.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/environment/count", - "operationId": "countClientAgentEnvironmentVariables", - "summary": "Get count of environment variables for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-invoice.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-service-plan.dto.ts", + "type": "dto", "attrs": { - "method": "PUT", - "pathOrChannel": "/clients/{id}/agents/{agentId}/environment/{envVarId}", - "operationId": "updateClientAgentEnvironmentVariable", - "summary": "Update environment variable for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-service-plan.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-service-type.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/agents/{agentId}/environment/{envVarId}", - "operationId": "deleteClientAgentEnvironmentVariable", - "summary": "Delete environment variable for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-service-type.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/configuration-overrides", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-subscription.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/configuration-overrides", - "operationId": "listClientWorkspaceConfigurationOverrides", - "summary": "List effective workspace configuration overrides (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-subscription.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-usage-record.dto.ts", + "type": "dto", "attrs": { - "method": "PUT", - "pathOrChannel": "/clients/{id}/configuration-overrides/{settingKey}", - "operationId": "upsertClientWorkspaceConfigurationOverride", - "summary": "Create or update a workspace configuration override (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-usage-record.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/customer-profile-response.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/configuration-overrides/{settingKey}", - "operationId": "deleteClientWorkspaceConfigurationOverride", - "summary": "Delete a workspace configuration override (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/customer-profile-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/customer-profile.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/status", - "operationId": "getClientAgentGitStatus", - "summary": "Get git status (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/customer-profile.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/invoice-detail-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches", - "operationId": "getClientAgentGitBranches", - "summary": "List all branches (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/invoice-detail-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/invoice-response.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches", - "operationId": "createClientAgentGitBranch", - "summary": "Create a new branch (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/invoice-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/manual-invoice.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches/{branch}", - "operationId": "deleteClientAgentGitBranch", - "summary": "Delete a branch (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/manual-invoice.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/order-provisioning-option.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", - "operationId": "switchClientAgentGitBranch", - "summary": "Switch to a branch (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/order-provisioning-option.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/pricing-preview.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/diff", - "operationId": "getClientAgentGitFileDiff", - "summary": "Get file diff (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/pricing-preview.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/promotion.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/stage", - "operationId": "stageClientAgentFiles", - "summary": "Stage files (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/promotion.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/provider-detail.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/unstage", - "operationId": "unstageClientAgentFiles", - "summary": "Unstage files (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/provider-detail.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/provider-location.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/commit", - "operationId": "commitClientAgentChanges", - "summary": "Commit staged changes (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/provider-location.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/public-service-plan-offering.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/push", - "operationId": "pushClientAgentChanges", - "summary": "Push changes to remote (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/public-service-plan-offering.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/public-withdrawal-response.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/pull", - "operationId": "pullClientAgentChanges", - "summary": "Pull changes from remote (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/public-withdrawal-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/request-public-withdrawal.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/fetch", - "operationId": "fetchClientAgentChanges", - "summary": "Fetch changes from remote (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/request-public-withdrawal.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/resume-subscription.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", - "operationId": "prepareCleanClientAgentWorkspace", - "summary": "Prepare clean workspace (fetch, reset --hard, clean) — proxied", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/resume-subscription.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/server-info-response.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/automation/verify-commands", - "operationId": "runClientAgentVerifierCommands", - "summary": "Run verifier shell commands in agent container (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/server-info-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/server-type.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/rebase", - "operationId": "rebaseClientAgentBranch", - "summary": "Rebase current branch (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/server-type.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-plan-ordering-highlight.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", - "operationId": "resolveClientAgentConflict", - "summary": "Resolve merge conflict (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-plan-ordering-highlight.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/provisioning/providers", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-plan-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/provisioning/providers", - "operationId": "listProvisioningProviders", - "summary": "List available provisioning providers", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-plan-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-type-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/provisioning/providers/{providerType}/server-types", - "operationId": "getServerTypes", - "summary": "Get available server types for a provisioning provider", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-type-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/subscription-item-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/provisioning/providers/{providerType}/locations", - "operationId": "getProviderLocations", - "summary": "Get available geography options for a provisioning provider", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/subscription-item-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/provisioning/provision", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/subscription-response.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/provisioning/provision", - "operationId": "provisionServer", - "summary": "Provision a new server and create a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/subscription-response.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/provisioning/info", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-cloud-init-config.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/provisioning/info", - "operationId": "getServerInfo", - "summary": "Get server information for a provisioned client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-cloud-init-config.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/provisioning", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-service-plan.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/provisioning", - "operationId": "deleteProvisionedServer", - "summary": "Delete a provisioned server and its associated client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-service-plan.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-service-type.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/configuration", - "operationId": "getClientAgentDeploymentConfiguration", - "summary": "Get deployment configuration for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-service-type.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/usage-summary.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/configuration", - "operationId": "upsertClientAgentDeploymentConfiguration", - "summary": "Create or update deployment configuration for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/usage-summary.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/verify-public-withdrawal-code.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/configuration", - "operationId": "deleteClientAgentDeploymentConfiguration", - "summary": "Delete deployment configuration for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/verify-public-withdrawal-code.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/withdraw-subscription.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/repositories", - "operationId": "listClientAgentDeploymentRepositories", - "summary": "List repositories accessible with the agent's deployment configuration (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/withdraw-subscription.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/withdrawal-policy.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", - "operationId": "listClientAgentDeploymentBranches", - "summary": "List branches for a repository (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/withdrawal-policy.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/availability-snapshot.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", - "operationId": "listClientAgentDeploymentWorkflows", - "summary": "List workflows for a repository (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/availability-snapshot.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/backorder.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/workflows/trigger", - "operationId": "triggerClientAgentDeploymentWorkflow", - "summary": "Trigger a workflow run (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/backorder.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/billing-audit-log.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs", - "operationId": "listClientAgentDeploymentRuns", - "summary": "List deployment runs for an agent (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/billing-audit-log.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/cloud-init-config.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}", - "operationId": "getClientAgentDeploymentRunStatus", - "summary": "Get the status of a pipeline run (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/cloud-init-config.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/customer-profile.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", - "operationId": "getClientAgentDeploymentRunLogs", - "summary": "Get logs for a pipeline run (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/customer-profile.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/datev-debtor-account.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", - "operationId": "listClientAgentDeploymentRunJobs", - "summary": "List jobs/steps for a pipeline run (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/datev-debtor-account.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/datev-export.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", - "operationId": "getClientAgentDeploymentJobLogs", - "summary": "Get logs for a specific job/step (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/datev-export.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-credit-document.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", - "operationId": "cancelClientAgentDeploymentRun", - "summary": "Cancel a running pipeline (proxied)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-credit-document.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/statistics/summary", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-line-item.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/statistics/summary", - "operationId": "getClientStatisticsSummary", - "summary": "Get statistics summary for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-line-item.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/statistics/chat-io", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-number-sequence.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/statistics/chat-io", - "operationId": "getClientStatisticsChatIo", - "summary": "Get chat I/O records for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-number-sequence.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-promotion-application.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/statistics/filter-drops", - "operationId": "getClientStatisticsFilterDrops", - "summary": "Get filter drops for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-promotion-application.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-void-document.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/statistics/filter-flags", - "operationId": "getClientStatisticsFilterFlags", - "summary": "Get filter flags for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-void-document.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/clients/{id}/statistics/entity-events", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/clients/{id}/statistics/entity-events", - "operationId": "getClientStatisticsEntityEvents", - "summary": "Get entity lifecycle events for a client", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/statistics/summary", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/open-position.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/statistics/summary", - "operationId": "getStatisticsSummary", - "summary": "Get aggregate statistics summary", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/open-position.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/statistics/chat-io", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-attempt.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/statistics/chat-io", - "operationId": "getStatisticsChatIo", - "summary": "Get chat I/O records (aggregate or by client)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-attempt.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/statistics/filter-drops", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-refund.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/statistics/filter-drops", - "operationId": "getStatisticsFilterDrops", - "summary": "Get filter drops (aggregate or by client)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-refund.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/statistics/filter-flags", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-webhook-event.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/statistics/filter-flags", - "operationId": "getStatisticsFilterFlags", - "summary": "Get filter flags (aggregate or by client)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-webhook-event.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/statistics/entity-events", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/promotion-redemption.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/statistics/entity-events", - "operationId": "getStatisticsEntityEvents", - "summary": "Get entity events (aggregate or by client)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/promotion-redemption.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/webhooks/event-types", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/promotion.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/webhooks/event-types", - "operationId": "listAgenstraWebhookEventTypes", - "summary": "List webhook event types (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/promotion.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/webhooks", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/provider-price-snapshot.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/webhooks", - "operationId": "listAgenstraWebhookEndpoints", - "summary": "List webhook endpoints (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/provider-price-snapshot.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/webhooks", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/public-withdrawal-request.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/webhooks", - "operationId": "createAgenstraWebhookEndpoint", - "summary": "Create webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/public-withdrawal-request.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/webhooks/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/reserved-hostname.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/webhooks/{id}", - "operationId": "getAgenstraWebhookEndpoint", - "summary": "Get webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/reserved-hostname.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PUT:/admin/webhooks/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/service-plan.entity.ts", + "type": "entity", "attrs": { - "method": "PUT", - "pathOrChannel": "/admin/webhooks/{id}", - "operationId": "updateAgenstraWebhookEndpoint", - "summary": "Update webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/service-plan.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/admin/webhooks/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/service-type.entity.ts", + "type": "entity", "attrs": { - "method": "DELETE", - "pathOrChannel": "/admin/webhooks/{id}", - "operationId": "deleteAgenstraWebhookEndpoint", - "summary": "Delete webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/service-type.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/webhooks/{id}/test", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/subscription-item.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/webhooks/{id}/test", - "operationId": "testAgenstraWebhookEndpoint", - "summary": "Send test webhook delivery (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/subscription-item.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/webhooks/{id}/deliveries", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/subscription.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/webhooks/{id}/deliveries", - "operationId": "listAgenstraWebhookDeliveries", - "summary": "List webhook deliveries (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/subscription.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:billing/subscribeDashboardStatus", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/usage-record.entity.ts", + "type": "entity", "attrs": { - "pathOrChannel": "billing/subscribeDashboardStatus", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/usage-record.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:billing/unsubscribeDashboardStatus", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/gateways/billing-status.gateway.ts", + "type": "gateway", "attrs": { - "pathOrChannel": "billing/unsubscribeDashboardStatus", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/gateways/billing-status.gateway.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:billing/dashboardStatusUpdate", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/guards/datev-export-enabled.guard.ts", + "type": "guard", "attrs": { - "pathOrChannel": "billing/dashboardStatusUpdate", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/guards/datev-export-enabled.guard.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:billing/error", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/guards/tenant-user.guard.ts", + "type": "guard", "attrs": { - "pathOrChannel": "billing/error", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/guards/tenant-user.guard.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/setProject", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/modules/billing-identity-email-bridge.module.ts", + "type": "module", "attrs": { - "pathOrChannel": "projects/setProject", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/modules/billing-identity-email-bridge.module.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/setProjectSuccess", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/payment-processors/processors/stripe-payment.processor.ts", + "type": "provider", "attrs": { - "pathOrChannel": "projects/setProjectSuccess", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/payment-processors/processors/stripe-payment.processor.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/ticketUpsert", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "projects/ticketUpsert", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/ticketRemoved", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-milestones.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "projects/ticketRemoved", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-milestones.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/ticketCommentCreated", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-tickets.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "projects/ticketCommentCreated", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-tickets.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/ticketActivityCreated", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-time-entries.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "projects/ticketActivityCreated", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-time-entries.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/milestoneUpsert", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "projects/milestoneUpsert", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/projectSummaryChanged", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-milestone.dto.ts", + "type": "dto", "attrs": { - "pathOrChannel": "projects/projectSummaryChanged", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-milestone.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:channel:projects/error", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-ticket.dto.ts", + "type": "dto", "attrs": { - "pathOrChannel": "projects/error", - "specKind": "asyncapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-ticket.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/public/service-plan-offerings", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-time-entry.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/public/service-plan-offerings", - "operationId": "listPublicServicePlanOfferings", - "summary": "List public service plan offerings (unauthenticated)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-time-entry.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/public/service-plan-offerings/cheapest", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/public/service-plan-offerings/cheapest", - "operationId": "getCheapestPublicServicePlanOffering", - "summary": "Get cheapest public service plan offering (unauthenticated)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project.dto.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/public/withdrawal/addressee", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-milestone.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/public/withdrawal/addressee", - "operationId": "getPublicWithdrawalAddressee", - "summary": "Get statutory withdrawal addressee (unauthenticated)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-milestone.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/public/withdrawal/request", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket-activity.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/public/withdrawal/request", - "operationId": "requestPublicWithdrawal", - "summary": "Request public statutory withdrawal (unauthenticated)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket-activity.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/public/withdrawal/verify-code", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket-comment.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/public/withdrawal/verify-code", - "operationId": "verifyPublicWithdrawalCode", - "summary": "Verify public withdrawal confirmation code (unauthenticated)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket-comment.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/public/withdrawal/confirm", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/public/withdrawal/confirm", - "operationId": "confirmPublicWithdrawal", - "summary": "Confirm public statutory withdrawal (unauthenticated)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-types", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-time-entry.entity.ts", + "type": "entity", "attrs": { - "method": "GET", - "pathOrChannel": "/service-types", - "operationId": "listServiceTypes", - "summary": "List service types", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-time-entry.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/service-types", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/service-types", - "operationId": "createServiceType", - "summary": "Create service type (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project.entity.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-types/providers", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/gateways/project-board.gateway.ts", + "type": "gateway", "attrs": { - "method": "GET", - "pathOrChannel": "/service-types/providers", - "operationId": "getProviderDetails", - "summary": "Get all provider details", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/gateways/project-board.gateway.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-milestones.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/service-types/providers/{providerId}/server-types", - "operationId": "getProviderServerTypes", - "summary": "Get server types for a provider", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-milestones.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-types/providers/{providerId}/locations", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-ticket-activities.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/service-types/providers/{providerId}/locations", - "operationId": "getProviderLocations", - "summary": "Get geography options for a provider", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-ticket-activities.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-types/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-ticket-comments.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/service-types/{id}", - "operationId": "getServiceType", - "summary": "Get service type", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-ticket-comments.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/service-types/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-tickets.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/service-types/{id}", - "operationId": "updateServiceType", - "summary": "Update service type (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-tickets.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/service-types/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-time-entries.repository.ts", + "type": "repository", "attrs": { - "method": "DELETE", - "pathOrChannel": "/service-types/{id}", - "operationId": "deleteServiceType", - "summary": "Delete service type (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-time-entries.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-plans", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/projects.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/service-plans", - "operationId": "listServicePlans", - "summary": "List service plans", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/projects.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/service-plans", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-billing.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/service-plans", - "operationId": "createServicePlan", - "summary": "Create service plan (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-billing.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-board-realtime.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/service-plans/{id}/cloud-init-configs/{configId}/order-fields", - "operationId": "getServicePlanCloudInitOrderFields", - "summary": "Get order form fields for a CloudInit config on a service plan", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-board-realtime.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/service-plans/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-board-summary.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/service-plans/{id}", - "operationId": "getServicePlan", - "summary": "Get service plan", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-board-summary.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/service-plans/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-milestones.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/service-plans/{id}", - "operationId": "updateServicePlan", - "summary": "Update service plan (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-milestones.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/service-plans/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-tickets.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/service-plans/{id}", - "operationId": "deleteServicePlan", - "summary": "Delete service plan (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-tickets.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/cloud-init-configs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-entries.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/cloud-init-configs", - "operationId": "listCloudInitConfigs", - "summary": "List CloudInit configs (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-entries.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/cloud-init-configs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report-pdf-template.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/cloud-init-configs", - "operationId": "createCloudInitConfig", - "summary": "Create CloudInit config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report-pdf-template.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/cloud-init-configs/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report-pdf.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/cloud-init-configs/{id}", - "operationId": "getCloudInitConfig", - "summary": "Get CloudInit config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report-pdf.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/cloud-init-configs/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/cloud-init-configs/{id}", - "operationId": "updateCloudInitConfig", - "summary": "Update CloudInit config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/cloud-init-configs/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/projects-admin.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/cloud-init-configs/{id}", - "operationId": "deleteCloudInitConfig", - "summary": "Delete CloudInit config (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/projects-admin.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/availability/check", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/projects.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/availability/check", - "operationId": "checkAvailability", - "summary": "Check availability", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/projects.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/availability/alternatives", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/availability-snapshots.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/availability/alternatives", - "operationId": "checkAvailabilityAlternatives", - "summary": "Get availability alternatives", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/availability-snapshots.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/subscriptions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/backorders.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/subscriptions", - "operationId": "listSubscriptions", - "summary": "List subscriptions", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/backorders.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/subscriptions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/billing-audit-logs.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/subscriptions", - "operationId": "createSubscription", - "summary": "Create subscription", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/billing-audit-logs.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/subscriptions/{subscriptionId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/cloud-init-configs.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/subscriptions/{subscriptionId}", - "operationId": "getSubscription", - "summary": "Get subscription", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/cloud-init-configs.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/customer-profiles.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/subscriptions/{subscriptionId}/cancel", - "operationId": "cancelSubscription", - "summary": "Cancel subscription", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/customer-profiles.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/datev-debtor-accounts.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/subscriptions/{subscriptionId}/resume", - "operationId": "resumeSubscription", - "summary": "Resume subscription", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/datev-debtor-accounts.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/datev-export.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/subscriptions/{subscriptionId}/withdraw", - "operationId": "withdrawSubscription", - "summary": "Statutory withdrawal (Widerruf)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/datev-export.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-credit-documents.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/subscriptions/{subscriptionId}/items", - "operationId": "listSubscriptionItems", - "summary": "List subscription items", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-credit-documents.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-line-items.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/server-info", - "operationId": "getSubscriptionItemServerInfo", - "summary": "Get server info for a provisioned subscription item", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-line-items.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-number-sequences.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/actions/start", - "operationId": "startSubscriptionItemServer", - "summary": "Start server for a provisioned subscription item", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-number-sequences.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-promotion-applications.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", - "operationId": "stopSubscriptionItemServer", - "summary": "Stop server for a provisioned subscription item", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-promotion-applications.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-void-documents.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", - "operationId": "restartSubscriptionItemServer", - "summary": "Restart server for a provisioned subscription item", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-void-documents.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/backorders", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoices.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/backorders", - "operationId": "listBackorders", - "summary": "List backorders", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoices.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/backorders/{id}/retry", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/open-positions.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/backorders/{id}/retry", - "operationId": "retryBackorder", - "summary": "Retry backorder", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/open-positions.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/backorders/{id}/cancel", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-attempts.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/backorders/{id}/cancel", - "operationId": "cancelBackorder", - "summary": "Cancel backorder", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-attempts.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/pricing/preview", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-refunds.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/pricing/preview", - "operationId": "previewPricing", - "summary": "Preview pricing", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-refunds.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/customer-profile", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-webhook-events.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/customer-profile", - "operationId": "getCustomerProfile", - "summary": "Get customer profile", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-webhook-events.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/customer-profile", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/promotion-redemptions.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/customer-profile", - "operationId": "updateCustomerProfile", - "summary": "Update customer profile", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/promotion-redemptions.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/customer-profile/auto-billing/setup", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/promotions.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/customer-profile/auto-billing/setup", - "operationId": "setupCustomerAutoBilling", - "summary": "Start auto-billing payment method setup", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/promotions.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/customer-profile/auto-billing/enable", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/provider-price-snapshots.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/customer-profile/auto-billing/enable", - "operationId": "enableCustomerAutoBilling", - "summary": "Enable auto-billing", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/provider-price-snapshots.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/customer-profile/auto-billing/disable", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/public-withdrawal-requests.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/customer-profile/auto-billing/disable", - "operationId": "disableCustomerAutoBilling", - "summary": "Disable auto-billing", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/public-withdrawal-requests.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/summary", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/reserved-hostnames.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/summary", - "operationId": "getInvoicesSummary", - "summary": "Get open and overdue invoices summary", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/reserved-hostnames.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/open-overdue", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/service-plans.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/open-overdue", - "operationId": "listOpenOverdueInvoices", - "summary": "List open and overdue invoices", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/service-plans.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/history", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/service-types.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/history", - "operationId": "listInvoiceHistory", - "summary": "List invoice history", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/service-types.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/subscription-items.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/ref/{invoiceRefId}", - "operationId": "getInvoiceDetailsByRef", - "summary": "Get invoice details by reference (no subscription)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/subscription-items.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/subscriptions.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/ref/{invoiceRefId}/pdf", - "operationId": "downloadInvoicePdfByRef", - "summary": "Download invoice PDF by reference (no subscription)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/subscriptions.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/usage-records.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/ref/{invoiceRefId}/void-document/pdf", - "operationId": "downloadInvoiceVoidDocumentPdfByRef", - "summary": "Download void credit note PDF by reference (no subscription)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/usage-records.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/users-billing-day.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/ref/{invoiceRefId}/time-report/pdf", - "operationId": "downloadInvoiceTimeReportPdfByRef", - "summary": "Download time report PDF by reference (no subscription)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/users-billing-day.repository.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/admin-bill-now.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/invoices/ref/{invoiceRefId}/pay", - "operationId": "initiateInvoicePaymentByRef", - "summary": "Initiate payment by reference (no subscription)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/admin-bill-now.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/{subscriptionId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/auto-billing.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/{subscriptionId}", - "operationId": "listInvoices", - "summary": "List invoices", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/auto-billing.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/invoices/{subscriptionId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/availability.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/invoices/{subscriptionId}", - "operationId": "createInvoice", - "summary": "Create invoice (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/availability.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/backorder-retry.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}", - "operationId": "getInvoiceDetails", - "summary": "Get invoice details (preview)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/backorder-retry.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/backorder.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", - "operationId": "downloadInvoicePdf", - "summary": "Download invoice PDF", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/backorder.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-admin.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", - "operationId": "downloadInvoiceVoidDocumentPdf", - "summary": "Download void credit note PDF", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-admin.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-audit-log.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", - "operationId": "downloadInvoiceTimeReportPdf", - "summary": "Download time report PDF", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-audit-log.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-issuer-config.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", - "operationId": "initiateInvoicePayment", - "summary": "Initiate payment (Stripe Checkout)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-issuer-config.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-schedule.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/void", - "operationId": "voidInvoice", - "summary": "Void invoice (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-schedule.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/webhooks/payments/stripe", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-statistics-query.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/webhooks/payments/stripe", - "operationId": "stripePaymentWebhook", - "summary": "Stripe payment webhook", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-statistics-query.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/usage/summary/{subscriptionId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-tenant.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/usage/summary/{subscriptionId}", - "operationId": "getUsageSummary", - "summary": "Usage summary", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-tenant.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/usage/record", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cancellation-policy.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/usage/record", - "operationId": "recordUsage", - "summary": "Record usage (admin or API key only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cancellation-policy.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/summary", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cloud-init-config.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/summary", - "operationId": "getAdminBillingSummary", - "summary": "Global billing KPI summary (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cloud-init-config.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/bill-now", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cloudflare-dns.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/bill-now", - "operationId": "adminBillNow", - "summary": "Bill unbilled open positions now (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cloudflare-dns.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/subscriptions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/customer-profiles-admin.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/subscriptions", - "operationId": "listAdminSubscriptions", - "summary": "List all subscriptions (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/customer-profiles-admin.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/customer-profiles.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/subscriptions/{subscriptionId}/cancel", - "operationId": "adminCancelSubscription", - "summary": "Cancel subscription (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/customer-profiles.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-booking-mapper.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/subscriptions/{subscriptionId}/withdraw", - "operationId": "adminWithdrawSubscription", - "summary": "Withdraw subscription (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-booking-mapper.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-debtor-account.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/subscriptions/{subscriptionId}/resume", - "operationId": "adminResumeSubscription", - "summary": "Resume subscription (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-debtor-account.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-debtor-mapper.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/users/{userId}/subscriptions", - "operationId": "listAdminUserSubscriptions", - "summary": "List subscriptions for a user (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-debtor-mapper.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/invoices", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-document-archive.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/invoices", - "operationId": "listAdminInvoices", - "summary": "List all invoices (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-document-archive.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/invoices/open-overdue", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-admin.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/invoices/open-overdue", - "operationId": "listAdminOpenOverdueInvoices", - "summary": "List all invoices (deprecated alias)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-admin.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/invoices/manual", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-config.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/invoices/manual", - "operationId": "createManualInvoice", - "summary": "Create manual invoice draft (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-config.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-storage.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}", - "operationId": "getAdminInvoiceDetail", - "summary": "Get invoice detail (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-storage.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export.job-handler.ts", + "type": "job", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}", - "operationId": "updateManualInvoice", - "summary": "Update manual invoice draft (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}", - "operationId": "deleteManualInvoice", - "summary": "Delete manual invoice draft (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-extf-csv.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/issue", - "operationId": "issueManualInvoice", - "summary": "Issue manual invoice draft (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-extf-csv.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/digitalocean-provisioning.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/pdf", - "operationId": "downloadAdminInvoicePdf", - "summary": "Download invoice PDF (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/digitalocean-provisioning.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/e-invoice-embed.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/void-document/pdf", - "operationId": "downloadAdminInvoiceVoidDocumentPdf", - "summary": "Download void credit note PDF (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/e-invoice-embed.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/e-invoice-xml.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/time-report/pdf", - "operationId": "downloadAdminInvoiceTimeReportPdf", - "summary": "Download stored time report PDF (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/e-invoice-xml.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/promotions/validate", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/hetzner-provisioning.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/promotions/validate", - "operationId": "validatePromotionCode", - "summary": "Validate a promotion code (simulated redemption)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/hetzner-provisioning.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/promotions/redeem", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/hostname-reservation.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/promotions/redeem", - "operationId": "redeemPromotionCode", - "summary": "Redeem a promotion code", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/hostname-reservation.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/promotions/redemptions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-admin.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/promotions/redemptions", - "operationId": "listPromotionRedemptions", - "summary": "List promotion redemptions for current user", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-admin.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/promotions/active", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-auto-payment.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/promotions/active", - "operationId": "listActivePromotions", - "summary": "List active promotion benefits for current user", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-auto-payment.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/promotions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-creation.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/promotions", - "operationId": "listAdminPromotions", - "summary": "List promotions (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-creation.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/promotions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-issuance.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/promotions", - "operationId": "createAdminPromotion", - "summary": "Create promotion (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-issuance.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/promotions/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-overdue.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/promotions/{id}", - "operationId": "getAdminPromotion", - "summary": "Get promotion (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-overdue.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:PUT:/admin/billing/promotions/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf-html-renderer.service.ts", + "type": "service", "attrs": { - "method": "PUT", - "pathOrChannel": "/admin/billing/promotions/{id}", - "operationId": "updateAdminPromotion", - "summary": "Update promotion (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf-html-renderer.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/admin/billing/promotions/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf-template.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/admin/billing/promotions/{id}", - "operationId": "deactivateAdminPromotion", - "summary": "Deactivate promotion (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf-template.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/promotions/{id}/redemptions", - "operationId": "listAdminPromotionRedemptions", - "summary": "List redemptions for a promotion (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/customer-profiles", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/customer-profiles", - "operationId": "listAdminCustomerProfiles", - "summary": "List customer billing profiles (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/customer-profiles", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/manual-invoice.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/customer-profiles", - "operationId": "createAdminCustomerProfile", - "summary": "Create customer billing profile (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/manual-invoice.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/open-position-invoice.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/customer-profiles/{id}", - "operationId": "getAdminCustomerProfile", - "summary": "Get customer billing profile (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/open-position-invoice.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/payment-orchestration.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/customer-profiles/{id}", - "operationId": "updateAdminCustomerProfile", - "summary": "Update customer billing profile (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/payment-orchestration.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/pricing.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/admin/billing/customer-profiles/{id}", - "operationId": "deleteAdminCustomerProfile", - "summary": "Delete customer billing profile (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/pricing.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-admin.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/customer-profiles/{id}/auto-billing/setup", - "operationId": "adminSetupCustomerAutoBilling", - "summary": "Start auto-billing payment method setup for a customer (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-admin.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-application.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/customer-profiles/{id}/auto-billing/enable", - "operationId": "adminEnableCustomerAutoBilling", - "summary": "Enable auto-billing for a customer (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-application.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-redemption.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/customer-profiles/{id}/auto-billing/disable", - "operationId": "adminDisableCustomerAutoBilling", - "summary": "Disable auto-billing for a customer (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-redemption.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-validation.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/void", - "operationId": "adminVoidInvoice", - "summary": "Void invoice (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-validation.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-locations.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/mark-paid", - "operationId": "adminMarkInvoicePaid", - "summary": "Mark invoice paid manually (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-locations.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-pricing.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/mark-unpaid", - "operationId": "adminMarkInvoiceUnpaid", - "summary": "Mark invoice unpaid manually (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-pricing.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-registry.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/audit-logs", - "operationId": "listAdminInvoiceAuditLogs", - "summary": "Audit history for invoice (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-registry.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/statistics/summary", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-server-types.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/statistics/summary", - "operationId": "getAdminBillingStatisticsSummary", - "summary": "Turnover time series (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-server-types.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/statistics/by-product", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provisioning.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/statistics/by-product", - "operationId": "getAdminBillingStatisticsByProduct", - "summary": "Turnover by service plan (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provisioning.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/capabilities", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/public-withdrawal.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/capabilities", - "operationId": "getAdminBillingCapabilities", - "summary": "Billing feature capabilities for admin UI (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/public-withdrawal.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/datev-exports", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/ssh-executor.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/datev-exports", - "operationId": "listAdminDatevExports", - "summary": "List DATEV EXTF exports (admin only; requires BILLING_DATEV_EXPORT_ENABLED)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/ssh-executor.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/datev-exports", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-billing.job-handler.ts", + "type": "job", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/datev-exports", - "operationId": "triggerAdminDatevExport", - "summary": "Trigger DATEV export for a calendar month (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-billing.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-charge-period.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/datev-exports/{exportId}", - "operationId": "getAdminDatevExport", - "summary": "Get DATEV export metadata (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-charge-period.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-expiration.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/datev-exports/{exportId}/download", - "operationId": "downloadAdminDatevExport", - "summary": "Download DATEV export ZIP (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-expiration.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/projects", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-item-server.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/projects", - "operationId": "listCustomerProjects", - "summary": "List projects assigned to the authenticated customer", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-item-server.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/projects/{projectId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-item-update.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/projects/{projectId}", - "operationId": "getCustomerProject", - "summary": "Get project detail (customer read-only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-item-update.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/projects/{projectId}/summary", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-provisioning.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/projects/{projectId}/summary", - "operationId": "getProjectSummary", - "summary": "Get project KPI summary", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-provisioning.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/projects", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-renewal-reminder.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/projects", - "operationId": "listAdminProjects", - "summary": "List all projects (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-renewal-reminder.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/projects", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-teardown.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/projects", - "operationId": "createAdminProject", - "summary": "Create project (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-teardown.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/projects/{projectId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-withdrawal.job-handler.ts", + "type": "job", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/projects/{projectId}", - "operationId": "getAdminProject", - "summary": "Get project detail (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-withdrawal.job-handler.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/projects/{projectId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/projects/{projectId}", - "operationId": "updateAdminProject", - "summary": "Update project (admin)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/tax-calculation.service.ts", + "type": "service", "attrs": { - "method": "DELETE", - "pathOrChannel": "/admin/billing/projects/{projectId}", - "operationId": "deleteAdminProject", - "summary": "Delete project when no unbilled time entries", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/tax-calculation.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/tax-rate-config.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/projects/{projectId}/unbilled-time-bounds", - "operationId": "getProjectUnbilledTimeBounds", - "summary": "Unbilled time entry range for bill-time defaults", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/tax-rate-config.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/usage.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/projects/{projectId}/bill-time", - "operationId": "billProjectTime", - "summary": "Bill unbilled project time in range to invoice", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/usage.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/withdrawal-policy.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/projects/{projectId}/time-report", - "operationId": "generateProjectTimeReport", - "summary": "Generate live time report PDF (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/withdrawal-policy.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/projects/{projectId}/tickets", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/withdrawal-refund.service.ts", + "type": "service", "attrs": { - "method": "GET", - "pathOrChannel": "/projects/{projectId}/tickets", - "operationId": "listProjectTickets", - "summary": "List project tickets", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/services/withdrawal-refund.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:POST:/projects/{projectId}/tickets", - "type": "endpoint", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/utils/cloud-init/agent-controller.utils.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/projects/{projectId}/tickets", - "operationId": "createProjectTicket", - "summary": "Create ticket (admin only)", - "specKind": "openapi" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/utils/cloud-init/agent-controller.utils.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-feature-billing-manager" } }, { - "id": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/README.md", + "type": "readme", "attrs": { - "method": "GET", - "pathOrChannel": "/projects/{projectId}/tickets/{ticketId}/comments", - "operationId": "listProjectTicketComments", - "summary": "List ticket comments", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/README.md", + "languageOrKind": "md", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/sequence-chat-automation-tickets-handoff.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/projects/{projectId}/tickets/{ticketId}/comments", - "operationId": "createProjectTicketComment", - "summary": "Add ticket comment (customer or admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/sequence-chat-automation-tickets-handoff.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:GET:/projects/{projectId}/milestones", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board-search-and-status.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/projects/{projectId}/milestones", - "operationId": "listProjectMilestones", - "summary": "List project milestones", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board-search-and-status.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:GET:/admin/billing/webhooks/event-types", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board.md", + "type": "readme", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/webhooks/event-types", - "operationId": "listAdminWebhookEventTypes", - "summary": "List webhook event types (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board.md", + "languageOrKind": "md", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:GET:/admin/billing/webhooks", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-prototype-chat.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/webhooks", - "operationId": "listAdminWebhookEndpoints", - "summary": "List webhook endpoints (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-prototype-chat.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:POST:/admin/billing/webhooks", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/src/lib/guards/config-editor.guard.ts", + "type": "guard", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/webhooks", - "operationId": "createAdminWebhookEndpoint", - "summary": "Create webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/src/lib/guards/config-editor.guard.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:GET:/admin/billing/webhooks/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/src/lib/guards/tickets-require-active-client.guard.ts", + "type": "guard", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/webhooks/{id}", - "operationId": "getAdminWebhookEndpoint", - "summary": "Get webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/src/lib/guards/tickets-require-active-client.guard.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:PUT:/admin/billing/webhooks/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/frontend/feature-agent-console/src/lib/theme.service.ts", + "type": "service", "attrs": { - "method": "PUT", - "pathOrChannel": "/admin/billing/webhooks/{id}", - "operationId": "updateAdminWebhookEndpoint", - "summary": "Update webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/frontend/feature-agent-console/src/lib/theme.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-feature-agent-console" } }, { - "id": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/README.md", + "type": "readme", "attrs": { - "method": "DELETE", - "pathOrChannel": "/admin/billing/webhooks/{id}", - "operationId": "deleteAdminWebhookEndpoint", - "summary": "Delete webhook endpoint (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/README.md", + "languageOrKind": "md", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/agent-events.mmd", + "type": "diagram", "attrs": { - "method": "POST", - "pathOrChannel": "/admin/billing/webhooks/{id}/test", - "operationId": "testAdminWebhookEndpoint", - "summary": "Send test webhook delivery (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/agent-events.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/architecture-vnc.mmd", + "type": "diagram", "attrs": { - "method": "GET", - "pathOrChannel": "/admin/billing/webhooks/{id}/deliveries", - "operationId": "listAdminWebhookDeliveries", - "summary": "List webhook deliveries (admin)", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/architecture-vnc.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/login", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/deployment-architecture.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/login", - "summary": "Client sends login command with credentials (agentId or name + password)", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/deployment-architecture.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/loginSuccess", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/lifecycle.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/loginSuccess", - "summary": "Server acknowledges successful login. After this event, chat history is automatically restored via chatMessage events.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/lifecycle.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/loginError", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/overview.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/loginError", - "summary": "Server returns login failure reason", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/overview.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/chat", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/regex-filters.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/chat", - "summary": "Client sends a chat message (requires prior login). Payload may include `responseMode` \"single\" | \"stream\" | \"sync\",\n`ephemeral` (skip `agent_messages` persistence for the turn), `continue`, `resumeSessionSuffix`, `correlationId`, `model`.\nWhen `ephemeral` is true, `chatMessage`, `chatEvent`, and `messageFilterResult` for that turn are emitted only to the\nrequesting socket (not broadcast to other clients on the same agent). Otherwise those events are broadcast to every\nsocket authenticated to the agent. The gateway forwards options to `sendMessage` as implemented in code.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/regex-filters.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/enhanceChat", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-deployment.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/enhanceChat", - "summary": "Client requests prompt improvement in an isolated session (requires prior login). Does not persist to agent chat history or broadcast chatMessage. Result is emitted only to the requesting socket as chatEnhanceResult.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-deployment.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/chatEnhanceResult", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-automation-verify.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/chatEnhanceResult", - "summary": "Unicast success envelope; data.success true with enhancedText, or data.success false with error (still success true on outer envelope)", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-automation-verify.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/generateTicketBody", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-environment.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/generateTicketBody", - "summary": "Client requests ticket body text from a title in an isolated session (requires prior login). Does not persist to agent chat history. Result is emitted only to the requesting socket as ticketBodyResult (same payload shape as chatEnhanceResult).\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-environment.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/ticketBodyResult", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-files.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/ticketBodyResult", - "summary": "Unicast result for generateTicketBody; same envelope as ChatEnhanceResult (enhancedText holds generated body).", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-files.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/chatMessage", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-vcs.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/chatMessage", - "summary": "Emits standardized chat line envelopes (`success` + `data` + `timestamp`). Normally broadcast to all clients\nauthenticated to the same agent; for a `chat` request with `ephemeral: true`, user/agent lines for that turn are\nunicast to the requesting socket only. After successful login, chat history is replayed as `chatMessage` events in\nchronological order to the authenticating client only.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-vcs.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/chatEvent", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/chatEvent", - "summary": "Structured chat events (streaming deltas, tool calls/results, questions, final assistant messages). Normally broadcast to all clients authenticated to the same agent; for an ephemeral chat turn, events for that turn are emitted only to the requesting socket. Additive; does not replace chatMessage.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/messageFilterResult", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-vnc-setup.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/messageFilterResult", - "summary": "Filter outcome for incoming or outgoing messages. Follows the same broadcast vs ephemeral unicast rules as chatMessage: when the related `chat` request had `ephemeral: true`, results for that turn go only to the requesting socket.\n", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-vnc-setup.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/error", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-auth-logs.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/error", - "summary": "Generic error messages for unauthorized or processing failures", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-auth-logs.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/fileUpdate", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-chat.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/fileUpdate", - "summary": "Client sends file update notification (requires prior login). Broadcasts to all clients authenticated to the same agent.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-chat.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/fileUpdateNotification", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-container-stats.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/fileUpdateNotification", - "summary": "Server broadcasts file update notifications to all clients authenticated to the same agent. Includes socket ID to identify the source of the update.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-container-stats.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/logout", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-file-update.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/logout", - "summary": "Client sends logout command to end authenticated session", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-file-update.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/logoutSuccess", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-terminal.mmd", + "type": "diagram", "attrs": { - "pathOrChannel": "agents/logoutSuccess", - "summary": "Server acknowledges successful logout", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-terminal.mmd", + "languageOrKind": "mmd", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/createTerminal", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "type": "asyncapi", "attrs": { - "pathOrChannel": "agents/createTerminal", - "summary": "Client sends create terminal command (requires prior login). Creates a new TTY session for the agent's container.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "languageOrKind": "asyncapi", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/terminalCreated", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "type": "openapi", "attrs": { - "pathOrChannel": "agents/terminalCreated", - "summary": "Server acknowledges successful terminal creation. Terminal session is client-specific (socket.id based).", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "languageOrKind": "openapi", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/terminalInput", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-deployments.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "agents/terminalInput", - "summary": "Client sends input data to a terminal session (requires prior login). Only the socket that created the session can send input.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-deployments.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/terminalOutput", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-environment-variables.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "agents/terminalOutput", - "summary": "Server sends terminal output data to the client. Emitted whenever the terminal session produces output.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-environment-variables.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/closeTerminal", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-files.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "agents/closeTerminal", - "summary": "Client sends close terminal command (requires prior login). Only the socket that created the session can close it.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-files.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/terminalClosed", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "agents/terminalClosed", - "summary": "Server acknowledges terminal closure. Also emitted when terminal session ends (e.g., exit command).", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:agents/containerStats", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "type": "controller", "attrs": { - "pathOrChannel": "agents/containerStats", - "summary": "Server broadcasts container status (running/stopped) and, when running, container statistics (CPU, memory, network, etc.) periodically to all clients authenticated to the agent. First broadcast is sent immediately after successful login, then every 15 seconds by default (CONTAINER_STATS_SCHEDULER_INTERVAL in milliseconds on the agent-manager) while clients remain authenticated. When the container is stopped, stats is null but status is always present.", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-vcs.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/agents", - "operationId": "listAgents", - "summary": "List agents", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-vcs.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-verification.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/agents", - "operationId": "createAgent", - "summary": "Create agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-verification.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "type": "controller", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{id}", - "operationId": "getAgent", - "summary": "Get agent by id", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", + "type": "controller", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{id}", - "operationId": "updateAgent", - "summary": "Update agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/agents/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", + "type": "controller", "attrs": { - "method": "DELETE", - "pathOrChannel": "/agents/{id}", - "operationId": "deleteAgent", - "summary": "Delete agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{id}/start", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/agent-models-response.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{id}/start", - "operationId": "startAgent", - "summary": "Start agent environment", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/agent-models-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{id}/stop", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/agent-response.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{id}/stop", - "operationId": "stopAgent", - "summary": "Stop agent environment", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/agent-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{id}/restart", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/commit.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{id}/restart", - "operationId": "restartAgent", - "summary": "Restart agent environment", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/commit.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{id}/models", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/config-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{id}/models", - "operationId": "listAgentModels", - "summary": "List models for an agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/config-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents-filters", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-agent-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents-filters", - "operationId": "listRegexFilterRules", - "summary": "List regex filter rules", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-agent-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents-filters", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-agent.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents-filters", - "operationId": "createRegexFilterRule", - "summary": "Create regex filter rule", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-agent.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents-filters/count", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-branch.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents-filters/count", - "operationId": "countRegexFilterRules", - "summary": "Count regex filter rules", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-branch.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents-filters/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-environment-variable.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents-filters/{id}", - "operationId": "getRegexFilterRule", - "summary": "Get regex filter rule by id", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-environment-variable.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:PUT:/agents-filters/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-file.dto.ts", + "type": "dto", "attrs": { - "method": "PUT", - "pathOrChannel": "/agents-filters/{id}", - "operationId": "updateRegexFilterRule", - "summary": "Update regex filter rule", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-file.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/agents-filters/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-regex-filter-rule.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/agents-filters/{id}", - "operationId": "deleteRegexFilterRule", - "summary": "Delete regex filter rule", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-regex-filter-rule.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/config", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/deployment-configuration.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/config", - "operationId": "getConfig", - "summary": "Get configuration parameters", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/deployment-configuration.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/files", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/deployment-run.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/files", - "operationId": "listDirectory", - "summary": "List directory contents", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/deployment-run.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/environment-variable-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/files/{path}", - "operationId": "readFile", - "summary": "Read file content", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/environment-variable-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/file-content.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/files/{path}", - "operationId": "createFileOrDirectory", - "summary": "Create file or directory", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/file-content.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:PUT:/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/file-node.dto.ts", + "type": "dto", "attrs": { - "method": "PUT", - "pathOrChannel": "/agents/{agentId}/files/{path}", - "operationId": "writeFile", - "summary": "Write file content", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/file-node.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-branch.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/agents/{agentId}/files/{path}", - "operationId": "deleteFileOrDirectory", - "summary": "Delete file or directory", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-branch.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-diff.dto.ts", + "type": "dto", "attrs": { - "method": "PATCH", - "pathOrChannel": "/agents/{agentId}/files/{path}", - "operationId": "moveFileOrDirectory", - "summary": "Move file or directory", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-diff.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/environment", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-status.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/environment", - "operationId": "listEnvironmentVariables", - "summary": "List environment variables", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-status.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/environment", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/latest-agent-message.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/environment", - "operationId": "createEnvironmentVariable", - "summary": "Create environment variable", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/latest-agent-message.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/agents/{agentId}/environment", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/move-file.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/agents/{agentId}/environment", - "operationId": "deleteAllEnvironmentVariables", - "summary": "Delete all environment variables", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/move-file.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/environment/count", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/prepare-clean-workspace.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/environment/count", - "operationId": "countEnvironmentVariables", - "summary": "Get count of environment variables", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/prepare-clean-workspace.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/push-options.dto.ts", + "type": "dto", "attrs": { - "method": "PUT", - "pathOrChannel": "/agents/{agentId}/environment/{id}", - "operationId": "updateEnvironmentVariable", - "summary": "Update environment variable", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/push-options.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/rebase.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/agents/{agentId}/environment/{id}", - "operationId": "deleteEnvironmentVariable", - "summary": "Delete environment variable", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/rebase.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/configuration-overrides", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/regex-filter-rule-response.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/configuration-overrides", - "operationId": "listWorkspaceConfigurationOverrides", - "summary": "List effective workspace configuration overrides", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/regex-filter-rule-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:PUT:/configuration-overrides/{settingKey}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/resolve-conflict.dto.ts", + "type": "dto", "attrs": { - "method": "PUT", - "pathOrChannel": "/configuration-overrides/{settingKey}", - "operationId": "upsertWorkspaceConfigurationOverride", - "summary": "Create or update a workspace configuration override", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/resolve-conflict.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/run-verifier-commands.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/configuration-overrides/{settingKey}", - "operationId": "deleteWorkspaceConfigurationOverride", - "summary": "Delete a workspace configuration override", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/run-verifier-commands.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/vcs/status", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/stage-files.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/vcs/status", - "operationId": "getGitStatus", - "summary": "Get git status", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/stage-files.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/vcs/branches", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/unstage-files.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/vcs/branches", - "operationId": "getGitBranches", - "summary": "List all branches", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/unstage-files.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/branches", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-agent.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/branches", - "operationId": "createGitBranch", - "summary": "Create a new branch", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-agent.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-environment-variable.dto.ts", + "type": "dto", "attrs": { - "method": "DELETE", - "pathOrChannel": "/agents/{agentId}/vcs/branches/{branch}", - "operationId": "deleteGitBranch", - "summary": "Delete a branch", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-environment-variable.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-regex-filter-rule.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/branches/{branch}/switch", - "operationId": "switchGitBranch", - "summary": "Switch to a branch", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-regex-filter-rule.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/vcs/diff", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/upsert-workspace-configuration-override.dto.ts", + "type": "dto", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/vcs/diff", - "operationId": "getGitFileDiff", - "summary": "Get file diff", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/upsert-workspace-configuration-override.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/stage", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/workspace-configuration-setting-response.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/stage", - "operationId": "stageFiles", - "summary": "Stage files", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/workspace-configuration-setting-response.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/write-file.dto.ts", + "type": "dto", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/unstage", - "operationId": "unstageFiles", - "summary": "Unstage files", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/write-file.dto.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/commit", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-environment-variable.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/commit", - "operationId": "commitChanges", - "summary": "Commit staged changes", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-environment-variable.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/push", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-message-event.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/push", - "operationId": "pushChanges", - "summary": "Push changes to remote", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-message-event.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/pull", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-message.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/pull", - "operationId": "pullChanges", - "summary": "Pull changes from remote", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-message.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/fetch", - "operationId": "fetchChanges", - "summary": "Fetch changes from remote", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/deployment-configuration.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/workspace/prepare-clean", - "operationId": "prepareCleanWorkspace", - "summary": "Prepare clean workspace", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/deployment-configuration.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/deployment-run.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/rebase", - "operationId": "rebaseBranch", - "summary": "Rebase current branch", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/deployment-run.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/regex-filter-rule.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/vcs/conflicts/resolve", - "operationId": "resolveConflict", - "summary": "Resolve merge conflict", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/regex-filter-rule.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/workspace-configuration-override.entity.ts", + "type": "entity", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/automation/verify-commands", - "operationId": "runVerifierCommands", - "summary": "Run verifier shell commands in the agent container", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/workspace-configuration-override.entity.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "type": "gateway", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/configuration", - "operationId": "getDeploymentConfiguration", - "summary": "Get deployment configuration for an agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/modules/agents.module.ts", + "type": "module", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/deployments/configuration", - "operationId": "upsertDeploymentConfiguration", - "summary": "Create or update deployment configuration for an agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/modules/agents.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/cursor-agent.provider.ts", + "type": "provider", "attrs": { - "method": "DELETE", - "pathOrChannel": "/agents/{agentId}/deployments/configuration", - "operationId": "deleteDeploymentConfiguration", - "summary": "Delete deployment configuration for an agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/cursor-agent.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/openclaw-agent.provider.ts", + "type": "provider", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/repositories", - "operationId": "listDeploymentRepositories", - "summary": "List repositories accessible with the agent's deployment configuration", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/openclaw-agent.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/opencode-agent.provider.ts", + "type": "provider", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/repositories/{repositoryId}/branches", - "operationId": "listDeploymentBranches", - "summary": "List branches for a repository", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/opencode-agent.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/pipelines/github.provider.ts", + "type": "provider", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", - "operationId": "listDeploymentWorkflows", - "summary": "List workflows for a repository", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/pipelines/github.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/pipelines/gitlab.provider.ts", + "type": "provider", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/deployments/workflows/trigger", - "operationId": "triggerDeploymentWorkflow", - "summary": "Trigger a workflow run", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/pipelines/gitlab.provider.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-environment-variables.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/runs", - "operationId": "listDeploymentRuns", - "summary": "List deployment runs for an agent", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-environment-variables.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-message-events.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}", - "operationId": "getDeploymentRunStatus", - "summary": "Get the status of a pipeline run", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-message-events.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-messages.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/logs", - "operationId": "getDeploymentRunLogs", - "summary": "Get logs for a pipeline run", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-messages.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agents.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/jobs", - "operationId": "listDeploymentRunJobs", - "summary": "List jobs/steps for a pipeline run", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agents.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/deployment-configurations.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", - "operationId": "getDeploymentJobLogs", - "summary": "Get logs for a specific job/step", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/deployment-configurations.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/deployment-runs.repository.ts", + "type": "repository", "attrs": { - "method": "POST", - "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/cancel", - "operationId": "cancelDeploymentRun", - "summary": "Cancel a running pipeline", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/deployment-runs.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:channel:demo/status", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/regex-filter-rules.repository.ts", + "type": "repository", "attrs": { - "pathOrChannel": "demo/status", - "operationId": "publishDemoStatus", - "summary": "Demo status channel", - "specKind": "asyncapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/regex-filter-rules.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:GET:/invoices", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/workspace-configuration-overrides.repository.ts", + "type": "repository", "attrs": { - "method": "GET", - "pathOrChannel": "/invoices", - "operationId": "listInvoices", - "summary": "List invoices", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/workspace-configuration-overrides.repository.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "api:HTTP:POST:/invoices", - "type": "endpoint", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-environment-variables.service.ts", + "type": "service", "attrs": { - "method": "POST", - "pathOrChannel": "/invoices", - "operationId": "createInvoice", - "specKind": "openapi" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-environment-variables.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-agenstra-documentation", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-file-system.service.ts", + "type": "service", "attrs": { - "title": "Agenstra Documentation", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "agenstra-documentation", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-file-system.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-what-is-agenstra", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-git-state-broadcast.service.ts", + "type": "service", "attrs": { - "title": "What is Agenstra?", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "what-is-agenstra", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-git-state-broadcast.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-documentation-structure", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-message-events.service.ts", + "type": "service", "attrs": { - "title": "Documentation Structure", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "documentation-structure", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-message-events.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-quick-start", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-messages.service.ts", + "type": "service", "attrs": { - "title": "Quick Start", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "quick-start", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-messages.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-system-architecture", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-session-hydration.service.ts", + "type": "service", "attrs": { - "title": "System Architecture", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "system-architecture", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-session-hydration.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-key-features", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-filters.service.ts", + "type": "service", "attrs": { - "title": "Key Features", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "key-features", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-filters.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-related-documentation", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-vcs.service.ts", + "type": "service", "attrs": { - "title": "Related Documentation", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "related-documentation", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-vcs.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-external-resources", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-verification.service.ts", + "type": "service", "attrs": { - "title": "External Resources", - "docPath": "docs/agenstra/README.md", - "sectionAnchor": "external-resources", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-verification.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-ai-agents-context-agenstra", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents.service.ts", + "type": "service", "attrs": { - "title": "AI Agents Context (.agenstra)", - "docPath": "docs/agenstra/ai-agents/README.md", - "sectionAnchor": "ai-agents-context-agenstra", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-overview", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/config.service.ts", + "type": "service", "attrs": { - "title": "Overview", - "docPath": "docs/agenstra/ai-agents/README.md", - "sectionAnchor": "overview", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/config.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-directory-structure", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/deployments.service.ts", + "type": "service", "attrs": { - "title": "Directory Structure", - "docPath": "docs/agenstra/ai-agents/README.md", - "sectionAnchor": "directory-structure", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/deployments.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-components", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/docker.service.ts", + "type": "service", "attrs": { - "title": "Components", - "docPath": "docs/agenstra/ai-agents/README.md", - "sectionAnchor": "components", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/docker.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-generating-tool-configs", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/prompt-context-composer.service.ts", + "type": "service", "attrs": { - "title": "Generating tool configs", - "docPath": "docs/agenstra/ai-agents/README.md", - "sectionAnchor": "generating-tool-configs", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/prompt-context-composer.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-agentctx", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/regex-filter-rules-cache.service.ts", + "type": "service", "attrs": { - "title": "AgentCTX", - "docPath": "docs/agenstra/ai-agents/agentctx.md", - "sectionAnchor": "agentctx", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/regex-filter-rules-cache.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-purpose", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/regex-filter-rules-evaluate.service.ts", + "type": "service", "attrs": { - "title": "Purpose", - "docPath": "docs/agenstra/ai-agents/agentctx.md", - "sectionAnchor": "purpose", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/regex-filter-rules-evaluate.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-installation", - "type": "concept", + "id": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/workspace-configuration-overrides.service.ts", + "type": "service", "attrs": { - "title": "Installation", - "docPath": "docs/agenstra/ai-agents/agentctx.md", - "sectionAnchor": "installation", - "domain": "agenstra" + "path": "libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/workspace-configuration-overrides.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-feature-agent-manager" } }, { - "id": "concept:agenstra-usage", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-loading-indicator/README.md", + "type": "readme", "attrs": { - "title": "Usage", - "docPath": "docs/agenstra/ai-agents/agentctx.md", - "sectionAnchor": "usage", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-loading-indicator/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-util-loading-indicator" } }, { - "id": "concept:agenstra-related", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-loading-indicator/src/lib/standalone-loading.service.ts", + "type": "service", "attrs": { - "title": "Related", - "docPath": "docs/agenstra/ai-agents/agentctx.md", - "sectionAnchor": "related", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-loading-indicator/src/lib/standalone-loading.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-util-loading-indicator" } }, { - "id": "concept:agenstra-agents-and-subagents", - "type": "concept", + "id": "file:libs/domains/agenstra/frontend/feature-landingpage/README.md", + "type": "readme", "attrs": { - "title": "Agents and Subagents", - "docPath": "docs/agenstra/ai-agents/agents.md", - "sectionAnchor": "agents-and-subagents", - "domain": "agenstra" + "path": "libs/domains/agenstra/frontend/feature-landingpage/README.md", + "languageOrKind": "md", + "projectName": "agenstra-frontend-feature-landingpage" } }, { - "id": "concept:agenstra-structure", - "type": "concept", + "id": "file:libs/domains/agenstra/frontend/feature-landingpage/src/lib/theme.service.ts", + "type": "service", "attrs": { - "title": "Structure", - "docPath": "docs/agenstra/ai-agents/agents.md", - "sectionAnchor": "structure", - "domain": "agenstra" + "path": "libs/domains/agenstra/frontend/feature-landingpage/src/lib/theme.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-feature-landingpage" } }, { - "id": "concept:agenstra-frontmatter-properties-read-by-the-reader", - "type": "concept", + "id": "file:libs/domains/decabill/frontend/feature-landingpage/README.md", + "type": "readme", "attrs": { - "title": "Frontmatter (properties read by the reader)", - "docPath": "docs/agenstra/ai-agents/agents.md", - "sectionAnchor": "frontmatter-properties-read-by-the-reader", - "domain": "agenstra" + "path": "libs/domains/decabill/frontend/feature-landingpage/README.md", + "languageOrKind": "md", + "projectName": "decabill-frontend-feature-landingpage" } }, { - "id": "concept:agenstra-example-primary-agent", - "type": "concept", + "id": "file:libs/domains/decabill/frontend/feature-landingpage/src/lib/theme.service.ts", + "type": "service", "attrs": { - "title": "Example (primary agent)", - "docPath": "docs/agenstra/ai-agents/agents.md", - "sectionAnchor": "example-primary-agent", - "domain": "agenstra" + "path": "libs/domains/decabill/frontend/feature-landingpage/src/lib/theme.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-feature-landingpage" } }, { - "id": "concept:agenstra-example-subagent", - "type": "concept", + "id": "file:libs/domains/forepath/frontend/feature-landingpage/README.md", + "type": "readme", "attrs": { - "title": "Example (subagent)", - "docPath": "docs/agenstra/ai-agents/agents.md", - "sectionAnchor": "example-subagent", - "domain": "agenstra" + "path": "libs/domains/forepath/frontend/feature-landingpage/README.md", + "languageOrKind": "md", + "projectName": "forepath-frontend-feature-landingpage" } }, { - "id": "concept:agenstra-output-by-tool", - "type": "concept", + "id": "file:libs/domains/shared/frontend/feature-notifications/README.md", + "type": "readme", "attrs": { - "title": "Output by tool", - "docPath": "docs/agenstra/ai-agents/agents.md", - "sectionAnchor": "output-by-tool", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/feature-notifications/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-feature-notifications" } }, { - "id": "concept:agenstra-commands", - "type": "concept", + "id": "file:libs/domains/agenstra/frontend/data-access-portal/README.md", + "type": "readme", "attrs": { - "title": "Commands", - "docPath": "docs/agenstra/ai-agents/commands.md", - "sectionAnchor": "commands", - "domain": "agenstra" + "path": "libs/domains/agenstra/frontend/data-access-portal/README.md", + "languageOrKind": "md", + "projectName": "agenstra-frontend-data-access-portal" } }, { - "id": "concept:agenstra-example", - "type": "concept", + "id": "file:libs/domains/agenstra/frontend/data-access-portal/src/lib/services/public-service-plan-offerings.service.ts", + "type": "service", "attrs": { - "title": "Example", - "docPath": "docs/agenstra/ai-agents/commands.md", - "sectionAnchor": "example", - "domain": "agenstra" + "path": "libs/domains/agenstra/frontend/data-access-portal/src/lib/services/public-service-plan-offerings.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-portal" } }, { - "id": "concept:agenstra-knowledge-graph", - "type": "concept", + "id": "file:libs/domains/agenstra/frontend/data-access-portal/src/lib/state/service-plans", + "type": "state", "attrs": { - "title": "Knowledge Graph", - "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", - "sectionAnchor": "knowledge-graph", - "domain": "agenstra" + "path": "libs/domains/agenstra/frontend/data-access-portal/src/lib/state/service-plans", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-data-access-portal", + "sliceName": "service-plans", + "memberFiles": [ + "service-plans.actions.ts", + "service-plans.effects.ts", + "service-plans.facade.ts", + "service-plans.reducer.ts", + "service-plans.selectors.ts" + ] } }, { - "id": "concept:agenstra-why-it-exists", - "type": "concept", + "id": "file:libs/domains/decabill/frontend/data-access-portal/README.md", + "type": "readme", "attrs": { - "title": "Why it exists", - "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", - "sectionAnchor": "why-it-exists", - "domain": "agenstra" + "path": "libs/domains/decabill/frontend/data-access-portal/README.md", + "languageOrKind": "md", + "projectName": "decabill-frontend-data-access-portal" } }, { - "id": "concept:agenstra-how-to-generate", - "type": "concept", + "id": "file:libs/domains/decabill/frontend/data-access-portal/src/lib/services/public-service-plan-offerings.service.ts", + "type": "service", "attrs": { - "title": "How to generate", - "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", - "sectionAnchor": "how-to-generate", - "domain": "agenstra" + "path": "libs/domains/decabill/frontend/data-access-portal/src/lib/services/public-service-plan-offerings.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-portal" } }, { - "id": "concept:agenstra-schema-overview", - "type": "concept", + "id": "file:libs/domains/decabill/frontend/data-access-portal/src/lib/state/service-plans", + "type": "state", "attrs": { - "title": "Schema overview", - "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", - "sectionAnchor": "schema-overview", - "domain": "agenstra" + "path": "libs/domains/decabill/frontend/data-access-portal/src/lib/state/service-plans", + "languageOrKind": "ts", + "projectName": "decabill-frontend-data-access-portal", + "sliceName": "service-plans", + "memberFiles": [ + "service-plans.actions.ts", + "service-plans.effects.ts", + "service-plans.facade.ts", + "service-plans.reducer.ts", + "service-plans.selectors.ts" + ] } }, { - "id": "concept:agenstra-using-the-graph-with-ai-tools", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/README.md", + "type": "readme", "attrs": { - "title": "Using the graph with AI tools", - "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", - "sectionAnchor": "using-the-graph-with-ai-tools", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-security", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/controllers/webhook-endpoints.controller.ts", + "type": "controller", "attrs": { - "title": "Security", - "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", - "sectionAnchor": "security", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/controllers/webhook-endpoints.controller.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-implementation", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/dto/webhook-endpoint.dto.ts", + "type": "dto", "attrs": { - "title": "Implementation", - "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", - "sectionAnchor": "implementation", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/dto/webhook-endpoint.dto.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-mcp-definitions", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/entities/email-delivery.entity.ts", + "type": "entity", "attrs": { - "title": "MCP Definitions", - "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", - "sectionAnchor": "mcp-definitions", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/entities/email-delivery.entity.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-schema-properties-read-by-the-reader", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/entities/webhook-delivery.entity.ts", + "type": "entity", "attrs": { - "title": "Schema (properties read by the reader)", - "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", - "sectionAnchor": "schema-properties-read-by-the-reader", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/entities/webhook-delivery.entity.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-example-local", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/entities/webhook-endpoint.entity.ts", + "type": "entity", "attrs": { - "title": "Example (local)", - "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", - "sectionAnchor": "example-local", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/entities/webhook-endpoint.entity.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-example-remote", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/notifications.module.ts", + "type": "module", "attrs": { - "title": "Example (remote)", - "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", - "sectionAnchor": "example-remote", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/notifications.module.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-rules", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/repositories/email-deliveries.repository.ts", + "type": "repository", "attrs": { - "title": "Rules", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "rules", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/repositories/email-deliveries.repository.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-frontmatter-metadata", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/repositories/webhook-deliveries.repository.ts", + "type": "repository", "attrs": { - "title": "Frontmatter (metadata)", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "frontmatter-metadata", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/repositories/webhook-deliveries.repository.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-content-guidelines", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/repositories/webhook-endpoints.repository.ts", + "type": "repository", "attrs": { - "title": "Content guidelines", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "content-guidelines", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/repositories/webhook-endpoints.repository.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-examples", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/email-delivery.service.ts", + "type": "service", "attrs": { - "title": "Examples", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "examples", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/services/email-delivery.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-coding-standards", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/email-notification-dispatcher.service.ts", + "type": "service", "attrs": { - "title": "Coding Standards", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "coding-standards", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/services/email-notification-dispatcher.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-conventions", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/notification-dispatcher.service.ts", + "type": "service", "attrs": { - "title": "Conventions", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "conventions", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/services/notification-dispatcher.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-project-conventions", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-delivery-retention.service.ts", + "type": "service", "attrs": { - "title": "Project Conventions", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "project-conventions", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-delivery-retention.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-typescript-standards", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-delivery.service.ts", + "type": "service", "attrs": { - "title": "TypeScript Standards", - "docPath": "docs/agenstra/ai-agents/rules.md", - "sectionAnchor": "typescript-standards", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-delivery.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-skills", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-endpoint.service.ts", + "type": "service", "attrs": { - "title": "Skills", - "docPath": "docs/agenstra/ai-agents/skills.md", - "sectionAnchor": "skills", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-endpoint.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-notifications" } }, { - "id": "concept:agenstra-design-patterns", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-network-address/README.md", + "type": "readme", "attrs": { - "title": "Design Patterns", - "docPath": "docs/agenstra/ai-agents/skills.md", - "sectionAnchor": "design-patterns", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-network-address/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-network-address" } }, { - "id": "concept:agenstra-factory-pattern", - "type": "concept", + "id": "file:libs/domains/shared/frontend/feature-landingpage/README.md", + "type": "readme", "attrs": { - "title": "Factory Pattern", - "docPath": "docs/agenstra/ai-agents/skills.md", - "sectionAnchor": "factory-pattern", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/feature-landingpage/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-feature-landingpage" } }, { - "id": "concept:agenstra-api-reference", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-cookie-consent/README.md", + "type": "readme", "attrs": { - "title": "API Reference", - "docPath": "docs/agenstra/api-reference/README.md", - "sectionAnchor": "api-reference", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-cookie-consent/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-util-cookie-consent" } }, { - "id": "concept:agenstra-agent-controller-api", - "type": "concept", + "id": "file:libs/domains/identity/frontend/data-access-auth/README.md", + "type": "readme", "attrs": { - "title": "Agent Controller API", - "docPath": "docs/agenstra/api-reference/README.md", - "sectionAnchor": "agent-controller-api", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/data-access-auth/README.md", + "languageOrKind": "md", + "projectName": "identity-frontend-data-access-auth" } }, { - "id": "concept:agenstra-agent-manager-api", - "type": "concept", + "id": "file:libs/domains/identity/frontend/data-access-auth/src/lib/services/auth.service.ts", + "type": "service", "attrs": { - "title": "Agent Manager API", - "docPath": "docs/agenstra/api-reference/README.md", - "sectionAnchor": "agent-manager-api", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/data-access-auth/src/lib/services/auth.service.ts", + "languageOrKind": "ts", + "projectName": "identity-frontend-data-access-auth" } }, { - "id": "concept:agenstra-using-the-specifications", - "type": "concept", + "id": "file:libs/domains/identity/frontend/data-access-auth/src/lib/state/authentication", + "type": "state", "attrs": { - "title": "Using the Specifications", - "docPath": "docs/agenstra/api-reference/README.md", - "sectionAnchor": "using-the-specifications", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/data-access-auth/src/lib/state/authentication", + "languageOrKind": "ts", + "projectName": "identity-frontend-data-access-auth", + "sliceName": "authentication", + "memberFiles": [ + "authentication.actions.ts", + "authentication.effects.ts", + "authentication.facade.ts", + "authentication.reducer.ts", + "authentication.selectors.ts", + "authentication.types.ts" + ] } }, { - "id": "concept:agenstra-generated-client-packages", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-configuration/README.md", + "type": "readme", "attrs": { - "title": "Generated Client Packages", - "docPath": "docs/agenstra/api-reference/README.md", - "sectionAnchor": "generated-client-packages", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-configuration/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-util-configuration" } }, { - "id": "concept:agenstra-applications-documentation", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-configuration/src/lib/locale.service.ts", + "type": "service", "attrs": { - "title": "Applications Documentation", - "docPath": "docs/agenstra/applications/README.md", - "sectionAnchor": "applications-documentation", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-configuration/src/lib/locale.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-util-configuration" } }, { - "id": "concept:agenstra-applications", - "type": "concept", + "id": "file:libs/domains/shared/shared/util-network-address/README.md", + "type": "readme", "attrs": { - "title": "Applications", - "docPath": "docs/agenstra/applications/README.md", - "sectionAnchor": "applications", - "domain": "agenstra" + "path": "libs/domains/shared/shared/util-network-address/README.md", + "languageOrKind": "md", + "projectName": "shared-shared-util-network-address" } }, { - "id": "concept:agenstra-application-relationships", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-monitoring/README.md", + "type": "readme", "attrs": { - "title": "Application Relationships", - "docPath": "docs/agenstra/applications/README.md", - "sectionAnchor": "application-relationships", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-monitoring/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-feature-monitoring" } }, { - "id": "concept:agenstra-communication-patterns", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", + "type": "controller", "attrs": { - "title": "Communication Patterns", - "docPath": "docs/agenstra/applications/README.md", - "sectionAnchor": "communication-patterns", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-monitoring" } }, { - "id": "concept:agenstra-backend-agent-controller", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-monitoring/src/lib/monitoring.module.ts", + "type": "module", "attrs": { - "title": "Backend Agent Controller", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "backend-agent-controller", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-monitoring/src/lib/monitoring.module.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-feature-monitoring" } }, { - "id": "concept:agenstra-features", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-http-context/README.md", + "type": "readme", "attrs": { - "title": "Features", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "features", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-http-context/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-http-context" } }, { - "id": "concept:agenstra-architecture", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-docs-parser/README.md", + "type": "readme", "attrs": { - "title": "Architecture", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "architecture", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-docs-parser/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-util-docs-parser" } }, { - "id": "concept:agenstra-api-endpoints", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/cross-reference-resolver.service.ts", + "type": "service", "attrs": { - "title": "API Endpoints", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "api-endpoints", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-docs-parser/src/lib/services/cross-reference-resolver.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-util-docs-parser" } }, { - "id": "concept:agenstra-websocket-gateway", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/markdown-parser.service.ts", + "type": "service", "attrs": { - "title": "WebSocket Gateway", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "websocket-gateway", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-docs-parser/src/lib/services/markdown-parser.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-util-docs-parser" } }, { - "id": "concept:agenstra-authentication", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/navigation-builder.service.ts", + "type": "service", "attrs": { - "title": "Authentication", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "authentication", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-docs-parser/src/lib/services/navigation-builder.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-util-docs-parser" } }, { - "id": "concept:agenstra-rate-limiting", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/search-index-builder.service.ts", + "type": "service", "attrs": { - "title": "Rate Limiting", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "rate-limiting", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-docs-parser/src/lib/services/search-index-builder.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-util-docs-parser" } }, { - "id": "concept:agenstra-cors-configuration", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-redis-cache/README.md", + "type": "readme", "attrs": { - "title": "CORS Configuration", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "cors-configuration", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-redis-cache/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-redis-cache" } }, { - "id": "concept:agenstra-outbound-client-workspace-urls-ssrf", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-redis-cache/src/lib/redis-cache.module.ts", + "type": "module", "attrs": { - "title": "Outbound client workspace URLs (SSRF)", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "outbound-client-workspace-urls-ssrf", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-redis-cache/src/lib/redis-cache.module.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-util-redis-cache" } }, { - "id": "concept:agenstra-environment-variables", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-redis-cache/src/lib/redis-cache.service.ts", + "type": "service", "attrs": { - "title": "Environment Variables", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "environment-variables", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-redis-cache/src/lib/redis-cache.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-util-redis-cache" } }, { - "id": "concept:agenstra-database-setup", - "type": "concept", + "id": "file:libs/domains/identity/frontend/feature-auth/README.md", + "type": "readme", "attrs": { - "title": "Database Setup", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "database-setup", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/feature-auth/README.md", + "languageOrKind": "md", + "projectName": "identity-frontend-feature-auth" } }, { - "id": "concept:agenstra-docker-deployment", - "type": "concept", + "id": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/admin.guard.ts", + "type": "guard", "attrs": { - "title": "Docker Deployment", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "docker-deployment", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/feature-auth/src/lib/guards/admin.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-frontend-feature-auth" } }, { - "id": "concept:agenstra-build-api-container", - "type": "concept", + "id": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/auth.guard.ts", + "type": "guard", "attrs": { - "title": "Build API container", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "build-api-container", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/feature-auth/src/lib/guards/auth.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-frontend-feature-auth" } }, { - "id": "concept:agenstra-run-with-docker-compose-recommended", - "type": "concept", + "id": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/login.guard.ts", + "type": "guard", "attrs": { - "title": "Run with docker-compose (recommended)", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "run-with-docker-compose-recommended", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/feature-auth/src/lib/guards/login.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-frontend-feature-auth" } }, { - "id": "concept:agenstra-or-run-directly", - "type": "concept", + "id": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/signup-disabled.guard.ts", + "type": "guard", "attrs": { - "title": "Or run directly", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "or-run-directly", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/feature-auth/src/lib/guards/signup-disabled.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-frontend-feature-auth" } }, { - "id": "concept:agenstra-production-deployment-checklist", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/README.md", + "type": "readme", "attrs": { - "title": "Production Deployment Checklist", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "production-deployment-checklist", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/README.md", + "languageOrKind": "md", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-license", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "type": "controller", "attrs": { - "title": "License", - "docPath": "docs/agenstra/applications/backend-agent-controller.md", - "sectionAnchor": "license", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-backend-agent-manager", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "type": "controller", "attrs": { - "title": "Backend Agent Manager", - "docPath": "docs/agenstra/applications/backend-agent-manager.md", - "sectionAnchor": "backend-agent-manager", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-build-worker-container", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/add-client-user.dto.ts", + "type": "dto", "attrs": { - "title": "Build worker container", - "docPath": "docs/agenstra/applications/backend-agent-manager.md", - "sectionAnchor": "build-worker-container", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/add-client-user.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-build-vnc-container", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/change-password.dto.ts", + "type": "dto", "attrs": { - "title": "Build VNC container", - "docPath": "docs/agenstra/applications/backend-agent-manager.md", - "sectionAnchor": "build-vnc-container", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/change-password.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-or-run-directly-with-docker-socket-mount", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/confirm-email.dto.ts", + "type": "dto", "attrs": { - "title": "Or run directly with Docker socket mount", - "docPath": "docs/agenstra/applications/backend-agent-manager.md", - "sectionAnchor": "or-run-directly-with-docker-socket-mount", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/confirm-email.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-frontend-agent-console", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/create-user.dto.ts", + "type": "dto", "attrs": { - "title": "Frontend Agent Console", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "frontend-agent-console", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/create-user.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-state-management-ngrx", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/login.dto.ts", + "type": "dto", "attrs": { - "title": "State Management (NgRx)", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "state-management-ngrx", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/login.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-routing", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/logout.dto.ts", + "type": "dto", "attrs": { - "title": "Routing", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "routing", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/logout.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-websocket-communication", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/register.dto.ts", + "type": "dto", "attrs": { - "title": "WebSocket Communication", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "websocket-communication", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/register.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-environment-configuration", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/request-password-reset.dto.ts", + "type": "dto", "attrs": { - "title": "Environment Configuration", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "environment-configuration", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/request-password-reset.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-development", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/reset-password.dto.ts", + "type": "dto", "attrs": { - "title": "Development", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "development", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/reset-password.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-serve-the-application", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/update-user.dto.ts", + "type": "dto", "attrs": { - "title": "Serve the application", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "serve-the-application", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/update-user.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-build-for-production", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/user-response.dto.ts", + "type": "dto", "attrs": { - "title": "Build for production", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "build-for-production", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/auth/user-response.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-run-tests", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/client-user-response.dto.ts", + "type": "dto", "attrs": { - "title": "Run tests", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "run-tests", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/dto/client-user-response.dto.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-build-container", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/entities/client.entity.ts", + "type": "entity", "attrs": { - "title": "Build container", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "build-container", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/entities/client.entity.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-run-with-docker-compose", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/keycloak-auth.guard.ts", + "type": "guard", "attrs": { - "title": "Run with docker-compose", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "run-with-docker-compose", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/guards/keycloak-auth.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-production-deployment", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/keycloak-roles.guard.ts", + "type": "guard", "attrs": { - "title": "Production Deployment", - "docPath": "docs/agenstra/applications/frontend-agent-console.md", - "sectionAnchor": "production-deployment", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/guards/keycloak-roles.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-architecture-documentation", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/users-auth.guard.ts", + "type": "guard", "attrs": { - "title": "Architecture Documentation", - "docPath": "docs/agenstra/architecture/README.md", - "sectionAnchor": "architecture-documentation", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/guards/users-auth.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-key-architectural-concepts", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/users-roles.guard.ts", + "type": "guard", "attrs": { - "title": "Key Architectural Concepts", - "docPath": "docs/agenstra/architecture/README.md", - "sectionAnchor": "key-architectural-concepts", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/guards/users-roles.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-architecture-principles", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/modules/keycloak-user-sync.module.ts", + "type": "module", "attrs": { - "title": "Architecture Principles", - "docPath": "docs/agenstra/architecture/README.md", - "sectionAnchor": "architecture-principles", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/modules/keycloak-user-sync.module.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-backend-applications", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/modules/users-auth.module.ts", + "type": "module", "attrs": { - "title": "Backend Applications", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "backend-applications", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/modules/users-auth.module.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-frontend-applications", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/repositories/client-users.repository.ts", + "type": "repository", "attrs": { - "title": "Frontend Applications", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "frontend-applications", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/repositories/client-users.repository.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-backend-libraries", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/repositories/revoked-user-tokens.repository.ts", + "type": "repository", "attrs": { - "title": "Backend Libraries", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "backend-libraries", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/repositories/revoked-user-tokens.repository.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-frontend-libraries", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/repositories/users.repository.ts", + "type": "repository", "attrs": { - "title": "Frontend Libraries", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "frontend-libraries", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/repositories/users.repository.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-component-dependencies", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/services/auth.service.ts", + "type": "service", "attrs": { - "title": "Component Dependencies", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "component-dependencies", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/services/auth.service.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-database-schema", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/services/client-users.service.ts", + "type": "service", "attrs": { - "title": "Database Schema", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "database-schema", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/services/client-users.service.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-external-dependencies", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/services/keycloak-token.service.ts", + "type": "service", "attrs": { - "title": "External Dependencies", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "external-dependencies", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/services/keycloak-token.service.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-component-communication", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/services/socket-auth.service.ts", + "type": "service", "attrs": { - "title": "Component Communication", - "docPath": "docs/agenstra/architecture/components.md", - "sectionAnchor": "component-communication", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/services/socket-auth.service.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-data-flow", - "type": "concept", + "id": "file:libs/domains/identity/backend/feature-auth/src/lib/services/users.service.ts", + "type": "service", "attrs": { - "title": "Data Flow", - "docPath": "docs/agenstra/architecture/data-flow.md", - "sectionAnchor": "data-flow", - "domain": "agenstra" + "path": "libs/domains/identity/backend/feature-auth/src/lib/services/users.service.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-feature-auth" } }, { - "id": "concept:agenstra-http-rest-api-flow", - "type": "concept", + "id": "file:libs/domains/shared/frontend/feature-docs/README.md", + "type": "readme", "attrs": { - "title": "HTTP REST API Flow", - "docPath": "docs/agenstra/architecture/data-flow.md", - "sectionAnchor": "http-rest-api-flow", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/feature-docs/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-feature-docs" } }, { - "id": "concept:agenstra-websocket-event-flow", - "type": "concept", + "id": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/docs-content.service.ts", + "type": "service", "attrs": { - "title": "WebSocket Event Flow", - "docPath": "docs/agenstra/architecture/data-flow.md", - "sectionAnchor": "websocket-event-flow", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/feature-docs/src/lib/services/docs-content.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-feature-docs" } }, { - "id": "concept:agenstra-state-management-flow-ngrx", - "type": "concept", + "id": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/docs-navigation.service.ts", + "type": "service", "attrs": { - "title": "State Management Flow (NgRx)", - "docPath": "docs/agenstra/architecture/data-flow.md", - "sectionAnchor": "state-management-flow-ngrx", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/feature-docs/src/lib/services/docs-navigation.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-feature-docs" } }, { - "id": "concept:agenstra-file-system-operations-flow", - "type": "concept", + "id": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/docs-search.service.ts", + "type": "service", "attrs": { - "title": "File System Operations Flow", - "docPath": "docs/agenstra/architecture/data-flow.md", - "sectionAnchor": "file-system-operations-flow", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/feature-docs/src/lib/services/docs-search.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-feature-docs" } }, { - "id": "concept:agenstra-version-control-operations-flow", - "type": "concept", + "id": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/theme.service.ts", + "type": "service", "attrs": { - "title": "Version Control Operations Flow", - "docPath": "docs/agenstra/architecture/data-flow.md", - "sectionAnchor": "version-control-operations-flow", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/feature-docs/src/lib/services/theme.service.ts", + "languageOrKind": "ts", + "projectName": "shared-frontend-feature-docs" } }, { - "id": "concept:agenstra-server-provisioning-flow", - "type": "concept", + "id": "file:libs/domains/identity/frontend/util-auth/README.md", + "type": "readme", "attrs": { - "title": "Server Provisioning Flow", - "docPath": "docs/agenstra/architecture/data-flow.md", - "sectionAnchor": "server-provisioning-flow", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/util-auth/README.md", + "languageOrKind": "md", + "projectName": "identity-frontend-util-auth" } }, { - "id": "concept:agenstra-system-overview", - "type": "concept", + "id": "file:libs/domains/identity/frontend/util-auth/src/lib/guards/keycloak.guard.ts", + "type": "guard", "attrs": { - "title": "System Overview", - "docPath": "docs/agenstra/architecture/system-overview.md", - "sectionAnchor": "system-overview", - "domain": "agenstra" + "path": "libs/domains/identity/frontend/util-auth/src/lib/guards/keycloak.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-frontend-util-auth" } }, { - "id": "concept:agenstra-three-tier-architecture", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-webhook/README.md", + "type": "readme", "attrs": { - "title": "Three-Tier Architecture", - "docPath": "docs/agenstra/architecture/system-overview.md", - "sectionAnchor": "three-tier-architecture", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-webhook/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-webhook" } }, { - "id": "concept:agenstra-component-relationships", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-webhook/src/lib/webhook-signature.service.ts", + "type": "service", "attrs": { - "title": "Component Relationships", - "docPath": "docs/agenstra/architecture/system-overview.md", - "sectionAnchor": "component-relationships", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-webhook/src/lib/webhook-signature.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-util-webhook" } }, { - "id": "concept:agenstra-authentication-flow", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/README.md", + "type": "readme", "attrs": { - "title": "Authentication Flow", - "docPath": "docs/agenstra/architecture/system-overview.md", - "sectionAnchor": "authentication-flow", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/README.md", + "languageOrKind": "md", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-state-management", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/bull-board-throttler.guard.ts", + "type": "guard", "attrs": { - "title": "State Management", - "docPath": "docs/agenstra/architecture/system-overview.md", - "sectionAnchor": "state-management", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/bull-board-throttler.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-reconnection-handling", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/entities/client-user.entity.ts", + "type": "entity", "attrs": { - "title": "Reconnection Handling", - "docPath": "docs/agenstra/architecture/system-overview.md", - "sectionAnchor": "reconnection-handling", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/entities/client-user.entity.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-deployment-documentation", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/entities/revoked-user-token.entity.ts", + "type": "entity", "attrs": { - "title": "Deployment Documentation", - "docPath": "docs/agenstra/deployment/README.md", - "sectionAnchor": "deployment-documentation", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/entities/revoked-user-token.entity.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-deployment-guides", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/entities/user.entity.ts", + "type": "entity", "attrs": { - "title": "Deployment Guides", - "docPath": "docs/agenstra/deployment/README.md", - "sectionAnchor": "deployment-guides", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/entities/user.entity.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-deployment-architecture", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/hybrid-auth.guard.ts", + "type": "guard", "attrs": { - "title": "Deployment Architecture", - "docPath": "docs/agenstra/deployment/README.md", - "sectionAnchor": "deployment-architecture", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/hybrid-auth.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-start-all-services", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/keycloak.guard.ts", + "type": "guard", "attrs": { - "title": "Start all services", - "docPath": "docs/agenstra/deployment/README.md", - "sectionAnchor": "start-all-services", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/keycloak.guard.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-install-dependencies", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/keycloak.module.ts", + "type": "module", "attrs": { - "title": "Install dependencies", - "docPath": "docs/agenstra/deployment/README.md", - "sectionAnchor": "install-dependencies", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/keycloak.module.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-start-services", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/keycloak.service.ts", + "type": "service", "attrs": { - "title": "Start services", - "docPath": "docs/agenstra/deployment/README.md", - "sectionAnchor": "start-services", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/keycloak.service.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-background-jobs-bullmq", - "type": "concept", + "id": "file:libs/domains/identity/backend/util-auth/src/lib/password.service.ts", + "type": "service", "attrs": { - "title": "Background jobs (BullMQ)", - "docPath": "docs/agenstra/deployment/background-jobs.md", - "sectionAnchor": "background-jobs-bullmq", - "domain": "agenstra" + "path": "libs/domains/identity/backend/util-auth/src/lib/password.service.ts", + "languageOrKind": "ts", + "projectName": "identity-backend-util-auth" } }, { - "id": "concept:agenstra-redis-and-queue-environment-variables", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-crypto/README.md", + "type": "readme", "attrs": { - "title": "Redis and queue environment variables", - "docPath": "docs/agenstra/deployment/background-jobs.md", - "sectionAnchor": "redis-and-queue-environment-variables", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-crypto/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-crypto" } }, { - "id": "concept:agenstra-docker-compose", - "type": "concept", + "id": "file:apps/agenstra/backend-agent-controller/README.md", + "type": "readme", "attrs": { - "title": "Docker Compose", - "docPath": "docs/agenstra/deployment/background-jobs.md", - "sectionAnchor": "docker-compose", - "domain": "agenstra" + "path": "apps/agenstra/backend-agent-controller/README.md", + "languageOrKind": "md", + "projectName": "agenstra-backend-agent-controller" } }, { - "id": "concept:agenstra-bull-board", - "type": "concept", + "id": "file:apps/agenstra/backend-agent-controller/src/app/app.module.ts", + "type": "module", "attrs": { - "title": "Bull Board", - "docPath": "docs/agenstra/deployment/background-jobs.md", - "sectionAnchor": "bull-board", - "domain": "agenstra" + "path": "apps/agenstra/backend-agent-controller/src/app/app.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-agent-controller" } }, { - "id": "concept:agenstra-prerequisites", - "type": "concept", + "id": "file:apps/agenstra/backend-agent-controller/src/queue/controller-queue-registrar.service.ts", + "type": "service", "attrs": { - "title": "Prerequisites", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "prerequisites", - "domain": "agenstra" + "path": "apps/agenstra/backend-agent-controller/src/queue/controller-queue-registrar.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-agent-controller" } }, { - "id": "concept:agenstra-docker-compose-setup", - "type": "concept", + "id": "file:apps/agenstra/backend-agent-controller/src/queue/controller-queue.module.ts", + "type": "module", "attrs": { - "title": "Docker Compose Setup", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "docker-compose-setup", - "domain": "agenstra" + "path": "apps/agenstra/backend-agent-controller/src/queue/controller-queue.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-agent-controller" } }, { - "id": "concept:agenstra-container-configuration", - "type": "concept", + "id": "file:apps/agenstra/backend-agent-controller/src/queue/processors/controller-jobs.processor.ts", + "type": "provider", "attrs": { - "title": "Container Configuration", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "container-configuration", - "domain": "agenstra" + "path": "apps/agenstra/backend-agent-controller/src/queue/processors/controller-jobs.processor.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-agent-controller" } }, { - "id": "concept:agenstra-building-containers", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-email/README.md", + "type": "readme", "attrs": { - "title": "Building Containers", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "building-containers", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-email/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-email" } }, { - "id": "concept:agenstra-agent-controller", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-email/src/lib/email-template-renderer.service.ts", + "type": "service", "attrs": { - "title": "Agent Controller", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "agent-controller", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-email/src/lib/email-template-renderer.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-util-email" } }, { - "id": "concept:agenstra-agent-manager", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-email/src/lib/email.service.ts", + "type": "service", "attrs": { - "title": "Agent Manager", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "agent-manager", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-email/src/lib/email.service.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-util-email" } }, { - "id": "concept:agenstra-running-containers", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-queue/README.md", + "type": "readme", "attrs": { - "title": "Running Containers", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "running-containers", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-queue/README.md", + "languageOrKind": "md", + "projectName": "shared-backend-util-queue" } }, { - "id": "concept:agenstra-view-logs", - "type": "concept", + "id": "file:libs/domains/shared/backend/util-queue/src/lib/queue.module.ts", + "type": "module", "attrs": { - "title": "View logs", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "view-logs", - "domain": "agenstra" + "path": "libs/domains/shared/backend/util-queue/src/lib/queue.module.ts", + "languageOrKind": "ts", + "projectName": "shared-backend-util-queue" } }, { - "id": "concept:agenstra-stop-services", - "type": "concept", + "id": "file:libs/domains/shared/frontend/util-meta/README.md", + "type": "readme", "attrs": { - "title": "Stop services", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "stop-services", - "domain": "agenstra" + "path": "libs/domains/shared/frontend/util-meta/README.md", + "languageOrKind": "md", + "projectName": "shared-frontend-util-meta" } }, { - "id": "concept:agenstra-stop-and-remove-volumes", - "type": "concept", + "id": "file:apps/decabill/backend-billing-manager/src/app/app.module.ts", + "type": "module", "attrs": { - "title": "Stop and remove volumes", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "stop-and-remove-volumes", - "domain": "agenstra" + "path": "apps/decabill/backend-billing-manager/src/app/app.module.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-billing-manager" } }, { - "id": "concept:agenstra-run-agent-controller", - "type": "concept", + "id": "file:apps/decabill/backend-billing-manager/src/queue/billing-queue-registrar.service.ts", + "type": "service", "attrs": { - "title": "Run agent controller", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "run-agent-controller", - "domain": "agenstra" + "path": "apps/decabill/backend-billing-manager/src/queue/billing-queue-registrar.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-billing-manager" } }, { - "id": "concept:agenstra-run-agent-manager-with-docker-socket", - "type": "concept", + "id": "file:apps/decabill/backend-billing-manager/src/queue/billing-queue.module.ts", + "type": "module", "attrs": { - "title": "Run agent manager (with Docker socket)", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "run-agent-manager-with-docker-socket", - "domain": "agenstra" + "path": "apps/decabill/backend-billing-manager/src/queue/billing-queue.module.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-billing-manager" } }, { - "id": "concept:agenstra-run-frontend-agent-console", - "type": "concept", + "id": "file:apps/decabill/backend-billing-manager/src/queue/processors/billing-jobs.processor.ts", + "type": "provider", "attrs": { - "title": "Run frontend agent console", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "run-frontend-agent-console", - "domain": "agenstra" + "path": "apps/decabill/backend-billing-manager/src/queue/processors/billing-jobs.processor.ts", + "languageOrKind": "ts", + "projectName": "decabill-backend-billing-manager" } }, { - "id": "concept:agenstra-docker-socket-mount", - "type": "concept", + "id": "file:apps/agenstra/backend-agent-manager/README.md", + "type": "readme", "attrs": { - "title": "Docker Socket Mount", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "docker-socket-mount", - "domain": "agenstra" + "path": "apps/agenstra/backend-agent-manager/README.md", + "languageOrKind": "md", + "projectName": "agenstra-backend-agent-manager" } }, { - "id": "concept:agenstra-health-checks", - "type": "concept", + "id": "file:apps/agenstra/backend-agent-manager/src/app/app.module.ts", + "type": "module", "attrs": { - "title": "Health Checks", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "health-checks", - "domain": "agenstra" + "path": "apps/agenstra/backend-agent-manager/src/app/app.module.ts", + "languageOrKind": "ts", + "projectName": "agenstra-backend-agent-manager" } }, { - "id": "concept:agenstra-logging", - "type": "concept", + "id": "file:apps/forepath/backend-communication/README.md", + "type": "readme", "attrs": { - "title": "Logging", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "logging", - "domain": "agenstra" + "path": "apps/forepath/backend-communication/README.md", + "languageOrKind": "md", + "projectName": "forepath-backend-communication" } }, { - "id": "concept:agenstra-all-services", - "type": "concept", + "id": "file:apps/forepath/backend-communication/src/app/app.module.ts", + "type": "module", "attrs": { - "title": "All services", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "all-services", - "domain": "agenstra" + "path": "apps/forepath/backend-communication/src/app/app.module.ts", + "languageOrKind": "ts", + "projectName": "forepath-backend-communication" } }, { - "id": "concept:agenstra-specific-service", - "type": "concept", + "id": "file:apps/shared/platform-authentication/README.md", + "type": "readme", "attrs": { - "title": "Specific service", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "specific-service", - "domain": "agenstra" + "path": "apps/shared/platform-authentication/README.md", + "languageOrKind": "md", + "projectName": "shared-platform-authentication" } }, { - "id": "concept:agenstra-last-100-lines", - "type": "concept", + "id": "file:apps/agenstra/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "type": "service", "attrs": { - "title": "Last 100 lines", - "docPath": "docs/agenstra/deployment/docker-deployment.md", - "sectionAnchor": "last-100-lines", - "domain": "agenstra" + "path": "apps/agenstra/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "languageOrKind": "ts", + "projectName": "agenstra-frontend-landingpage" } }, { - "id": "concept:agenstra-frontend-applications-express-ssr", - "type": "concept", + "id": "file:apps/decabill/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "type": "service", "attrs": { - "title": "Frontend applications (Express SSR)", - "docPath": "docs/agenstra/deployment/environment-configuration.md", - "sectionAnchor": "frontend-applications-express-ssr", - "domain": "agenstra" + "path": "apps/decabill/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "languageOrKind": "ts", + "projectName": "decabill-frontend-landingpage" } }, { - "id": "concept:agenstra-redis-and-bullmq-background-jobs", - "type": "concept", + "id": "file:apps/forepath/frontend-landingpage/public/assets/models/qwen2.5-1.5b-instruct/README.md", + "type": "readme", "attrs": { - "title": "Redis and BullMQ (background jobs)", - "docPath": "docs/agenstra/deployment/environment-configuration.md", - "sectionAnchor": "redis-and-bullmq-background-jobs", - "domain": "agenstra" + "path": "apps/forepath/frontend-landingpage/public/assets/models/qwen2.5-1.5b-instruct/README.md", + "languageOrKind": "md", + "projectName": "forepath-frontend-landingpage" } }, { - "id": "concept:agenstra-environment-specific-defaults", - "type": "concept", + "id": "file:apps/forepath/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "type": "service", "attrs": { - "title": "Environment-Specific Defaults", - "docPath": "docs/agenstra/deployment/environment-configuration.md", - "sectionAnchor": "environment-specific-defaults", - "domain": "agenstra" + "path": "apps/forepath/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "languageOrKind": "ts", + "projectName": "forepath-frontend-landingpage" } }, { - "id": "concept:agenstra-local-development", - "type": "concept", + "id": "file:tools/release-integrity/README.md", + "type": "readme", "attrs": { - "title": "Local Development", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "local-development", - "domain": "agenstra" + "path": "tools/release-integrity/README.md", + "languageOrKind": "md", + "projectName": "release-integrity" } }, { - "id": "concept:agenstra-start-postgresql", - "type": "concept", + "id": "file:tools/graph/README.md", + "type": "readme", "attrs": { - "title": "Start PostgreSQL", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "start-postgresql", - "domain": "agenstra" + "path": "tools/graph/README.md", + "languageOrKind": "md", + "projectName": "graph" } }, { - "id": "concept:agenstra-configuration", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/demo-api.module.ts", + "type": "module", "attrs": { - "title": "Configuration", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "configuration", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/demo-api.module.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-database", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/dto/create-invoice.dto.ts", + "type": "dto", "attrs": { - "title": "Database", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "database", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/dto/create-invoice.dto.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-authentication-choose-one", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/entities/invoice.entity.ts", + "type": "entity", "attrs": { - "title": "Authentication (choose one)", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "authentication-choose-one", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/entities/invoice.entity.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-or-keycloak", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "type": "gateway", "attrs": { - "title": "OR Keycloak", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "or-keycloak", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-keycloak-auth-server-url-http-localhost-8380", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/guards/tenant-user.guard.ts", + "type": "guard", "attrs": { - "title": "KEYCLOAK_AUTH_SERVER_URL=http://localhost:8380", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "keycloak-auth-server-url-http-localhost-8380", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/guards/tenant-user.guard.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-keycloak-realm-agenstra", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "type": "controller", "attrs": { - "title": "KEYCLOAK_REALM=agenstra", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "keycloak-realm-agenstra", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-keycloak-client-id-agent-controller", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts", + "type": "provider", "attrs": { - "title": "KEYCLOAK_CLIENT_ID=agent-controller", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "keycloak-client-id-agent-controller", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-keycloak-client-secret-your-client-secret", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/providers/demo-cloud.provider.ts", + "type": "provider", "attrs": { - "title": "KEYCLOAK_CLIENT_SECRET=your-client-secret", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "keycloak-client-secret-your-client-secret", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/providers/demo-cloud.provider.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-optional-keycloak-server-url-if-different-from-auth-server-url", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/repositories/invoices.repository.ts", + "type": "repository", "attrs": { - "title": "Optional: KEYCLOAK_SERVER_URL if different from auth server URL", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "optional-keycloak-server-url-if-different-from-auth-server-url", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/repositories/invoices.repository.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-optional-keycloak-token-validation-online-default-or-offline", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoice-overdue.job-handler.ts", + "type": "job", "attrs": { - "title": "Optional: KEYCLOAK_TOKEN_VALIDATION=ONLINE (default) or OFFLINE", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "optional-keycloak-token-validation-online-default-or-offline", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoice-overdue.job-handler.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-ports", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts", + "type": "service", "attrs": { - "title": "Ports", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "ports", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-cors-for-development", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/docs/demo/billing.md", + "type": "readme", "attrs": { - "title": "CORS (for development)", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "cors-for-development", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/docs/demo/billing.md", + "languageOrKind": "md", + "projectName": "graph" } }, { - "id": "concept:agenstra-rate-limiting-disabled-for-development", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", + "type": "asyncapi", "attrs": { - "title": "Rate Limiting (disabled for development)", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "rate-limiting-disabled-for-development", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", + "languageOrKind": "asyncapi", + "projectName": "graph" } }, { - "id": "concept:agenstra-cors", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", + "type": "openapi", "attrs": { - "title": "CORS", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "cors", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", + "languageOrKind": "openapi", + "projectName": "graph" } }, { - "id": "concept:agenstra-git-repository-optional", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts", + "type": "service", "attrs": { - "title": "Git Repository (optional)", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "git-repository-optional", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts", + "languageOrKind": "ts", + "projectName": "graph" } }, { - "id": "concept:agenstra-cursor-agent", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices", + "type": "state", "attrs": { - "title": "Cursor Agent", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "cursor-agent", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices", + "languageOrKind": "ts", + "projectName": "graph", + "sliceName": "invoices", + "memberFiles": [ + "invoices.actions.ts", + "invoices.effects.ts", + "invoices.reducer.ts", + "invoices.selectors.ts" + ] } }, { - "id": "concept:agenstra-running-applications", - "type": "concept", + "id": "file:tools/code/README.md", + "type": "readme", "attrs": { - "title": "Running Applications", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "running-applications", - "domain": "agenstra" + "path": "tools/code/README.md", + "languageOrKind": "md", + "projectName": "code" } }, { - "id": "concept:agenstra-terminal-1-agent-controller", - "type": "concept", + "id": "file:tools/ai/README.md", + "type": "readme", "attrs": { - "title": "Terminal 1: Agent Controller", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "terminal-1-agent-controller", - "domain": "agenstra" + "path": "tools/ai/README.md", + "languageOrKind": "md", + "projectName": "ai" } }, { - "id": "concept:agenstra-terminal-2-agent-manager", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-issued", + "type": "email", "attrs": { - "title": "Terminal 2: Agent Manager", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "terminal-2-agent-manager", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-issued", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "invoice-issued", + "memberFiles": [ + "invoice-issued.template.html", + "invoice-issued.template.txt" + ] } }, { - "id": "concept:agenstra-terminal-3-frontend", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-partial-credit", + "type": "email", "attrs": { - "title": "Terminal 3: Frontend", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "terminal-3-frontend", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-partial-credit", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "invoice-partial-credit", + "memberFiles": [ + "invoice-partial-credit.template.html", + "invoice-partial-credit.template.txt" + ] } }, { - "id": "concept:agenstra-development-workflow", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-voided", + "type": "email", "attrs": { - "title": "Development Workflow", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "development-workflow", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-voided", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "invoice-voided", + "memberFiles": [ + "invoice-voided.template.html", + "invoice-voided.template.txt" + ] } }, { - "id": "concept:agenstra-run-all-tests", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/payment-failed", + "type": "email", "attrs": { - "title": "Run all tests", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "run-all-tests", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/payment-failed", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "payment-failed", + "memberFiles": [ + "payment-failed.template.html", + "payment-failed.template.txt" + ] } }, { - "id": "concept:agenstra-run-tests-for-specific-project", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/payment-succeeded", + "type": "email", "attrs": { - "title": "Run tests for specific project", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "run-tests-for-specific-project", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/payment-succeeded", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "payment-succeeded", + "memberFiles": [ + "payment-succeeded.template.html", + "payment-succeeded.template.txt" + ] } }, { - "id": "concept:agenstra-run-tests-with-coverage", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/subscription-canceled", + "type": "email", "attrs": { - "title": "Run tests with coverage", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "run-tests-with-coverage", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/subscription-canceled", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "subscription-canceled", + "memberFiles": [ + "subscription-canceled.template.html", + "subscription-canceled.template.txt" + ] } }, { - "id": "concept:agenstra-build-all-projects", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/subscription-renewal-reminder", + "type": "email", "attrs": { - "title": "Build all projects", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "build-all-projects", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/subscription-renewal-reminder", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "subscription-renewal-reminder", + "memberFiles": [ + "subscription-renewal-reminder.template.html", + "subscription-renewal-reminder.template.txt" + ] } }, { - "id": "concept:agenstra-build-specific-project", - "type": "concept", + "id": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/withdrawal-confirmation", + "type": "email", "attrs": { - "title": "Build specific project", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "build-specific-project", - "domain": "agenstra" + "path": "libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/withdrawal-confirmation", + "languageOrKind": "template", + "projectName": "decabill-backend-feature-billing-manager", + "templateName": "withdrawal-confirmation", + "memberFiles": [ + "withdrawal-confirmation.template.html", + "withdrawal-confirmation.template.txt" + ] } }, { - "id": "concept:agenstra-docker-for-agent-containers", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/templates/email-confirmation", + "type": "email", "attrs": { - "title": "Docker for Agent Containers", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "docker-for-agent-containers", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/templates/email-confirmation", + "languageOrKind": "template", + "projectName": "shared-backend-feature-notifications", + "templateName": "email-confirmation", + "memberFiles": [ + "email-confirmation.template.html", + "email-confirmation.template.txt" + ] } }, { - "id": "concept:agenstra-check-docker-status", - "type": "concept", + "id": "file:libs/domains/shared/backend/feature-notifications/src/lib/templates/password-reset", + "type": "email", "attrs": { - "title": "Check Docker status", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "check-docker-status", - "domain": "agenstra" + "path": "libs/domains/shared/backend/feature-notifications/src/lib/templates/password-reset", + "languageOrKind": "template", + "projectName": "shared-backend-feature-notifications", + "templateName": "password-reset", + "memberFiles": [ + "password-reset.template.html", + "password-reset.template.txt" + ] } }, { - "id": "concept:agenstra-start-docker-if-not-running", - "type": "concept", + "id": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued", + "type": "email", "attrs": { - "title": "Start Docker (if not running)", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "start-docker-if-not-running", - "domain": "agenstra" + "path": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued", + "languageOrKind": "template", + "projectName": "graph", + "templateName": "invoice-issued", + "memberFiles": [ + "invoice-issued.template.html", + "invoice-issued.template.txt" + ] } }, { - "id": "concept:agenstra-macos-open-docker-desktop", - "type": "concept", + "id": "file:docs/agenstra/README.md", + "type": "doc", "attrs": { - "title": "macOS: Open Docker Desktop", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "macos-open-docker-desktop", - "domain": "agenstra" + "path": "docs/agenstra/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-linux-sudo-systemctl-start-docker", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/README.md", + "type": "doc", "attrs": { - "title": "Linux: sudo systemctl start docker", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "linux-sudo-systemctl-start-docker", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-troubleshooting", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/agentctx.md", + "type": "doc", "attrs": { - "title": "Troubleshooting", - "docPath": "docs/agenstra/deployment/local-development.md", - "sectionAnchor": "troubleshooting", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/agentctx.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-pre-deployment-checklist", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/agents.md", + "type": "doc", "attrs": { - "title": "Pre-Deployment Checklist", - "docPath": "docs/agenstra/deployment/production-checklist.md", - "sectionAnchor": "pre-deployment-checklist", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/agents.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-security-considerations", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/commands.md", + "type": "doc", "attrs": { - "title": "Security Considerations", - "docPath": "docs/agenstra/deployment/production-checklist.md", - "sectionAnchor": "security-considerations", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/commands.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-performance-optimization", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "type": "doc", "attrs": { - "title": "Performance Optimization", - "docPath": "docs/agenstra/deployment/production-checklist.md", - "sectionAnchor": "performance-optimization", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/knowledge-graph.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-monitoring-setup", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "type": "doc", "attrs": { - "title": "Monitoring Setup", - "docPath": "docs/agenstra/deployment/production-checklist.md", - "sectionAnchor": "monitoring-setup", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/mcp-definitions.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-backup-strategies", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/rules.md", + "type": "doc", "attrs": { - "title": "Backup Strategies", - "docPath": "docs/agenstra/deployment/production-checklist.md", - "sectionAnchor": "backup-strategies", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/rules.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-deployment-process", - "type": "concept", + "id": "file:docs/agenstra/ai-agents/skills.md", + "type": "doc", "attrs": { - "title": "Deployment Process", - "docPath": "docs/agenstra/deployment/production-checklist.md", - "sectionAnchor": "deployment-process", - "domain": "agenstra" + "path": "docs/agenstra/ai-agents/skills.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-rollback-plan", - "type": "concept", + "id": "file:docs/agenstra/api-reference/README.md", + "type": "doc", "attrs": { - "title": "Rollback Plan", - "docPath": "docs/agenstra/deployment/production-checklist.md", - "sectionAnchor": "rollback-plan", - "domain": "agenstra" + "path": "docs/agenstra/api-reference/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-system-requirements", - "type": "concept", + "id": "file:docs/agenstra/applications/README.md", + "type": "doc", "attrs": { - "title": "System Requirements", - "docPath": "docs/agenstra/deployment/system-requirements.md", - "sectionAnchor": "system-requirements", - "domain": "agenstra" + "path": "docs/agenstra/applications/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-platform-prerequisites", - "type": "concept", + "id": "file:docs/agenstra/applications/backend-agent-controller.md", + "type": "doc", "attrs": { - "title": "Platform Prerequisites", - "docPath": "docs/agenstra/deployment/system-requirements.md", - "sectionAnchor": "platform-prerequisites", - "domain": "agenstra" + "path": "docs/agenstra/applications/backend-agent-controller.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-controller-stack", - "type": "concept", + "id": "file:docs/agenstra/applications/backend-agent-manager.md", + "type": "doc", "attrs": { - "title": "Controller Stack", - "docPath": "docs/agenstra/deployment/system-requirements.md", - "sectionAnchor": "controller-stack", - "domain": "agenstra" + "path": "docs/agenstra/applications/backend-agent-manager.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-agent-manager-host", - "type": "concept", + "id": "file:docs/agenstra/applications/frontend-agent-console.md", + "type": "doc", "attrs": { - "title": "Agent Manager Host", - "docPath": "docs/agenstra/deployment/system-requirements.md", - "sectionAnchor": "agent-manager-host", - "domain": "agenstra" + "path": "docs/agenstra/applications/frontend-agent-console.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-mixed-and-local-development-host", - "type": "concept", + "id": "file:docs/agenstra/architecture/README.md", + "type": "doc", "attrs": { - "title": "Mixed and Local Development Host", - "docPath": "docs/agenstra/deployment/system-requirements.md", - "sectionAnchor": "mixed-and-local-development-host", - "domain": "agenstra" + "path": "docs/agenstra/architecture/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-production-sizing-examples", - "type": "concept", + "id": "file:docs/agenstra/architecture/components.md", + "type": "doc", "attrs": { - "title": "Production Sizing Examples", - "docPath": "docs/agenstra/deployment/system-requirements.md", - "sectionAnchor": "production-sizing-examples", - "domain": "agenstra" + "path": "docs/agenstra/architecture/components.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-network-and-external-dependencies", - "type": "concept", + "id": "file:docs/agenstra/architecture/data-flow.md", + "type": "doc", "attrs": { - "title": "Network and External Dependencies", - "docPath": "docs/agenstra/deployment/system-requirements.md", - "sectionAnchor": "network-and-external-dependencies", - "domain": "agenstra" + "path": "docs/agenstra/architecture/data-flow.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-features-documentation", - "type": "concept", + "id": "file:docs/agenstra/architecture/system-overview.md", + "type": "doc", "attrs": { - "title": "Features Documentation", - "docPath": "docs/agenstra/features/README.md", - "sectionAnchor": "features-documentation", - "domain": "agenstra" + "path": "docs/agenstra/architecture/system-overview.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-feature-relationships", - "type": "concept", + "id": "file:docs/agenstra/deployment/README.md", + "type": "doc", "attrs": { - "title": "Feature Relationships", - "docPath": "docs/agenstra/features/README.md", - "sectionAnchor": "feature-relationships", - "domain": "agenstra" + "path": "docs/agenstra/deployment/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-agent-management", - "type": "concept", + "id": "file:docs/agenstra/deployment/background-jobs.md", + "type": "doc", "attrs": { - "title": "Agent Management", - "docPath": "docs/agenstra/features/agent-management.md", - "sectionAnchor": "agent-management", - "domain": "agenstra" + "path": "docs/agenstra/deployment/background-jobs.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-creating-an-agent", - "type": "concept", + "id": "file:docs/agenstra/deployment/docker-deployment.md", + "type": "doc", "attrs": { - "title": "Creating an Agent", - "docPath": "docs/agenstra/features/agent-management.md", - "sectionAnchor": "creating-an-agent", - "domain": "agenstra" + "path": "docs/agenstra/deployment/docker-deployment.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-agent-lifecycle", - "type": "concept", + "id": "file:docs/agenstra/deployment/environment-configuration.md", + "type": "doc", "attrs": { - "title": "Agent Lifecycle", - "docPath": "docs/agenstra/features/agent-management.md", - "sectionAnchor": "agent-lifecycle", - "domain": "agenstra" + "path": "docs/agenstra/deployment/environment-configuration.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-agent-types", - "type": "concept", + "id": "file:docs/agenstra/deployment/local-development.md", + "type": "doc", "attrs": { - "title": "Agent Types", - "docPath": "docs/agenstra/features/agent-management.md", - "sectionAnchor": "agent-types", - "domain": "agenstra" + "path": "docs/agenstra/deployment/local-development.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-agent-operations", - "type": "concept", + "id": "file:docs/agenstra/deployment/production-checklist.md", + "type": "doc", "attrs": { - "title": "Agent Operations", - "docPath": "docs/agenstra/features/agent-management.md", - "sectionAnchor": "agent-operations", - "domain": "agenstra" + "path": "docs/agenstra/deployment/production-checklist.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-container-interaction", - "type": "concept", + "id": "file:docs/agenstra/deployment/system-requirements.md", + "type": "doc", "attrs": { - "title": "Container Interaction", - "docPath": "docs/agenstra/features/agent-management.md", - "sectionAnchor": "container-interaction", - "domain": "agenstra" + "path": "docs/agenstra/deployment/system-requirements.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-atlassian-import", - "type": "concept", + "id": "file:docs/agenstra/features/README.md", + "type": "doc", "attrs": { - "title": "Atlassian import", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "atlassian-import", - "domain": "agenstra" + "path": "docs/agenstra/features/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-why-controller-native", - "type": "concept", + "id": "file:docs/agenstra/features/agent-management.md", + "type": "doc", "attrs": { - "title": "Why controller-native?", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "why-controller-native", - "domain": "agenstra" + "path": "docs/agenstra/features/agent-management.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-access-control", - "type": "concept", + "id": "file:docs/agenstra/features/atlassian-import.md", + "type": "doc", "attrs": { - "title": "Access control", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "access-control", - "domain": "agenstra" + "path": "docs/agenstra/features/atlassian-import.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-jira-vs-confluence", - "type": "concept", + "id": "file:docs/agenstra/features/authentication.md", + "type": "doc", "attrs": { - "title": "Jira vs Confluence", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "jira-vs-confluence", - "domain": "agenstra" + "path": "docs/agenstra/features/authentication.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-queue-jobs-and-manual-runs", - "type": "concept", + "id": "file:docs/agenstra/features/chat-interface.md", + "type": "doc", "attrs": { - "title": "Queue jobs and manual runs", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "queue-jobs-and-manual-runs", - "domain": "agenstra" + "path": "docs/agenstra/features/chat-interface.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-sync-markers-and-cleanup", - "type": "concept", + "id": "file:docs/agenstra/features/client-management.md", + "type": "doc", "attrs": { - "title": "Sync markers and cleanup", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "sync-markers-and-cleanup", - "domain": "agenstra" + "path": "docs/agenstra/features/client-management.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-console-entry-points", - "type": "concept", + "id": "file:docs/agenstra/features/deployment.md", + "type": "doc", "attrs": { - "title": "Console entry points", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "console-entry-points", - "domain": "agenstra" + "path": "docs/agenstra/features/deployment.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-api-references", - "type": "concept", + "id": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "type": "doc", "attrs": { - "title": "API references", - "docPath": "docs/agenstra/features/atlassian-import.md", - "sectionAnchor": "api-references", - "domain": "agenstra" + "path": "docs/agenstra/features/dynamic-provider-plugins.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-authentication-methods", - "type": "concept", + "id": "file:docs/agenstra/features/email-notifications.md", + "type": "doc", "attrs": { - "title": "Authentication Methods", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "authentication-methods", - "domain": "agenstra" + "path": "docs/agenstra/features/email-notifications.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-users-authentication-flow", - "type": "concept", + "id": "file:docs/agenstra/features/file-management.md", + "type": "doc", "attrs": { - "title": "Users Authentication Flow", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "users-authentication-flow", - "domain": "agenstra" + "path": "docs/agenstra/features/file-management.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-disabling-signup", - "type": "concept", + "id": "file:docs/agenstra/features/message-filter-rules.md", + "type": "doc", "attrs": { - "title": "Disabling Signup", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "disabling-signup", - "domain": "agenstra" + "path": "docs/agenstra/features/message-filter-rules.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-user-roles", - "type": "concept", + "id": "file:docs/agenstra/features/server-provisioning.md", + "type": "doc", "attrs": { - "title": "User Roles", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "user-roles", - "domain": "agenstra" + "path": "docs/agenstra/features/server-provisioning.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-admin-user-management", - "type": "concept", + "id": "file:docs/agenstra/features/ticket-automation.md", + "type": "doc", "attrs": { - "title": "Admin User Management", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "admin-user-management", - "domain": "agenstra" + "path": "docs/agenstra/features/ticket-automation.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-security-features", - "type": "concept", + "id": "file:docs/agenstra/features/tickets-and-workspaces.md", + "type": "doc", "attrs": { - "title": "Security Features", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "security-features", - "domain": "agenstra" + "path": "docs/agenstra/features/tickets-and-workspaces.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-authentication-flow-diagram", - "type": "concept", + "id": "file:docs/agenstra/features/usage-statistics.md", + "type": "doc", "attrs": { - "title": "Authentication Flow Diagram", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "authentication-flow-diagram", - "domain": "agenstra" + "path": "docs/agenstra/features/usage-statistics.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-registration-sequence-diagram", - "type": "concept", + "id": "file:docs/agenstra/features/version-control.md", + "type": "doc", "attrs": { - "title": "Registration Sequence Diagram", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "registration-sequence-diagram", - "domain": "agenstra" + "path": "docs/agenstra/features/version-control.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-per-client-permissions", - "type": "concept", + "id": "file:docs/agenstra/features/vnc-browser-access.md", + "type": "doc", "attrs": { - "title": "Per-Client Permissions", - "docPath": "docs/agenstra/features/authentication.md", - "sectionAnchor": "per-client-permissions", - "domain": "agenstra" + "path": "docs/agenstra/features/vnc-browser-access.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-chat-interface", - "type": "concept", + "id": "file:docs/agenstra/features/web-ide.md", + "type": "doc", "attrs": { - "title": "Chat Interface", - "docPath": "docs/agenstra/features/chat-interface.md", - "sectionAnchor": "chat-interface", - "domain": "agenstra" + "path": "docs/agenstra/features/web-ide.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-message-flow", - "type": "concept", + "id": "file:docs/agenstra/features/webhooks.md", + "type": "doc", "attrs": { - "title": "Message Flow", - "docPath": "docs/agenstra/features/chat-interface.md", - "sectionAnchor": "message-flow", - "domain": "agenstra" + "path": "docs/agenstra/features/webhooks.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-client-management", - "type": "concept", + "id": "file:docs/agenstra/features/websocket-communication.md", + "type": "doc", "attrs": { - "title": "Client Management", - "docPath": "docs/agenstra/features/client-management.md", - "sectionAnchor": "client-management", - "domain": "agenstra" + "path": "docs/agenstra/features/websocket-communication.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-creating-a-client", - "type": "concept", + "id": "file:docs/agenstra/getting-started.md", + "type": "doc", "attrs": { - "title": "Creating a Client", - "docPath": "docs/agenstra/features/client-management.md", - "sectionAnchor": "creating-a-client", - "domain": "agenstra" + "path": "docs/agenstra/getting-started.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-client-configuration", - "type": "concept", + "id": "file:docs/agenstra/security/README.md", + "type": "doc", "attrs": { - "title": "Client Configuration", - "docPath": "docs/agenstra/features/client-management.md", - "sectionAnchor": "client-configuration", - "domain": "agenstra" + "path": "docs/agenstra/security/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-managing-clients", - "type": "concept", + "id": "file:docs/agenstra/security/accepted-risks.md", + "type": "doc", "attrs": { - "title": "Managing Clients", - "docPath": "docs/agenstra/features/client-management.md", - "sectionAnchor": "managing-clients", - "domain": "agenstra" + "path": "docs/agenstra/security/accepted-risks.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-authentication-types", - "type": "concept", + "id": "file:docs/agenstra/security/ci-security-scanning.md", + "type": "doc", "attrs": { - "title": "Authentication Types", - "docPath": "docs/agenstra/features/client-management.md", - "sectionAnchor": "authentication-types", - "domain": "agenstra" + "path": "docs/agenstra/security/ci-security-scanning.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-deployment-and-ci-cd-integration", - "type": "concept", + "id": "file:docs/agenstra/security/compliance-and-standards.md", + "type": "doc", "attrs": { - "title": "Deployment and CI/CD Integration", - "docPath": "docs/agenstra/features/deployment.md", - "sectionAnchor": "deployment-and-ci-cd-integration", - "domain": "agenstra" + "path": "docs/agenstra/security/compliance-and-standards.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-supported-providers", - "type": "concept", + "id": "file:docs/agenstra/security/container-images.md", + "type": "doc", "attrs": { - "title": "Supported Providers", - "docPath": "docs/agenstra/features/deployment.md", - "sectionAnchor": "supported-providers", - "domain": "agenstra" + "path": "docs/agenstra/security/container-images.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-usage-examples", - "type": "concept", + "id": "file:docs/agenstra/security/operational-hardening.md", + "type": "doc", "attrs": { - "title": "Usage Examples", - "docPath": "docs/agenstra/features/deployment.md", - "sectionAnchor": "usage-examples", - "domain": "agenstra" + "path": "docs/agenstra/security/operational-hardening.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-integration-with-agent-creation-update", - "type": "concept", + "id": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "type": "doc", "attrs": { - "title": "Integration with Agent Creation/Update", - "docPath": "docs/agenstra/features/deployment.md", - "sectionAnchor": "integration-with-agent-creation-update", - "domain": "agenstra" + "path": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-future-enhancements", - "type": "concept", + "id": "file:docs/agenstra/troubleshooting/README.md", + "type": "doc", "attrs": { - "title": "Future Enhancements", - "docPath": "docs/agenstra/features/deployment.md", - "sectionAnchor": "future-enhancements", - "domain": "agenstra" + "path": "docs/agenstra/troubleshooting/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-dynamic-provider-plugins", - "type": "concept", + "id": "file:docs/agenstra/troubleshooting/common-issues.md", + "type": "doc", "attrs": { - "title": "Dynamic provider plugins", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "dynamic-provider-plugins", - "domain": "agenstra" + "path": "docs/agenstra/troubleshooting/common-issues.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-resolution-order", - "type": "concept", + "id": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "type": "doc", "attrs": { - "title": "Resolution order", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "resolution-order", - "domain": "agenstra" + "path": "docs/agenstra/troubleshooting/debugging-guide.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-config-format", - "type": "concept", + "id": "file:docs/decabill/README.md", + "type": "doc", "attrs": { - "title": "Config format", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "config-format", - "domain": "agenstra" + "path": "docs/decabill/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-alias-package-specifier-package-name-whether-baked-in-or-mounted", - "type": "concept", + "id": "file:docs/decabill/api-reference/README.md", + "type": "doc", "attrs": { - "title": "alias=@package/specifier (package name whether baked-in or mounted)", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "alias-package-specifier-package-name-whether-baked-in-or-mounted", - "domain": "agenstra" + "path": "docs/decabill/api-reference/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-pascalcase-alias-selects-a-named-class-export-from-the-package", - "type": "concept", + "id": "file:docs/decabill/applications/README.md", + "type": "doc", "attrs": { - "title": "PascalCase alias selects a named class export from the package", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "pascalcase-alias-selects-a-named-class-export-from-the-package", - "domain": "agenstra" + "path": "docs/decabill/applications/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-bare-specifier", - "type": "concept", + "id": "file:docs/decabill/applications/backend-billing-manager.md", + "type": "doc", "attrs": { - "title": "bare specifier", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "bare-specifier", - "domain": "agenstra" + "path": "docs/decabill/applications/backend-billing-manager.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-file-entry-directory-relative-to-dynamic-provider-plugin-path", - "type": "concept", + "id": "file:docs/decabill/applications/frontend-billing-console.md", + "type": "doc", "attrs": { - "title": "file: entry — directory relative to DYNAMIC_PROVIDER_PLUGIN_PATH", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "file-entry-directory-relative-to-dynamic-provider-plugin-path", - "domain": "agenstra" + "path": "docs/decabill/applications/frontend-billing-console.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-plugin-package-contract", - "type": "concept", + "id": "file:docs/decabill/architecture/README.md", + "type": "doc", "attrs": { - "title": "Plugin package contract", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "plugin-package-contract", - "domain": "agenstra" + "path": "docs/decabill/architecture/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-baked-in-plugins-image-build", - "type": "concept", + "id": "file:docs/decabill/architecture/components.md", + "type": "doc", "attrs": { - "title": "Baked-in plugins (image build)", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "baked-in-plugins-image-build", - "domain": "agenstra" + "path": "docs/decabill/architecture/components.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-post-build-plugins-no-image-rebuild", - "type": "concept", + "id": "file:docs/decabill/architecture/data-flow.md", + "type": "doc", "attrs": { - "title": "Post-build plugins (no image rebuild)", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "post-build-plugins-no-image-rebuild", - "domain": "agenstra" + "path": "docs/decabill/architecture/data-flow.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-registry-package-requires-npmrc-token-in-image-or-mounted-secret", - "type": "concept", + "id": "file:docs/decabill/architecture/system-overview.md", + "type": "doc", "attrs": { - "title": "Registry package (requires .npmrc / token in image or mounted secret)", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "registry-package-requires-npmrc-token-in-image-or-mounted-secret", - "domain": "agenstra" + "path": "docs/decabill/architecture/system-overview.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-paths-under-the-plugin-root-absolute-or-relative-to-plugin-path", - "type": "concept", + "id": "file:docs/decabill/deployment/README.md", + "type": "doc", "attrs": { - "title": "Paths under the plugin root (absolute or relative to plugin path)", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "paths-under-the-plugin-root-absolute-or-relative-to-plugin-path", - "domain": "agenstra" + "path": "docs/decabill/deployment/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-mixed", - "type": "concept", + "id": "file:docs/decabill/deployment/background-jobs.md", + "type": "doc", "attrs": { - "title": "Mixed", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "mixed", - "domain": "agenstra" + "path": "docs/decabill/deployment/background-jobs.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-startup-error-policy", - "type": "concept", + "id": "file:docs/decabill/deployment/docker-deployment.md", + "type": "doc", "attrs": { - "title": "Startup error policy", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "startup-error-policy", - "domain": "agenstra" + "path": "docs/decabill/deployment/docker-deployment.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-where-each-registry-is-used", - "type": "concept", + "id": "file:docs/decabill/deployment/environment-configuration.md", + "type": "doc", "attrs": { - "title": "Where each registry is used", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "where-each-registry-is-used", - "domain": "agenstra" + "path": "docs/decabill/deployment/environment-configuration.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-docker-compose-optional-plugins", - "type": "concept", + "id": "file:docs/decabill/deployment/local-development.md", + "type": "doc", "attrs": { - "title": "Docker Compose (optional plugins)", - "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", - "sectionAnchor": "docker-compose-optional-plugins", - "domain": "agenstra" + "path": "docs/decabill/deployment/local-development.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-email-notifications-agenstra", - "type": "concept", + "id": "file:docs/decabill/deployment/production-checklist.md", + "type": "doc", "attrs": { - "title": "Email notifications (Agenstra)", - "docPath": "docs/agenstra/features/email-notifications.md", - "sectionAnchor": "email-notifications-agenstra", - "domain": "agenstra" + "path": "docs/decabill/deployment/production-checklist.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-transport", - "type": "concept", + "id": "file:docs/decabill/deployment/system-requirements.md", + "type": "doc", "attrs": { - "title": "Transport", - "docPath": "docs/agenstra/features/email-notifications.md", - "sectionAnchor": "transport", - "domain": "agenstra" + "path": "docs/decabill/deployment/system-requirements.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-wiring", - "type": "concept", + "id": "file:docs/decabill/features/README.md", + "type": "doc", "attrs": { - "title": "Wiring", - "docPath": "docs/agenstra/features/email-notifications.md", - "sectionAnchor": "wiring", - "domain": "agenstra" + "path": "docs/decabill/features/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-templates", - "type": "concept", + "id": "file:docs/decabill/features/authentication.md", + "type": "doc", "attrs": { - "title": "Templates", - "docPath": "docs/agenstra/features/email-notifications.md", - "sectionAnchor": "templates", - "domain": "agenstra" + "path": "docs/decabill/features/authentication.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-events", - "type": "concept", + "id": "file:docs/decabill/features/auto-billing.md", + "type": "doc", "attrs": { - "title": "Events", - "docPath": "docs/agenstra/features/email-notifications.md", - "sectionAnchor": "events", - "domain": "agenstra" + "path": "docs/decabill/features/auto-billing.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-file-management", - "type": "concept", + "id": "file:docs/decabill/features/backorders.md", + "type": "doc", "attrs": { - "title": "File Management", - "docPath": "docs/agenstra/features/file-management.md", - "sectionAnchor": "file-management", - "domain": "agenstra" + "path": "docs/decabill/features/backorders.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-file-operations", - "type": "concept", + "id": "file:docs/decabill/features/billing-administration.md", + "type": "doc", "attrs": { - "title": "File Operations", - "docPath": "docs/agenstra/features/file-management.md", - "sectionAnchor": "file-operations", - "domain": "agenstra" + "path": "docs/decabill/features/billing-administration.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-file-operation-flow", - "type": "concept", + "id": "file:docs/decabill/features/cloud-init-configs.md", + "type": "doc", "attrs": { - "title": "File Operation Flow", - "docPath": "docs/agenstra/features/file-management.md", - "sectionAnchor": "file-operation-flow", - "domain": "agenstra" + "path": "docs/decabill/features/cloud-init-configs.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-real-time-file-updates", - "type": "concept", + "id": "file:docs/decabill/features/customer-profiles.md", + "type": "doc", "attrs": { - "title": "Real-time File Updates", - "docPath": "docs/agenstra/features/file-management.md", - "sectionAnchor": "real-time-file-updates", - "domain": "agenstra" + "path": "docs/decabill/features/customer-profiles.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-message-filter-rules", - "type": "concept", + "id": "file:docs/decabill/features/dashboard-and-server-control.md", + "type": "doc", "attrs": { - "title": "Message Filter Rules", - "docPath": "docs/agenstra/features/message-filter-rules.md", - "sectionAnchor": "message-filter-rules", - "domain": "agenstra" + "path": "docs/decabill/features/dashboard-and-server-control.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-why-two-tiers", - "type": "concept", + "id": "file:docs/decabill/features/dynamic-provider-plugins.md", + "type": "doc", "attrs": { - "title": "Why two tiers?", - "docPath": "docs/agenstra/features/message-filter-rules.md", - "sectionAnchor": "why-two-tiers", - "domain": "agenstra" + "path": "docs/decabill/features/dynamic-provider-plugins.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-server-provisioning", - "type": "concept", + "id": "file:docs/decabill/features/email-notifications.md", + "type": "doc", "attrs": { - "title": "Server Provisioning", - "docPath": "docs/agenstra/features/server-provisioning.md", - "sectionAnchor": "server-provisioning", - "domain": "agenstra" + "path": "docs/decabill/features/email-notifications.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-provisioning-process", - "type": "concept", + "id": "file:docs/decabill/features/invoices.md", + "type": "doc", "attrs": { - "title": "Provisioning Process", - "docPath": "docs/agenstra/features/server-provisioning.md", - "sectionAnchor": "provisioning-process", - "domain": "agenstra" + "path": "docs/decabill/features/invoices.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-provisioning-request", - "type": "concept", + "id": "file:docs/decabill/features/multi-tenancy.md", + "type": "doc", "attrs": { - "title": "Provisioning Request", - "docPath": "docs/agenstra/features/server-provisioning.md", - "sectionAnchor": "provisioning-request", - "domain": "agenstra" + "path": "docs/decabill/features/multi-tenancy.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-provisioning-steps", - "type": "concept", + "id": "file:docs/decabill/features/payment-processing.md", + "type": "doc", "attrs": { - "title": "Provisioning Steps", - "docPath": "docs/agenstra/features/server-provisioning.md", - "sectionAnchor": "provisioning-steps", - "domain": "agenstra" + "path": "docs/decabill/features/payment-processing.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-server-configuration", - "type": "concept", + "id": "file:docs/decabill/features/project-board.md", + "type": "doc", "attrs": { - "title": "Server Configuration", - "docPath": "docs/agenstra/features/server-provisioning.md", - "sectionAnchor": "server-configuration", - "domain": "agenstra" + "path": "docs/decabill/features/project-board.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-environment-variables-interpolation", - "type": "concept", + "id": "file:docs/decabill/features/projects.md", + "type": "doc", "attrs": { - "title": "Environment Variables Interpolation", - "docPath": "docs/agenstra/features/server-provisioning.md", - "sectionAnchor": "environment-variables-interpolation", - "domain": "agenstra" + "path": "docs/decabill/features/projects.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-managing-provisioned-servers", - "type": "concept", + "id": "file:docs/decabill/features/promotions.md", + "type": "doc", "attrs": { - "title": "Managing Provisioned Servers", - "docPath": "docs/agenstra/features/server-provisioning.md", - "sectionAnchor": "managing-provisioned-servers", - "domain": "agenstra" + "path": "docs/decabill/features/promotions.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-ticket-automation", - "type": "concept", + "id": "file:docs/decabill/features/public-withdrawal.md", + "type": "doc", "attrs": { - "title": "Ticket automation", - "docPath": "docs/agenstra/features/ticket-automation.md", - "sectionAnchor": "ticket-automation", - "domain": "agenstra" + "path": "docs/decabill/features/public-withdrawal.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-run-phases-high-level", - "type": "concept", + "id": "file:docs/decabill/features/real-time-status.md", + "type": "doc", "attrs": { - "title": "Run phases (high level)", - "docPath": "docs/agenstra/features/ticket-automation.md", - "sectionAnchor": "run-phases-high-level", - "domain": "agenstra" + "path": "docs/decabill/features/real-time-status.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-failures-and-retries", - "type": "concept", + "id": "file:docs/decabill/features/server-provisioning.md", + "type": "doc", "attrs": { - "title": "Failures and retries", - "docPath": "docs/agenstra/features/ticket-automation.md", - "sectionAnchor": "failures-and-retries", - "domain": "agenstra" + "path": "docs/decabill/features/server-provisioning.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-http-and-realtime", - "type": "concept", + "id": "file:docs/decabill/features/service-types-and-plans.md", + "type": "doc", "attrs": { - "title": "HTTP and realtime", - "docPath": "docs/agenstra/features/ticket-automation.md", - "sectionAnchor": "http-and-realtime", - "domain": "agenstra" + "path": "docs/decabill/features/service-types-and-plans.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-tickets-and-workspaces", - "type": "concept", + "id": "file:docs/decabill/features/subscriptions.md", + "type": "doc", "attrs": { - "title": "Tickets and Workspaces", - "docPath": "docs/agenstra/features/tickets-and-workspaces.md", - "sectionAnchor": "tickets-and-workspaces", - "domain": "agenstra" + "path": "docs/decabill/features/subscriptions.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-api-and-protocol-references", - "type": "concept", + "id": "file:docs/decabill/features/webhooks.md", + "type": "doc", "attrs": { - "title": "API and protocol references", - "docPath": "docs/agenstra/features/tickets-and-workspaces.md", - "sectionAnchor": "api-and-protocol-references", - "domain": "agenstra" + "path": "docs/decabill/features/webhooks.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-usage-statistics", - "type": "concept", + "id": "file:docs/decabill/getting-started.md", + "type": "doc", "attrs": { - "title": "Usage Statistics", - "docPath": "docs/agenstra/features/usage-statistics.md", - "sectionAnchor": "usage-statistics", - "domain": "agenstra" + "path": "docs/decabill/getting-started.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-per-workspace-statistics", - "type": "concept", + "id": "file:docs/decabill/security/README.md", + "type": "doc", "attrs": { - "title": "Per-workspace statistics", - "docPath": "docs/agenstra/features/usage-statistics.md", - "sectionAnchor": "per-workspace-statistics", - "domain": "agenstra" + "path": "docs/decabill/security/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-who-can-access-what", - "type": "concept", + "id": "file:docs/decabill/security/accepted-risks.md", + "type": "doc", "attrs": { - "title": "Who can access what", - "docPath": "docs/agenstra/features/usage-statistics.md", - "sectionAnchor": "who-can-access-what", - "domain": "agenstra" + "path": "docs/decabill/security/accepted-risks.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-relationship-to-container-stats", - "type": "concept", + "id": "file:docs/decabill/security/ci-security-scanning.md", + "type": "doc", "attrs": { - "title": "Relationship to container stats", - "docPath": "docs/agenstra/features/usage-statistics.md", - "sectionAnchor": "relationship-to-container-stats", - "domain": "agenstra" + "path": "docs/decabill/security/ci-security-scanning.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-version-control", - "type": "concept", + "id": "file:docs/decabill/security/compliance-and-standards.md", + "type": "doc", "attrs": { - "title": "Version Control", - "docPath": "docs/agenstra/features/version-control.md", - "sectionAnchor": "version-control", - "domain": "agenstra" + "path": "docs/decabill/security/compliance-and-standards.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-git-operations", - "type": "concept", + "id": "file:docs/decabill/security/container-images.md", + "type": "doc", "attrs": { - "title": "Git Operations", - "docPath": "docs/agenstra/features/version-control.md", - "sectionAnchor": "git-operations", - "domain": "agenstra" + "path": "docs/decabill/security/container-images.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-git-operation-flow", - "type": "concept", + "id": "file:docs/decabill/security/operational-hardening.md", + "type": "doc", "attrs": { - "title": "Git Operation Flow", - "docPath": "docs/agenstra/features/version-control.md", - "sectionAnchor": "git-operation-flow", - "domain": "agenstra" + "path": "docs/decabill/security/operational-hardening.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-vnc-browser-access", - "type": "concept", + "id": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "type": "doc", "attrs": { - "title": "VNC Browser Access", - "docPath": "docs/agenstra/features/vnc-browser-access.md", - "sectionAnchor": "vnc-browser-access", - "domain": "agenstra" + "path": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-vnc-container-lifecycle", - "type": "concept", + "id": "file:docs/decabill/troubleshooting/README.md", + "type": "doc", "attrs": { - "title": "VNC Container Lifecycle", - "docPath": "docs/agenstra/features/vnc-browser-access.md", - "sectionAnchor": "vnc-container-lifecycle", - "domain": "agenstra" + "path": "docs/decabill/troubleshooting/README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-web-ide", - "type": "concept", + "id": "file:docs/decabill/troubleshooting/common-issues.md", + "type": "doc", "attrs": { - "title": "Web IDE", - "docPath": "docs/agenstra/features/web-ide.md", - "sectionAnchor": "web-ide", - "domain": "agenstra" + "path": "docs/decabill/troubleshooting/common-issues.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-editor-configuration", - "type": "concept", + "id": "file:docs/decabill/troubleshooting/debugging-guide.md", + "type": "doc", "attrs": { - "title": "Editor Configuration", - "docPath": "docs/agenstra/features/web-ide.md", - "sectionAnchor": "editor-configuration", - "domain": "agenstra" + "path": "docs/decabill/troubleshooting/debugging-guide.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-webhooks-agenstra", - "type": "concept", + "id": "file:AGENTS.md", + "type": "readme", "attrs": { - "title": "Webhooks (Agenstra)", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "webhooks-agenstra", - "domain": "agenstra" + "path": "AGENTS.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-access", - "type": "concept", + "id": "file:CHANGELOG.md", + "type": "readme", "attrs": { - "title": "Access", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "access", - "domain": "agenstra" + "path": "CHANGELOG.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-authentication-modes", - "type": "concept", + "id": "file:CONTRIBUTING.md", + "type": "readme", "attrs": { - "title": "Authentication modes", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "authentication-modes", - "domain": "agenstra" + "path": "CONTRIBUTING.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-event-envelope", - "type": "concept", + "id": "file:README.md", + "type": "readme", "attrs": { - "title": "Event envelope", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "event-envelope", - "domain": "agenstra" + "path": "README.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-event-catalog", - "type": "concept", + "id": "file:SECURITY.md", + "type": "readme", "attrs": { - "title": "Event catalog", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "event-catalog", - "domain": "agenstra" + "path": "SECURITY.md", + "languageOrKind": "md" } }, { - "id": "concept:agenstra-payload-examples", - "type": "concept", + "id": "api:HTTP:GET:/health", + "type": "endpoint", "attrs": { - "title": "Payload examples", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "payload-examples", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/health", + "operationId": "getHealth", + "summary": "Health check", + "specKind": "openapi" } }, { - "id": "concept:agenstra-delivery-and-retries", - "type": "concept", + "id": "api:HTTP:POST:/public/contact-requests", + "type": "endpoint", "attrs": { - "title": "Delivery and retries", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "delivery-and-retries", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/public/contact-requests", + "operationId": "submitPublicContactRequest", + "summary": "Submit a public contact request", + "specKind": "openapi" } }, { - "id": "concept:agenstra-delivery-log-retention", - "type": "concept", + "id": "api:channel:clients/setClient", + "type": "endpoint", "attrs": { - "title": "Delivery log retention", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "delivery-log-retention", - "domain": "agenstra" + "pathOrChannel": "clients/setClient", + "summary": "Client selects a client context by UUID. Requires authenticated connection.\nThe user must have access to the client (global admin, client creator, or client_users entry).\nOn success, server emits setClientSuccess. On failure, server emits error with one of:\n- \"clientId is required\" (400)\n- \"Unauthorized\" (missing or invalid auth on socket)\n- \"You do not have access to this client\" (403)\n- \"Remote connection failed: ...\" (connection to agent-manager failed)\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-endpoint-deletion", - "type": "concept", + "id": "api:channel:clients/setClientSuccess", + "type": "endpoint", "attrs": { - "title": "Endpoint deletion", - "docPath": "docs/agenstra/features/webhooks.md", - "sectionAnchor": "endpoint-deletion", - "domain": "agenstra" + "pathOrChannel": "clients/setClientSuccess", + "summary": "Server acknowledges selected client context", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-connection-flow", - "type": "concept", + "id": "api:channel:clients/error", + "type": "endpoint", "attrs": { - "title": "Connection Flow", - "docPath": "docs/agenstra/features/websocket-communication.md", - "sectionAnchor": "connection-flow", - "domain": "agenstra" + "pathOrChannel": "clients/error", + "summary": "Error responses. Common message values:\n- \"clientId is required\" (setClient missing clientId)\n- \"Unauthorized\" (socket missing userInfo after auth middleware)\n- \"You do not have access to this client\" (403 - setClient forbidden)\n- \"No client selected. Call setClient first.\" (forward without setClient)\n- \"Remote connection not established\" (forward failed)\n- \"Remote connection failed: ...\" (connection to agent-manager failed)\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-tickets-board-realtime-tickets-namespace", - "type": "concept", + "id": "api:channel:clients/forward", + "type": "endpoint", "attrs": { - "title": "Tickets board realtime (`tickets` namespace)", - "docPath": "docs/agenstra/features/websocket-communication.md", - "sectionAnchor": "tickets-board-realtime-tickets-namespace", - "domain": "agenstra" + "pathOrChannel": "clients/forward", + "summary": "Forward an arbitrary event to the selected client's agents namespace. When `agentId` is provided,\nthe gateway automatically logs in the agent using stored credentials before forwarding the event.\nTo restore chat history for an agent, forward a \"login\" event with `agentId` (the payload is\nautomatically overridden with credentials from the database, triggering login and subsequent\nchat history restoration). Supported events include \"chat\", \"enhanceChat\" (prompt improvement;\npayload `{ message, correlationId, model? }`; response `chatEnhanceResult` unicast from\nagent-manager, proxied to this socket only), \"generateTicketBody\" (ticket body from title;\npayload `{ title, correlationId, model? }`; response `ticketBodyResult` unicast, same envelope\nshape as `chatEnhanceResult`), \"fileUpdate\", \"logout\", \"createTerminal\", \"terminalInput\",\n\"closeTerminal\", etc. The remote agent-manager gateway will process the event and may emit\nresponse events (e.g., \"chatMessage\", \"chatEnhanceResult\", \"ticketBodyResult\",\n\"fileUpdateNotification\", \"terminalCreated\", \"terminalOutput\", \"terminalClosed\", \"containerStats\")\nwhich are automatically forwarded back to the client. The \"containerStats\" event payload\n(defined in the agent-manager AsyncAPI) includes container status (running/stopped) and, when\nrunning, container statistics. For autonomous ticket runs, proxied `chat` may include\n`responseMode: \"single\" | \"stream\" | \"sync\"`, `ephemeral: true`, `continue`, and `resumeSessionSuffix`;\nthe controller also uses isolated suffixes (e.g. `-ticket-auto-loop`, `-ticket-auto-commit-msg`) for\nimplementation turns vs. post-verify conventional-commit subject generation; statistics on the controller\nside record the latter under interaction kind `autonomous_ticket_commit_message`.\nAfter a successful run, the controller also completes the workflow over HTTP by proxying agent-manager VCS\n`commit` and `push` (see controller OpenAPI under `/clients/{clientId}/agents/{agentId}/vcs/...`).\nagent-manager passes these to `sendMessage` and skips `agent_messages` persistence when `ephemeral` is true.\nWhen `ephemeral` is true, chatMessage / chatEvent traffic for that turn is emitted only to the requesting\nsocket (not broadcast to other viewers on the same agent).\nAfter a successful **login** (explicit `forward` with `event: \"login\"` or first-time auto-login before another event),\nthe controller may emit **ticketAutomationRunChatUpsert** (unicast) to hydrate ticket automation runs for that\n`clientId` + `agentId` into the chat timeline (see `clients/ticketAutomationRunChatUpsert`). Live run updates use\nthe same event broadcast to room `client:{clientId}` on the **clients** namespace.\nWhen a ticket row is created or updated (REST or internal), the controller also emits **ticketChatTicketUpsert**\nto room `client:{clientId}` on **clients** (same body as `tickets/ticketUpsert`).\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-chat-history-restoration", - "type": "concept", + "id": "api:channel:clients/ticketAutomationRunChatUpsert", + "type": "endpoint", "attrs": { - "title": "Chat History Restoration", - "docPath": "docs/agenstra/features/websocket-communication.md", - "sectionAnchor": "chat-history-restoration", - "domain": "agenstra" + "pathOrChannel": "clients/ticketAutomationRunChatUpsert", + "summary": "Controller-originated ticket automation snapshot for the chat UI (namespace **clients** only; not forwarded from\nagent-manager). Aligns with OpenAPI schema `TicketAutomationRunChatEventDto`. Hydration uses `timelineAt` from\n`run.startedAt`; live updates use `run.updatedAt`.\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-event-forwarding", - "type": "concept", + "id": "api:channel:clients/ticketChatTicketUpsert", + "type": "endpoint", "attrs": { - "title": "Event Forwarding", - "docPath": "docs/agenstra/features/websocket-communication.md", - "sectionAnchor": "event-forwarding", - "domain": "agenstra" + "pathOrChannel": "clients/ticketChatTicketUpsert", + "summary": "Full `TicketResponseDto` snapshot on namespace **clients** (room `client:{clientId}`), emitted whenever the\ncontroller would emit `ticketUpsert` on namespace **tickets**, so manager/chat UIs can merge ticket metadata\nwithout a `/tickets` socket connection.\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-error-handling", - "type": "concept", + "id": "api:channel:clients/forwardAck", + "type": "endpoint", "attrs": { - "title": "Error Handling", - "docPath": "docs/agenstra/features/websocket-communication.md", - "sectionAnchor": "error-handling", - "domain": "agenstra" + "pathOrChannel": "clients/forwardAck", + "summary": "Acknowledgement for forwarded events", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-getting-started-with-agenstra", - "type": "concept", + "id": "api:channel:clients/remoteDisconnected", + "type": "endpoint", "attrs": { - "title": "Getting Started with Agenstra", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "getting-started-with-agenstra", - "domain": "agenstra" + "pathOrChannel": "clients/remoteDisconnected", + "summary": "Server notifies client that the remote connection to agent-manager has been lost", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-clone-the-repository-if-not-already-done", - "type": "concept", + "id": "api:channel:clients/remoteReconnecting", + "type": "endpoint", "attrs": { - "title": "Clone the repository (if not already done)", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "clone-the-repository-if-not-already-done", - "domain": "agenstra" + "pathOrChannel": "clients/remoteReconnecting", + "summary": "Server notifies client that reconnection to agent-manager is in progress", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-in-another-terminal-start-agent-manager", - "type": "concept", + "id": "api:channel:clients/remoteReconnected", + "type": "endpoint", "attrs": { - "title": "In another terminal, start agent-manager", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "in-another-terminal-start-agent-manager", - "domain": "agenstra" + "pathOrChannel": "clients/remoteReconnected", + "summary": "Server notifies client that reconnection to agent-manager was successful", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-in-another-terminal-start-frontend", - "type": "concept", + "id": "api:channel:clients/remoteReconnectError", + "type": "endpoint", "attrs": { - "title": "In another terminal, start frontend", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "in-another-terminal-start-frontend", - "domain": "agenstra" + "pathOrChannel": "clients/remoteReconnectError", + "summary": "Server notifies client that a reconnection attempt to agent-manager failed (but will retry)", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-start-agent-controller", - "type": "concept", + "id": "api:channel:clients/remoteReconnectFailed", + "type": "endpoint", "attrs": { - "title": "Start agent-controller", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "start-agent-controller", - "domain": "agenstra" + "pathOrChannel": "clients/remoteReconnectFailed", + "summary": "Server notifies client that all reconnection attempts to agent-manager have failed", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-option-1-api-key-authentication", - "type": "concept", + "id": "api:channel:tickets/setClient", + "type": "endpoint", "attrs": { - "title": "Option 1: API Key authentication", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "option-1-api-key-authentication", - "domain": "agenstra" + "pathOrChannel": "tickets/setClient", + "summary": "Select workspace for ticket board realtime (Socket.IO namespace \"tickets\"). Same auth and `ensureClientAccess`\nrules as `clients/setClient`. Joins room `client:{clientId}`; server emits only to sockets in that room.\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-option-2-keycloak-authentication", - "type": "concept", + "id": "api:channel:tickets/setClientSuccess", + "type": "endpoint", "attrs": { - "title": "Option 2: Keycloak authentication", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "option-2-keycloak-authentication", - "domain": "agenstra" + "pathOrChannel": "tickets/setClientSuccess", + "summary": "Acknowledgement after tickets namespace setClient", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-option-3-users-authentication", - "type": "concept", + "id": "api:channel:tickets/error", + "type": "endpoint", "attrs": { - "title": "Option 3: Users authentication", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "option-3-users-authentication", - "domain": "agenstra" + "pathOrChannel": "tickets/error", + "summary": "Errors for tickets namespace (e.g. missing clientId, Unauthorized, forbidden client, or \"Unable to set client context\").\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-cors-for-production", - "type": "concept", + "id": "api:channel:tickets/ticketUpsert", + "type": "endpoint", "attrs": { - "title": "CORS (for production)", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "cors-for-production", - "domain": "agenstra" + "pathOrChannel": "tickets/ticketUpsert", + "summary": "Full ticket row after create/update (aligns with OpenAPI TicketResponseDto).\nA single REST create with `creationTemplate: specification` emits one upsert per ticket (parent plus four subtasks).\n`POST /tickets/{id}/migrate` emits one `ticketRemoved` per id on the source workspace, then one `ticketUpsert` per migrated row on the target workspace.\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-rate-limiting-optional", - "type": "concept", + "id": "api:channel:tickets/ticketRemoved", + "type": "endpoint", "attrs": { - "title": "Rate Limiting (optional)", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "rate-limiting-optional", - "domain": "agenstra" + "pathOrChannel": "tickets/ticketRemoved", + "summary": "Ticket deleted or removed from a workspace list (e.g. workspace move from old client)", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-or-keycloak-configuration-same-as-above", - "type": "concept", + "id": "api:channel:tickets/ticketCommentCreated", + "type": "endpoint", "attrs": { - "title": "OR Keycloak configuration (same as above)", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "or-keycloak-configuration-same-as-above", - "domain": "agenstra" + "pathOrChannel": "tickets/ticketCommentCreated", + "summary": "New comment on a ticket", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-git-repository-for-agent-workspace", - "type": "concept", + "id": "api:channel:tickets/ticketActivityCreated", + "type": "endpoint", "attrs": { - "title": "Git Repository (for agent workspace)", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "git-repository-for-agent-workspace", - "domain": "agenstra" + "pathOrChannel": "tickets/ticketActivityCreated", + "summary": "New activity row (audit trail); aligns with OpenAPI TicketActivityResponseDto", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-api-endpoint", - "type": "concept", + "id": "api:channel:tickets/ticketAutomationUpsert", + "type": "endpoint", "attrs": { - "title": "API Endpoint", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "api-endpoint", - "domain": "agenstra" + "pathOrChannel": "tickets/ticketAutomationUpsert", + "summary": "Automation settings row; aligns with OpenAPI ticket automation response", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-websocket-endpoint", - "type": "concept", + "id": "api:channel:tickets/ticketAutomationRunUpsert", + "type": "endpoint", "attrs": { - "title": "WebSocket Endpoint", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "websocket-endpoint", - "domain": "agenstra" + "pathOrChannel": "tickets/ticketAutomationRunUpsert", + "summary": "Automation run summary (may omit `steps`). During agent iterations, emissions may be throttled (about 1s per run)\nin addition to `ticketAutomationRunStepAppended` for each step.\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-creating-your-first-client", - "type": "concept", + "id": "api:channel:tickets/ticketAutomationRunStepAppended", + "type": "endpoint", "attrs": { - "title": "Creating Your First Client", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "creating-your-first-client", - "domain": "agenstra" + "pathOrChannel": "tickets/ticketAutomationRunStepAppended", + "summary": "New run step row (e.g. agent_turn iteration)", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-creating-your-first-agent", - "type": "concept", + "id": "api:channel:pages/setClient", + "type": "endpoint", "attrs": { - "title": "Creating Your First Agent", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "creating-your-first-agent", - "domain": "agenstra" + "pathOrChannel": "pages/setClient", + "summary": "Select workspace for knowledge board realtime (Socket.IO namespace \"pages\"). Same auth and `ensureClientAccess`\nrules as `clients/setClient`. Joins room `client:{clientId}`; server emits only to sockets in that room.\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-connecting-to-an-agent", - "type": "concept", + "id": "api:channel:pages/setClientSuccess", + "type": "endpoint", "attrs": { - "title": "Connecting to an Agent", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "connecting-to-an-agent", - "domain": "agenstra" + "pathOrChannel": "pages/setClientSuccess", + "summary": "Acknowledgement after pages namespace setClient", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-quick-tour-of-features", - "type": "concept", + "id": "api:channel:pages/error", + "type": "endpoint", "attrs": { - "title": "Quick Tour of Features", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "quick-tour-of-features", - "domain": "agenstra" + "pathOrChannel": "pages/error", + "summary": "Errors for pages namespace (e.g. missing clientId, Unauthorized, forbidden client, or \"Unable to set client context\").\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-next-steps", - "type": "concept", + "id": "api:channel:pages/knowledgeTreeChanged", + "type": "endpoint", "attrs": { - "title": "Next Steps", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "next-steps", - "domain": "agenstra" + "pathOrChannel": "pages/knowledgeTreeChanged", + "summary": "Workspace-scoped signal to refresh the knowledge tree from REST.", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-additional-resources", - "type": "concept", + "id": "api:channel:pages/knowledgeRelationChanged", + "type": "endpoint", "attrs": { - "title": "Additional Resources", - "docPath": "docs/agenstra/getting-started.md", - "sectionAnchor": "additional-resources", - "domain": "agenstra" + "pathOrChannel": "pages/knowledgeRelationChanged", + "summary": "Workspace-scoped signal to refresh affected relations from REST.", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-security-documentation", - "type": "concept", + "id": "api:channel:pages/knowledgePageActivityCreated", + "type": "endpoint", "attrs": { - "title": "Security documentation", - "docPath": "docs/agenstra/security/README.md", - "sectionAnchor": "security-documentation", - "domain": "agenstra" + "pathOrChannel": "pages/knowledgePageActivityCreated", + "summary": "Incremental page activity row for currently open page details.", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-configuration-reference", - "type": "concept", + "id": "api:channel:status/statusSnapshot", + "type": "endpoint", "attrs": { - "title": "Configuration reference", - "docPath": "docs/agenstra/security/README.md", - "sectionAnchor": "configuration-reference", - "domain": "agenstra" + "pathOrChannel": "status/statusSnapshot", + "summary": "Full per-user notification state on connect (git dirty + unread per environment, client rollups, spacesHasAttention).\nUnicast to the connecting socket only. Namespace **status** (STATUS_WEBSOCKET_NAMESPACE, default \"status\").\n", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-accepted-risks-register", - "type": "concept", + "id": "api:channel:status/statusPatch", + "type": "endpoint", "attrs": { - "title": "Accepted risks (register)", - "docPath": "docs/agenstra/security/accepted-risks.md", - "sectionAnchor": "accepted-risks-register", - "domain": "agenstra" + "pathOrChannel": "status/statusPatch", + "summary": "Incremental notification deltas after connect (unicast).", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", - "type": "concept", + "id": "api:channel:status/markEnvironmentRead", + "type": "endpoint", "attrs": { - "title": "AR-001 - Desktop app: no OS-trusted code signing / no in-app auto-update", - "docPath": "docs/agenstra/security/accepted-risks.md", - "sectionAnchor": "ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", - "domain": "agenstra" + "pathOrChannel": "status/markEnvironmentRead", + "summary": "Client marks an environment chat as read; persists user_environment_read_state.", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-ar-002-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", - "type": "concept", + "id": "api:channel:status/setActiveEnvironment", + "type": "endpoint", "attrs": { - "title": "AR-002 - Web frontends: CSP `unsafe-inline` / `unsafe-eval` (Monaco)", - "docPath": "docs/agenstra/security/accepted-risks.md", - "sectionAnchor": "ar-002-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", - "domain": "agenstra" + "pathOrChannel": "status/setActiveEnvironment", + "summary": "Client reports the environment currently in view (suppresses unread for active user).", + "specKind": "asyncapi" } }, { - "id": "concept:agenstra-ar-003-backend-authentication-method-resolution", - "type": "concept", + "id": "api:HTTP:POST:/auth/login", + "type": "endpoint", "attrs": { - "title": "AR-003 - Backend authentication method resolution", - "docPath": "docs/agenstra/security/accepted-risks.md", - "sectionAnchor": "ar-003-backend-authentication-method-resolution", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/auth/login", + "operationId": "login", + "summary": "Login (users auth only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-ar-004-desktop-window-open-policy-native-agent-console", - "type": "concept", + "id": "api:HTTP:POST:/auth/register", + "type": "endpoint", "attrs": { - "title": "AR-004 - Desktop window open policy (`native-agent-console`)", - "docPath": "docs/agenstra/security/accepted-risks.md", - "sectionAnchor": "ar-004-desktop-window-open-policy-native-agent-console", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/auth/register", + "operationId": "register", + "summary": "Register new user (users auth only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "type": "concept", + "id": "api:HTTP:POST:/auth/confirm-email", + "type": "endpoint", "attrs": { - "title": "AR-005 - CI / local Trivy: unfixed vulnerabilities not gated", - "docPath": "docs/agenstra/security/accepted-risks.md", - "sectionAnchor": "ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/auth/confirm-email", + "operationId": "confirmEmail", + "summary": "Confirm email with 6-character code (users auth only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-hardening-paths-if-an-acceptance-is-withdrawn", - "type": "concept", + "id": "api:HTTP:POST:/auth/request-password-reset", + "type": "endpoint", "attrs": { - "title": "Hardening paths (if an acceptance is withdrawn)", - "docPath": "docs/agenstra/security/accepted-risks.md", - "sectionAnchor": "hardening-paths-if-an-acceptance-is-withdrawn", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/auth/request-password-reset", + "operationId": "requestPasswordReset", + "summary": "Request password reset (users auth only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-ci-security-scanning-trivy", - "type": "concept", + "id": "api:HTTP:POST:/auth/reset-password", + "type": "endpoint", "attrs": { - "title": "CI security scanning (Trivy)", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "ci-security-scanning-trivy", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/auth/reset-password", + "operationId": "resetPassword", + "summary": "Reset password with 6-character code (users auth only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-what-is-scanned", - "type": "concept", + "id": "api:HTTP:POST:/auth/change-password", + "type": "endpoint", "attrs": { - "title": "What is scanned", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "what-is-scanned", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/auth/change-password", + "operationId": "changePassword", + "summary": "Change password (authenticated users)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-workflows", - "type": "concept", + "id": "api:HTTP:POST:/auth/logout", + "type": "endpoint", "attrs": { - "title": "Workflows", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "workflows", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/auth/logout", + "operationId": "logout", + "summary": "Log out (users auth only; revokes current session by default)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-severity-policy", - "type": "concept", + "id": "api:HTTP:GET:/users", + "type": "endpoint", "attrs": { - "title": "Severity policy", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "severity-policy", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/users", + "operationId": "listUsers", + "summary": "List users (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-viewing-results", - "type": "concept", + "id": "api:HTTP:POST:/users", + "type": "endpoint", "attrs": { - "title": "Viewing results", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "viewing-results", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/users", + "operationId": "createUser", + "summary": "Create user (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-triage-and-exceptions", - "type": "concept", + "id": "api:HTTP:GET:/users/{id}", + "type": "endpoint", "attrs": { - "title": "Triage and exceptions", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "triage-and-exceptions", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/users/{id}", + "operationId": "getUser", + "summary": "Get user by id (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-local-reproduction", - "type": "concept", + "id": "api:HTTP:POST:/users/{id}", + "type": "endpoint", "attrs": { - "title": "Local reproduction", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "local-reproduction", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/users/{id}", + "operationId": "updateUser", + "summary": "Update user (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-relationship-to-sbom-and-dependency-track", - "type": "concept", + "id": "api:HTTP:DELETE:/users/{id}", + "type": "endpoint", "attrs": { - "title": "Relationship to SBOM and Dependency Track", - "docPath": "docs/agenstra/security/ci-security-scanning.md", - "sectionAnchor": "relationship-to-sbom-and-dependency-track", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/users/{id}", + "operationId": "deleteUser", + "summary": "Delete user (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", - "type": "concept", + "id": "api:HTTP:POST:/users/{id}/lock", + "type": "endpoint", "attrs": { - "title": "Compliance and standards (EU CRA and BSI IT-Grundschutz)", - "docPath": "docs/agenstra/security/compliance-and-standards.md", - "sectionAnchor": "compliance-and-standards-eu-cra-and-bsi-it-grundschutz", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/users/{id}/lock", + "operationId": "lockUser", + "summary": "Lock user account (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-eu-cyber-resilience-act-cra", - "type": "concept", + "id": "api:HTTP:POST:/users/{id}/unlock", + "type": "endpoint", "attrs": { - "title": "EU Cyber Resilience Act (CRA)", - "docPath": "docs/agenstra/security/compliance-and-standards.md", - "sectionAnchor": "eu-cyber-resilience-act-cra", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/users/{id}/unlock", + "operationId": "unlockUser", + "summary": "Unlock user account (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-bsi-it-grundschutz", - "type": "concept", + "id": "api:HTTP:GET:/filter-rules", + "type": "endpoint", "attrs": { - "title": "BSI IT-Grundschutz", - "docPath": "docs/agenstra/security/compliance-and-standards.md", - "sectionAnchor": "bsi-it-grundschutz", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/filter-rules", + "operationId": "listFilterRules", + "summary": "List regex filter rules (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-trust-boundaries-summary", - "type": "concept", + "id": "api:HTTP:POST:/filter-rules", + "type": "endpoint", "attrs": { - "title": "Trust boundaries (summary)", - "docPath": "docs/agenstra/security/compliance-and-standards.md", - "sectionAnchor": "trust-boundaries-summary", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/filter-rules", + "operationId": "createFilterRule", + "summary": "Create filter rule (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-container-image-security", - "type": "concept", + "id": "api:HTTP:GET:/filter-rules/{id}", + "type": "endpoint", "attrs": { - "title": "Container image security", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "container-image-security", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/filter-rules/{id}", + "operationId": "getFilterRule", + "summary": "Get filter rule (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-runtime-users", - "type": "concept", + "id": "api:HTTP:PUT:/filter-rules/{id}", + "type": "endpoint", "attrs": { - "title": "Runtime users", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "runtime-users", - "domain": "agenstra" + "method": "PUT", + "pathOrChannel": "/filter-rules/{id}", + "operationId": "updateFilterRule", + "summary": "Update filter rule (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-agent-workload-bind-mounts", - "type": "concept", + "id": "api:HTTP:DELETE:/filter-rules/{id}", + "type": "endpoint", "attrs": { - "title": "Agent workload bind mounts", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "agent-workload-bind-mounts", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/filter-rules/{id}", + "operationId": "deleteFilterRule", + "summary": "Delete filter rule (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-restricted-sudo", - "type": "concept", + "id": "api:HTTP:GET:/imports/atlassian/connections", + "type": "endpoint", "attrs": { - "title": "Restricted `sudo`", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "restricted-sudo", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/imports/atlassian/connections", + "operationId": "listAtlassianSiteConnections", + "summary": "List Atlassian site connections (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-manager-and-controller-api-images", - "type": "concept", + "id": "api:HTTP:POST:/imports/atlassian/connections", + "type": "endpoint", "attrs": { - "title": "Manager and controller API images", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "manager-and-controller-api-images", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/imports/atlassian/connections", + "operationId": "createAtlassianSiteConnection", + "summary": "Create Atlassian site connection (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-ssh-sidecar-image", - "type": "concept", + "id": "api:HTTP:GET:/imports/atlassian/connections/{id}", + "type": "endpoint", "attrs": { - "title": "SSH sidecar image", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "ssh-sidecar-image", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/imports/atlassian/connections/{id}", + "operationId": "getAtlassianSiteConnection", + "summary": "Get Atlassian site connection (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-vnc-image", - "type": "concept", + "id": "api:HTTP:PUT:/imports/atlassian/connections/{id}", + "type": "endpoint", "attrs": { - "title": "VNC image", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "vnc-image", - "domain": "agenstra" + "method": "PUT", + "pathOrChannel": "/imports/atlassian/connections/{id}", + "operationId": "updateAtlassianSiteConnection", + "summary": "Update Atlassian site connection (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-openclaw-agi-image", - "type": "concept", + "id": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", + "type": "endpoint", "attrs": { - "title": "OpenClaw (agi) image", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "openclaw-agi-image", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/imports/atlassian/connections/{id}", + "operationId": "deleteAtlassianSiteConnection", + "summary": "Delete Atlassian site connection (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-coordinated-upgrades", - "type": "concept", + "id": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", + "type": "endpoint", "attrs": { - "title": "Coordinated upgrades", - "docPath": "docs/agenstra/security/container-images.md", - "sectionAnchor": "coordinated-upgrades", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/imports/atlassian/connections/{id}/test", + "operationId": "testAtlassianSiteConnection", + "summary": "Test Atlassian connection (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-operational-hardening", - "type": "concept", + "id": "api:HTTP:GET:/imports/atlassian/configs", + "type": "endpoint", "attrs": { - "title": "Operational hardening", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "operational-hardening", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/imports/atlassian/configs", + "operationId": "listExternalImportConfigs", + "summary": "List external import configs (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-container-images-docker", - "type": "concept", + "id": "api:HTTP:POST:/imports/atlassian/configs", + "type": "endpoint", "attrs": { - "title": "Container images (Docker)", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "container-images-docker", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/imports/atlassian/configs", + "operationId": "createExternalImportConfig", + "summary": "Create import config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-authentication-mode-backends", - "type": "concept", + "id": "api:HTTP:GET:/imports/atlassian/configs/{id}", + "type": "endpoint", "attrs": { - "title": "Authentication mode (backends)", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "authentication-mode-backends", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/imports/atlassian/configs/{id}", + "operationId": "getExternalImportConfig", + "summary": "Get import config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-agent-controller-remote-client-endpoints-ssrf", - "type": "concept", + "id": "api:HTTP:PUT:/imports/atlassian/configs/{id}", + "type": "endpoint", "attrs": { - "title": "Agent Controller - remote client endpoints (SSRF)", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "agent-controller-remote-client-endpoints-ssrf", - "domain": "agenstra" + "method": "PUT", + "pathOrChannel": "/imports/atlassian/configs/{id}", + "operationId": "updateExternalImportConfig", + "summary": "Update import config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-http-proxy-to-remote-agent-manager-headers", - "type": "concept", + "id": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", + "type": "endpoint", "attrs": { - "title": "HTTP proxy to remote agent-manager - headers", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "http-proxy-to-remote-agent-manager-headers", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/imports/atlassian/configs/{id}", + "operationId": "deleteExternalImportConfig", + "summary": "Delete import config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-logging-and-correlation", - "type": "concept", + "id": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", + "type": "endpoint", "attrs": { - "title": "Logging and correlation", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "logging-and-correlation", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/imports/atlassian/configs/{id}/run", + "operationId": "runExternalImportConfig", + "summary": "Run import once for config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-frontend-runtime-configuration-get-config", - "type": "concept", + "id": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", + "type": "endpoint", "attrs": { - "title": "Frontend runtime configuration (`GET /config`)", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "frontend-runtime-configuration-get-config", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/imports/atlassian/configs/{id}/markers", + "operationId": "clearExternalImportMarkers", + "summary": "Clear sync markers for config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-content-security-policy-frontend-express", - "type": "concept", + "id": "api:HTTP:GET:/tickets", + "type": "endpoint", "attrs": { - "title": "Content Security Policy (frontend Express)", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "content-security-policy-frontend-express", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets", + "operationId": "listTickets", + "summary": "List project tickets", + "specKind": "openapi" } }, { - "id": "concept:agenstra-websocket-cors-agent-controller", - "type": "concept", + "id": "api:HTTP:POST:/tickets", + "type": "endpoint", "attrs": { - "title": "WebSocket CORS (Agent Controller)", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "websocket-cors-agent-controller", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets", + "operationId": "createTicket", + "summary": "Create ticket", + "specKind": "openapi" } }, { - "id": "concept:agenstra-origin-allowlist-unsafe-http-methods", - "type": "concept", + "id": "api:HTTP:GET:/tickets/{id}", + "type": "endpoint", "attrs": { - "title": "Origin allowlist (unsafe HTTP methods)", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "origin-allowlist-unsafe-http-methods", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets/{id}", + "operationId": "getTicket", + "summary": "Get ticket", + "specKind": "openapi" } }, { - "id": "concept:agenstra-electron-shell-new-windows", - "type": "concept", + "id": "api:HTTP:PATCH:/tickets/{id}", + "type": "endpoint", "attrs": { - "title": "Electron shell - new windows", - "docPath": "docs/agenstra/security/operational-hardening.md", - "sectionAnchor": "electron-shell-new-windows", - "domain": "agenstra" + "method": "PATCH", + "pathOrChannel": "/tickets/{id}", + "operationId": "updateTicket", + "summary": "Update ticket", + "specKind": "openapi" } }, { - "id": "concept:agenstra-vulnerability-reporting-and-artifacts", - "type": "concept", + "id": "api:HTTP:DELETE:/tickets/{id}", + "type": "endpoint", "attrs": { - "title": "Vulnerability reporting and artifacts", - "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "vulnerability-reporting-and-artifacts", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/tickets/{id}", + "operationId": "deleteTicket", + "summary": "Delete ticket", + "specKind": "openapi" } }, { - "id": "concept:agenstra-supported-versions-and-security-updates", - "type": "concept", + "id": "api:HTTP:GET:/tickets/{id}/prototype-prompt", + "type": "endpoint", "attrs": { - "title": "Supported versions and security updates", - "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "supported-versions-and-security-updates", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets/{id}/prototype-prompt", + "operationId": "getTicketPrototypePrompt", + "summary": "Build prototype prompt for ticket tree", + "specKind": "openapi" } }, { - "id": "concept:agenstra-our-response-commitment", - "type": "concept", + "id": "api:HTTP:GET:/tickets/{id}/comments", + "type": "endpoint", "attrs": { - "title": "Our response commitment", - "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "our-response-commitment", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets/{id}/comments", + "operationId": "listTicketComments", + "summary": "List ticket comments", + "specKind": "openapi" } }, { - "id": "concept:agenstra-reporting-a-vulnerability", - "type": "concept", + "id": "api:HTTP:POST:/tickets/{id}/comments", + "type": "endpoint", "attrs": { - "title": "Reporting a vulnerability", - "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "reporting-a-vulnerability", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets/{id}/comments", + "operationId": "addTicketComment", + "summary": "Add ticket comment", + "specKind": "openapi" } }, { - "id": "concept:agenstra-continuous-scanning-ci", - "type": "concept", + "id": "api:HTTP:GET:/tickets/{id}/activity", + "type": "endpoint", "attrs": { - "title": "Continuous scanning (CI)", - "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "continuous-scanning-ci", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets/{id}/activity", + "operationId": "listTicketActivity", + "summary": "List ticket activity", + "specKind": "openapi" } }, { - "id": "concept:agenstra-software-bill-of-materials-sbom", - "type": "concept", + "id": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", + "type": "endpoint", "attrs": { - "title": "Software Bill of Materials (SBOM)", - "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "software-bill-of-materials-sbom", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets/{id}/body-generation-sessions", + "operationId": "startTicketBodyGenerationSession", + "summary": "Start AI body generation session", + "specKind": "openapi" } }, { - "id": "concept:agenstra-desktop-release-integrity", - "type": "concept", + "id": "api:HTTP:POST:/tickets/{id}/apply-generated-body", + "type": "endpoint", "attrs": { - "title": "Desktop release integrity", - "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "desktop-release-integrity", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets/{id}/apply-generated-body", + "operationId": "applyTicketGeneratedBody", + "summary": "Apply AI-generated ticket body", + "specKind": "openapi" } }, { - "id": "concept:agenstra-troubleshooting-documentation", - "type": "concept", + "id": "api:HTTP:POST:/tickets/{id}/migrate", + "type": "endpoint", "attrs": { - "title": "Troubleshooting Documentation", - "docPath": "docs/agenstra/troubleshooting/README.md", - "sectionAnchor": "troubleshooting-documentation", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets/{id}/migrate", + "operationId": "migrateTicketToWorkspace", + "summary": "Migrate ticket subtree to another workspace", + "specKind": "openapi" } }, { - "id": "concept:agenstra-troubleshooting-guides", - "type": "concept", + "id": "api:HTTP:GET:/tickets/{ticketId}/automation", + "type": "endpoint", "attrs": { - "title": "Troubleshooting Guides", - "docPath": "docs/agenstra/troubleshooting/README.md", - "sectionAnchor": "troubleshooting-guides", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets/{ticketId}/automation", + "operationId": "getTicketAutomation", + "summary": "Get ticket automation configuration", + "specKind": "openapi" } }, { - "id": "concept:agenstra-quick-troubleshooting", - "type": "concept", + "id": "api:HTTP:PATCH:/tickets/{ticketId}/automation", + "type": "endpoint", "attrs": { - "title": "Quick Troubleshooting", - "docPath": "docs/agenstra/troubleshooting/README.md", - "sectionAnchor": "quick-troubleshooting", - "domain": "agenstra" + "method": "PATCH", + "pathOrChannel": "/tickets/{ticketId}/automation", + "operationId": "patchTicketAutomation", + "summary": "Update ticket automation configuration", + "specKind": "openapi" } }, { - "id": "concept:agenstra-getting-help", - "type": "concept", + "id": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", + "type": "endpoint", "attrs": { - "title": "Getting Help", - "docPath": "docs/agenstra/troubleshooting/README.md", - "sectionAnchor": "getting-help", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets/{ticketId}/automation/approve", + "operationId": "approveTicketAutomation", + "summary": "Approve automation run (when requiresApproval is true)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-common-issues", - "type": "concept", + "id": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", + "type": "endpoint", "attrs": { - "title": "Common Issues", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "common-issues", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets/{ticketId}/automation/unapprove", + "operationId": "unapproveTicketAutomation", + "summary": "Revoke automation approval (when requiresApproval is true)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-connection-issues", - "type": "concept", + "id": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", + "type": "endpoint", "attrs": { - "title": "Connection Issues", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "connection-issues", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets/{ticketId}/automation/runs", + "operationId": "listTicketAutomationRuns", + "summary": "List automation runs for a ticket", + "specKind": "openapi" } }, { - "id": "concept:agenstra-authentication-problems", - "type": "concept", + "id": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", + "type": "endpoint", "attrs": { - "title": "Authentication Problems", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "authentication-problems", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/tickets/{ticketId}/automation/runs/{runId}", + "operationId": "getTicketAutomationRun", + "summary": "Get automation run detail including steps", + "specKind": "openapi" } }, { - "id": "concept:agenstra-container-issues", - "type": "concept", + "id": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", + "type": "endpoint", "attrs": { - "title": "Container Issues", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "container-issues", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/tickets/{ticketId}/automation/runs/{runId}/cancel", + "operationId": "cancelTicketAutomationRun", + "summary": "Cancel a pending or running automation run", + "specKind": "openapi" } }, { - "id": "concept:agenstra-database-issues", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", + "type": "endpoint", "attrs": { - "title": "Database Issues", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "database-issues", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/agent-autonomy/enabled-agent-ids", + "operationId": "listEnabledAutonomyAgentIds", + "summary": "List agent IDs with prototype autonomy enabled for this client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-websocket-problems", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", + "type": "endpoint", "attrs": { - "title": "WebSocket Problems", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "websocket-problems", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/autonomy", + "operationId": "getClientAgentAutonomy", + "summary": "Get per-agent autonomy settings", + "specKind": "openapi" } }, { - "id": "concept:agenstra-file-operation-errors", - "type": "concept", + "id": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", + "type": "endpoint", "attrs": { - "title": "File Operation Errors", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "file-operation-errors", - "domain": "agenstra" + "method": "PUT", + "pathOrChannel": "/clients/{id}/agents/{agentId}/autonomy", + "operationId": "upsertClientAgentAutonomy", + "summary": "Create or update per-agent autonomy settings", + "specKind": "openapi" } }, { - "id": "concept:agenstra-rate-limiting-issues", - "type": "concept", + "id": "api:HTTP:GET:/clients", + "type": "endpoint", "attrs": { - "title": "Rate Limiting Issues", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "rate-limiting-issues", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients", + "operationId": "listClients", + "summary": "List clients", + "specKind": "openapi" } }, { - "id": "concept:agenstra-cors-issues", - "type": "concept", + "id": "api:HTTP:POST:/clients", + "type": "endpoint", "attrs": { - "title": "CORS Issues", - "docPath": "docs/agenstra/troubleshooting/common-issues.md", - "sectionAnchor": "cors-issues", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients", + "operationId": "createClient", + "summary": "Create client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-debugging-guide", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}", + "type": "endpoint", "attrs": { - "title": "Debugging Guide", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "debugging-guide", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}", + "operationId": "getClient", + "summary": "Get client by id", + "specKind": "openapi" } }, { - "id": "concept:agenstra-logs-appear-in-console", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}", + "type": "endpoint", "attrs": { - "title": "Logs appear in console", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "logs-appear-in-console", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients/{id}", + "operationId": "updateClient", + "summary": "Update client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-docker-containers", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}", + "type": "endpoint", "attrs": { - "title": "Docker containers", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "docker-containers", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/clients/{id}", + "operationId": "deleteClient", + "summary": "Delete client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-debugging-tools", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/users", + "type": "endpoint", "attrs": { - "title": "Debugging Tools", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "debugging-tools", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/users", + "operationId": "getClientUsers", + "summary": "List users associated with a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-view-container-logs", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/users", + "type": "endpoint", "attrs": { - "title": "View container logs", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "view-container-logs", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients/{id}/users", + "operationId": "addClientUser", + "summary": "Add a user to a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-execute-commands-in-container", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", + "type": "endpoint", "attrs": { - "title": "Execute commands in container", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "execute-commands-in-container", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/users/{relationshipId}", + "operationId": "removeClientUser", + "summary": "Remove a user from a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-inspect-container", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents", + "type": "endpoint", "attrs": { - "title": "Inspect container", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "inspect-container", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents", + "operationId": "listClientAgents", + "summary": "List agents for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-view-container-stats", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents", + "type": "endpoint", "attrs": { - "title": "View container stats", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "view-container-stats", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents", + "operationId": "createClientAgent", + "summary": "Create agent for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-connect-to-database", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}", + "type": "endpoint", "attrs": { - "title": "Connect to database", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "connect-to-database", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}", + "operationId": "getClientAgent", + "summary": "Get agent by id for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-view-tables", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}", + "type": "endpoint", "attrs": { - "title": "View tables", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "view-tables", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}", + "operationId": "updateClientAgent", + "summary": "Update agent for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-query-data", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", + "type": "endpoint", "attrs": { - "title": "Query data", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "query-data", - "domain": "agenstra" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/agents/{agentId}", + "operationId": "deleteClientAgent", + "summary": "Delete agent for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-common-debugging-scenarios", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", + "type": "endpoint", "attrs": { - "title": "Common Debugging Scenarios", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "common-debugging-scenarios", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/models", + "operationId": "listClientAgentModels", + "summary": "List models for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-performance-debugging", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", + "type": "endpoint", "attrs": { - "title": "Performance Debugging", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "performance-debugging", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/start", + "operationId": "startClientAgent", + "summary": "Start agent environment for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-network-debugging", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", + "type": "endpoint", "attrs": { - "title": "Network Debugging", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "network-debugging", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/stop", + "operationId": "stopClientAgent", + "summary": "Stop agent environment for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-test-api-endpoint", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", + "type": "endpoint", "attrs": { - "title": "Test API endpoint", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "test-api-endpoint", - "domain": "agenstra" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/restart", + "operationId": "restartClientAgent", + "summary": "Restart agent environment for a client", + "specKind": "openapi" } }, { - "id": "concept:agenstra-test-with-authentication", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", + "type": "endpoint", "attrs": { - "title": "Test with authentication", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "test-with-authentication", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/files", + "operationId": "listClientAgentDirectory", + "summary": "List directory contents (proxied)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-using-wscat", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Using wscat", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "using-wscat", - "domain": "agenstra" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", + "operationId": "readClientAgentFile", + "summary": "Read file content (proxied)", + "specKind": "openapi" } }, { - "id": "concept:agenstra-send-event", - "type": "concept", + "id": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Send event", - "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", - "sectionAnchor": "send-event", - "domain": "agenstra" + "method": "PUT", + "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", + "operationId": "writeClientAgentFile", + "summary": "Write file content (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-decabill-documentation", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Decabill Documentation", - "docPath": "docs/decabill/README.md", - "sectionAnchor": "decabill-documentation", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", + "operationId": "deleteClientAgentFileOrDirectory", + "summary": "Delete file or directory (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-what-is-decabill", - "type": "concept", + "id": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "What is Decabill?", - "docPath": "docs/decabill/README.md", - "sectionAnchor": "what-is-decabill", - "domain": "decabill" + "method": "PATCH", + "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", + "operationId": "moveClientAgentFileOrDirectory", + "summary": "Move file or directory (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-documentation-structure", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Documentation Structure", - "docPath": "docs/decabill/README.md", - "sectionAnchor": "documentation-structure", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/files/{path}", + "operationId": "createClientAgentFileOrDirectory", + "summary": "Create file or directory (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-quick-start", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", + "type": "endpoint", "attrs": { - "title": "Quick Start", - "docPath": "docs/decabill/README.md", - "sectionAnchor": "quick-start", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/environment", + "operationId": "listClientAgentEnvironmentVariables", + "summary": "List environment variables for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-system-architecture", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", + "type": "endpoint", "attrs": { - "title": "System Architecture", - "docPath": "docs/decabill/README.md", - "sectionAnchor": "system-architecture", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/environment", + "operationId": "createClientAgentEnvironmentVariable", + "summary": "Create environment variable for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-external-resources", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", + "type": "endpoint", "attrs": { - "title": "External Resources", - "docPath": "docs/decabill/README.md", - "sectionAnchor": "external-resources", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/agents/{agentId}/environment", + "operationId": "deleteAllClientAgentEnvironmentVariables", + "summary": "Delete all environment variables for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-licensing", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", + "type": "endpoint", "attrs": { - "title": "Licensing", - "docPath": "docs/decabill/README.md", - "sectionAnchor": "licensing", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/environment/count", + "operationId": "countClientAgentEnvironmentVariables", + "summary": "Get count of environment variables for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-api-reference", - "type": "concept", + "id": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "type": "endpoint", "attrs": { - "title": "API Reference", - "docPath": "docs/decabill/api-reference/README.md", - "sectionAnchor": "api-reference", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/clients/{id}/agents/{agentId}/environment/{envVarId}", + "operationId": "updateClientAgentEnvironmentVariable", + "summary": "Update environment variable for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-billing-manager-http-api", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "type": "endpoint", "attrs": { - "title": "Billing Manager HTTP API", - "docPath": "docs/decabill/api-reference/README.md", - "sectionAnchor": "billing-manager-http-api", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/agents/{agentId}/environment/{envVarId}", + "operationId": "deleteClientAgentEnvironmentVariable", + "summary": "Delete environment variable for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-billing-manager-websocket-gateways", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/configuration-overrides", + "type": "endpoint", "attrs": { - "title": "Billing Manager WebSocket Gateways", - "docPath": "docs/decabill/api-reference/README.md", - "sectionAnchor": "billing-manager-websocket-gateways", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/configuration-overrides", + "operationId": "listClientWorkspaceConfigurationOverrides", + "summary": "List effective workspace configuration overrides (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-using-the-specifications", - "type": "concept", + "id": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", + "type": "endpoint", "attrs": { - "title": "Using the Specifications", - "docPath": "docs/decabill/api-reference/README.md", - "sectionAnchor": "using-the-specifications", - "domain": "decabill" - } - }, - { - "id": "concept:decabill-generated-client-package", - "type": "concept", - "attrs": { - "title": "Generated Client Package", - "docPath": "docs/decabill/api-reference/README.md", - "sectionAnchor": "generated-client-package", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/clients/{id}/configuration-overrides/{settingKey}", + "operationId": "upsertClientWorkspaceConfigurationOverride", + "summary": "Create or update a workspace configuration override (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-related-documentation", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", + "type": "endpoint", "attrs": { - "title": "Related Documentation", - "docPath": "docs/decabill/api-reference/README.md", - "sectionAnchor": "related-documentation", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/configuration-overrides/{settingKey}", + "operationId": "deleteClientWorkspaceConfigurationOverride", + "summary": "Delete a workspace configuration override (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-applications-documentation", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", + "type": "endpoint", "attrs": { - "title": "Applications Documentation", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "applications-documentation", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/status", + "operationId": "getClientAgentGitStatus", + "summary": "Get git status (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-overview", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", + "type": "endpoint", "attrs": { - "title": "Overview", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "overview", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches", + "operationId": "getClientAgentGitBranches", + "summary": "List all branches (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-applications", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", + "type": "endpoint", "attrs": { - "title": "Applications", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "applications", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches", + "operationId": "createClientAgentGitBranch", + "summary": "Create a new branch (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-application-relationships", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", + "type": "endpoint", "attrs": { - "title": "Application Relationships", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "application-relationships", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches/{branch}", + "operationId": "deleteClientAgentGitBranch", + "summary": "Delete a branch (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-communication-patterns", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", + "type": "endpoint", "attrs": { - "title": "Communication Patterns", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "communication-patterns", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", + "operationId": "switchClientAgentGitBranch", + "summary": "Switch to a branch (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-build-and-run-commands", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", + "type": "endpoint", "attrs": { - "title": "Build and Run Commands", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "build-and-run-commands", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/diff", + "operationId": "getClientAgentGitFileDiff", + "summary": "Get file diff (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-backend", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", + "type": "endpoint", "attrs": { - "title": "Backend", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "backend", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/stage", + "operationId": "stageClientAgentFiles", + "summary": "Stage files (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-frontend", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", + "type": "endpoint", "attrs": { - "title": "Frontend", - "docPath": "docs/decabill/applications/README.md", - "sectionAnchor": "frontend", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/unstage", + "operationId": "unstageClientAgentFiles", + "summary": "Unstage files (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-backend-billing-manager", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", + "type": "endpoint", "attrs": { - "title": "Backend Billing Manager", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "backend-billing-manager", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/commit", + "operationId": "commitClientAgentChanges", + "summary": "Commit staged changes (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-purpose", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", + "type": "endpoint", "attrs": { - "title": "Purpose", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "purpose", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/push", + "operationId": "pushClientAgentChanges", + "summary": "Push changes to remote (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-features", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", + "type": "endpoint", "attrs": { - "title": "Features", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "features", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/pull", + "operationId": "pullClientAgentChanges", + "summary": "Pull changes from remote (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-architecture", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", + "type": "endpoint", "attrs": { - "title": "Architecture", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "architecture", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/fetch", + "operationId": "fetchClientAgentChanges", + "summary": "Fetch changes from remote (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-ports-and-network-surfaces", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", + "type": "endpoint", "attrs": { - "title": "Ports and Network Surfaces", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "ports-and-network-surfaces", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", + "operationId": "prepareCleanClientAgentWorkspace", + "summary": "Prepare clean workspace (fetch, reset --hard, clean) — proxied", + "specKind": "openapi" } }, { - "id": "concept:decabill-queue-roles", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", + "type": "endpoint", "attrs": { - "title": "Queue Roles", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "queue-roles", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/automation/verify-commands", + "operationId": "runClientAgentVerifierCommands", + "summary": "Run verifier shell commands in agent container (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-docker-image", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", + "type": "endpoint", "attrs": { - "title": "Docker Image", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "docker-image", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/rebase", + "operationId": "rebaseClientAgentBranch", + "summary": "Rebase current branch (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", + "type": "endpoint", "attrs": { - "title": "Authentication", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "authentication", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", + "operationId": "resolveClientAgentConflict", + "summary": "Resolve merge conflict (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-major-api-areas", - "type": "concept", + "id": "api:HTTP:GET:/clients/provisioning/providers", + "type": "endpoint", "attrs": { - "title": "Major API Areas", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "major-api-areas", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/provisioning/providers", + "operationId": "listProvisioningProviders", + "summary": "List available provisioning providers", + "specKind": "openapi" } }, { - "id": "concept:decabill-websocket-gateways", - "type": "concept", + "id": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", + "type": "endpoint", "attrs": { - "title": "WebSocket Gateways", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "websocket-gateways", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/provisioning/providers/{providerType}/server-types", + "operationId": "getServerTypes", + "summary": "Get available server types for a provisioning provider", + "specKind": "openapi" } }, { - "id": "concept:decabill-stripe-and-provisioning", - "type": "concept", + "id": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", + "type": "endpoint", "attrs": { - "title": "Stripe and Provisioning", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "stripe-and-provisioning", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/provisioning/providers/{providerType}/locations", + "operationId": "getProviderLocations", + "summary": "Get available geography options for a provisioning provider", + "specKind": "openapi" } }, { - "id": "concept:decabill-development-commands", - "type": "concept", + "id": "api:HTTP:POST:/clients/provisioning/provision", + "type": "endpoint", "attrs": { - "title": "Development Commands", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "development-commands", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/provisioning/provision", + "operationId": "provisionServer", + "summary": "Provision a new server and create a client", + "specKind": "openapi" } }, { - "id": "concept:decabill-run-locally-set-queue-role-all-in-env", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/provisioning/info", + "type": "endpoint", "attrs": { - "title": "Run locally (set QUEUE_ROLE=all in .env)", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "run-locally-set-queue-role-all-in-env", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/provisioning/info", + "operationId": "getServerInfo", + "summary": "Get server information for a provisioned client", + "specKind": "openapi" } }, { - "id": "concept:decabill-build", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/provisioning", + "type": "endpoint", "attrs": { - "title": "Build", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "build", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/provisioning", + "operationId": "deleteProvisionedServer", + "summary": "Delete a provisioned server and its associated client", + "specKind": "openapi" } }, { - "id": "concept:decabill-tests", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "endpoint", "attrs": { - "title": "Tests", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "tests", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/configuration", + "operationId": "getClientAgentDeploymentConfiguration", + "summary": "Get deployment configuration for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-generate-typescript-client-from-openapi", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "endpoint", "attrs": { - "title": "Generate TypeScript client from OpenAPI", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "generate-typescript-client-from-openapi", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/configuration", + "operationId": "upsertClientAgentDeploymentConfiguration", + "summary": "Create or update deployment configuration for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-bull-board-local", - "type": "concept", + "id": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "endpoint", "attrs": { - "title": "Bull Board (Local)", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "bull-board-local", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/configuration", + "operationId": "deleteClientAgentDeploymentConfiguration", + "summary": "Delete deployment configuration for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-license", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", + "type": "endpoint", "attrs": { - "title": "License", - "docPath": "docs/decabill/applications/backend-billing-manager.md", - "sectionAnchor": "license", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/repositories", + "operationId": "listClientAgentDeploymentRepositories", + "summary": "List repositories accessible with the agent's deployment configuration (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-frontend-billing-console", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "type": "endpoint", "attrs": { - "title": "Frontend Billing Console", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "frontend-billing-console", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "operationId": "listClientAgentDeploymentBranches", + "summary": "List branches for a repository (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-routes-overview", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "type": "endpoint", "attrs": { - "title": "Routes Overview", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "routes-overview", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "operationId": "listClientAgentDeploymentWorkflows", + "summary": "List workflows for a repository (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-express-ssr-server", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", + "type": "endpoint", "attrs": { - "title": "Express SSR Server", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "express-ssr-server", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/workflows/trigger", + "operationId": "triggerClientAgentDeploymentWorkflow", + "summary": "Trigger a workflow run (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-configuration", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", + "type": "endpoint", "attrs": { - "title": "Configuration", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "configuration", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs", + "operationId": "listClientAgentDeploymentRuns", + "summary": "List deployment runs for an agent (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-ngrx-state-slices", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", + "type": "endpoint", "attrs": { - "title": "NgRx State Slices", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "ngrx-state-slices", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}", + "operationId": "getClientAgentDeploymentRunStatus", + "summary": "Get the status of a pipeline run (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-dev-server-port-4500", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", + "type": "endpoint", "attrs": { - "title": "Dev server (port 4500)", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "dev-server-port-4500", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", + "operationId": "getClientAgentDeploymentRunLogs", + "summary": "Get logs for a pipeline run (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-production-build-localized", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", + "type": "endpoint", "attrs": { - "title": "Production build (localized)", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "production-build-localized", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", + "operationId": "listClientAgentDeploymentRunJobs", + "summary": "List jobs/steps for a pipeline run (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-ssr-server-after-build", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "type": "endpoint", "attrs": { - "title": "SSR server after build", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "ssr-server-after-build", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "operationId": "getClientAgentDeploymentJobLogs", + "summary": "Get logs for a specific job/step (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-unit-tests", - "type": "concept", + "id": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", + "type": "endpoint", "attrs": { - "title": "Unit tests", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "unit-tests", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", + "operationId": "cancelClientAgentDeploymentRun", + "summary": "Cancel a running pipeline (proxied)", + "specKind": "openapi" } }, { - "id": "concept:decabill-docker-compose", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/statistics/summary", + "type": "endpoint", "attrs": { - "title": "Docker Compose", - "docPath": "docs/decabill/applications/frontend-billing-console.md", - "sectionAnchor": "docker-compose", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/statistics/summary", + "operationId": "getClientStatisticsSummary", + "summary": "Get statistics summary for a client", + "specKind": "openapi" } }, { - "id": "concept:decabill-architecture-documentation", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/statistics/chat-io", + "type": "endpoint", "attrs": { - "title": "Architecture Documentation", - "docPath": "docs/decabill/architecture/README.md", - "sectionAnchor": "architecture-documentation", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/statistics/chat-io", + "operationId": "getClientStatisticsChatIo", + "summary": "Get chat I/O records for a client", + "specKind": "openapi" } }, { - "id": "concept:decabill-key-architectural-concepts", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", + "type": "endpoint", "attrs": { - "title": "Key Architectural Concepts", - "docPath": "docs/decabill/architecture/README.md", - "sectionAnchor": "key-architectural-concepts", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/statistics/filter-drops", + "operationId": "getClientStatisticsFilterDrops", + "summary": "Get filter drops for a client", + "specKind": "openapi" } }, { - "id": "concept:decabill-architecture-principles", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", + "type": "endpoint", "attrs": { - "title": "Architecture Principles", - "docPath": "docs/decabill/architecture/README.md", - "sectionAnchor": "architecture-principles", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/statistics/filter-flags", + "operationId": "getClientStatisticsFilterFlags", + "summary": "Get filter flags for a client", + "specKind": "openapi" } }, { - "id": "concept:decabill-components", - "type": "concept", + "id": "api:HTTP:GET:/clients/{id}/statistics/entity-events", + "type": "endpoint", "attrs": { - "title": "Components", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "components", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/clients/{id}/statistics/entity-events", + "operationId": "getClientStatisticsEntityEvents", + "summary": "Get entity lifecycle events for a client", + "specKind": "openapi" } }, { - "id": "concept:decabill-frontend-landing-page", - "type": "concept", + "id": "api:HTTP:GET:/statistics/summary", + "type": "endpoint", "attrs": { - "title": "Frontend Landing Page", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "frontend-landing-page", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/statistics/summary", + "operationId": "getStatisticsSummary", + "summary": "Get aggregate statistics summary", + "specKind": "openapi" } }, { - "id": "concept:decabill-postgresql", - "type": "concept", + "id": "api:HTTP:GET:/statistics/chat-io", + "type": "endpoint", "attrs": { - "title": "PostgreSQL", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "postgresql", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/statistics/chat-io", + "operationId": "getStatisticsChatIo", + "summary": "Get chat I/O records (aggregate or by client)", + "specKind": "openapi" } }, { - "id": "concept:decabill-redis", - "type": "concept", + "id": "api:HTTP:GET:/statistics/filter-drops", + "type": "endpoint", "attrs": { - "title": "Redis", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "redis", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/statistics/filter-drops", + "operationId": "getStatisticsFilterDrops", + "summary": "Get filter drops (aggregate or by client)", + "specKind": "openapi" } }, { - "id": "concept:decabill-stripe", - "type": "concept", + "id": "api:HTTP:GET:/statistics/filter-flags", + "type": "endpoint", "attrs": { - "title": "Stripe", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "stripe", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/statistics/filter-flags", + "operationId": "getStatisticsFilterFlags", + "summary": "Get filter flags (aggregate or by client)", + "specKind": "openapi" } }, { - "id": "concept:decabill-mailhog-local-only", - "type": "concept", + "id": "api:HTTP:GET:/statistics/entity-events", + "type": "endpoint", "attrs": { - "title": "Mailhog (Local Only)", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "mailhog-local-only", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/statistics/entity-events", + "operationId": "getStatisticsEntityEvents", + "summary": "Get entity events (aggregate or by client)", + "specKind": "openapi" } }, { - "id": "concept:decabill-cloud-providers", - "type": "concept", + "id": "api:HTTP:GET:/admin/webhooks/event-types", + "type": "endpoint", "attrs": { - "title": "Cloud Providers", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "cloud-providers", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/webhooks/event-types", + "operationId": "listAgenstraWebhookEventTypes", + "summary": "List webhook event types (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-component-dependencies", - "type": "concept", + "id": "api:HTTP:GET:/admin/webhooks", + "type": "endpoint", "attrs": { - "title": "Component Dependencies", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "component-dependencies", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/webhooks", + "operationId": "listAgenstraWebhookEndpoints", + "summary": "List webhook endpoints (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-external-dependencies", - "type": "concept", + "id": "api:HTTP:POST:/admin/webhooks", + "type": "endpoint", "attrs": { - "title": "External Dependencies", - "docPath": "docs/decabill/architecture/components.md", - "sectionAnchor": "external-dependencies", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/webhooks", + "operationId": "createAgenstraWebhookEndpoint", + "summary": "Create webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-data-flow", - "type": "concept", + "id": "api:HTTP:GET:/admin/webhooks/{id}", + "type": "endpoint", "attrs": { - "title": "Data Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "data-flow", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/webhooks/{id}", + "operationId": "getAgenstraWebhookEndpoint", + "summary": "Get webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-http-rest-api-flow", - "type": "concept", + "id": "api:HTTP:PUT:/admin/webhooks/{id}", + "type": "endpoint", "attrs": { - "title": "HTTP REST API Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "http-rest-api-flow", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/admin/webhooks/{id}", + "operationId": "updateAgenstraWebhookEndpoint", + "summary": "Update webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-websocket-dashboard-flow", - "type": "concept", + "id": "api:HTTP:DELETE:/admin/webhooks/{id}", + "type": "endpoint", "attrs": { - "title": "WebSocket Dashboard Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "websocket-dashboard-flow", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/admin/webhooks/{id}", + "operationId": "deleteAgenstraWebhookEndpoint", + "summary": "Delete webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-stripe-redirect-and-webhook-flow", - "type": "concept", + "id": "api:HTTP:POST:/admin/webhooks/{id}/test", + "type": "endpoint", "attrs": { - "title": "Stripe Redirect and Webhook Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "stripe-redirect-and-webhook-flow", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/webhooks/{id}/test", + "operationId": "testAgenstraWebhookEndpoint", + "summary": "Send test webhook delivery (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-open-position-and-billing-day-flow", - "type": "concept", + "id": "api:HTTP:GET:/admin/webhooks/{id}/deliveries", + "type": "endpoint", "attrs": { - "title": "Open Position and Billing Day Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "open-position-and-billing-day-flow", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/webhooks/{id}/deliveries", + "operationId": "listAgenstraWebhookDeliveries", + "summary": "List webhook deliveries (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-server-provisioning-flow", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:chat_message.created", + "type": "webhook-event", "attrs": { - "title": "Server Provisioning Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "server-provisioning-flow", - "domain": "decabill" + "eventName": "chat_message.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-backorder-retry-flow", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:client_user.created", + "type": "webhook-event", "attrs": { - "title": "Backorder Retry Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "backorder-retry-flow", - "domain": "decabill" + "eventName": "client_user.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-admin-manual-invoice-flow", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:client_user.deleted", + "type": "webhook-event", "attrs": { - "title": "Admin Manual Invoice Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "admin-manual-invoice-flow", - "domain": "decabill" + "eventName": "client_user.deleted", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-multi-tenant-request-flow", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:client.created", + "type": "webhook-event", "attrs": { - "title": "Multi-Tenant Request Flow", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "multi-tenant-request-flow", - "domain": "decabill" + "eventName": "client.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-state-management-flow-ngrx", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:client.deleted", + "type": "webhook-event", "attrs": { - "title": "State Management Flow (NgRx)", - "docPath": "docs/decabill/architecture/data-flow.md", - "sectionAnchor": "state-management-flow-ngrx", - "domain": "decabill" + "eventName": "client.deleted", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-system-overview", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:client.updated", + "type": "webhook-event", "attrs": { - "title": "System Overview", - "docPath": "docs/decabill/architecture/system-overview.md", - "sectionAnchor": "system-overview", - "domain": "decabill" + "eventName": "client.updated", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-two-tier-architecture", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:environment.created", + "type": "webhook-event", "attrs": { - "title": "Two-Tier Architecture", - "docPath": "docs/decabill/architecture/system-overview.md", - "sectionAnchor": "two-tier-architecture", - "domain": "decabill" + "eventName": "environment.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-component-relationships", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:environment.deleted", + "type": "webhook-event", "attrs": { - "title": "Component Relationships", - "docPath": "docs/decabill/architecture/system-overview.md", - "sectionAnchor": "component-relationships", - "domain": "decabill" + "eventName": "environment.deleted", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-deployment-topology", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:environment.updated", + "type": "webhook-event", "attrs": { - "title": "Deployment Topology", - "docPath": "docs/decabill/architecture/system-overview.md", - "sectionAnchor": "deployment-topology", - "domain": "decabill" + "eventName": "environment.updated", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-data-boundaries", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.created", + "type": "webhook-event", "attrs": { - "title": "Data Boundaries", - "docPath": "docs/decabill/architecture/system-overview.md", - "sectionAnchor": "data-boundaries", - "domain": "decabill" + "eventName": "filter_rule.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-deployment-documentation", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.deleted", + "type": "webhook-event", "attrs": { - "title": "Deployment Documentation", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "deployment-documentation", - "domain": "decabill" + "eventName": "filter_rule.deleted", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-deployment-guides", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.triggered", + "type": "webhook-event", "attrs": { - "title": "Deployment Guides", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "deployment-guides", - "domain": "decabill" + "eventName": "filter_rule.triggered", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-deployment-architecture", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.updated", + "type": "webhook-event", "attrs": { - "title": "Deployment Architecture", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "deployment-architecture", - "domain": "decabill" + "eventName": "filter_rule.updated", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-billing-manager-api-worker-scheduler-postgres-redis-mailhog", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:ticket.comment.created", + "type": "webhook-event", "attrs": { - "title": "Billing manager (API, worker, scheduler, Postgres, Redis, Mailhog)", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "billing-manager-api-worker-scheduler-postgres-redis-mailhog", - "domain": "decabill" + "eventName": "ticket.comment.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-billing-console-frontend", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:ticket.created", + "type": "webhook-event", "attrs": { - "title": "Billing console frontend", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "billing-console-frontend", - "domain": "decabill" + "eventName": "ticket.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-docs-frontend-optional", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:ticket.deleted", + "type": "webhook-event", "attrs": { - "title": "Docs frontend (optional)", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "docs-frontend-optional", - "domain": "decabill" + "eventName": "ticket.deleted", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-install-dependencies-repository-root", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:ticket.updated", + "type": "webhook-event", "attrs": { - "title": "Install dependencies (repository root)", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "install-dependencies-repository-root", - "domain": "decabill" + "eventName": "ticket.updated", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-start-billing-manager", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:user.created", + "type": "webhook-event", "attrs": { - "title": "Start billing manager", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "start-billing-manager", - "domain": "decabill" + "eventName": "user.created", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-start-billing-console", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:user.deleted", + "type": "webhook-event", "attrs": { - "title": "Start billing console", - "docPath": "docs/decabill/deployment/README.md", - "sectionAnchor": "start-billing-console", - "domain": "decabill" + "eventName": "user.deleted", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-background-jobs-bullmq", - "type": "concept", + "id": "webhook-event:agenstra-backend-feature-agent-controller:user.updated", + "type": "webhook-event", "attrs": { - "title": "Background Jobs (BullMQ)", - "docPath": "docs/decabill/deployment/background-jobs.md", - "sectionAnchor": "background-jobs-bullmq", - "domain": "decabill" + "eventName": "user.updated", + "projectName": "agenstra-backend-feature-agent-controller", + "catalogPath": "libs/domains/agenstra/backend/feature-agent-controller/src/lib/notifications/agenstra-notification.events.ts" } }, { - "id": "concept:decabill-job-registry", - "type": "concept", + "id": "api:channel:billing/subscribeDashboardStatus", + "type": "endpoint", "attrs": { - "title": "Job Registry", - "docPath": "docs/decabill/deployment/background-jobs.md", - "sectionAnchor": "job-registry", - "domain": "decabill" + "pathOrChannel": "billing/subscribeDashboardStatus", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-redis-and-queue-environment-variables", - "type": "concept", + "id": "api:channel:billing/unsubscribeDashboardStatus", + "type": "endpoint", "attrs": { - "title": "Redis and Queue Environment Variables", - "docPath": "docs/decabill/deployment/background-jobs.md", - "sectionAnchor": "redis-and-queue-environment-variables", - "domain": "decabill" + "pathOrChannel": "billing/unsubscribeDashboardStatus", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-bull-board", - "type": "concept", + "id": "api:channel:billing/dashboardStatusUpdate", + "type": "endpoint", "attrs": { - "title": "Bull Board", - "docPath": "docs/decabill/deployment/background-jobs.md", - "sectionAnchor": "bull-board", - "domain": "decabill" + "pathOrChannel": "billing/dashboardStatusUpdate", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-tenant-context-in-jobs", - "type": "concept", + "id": "api:channel:billing/error", + "type": "endpoint", "attrs": { - "title": "Tenant Context in Jobs", - "docPath": "docs/decabill/deployment/background-jobs.md", - "sectionAnchor": "tenant-context-in-jobs", - "domain": "decabill" + "pathOrChannel": "billing/error", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-docker-deployment", - "type": "concept", + "id": "api:channel:projects/setProject", + "type": "endpoint", "attrs": { - "title": "Docker Deployment", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "docker-deployment", - "domain": "decabill" + "pathOrChannel": "projects/setProject", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-prerequisites", - "type": "concept", + "id": "api:channel:projects/setProjectSuccess", + "type": "endpoint", "attrs": { - "title": "Prerequisites", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "prerequisites", - "domain": "decabill" + "pathOrChannel": "projects/setProjectSuccess", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-docker-compose-setup", - "type": "concept", + "id": "api:channel:projects/ticketUpsert", + "type": "endpoint", "attrs": { - "title": "Docker Compose Setup", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "docker-compose-setup", - "domain": "decabill" + "pathOrChannel": "projects/ticketUpsert", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-container-configuration", - "type": "concept", + "id": "api:channel:projects/ticketRemoved", + "type": "endpoint", "attrs": { - "title": "Container Configuration", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "container-configuration", - "domain": "decabill" + "pathOrChannel": "projects/ticketRemoved", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-building-containers", - "type": "concept", + "id": "api:channel:projects/ticketCommentCreated", + "type": "endpoint", "attrs": { - "title": "Building Containers", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "building-containers", - "domain": "decabill" + "pathOrChannel": "projects/ticketCommentCreated", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-billing-api-image", - "type": "concept", + "id": "api:channel:projects/ticketActivityCreated", + "type": "endpoint", "attrs": { - "title": "Billing API image", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "billing-api-image", - "domain": "decabill" + "pathOrChannel": "projects/ticketActivityCreated", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-billing-console-server-image", - "type": "concept", + "id": "api:channel:projects/milestoneUpsert", + "type": "endpoint", "attrs": { - "title": "Billing console server image", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "billing-console-server-image", - "domain": "decabill" + "pathOrChannel": "projects/milestoneUpsert", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-docs-server-image", - "type": "concept", + "id": "api:channel:projects/projectSummaryChanged", + "type": "endpoint", "attrs": { - "title": "Docs server image", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "docs-server-image", - "domain": "decabill" + "pathOrChannel": "projects/projectSummaryChanged", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-container-security-images", - "type": "concept", + "id": "api:channel:projects/error", + "type": "endpoint", "attrs": { - "title": "Container Security (Images)", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "container-security-images", - "domain": "decabill" + "pathOrChannel": "projects/error", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-running-containers", - "type": "concept", + "id": "api:HTTP:GET:/public/service-plan-offerings", + "type": "endpoint", "attrs": { - "title": "Running Containers", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "running-containers", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/public/service-plan-offerings", + "operationId": "listPublicServicePlanOfferings", + "summary": "List public service plan offerings (unauthenticated)", + "specKind": "openapi" } }, { - "id": "concept:decabill-health-checks", - "type": "concept", + "id": "api:HTTP:GET:/public/service-plan-offerings/cheapest", + "type": "endpoint", "attrs": { - "title": "Health Checks", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "health-checks", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/public/service-plan-offerings/cheapest", + "operationId": "getCheapestPublicServicePlanOffering", + "summary": "Get cheapest public service plan offering (unauthenticated)", + "specKind": "openapi" } }, { - "id": "concept:decabill-logging", - "type": "concept", + "id": "api:HTTP:GET:/public/withdrawal/addressee", + "type": "endpoint", "attrs": { - "title": "Logging", - "docPath": "docs/decabill/deployment/docker-deployment.md", - "sectionAnchor": "logging", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/public/withdrawal/addressee", + "operationId": "getPublicWithdrawalAddressee", + "summary": "Get statutory withdrawal addressee (unauthenticated)", + "specKind": "openapi" } }, { - "id": "concept:decabill-environment-configuration", - "type": "concept", + "id": "api:HTTP:POST:/public/withdrawal/request", + "type": "endpoint", "attrs": { - "title": "Environment Configuration", - "docPath": "docs/decabill/deployment/environment-configuration.md", - "sectionAnchor": "environment-configuration", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/public/withdrawal/request", + "operationId": "requestPublicWithdrawal", + "summary": "Request public statutory withdrawal (unauthenticated)", + "specKind": "openapi" } }, { - "id": "concept:decabill-frontend-applications-express-ssr", - "type": "concept", + "id": "api:HTTP:POST:/public/withdrawal/verify-code", + "type": "endpoint", "attrs": { - "title": "Frontend Applications (Express SSR)", - "docPath": "docs/decabill/deployment/environment-configuration.md", - "sectionAnchor": "frontend-applications-express-ssr", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/public/withdrawal/verify-code", + "operationId": "verifyPublicWithdrawalCode", + "summary": "Verify public withdrawal confirmation code (unauthenticated)", + "specKind": "openapi" } }, { - "id": "concept:decabill-redis-and-bullmq-background-jobs", - "type": "concept", + "id": "api:HTTP:POST:/public/withdrawal/confirm", + "type": "endpoint", "attrs": { - "title": "Redis and BullMQ (Background Jobs)", - "docPath": "docs/decabill/deployment/environment-configuration.md", - "sectionAnchor": "redis-and-bullmq-background-jobs", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/public/withdrawal/confirm", + "operationId": "confirmPublicWithdrawal", + "summary": "Confirm public statutory withdrawal (unauthenticated)", + "specKind": "openapi" } }, { - "id": "concept:decabill-environment-specific-defaults", - "type": "concept", + "id": "api:HTTP:GET:/service-types", + "type": "endpoint", "attrs": { - "title": "Environment-Specific Defaults", - "docPath": "docs/decabill/deployment/environment-configuration.md", - "sectionAnchor": "environment-specific-defaults", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-types", + "operationId": "listServiceTypes", + "summary": "List service types", + "specKind": "openapi" } }, { - "id": "concept:decabill-local-development", - "type": "concept", + "id": "api:HTTP:POST:/service-types", + "type": "endpoint", "attrs": { - "title": "Local Development", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "local-development", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/service-types", + "operationId": "createServiceType", + "summary": "Create service type (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-installation", - "type": "concept", + "id": "api:HTTP:GET:/service-types/providers", + "type": "endpoint", "attrs": { - "title": "Installation", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "installation", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-types/providers", + "operationId": "getProviderDetails", + "summary": "Get all provider details", + "specKind": "openapi" } }, { - "id": "concept:decabill-database-and-redis-setup", - "type": "concept", + "id": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", + "type": "endpoint", "attrs": { - "title": "Database and Redis Setup", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "database-and-redis-setup", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-types/providers/{providerId}/server-types", + "operationId": "getProviderServerTypes", + "summary": "Get server types for a provider", + "specKind": "openapi" } }, { - "id": "concept:decabill-postgresql-for-billing-manager", - "type": "concept", + "id": "api:HTTP:GET:/service-types/providers/{providerId}/locations", + "type": "endpoint", "attrs": { - "title": "PostgreSQL for billing manager", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "postgresql-for-billing-manager", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-types/providers/{providerId}/locations", + "operationId": "getProviderLocations", + "summary": "Get geography options for a provider", + "specKind": "openapi" } }, { - "id": "concept:decabill-redis-for-bullmq-host-port-6380-to-avoid-clashing-with-other-stacks", - "type": "concept", + "id": "api:HTTP:GET:/service-types/{id}", + "type": "endpoint", "attrs": { - "title": "Redis for BullMQ (host port 6380 to avoid clashing with other stacks)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "redis-for-bullmq-host-port-6380-to-avoid-clashing-with-other-stacks", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-types/{id}", + "operationId": "getServiceType", + "summary": "Get service type", + "specKind": "openapi" } }, { - "id": "concept:decabill-database", - "type": "concept", + "id": "api:HTTP:POST:/service-types/{id}", + "type": "endpoint", "attrs": { - "title": "Database", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "database", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/service-types/{id}", + "operationId": "updateServiceType", + "summary": "Update service type (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-redis-when-not-using-compose-network", - "type": "concept", + "id": "api:HTTP:DELETE:/service-types/{id}", + "type": "endpoint", "attrs": { - "title": "Redis (when not using compose network)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "redis-when-not-using-compose-network", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/service-types/{id}", + "operationId": "deleteServiceType", + "summary": "Delete service type (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-queue-local-all-in-one", - "type": "concept", + "id": "api:HTTP:GET:/service-plans", + "type": "endpoint", "attrs": { - "title": "Queue (local all-in-one)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "queue-local-all-in-one", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-plans", + "operationId": "listServicePlans", + "summary": "List service plans", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication-choose-one", - "type": "concept", + "id": "api:HTTP:POST:/service-plans", + "type": "endpoint", "attrs": { - "title": "Authentication (choose one)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "authentication-choose-one", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/service-plans", + "operationId": "createServicePlan", + "summary": "Create service plan (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-optional-bind-api-key-to-one-tenant-see-accepted-risk-dr-002", - "type": "concept", + "id": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", + "type": "endpoint", "attrs": { - "title": "Optional: bind API key to one tenant (see accepted risk DR-002)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "optional-bind-api-key-to-one-tenant-see-accepted-risk-dr-002", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-plans/{id}/cloud-init-configs/{configId}/order-fields", + "operationId": "getServicePlanCloudInitOrderFields", + "summary": "Get order form fields for a CloudInit config on a service plan", + "specKind": "openapi" } }, { - "id": "concept:decabill-static-api-key-tenant-id-default", - "type": "concept", + "id": "api:HTTP:GET:/service-plans/{id}", + "type": "endpoint", "attrs": { - "title": "STATIC_API_KEY_TENANT_ID=default", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "static-api-key-tenant-id-default", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/service-plans/{id}", + "operationId": "getServicePlan", + "summary": "Get service plan", + "specKind": "openapi" } }, { - "id": "concept:decabill-ports", - "type": "concept", + "id": "api:HTTP:POST:/service-plans/{id}", + "type": "endpoint", "attrs": { - "title": "Ports", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "ports", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/service-plans/{id}", + "operationId": "updateServicePlan", + "summary": "Update service plan (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-multi-tenancy", - "type": "concept", + "id": "api:HTTP:DELETE:/service-plans/{id}", + "type": "endpoint", "attrs": { - "title": "Multi-tenancy", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "multi-tenancy", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/service-plans/{id}", + "operationId": "deleteServicePlan", + "summary": "Delete service plan (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-cors-for-development", - "type": "concept", + "id": "api:HTTP:GET:/cloud-init-configs", + "type": "endpoint", "attrs": { - "title": "CORS (for development)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "cors-for-development", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/cloud-init-configs", + "operationId": "listCloudInitConfigs", + "summary": "List CloudInit configs (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-rate-limiting-disabled-for-development", - "type": "concept", + "id": "api:HTTP:POST:/cloud-init-configs", + "type": "endpoint", "attrs": { - "title": "Rate limiting (disabled for development)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "rate-limiting-disabled-for-development", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/cloud-init-configs", + "operationId": "createCloudInitConfig", + "summary": "Create CloudInit config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-encryption-required-for-production-set-for-local-if-testing-encrypted-fields", - "type": "concept", + "id": "api:HTTP:GET:/cloud-init-configs/{id}", + "type": "endpoint", "attrs": { - "title": "Encryption (required for production; set for local if testing encrypted fields)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "encryption-required-for-production-set-for-local-if-testing-encrypted-fields", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/cloud-init-configs/{id}", + "operationId": "getCloudInitConfig", + "summary": "Get CloudInit config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-stripe-optional-for-local-payment-flows", - "type": "concept", + "id": "api:HTTP:POST:/cloud-init-configs/{id}", + "type": "endpoint", "attrs": { - "title": "Stripe (optional for local payment flows)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "stripe-optional-for-local-payment-flows", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/cloud-init-configs/{id}", + "operationId": "updateCloudInitConfig", + "summary": "Update CloudInit config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-provisioning-optional", - "type": "concept", + "id": "api:HTTP:DELETE:/cloud-init-configs/{id}", + "type": "endpoint", "attrs": { - "title": "Provisioning (optional)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "provisioning-optional", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/cloud-init-configs/{id}", + "operationId": "deleteCloudInitConfig", + "summary": "Delete CloudInit config (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-running-applications", - "type": "concept", + "id": "api:HTTP:POST:/availability/check", + "type": "endpoint", "attrs": { - "title": "Running Applications", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "running-applications", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/availability/check", + "operationId": "checkAvailability", + "summary": "Check availability", + "specKind": "openapi" } }, { - "id": "concept:decabill-terminal-1-billing-manager-queue-role-all-for-local-jobs", - "type": "concept", + "id": "api:HTTP:POST:/availability/alternatives", + "type": "endpoint", "attrs": { - "title": "Terminal 1: Billing manager (QUEUE_ROLE=all for local jobs)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "terminal-1-billing-manager-queue-role-all-for-local-jobs", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/availability/alternatives", + "operationId": "checkAvailabilityAlternatives", + "summary": "Get availability alternatives", + "specKind": "openapi" } }, { - "id": "concept:decabill-terminal-2-billing-console", - "type": "concept", + "id": "api:HTTP:GET:/subscriptions", + "type": "endpoint", "attrs": { - "title": "Terminal 2: Billing console", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "terminal-2-billing-console", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/subscriptions", + "operationId": "listSubscriptions", + "summary": "List subscriptions", + "specKind": "openapi" } }, { - "id": "concept:decabill-terminal-3-docs-optional", - "type": "concept", + "id": "api:HTTP:POST:/subscriptions", + "type": "endpoint", "attrs": { - "title": "Terminal 3: Docs (optional)", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "terminal-3-docs-optional", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/subscriptions", + "operationId": "createSubscription", + "summary": "Create subscription", + "specKind": "openapi" } }, { - "id": "concept:decabill-development-workflow", - "type": "concept", + "id": "api:HTTP:GET:/subscriptions/{subscriptionId}", + "type": "endpoint", "attrs": { - "title": "Development Workflow", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "development-workflow", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/subscriptions/{subscriptionId}", + "operationId": "getSubscription", + "summary": "Get subscription", + "specKind": "openapi" } }, { - "id": "concept:decabill-billing-manager", - "type": "concept", + "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", + "type": "endpoint", "attrs": { - "title": "Billing manager", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "billing-manager", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/subscriptions/{subscriptionId}/cancel", + "operationId": "cancelSubscription", + "summary": "Cancel subscription", + "specKind": "openapi" } }, { - "id": "concept:decabill-billing-console", - "type": "concept", + "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", + "type": "endpoint", "attrs": { - "title": "Billing console", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "billing-console", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/subscriptions/{subscriptionId}/resume", + "operationId": "resumeSubscription", + "summary": "Resume subscription", + "specKind": "openapi" } }, { - "id": "concept:decabill-run-with-coverage", - "type": "concept", + "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", + "type": "endpoint", "attrs": { - "title": "Run with coverage", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "run-with-coverage", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/subscriptions/{subscriptionId}/withdraw", + "operationId": "withdrawSubscription", + "summary": "Statutory withdrawal (Widerruf)", + "specKind": "openapi" } }, { - "id": "concept:decabill-troubleshooting", - "type": "concept", + "id": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", + "type": "endpoint", "attrs": { - "title": "Troubleshooting", - "docPath": "docs/decabill/deployment/local-development.md", - "sectionAnchor": "troubleshooting", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/subscriptions/{subscriptionId}/items", + "operationId": "listSubscriptionItems", + "summary": "List subscription items", + "specKind": "openapi" } }, { - "id": "concept:decabill-production-deployment-checklist", - "type": "concept", + "id": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", + "type": "endpoint", "attrs": { - "title": "Production Deployment Checklist", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "production-deployment-checklist", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/server-info", + "operationId": "getSubscriptionItemServerInfo", + "summary": "Get server info for a provisioned subscription item", + "specKind": "openapi" } }, { - "id": "concept:decabill-pre-deployment-checklist", - "type": "concept", + "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", + "type": "endpoint", "attrs": { - "title": "Pre-Deployment Checklist", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "pre-deployment-checklist", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/actions/start", + "operationId": "startSubscriptionItemServer", + "summary": "Start server for a provisioned subscription item", + "specKind": "openapi" } }, { - "id": "concept:decabill-security-considerations", - "type": "concept", + "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", + "type": "endpoint", "attrs": { - "title": "Security Considerations", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "security-considerations", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", + "operationId": "stopSubscriptionItemServer", + "summary": "Stop server for a provisioned subscription item", + "specKind": "openapi" } }, { - "id": "concept:decabill-performance-optimization", - "type": "concept", + "id": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", + "type": "endpoint", "attrs": { - "title": "Performance Optimization", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "performance-optimization", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", + "operationId": "restartSubscriptionItemServer", + "summary": "Restart server for a provisioned subscription item", + "specKind": "openapi" } }, { - "id": "concept:decabill-monitoring-setup", - "type": "concept", + "id": "api:HTTP:GET:/backorders", + "type": "endpoint", "attrs": { - "title": "Monitoring Setup", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "monitoring-setup", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/backorders", + "operationId": "listBackorders", + "summary": "List backorders", + "specKind": "openapi" } }, { - "id": "concept:decabill-backup-strategies", - "type": "concept", + "id": "api:HTTP:POST:/backorders/{id}/retry", + "type": "endpoint", "attrs": { - "title": "Backup Strategies", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "backup-strategies", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/backorders/{id}/retry", + "operationId": "retryBackorder", + "summary": "Retry backorder", + "specKind": "openapi" } }, { - "id": "concept:decabill-deployment-process", - "type": "concept", + "id": "api:HTTP:POST:/backorders/{id}/cancel", + "type": "endpoint", "attrs": { - "title": "Deployment Process", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "deployment-process", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/backorders/{id}/cancel", + "operationId": "cancelBackorder", + "summary": "Cancel backorder", + "specKind": "openapi" } }, { - "id": "concept:decabill-rollback-plan", - "type": "concept", + "id": "api:HTTP:POST:/pricing/preview", + "type": "endpoint", "attrs": { - "title": "Rollback Plan", - "docPath": "docs/decabill/deployment/production-checklist.md", - "sectionAnchor": "rollback-plan", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/pricing/preview", + "operationId": "previewPricing", + "summary": "Preview pricing", + "specKind": "openapi" } }, { - "id": "concept:decabill-system-requirements", - "type": "concept", + "id": "api:HTTP:GET:/customer-profile", + "type": "endpoint", "attrs": { - "title": "System Requirements", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "system-requirements", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/customer-profile", + "operationId": "getCustomerProfile", + "summary": "Get customer profile", + "specKind": "openapi" } }, { - "id": "concept:decabill-platform-prerequisites", - "type": "concept", + "id": "api:HTTP:POST:/customer-profile", + "type": "endpoint", "attrs": { - "title": "Platform Prerequisites", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "platform-prerequisites", - "domain": "decabill" - } - }, - { - "id": "concept:decabill-data-services", - "type": "concept", - "attrs": { - "title": "Data Services", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "data-services", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/customer-profile", + "operationId": "updateCustomerProfile", + "summary": "Update customer profile", + "specKind": "openapi" } }, { - "id": "concept:decabill-backend-billing-manager-by-queue-role", - "type": "concept", + "id": "api:HTTP:POST:/customer-profile/auto-billing/setup", + "type": "endpoint", "attrs": { - "title": "Backend Billing Manager (by Queue Role)", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "backend-billing-manager-by-queue-role", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/customer-profile/auto-billing/setup", + "operationId": "setupCustomerAutoBilling", + "summary": "Start auto-billing payment method setup", + "specKind": "openapi" } }, { - "id": "concept:decabill-persistent-volumes", - "type": "concept", + "id": "api:HTTP:POST:/customer-profile/auto-billing/enable", + "type": "endpoint", "attrs": { - "title": "Persistent Volumes", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "persistent-volumes", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/customer-profile/auto-billing/enable", + "operationId": "enableCustomerAutoBilling", + "summary": "Enable auto-billing", + "specKind": "openapi" } }, { - "id": "concept:decabill-mixed-and-local-development-host", - "type": "concept", + "id": "api:HTTP:POST:/customer-profile/auto-billing/disable", + "type": "endpoint", "attrs": { - "title": "Mixed and Local Development Host", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "mixed-and-local-development-host", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/customer-profile/auto-billing/disable", + "operationId": "disableCustomerAutoBilling", + "summary": "Disable auto-billing", + "specKind": "openapi" } }, { - "id": "concept:decabill-production-sizing-examples", - "type": "concept", + "id": "api:HTTP:GET:/invoices/summary", + "type": "endpoint", "attrs": { - "title": "Production Sizing Examples", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "production-sizing-examples", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/summary", + "operationId": "getInvoicesSummary", + "summary": "Get open and overdue invoices summary", + "specKind": "openapi" } }, { - "id": "concept:decabill-network-and-external-dependencies", - "type": "concept", + "id": "api:HTTP:GET:/invoices/open-overdue", + "type": "endpoint", "attrs": { - "title": "Network and External Dependencies", - "docPath": "docs/decabill/deployment/system-requirements.md", - "sectionAnchor": "network-and-external-dependencies", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/open-overdue", + "operationId": "listOpenOverdueInvoices", + "summary": "List open and overdue invoices", + "specKind": "openapi" } }, { - "id": "concept:decabill-features-documentation", - "type": "concept", + "id": "api:HTTP:GET:/invoices/history", + "type": "endpoint", "attrs": { - "title": "Features Documentation", - "docPath": "docs/decabill/features/README.md", - "sectionAnchor": "features-documentation", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/history", + "operationId": "listInvoiceHistory", + "summary": "List invoice history", + "specKind": "openapi" } }, { - "id": "concept:decabill-feature-relationships", - "type": "concept", + "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", + "type": "endpoint", "attrs": { - "title": "Feature Relationships", - "docPath": "docs/decabill/features/README.md", - "sectionAnchor": "feature-relationships", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/ref/{invoiceRefId}", + "operationId": "getInvoiceDetailsByRef", + "summary": "Get invoice details by reference (no subscription)", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication-methods", - "type": "concept", + "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", + "type": "endpoint", "attrs": { - "title": "Authentication Methods", - "docPath": "docs/decabill/features/authentication.md", - "sectionAnchor": "authentication-methods", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/ref/{invoiceRefId}/pdf", + "operationId": "downloadInvoicePdfByRef", + "summary": "Download invoice PDF by reference (no subscription)", + "specKind": "openapi" } }, { - "id": "concept:decabill-users-authentication-flow", - "type": "concept", + "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", + "type": "endpoint", "attrs": { - "title": "Users Authentication Flow", - "docPath": "docs/decabill/features/authentication.md", - "sectionAnchor": "users-authentication-flow", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/ref/{invoiceRefId}/void-document/pdf", + "operationId": "downloadInvoiceVoidDocumentPdfByRef", + "summary": "Download void credit note PDF by reference (no subscription)", + "specKind": "openapi" } }, { - "id": "concept:decabill-disabling-signup", - "type": "concept", + "id": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", + "type": "endpoint", "attrs": { - "title": "Disabling Signup", - "docPath": "docs/decabill/features/authentication.md", - "sectionAnchor": "disabling-signup", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/ref/{invoiceRefId}/time-report/pdf", + "operationId": "downloadInvoiceTimeReportPdfByRef", + "summary": "Download time report PDF by reference (no subscription)", + "specKind": "openapi" } }, { - "id": "concept:decabill-user-roles", - "type": "concept", + "id": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", + "type": "endpoint", "attrs": { - "title": "User Roles", - "docPath": "docs/decabill/features/authentication.md", - "sectionAnchor": "user-roles", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/invoices/ref/{invoiceRefId}/pay", + "operationId": "initiateInvoicePaymentByRef", + "summary": "Initiate payment by reference (no subscription)", + "specKind": "openapi" } }, { - "id": "concept:decabill-security-features", - "type": "concept", + "id": "api:HTTP:GET:/invoices/{subscriptionId}", + "type": "endpoint", "attrs": { - "title": "Security Features", - "docPath": "docs/decabill/features/authentication.md", - "sectionAnchor": "security-features", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/{subscriptionId}", + "operationId": "listInvoices", + "summary": "List invoices", + "specKind": "openapi" } }, { - "id": "concept:decabill-api-endpoints", - "type": "concept", + "id": "api:HTTP:POST:/invoices/{subscriptionId}", + "type": "endpoint", "attrs": { - "title": "API Endpoints", - "docPath": "docs/decabill/features/authentication.md", - "sectionAnchor": "api-endpoints", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/invoices/{subscriptionId}", + "operationId": "createInvoice", + "summary": "Create invoice (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication-flow-diagram", - "type": "concept", + "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", + "type": "endpoint", "attrs": { - "title": "Authentication Flow Diagram", - "docPath": "docs/decabill/features/authentication.md", - "sectionAnchor": "authentication-flow-diagram", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}", + "operationId": "getInvoiceDetails", + "summary": "Get invoice details (preview)", + "specKind": "openapi" } }, { - "id": "concept:decabill-auto-billing", - "type": "concept", + "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", + "type": "endpoint", "attrs": { - "title": "Auto-Billing", - "docPath": "docs/decabill/features/auto-billing.md", - "sectionAnchor": "auto-billing", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", + "operationId": "downloadInvoicePdf", + "summary": "Download invoice PDF", + "specKind": "openapi" } }, { - "id": "concept:decabill-payment-processor-capability", - "type": "concept", + "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", + "type": "endpoint", "attrs": { - "title": "Payment processor capability", - "docPath": "docs/decabill/features/auto-billing.md", - "sectionAnchor": "payment-processor-capability", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", + "operationId": "downloadInvoiceVoidDocumentPdf", + "summary": "Download void credit note PDF", + "specKind": "openapi" } }, { - "id": "concept:decabill-customer-profile-fields", - "type": "concept", + "id": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", + "type": "endpoint", "attrs": { - "title": "Customer profile fields", - "docPath": "docs/decabill/features/auto-billing.md", - "sectionAnchor": "customer-profile-fields", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", + "operationId": "downloadInvoiceTimeReportPdf", + "summary": "Download time report PDF", + "specKind": "openapi" } }, { - "id": "concept:decabill-setup-and-enable-flow", - "type": "concept", + "id": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", + "type": "endpoint", "attrs": { - "title": "Setup and enable flow", - "docPath": "docs/decabill/features/auto-billing.md", - "sectionAnchor": "setup-and-enable-flow", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", + "operationId": "initiateInvoicePayment", + "summary": "Initiate payment (Stripe Checkout)", + "specKind": "openapi" } }, { - "id": "concept:decabill-invoice-auto-payment-lifecycle", - "type": "concept", + "id": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", + "type": "endpoint", "attrs": { - "title": "Invoice auto-payment lifecycle", - "docPath": "docs/decabill/features/auto-billing.md", - "sectionAnchor": "invoice-auto-payment-lifecycle", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/invoices/{subscriptionId}/ref/{invoiceRefId}/void", + "operationId": "voidInvoice", + "summary": "Void invoice (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-notifications", - "type": "concept", + "id": "api:HTTP:POST:/webhooks/payments/stripe", + "type": "endpoint", "attrs": { - "title": "Notifications", - "docPath": "docs/decabill/features/auto-billing.md", - "sectionAnchor": "notifications", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/webhooks/payments/stripe", + "operationId": "stripePaymentWebhook", + "summary": "Stripe payment webhook", + "specKind": "openapi" } }, { - "id": "concept:decabill-related", - "type": "concept", + "id": "api:HTTP:GET:/usage/summary/{subscriptionId}", + "type": "endpoint", "attrs": { - "title": "Related", - "docPath": "docs/decabill/features/auto-billing.md", - "sectionAnchor": "related", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/usage/summary/{subscriptionId}", + "operationId": "getUsageSummary", + "summary": "Usage summary", + "specKind": "openapi" } }, { - "id": "concept:decabill-backorders", - "type": "concept", + "id": "api:HTTP:POST:/admin/usage/record", + "type": "endpoint", "attrs": { - "title": "Backorders", - "docPath": "docs/decabill/features/backorders.md", - "sectionAnchor": "backorders", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/usage/record", + "operationId": "recordUsage", + "summary": "Record usage (admin or API key only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-backorder-statuses", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/summary", + "type": "endpoint", "attrs": { - "title": "Backorder Statuses", - "docPath": "docs/decabill/features/backorders.md", - "sectionAnchor": "backorder-statuses", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/summary", + "operationId": "getAdminBillingSummary", + "summary": "Global billing KPI summary (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-creating-backorders", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/bill-now", + "type": "endpoint", "attrs": { - "title": "Creating Backorders", - "docPath": "docs/decabill/features/backorders.md", - "sectionAnchor": "creating-backorders", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/bill-now", + "operationId": "adminBillNow", + "summary": "Bill unbilled open positions now (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-retry-processing", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/subscriptions", + "type": "endpoint", "attrs": { - "title": "Retry Processing", - "docPath": "docs/decabill/features/backorders.md", - "sectionAnchor": "retry-processing", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/subscriptions", + "operationId": "listAdminSubscriptions", + "summary": "List all subscriptions (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-user-api", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", + "type": "endpoint", "attrs": { - "title": "User API", - "docPath": "docs/decabill/features/backorders.md", - "sectionAnchor": "user-api", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/subscriptions/{subscriptionId}/cancel", + "operationId": "adminCancelSubscription", + "summary": "Cancel subscription (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-customer-geography-on-retry", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", + "type": "endpoint", "attrs": { - "title": "Customer Geography on Retry", - "docPath": "docs/decabill/features/backorders.md", - "sectionAnchor": "customer-geography-on-retry", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/subscriptions/{subscriptionId}/withdraw", + "operationId": "adminWithdrawSubscription", + "summary": "Withdraw subscription (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-ui", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", + "type": "endpoint", "attrs": { - "title": "UI", - "docPath": "docs/decabill/features/backorders.md", - "sectionAnchor": "ui", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/subscriptions/{subscriptionId}/resume", + "operationId": "adminResumeSubscription", + "summary": "Resume subscription (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-billing-administration", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", + "type": "endpoint", "attrs": { - "title": "Billing Administration", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "billing-administration", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/users/{userId}/subscriptions", + "operationId": "listAdminUserSubscriptions", + "summary": "List subscriptions for a user (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-access-control", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/invoices", + "type": "endpoint", "attrs": { - "title": "Access Control", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "access-control", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/invoices", + "operationId": "listAdminInvoices", + "summary": "List all invoices (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-billing-dashboard", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/invoices/open-overdue", + "type": "endpoint", "attrs": { - "title": "Billing Dashboard", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "billing-dashboard", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/invoices/open-overdue", + "operationId": "listAdminOpenOverdueInvoices", + "summary": "List all invoices (deprecated alias)", + "specKind": "openapi" } }, { - "id": "concept:decabill-manual-invoice-administration", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/invoices/manual", + "type": "endpoint", "attrs": { - "title": "Manual Invoice Administration", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "manual-invoice-administration", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/invoices/manual", + "operationId": "createManualInvoice", + "summary": "Create manual invoice draft (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-customer-billing-profiles-admin", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", + "type": "endpoint", "attrs": { - "title": "Customer Billing Profiles (Admin)", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "customer-billing-profiles-admin", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}", + "operationId": "getAdminInvoiceDetail", + "summary": "Get invoice detail (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-admin-projects", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", + "type": "endpoint", "attrs": { - "title": "Admin Projects", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "admin-projects", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}", + "operationId": "updateManualInvoice", + "summary": "Update manual invoice draft (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-related-admin-pages", - "type": "concept", + "id": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", + "type": "endpoint", "attrs": { - "title": "Related Admin Pages", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "related-admin-pages", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}", + "operationId": "deleteManualInvoice", + "summary": "Delete manual invoice draft (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-webhook-notifications", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", + "type": "endpoint", "attrs": { - "title": "Webhook Notifications", - "docPath": "docs/decabill/features/billing-administration.md", - "sectionAnchor": "webhook-notifications", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/issue", + "operationId": "issueManualInvoice", + "summary": "Issue manual invoice draft (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-cloudinit-configs", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", + "type": "endpoint", "attrs": { - "title": "CloudInit Configs", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "cloudinit-configs", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/pdf", + "operationId": "downloadAdminInvoicePdf", + "summary": "Download invoice PDF (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-template-placeholders", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", + "type": "endpoint", "attrs": { - "title": "Template Placeholders", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "template-placeholders", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/void-document/pdf", + "operationId": "downloadAdminInvoiceVoidDocumentPdf", + "summary": "Download void credit note PDF (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-environment-variables", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", + "type": "endpoint", "attrs": { - "title": "Environment Variables", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "environment-variables", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/time-report/pdf", + "operationId": "downloadAdminInvoiceTimeReportPdf", + "summary": "Download stored time report PDF (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-service-plan-product-defaults", - "type": "concept", + "id": "api:HTTP:POST:/promotions/validate", + "type": "endpoint", "attrs": { - "title": "Service plan product defaults", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "service-plan-product-defaults", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/promotions/validate", + "operationId": "validatePromotionCode", + "summary": "Validate a promotion code (simulated redemption)", + "specKind": "openapi" } }, { - "id": "concept:decabill-admin-api", - "type": "concept", + "id": "api:HTTP:POST:/promotions/redeem", + "type": "endpoint", "attrs": { - "title": "Admin API", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "admin-api", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/promotions/redeem", + "operationId": "redeemPromotionCode", + "summary": "Redeem a promotion code", + "specKind": "openapi" } }, { - "id": "concept:decabill-admin-ui", - "type": "concept", + "id": "api:HTTP:GET:/promotions/redemptions", + "type": "endpoint", "attrs": { - "title": "Admin UI", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "admin-ui", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/promotions/redemptions", + "operationId": "listPromotionRedemptions", + "summary": "List promotion redemptions for current user", + "specKind": "openapi" } }, { - "id": "concept:decabill-plan-linkage", - "type": "concept", + "id": "api:HTTP:GET:/promotions/active", + "type": "endpoint", "attrs": { - "title": "Plan Linkage", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "plan-linkage", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/promotions/active", + "operationId": "listActivePromotions", + "summary": "List active promotion benefits for current user", + "specKind": "openapi" } }, { - "id": "concept:decabill-customer-order-flow", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/promotions", + "type": "endpoint", "attrs": { - "title": "Customer Order Flow", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "customer-order-flow", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/promotions", + "operationId": "listAdminPromotions", + "summary": "List promotions (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-provisioning", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/promotions", + "type": "endpoint", "attrs": { - "title": "Provisioning", - "docPath": "docs/decabill/features/cloud-init-configs.md", - "sectionAnchor": "provisioning", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/promotions", + "operationId": "createAdminPromotion", + "summary": "Create promotion (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-customer-profiles", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/promotions/{id}", + "type": "endpoint", "attrs": { - "title": "Customer Profiles", - "docPath": "docs/decabill/features/customer-profiles.md", - "sectionAnchor": "customer-profiles", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/promotions/{id}", + "operationId": "getAdminPromotion", + "summary": "Get promotion (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-required-fields-for-ordering", - "type": "concept", + "id": "api:HTTP:PUT:/admin/billing/promotions/{id}", + "type": "endpoint", "attrs": { - "title": "Required Fields for Ordering", - "docPath": "docs/decabill/features/customer-profiles.md", - "sectionAnchor": "required-fields-for-ordering", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/admin/billing/promotions/{id}", + "operationId": "updateAdminPromotion", + "summary": "Update promotion (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-self-service", - "type": "concept", + "id": "api:HTTP:DELETE:/admin/billing/promotions/{id}", + "type": "endpoint", "attrs": { - "title": "Self-Service", - "docPath": "docs/decabill/features/customer-profiles.md", - "sectionAnchor": "self-service", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/admin/billing/promotions/{id}", + "operationId": "deactivateAdminPromotion", + "summary": "Deactivate promotion (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-admin-management", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", + "type": "endpoint", "attrs": { - "title": "Admin Management", - "docPath": "docs/decabill/features/customer-profiles.md", - "sectionAnchor": "admin-management", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/promotions/{id}/redemptions", + "operationId": "listAdminPromotionRedemptions", + "summary": "List redemptions for a promotion (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-validation-flow", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/customer-profiles", + "type": "endpoint", "attrs": { - "title": "Validation Flow", - "docPath": "docs/decabill/features/customer-profiles.md", - "sectionAnchor": "validation-flow", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/customer-profiles", + "operationId": "listAdminCustomerProfiles", + "summary": "List customer billing profiles (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-data-storage", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/customer-profiles", + "type": "endpoint", "attrs": { - "title": "Data Storage", - "docPath": "docs/decabill/features/customer-profiles.md", - "sectionAnchor": "data-storage", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/customer-profiles", + "operationId": "createAdminCustomerProfile", + "summary": "Create customer billing profile (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-user-billing-day", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", + "type": "endpoint", "attrs": { - "title": "User Billing Day", - "docPath": "docs/decabill/features/customer-profiles.md", - "sectionAnchor": "user-billing-day", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/customer-profiles/{id}", + "operationId": "getAdminCustomerProfile", + "summary": "Get customer billing profile (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-dashboard-and-server-control", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", + "type": "endpoint", "attrs": { - "title": "Dashboard and Server Control", - "docPath": "docs/decabill/features/dashboard-and-server-control.md", - "sectionAnchor": "dashboard-and-server-control", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/customer-profiles/{id}", + "operationId": "updateAdminCustomerProfile", + "summary": "Update customer billing profile (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-overview-page", - "type": "concept", + "id": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", + "type": "endpoint", "attrs": { - "title": "Overview Page", - "docPath": "docs/decabill/features/dashboard-and-server-control.md", - "sectionAnchor": "overview-page", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/admin/billing/customer-profiles/{id}", + "operationId": "deleteAdminCustomerProfile", + "summary": "Delete customer billing profile (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-data-loading", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", + "type": "endpoint", "attrs": { - "title": "Data Loading", - "docPath": "docs/decabill/features/dashboard-and-server-control.md", - "sectionAnchor": "data-loading", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/customer-profiles/{id}/auto-billing/setup", + "operationId": "adminSetupCustomerAutoBilling", + "summary": "Start auto-billing payment method setup for a customer (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-authorization", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", + "type": "endpoint", "attrs": { - "title": "Authorization", - "docPath": "docs/decabill/features/dashboard-and-server-control.md", - "sectionAnchor": "authorization", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/customer-profiles/{id}/auto-billing/enable", + "operationId": "adminEnableCustomerAutoBilling", + "summary": "Enable auto-billing for a customer (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-server-control-sequence", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", + "type": "endpoint", "attrs": { - "title": "Server Control Sequence", - "docPath": "docs/decabill/features/dashboard-and-server-control.md", - "sectionAnchor": "server-control-sequence", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/customer-profiles/{id}/auto-billing/disable", + "operationId": "adminDisableCustomerAutoBilling", + "summary": "Disable auto-billing for a customer (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-error-handling", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", + "type": "endpoint", "attrs": { - "title": "Error Handling", - "docPath": "docs/decabill/features/dashboard-and-server-control.md", - "sectionAnchor": "error-handling", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/void", + "operationId": "adminVoidInvoice", + "summary": "Void invoice (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-dynamic-provider-plugins", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", + "type": "endpoint", "attrs": { - "title": "Dynamic Provider Plugins", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "dynamic-provider-plugins", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/mark-paid", + "operationId": "adminMarkInvoicePaid", + "summary": "Mark invoice paid manually (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-registries", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", + "type": "endpoint", "attrs": { - "title": "Registries", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "registries", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/mark-unpaid", + "operationId": "adminMarkInvoiceUnpaid", + "summary": "Mark invoice unpaid manually (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-resolution-order", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", + "type": "endpoint", "attrs": { - "title": "Resolution Order", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "resolution-order", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/invoices/{invoiceRefId}/audit-logs", + "operationId": "listAdminInvoiceAuditLogs", + "summary": "Audit history for invoice (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-config-format", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/statistics/summary", + "type": "endpoint", "attrs": { - "title": "Config Format", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "config-format", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/statistics/summary", + "operationId": "getAdminBillingStatisticsSummary", + "summary": "Turnover time series (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-alias-package-specifier", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/statistics/by-product", + "type": "endpoint", "attrs": { - "title": "alias=@package/specifier", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "alias-package-specifier", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/statistics/by-product", + "operationId": "getAdminBillingStatisticsByProduct", + "summary": "Turnover by service plan (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-pascalcase-alias-selects-named-class-export", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/capabilities", + "type": "endpoint", "attrs": { - "title": "PascalCase alias selects named class export", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "pascalcase-alias-selects-named-class-export", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/capabilities", + "operationId": "getAdminBillingCapabilities", + "summary": "Billing feature capabilities for admin UI (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-bare-specifier", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/datev-exports", + "type": "endpoint", "attrs": { - "title": "bare specifier", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "bare-specifier", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/datev-exports", + "operationId": "listAdminDatevExports", + "summary": "List DATEV EXTF exports (admin only; requires BILLING_DATEV_EXPORT_ENABLED)", + "specKind": "openapi" } }, { - "id": "concept:decabill-file-entry-relative-to-plugin-path", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/datev-exports", + "type": "endpoint", "attrs": { - "title": "file: entry relative to plugin path", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "file-entry-relative-to-plugin-path", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/datev-exports", + "operationId": "triggerAdminDatevExport", + "summary": "Trigger DATEV export for a calendar month (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-plugin-package-contract", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", + "type": "endpoint", "attrs": { - "title": "Plugin Package Contract", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "plugin-package-contract", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/datev-exports/{exportId}", + "operationId": "getAdminDatevExport", + "summary": "Get DATEV export metadata (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-payment-processors", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", + "type": "endpoint", "attrs": { - "title": "Payment Processors", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "payment-processors", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/datev-exports/{exportId}/download", + "operationId": "downloadAdminDatevExport", + "summary": "Download DATEV export ZIP (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-billing-provider-metadata", - "type": "concept", + "id": "api:HTTP:GET:/projects", + "type": "endpoint", "attrs": { - "title": "Billing Provider Metadata", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "billing-provider-metadata", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/projects", + "operationId": "listCustomerProjects", + "summary": "List projects assigned to the authenticated customer", + "specKind": "openapi" } }, { - "id": "concept:decabill-baked-in-plugins", - "type": "concept", + "id": "api:HTTP:GET:/projects/{projectId}", + "type": "endpoint", "attrs": { - "title": "Baked-in Plugins", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "baked-in-plugins", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/projects/{projectId}", + "operationId": "getCustomerProject", + "summary": "Get project detail (customer read-only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-post-build-plugins", - "type": "concept", + "id": "api:HTTP:GET:/projects/{projectId}/summary", + "type": "endpoint", "attrs": { - "title": "Post-build Plugins", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "post-build-plugins", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/projects/{projectId}/summary", + "operationId": "getProjectSummary", + "summary": "Get project KPI summary", + "specKind": "openapi" } }, { - "id": "concept:decabill-startup-error-policy", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/projects", + "type": "endpoint", "attrs": { - "title": "Startup Error Policy", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "startup-error-policy", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/projects", + "operationId": "listAdminProjects", + "summary": "List all projects (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-security", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/projects", + "type": "endpoint", "attrs": { - "title": "Security", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "security", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/projects", + "operationId": "createAdminProject", + "summary": "Create project (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-docker-compose-example", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/projects/{projectId}", + "type": "endpoint", "attrs": { - "title": "Docker Compose Example", - "docPath": "docs/decabill/features/dynamic-provider-plugins.md", - "sectionAnchor": "docker-compose-example", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/projects/{projectId}", + "operationId": "getAdminProject", + "summary": "Get project detail (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-email-notifications-decabill", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/projects/{projectId}", + "type": "endpoint", "attrs": { - "title": "Email notifications (Decabill)", - "docPath": "docs/decabill/features/email-notifications.md", - "sectionAnchor": "email-notifications-decabill", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/projects/{projectId}", + "operationId": "updateAdminProject", + "summary": "Update project (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-transport", - "type": "concept", + "id": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", + "type": "endpoint", "attrs": { - "title": "Transport", - "docPath": "docs/decabill/features/email-notifications.md", - "sectionAnchor": "transport", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/admin/billing/projects/{projectId}", + "operationId": "deleteAdminProject", + "summary": "Delete project when no unbilled time entries", + "specKind": "openapi" } }, { - "id": "concept:decabill-templates", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", + "type": "endpoint", "attrs": { - "title": "Templates", - "docPath": "docs/decabill/features/email-notifications.md", - "sectionAnchor": "templates", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/projects/{projectId}/unbilled-time-bounds", + "operationId": "getProjectUnbilledTimeBounds", + "summary": "Unbilled time entry range for bill-time defaults", + "specKind": "openapi" } }, { - "id": "concept:decabill-event-catalog-implemented", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", + "type": "endpoint", "attrs": { - "title": "Event catalog (implemented)", - "docPath": "docs/decabill/features/email-notifications.md", - "sectionAnchor": "event-catalog-implemented", - "domain": "decabill" - } - }, - { - "id": "concept:decabill-delivery-retries", - "type": "concept", - "attrs": { - "title": "Delivery & retries", - "docPath": "docs/decabill/features/email-notifications.md", - "sectionAnchor": "delivery-retries", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/projects/{projectId}/bill-time", + "operationId": "billProjectTime", + "summary": "Bill unbilled project time in range to invoice", + "specKind": "openapi" } }, { - "id": "concept:decabill-future-webhook-only-today", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", + "type": "endpoint", "attrs": { - "title": "Future (webhook-only today)", - "docPath": "docs/decabill/features/email-notifications.md", - "sectionAnchor": "future-webhook-only-today", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/projects/{projectId}/time-report", + "operationId": "generateProjectTimeReport", + "summary": "Generate live time report PDF (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-invoices", - "type": "concept", + "id": "api:HTTP:GET:/projects/{projectId}/tickets", + "type": "endpoint", "attrs": { - "title": "Invoices", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "invoices", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/projects/{projectId}/tickets", + "operationId": "listProjectTickets", + "summary": "List project tickets", + "specKind": "openapi" } }, { - "id": "concept:decabill-invoice-statuses", - "type": "concept", + "id": "api:HTTP:POST:/projects/{projectId}/tickets", + "type": "endpoint", "attrs": { - "title": "Invoice Statuses", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "invoice-statuses", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/projects/{projectId}/tickets", + "operationId": "createProjectTicket", + "summary": "Create ticket (admin only)", + "specKind": "openapi" } }, { - "id": "concept:decabill-open-positions-and-billing-day", - "type": "concept", + "id": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", + "type": "endpoint", "attrs": { - "title": "Open Positions and Billing Day", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "open-positions-and-billing-day", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/projects/{projectId}/tickets/{ticketId}/comments", + "operationId": "listProjectTicketComments", + "summary": "List ticket comments", + "specKind": "openapi" } }, { - "id": "concept:decabill-customer-invoice-access", - "type": "concept", + "id": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", + "type": "endpoint", "attrs": { - "title": "Customer Invoice Access", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "customer-invoice-access", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/projects/{projectId}/tickets/{ticketId}/comments", + "operationId": "createProjectTicketComment", + "summary": "Add ticket comment (customer or admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-admin-invoice-operations", - "type": "concept", + "id": "api:HTTP:GET:/projects/{projectId}/milestones", + "type": "endpoint", "attrs": { - "title": "Admin Invoice Operations", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "admin-invoice-operations", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/projects/{projectId}/milestones", + "operationId": "listProjectMilestones", + "summary": "List project milestones", + "specKind": "openapi" } }, { - "id": "concept:decabill-pdf-generation", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/webhooks/event-types", + "type": "endpoint", "attrs": { - "title": "PDF Generation", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "pdf-generation", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/webhooks/event-types", + "operationId": "listAdminWebhookEventTypes", + "summary": "List webhook event types (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-usage-on-invoices", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/webhooks", + "type": "endpoint", "attrs": { - "title": "Usage on Invoices", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "usage-on-invoices", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/webhooks", + "operationId": "listAdminWebhookEndpoints", + "summary": "List webhook endpoints (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-payment", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/webhooks", + "type": "endpoint", "attrs": { - "title": "Payment", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "payment", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/webhooks", + "operationId": "createAdminWebhookEndpoint", + "summary": "Create webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-project-time-billing", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/webhooks/{id}", + "type": "endpoint", "attrs": { - "title": "Project Time Billing", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "project-time-billing", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/webhooks/{id}", + "operationId": "getAdminWebhookEndpoint", + "summary": "Get webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-manual-invoice-workflow-admin", - "type": "concept", + "id": "api:HTTP:PUT:/admin/billing/webhooks/{id}", + "type": "endpoint", "attrs": { - "title": "Manual Invoice Workflow (Admin)", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "manual-invoice-workflow-admin", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/admin/billing/webhooks/{id}", + "operationId": "updateAdminWebhookEndpoint", + "summary": "Update webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-api-endpoints-summary", - "type": "concept", + "id": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", + "type": "endpoint", "attrs": { - "title": "API Endpoints Summary", - "docPath": "docs/decabill/features/invoices.md", - "sectionAnchor": "api-endpoints-summary", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/admin/billing/webhooks/{id}", + "operationId": "deleteAdminWebhookEndpoint", + "summary": "Delete webhook endpoint (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-tenant-selection", - "type": "concept", + "id": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", + "type": "endpoint", "attrs": { - "title": "Tenant Selection", - "docPath": "docs/decabill/features/multi-tenancy.md", - "sectionAnchor": "tenant-selection", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/admin/billing/webhooks/{id}/test", + "operationId": "testAdminWebhookEndpoint", + "summary": "Send test webhook delivery (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-data-isolation", - "type": "concept", + "id": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", + "type": "endpoint", "attrs": { - "title": "Data Isolation", - "docPath": "docs/decabill/features/multi-tenancy.md", - "sectionAnchor": "data-isolation", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/admin/billing/webhooks/{id}/deliveries", + "operationId": "listAdminWebhookDeliveries", + "summary": "List webhook deliveries (admin)", + "specKind": "openapi" } }, { - "id": "concept:decabill-api-key-auth-and-tenant-scope", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:auto_billing.disabled", + "type": "webhook-event", "attrs": { - "title": "API Key Auth and Tenant Scope", - "docPath": "docs/decabill/features/multi-tenancy.md", - "sectionAnchor": "api-key-auth-and-tenant-scope", - "domain": "decabill" + "eventName": "auto_billing.disabled", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-public-catalog", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:auto_billing.enabled", + "type": "webhook-event", "attrs": { - "title": "Public Catalog", - "docPath": "docs/decabill/features/multi-tenancy.md", - "sectionAnchor": "public-catalog", - "domain": "decabill" + "eventName": "auto_billing.enabled", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-background-jobs", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:datev_export.completed", + "type": "webhook-event", "attrs": { - "title": "Background Jobs", - "docPath": "docs/decabill/features/multi-tenancy.md", - "sectionAnchor": "background-jobs", - "domain": "decabill" + "eventName": "datev_export.completed", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-multi-tenancy-flow", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:datev_export.failed", + "type": "webhook-event", "attrs": { - "title": "Multi-tenancy Flow", - "docPath": "docs/decabill/features/multi-tenancy.md", - "sectionAnchor": "multi-tenancy-flow", - "domain": "decabill" + "eventName": "datev_export.failed", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-configuration-summary", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:datev_export.started", + "type": "webhook-event", "attrs": { - "title": "Configuration Summary", - "docPath": "docs/decabill/features/multi-tenancy.md", - "sectionAnchor": "configuration-summary", - "domain": "decabill" + "eventName": "datev_export.started", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-payment-processing", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:invoice.created", + "type": "webhook-event", "attrs": { - "title": "Payment Processing", - "docPath": "docs/decabill/features/payment-processing.md", - "sectionAnchor": "payment-processing", - "domain": "decabill" + "eventName": "invoice.created", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-default-processor", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:invoice.issued", + "type": "webhook-event", "attrs": { - "title": "Default Processor", - "docPath": "docs/decabill/features/payment-processing.md", - "sectionAnchor": "default-processor", - "domain": "decabill" + "eventName": "invoice.issued", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-stripe-configuration", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:invoice.voided", + "type": "webhook-event", "attrs": { - "title": "Stripe Configuration", - "docPath": "docs/decabill/features/payment-processing.md", - "sectionAnchor": "stripe-configuration", - "domain": "decabill" + "eventName": "invoice.voided", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-customer-payment-flow", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:milestone.created", + "type": "webhook-event", "attrs": { - "title": "Customer Payment Flow", - "docPath": "docs/decabill/features/payment-processing.md", - "sectionAnchor": "customer-payment-flow", - "domain": "decabill" + "eventName": "milestone.created", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-admin-manual-payment-status", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:milestone.deleted", + "type": "webhook-event", "attrs": { - "title": "Admin Manual Payment Status", - "docPath": "docs/decabill/features/payment-processing.md", - "sectionAnchor": "admin-manual-payment-status", - "domain": "decabill" + "eventName": "milestone.deleted", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-payment-processor-interface", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:milestone.updated", + "type": "webhook-event", "attrs": { - "title": "Payment Processor Interface", - "docPath": "docs/decabill/features/payment-processing.md", - "sectionAnchor": "payment-processor-interface", - "domain": "decabill" + "eventName": "milestone.updated", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-project-board", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:payment_method.attached", + "type": "webhook-event", "attrs": { - "title": "Project Board", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "project-board", - "domain": "decabill" + "eventName": "payment_method.attached", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-swimlanes", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:payment.auto.exhausted", + "type": "webhook-event", "attrs": { - "title": "Swimlanes", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "swimlanes", - "domain": "decabill" + "eventName": "payment.auto.exhausted", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-locking", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:payment.auto.initiated", + "type": "webhook-event", "attrs": { - "title": "Locking", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "locking", - "domain": "decabill" + "eventName": "payment.auto.initiated", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-rest-board-operations", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:payment.auto.retry_scheduled", + "type": "webhook-event", "attrs": { - "title": "REST Board Operations", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "rest-board-operations", - "domain": "decabill" + "eventName": "payment.auto.retry_scheduled", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-websocket-connection", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:payment.failed", + "type": "webhook-event", "attrs": { - "title": "WebSocket Connection", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "websocket-connection", - "domain": "decabill" + "eventName": "payment.failed", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-events", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:payment.initiated", + "type": "webhook-event", "attrs": { - "title": "Events", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "events", - "domain": "decabill" + "eventName": "payment.initiated", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-security-model", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:payment.succeeded", + "type": "webhook-event", "attrs": { - "title": "Security Model", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "security-model", - "domain": "decabill" + "eventName": "payment.succeeded", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-connection-flow", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:project.created", + "type": "webhook-event", "attrs": { - "title": "Connection Flow", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "connection-flow", - "domain": "decabill" + "eventName": "project.created", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-frontend-integration", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:project.deleted", + "type": "webhook-event", "attrs": { - "title": "Frontend Integration", - "docPath": "docs/decabill/features/project-board.md", - "sectionAnchor": "frontend-integration", - "domain": "decabill" + "eventName": "project.deleted", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-projects", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:project.updated", + "type": "webhook-event", "attrs": { - "title": "Projects", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "projects", - "domain": "decabill" + "eventName": "project.updated", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-assignment-model", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:subscription.canceled", + "type": "webhook-event", "attrs": { - "title": "Assignment Model", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "assignment-model", - "domain": "decabill" + "eventName": "subscription.canceled", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-customer-access-read-only", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:subscription.created", + "type": "webhook-event", "attrs": { - "title": "Customer Access (Read-Only)", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "customer-access-read-only", - "domain": "decabill" + "eventName": "subscription.created", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-admin-crud", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:subscription.updated", + "type": "webhook-event", "attrs": { - "title": "Admin CRUD", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "admin-crud", - "domain": "decabill" + "eventName": "subscription.updated", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-time-entries-admin", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:ticket.comment.created", + "type": "webhook-event", "attrs": { - "title": "Time Entries (Admin)", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "time-entries-admin", - "domain": "decabill" + "eventName": "ticket.comment.created", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-bill-time", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:ticket.created", + "type": "webhook-event", "attrs": { - "title": "Bill Time", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "bill-time", - "domain": "decabill" + "eventName": "ticket.created", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-time-report-admin", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:ticket.deleted", + "type": "webhook-event", "attrs": { - "title": "Time report (admin)", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "time-report-admin", - "domain": "decabill" + "eventName": "ticket.deleted", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-kpi-summary", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:ticket.updated", + "type": "webhook-event", "attrs": { - "title": "KPI Summary", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "kpi-summary", - "domain": "decabill" + "eventName": "ticket.updated", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-project-lifecycle", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:time_entry.created", + "type": "webhook-event", "attrs": { - "title": "Project Lifecycle", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "project-lifecycle", - "domain": "decabill" + "eventName": "time_entry.created", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-authentication-notes", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:time_entry.deleted", + "type": "webhook-event", "attrs": { - "title": "Authentication Notes", - "docPath": "docs/decabill/features/projects.md", - "sectionAnchor": "authentication-notes", - "domain": "decabill" + "eventName": "time_entry.deleted", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-marketing-promotions", - "type": "concept", + "id": "webhook-event:decabill-backend-feature-billing-manager:time_entry.updated", + "type": "webhook-event", "attrs": { - "title": "Marketing promotions", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "marketing-promotions", - "domain": "decabill" + "eventName": "time_entry.updated", + "projectName": "decabill-backend-feature-billing-manager", + "catalogPath": "libs/domains/decabill/backend/feature-billing-manager/src/lib/notifications/billing-notification.events.ts" } }, { - "id": "concept:decabill-tenant-isolation", - "type": "concept", + "id": "api:channel:agents/login", + "type": "endpoint", "attrs": { - "title": "Tenant isolation", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "tenant-isolation", - "domain": "decabill" + "pathOrChannel": "agents/login", + "summary": "Client sends login command with credentials (agentId or name + password)", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-advantage-types", - "type": "concept", + "id": "api:channel:agents/loginSuccess", + "type": "endpoint", "attrs": { - "title": "Advantage types", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "advantage-types", - "domain": "decabill" + "pathOrChannel": "agents/loginSuccess", + "summary": "Server acknowledges successful login. After this event, chat history is automatically restored via chatMessage events.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-product-scoping", - "type": "concept", + "id": "api:channel:agents/loginError", + "type": "endpoint", "attrs": { - "title": "Product scoping", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "product-scoping", - "domain": "decabill" + "pathOrChannel": "agents/loginError", + "summary": "Server returns login failure reason", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-subscription-eligibility", - "type": "concept", + "id": "api:channel:agents/chat", + "type": "endpoint", "attrs": { - "title": "Subscription eligibility", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "subscription-eligibility", - "domain": "decabill" + "pathOrChannel": "agents/chat", + "summary": "Client sends a chat message (requires prior login). Payload may include `responseMode` \"single\" | \"stream\" | \"sync\",\n`ephemeral` (skip `agent_messages` persistence for the turn), `continue`, `resumeSessionSuffix`, `correlationId`, `model`.\nWhen `ephemeral` is true, `chatMessage`, `chatEvent`, and `messageFilterResult` for that turn are emitted only to the\nrequesting socket (not broadcast to other clients on the same agent). Otherwise those events are broadcast to every\nsocket authenticated to the agent. The gateway forwards options to `sendMessage` as implemented in code.\n", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-customer-flow", - "type": "concept", + "id": "api:channel:agents/enhanceChat", + "type": "endpoint", "attrs": { - "title": "Customer flow", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "customer-flow", - "domain": "decabill" + "pathOrChannel": "agents/enhanceChat", + "summary": "Client requests prompt improvement in an isolated session (requires prior login). Does not persist to agent chat history or broadcast chatMessage. Result is emitted only to the requesting socket as chatEnhanceResult.\n", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-billing-integration", - "type": "concept", + "id": "api:channel:agents/chatEnhanceResult", + "type": "endpoint", "attrs": { - "title": "Billing integration", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "billing-integration", - "domain": "decabill" + "pathOrChannel": "agents/chatEnhanceResult", + "summary": "Unicast success envelope; data.success true with enhancedText, or data.success false with error (still success true on outer envelope)", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-related-docs", - "type": "concept", + "id": "api:channel:agents/generateTicketBody", + "type": "endpoint", "attrs": { - "title": "Related docs", - "docPath": "docs/decabill/features/promotions.md", - "sectionAnchor": "related-docs", - "domain": "decabill" + "pathOrChannel": "agents/generateTicketBody", + "summary": "Client requests ticket body text from a title in an isolated session (requires prior login). Does not persist to agent chat history. Result is emitted only to the requesting socket as ticketBodyResult (same payload shape as chatEnhanceResult).\n", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-public-statutory-withdrawal", - "type": "concept", + "id": "api:channel:agents/ticketBodyResult", + "type": "endpoint", "attrs": { - "title": "Public Statutory Withdrawal", - "docPath": "docs/decabill/features/public-withdrawal.md", - "sectionAnchor": "public-statutory-withdrawal", - "domain": "decabill" + "pathOrChannel": "agents/ticketBodyResult", + "summary": "Unicast result for generateTicketBody; same envelope as ChatEnhanceResult (enhancedText holds generated body).", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-flow", - "type": "concept", + "id": "api:channel:agents/chatMessage", + "type": "endpoint", "attrs": { - "title": "Flow", - "docPath": "docs/decabill/features/public-withdrawal.md", - "sectionAnchor": "flow", - "domain": "decabill" + "pathOrChannel": "agents/chatMessage", + "summary": "Emits standardized chat line envelopes (`success` + `data` + `timestamp`). Normally broadcast to all clients\nauthenticated to the same agent; for a `chat` request with `ephemeral: true`, user/agent lines for that turn are\nunicast to the requesting socket only. After successful login, chat history is replayed as `chatMessage` events in\nchronological order to the authenticating client only.\n", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-session-resume", - "type": "concept", + "id": "api:channel:agents/chatEvent", + "type": "endpoint", "attrs": { - "title": "Session resume", - "docPath": "docs/decabill/features/public-withdrawal.md", - "sectionAnchor": "session-resume", - "domain": "decabill" + "pathOrChannel": "agents/chatEvent", + "summary": "Structured chat events (streaming deltas, tool calls/results, questions, final assistant messages). Normally broadcast to all clients authenticated to the same agent; for an ephemeral chat turn, events for that turn are emitted only to the requesting socket. Additive; does not replace chatMessage.\n", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-matching-rules", - "type": "concept", + "id": "api:channel:agents/messageFilterResult", + "type": "endpoint", "attrs": { - "title": "Matching rules", - "docPath": "docs/decabill/features/public-withdrawal.md", - "sectionAnchor": "matching-rules", - "domain": "decabill" + "pathOrChannel": "agents/messageFilterResult", + "summary": "Filter outcome for incoming or outgoing messages. Follows the same broadcast vs ephemeral unicast rules as chatMessage: when the related `chat` request had `ephemeral: true`, results for that turn go only to the requesting socket.\n", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-public-api", - "type": "concept", + "id": "api:channel:agents/error", + "type": "endpoint", "attrs": { - "title": "Public API", - "docPath": "docs/decabill/features/public-withdrawal.md", - "sectionAnchor": "public-api", - "domain": "decabill" + "pathOrChannel": "agents/error", + "summary": "Generic error messages for unauthorized or processing failures", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-real-time-status", - "type": "concept", + "id": "api:channel:agents/fileUpdate", + "type": "endpoint", "attrs": { - "title": "Real-time Status", - "docPath": "docs/decabill/features/real-time-status.md", - "sectionAnchor": "real-time-status", - "domain": "decabill" + "pathOrChannel": "agents/fileUpdate", + "summary": "Client sends file update notification (requires prior login). Broadcasts to all clients authenticated to the same agent.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-connection", - "type": "concept", + "id": "api:channel:agents/fileUpdateNotification", + "type": "endpoint", "attrs": { - "title": "Connection", - "docPath": "docs/decabill/features/real-time-status.md", - "sectionAnchor": "connection", - "domain": "decabill" + "pathOrChannel": "agents/fileUpdateNotification", + "summary": "Server broadcasts file update notifications to all clients authenticated to the same agent. Includes socket ID to identify the source of the update.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-payload-shape", - "type": "concept", + "id": "api:channel:agents/logout", + "type": "endpoint", "attrs": { - "title": "Payload Shape", - "docPath": "docs/decabill/features/real-time-status.md", - "sectionAnchor": "payload-shape", - "domain": "decabill" + "pathOrChannel": "agents/logout", + "summary": "Client sends logout command to end authenticated session", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-server-provisioning", - "type": "concept", + "id": "api:channel:agents/logoutSuccess", + "type": "endpoint", "attrs": { - "title": "Server Provisioning", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "server-provisioning", - "domain": "decabill" + "pathOrChannel": "agents/logoutSuccess", + "summary": "Server acknowledges successful logout", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-supported-providers", - "type": "concept", + "id": "api:channel:agents/createTerminal", + "type": "endpoint", "attrs": { - "title": "Supported Providers", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "supported-providers", - "domain": "decabill" + "pathOrChannel": "agents/createTerminal", + "summary": "Client sends create terminal command (requires prior login). Creates a new TTY session for the agent's container.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-provisioning-process", - "type": "concept", + "id": "api:channel:agents/terminalCreated", + "type": "endpoint", "attrs": { - "title": "Provisioning Process", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "provisioning-process", - "domain": "decabill" + "pathOrChannel": "agents/terminalCreated", + "summary": "Server acknowledges successful terminal creation. Terminal session is client-specific (socket.id based).", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-bundled-product-stack", - "type": "concept", + "id": "api:channel:agents/terminalInput", + "type": "endpoint", "attrs": { - "title": "Bundled Product Stack", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "bundled-product-stack", - "domain": "decabill" + "pathOrChannel": "agents/terminalInput", + "summary": "Client sends input data to a terminal session (requires prior login). Only the socket that created the session can send input.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-custom-service-kind", - "type": "concept", + "id": "api:channel:agents/terminalOutput", + "type": "endpoint", "attrs": { - "title": "Custom Service Kind", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "custom-service-kind", - "domain": "decabill" + "pathOrChannel": "agents/terminalOutput", + "summary": "Server sends terminal output data to the client. Emitted whenever the terminal session produces output.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-tls-and-dns", - "type": "concept", + "id": "api:channel:agents/closeTerminal", + "type": "endpoint", "attrs": { - "title": "TLS and DNS", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "tls-and-dns", - "domain": "decabill" + "pathOrChannel": "agents/closeTerminal", + "summary": "Client sends close terminal command (requires prior login). Only the socket that created the session can close it.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-ssh-access", - "type": "concept", + "id": "api:channel:agents/terminalClosed", + "type": "endpoint", "attrs": { - "title": "SSH Access", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "ssh-access", - "domain": "decabill" + "pathOrChannel": "agents/terminalClosed", + "summary": "Server acknowledges terminal closure. Also emitted when terminal session ends (e.g., exit command).", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-nested-provisioning-tokens", - "type": "concept", + "id": "api:channel:agents/containerStats", + "type": "endpoint", "attrs": { - "title": "Nested Provisioning Tokens", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "nested-provisioning-tokens", - "domain": "decabill" + "pathOrChannel": "agents/containerStats", + "summary": "Server broadcasts container status (running/stopped) and, when running, container statistics (CPU, memory, network, etc.) periodically to all clients authenticated to the agent. First broadcast is sent immediately after successful login, then every 15 seconds by default (CONTAINER_STATS_SCHEDULER_INTERVAL in milliseconds on the agent-manager) while clients remain authenticated. When the container is stopped, stats is null but status is always present.", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-server-information-and-control", - "type": "concept", + "id": "api:HTTP:GET:/agents", + "type": "endpoint", "attrs": { - "title": "Server Information and Control", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "server-information-and-control", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents", + "operationId": "listAgents", + "summary": "List agents", + "specKind": "openapi" } }, { - "id": "concept:decabill-subscription-item-update-scheduler", - "type": "concept", + "id": "api:HTTP:POST:/agents", + "type": "endpoint", "attrs": { - "title": "Subscription Item Update Scheduler", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "subscription-item-update-scheduler", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents", + "operationId": "createAgent", + "summary": "Create agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-optional-instance-configuration", - "type": "concept", + "id": "api:HTTP:GET:/agents/{id}", + "type": "endpoint", "attrs": { - "title": "Optional Instance Configuration", - "docPath": "docs/decabill/features/server-provisioning.md", - "sectionAnchor": "optional-instance-configuration", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{id}", + "operationId": "getAgent", + "summary": "Get agent by id", + "specKind": "openapi" } }, { - "id": "concept:decabill-service-types-and-plans", - "type": "concept", + "id": "api:HTTP:POST:/agents/{id}", + "type": "endpoint", "attrs": { - "title": "Service Types and Plans", - "docPath": "docs/decabill/features/service-types-and-plans.md", - "sectionAnchor": "service-types-and-plans", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{id}", + "operationId": "updateAgent", + "summary": "Update agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-service-types", - "type": "concept", + "id": "api:HTTP:DELETE:/agents/{id}", + "type": "endpoint", "attrs": { - "title": "Service Types", - "docPath": "docs/decabill/features/service-types-and-plans.md", - "sectionAnchor": "service-types", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/agents/{id}", + "operationId": "deleteAgent", + "summary": "Delete agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-service-plans", - "type": "concept", + "id": "api:HTTP:POST:/agents/{id}/start", + "type": "endpoint", "attrs": { - "title": "Service Plans", - "docPath": "docs/decabill/features/service-types-and-plans.md", - "sectionAnchor": "service-plans", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{id}/start", + "operationId": "startAgent", + "summary": "Start agent environment", + "specKind": "openapi" } }, { - "id": "concept:decabill-availability-and-pricing", - "type": "concept", + "id": "api:HTTP:POST:/agents/{id}/stop", + "type": "endpoint", "attrs": { - "title": "Availability and Pricing", - "docPath": "docs/decabill/features/service-types-and-plans.md", - "sectionAnchor": "availability-and-pricing", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{id}/stop", + "operationId": "stopAgent", + "summary": "Stop agent environment", + "specKind": "openapi" } }, { - "id": "concept:decabill-subscriptions", - "type": "concept", + "id": "api:HTTP:POST:/agents/{id}/restart", + "type": "endpoint", "attrs": { - "title": "Subscriptions", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "subscriptions", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{id}/restart", + "operationId": "restartAgent", + "summary": "Restart agent environment", + "specKind": "openapi" } }, { - "id": "concept:decabill-subscription-lifecycle", - "type": "concept", + "id": "api:HTTP:GET:/agents/{id}/models", + "type": "endpoint", "attrs": { - "title": "Subscription Lifecycle", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "subscription-lifecycle", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{id}/models", + "operationId": "listAgentModels", + "summary": "List models for an agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-ordering-a-subscription", - "type": "concept", + "id": "api:HTTP:GET:/agents-filters", + "type": "endpoint", "attrs": { - "title": "Ordering a Subscription", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "ordering-a-subscription", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents-filters", + "operationId": "listRegexFilterRules", + "summary": "List regex filter rules", + "specKind": "openapi" } }, { - "id": "concept:decabill-cancel-and-resume", - "type": "concept", + "id": "api:HTTP:POST:/agents-filters", + "type": "endpoint", "attrs": { - "title": "Cancel and Resume", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "cancel-and-resume", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents-filters", + "operationId": "createRegexFilterRule", + "summary": "Create regex filter rule", + "specKind": "openapi" } }, { - "id": "concept:decabill-statutory-withdrawal-widerruf", - "type": "concept", + "id": "api:HTTP:GET:/agents-filters/count", + "type": "endpoint", "attrs": { - "title": "Statutory Withdrawal (Widerruf)", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "statutory-withdrawal-widerruf", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents-filters/count", + "operationId": "countRegexFilterRules", + "summary": "Count regex filter rules", + "specKind": "openapi" } }, { - "id": "concept:decabill-subscription-items", - "type": "concept", + "id": "api:HTTP:GET:/agents-filters/{id}", + "type": "endpoint", "attrs": { - "title": "Subscription Items", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "subscription-items", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents-filters/{id}", + "operationId": "getRegexFilterRule", + "summary": "Get regex filter rule by id", + "specKind": "openapi" } }, { - "id": "concept:decabill-usage-records", - "type": "concept", + "id": "api:HTTP:PUT:/agents-filters/{id}", + "type": "endpoint", "attrs": { - "title": "Usage Records", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "usage-records", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/agents-filters/{id}", + "operationId": "updateRegexFilterRule", + "summary": "Update regex filter rule", + "specKind": "openapi" } }, { - "id": "concept:decabill-pricing-preview", - "type": "concept", + "id": "api:HTTP:DELETE:/agents-filters/{id}", + "type": "endpoint", "attrs": { - "title": "Pricing Preview", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "pricing-preview", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/agents-filters/{id}", + "operationId": "deleteRegexFilterRule", + "summary": "Delete regex filter rule", + "specKind": "openapi" } }, { - "id": "concept:decabill-availability", - "type": "concept", + "id": "api:HTTP:GET:/config", + "type": "endpoint", "attrs": { - "title": "Availability", - "docPath": "docs/decabill/features/subscriptions.md", - "sectionAnchor": "availability", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/config", + "operationId": "getConfig", + "summary": "Get configuration parameters", + "specKind": "openapi" } }, { - "id": "concept:decabill-webhooks-decabill", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/files", + "type": "endpoint", "attrs": { - "title": "Webhooks (Decabill)", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "webhooks-decabill", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/files", + "operationId": "listDirectory", + "summary": "List directory contents", + "specKind": "openapi" } }, { - "id": "concept:decabill-access", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Access", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "access", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/files/{path}", + "operationId": "readFile", + "summary": "Read file content", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication-modes", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Authentication modes", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "authentication-modes", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/files/{path}", + "operationId": "createFileOrDirectory", + "summary": "Create file or directory", + "specKind": "openapi" } }, { - "id": "concept:decabill-event-envelope", - "type": "concept", + "id": "api:HTTP:PUT:/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Event envelope", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "event-envelope", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/agents/{agentId}/files/{path}", + "operationId": "writeFile", + "summary": "Write file content", + "specKind": "openapi" } }, { - "id": "concept:decabill-event-catalog", - "type": "concept", + "id": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Event catalog", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "event-catalog", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/agents/{agentId}/files/{path}", + "operationId": "deleteFileOrDirectory", + "summary": "Delete file or directory", + "specKind": "openapi" } }, { - "id": "concept:decabill-payload-examples", - "type": "concept", + "id": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", + "type": "endpoint", "attrs": { - "title": "Payload examples", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "payload-examples", - "domain": "decabill" + "method": "PATCH", + "pathOrChannel": "/agents/{agentId}/files/{path}", + "operationId": "moveFileOrDirectory", + "summary": "Move file or directory", + "specKind": "openapi" } }, { - "id": "concept:decabill-delivery-and-retries", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/environment", + "type": "endpoint", "attrs": { - "title": "Delivery and retries", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "delivery-and-retries", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/environment", + "operationId": "listEnvironmentVariables", + "summary": "List environment variables", + "specKind": "openapi" } }, { - "id": "concept:decabill-delivery-log-retention", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/environment", + "type": "endpoint", "attrs": { - "title": "Delivery log retention", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "delivery-log-retention", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/environment", + "operationId": "createEnvironmentVariable", + "summary": "Create environment variable", + "specKind": "openapi" } }, { - "id": "concept:decabill-endpoint-deletion", - "type": "concept", + "id": "api:HTTP:DELETE:/agents/{agentId}/environment", + "type": "endpoint", "attrs": { - "title": "Endpoint deletion", - "docPath": "docs/decabill/features/webhooks.md", - "sectionAnchor": "endpoint-deletion", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/agents/{agentId}/environment", + "operationId": "deleteAllEnvironmentVariables", + "summary": "Delete all environment variables", + "specKind": "openapi" } }, { - "id": "concept:decabill-getting-started-with-decabill", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/environment/count", + "type": "endpoint", "attrs": { - "title": "Getting Started with Decabill", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "getting-started-with-decabill", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/environment/count", + "operationId": "countEnvironmentVariables", + "summary": "Get count of environment variables", + "specKind": "openapi" } }, { - "id": "concept:decabill-edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", - "type": "concept", + "id": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", + "type": "endpoint", "attrs": { - "title": "Edit .env: set STATIC_API_KEY, ENCRYPTION_KEY, issuer fields, and TENANTS as needed", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/agents/{agentId}/environment/{id}", + "operationId": "updateEnvironmentVariable", + "summary": "Update environment variable", + "specKind": "openapi" } }, { - "id": "concept:decabill-terminal-1-billing-manager-queue-role-all-runs-api-worker-and-scheduler-in-one-process", - "type": "concept", + "id": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", + "type": "endpoint", "attrs": { - "title": "Terminal 1: billing manager (QUEUE_ROLE=all runs API, worker, and scheduler in one process)", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "terminal-1-billing-manager-queue-role-all-runs-api-worker-and-scheduler-in-one-process", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/agents/{agentId}/environment/{id}", + "operationId": "deleteEnvironmentVariable", + "summary": "Delete environment variable", + "specKind": "openapi" } }, { - "id": "concept:decabill-set-queue-role-all-redis-port-6380-if-redis-is-published-on-the-host-and-auth-variables", - "type": "concept", + "id": "api:HTTP:GET:/configuration-overrides", + "type": "endpoint", "attrs": { - "title": "Set QUEUE_ROLE=all, REDIS_PORT=6380 if Redis is published on the host, and auth variables", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "set-queue-role-all-redis-port-6380-if-redis-is-published-on-the-host-and-auth-variables", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/configuration-overrides", + "operationId": "listWorkspaceConfigurationOverrides", + "summary": "List effective workspace configuration overrides", + "specKind": "openapi" } }, { - "id": "concept:decabill-terminal-2-billing-console-angular-dev-server-on-port-4500", - "type": "concept", + "id": "api:HTTP:PUT:/configuration-overrides/{settingKey}", + "type": "endpoint", "attrs": { - "title": "Terminal 2: billing console (Angular dev server on port 4500)", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "terminal-2-billing-console-angular-dev-server-on-port-4500", - "domain": "decabill" + "method": "PUT", + "pathOrChannel": "/configuration-overrides/{settingKey}", + "operationId": "upsertWorkspaceConfigurationOverride", + "summary": "Create or update a workspace configuration override", + "specKind": "openapi" } }, { - "id": "concept:decabill-redis-6380-when-using-compose-host-mapping", - "type": "concept", + "id": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", + "type": "endpoint", "attrs": { - "title": "Redis (6380 when using compose host mapping)", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "redis-6380-when-using-compose-host-mapping", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/configuration-overrides/{settingKey}", + "operationId": "deleteWorkspaceConfigurationOverride", + "summary": "Delete a workspace configuration override", + "specKind": "openapi" } }, { - "id": "concept:decabill-process-role-local-all-in-one", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/vcs/status", + "type": "endpoint", "attrs": { - "title": "Process role (local all-in-one)", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "process-role-local-all-in-one", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/vcs/status", + "operationId": "getGitStatus", + "summary": "Get git status", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication-choose-one-method", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/vcs/branches", + "type": "endpoint", "attrs": { - "title": "Authentication (choose one method)", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "authentication-choose-one-method", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/vcs/branches", + "operationId": "getGitBranches", + "summary": "List all branches", + "specKind": "openapi" } }, { - "id": "concept:decabill-or-keycloak", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/branches", + "type": "endpoint", "attrs": { - "title": "Or Keycloak:", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "or-keycloak", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/branches", + "operationId": "createGitBranch", + "summary": "Create a new branch", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication-method-keycloak", - "type": "concept", + "id": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", + "type": "endpoint", "attrs": { - "title": "AUTHENTICATION_METHOD=keycloak", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "authentication-method-keycloak", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/agents/{agentId}/vcs/branches/{branch}", + "operationId": "deleteGitBranch", + "summary": "Delete a branch", + "specKind": "openapi" } }, { - "id": "concept:decabill-keycloak-auth-server-url-http-localhost-8380", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", + "type": "endpoint", "attrs": { - "title": "KEYCLOAK_AUTH_SERVER_URL=http://localhost:8380", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "keycloak-auth-server-url-http-localhost-8380", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/branches/{branch}/switch", + "operationId": "switchGitBranch", + "summary": "Switch to a branch", + "specKind": "openapi" } }, { - "id": "concept:decabill-keycloak-realm-decabill", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/vcs/diff", + "type": "endpoint", "attrs": { - "title": "KEYCLOAK_REALM=decabill", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "keycloak-realm-decabill", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/vcs/diff", + "operationId": "getGitFileDiff", + "summary": "Get file diff", + "specKind": "openapi" } }, { - "id": "concept:decabill-keycloak-client-id-billing-manager", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/stage", + "type": "endpoint", "attrs": { - "title": "KEYCLOAK_CLIENT_ID=billing-manager", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "keycloak-client-id-billing-manager", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/stage", + "operationId": "stageFiles", + "summary": "Stage files", + "specKind": "openapi" } }, { - "id": "concept:decabill-keycloak-client-secret-your-client-secret", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", + "type": "endpoint", "attrs": { - "title": "KEYCLOAK_CLIENT_SECRET=your-client-secret", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "keycloak-client-secret-your-client-secret", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/unstage", + "operationId": "unstageFiles", + "summary": "Unstage files", + "specKind": "openapi" } }, { - "id": "concept:decabill-or-built-in-users-default-in-local-angular-environment", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/commit", + "type": "endpoint", "attrs": { - "title": "Or built-in users (default in local Angular environment):", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "or-built-in-users-default-in-local-angular-environment", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/commit", + "operationId": "commitChanges", + "summary": "Commit staged changes", + "specKind": "openapi" } }, { - "id": "concept:decabill-authentication-method-users", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/push", + "type": "endpoint", "attrs": { - "title": "AUTHENTICATION_METHOD=users", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "authentication-method-users", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/push", + "operationId": "pushChanges", + "summary": "Push changes to remote", + "specKind": "openapi" } }, { - "id": "concept:decabill-jwt-secret-your-jwt-secret", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/pull", + "type": "endpoint", "attrs": { - "title": "JWT_SECRET=your-jwt-secret", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "jwt-secret-your-jwt-secret", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/pull", + "operationId": "pullChanges", + "summary": "Pull changes from remote", + "specKind": "openapi" } }, { - "id": "concept:decabill-disable-signup-false", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", + "type": "endpoint", "attrs": { - "title": "DISABLE_SIGNUP=false", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "disable-signup-false", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/fetch", + "operationId": "fetchChanges", + "summary": "Fetch changes from remote", + "specKind": "openapi" } }, { - "id": "concept:decabill-multi-tenancy-and-console-url", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", + "type": "endpoint", "attrs": { - "title": "Multi-tenancy and console URL", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "multi-tenancy-and-console-url", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/workspace/prepare-clean", + "operationId": "prepareCleanWorkspace", + "summary": "Prepare clean workspace", + "specKind": "openapi" } }, { - "id": "concept:decabill-encryption-set-before-storing-sensitive-provider-or-ssh-fields", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", + "type": "endpoint", "attrs": { - "title": "Encryption (set before storing sensitive provider or SSH fields)", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "encryption-set-before-storing-sensitive-provider-or-ssh-fields", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/rebase", + "operationId": "rebaseBranch", + "summary": "Rebase current branch", + "specKind": "openapi" } }, { - "id": "concept:decabill-stripe-optional", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", + "type": "endpoint", "attrs": { - "title": "Stripe (optional)", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "stripe-optional", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/vcs/conflicts/resolve", + "operationId": "resolveConflict", + "summary": "Resolve merge conflict", + "specKind": "openapi" } }, { - "id": "concept:decabill-first-login", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", + "type": "endpoint", "attrs": { - "title": "First Login", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "first-login", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/automation/verify-commands", + "operationId": "runVerifierCommands", + "summary": "Run verifier shell commands in the agent container", + "specKind": "openapi" } }, { - "id": "concept:decabill-verify-the-stack", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", + "type": "endpoint", "attrs": { - "title": "Verify the Stack", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "verify-the-stack", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/configuration", + "operationId": "getDeploymentConfiguration", + "summary": "Get deployment configuration for an agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-next-steps", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", + "type": "endpoint", "attrs": { - "title": "Next Steps", - "docPath": "docs/decabill/getting-started.md", - "sectionAnchor": "next-steps", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/deployments/configuration", + "operationId": "upsertDeploymentConfiguration", + "summary": "Create or update deployment configuration for an agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-security-documentation", - "type": "concept", + "id": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", + "type": "endpoint", "attrs": { - "title": "Security documentation", - "docPath": "docs/decabill/security/README.md", - "sectionAnchor": "security-documentation", - "domain": "decabill" + "method": "DELETE", + "pathOrChannel": "/agents/{agentId}/deployments/configuration", + "operationId": "deleteDeploymentConfiguration", + "summary": "Delete deployment configuration for an agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-configuration-reference", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", + "type": "endpoint", "attrs": { - "title": "Configuration reference", - "docPath": "docs/decabill/security/README.md", - "sectionAnchor": "configuration-reference", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/repositories", + "operationId": "listDeploymentRepositories", + "summary": "List repositories accessible with the agent's deployment configuration", + "specKind": "openapi" } }, { - "id": "concept:decabill-accepted-risks-register", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "type": "endpoint", "attrs": { - "title": "Accepted risks (register)", - "docPath": "docs/decabill/security/accepted-risks.md", - "sectionAnchor": "accepted-risks-register", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "operationId": "listDeploymentBranches", + "summary": "List branches for a repository", + "specKind": "openapi" } }, { - "id": "concept:decabill-dr-001-provisioning-ssh-cloud-init-templates", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "type": "endpoint", "attrs": { - "title": "DR-001 - Provisioning SSH (cloud-init templates)", - "docPath": "docs/decabill/security/accepted-risks.md", - "sectionAnchor": "dr-001-provisioning-ssh-cloud-init-templates", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "operationId": "listDeploymentWorkflows", + "summary": "List workflows for a repository", + "specKind": "openapi" } }, { - "id": "concept:decabill-dr-002-billing-multi-tenant-api-key-scope-static-api-key-tenant-id-unset", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", + "type": "endpoint", "attrs": { - "title": "DR-002 - Billing multi-tenant API key scope (`STATIC_API_KEY_TENANT_ID` unset)", - "docPath": "docs/decabill/security/accepted-risks.md", - "sectionAnchor": "dr-002-billing-multi-tenant-api-key-scope-static-api-key-tenant-id-unset", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/deployments/workflows/trigger", + "operationId": "triggerDeploymentWorkflow", + "summary": "Trigger a workflow run", + "specKind": "openapi" } }, { - "id": "concept:decabill-dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs", + "type": "endpoint", "attrs": { - "title": "DR-003 - Web frontends: CSP `unsafe-inline` / `unsafe-eval` (Monaco)", - "docPath": "docs/decabill/security/accepted-risks.md", - "sectionAnchor": "dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/runs", + "operationId": "listDeploymentRuns", + "summary": "List deployment runs for an agent", + "specKind": "openapi" } }, { - "id": "concept:decabill-dr-004-backend-authentication-method-resolution", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", + "type": "endpoint", "attrs": { - "title": "DR-004 - Backend authentication method resolution", - "docPath": "docs/decabill/security/accepted-risks.md", - "sectionAnchor": "dr-004-backend-authentication-method-resolution", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}", + "operationId": "getDeploymentRunStatus", + "summary": "Get the status of a pipeline run", + "specKind": "openapi" } }, { - "id": "concept:decabill-dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", + "type": "endpoint", "attrs": { - "title": "DR-005 - CI / local Trivy: unfixed vulnerabilities not gated", - "docPath": "docs/decabill/security/accepted-risks.md", - "sectionAnchor": "dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/logs", + "operationId": "getDeploymentRunLogs", + "summary": "Get logs for a pipeline run", + "specKind": "openapi" } }, { - "id": "concept:decabill-hardening-paths-if-an-acceptance-is-withdrawn", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", + "type": "endpoint", "attrs": { - "title": "Hardening paths (if an acceptance is withdrawn)", - "docPath": "docs/decabill/security/accepted-risks.md", - "sectionAnchor": "hardening-paths-if-an-acceptance-is-withdrawn", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/jobs", + "operationId": "listDeploymentRunJobs", + "summary": "List jobs/steps for a pipeline run", + "specKind": "openapi" } }, { - "id": "concept:decabill-ci-security-scanning-trivy", - "type": "concept", + "id": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "type": "endpoint", "attrs": { - "title": "CI security scanning (Trivy)", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "ci-security-scanning-trivy", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "operationId": "getDeploymentJobLogs", + "summary": "Get logs for a specific job/step", + "specKind": "openapi" } }, { - "id": "concept:decabill-what-is-scanned", - "type": "concept", + "id": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", + "type": "endpoint", "attrs": { - "title": "What is scanned", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "what-is-scanned", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/agents/{agentId}/deployments/runs/{runId}/cancel", + "operationId": "cancelDeploymentRun", + "summary": "Cancel a running pipeline", + "specKind": "openapi" } }, { - "id": "concept:decabill-workflows", - "type": "concept", + "id": "webhook-event:graph:invoice.created", + "type": "webhook-event", "attrs": { - "title": "Workflows", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "workflows", - "domain": "decabill" + "eventName": "invoice.created", + "projectName": "graph", + "catalogPath": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/notifications/demo-notification.events.ts" } }, { - "id": "concept:decabill-severity-policy", - "type": "concept", + "id": "webhook-event:graph:invoice.issued", + "type": "webhook-event", "attrs": { - "title": "Severity policy", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "severity-policy", - "domain": "decabill" + "eventName": "invoice.issued", + "projectName": "graph", + "catalogPath": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/notifications/demo-notification.events.ts" } }, { - "id": "concept:decabill-viewing-results", - "type": "concept", + "id": "webhook-event:graph:payment.succeeded", + "type": "webhook-event", "attrs": { - "title": "Viewing results", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "viewing-results", - "domain": "decabill" + "eventName": "payment.succeeded", + "projectName": "graph", + "catalogPath": "tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/notifications/demo-notification.events.ts" } }, { - "id": "concept:decabill-triage-and-exceptions", - "type": "concept", + "id": "api:channel:demo/status", + "type": "endpoint", "attrs": { - "title": "Triage and exceptions", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "triage-and-exceptions", - "domain": "decabill" + "pathOrChannel": "demo/status", + "operationId": "publishDemoStatus", + "summary": "Demo status channel", + "specKind": "asyncapi" } }, { - "id": "concept:decabill-local-reproduction", - "type": "concept", + "id": "api:HTTP:GET:/invoices", + "type": "endpoint", "attrs": { - "title": "Local reproduction", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "local-reproduction", - "domain": "decabill" + "method": "GET", + "pathOrChannel": "/invoices", + "operationId": "listInvoices", + "summary": "List invoices", + "specKind": "openapi" } }, { - "id": "concept:decabill-relationship-to-sbom-and-dependency-track", - "type": "concept", + "id": "api:HTTP:POST:/invoices", + "type": "endpoint", "attrs": { - "title": "Relationship to SBOM and Dependency Track", - "docPath": "docs/decabill/security/ci-security-scanning.md", - "sectionAnchor": "relationship-to-sbom-and-dependency-track", - "domain": "decabill" + "method": "POST", + "pathOrChannel": "/invoices", + "operationId": "createInvoice", + "specKind": "openapi" } }, { - "id": "concept:decabill-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", + "id": "concept:agenstra-agenstra-documentation", "type": "concept", "attrs": { - "title": "Compliance and standards (EU CRA and BSI IT-Grundschutz)", - "docPath": "docs/decabill/security/compliance-and-standards.md", - "sectionAnchor": "compliance-and-standards-eu-cra-and-bsi-it-grundschutz", - "domain": "decabill" + "title": "Agenstra Documentation", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "agenstra-documentation", + "domain": "agenstra" } }, { - "id": "concept:decabill-eu-cyber-resilience-act-cra", + "id": "concept:agenstra-what-is-agenstra", "type": "concept", "attrs": { - "title": "EU Cyber Resilience Act (CRA)", - "docPath": "docs/decabill/security/compliance-and-standards.md", - "sectionAnchor": "eu-cyber-resilience-act-cra", - "domain": "decabill" + "title": "What is Agenstra?", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "what-is-agenstra", + "domain": "agenstra" } }, { - "id": "concept:decabill-bsi-it-grundschutz", + "id": "concept:agenstra-documentation-structure", "type": "concept", "attrs": { - "title": "BSI IT-Grundschutz", - "docPath": "docs/decabill/security/compliance-and-standards.md", - "sectionAnchor": "bsi-it-grundschutz", - "domain": "decabill" + "title": "Documentation Structure", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "documentation-structure", + "domain": "agenstra" } }, { - "id": "concept:decabill-trust-boundaries-summary", + "id": "concept:agenstra-quick-start", "type": "concept", "attrs": { - "title": "Trust boundaries (summary)", - "docPath": "docs/decabill/security/compliance-and-standards.md", - "sectionAnchor": "trust-boundaries-summary", - "domain": "decabill" + "title": "Quick Start", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "quick-start", + "domain": "agenstra" } }, { - "id": "concept:decabill-container-image-security", + "id": "concept:agenstra-system-architecture", "type": "concept", "attrs": { - "title": "Container image security", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "container-image-security", - "domain": "decabill" + "title": "System Architecture", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "system-architecture", + "domain": "agenstra" } }, { - "id": "concept:decabill-published-images", + "id": "concept:agenstra-key-features", "type": "concept", "attrs": { - "title": "Published images", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "published-images", - "domain": "decabill" + "title": "Key Features", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "key-features", + "domain": "agenstra" } }, { - "id": "concept:decabill-runtime-users", + "id": "concept:agenstra-related-documentation", "type": "concept", "attrs": { - "title": "Runtime users", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "runtime-users", - "domain": "decabill" - } - }, - { - "id": "concept:decabill-billing-api-image-decabill-billing-api", - "type": "concept", - "attrs": { - "title": "Billing API image (`decabill-billing-api`)", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "billing-api-image-decabill-billing-api", - "domain": "decabill" + "title": "Related Documentation", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "related-documentation", + "domain": "agenstra" } }, { - "id": "concept:decabill-billing-console-server-image-decabill-billing-console-server", + "id": "concept:agenstra-external-resources", "type": "concept", "attrs": { - "title": "Billing console server image (`decabill-billing-console-server`)", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "billing-console-server-image-decabill-billing-console-server", - "domain": "decabill" + "title": "External Resources", + "docPath": "docs/agenstra/README.md", + "sectionAnchor": "external-resources", + "domain": "agenstra" } }, { - "id": "concept:decabill-docs-server-image-decabill-docs-server", + "id": "concept:agenstra-ai-agents-context-agenstra", "type": "concept", "attrs": { - "title": "Docs server image (`decabill-docs-server`)", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "docs-server-image-decabill-docs-server", - "domain": "decabill" + "title": "AI Agents Context (.agenstra)", + "docPath": "docs/agenstra/ai-agents/README.md", + "sectionAnchor": "ai-agents-context-agenstra", + "domain": "agenstra" } }, { - "id": "concept:decabill-secrets-and-configuration", + "id": "concept:agenstra-overview", "type": "concept", "attrs": { - "title": "Secrets and configuration", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "secrets-and-configuration", - "domain": "decabill" + "title": "Overview", + "docPath": "docs/agenstra/ai-agents/README.md", + "sectionAnchor": "overview", + "domain": "agenstra" } }, { - "id": "concept:decabill-image-scanning", + "id": "concept:agenstra-directory-structure", "type": "concept", "attrs": { - "title": "Image scanning", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "image-scanning", - "domain": "decabill" + "title": "Directory Structure", + "docPath": "docs/agenstra/ai-agents/README.md", + "sectionAnchor": "directory-structure", + "domain": "agenstra" } }, { - "id": "concept:decabill-coordinated-upgrades", + "id": "concept:agenstra-components", "type": "concept", "attrs": { - "title": "Coordinated upgrades", - "docPath": "docs/decabill/security/container-images.md", - "sectionAnchor": "coordinated-upgrades", - "domain": "decabill" + "title": "Components", + "docPath": "docs/agenstra/ai-agents/README.md", + "sectionAnchor": "components", + "domain": "agenstra" } }, { - "id": "concept:decabill-operational-hardening", + "id": "concept:agenstra-generating-tool-configs", "type": "concept", "attrs": { - "title": "Operational hardening", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "operational-hardening", - "domain": "decabill" + "title": "Generating tool configs", + "docPath": "docs/agenstra/ai-agents/README.md", + "sectionAnchor": "generating-tool-configs", + "domain": "agenstra" } }, { - "id": "concept:decabill-container-images-docker", + "id": "concept:agenstra-agentctx", "type": "concept", "attrs": { - "title": "Container images (Docker)", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "container-images-docker", - "domain": "decabill" + "title": "AgentCTX", + "docPath": "docs/agenstra/ai-agents/agentctx.md", + "sectionAnchor": "agentctx", + "domain": "agenstra" } }, { - "id": "concept:decabill-authentication-mode-backends", + "id": "concept:agenstra-purpose", "type": "concept", "attrs": { - "title": "Authentication mode (backends)", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "authentication-mode-backends", - "domain": "decabill" + "title": "Purpose", + "docPath": "docs/agenstra/ai-agents/agentctx.md", + "sectionAnchor": "purpose", + "domain": "agenstra" } }, { - "id": "concept:decabill-billing-manager-multi-tenancy", + "id": "concept:agenstra-installation", "type": "concept", "attrs": { - "title": "Billing manager multi-tenancy", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "billing-manager-multi-tenancy", - "domain": "decabill" + "title": "Installation", + "docPath": "docs/agenstra/ai-agents/agentctx.md", + "sectionAnchor": "installation", + "domain": "agenstra" } }, { - "id": "concept:decabill-stripe-webhooks", + "id": "concept:agenstra-usage", "type": "concept", "attrs": { - "title": "Stripe webhooks", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "stripe-webhooks", - "domain": "decabill" + "title": "Usage", + "docPath": "docs/agenstra/ai-agents/agentctx.md", + "sectionAnchor": "usage", + "domain": "agenstra" } }, { - "id": "concept:decabill-logging-and-correlation", + "id": "concept:agenstra-related", "type": "concept", "attrs": { - "title": "Logging and correlation", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "logging-and-correlation", - "domain": "decabill" + "title": "Related", + "docPath": "docs/agenstra/ai-agents/agentctx.md", + "sectionAnchor": "related", + "domain": "agenstra" } }, { - "id": "concept:decabill-frontend-runtime-configuration-get-config", + "id": "concept:agenstra-agents-and-subagents", "type": "concept", "attrs": { - "title": "Frontend runtime configuration (`GET /config`)", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "frontend-runtime-configuration-get-config", - "domain": "decabill" + "title": "Agents and Subagents", + "docPath": "docs/agenstra/ai-agents/agents.md", + "sectionAnchor": "agents-and-subagents", + "domain": "agenstra" } }, { - "id": "concept:decabill-content-security-policy-frontend-express", + "id": "concept:agenstra-structure", "type": "concept", "attrs": { - "title": "Content Security Policy (frontend Express)", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "content-security-policy-frontend-express", - "domain": "decabill" + "title": "Structure", + "docPath": "docs/agenstra/ai-agents/agents.md", + "sectionAnchor": "structure", + "domain": "agenstra" } }, { - "id": "concept:decabill-websocket-cors-billing-manager", + "id": "concept:agenstra-frontmatter-properties-read-by-the-reader", "type": "concept", "attrs": { - "title": "WebSocket CORS (billing manager)", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "websocket-cors-billing-manager", - "domain": "decabill" + "title": "Frontmatter (properties read by the reader)", + "docPath": "docs/agenstra/ai-agents/agents.md", + "sectionAnchor": "frontmatter-properties-read-by-the-reader", + "domain": "agenstra" } }, { - "id": "concept:decabill-origin-allowlist-unsafe-http-methods", + "id": "concept:agenstra-example-primary-agent", "type": "concept", "attrs": { - "title": "Origin allowlist (unsafe HTTP methods)", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "origin-allowlist-unsafe-http-methods", - "domain": "decabill" + "title": "Example (primary agent)", + "docPath": "docs/agenstra/ai-agents/agents.md", + "sectionAnchor": "example-primary-agent", + "domain": "agenstra" } }, { - "id": "concept:decabill-provisioning-ssh", + "id": "concept:agenstra-example-subagent", "type": "concept", "attrs": { - "title": "Provisioning SSH", - "docPath": "docs/decabill/security/operational-hardening.md", - "sectionAnchor": "provisioning-ssh", - "domain": "decabill" + "title": "Example (subagent)", + "docPath": "docs/agenstra/ai-agents/agents.md", + "sectionAnchor": "example-subagent", + "domain": "agenstra" } }, { - "id": "concept:decabill-vulnerability-reporting-and-artifacts", + "id": "concept:agenstra-output-by-tool", "type": "concept", "attrs": { - "title": "Vulnerability reporting and artifacts", - "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "vulnerability-reporting-and-artifacts", - "domain": "decabill" + "title": "Output by tool", + "docPath": "docs/agenstra/ai-agents/agents.md", + "sectionAnchor": "output-by-tool", + "domain": "agenstra" } }, { - "id": "concept:decabill-supported-versions-and-security-updates", + "id": "concept:agenstra-commands", "type": "concept", "attrs": { - "title": "Supported versions and security updates", - "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "supported-versions-and-security-updates", - "domain": "decabill" + "title": "Commands", + "docPath": "docs/agenstra/ai-agents/commands.md", + "sectionAnchor": "commands", + "domain": "agenstra" } }, { - "id": "concept:decabill-our-response-commitment", + "id": "concept:agenstra-example", "type": "concept", "attrs": { - "title": "Our response commitment", - "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "our-response-commitment", - "domain": "decabill" + "title": "Example", + "docPath": "docs/agenstra/ai-agents/commands.md", + "sectionAnchor": "example", + "domain": "agenstra" } }, { - "id": "concept:decabill-reporting-a-vulnerability", + "id": "concept:agenstra-knowledge-graph", "type": "concept", "attrs": { - "title": "Reporting a vulnerability", - "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "reporting-a-vulnerability", - "domain": "decabill" + "title": "Knowledge Graph", + "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", + "sectionAnchor": "knowledge-graph", + "domain": "agenstra" } }, { - "id": "concept:decabill-continuous-scanning-ci", + "id": "concept:agenstra-why-it-exists", "type": "concept", "attrs": { - "title": "Continuous scanning (CI)", - "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "continuous-scanning-ci", - "domain": "decabill" + "title": "Why it exists", + "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", + "sectionAnchor": "why-it-exists", + "domain": "agenstra" } }, { - "id": "concept:decabill-software-bill-of-materials-sbom", + "id": "concept:agenstra-how-to-generate", "type": "concept", "attrs": { - "title": "Software Bill of Materials (SBOM)", - "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "sectionAnchor": "software-bill-of-materials-sbom", - "domain": "decabill" + "title": "How to generate", + "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", + "sectionAnchor": "how-to-generate", + "domain": "agenstra" } }, { - "id": "concept:decabill-troubleshooting-documentation", + "id": "concept:agenstra-schema-overview", "type": "concept", "attrs": { - "title": "Troubleshooting Documentation", - "docPath": "docs/decabill/troubleshooting/README.md", - "sectionAnchor": "troubleshooting-documentation", - "domain": "decabill" + "title": "Schema overview", + "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", + "sectionAnchor": "schema-overview", + "domain": "agenstra" } }, { - "id": "concept:decabill-troubleshooting-guides", + "id": "concept:agenstra-using-the-graph-with-ai-tools", "type": "concept", "attrs": { - "title": "Troubleshooting Guides", - "docPath": "docs/decabill/troubleshooting/README.md", - "sectionAnchor": "troubleshooting-guides", - "domain": "decabill" + "title": "Using the graph with AI tools", + "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", + "sectionAnchor": "using-the-graph-with-ai-tools", + "domain": "agenstra" } }, { - "id": "concept:decabill-quick-troubleshooting", + "id": "concept:agenstra-security", "type": "concept", "attrs": { - "title": "Quick Troubleshooting", - "docPath": "docs/decabill/troubleshooting/README.md", - "sectionAnchor": "quick-troubleshooting", - "domain": "decabill" + "title": "Security", + "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", + "sectionAnchor": "security", + "domain": "agenstra" } }, { - "id": "concept:decabill-getting-help", + "id": "concept:agenstra-implementation", "type": "concept", "attrs": { - "title": "Getting Help", - "docPath": "docs/decabill/troubleshooting/README.md", - "sectionAnchor": "getting-help", - "domain": "decabill" + "title": "Implementation", + "docPath": "docs/agenstra/ai-agents/knowledge-graph.md", + "sectionAnchor": "implementation", + "domain": "agenstra" } }, { - "id": "concept:decabill-common-issues", + "id": "concept:agenstra-mcp-definitions", "type": "concept", "attrs": { - "title": "Common Issues", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "common-issues", - "domain": "decabill" + "title": "MCP Definitions", + "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", + "sectionAnchor": "mcp-definitions", + "domain": "agenstra" } }, { - "id": "concept:decabill-connection-issues", + "id": "concept:agenstra-schema-properties-read-by-the-reader", "type": "concept", "attrs": { - "title": "Connection Issues", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "connection-issues", - "domain": "decabill" + "title": "Schema (properties read by the reader)", + "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", + "sectionAnchor": "schema-properties-read-by-the-reader", + "domain": "agenstra" } }, { - "id": "concept:decabill-authentication-problems", + "id": "concept:agenstra-example-local", "type": "concept", "attrs": { - "title": "Authentication Problems", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "authentication-problems", - "domain": "decabill" + "title": "Example (local)", + "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", + "sectionAnchor": "example-local", + "domain": "agenstra" } }, { - "id": "concept:decabill-stripe-and-payment-issues", + "id": "concept:agenstra-example-remote", "type": "concept", "attrs": { - "title": "Stripe and Payment Issues", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "stripe-and-payment-issues", - "domain": "decabill" + "title": "Example (remote)", + "docPath": "docs/agenstra/ai-agents/mcp-definitions.md", + "sectionAnchor": "example-remote", + "domain": "agenstra" } }, { - "id": "concept:decabill-background-jobs-and-redis", + "id": "concept:agenstra-rules", "type": "concept", "attrs": { - "title": "Background Jobs and Redis", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "background-jobs-and-redis", - "domain": "decabill" + "title": "Rules", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "rules", + "domain": "agenstra" } }, { - "id": "concept:decabill-database-issues", + "id": "concept:agenstra-frontmatter-metadata", "type": "concept", "attrs": { - "title": "Database Issues", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "database-issues", - "domain": "decabill" + "title": "Frontmatter (metadata)", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "frontmatter-metadata", + "domain": "agenstra" } }, { - "id": "concept:decabill-cors-and-csp-issues", + "id": "concept:agenstra-content-guidelines", "type": "concept", "attrs": { - "title": "CORS and CSP Issues", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "cors-and-csp-issues", - "domain": "decabill" + "title": "Content guidelines", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "content-guidelines", + "domain": "agenstra" } }, { - "id": "concept:decabill-provisioning-issues", + "id": "concept:agenstra-examples", "type": "concept", "attrs": { - "title": "Provisioning Issues", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "provisioning-issues", - "domain": "decabill" + "title": "Examples", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "examples", + "domain": "agenstra" } }, { - "id": "concept:decabill-rate-limiting-issues", + "id": "concept:agenstra-coding-standards", "type": "concept", "attrs": { - "title": "Rate Limiting Issues", - "docPath": "docs/decabill/troubleshooting/common-issues.md", - "sectionAnchor": "rate-limiting-issues", - "domain": "decabill" + "title": "Coding Standards", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "coding-standards", + "domain": "agenstra" } }, { - "id": "concept:decabill-debugging-guide", + "id": "concept:agenstra-conventions", "type": "concept", "attrs": { - "title": "Debugging Guide", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "debugging-guide", - "domain": "decabill" + "title": "Conventions", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "conventions", + "domain": "agenstra" } }, { - "id": "concept:decabill-billing-manager-api-local", + "id": "concept:agenstra-project-conventions", "type": "concept", "attrs": { - "title": "Billing manager API (local)", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "billing-manager-api-local", - "domain": "decabill" + "title": "Project Conventions", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "project-conventions", + "domain": "agenstra" } }, { - "id": "concept:decabill-bull-board-and-queue-debugging", + "id": "concept:agenstra-typescript-standards", "type": "concept", "attrs": { - "title": "Bull Board and Queue Debugging", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "bull-board-and-queue-debugging", - "domain": "decabill" + "title": "TypeScript Standards", + "docPath": "docs/agenstra/ai-agents/rules.md", + "sectionAnchor": "typescript-standards", + "domain": "agenstra" } }, { - "id": "concept:decabill-debugging-tools", + "id": "concept:agenstra-skills", "type": "concept", "attrs": { - "title": "Debugging Tools", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "debugging-tools", - "domain": "decabill" + "title": "Skills", + "docPath": "docs/agenstra/ai-agents/skills.md", + "sectionAnchor": "skills", + "domain": "agenstra" } }, { - "id": "concept:decabill-from-host-compose-default-port", + "id": "concept:agenstra-design-patterns", "type": "concept", "attrs": { - "title": "From host (compose default port)", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "from-host-compose-default-port", - "domain": "decabill" + "title": "Design Patterns", + "docPath": "docs/agenstra/ai-agents/skills.md", + "sectionAnchor": "design-patterns", + "domain": "agenstra" } }, { - "id": "concept:decabill-inside-compose-network", + "id": "concept:agenstra-factory-pattern", "type": "concept", "attrs": { - "title": "Inside compose network", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "inside-compose-network", - "domain": "decabill" + "title": "Factory Pattern", + "docPath": "docs/agenstra/ai-agents/skills.md", + "sectionAnchor": "factory-pattern", + "domain": "agenstra" } }, { - "id": "concept:decabill-example-tenant-scoped-queries", + "id": "concept:agenstra-api-reference", "type": "concept", "attrs": { - "title": "Example tenant-scoped queries", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "example-tenant-scoped-queries", - "domain": "decabill" + "title": "API Reference", + "docPath": "docs/agenstra/api-reference/README.md", + "sectionAnchor": "api-reference", + "domain": "agenstra" } }, { - "id": "concept:decabill-api-testing", + "id": "concept:agenstra-agent-controller-api", "type": "concept", "attrs": { - "title": "API Testing", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "api-testing", - "domain": "decabill" + "title": "Agent Controller API", + "docPath": "docs/agenstra/api-reference/README.md", + "sectionAnchor": "agent-controller-api", + "domain": "agenstra" } }, { - "id": "concept:decabill-websocket-testing", + "id": "concept:agenstra-agent-manager-api", "type": "concept", "attrs": { - "title": "WebSocket Testing", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "websocket-testing", - "domain": "decabill" + "title": "Agent Manager API", + "docPath": "docs/agenstra/api-reference/README.md", + "sectionAnchor": "agent-manager-api", + "domain": "agenstra" } }, { - "id": "concept:decabill-common-debugging-scenarios", + "id": "concept:agenstra-using-the-specifications", "type": "concept", "attrs": { - "title": "Common Debugging Scenarios", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "common-debugging-scenarios", - "domain": "decabill" + "title": "Using the Specifications", + "docPath": "docs/agenstra/api-reference/README.md", + "sectionAnchor": "using-the-specifications", + "domain": "agenstra" } }, { - "id": "concept:decabill-performance-debugging", + "id": "concept:agenstra-generated-client-packages", "type": "concept", "attrs": { - "title": "Performance Debugging", - "docPath": "docs/decabill/troubleshooting/debugging-guide.md", - "sectionAnchor": "performance-debugging", - "domain": "decabill" + "title": "Generated Client Packages", + "docPath": "docs/agenstra/api-reference/README.md", + "sectionAnchor": "generated-client-packages", + "domain": "agenstra" } }, { - "id": "domain:shared", - "type": "domain", + "id": "concept:agenstra-applications-documentation", + "type": "concept", "attrs": { - "name": "shared", - "kind": "domain", - "label": "domain", - "source": "path" + "title": "Applications Documentation", + "docPath": "docs/agenstra/applications/README.md", + "sectionAnchor": "applications-documentation", + "domain": "agenstra" } }, { - "id": "domain:forepath", - "type": "domain", + "id": "concept:agenstra-applications", + "type": "concept", "attrs": { - "name": "forepath", - "kind": "domain", - "label": "domain", - "source": "tag" + "title": "Applications", + "docPath": "docs/agenstra/applications/README.md", + "sectionAnchor": "applications", + "domain": "agenstra" } }, { - "id": "context:frontend", - "type": "context", + "id": "concept:agenstra-application-relationships", + "type": "concept", "attrs": { - "name": "frontend", - "kind": "context", - "label": "bounded context", - "source": "tag" + "title": "Application Relationships", + "docPath": "docs/agenstra/applications/README.md", + "sectionAnchor": "application-relationships", + "domain": "agenstra" } }, { - "id": "feature-group:data-access", - "type": "feature-group", + "id": "concept:agenstra-communication-patterns", + "type": "concept", "attrs": { - "name": "data-access", - "kind": "feature-group", - "label": "feature group", - "source": "tag" + "title": "Communication Patterns", + "docPath": "docs/agenstra/applications/README.md", + "sectionAnchor": "communication-patterns", + "domain": "agenstra" } }, { - "id": "context:backend", - "type": "context", + "id": "concept:agenstra-backend-agent-controller", + "type": "concept", "attrs": { - "name": "backend", - "kind": "context", - "label": "bounded context", - "source": "tag" + "title": "Backend Agent Controller", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "backend-agent-controller", + "domain": "agenstra" } }, { - "id": "feature-group:feature", - "type": "feature-group", + "id": "concept:agenstra-features", + "type": "concept", "attrs": { - "name": "feature", - "kind": "feature-group", - "label": "feature group", - "source": "tag" + "title": "Features", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "features", + "domain": "agenstra" } }, { - "id": "domain:decabill", - "type": "domain", + "id": "concept:agenstra-architecture", + "type": "concept", "attrs": { - "name": "decabill", - "kind": "domain", - "label": "domain", - "source": "tag" + "title": "Architecture", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "architecture", + "domain": "agenstra" } }, { - "id": "feature-group:util", - "type": "feature-group", + "id": "concept:agenstra-api-endpoints", + "type": "concept", "attrs": { - "name": "util", - "kind": "feature-group", - "label": "feature group", - "source": "tag" + "title": "API Endpoints", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "api-endpoints", + "domain": "agenstra" } }, { - "id": "domain:agenstra", - "type": "domain", + "id": "concept:agenstra-websocket-gateway", + "type": "concept", "attrs": { - "name": "agenstra", - "kind": "domain", - "label": "domain", - "source": "tag" + "title": "WebSocket Gateway", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "websocket-gateway", + "domain": "agenstra" } }, { - "id": "domain:identity", - "type": "domain", + "id": "concept:agenstra-authentication", + "type": "concept", "attrs": { - "name": "identity", - "kind": "domain", - "label": "domain", - "source": "tag" + "title": "Authentication", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "authentication", + "domain": "agenstra" } }, { - "id": "context:shared", - "type": "context", + "id": "concept:agenstra-rate-limiting", + "type": "concept", "attrs": { - "name": "shared", - "kind": "context", - "label": "bounded context", - "source": "tag" + "title": "Rate Limiting", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "rate-limiting", + "domain": "agenstra" } }, { - "id": "feature-group:app", - "type": "feature-group", + "id": "concept:agenstra-cors-configuration", + "type": "concept", "attrs": { - "name": "app", - "kind": "feature-group", - "label": "feature group", - "source": "tag" + "title": "CORS Configuration", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "cors-configuration", + "domain": "agenstra" } }, { - "id": "context:native", - "type": "context", + "id": "concept:agenstra-outbound-client-workspace-urls-ssrf", + "type": "concept", "attrs": { - "name": "native", - "kind": "context", - "label": "bounded context", - "source": "tag" + "title": "Outbound client workspace URLs (SSRF)", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "outbound-client-workspace-urls-ssrf", + "domain": "agenstra" } }, { - "id": "context:repo", - "type": "context", + "id": "concept:agenstra-environment-variables", + "type": "concept", "attrs": { - "name": "repo", - "kind": "context", - "label": "bounded context", - "source": "tag" + "title": "Environment Variables", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "environment-variables", + "domain": "agenstra" } }, { - "id": "feature-group:tool", - "type": "feature-group", + "id": "concept:agenstra-database-setup", + "type": "concept", "attrs": { - "name": "tool", - "kind": "feature-group", - "label": "feature group", - "source": "tag" + "title": "Database Setup", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "database-setup", + "domain": "agenstra" } }, { - "id": "context:sbom", - "type": "context", + "id": "concept:agenstra-docker-deployment", + "type": "concept", "attrs": { - "name": "sbom", - "kind": "context", - "label": "bounded context", - "source": "tag" + "title": "Docker Deployment", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "docker-deployment", + "domain": "agenstra" } - } - ], - "edges": [ + }, { - "from": "project:decabill-frontend-data-access-billing-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "id": "concept:agenstra-build-api-container", + "type": "concept", + "attrs": { + "title": "Build API container", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "build-api-container", + "domain": "agenstra" + } }, { - "from": "project:decabill-frontend-data-access-billing-console", - "to": "project:shared-frontend-util-provisioning-geography", - "type": "depends_on" + "id": "concept:agenstra-run-with-docker-compose-recommended", + "type": "concept", + "attrs": { + "title": "Run with docker-compose (recommended)", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "run-with-docker-compose-recommended", + "domain": "agenstra" + } }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "id": "concept:agenstra-or-run-directly", + "type": "concept", + "attrs": { + "title": "Or run directly", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "or-run-directly", + "domain": "agenstra" + } }, { - "from": "project:shared-frontend-util-runtime-config-server", - "to": "project:shared-shared-util-network-address", - "type": "depends_on" + "id": "concept:agenstra-production-deployment-checklist", + "type": "concept", + "attrs": { + "title": "Production Deployment Checklist", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "production-deployment-checklist", + "domain": "agenstra" + } }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "project:agenstra-backend-feature-agent-manager", - "type": "depends_on" + "id": "concept:agenstra-license", + "type": "concept", + "attrs": { + "title": "License", + "docPath": "docs/agenstra/applications/backend-agent-controller.md", + "sectionAnchor": "license", + "domain": "agenstra" + } }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "project:shared-backend-util-dynamic-provider-registry", - "type": "depends_on" + "id": "concept:agenstra-backend-agent-manager", + "type": "concept", + "attrs": { + "title": "Backend Agent Manager", + "docPath": "docs/agenstra/applications/backend-agent-manager.md", + "sectionAnchor": "backend-agent-manager", + "domain": "agenstra" + } }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "project:shared-backend-util-provisioning-geography", - "type": "depends_on" + "id": "concept:agenstra-build-worker-container", + "type": "concept", + "attrs": { + "title": "Build worker container", + "docPath": "docs/agenstra/applications/backend-agent-manager.md", + "sectionAnchor": "build-worker-container", + "domain": "agenstra" + } }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "project:shared-backend-util-redis-cache", - "type": "depends_on" + "id": "concept:agenstra-build-vnc-container", + "type": "concept", + "attrs": { + "title": "Build VNC container", + "docPath": "docs/agenstra/applications/backend-agent-manager.md", + "sectionAnchor": "build-vnc-container", + "domain": "agenstra" + } }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "project:shared-backend-util-http-context", - "type": "depends_on" + "id": "concept:agenstra-or-run-directly-with-docker-socket-mount", + "type": "concept", + "attrs": { + "title": "Or run directly with Docker socket mount", + "docPath": "docs/agenstra/applications/backend-agent-manager.md", + "sectionAnchor": "or-run-directly-with-docker-socket-mount", + "domain": "agenstra" + } }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "project:shared-backend-util-queue", - "type": "depends_on" + "id": "concept:agenstra-frontend-agent-console", + "type": "concept", + "attrs": { + "title": "Frontend Agent Console", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "frontend-agent-console", + "domain": "agenstra" + } }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "project:shared-shared-util-network-address", - "type": "depends_on" + "id": "concept:agenstra-state-management-ngrx", + "type": "concept", + "attrs": { + "title": "State Management (NgRx)", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "state-management-ngrx", + "domain": "agenstra" + } }, { - "from": "project:decabill-frontend-feature-billing-console", - "to": "project:decabill-frontend-data-access-billing-console", - "type": "depends_on" + "id": "concept:agenstra-routing", + "type": "concept", + "attrs": { + "title": "Routing", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "routing", + "domain": "agenstra" + } }, { - "from": "project:decabill-frontend-feature-billing-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "id": "concept:agenstra-websocket-communication", + "type": "concept", + "attrs": { + "title": "WebSocket Communication", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "websocket-communication", + "domain": "agenstra" + } }, { - "from": "project:decabill-frontend-feature-billing-console", - "to": "project:shared-frontend-feature-notifications", - "type": "depends_on" + "id": "concept:agenstra-environment-configuration", + "type": "concept", + "attrs": { + "title": "Environment Configuration", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "environment-configuration", + "domain": "agenstra" + } }, { - "from": "project:decabill-frontend-feature-billing-console", - "to": "project:shared-frontend-util-provisioning-geography", - "type": "depends_on" + "id": "concept:agenstra-development", + "type": "concept", + "attrs": { + "title": "Development", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "development", + "domain": "agenstra" + } }, { - "from": "project:shared-frontend-data-access-communication", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "id": "concept:agenstra-serve-the-application", + "type": "concept", + "attrs": { + "title": "Serve the application", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "serve-the-application", + "domain": "agenstra" + } }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:identity-backend-util-auth", - "type": "depends_on" + "id": "concept:agenstra-build-for-production", + "type": "concept", + "attrs": { + "title": "Build for production", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "build-for-production", + "domain": "agenstra" + } }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:identity-backend-feature-auth", - "type": "depends_on" + "id": "concept:agenstra-run-tests", + "type": "concept", + "attrs": { + "title": "Run tests", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "run-tests", + "domain": "agenstra" + } }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-util-crypto", - "type": "depends_on" + "id": "concept:agenstra-build-container", + "type": "concept", + "attrs": { + "title": "Build container", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "build-container", + "domain": "agenstra" + } }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-util-email", - "type": "depends_on" + "id": "concept:agenstra-run-with-docker-compose", + "type": "concept", + "attrs": { + "title": "Run with docker-compose", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "run-with-docker-compose", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-production-deployment", + "type": "concept", + "attrs": { + "title": "Production Deployment", + "docPath": "docs/agenstra/applications/frontend-agent-console.md", + "sectionAnchor": "production-deployment", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-architecture-documentation", + "type": "concept", + "attrs": { + "title": "Architecture Documentation", + "docPath": "docs/agenstra/architecture/README.md", + "sectionAnchor": "architecture-documentation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-key-architectural-concepts", + "type": "concept", + "attrs": { + "title": "Key Architectural Concepts", + "docPath": "docs/agenstra/architecture/README.md", + "sectionAnchor": "key-architectural-concepts", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-architecture-principles", + "type": "concept", + "attrs": { + "title": "Architecture Principles", + "docPath": "docs/agenstra/architecture/README.md", + "sectionAnchor": "architecture-principles", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-backend-applications", + "type": "concept", + "attrs": { + "title": "Backend Applications", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "backend-applications", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-frontend-applications", + "type": "concept", + "attrs": { + "title": "Frontend Applications", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "frontend-applications", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-backend-libraries", + "type": "concept", + "attrs": { + "title": "Backend Libraries", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "backend-libraries", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-frontend-libraries", + "type": "concept", + "attrs": { + "title": "Frontend Libraries", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "frontend-libraries", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-component-dependencies", + "type": "concept", + "attrs": { + "title": "Component Dependencies", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "component-dependencies", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-database-schema", + "type": "concept", + "attrs": { + "title": "Database Schema", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "database-schema", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-external-dependencies", + "type": "concept", + "attrs": { + "title": "External Dependencies", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "external-dependencies", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-component-communication", + "type": "concept", + "attrs": { + "title": "Component Communication", + "docPath": "docs/agenstra/architecture/components.md", + "sectionAnchor": "component-communication", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-data-flow", + "type": "concept", + "attrs": { + "title": "Data Flow", + "docPath": "docs/agenstra/architecture/data-flow.md", + "sectionAnchor": "data-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-http-rest-api-flow", + "type": "concept", + "attrs": { + "title": "HTTP REST API Flow", + "docPath": "docs/agenstra/architecture/data-flow.md", + "sectionAnchor": "http-rest-api-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-websocket-event-flow", + "type": "concept", + "attrs": { + "title": "WebSocket Event Flow", + "docPath": "docs/agenstra/architecture/data-flow.md", + "sectionAnchor": "websocket-event-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-state-management-flow-ngrx", + "type": "concept", + "attrs": { + "title": "State Management Flow (NgRx)", + "docPath": "docs/agenstra/architecture/data-flow.md", + "sectionAnchor": "state-management-flow-ngrx", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-file-system-operations-flow", + "type": "concept", + "attrs": { + "title": "File System Operations Flow", + "docPath": "docs/agenstra/architecture/data-flow.md", + "sectionAnchor": "file-system-operations-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-version-control-operations-flow", + "type": "concept", + "attrs": { + "title": "Version Control Operations Flow", + "docPath": "docs/agenstra/architecture/data-flow.md", + "sectionAnchor": "version-control-operations-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-server-provisioning-flow", + "type": "concept", + "attrs": { + "title": "Server Provisioning Flow", + "docPath": "docs/agenstra/architecture/data-flow.md", + "sectionAnchor": "server-provisioning-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-system-overview", + "type": "concept", + "attrs": { + "title": "System Overview", + "docPath": "docs/agenstra/architecture/system-overview.md", + "sectionAnchor": "system-overview", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-three-tier-architecture", + "type": "concept", + "attrs": { + "title": "Three-Tier Architecture", + "docPath": "docs/agenstra/architecture/system-overview.md", + "sectionAnchor": "three-tier-architecture", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-component-relationships", + "type": "concept", + "attrs": { + "title": "Component Relationships", + "docPath": "docs/agenstra/architecture/system-overview.md", + "sectionAnchor": "component-relationships", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-flow", + "type": "concept", + "attrs": { + "title": "Authentication Flow", + "docPath": "docs/agenstra/architecture/system-overview.md", + "sectionAnchor": "authentication-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-state-management", + "type": "concept", + "attrs": { + "title": "State Management", + "docPath": "docs/agenstra/architecture/system-overview.md", + "sectionAnchor": "state-management", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-reconnection-handling", + "type": "concept", + "attrs": { + "title": "Reconnection Handling", + "docPath": "docs/agenstra/architecture/system-overview.md", + "sectionAnchor": "reconnection-handling", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-deployment-documentation", + "type": "concept", + "attrs": { + "title": "Deployment Documentation", + "docPath": "docs/agenstra/deployment/README.md", + "sectionAnchor": "deployment-documentation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-deployment-guides", + "type": "concept", + "attrs": { + "title": "Deployment Guides", + "docPath": "docs/agenstra/deployment/README.md", + "sectionAnchor": "deployment-guides", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-deployment-architecture", + "type": "concept", + "attrs": { + "title": "Deployment Architecture", + "docPath": "docs/agenstra/deployment/README.md", + "sectionAnchor": "deployment-architecture", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-start-all-services", + "type": "concept", + "attrs": { + "title": "Start all services", + "docPath": "docs/agenstra/deployment/README.md", + "sectionAnchor": "start-all-services", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-install-dependencies", + "type": "concept", + "attrs": { + "title": "Install dependencies", + "docPath": "docs/agenstra/deployment/README.md", + "sectionAnchor": "install-dependencies", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-start-services", + "type": "concept", + "attrs": { + "title": "Start services", + "docPath": "docs/agenstra/deployment/README.md", + "sectionAnchor": "start-services", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-background-jobs-bullmq", + "type": "concept", + "attrs": { + "title": "Background jobs (BullMQ)", + "docPath": "docs/agenstra/deployment/background-jobs.md", + "sectionAnchor": "background-jobs-bullmq", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-redis-and-queue-environment-variables", + "type": "concept", + "attrs": { + "title": "Redis and queue environment variables", + "docPath": "docs/agenstra/deployment/background-jobs.md", + "sectionAnchor": "redis-and-queue-environment-variables", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-docker-compose", + "type": "concept", + "attrs": { + "title": "Docker Compose", + "docPath": "docs/agenstra/deployment/background-jobs.md", + "sectionAnchor": "docker-compose", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-bull-board", + "type": "concept", + "attrs": { + "title": "Bull Board", + "docPath": "docs/agenstra/deployment/background-jobs.md", + "sectionAnchor": "bull-board", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-prerequisites", + "type": "concept", + "attrs": { + "title": "Prerequisites", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "prerequisites", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-docker-compose-setup", + "type": "concept", + "attrs": { + "title": "Docker Compose Setup", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "docker-compose-setup", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-container-configuration", + "type": "concept", + "attrs": { + "title": "Container Configuration", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "container-configuration", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-building-containers", + "type": "concept", + "attrs": { + "title": "Building Containers", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "building-containers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-controller", + "type": "concept", + "attrs": { + "title": "Agent Controller", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "agent-controller", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-manager", + "type": "concept", + "attrs": { + "title": "Agent Manager", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "agent-manager", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-running-containers", + "type": "concept", + "attrs": { + "title": "Running Containers", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "running-containers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-view-logs", + "type": "concept", + "attrs": { + "title": "View logs", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "view-logs", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-stop-services", + "type": "concept", + "attrs": { + "title": "Stop services", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "stop-services", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-stop-and-remove-volumes", + "type": "concept", + "attrs": { + "title": "Stop and remove volumes", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "stop-and-remove-volumes", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-run-agent-controller", + "type": "concept", + "attrs": { + "title": "Run agent controller", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "run-agent-controller", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-run-agent-manager-with-docker-socket", + "type": "concept", + "attrs": { + "title": "Run agent manager (with Docker socket)", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "run-agent-manager-with-docker-socket", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-run-frontend-agent-console", + "type": "concept", + "attrs": { + "title": "Run frontend agent console", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "run-frontend-agent-console", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-docker-socket-mount", + "type": "concept", + "attrs": { + "title": "Docker Socket Mount", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "docker-socket-mount", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-health-checks", + "type": "concept", + "attrs": { + "title": "Health Checks", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "health-checks", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-logging", + "type": "concept", + "attrs": { + "title": "Logging", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "logging", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-all-services", + "type": "concept", + "attrs": { + "title": "All services", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "all-services", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-specific-service", + "type": "concept", + "attrs": { + "title": "Specific service", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "specific-service", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-last-100-lines", + "type": "concept", + "attrs": { + "title": "Last 100 lines", + "docPath": "docs/agenstra/deployment/docker-deployment.md", + "sectionAnchor": "last-100-lines", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-frontend-applications-express-ssr", + "type": "concept", + "attrs": { + "title": "Frontend applications (Express SSR)", + "docPath": "docs/agenstra/deployment/environment-configuration.md", + "sectionAnchor": "frontend-applications-express-ssr", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-redis-and-bullmq-background-jobs", + "type": "concept", + "attrs": { + "title": "Redis and BullMQ (background jobs)", + "docPath": "docs/agenstra/deployment/environment-configuration.md", + "sectionAnchor": "redis-and-bullmq-background-jobs", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-environment-specific-defaults", + "type": "concept", + "attrs": { + "title": "Environment-Specific Defaults", + "docPath": "docs/agenstra/deployment/environment-configuration.md", + "sectionAnchor": "environment-specific-defaults", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-local-development", + "type": "concept", + "attrs": { + "title": "Local Development", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "local-development", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-start-postgresql", + "type": "concept", + "attrs": { + "title": "Start PostgreSQL", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "start-postgresql", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-configuration", + "type": "concept", + "attrs": { + "title": "Configuration", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "configuration", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-database", + "type": "concept", + "attrs": { + "title": "Database", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "database", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-choose-one", + "type": "concept", + "attrs": { + "title": "Authentication (choose one)", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "authentication-choose-one", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-or-keycloak", + "type": "concept", + "attrs": { + "title": "OR Keycloak", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "or-keycloak", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-keycloak-auth-server-url-http-localhost-8380", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_AUTH_SERVER_URL=http://localhost:8380", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "keycloak-auth-server-url-http-localhost-8380", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-keycloak-realm-agenstra", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_REALM=agenstra", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "keycloak-realm-agenstra", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-keycloak-client-id-agent-controller", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_CLIENT_ID=agent-controller", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "keycloak-client-id-agent-controller", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-keycloak-client-secret-your-client-secret", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_CLIENT_SECRET=your-client-secret", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "keycloak-client-secret-your-client-secret", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-optional-keycloak-server-url-if-different-from-auth-server-url", + "type": "concept", + "attrs": { + "title": "Optional: KEYCLOAK_SERVER_URL if different from auth server URL", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "optional-keycloak-server-url-if-different-from-auth-server-url", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-optional-keycloak-token-validation-online-default-or-offline", + "type": "concept", + "attrs": { + "title": "Optional: KEYCLOAK_TOKEN_VALIDATION=ONLINE (default) or OFFLINE", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "optional-keycloak-token-validation-online-default-or-offline", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ports", + "type": "concept", + "attrs": { + "title": "Ports", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "ports", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-cors-for-development", + "type": "concept", + "attrs": { + "title": "CORS (for development)", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "cors-for-development", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-rate-limiting-disabled-for-development", + "type": "concept", + "attrs": { + "title": "Rate Limiting (disabled for development)", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "rate-limiting-disabled-for-development", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-cors", + "type": "concept", + "attrs": { + "title": "CORS", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "cors", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-git-repository-optional", + "type": "concept", + "attrs": { + "title": "Git Repository (optional)", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "git-repository-optional", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-cursor-agent", + "type": "concept", + "attrs": { + "title": "Cursor Agent", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "cursor-agent", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-running-applications", + "type": "concept", + "attrs": { + "title": "Running Applications", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "running-applications", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-terminal-1-agent-controller", + "type": "concept", + "attrs": { + "title": "Terminal 1: Agent Controller", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "terminal-1-agent-controller", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-terminal-2-agent-manager", + "type": "concept", + "attrs": { + "title": "Terminal 2: Agent Manager", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "terminal-2-agent-manager", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-terminal-3-frontend", + "type": "concept", + "attrs": { + "title": "Terminal 3: Frontend", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "terminal-3-frontend", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-development-workflow", + "type": "concept", + "attrs": { + "title": "Development Workflow", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "development-workflow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-run-all-tests", + "type": "concept", + "attrs": { + "title": "Run all tests", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "run-all-tests", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-run-tests-for-specific-project", + "type": "concept", + "attrs": { + "title": "Run tests for specific project", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "run-tests-for-specific-project", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-run-tests-with-coverage", + "type": "concept", + "attrs": { + "title": "Run tests with coverage", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "run-tests-with-coverage", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-build-all-projects", + "type": "concept", + "attrs": { + "title": "Build all projects", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "build-all-projects", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-build-specific-project", + "type": "concept", + "attrs": { + "title": "Build specific project", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "build-specific-project", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-docker-for-agent-containers", + "type": "concept", + "attrs": { + "title": "Docker for Agent Containers", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "docker-for-agent-containers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-check-docker-status", + "type": "concept", + "attrs": { + "title": "Check Docker status", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "check-docker-status", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-start-docker-if-not-running", + "type": "concept", + "attrs": { + "title": "Start Docker (if not running)", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "start-docker-if-not-running", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-macos-open-docker-desktop", + "type": "concept", + "attrs": { + "title": "macOS: Open Docker Desktop", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "macos-open-docker-desktop", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-linux-sudo-systemctl-start-docker", + "type": "concept", + "attrs": { + "title": "Linux: sudo systemctl start docker", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "linux-sudo-systemctl-start-docker", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-troubleshooting", + "type": "concept", + "attrs": { + "title": "Troubleshooting", + "docPath": "docs/agenstra/deployment/local-development.md", + "sectionAnchor": "troubleshooting", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-pre-deployment-checklist", + "type": "concept", + "attrs": { + "title": "Pre-Deployment Checklist", + "docPath": "docs/agenstra/deployment/production-checklist.md", + "sectionAnchor": "pre-deployment-checklist", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-security-considerations", + "type": "concept", + "attrs": { + "title": "Security Considerations", + "docPath": "docs/agenstra/deployment/production-checklist.md", + "sectionAnchor": "security-considerations", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-performance-optimization", + "type": "concept", + "attrs": { + "title": "Performance Optimization", + "docPath": "docs/agenstra/deployment/production-checklist.md", + "sectionAnchor": "performance-optimization", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-monitoring-setup", + "type": "concept", + "attrs": { + "title": "Monitoring Setup", + "docPath": "docs/agenstra/deployment/production-checklist.md", + "sectionAnchor": "monitoring-setup", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-backup-strategies", + "type": "concept", + "attrs": { + "title": "Backup Strategies", + "docPath": "docs/agenstra/deployment/production-checklist.md", + "sectionAnchor": "backup-strategies", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-deployment-process", + "type": "concept", + "attrs": { + "title": "Deployment Process", + "docPath": "docs/agenstra/deployment/production-checklist.md", + "sectionAnchor": "deployment-process", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-rollback-plan", + "type": "concept", + "attrs": { + "title": "Rollback Plan", + "docPath": "docs/agenstra/deployment/production-checklist.md", + "sectionAnchor": "rollback-plan", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-system-requirements", + "type": "concept", + "attrs": { + "title": "System Requirements", + "docPath": "docs/agenstra/deployment/system-requirements.md", + "sectionAnchor": "system-requirements", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-platform-prerequisites", + "type": "concept", + "attrs": { + "title": "Platform Prerequisites", + "docPath": "docs/agenstra/deployment/system-requirements.md", + "sectionAnchor": "platform-prerequisites", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-controller-stack", + "type": "concept", + "attrs": { + "title": "Controller Stack", + "docPath": "docs/agenstra/deployment/system-requirements.md", + "sectionAnchor": "controller-stack", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-manager-host", + "type": "concept", + "attrs": { + "title": "Agent Manager Host", + "docPath": "docs/agenstra/deployment/system-requirements.md", + "sectionAnchor": "agent-manager-host", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-mixed-and-local-development-host", + "type": "concept", + "attrs": { + "title": "Mixed and Local Development Host", + "docPath": "docs/agenstra/deployment/system-requirements.md", + "sectionAnchor": "mixed-and-local-development-host", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-production-sizing-examples", + "type": "concept", + "attrs": { + "title": "Production Sizing Examples", + "docPath": "docs/agenstra/deployment/system-requirements.md", + "sectionAnchor": "production-sizing-examples", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-network-and-external-dependencies", + "type": "concept", + "attrs": { + "title": "Network and External Dependencies", + "docPath": "docs/agenstra/deployment/system-requirements.md", + "sectionAnchor": "network-and-external-dependencies", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-features-documentation", + "type": "concept", + "attrs": { + "title": "Features Documentation", + "docPath": "docs/agenstra/features/README.md", + "sectionAnchor": "features-documentation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-feature-relationships", + "type": "concept", + "attrs": { + "title": "Feature Relationships", + "docPath": "docs/agenstra/features/README.md", + "sectionAnchor": "feature-relationships", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-management", + "type": "concept", + "attrs": { + "title": "Agent Management", + "docPath": "docs/agenstra/features/agent-management.md", + "sectionAnchor": "agent-management", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-creating-an-agent", + "type": "concept", + "attrs": { + "title": "Creating an Agent", + "docPath": "docs/agenstra/features/agent-management.md", + "sectionAnchor": "creating-an-agent", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-lifecycle", + "type": "concept", + "attrs": { + "title": "Agent Lifecycle", + "docPath": "docs/agenstra/features/agent-management.md", + "sectionAnchor": "agent-lifecycle", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-types", + "type": "concept", + "attrs": { + "title": "Agent Types", + "docPath": "docs/agenstra/features/agent-management.md", + "sectionAnchor": "agent-types", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-operations", + "type": "concept", + "attrs": { + "title": "Agent Operations", + "docPath": "docs/agenstra/features/agent-management.md", + "sectionAnchor": "agent-operations", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-container-interaction", + "type": "concept", + "attrs": { + "title": "Container Interaction", + "docPath": "docs/agenstra/features/agent-management.md", + "sectionAnchor": "container-interaction", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-atlassian-import", + "type": "concept", + "attrs": { + "title": "Atlassian import", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "atlassian-import", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-why-controller-native", + "type": "concept", + "attrs": { + "title": "Why controller-native?", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "why-controller-native", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-access-control", + "type": "concept", + "attrs": { + "title": "Access control", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "access-control", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-jira-vs-confluence", + "type": "concept", + "attrs": { + "title": "Jira vs Confluence", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "jira-vs-confluence", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-queue-jobs-and-manual-runs", + "type": "concept", + "attrs": { + "title": "Queue jobs and manual runs", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "queue-jobs-and-manual-runs", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-sync-markers-and-cleanup", + "type": "concept", + "attrs": { + "title": "Sync markers and cleanup", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "sync-markers-and-cleanup", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-console-entry-points", + "type": "concept", + "attrs": { + "title": "Console entry points", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "console-entry-points", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-api-references", + "type": "concept", + "attrs": { + "title": "API references", + "docPath": "docs/agenstra/features/atlassian-import.md", + "sectionAnchor": "api-references", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-methods", + "type": "concept", + "attrs": { + "title": "Authentication Methods", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "authentication-methods", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-users-authentication-flow", + "type": "concept", + "attrs": { + "title": "Users Authentication Flow", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "users-authentication-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-disabling-signup", + "type": "concept", + "attrs": { + "title": "Disabling Signup", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "disabling-signup", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-user-roles", + "type": "concept", + "attrs": { + "title": "User Roles", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "user-roles", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-admin-user-management", + "type": "concept", + "attrs": { + "title": "Admin User Management", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "admin-user-management", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-security-features", + "type": "concept", + "attrs": { + "title": "Security Features", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "security-features", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-flow-diagram", + "type": "concept", + "attrs": { + "title": "Authentication Flow Diagram", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "authentication-flow-diagram", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-registration-sequence-diagram", + "type": "concept", + "attrs": { + "title": "Registration Sequence Diagram", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "registration-sequence-diagram", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-per-client-permissions", + "type": "concept", + "attrs": { + "title": "Per-Client Permissions", + "docPath": "docs/agenstra/features/authentication.md", + "sectionAnchor": "per-client-permissions", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-chat-interface", + "type": "concept", + "attrs": { + "title": "Chat Interface", + "docPath": "docs/agenstra/features/chat-interface.md", + "sectionAnchor": "chat-interface", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-message-flow", + "type": "concept", + "attrs": { + "title": "Message Flow", + "docPath": "docs/agenstra/features/chat-interface.md", + "sectionAnchor": "message-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-client-management", + "type": "concept", + "attrs": { + "title": "Client Management", + "docPath": "docs/agenstra/features/client-management.md", + "sectionAnchor": "client-management", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-creating-a-client", + "type": "concept", + "attrs": { + "title": "Creating a Client", + "docPath": "docs/agenstra/features/client-management.md", + "sectionAnchor": "creating-a-client", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-client-configuration", + "type": "concept", + "attrs": { + "title": "Client Configuration", + "docPath": "docs/agenstra/features/client-management.md", + "sectionAnchor": "client-configuration", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-managing-clients", + "type": "concept", + "attrs": { + "title": "Managing Clients", + "docPath": "docs/agenstra/features/client-management.md", + "sectionAnchor": "managing-clients", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-types", + "type": "concept", + "attrs": { + "title": "Authentication Types", + "docPath": "docs/agenstra/features/client-management.md", + "sectionAnchor": "authentication-types", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-deployment-and-ci-cd-integration", + "type": "concept", + "attrs": { + "title": "Deployment and CI/CD Integration", + "docPath": "docs/agenstra/features/deployment.md", + "sectionAnchor": "deployment-and-ci-cd-integration", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-supported-providers", + "type": "concept", + "attrs": { + "title": "Supported Providers", + "docPath": "docs/agenstra/features/deployment.md", + "sectionAnchor": "supported-providers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-usage-examples", + "type": "concept", + "attrs": { + "title": "Usage Examples", + "docPath": "docs/agenstra/features/deployment.md", + "sectionAnchor": "usage-examples", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-integration-with-agent-creation-update", + "type": "concept", + "attrs": { + "title": "Integration with Agent Creation/Update", + "docPath": "docs/agenstra/features/deployment.md", + "sectionAnchor": "integration-with-agent-creation-update", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-future-enhancements", + "type": "concept", + "attrs": { + "title": "Future Enhancements", + "docPath": "docs/agenstra/features/deployment.md", + "sectionAnchor": "future-enhancements", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-dynamic-provider-plugins", + "type": "concept", + "attrs": { + "title": "Dynamic provider plugins", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "dynamic-provider-plugins", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-resolution-order", + "type": "concept", + "attrs": { + "title": "Resolution order", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "resolution-order", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-config-format", + "type": "concept", + "attrs": { + "title": "Config format", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "config-format", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-alias-package-specifier-package-name-whether-baked-in-or-mounted", + "type": "concept", + "attrs": { + "title": "alias=@package/specifier (package name whether baked-in or mounted)", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "alias-package-specifier-package-name-whether-baked-in-or-mounted", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-pascalcase-alias-selects-a-named-class-export-from-the-package", + "type": "concept", + "attrs": { + "title": "PascalCase alias selects a named class export from the package", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "pascalcase-alias-selects-a-named-class-export-from-the-package", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-bare-specifier", + "type": "concept", + "attrs": { + "title": "bare specifier", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "bare-specifier", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-file-entry-directory-relative-to-dynamic-provider-plugin-path", + "type": "concept", + "attrs": { + "title": "file: entry — directory relative to DYNAMIC_PROVIDER_PLUGIN_PATH", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "file-entry-directory-relative-to-dynamic-provider-plugin-path", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-plugin-package-contract", + "type": "concept", + "attrs": { + "title": "Plugin package contract", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "plugin-package-contract", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-baked-in-plugins-image-build", + "type": "concept", + "attrs": { + "title": "Baked-in plugins (image build)", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "baked-in-plugins-image-build", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-post-build-plugins-no-image-rebuild", + "type": "concept", + "attrs": { + "title": "Post-build plugins (no image rebuild)", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "post-build-plugins-no-image-rebuild", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-registry-package-requires-npmrc-token-in-image-or-mounted-secret", + "type": "concept", + "attrs": { + "title": "Registry package (requires .npmrc / token in image or mounted secret)", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "registry-package-requires-npmrc-token-in-image-or-mounted-secret", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-paths-under-the-plugin-root-absolute-or-relative-to-plugin-path", + "type": "concept", + "attrs": { + "title": "Paths under the plugin root (absolute or relative to plugin path)", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "paths-under-the-plugin-root-absolute-or-relative-to-plugin-path", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-mixed", + "type": "concept", + "attrs": { + "title": "Mixed", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "mixed", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-startup-error-policy", + "type": "concept", + "attrs": { + "title": "Startup error policy", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "startup-error-policy", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-where-each-registry-is-used", + "type": "concept", + "attrs": { + "title": "Where each registry is used", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "where-each-registry-is-used", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-docker-compose-optional-plugins", + "type": "concept", + "attrs": { + "title": "Docker Compose (optional plugins)", + "docPath": "docs/agenstra/features/dynamic-provider-plugins.md", + "sectionAnchor": "docker-compose-optional-plugins", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-email-notifications-agenstra", + "type": "concept", + "attrs": { + "title": "Email notifications (Agenstra)", + "docPath": "docs/agenstra/features/email-notifications.md", + "sectionAnchor": "email-notifications-agenstra", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-transport", + "type": "concept", + "attrs": { + "title": "Transport", + "docPath": "docs/agenstra/features/email-notifications.md", + "sectionAnchor": "transport", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-wiring", + "type": "concept", + "attrs": { + "title": "Wiring", + "docPath": "docs/agenstra/features/email-notifications.md", + "sectionAnchor": "wiring", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-templates", + "type": "concept", + "attrs": { + "title": "Templates", + "docPath": "docs/agenstra/features/email-notifications.md", + "sectionAnchor": "templates", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-events", + "type": "concept", + "attrs": { + "title": "Events", + "docPath": "docs/agenstra/features/email-notifications.md", + "sectionAnchor": "events", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-file-management", + "type": "concept", + "attrs": { + "title": "File Management", + "docPath": "docs/agenstra/features/file-management.md", + "sectionAnchor": "file-management", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-file-operations", + "type": "concept", + "attrs": { + "title": "File Operations", + "docPath": "docs/agenstra/features/file-management.md", + "sectionAnchor": "file-operations", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-file-operation-flow", + "type": "concept", + "attrs": { + "title": "File Operation Flow", + "docPath": "docs/agenstra/features/file-management.md", + "sectionAnchor": "file-operation-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-real-time-file-updates", + "type": "concept", + "attrs": { + "title": "Real-time File Updates", + "docPath": "docs/agenstra/features/file-management.md", + "sectionAnchor": "real-time-file-updates", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-message-filter-rules", + "type": "concept", + "attrs": { + "title": "Message Filter Rules", + "docPath": "docs/agenstra/features/message-filter-rules.md", + "sectionAnchor": "message-filter-rules", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-why-two-tiers", + "type": "concept", + "attrs": { + "title": "Why two tiers?", + "docPath": "docs/agenstra/features/message-filter-rules.md", + "sectionAnchor": "why-two-tiers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-server-provisioning", + "type": "concept", + "attrs": { + "title": "Server Provisioning", + "docPath": "docs/agenstra/features/server-provisioning.md", + "sectionAnchor": "server-provisioning", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-provisioning-process", + "type": "concept", + "attrs": { + "title": "Provisioning Process", + "docPath": "docs/agenstra/features/server-provisioning.md", + "sectionAnchor": "provisioning-process", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-provisioning-request", + "type": "concept", + "attrs": { + "title": "Provisioning Request", + "docPath": "docs/agenstra/features/server-provisioning.md", + "sectionAnchor": "provisioning-request", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-provisioning-steps", + "type": "concept", + "attrs": { + "title": "Provisioning Steps", + "docPath": "docs/agenstra/features/server-provisioning.md", + "sectionAnchor": "provisioning-steps", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-server-configuration", + "type": "concept", + "attrs": { + "title": "Server Configuration", + "docPath": "docs/agenstra/features/server-provisioning.md", + "sectionAnchor": "server-configuration", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-environment-variables-interpolation", + "type": "concept", + "attrs": { + "title": "Environment Variables Interpolation", + "docPath": "docs/agenstra/features/server-provisioning.md", + "sectionAnchor": "environment-variables-interpolation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-managing-provisioned-servers", + "type": "concept", + "attrs": { + "title": "Managing Provisioned Servers", + "docPath": "docs/agenstra/features/server-provisioning.md", + "sectionAnchor": "managing-provisioned-servers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ticket-automation", + "type": "concept", + "attrs": { + "title": "Ticket automation", + "docPath": "docs/agenstra/features/ticket-automation.md", + "sectionAnchor": "ticket-automation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-run-phases-high-level", + "type": "concept", + "attrs": { + "title": "Run phases (high level)", + "docPath": "docs/agenstra/features/ticket-automation.md", + "sectionAnchor": "run-phases-high-level", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-failures-and-retries", + "type": "concept", + "attrs": { + "title": "Failures and retries", + "docPath": "docs/agenstra/features/ticket-automation.md", + "sectionAnchor": "failures-and-retries", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-http-and-realtime", + "type": "concept", + "attrs": { + "title": "HTTP and realtime", + "docPath": "docs/agenstra/features/ticket-automation.md", + "sectionAnchor": "http-and-realtime", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-tickets-and-workspaces", + "type": "concept", + "attrs": { + "title": "Tickets and Workspaces", + "docPath": "docs/agenstra/features/tickets-and-workspaces.md", + "sectionAnchor": "tickets-and-workspaces", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-api-and-protocol-references", + "type": "concept", + "attrs": { + "title": "API and protocol references", + "docPath": "docs/agenstra/features/tickets-and-workspaces.md", + "sectionAnchor": "api-and-protocol-references", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-usage-statistics", + "type": "concept", + "attrs": { + "title": "Usage Statistics", + "docPath": "docs/agenstra/features/usage-statistics.md", + "sectionAnchor": "usage-statistics", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-per-workspace-statistics", + "type": "concept", + "attrs": { + "title": "Per-workspace statistics", + "docPath": "docs/agenstra/features/usage-statistics.md", + "sectionAnchor": "per-workspace-statistics", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-who-can-access-what", + "type": "concept", + "attrs": { + "title": "Who can access what", + "docPath": "docs/agenstra/features/usage-statistics.md", + "sectionAnchor": "who-can-access-what", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-relationship-to-container-stats", + "type": "concept", + "attrs": { + "title": "Relationship to container stats", + "docPath": "docs/agenstra/features/usage-statistics.md", + "sectionAnchor": "relationship-to-container-stats", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-version-control", + "type": "concept", + "attrs": { + "title": "Version Control", + "docPath": "docs/agenstra/features/version-control.md", + "sectionAnchor": "version-control", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-git-operations", + "type": "concept", + "attrs": { + "title": "Git Operations", + "docPath": "docs/agenstra/features/version-control.md", + "sectionAnchor": "git-operations", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-git-operation-flow", + "type": "concept", + "attrs": { + "title": "Git Operation Flow", + "docPath": "docs/agenstra/features/version-control.md", + "sectionAnchor": "git-operation-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-vnc-browser-access", + "type": "concept", + "attrs": { + "title": "VNC Browser Access", + "docPath": "docs/agenstra/features/vnc-browser-access.md", + "sectionAnchor": "vnc-browser-access", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-vnc-container-lifecycle", + "type": "concept", + "attrs": { + "title": "VNC Container Lifecycle", + "docPath": "docs/agenstra/features/vnc-browser-access.md", + "sectionAnchor": "vnc-container-lifecycle", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-web-ide", + "type": "concept", + "attrs": { + "title": "Web IDE", + "docPath": "docs/agenstra/features/web-ide.md", + "sectionAnchor": "web-ide", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-editor-configuration", + "type": "concept", + "attrs": { + "title": "Editor Configuration", + "docPath": "docs/agenstra/features/web-ide.md", + "sectionAnchor": "editor-configuration", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-webhooks-agenstra", + "type": "concept", + "attrs": { + "title": "Webhooks (Agenstra)", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "webhooks-agenstra", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-access", + "type": "concept", + "attrs": { + "title": "Access", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "access", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-modes", + "type": "concept", + "attrs": { + "title": "Authentication modes", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "authentication-modes", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-event-envelope", + "type": "concept", + "attrs": { + "title": "Event envelope", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "event-envelope", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-event-catalog", + "type": "concept", + "attrs": { + "title": "Event catalog", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "event-catalog", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-payload-examples", + "type": "concept", + "attrs": { + "title": "Payload examples", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "payload-examples", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-delivery-and-retries", + "type": "concept", + "attrs": { + "title": "Delivery and retries", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "delivery-and-retries", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-delivery-log-retention", + "type": "concept", + "attrs": { + "title": "Delivery log retention", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "delivery-log-retention", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-endpoint-deletion", + "type": "concept", + "attrs": { + "title": "Endpoint deletion", + "docPath": "docs/agenstra/features/webhooks.md", + "sectionAnchor": "endpoint-deletion", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-connection-flow", + "type": "concept", + "attrs": { + "title": "Connection Flow", + "docPath": "docs/agenstra/features/websocket-communication.md", + "sectionAnchor": "connection-flow", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-tickets-board-realtime-tickets-namespace", + "type": "concept", + "attrs": { + "title": "Tickets board realtime (`tickets` namespace)", + "docPath": "docs/agenstra/features/websocket-communication.md", + "sectionAnchor": "tickets-board-realtime-tickets-namespace", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-chat-history-restoration", + "type": "concept", + "attrs": { + "title": "Chat History Restoration", + "docPath": "docs/agenstra/features/websocket-communication.md", + "sectionAnchor": "chat-history-restoration", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-event-forwarding", + "type": "concept", + "attrs": { + "title": "Event Forwarding", + "docPath": "docs/agenstra/features/websocket-communication.md", + "sectionAnchor": "event-forwarding", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-error-handling", + "type": "concept", + "attrs": { + "title": "Error Handling", + "docPath": "docs/agenstra/features/websocket-communication.md", + "sectionAnchor": "error-handling", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-getting-started-with-agenstra", + "type": "concept", + "attrs": { + "title": "Getting Started with Agenstra", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "getting-started-with-agenstra", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-clone-the-repository-if-not-already-done", + "type": "concept", + "attrs": { + "title": "Clone the repository (if not already done)", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "clone-the-repository-if-not-already-done", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-in-another-terminal-start-agent-manager", + "type": "concept", + "attrs": { + "title": "In another terminal, start agent-manager", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "in-another-terminal-start-agent-manager", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-in-another-terminal-start-frontend", + "type": "concept", + "attrs": { + "title": "In another terminal, start frontend", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "in-another-terminal-start-frontend", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-start-agent-controller", + "type": "concept", + "attrs": { + "title": "Start agent-controller", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "start-agent-controller", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-option-1-api-key-authentication", + "type": "concept", + "attrs": { + "title": "Option 1: API Key authentication", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "option-1-api-key-authentication", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-option-2-keycloak-authentication", + "type": "concept", + "attrs": { + "title": "Option 2: Keycloak authentication", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "option-2-keycloak-authentication", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-option-3-users-authentication", + "type": "concept", + "attrs": { + "title": "Option 3: Users authentication", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "option-3-users-authentication", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-cors-for-production", + "type": "concept", + "attrs": { + "title": "CORS (for production)", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "cors-for-production", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-rate-limiting-optional", + "type": "concept", + "attrs": { + "title": "Rate Limiting (optional)", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "rate-limiting-optional", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-or-keycloak-configuration-same-as-above", + "type": "concept", + "attrs": { + "title": "OR Keycloak configuration (same as above)", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "or-keycloak-configuration-same-as-above", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-git-repository-for-agent-workspace", + "type": "concept", + "attrs": { + "title": "Git Repository (for agent workspace)", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "git-repository-for-agent-workspace", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-api-endpoint", + "type": "concept", + "attrs": { + "title": "API Endpoint", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "api-endpoint", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-websocket-endpoint", + "type": "concept", + "attrs": { + "title": "WebSocket Endpoint", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "websocket-endpoint", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-creating-your-first-client", + "type": "concept", + "attrs": { + "title": "Creating Your First Client", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "creating-your-first-client", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-creating-your-first-agent", + "type": "concept", + "attrs": { + "title": "Creating Your First Agent", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "creating-your-first-agent", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-connecting-to-an-agent", + "type": "concept", + "attrs": { + "title": "Connecting to an Agent", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "connecting-to-an-agent", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-quick-tour-of-features", + "type": "concept", + "attrs": { + "title": "Quick Tour of Features", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "quick-tour-of-features", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-next-steps", + "type": "concept", + "attrs": { + "title": "Next Steps", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "next-steps", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-additional-resources", + "type": "concept", + "attrs": { + "title": "Additional Resources", + "docPath": "docs/agenstra/getting-started.md", + "sectionAnchor": "additional-resources", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-security-documentation", + "type": "concept", + "attrs": { + "title": "Security documentation", + "docPath": "docs/agenstra/security/README.md", + "sectionAnchor": "security-documentation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-configuration-reference", + "type": "concept", + "attrs": { + "title": "Configuration reference", + "docPath": "docs/agenstra/security/README.md", + "sectionAnchor": "configuration-reference", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-accepted-risks-register", + "type": "concept", + "attrs": { + "title": "Accepted risks (register)", + "docPath": "docs/agenstra/security/accepted-risks.md", + "sectionAnchor": "accepted-risks-register", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", + "type": "concept", + "attrs": { + "title": "AR-001 - Desktop app: no OS-trusted code signing / no in-app auto-update", + "docPath": "docs/agenstra/security/accepted-risks.md", + "sectionAnchor": "ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ar-002-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", + "type": "concept", + "attrs": { + "title": "AR-002 - Web frontends: CSP `unsafe-inline` / `unsafe-eval` (Monaco)", + "docPath": "docs/agenstra/security/accepted-risks.md", + "sectionAnchor": "ar-002-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ar-003-backend-authentication-method-resolution", + "type": "concept", + "attrs": { + "title": "AR-003 - Backend authentication method resolution", + "docPath": "docs/agenstra/security/accepted-risks.md", + "sectionAnchor": "ar-003-backend-authentication-method-resolution", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ar-004-desktop-window-open-policy-native-agent-console", + "type": "concept", + "attrs": { + "title": "AR-004 - Desktop window open policy (`native-agent-console`)", + "docPath": "docs/agenstra/security/accepted-risks.md", + "sectionAnchor": "ar-004-desktop-window-open-policy-native-agent-console", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", + "type": "concept", + "attrs": { + "title": "AR-005 - CI / local Trivy: unfixed vulnerabilities not gated", + "docPath": "docs/agenstra/security/accepted-risks.md", + "sectionAnchor": "ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-hardening-paths-if-an-acceptance-is-withdrawn", + "type": "concept", + "attrs": { + "title": "Hardening paths (if an acceptance is withdrawn)", + "docPath": "docs/agenstra/security/accepted-risks.md", + "sectionAnchor": "hardening-paths-if-an-acceptance-is-withdrawn", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ci-security-scanning-trivy", + "type": "concept", + "attrs": { + "title": "CI security scanning (Trivy)", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "ci-security-scanning-trivy", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-what-is-scanned", + "type": "concept", + "attrs": { + "title": "What is scanned", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "what-is-scanned", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-workflows", + "type": "concept", + "attrs": { + "title": "Workflows", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "workflows", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-severity-policy", + "type": "concept", + "attrs": { + "title": "Severity policy", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "severity-policy", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-viewing-results", + "type": "concept", + "attrs": { + "title": "Viewing results", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "viewing-results", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-triage-and-exceptions", + "type": "concept", + "attrs": { + "title": "Triage and exceptions", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "triage-and-exceptions", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-local-reproduction", + "type": "concept", + "attrs": { + "title": "Local reproduction", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "local-reproduction", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-relationship-to-sbom-and-dependency-track", + "type": "concept", + "attrs": { + "title": "Relationship to SBOM and Dependency Track", + "docPath": "docs/agenstra/security/ci-security-scanning.md", + "sectionAnchor": "relationship-to-sbom-and-dependency-track", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", + "type": "concept", + "attrs": { + "title": "Compliance and standards (EU CRA and BSI IT-Grundschutz)", + "docPath": "docs/agenstra/security/compliance-and-standards.md", + "sectionAnchor": "compliance-and-standards-eu-cra-and-bsi-it-grundschutz", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-eu-cyber-resilience-act-cra", + "type": "concept", + "attrs": { + "title": "EU Cyber Resilience Act (CRA)", + "docPath": "docs/agenstra/security/compliance-and-standards.md", + "sectionAnchor": "eu-cyber-resilience-act-cra", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-bsi-it-grundschutz", + "type": "concept", + "attrs": { + "title": "BSI IT-Grundschutz", + "docPath": "docs/agenstra/security/compliance-and-standards.md", + "sectionAnchor": "bsi-it-grundschutz", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-trust-boundaries-summary", + "type": "concept", + "attrs": { + "title": "Trust boundaries (summary)", + "docPath": "docs/agenstra/security/compliance-and-standards.md", + "sectionAnchor": "trust-boundaries-summary", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-container-image-security", + "type": "concept", + "attrs": { + "title": "Container image security", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "container-image-security", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-runtime-users", + "type": "concept", + "attrs": { + "title": "Runtime users", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "runtime-users", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-workload-bind-mounts", + "type": "concept", + "attrs": { + "title": "Agent workload bind mounts", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "agent-workload-bind-mounts", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-restricted-sudo", + "type": "concept", + "attrs": { + "title": "Restricted `sudo`", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "restricted-sudo", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-manager-and-controller-api-images", + "type": "concept", + "attrs": { + "title": "Manager and controller API images", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "manager-and-controller-api-images", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-ssh-sidecar-image", + "type": "concept", + "attrs": { + "title": "SSH sidecar image", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "ssh-sidecar-image", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-vnc-image", + "type": "concept", + "attrs": { + "title": "VNC image", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "vnc-image", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-openclaw-agi-image", + "type": "concept", + "attrs": { + "title": "OpenClaw (agi) image", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "openclaw-agi-image", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-coordinated-upgrades", + "type": "concept", + "attrs": { + "title": "Coordinated upgrades", + "docPath": "docs/agenstra/security/container-images.md", + "sectionAnchor": "coordinated-upgrades", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-operational-hardening", + "type": "concept", + "attrs": { + "title": "Operational hardening", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "operational-hardening", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-container-images-docker", + "type": "concept", + "attrs": { + "title": "Container images (Docker)", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "container-images-docker", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-mode-backends", + "type": "concept", + "attrs": { + "title": "Authentication mode (backends)", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "authentication-mode-backends", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-agent-controller-remote-client-endpoints-ssrf", + "type": "concept", + "attrs": { + "title": "Agent Controller - remote client endpoints (SSRF)", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "agent-controller-remote-client-endpoints-ssrf", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-http-proxy-to-remote-agent-manager-headers", + "type": "concept", + "attrs": { + "title": "HTTP proxy to remote agent-manager - headers", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "http-proxy-to-remote-agent-manager-headers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-logging-and-correlation", + "type": "concept", + "attrs": { + "title": "Logging and correlation", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "logging-and-correlation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-frontend-runtime-configuration-get-config", + "type": "concept", + "attrs": { + "title": "Frontend runtime configuration (`GET /config`)", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "frontend-runtime-configuration-get-config", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-content-security-policy-frontend-express", + "type": "concept", + "attrs": { + "title": "Content Security Policy (frontend Express)", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "content-security-policy-frontend-express", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-websocket-cors-agent-controller", + "type": "concept", + "attrs": { + "title": "WebSocket CORS (Agent Controller)", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "websocket-cors-agent-controller", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-origin-allowlist-unsafe-http-methods", + "type": "concept", + "attrs": { + "title": "Origin allowlist (unsafe HTTP methods)", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "origin-allowlist-unsafe-http-methods", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-electron-shell-new-windows", + "type": "concept", + "attrs": { + "title": "Electron shell - new windows", + "docPath": "docs/agenstra/security/operational-hardening.md", + "sectionAnchor": "electron-shell-new-windows", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-vulnerability-reporting-and-artifacts", + "type": "concept", + "attrs": { + "title": "Vulnerability reporting and artifacts", + "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "vulnerability-reporting-and-artifacts", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-supported-versions-and-security-updates", + "type": "concept", + "attrs": { + "title": "Supported versions and security updates", + "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "supported-versions-and-security-updates", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-our-response-commitment", + "type": "concept", + "attrs": { + "title": "Our response commitment", + "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "our-response-commitment", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-reporting-a-vulnerability", + "type": "concept", + "attrs": { + "title": "Reporting a vulnerability", + "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "reporting-a-vulnerability", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-continuous-scanning-ci", + "type": "concept", + "attrs": { + "title": "Continuous scanning (CI)", + "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "continuous-scanning-ci", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-software-bill-of-materials-sbom", + "type": "concept", + "attrs": { + "title": "Software Bill of Materials (SBOM)", + "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "software-bill-of-materials-sbom", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-desktop-release-integrity", + "type": "concept", + "attrs": { + "title": "Desktop release integrity", + "docPath": "docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "desktop-release-integrity", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-troubleshooting-documentation", + "type": "concept", + "attrs": { + "title": "Troubleshooting Documentation", + "docPath": "docs/agenstra/troubleshooting/README.md", + "sectionAnchor": "troubleshooting-documentation", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-troubleshooting-guides", + "type": "concept", + "attrs": { + "title": "Troubleshooting Guides", + "docPath": "docs/agenstra/troubleshooting/README.md", + "sectionAnchor": "troubleshooting-guides", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-quick-troubleshooting", + "type": "concept", + "attrs": { + "title": "Quick Troubleshooting", + "docPath": "docs/agenstra/troubleshooting/README.md", + "sectionAnchor": "quick-troubleshooting", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-getting-help", + "type": "concept", + "attrs": { + "title": "Getting Help", + "docPath": "docs/agenstra/troubleshooting/README.md", + "sectionAnchor": "getting-help", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-common-issues", + "type": "concept", + "attrs": { + "title": "Common Issues", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "common-issues", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-connection-issues", + "type": "concept", + "attrs": { + "title": "Connection Issues", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "connection-issues", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-authentication-problems", + "type": "concept", + "attrs": { + "title": "Authentication Problems", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "authentication-problems", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-container-issues", + "type": "concept", + "attrs": { + "title": "Container Issues", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "container-issues", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-database-issues", + "type": "concept", + "attrs": { + "title": "Database Issues", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "database-issues", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-websocket-problems", + "type": "concept", + "attrs": { + "title": "WebSocket Problems", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "websocket-problems", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-file-operation-errors", + "type": "concept", + "attrs": { + "title": "File Operation Errors", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "file-operation-errors", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-rate-limiting-issues", + "type": "concept", + "attrs": { + "title": "Rate Limiting Issues", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "rate-limiting-issues", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-cors-issues", + "type": "concept", + "attrs": { + "title": "CORS Issues", + "docPath": "docs/agenstra/troubleshooting/common-issues.md", + "sectionAnchor": "cors-issues", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-debugging-guide", + "type": "concept", + "attrs": { + "title": "Debugging Guide", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "debugging-guide", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-logs-appear-in-console", + "type": "concept", + "attrs": { + "title": "Logs appear in console", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "logs-appear-in-console", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-docker-containers", + "type": "concept", + "attrs": { + "title": "Docker containers", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "docker-containers", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-debugging-tools", + "type": "concept", + "attrs": { + "title": "Debugging Tools", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "debugging-tools", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-view-container-logs", + "type": "concept", + "attrs": { + "title": "View container logs", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "view-container-logs", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-execute-commands-in-container", + "type": "concept", + "attrs": { + "title": "Execute commands in container", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "execute-commands-in-container", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-inspect-container", + "type": "concept", + "attrs": { + "title": "Inspect container", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "inspect-container", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-view-container-stats", + "type": "concept", + "attrs": { + "title": "View container stats", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "view-container-stats", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-connect-to-database", + "type": "concept", + "attrs": { + "title": "Connect to database", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "connect-to-database", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-view-tables", + "type": "concept", + "attrs": { + "title": "View tables", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "view-tables", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-query-data", + "type": "concept", + "attrs": { + "title": "Query data", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "query-data", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-common-debugging-scenarios", + "type": "concept", + "attrs": { + "title": "Common Debugging Scenarios", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "common-debugging-scenarios", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-performance-debugging", + "type": "concept", + "attrs": { + "title": "Performance Debugging", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "performance-debugging", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-network-debugging", + "type": "concept", + "attrs": { + "title": "Network Debugging", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "network-debugging", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-test-api-endpoint", + "type": "concept", + "attrs": { + "title": "Test API endpoint", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "test-api-endpoint", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-test-with-authentication", + "type": "concept", + "attrs": { + "title": "Test with authentication", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "test-with-authentication", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-using-wscat", + "type": "concept", + "attrs": { + "title": "Using wscat", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "using-wscat", + "domain": "agenstra" + } + }, + { + "id": "concept:agenstra-send-event", + "type": "concept", + "attrs": { + "title": "Send event", + "docPath": "docs/agenstra/troubleshooting/debugging-guide.md", + "sectionAnchor": "send-event", + "domain": "agenstra" + } + }, + { + "id": "concept:decabill-decabill-documentation", + "type": "concept", + "attrs": { + "title": "Decabill Documentation", + "docPath": "docs/decabill/README.md", + "sectionAnchor": "decabill-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-what-is-decabill", + "type": "concept", + "attrs": { + "title": "What is Decabill?", + "docPath": "docs/decabill/README.md", + "sectionAnchor": "what-is-decabill", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-documentation-structure", + "type": "concept", + "attrs": { + "title": "Documentation Structure", + "docPath": "docs/decabill/README.md", + "sectionAnchor": "documentation-structure", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-quick-start", + "type": "concept", + "attrs": { + "title": "Quick Start", + "docPath": "docs/decabill/README.md", + "sectionAnchor": "quick-start", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-system-architecture", + "type": "concept", + "attrs": { + "title": "System Architecture", + "docPath": "docs/decabill/README.md", + "sectionAnchor": "system-architecture", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-external-resources", + "type": "concept", + "attrs": { + "title": "External Resources", + "docPath": "docs/decabill/README.md", + "sectionAnchor": "external-resources", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-licensing", + "type": "concept", + "attrs": { + "title": "Licensing", + "docPath": "docs/decabill/README.md", + "sectionAnchor": "licensing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-api-reference", + "type": "concept", + "attrs": { + "title": "API Reference", + "docPath": "docs/decabill/api-reference/README.md", + "sectionAnchor": "api-reference", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-manager-http-api", + "type": "concept", + "attrs": { + "title": "Billing Manager HTTP API", + "docPath": "docs/decabill/api-reference/README.md", + "sectionAnchor": "billing-manager-http-api", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-manager-websocket-gateways", + "type": "concept", + "attrs": { + "title": "Billing Manager WebSocket Gateways", + "docPath": "docs/decabill/api-reference/README.md", + "sectionAnchor": "billing-manager-websocket-gateways", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-using-the-specifications", + "type": "concept", + "attrs": { + "title": "Using the Specifications", + "docPath": "docs/decabill/api-reference/README.md", + "sectionAnchor": "using-the-specifications", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-generated-client-package", + "type": "concept", + "attrs": { + "title": "Generated Client Package", + "docPath": "docs/decabill/api-reference/README.md", + "sectionAnchor": "generated-client-package", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-related-documentation", + "type": "concept", + "attrs": { + "title": "Related Documentation", + "docPath": "docs/decabill/api-reference/README.md", + "sectionAnchor": "related-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-applications-documentation", + "type": "concept", + "attrs": { + "title": "Applications Documentation", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "applications-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-overview", + "type": "concept", + "attrs": { + "title": "Overview", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "overview", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-applications", + "type": "concept", + "attrs": { + "title": "Applications", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "applications", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-application-relationships", + "type": "concept", + "attrs": { + "title": "Application Relationships", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "application-relationships", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-communication-patterns", + "type": "concept", + "attrs": { + "title": "Communication Patterns", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "communication-patterns", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-build-and-run-commands", + "type": "concept", + "attrs": { + "title": "Build and Run Commands", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "build-and-run-commands", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-backend", + "type": "concept", + "attrs": { + "title": "Backend", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "backend", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-frontend", + "type": "concept", + "attrs": { + "title": "Frontend", + "docPath": "docs/decabill/applications/README.md", + "sectionAnchor": "frontend", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-backend-billing-manager", + "type": "concept", + "attrs": { + "title": "Backend Billing Manager", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "backend-billing-manager", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-purpose", + "type": "concept", + "attrs": { + "title": "Purpose", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "purpose", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-features", + "type": "concept", + "attrs": { + "title": "Features", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "features", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-architecture", + "type": "concept", + "attrs": { + "title": "Architecture", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "architecture", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ports-and-network-surfaces", + "type": "concept", + "attrs": { + "title": "Ports and Network Surfaces", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "ports-and-network-surfaces", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-queue-roles", + "type": "concept", + "attrs": { + "title": "Queue Roles", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "queue-roles", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docker-image", + "type": "concept", + "attrs": { + "title": "Docker Image", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "docker-image", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication", + "type": "concept", + "attrs": { + "title": "Authentication", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "authentication", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-major-api-areas", + "type": "concept", + "attrs": { + "title": "Major API Areas", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "major-api-areas", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-websocket-gateways", + "type": "concept", + "attrs": { + "title": "WebSocket Gateways", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "websocket-gateways", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe-and-provisioning", + "type": "concept", + "attrs": { + "title": "Stripe and Provisioning", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "stripe-and-provisioning", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-development-commands", + "type": "concept", + "attrs": { + "title": "Development Commands", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "development-commands", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-run-locally-set-queue-role-all-in-env", + "type": "concept", + "attrs": { + "title": "Run locally (set QUEUE_ROLE=all in .env)", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "run-locally-set-queue-role-all-in-env", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-build", + "type": "concept", + "attrs": { + "title": "Build", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "build", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-tests", + "type": "concept", + "attrs": { + "title": "Tests", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "tests", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-generate-typescript-client-from-openapi", + "type": "concept", + "attrs": { + "title": "Generate TypeScript client from OpenAPI", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "generate-typescript-client-from-openapi", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-bull-board-local", + "type": "concept", + "attrs": { + "title": "Bull Board (Local)", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "bull-board-local", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-license", + "type": "concept", + "attrs": { + "title": "License", + "docPath": "docs/decabill/applications/backend-billing-manager.md", + "sectionAnchor": "license", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-frontend-billing-console", + "type": "concept", + "attrs": { + "title": "Frontend Billing Console", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "frontend-billing-console", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-routes-overview", + "type": "concept", + "attrs": { + "title": "Routes Overview", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "routes-overview", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-express-ssr-server", + "type": "concept", + "attrs": { + "title": "Express SSR Server", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "express-ssr-server", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-configuration", + "type": "concept", + "attrs": { + "title": "Configuration", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "configuration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ngrx-state-slices", + "type": "concept", + "attrs": { + "title": "NgRx State Slices", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "ngrx-state-slices", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dev-server-port-4500", + "type": "concept", + "attrs": { + "title": "Dev server (port 4500)", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "dev-server-port-4500", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-production-build-localized", + "type": "concept", + "attrs": { + "title": "Production build (localized)", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "production-build-localized", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ssr-server-after-build", + "type": "concept", + "attrs": { + "title": "SSR server after build", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "ssr-server-after-build", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-unit-tests", + "type": "concept", + "attrs": { + "title": "Unit tests", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "unit-tests", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docker-compose", + "type": "concept", + "attrs": { + "title": "Docker Compose", + "docPath": "docs/decabill/applications/frontend-billing-console.md", + "sectionAnchor": "docker-compose", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-architecture-documentation", + "type": "concept", + "attrs": { + "title": "Architecture Documentation", + "docPath": "docs/decabill/architecture/README.md", + "sectionAnchor": "architecture-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-key-architectural-concepts", + "type": "concept", + "attrs": { + "title": "Key Architectural Concepts", + "docPath": "docs/decabill/architecture/README.md", + "sectionAnchor": "key-architectural-concepts", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-architecture-principles", + "type": "concept", + "attrs": { + "title": "Architecture Principles", + "docPath": "docs/decabill/architecture/README.md", + "sectionAnchor": "architecture-principles", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-components", + "type": "concept", + "attrs": { + "title": "Components", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "components", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-frontend-landing-page", + "type": "concept", + "attrs": { + "title": "Frontend Landing Page", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "frontend-landing-page", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-postgresql", + "type": "concept", + "attrs": { + "title": "PostgreSQL", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "postgresql", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-redis", + "type": "concept", + "attrs": { + "title": "Redis", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "redis", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe", + "type": "concept", + "attrs": { + "title": "Stripe", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "stripe", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-mailhog-local-only", + "type": "concept", + "attrs": { + "title": "Mailhog (Local Only)", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "mailhog-local-only", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-cloud-providers", + "type": "concept", + "attrs": { + "title": "Cloud Providers", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "cloud-providers", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-component-dependencies", + "type": "concept", + "attrs": { + "title": "Component Dependencies", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "component-dependencies", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-external-dependencies", + "type": "concept", + "attrs": { + "title": "External Dependencies", + "docPath": "docs/decabill/architecture/components.md", + "sectionAnchor": "external-dependencies", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-data-flow", + "type": "concept", + "attrs": { + "title": "Data Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "data-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-http-rest-api-flow", + "type": "concept", + "attrs": { + "title": "HTTP REST API Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "http-rest-api-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-websocket-dashboard-flow", + "type": "concept", + "attrs": { + "title": "WebSocket Dashboard Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "websocket-dashboard-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe-redirect-and-webhook-flow", + "type": "concept", + "attrs": { + "title": "Stripe Redirect and Webhook Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "stripe-redirect-and-webhook-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-open-position-and-billing-day-flow", + "type": "concept", + "attrs": { + "title": "Open Position and Billing Day Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "open-position-and-billing-day-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-server-provisioning-flow", + "type": "concept", + "attrs": { + "title": "Server Provisioning Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "server-provisioning-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-backorder-retry-flow", + "type": "concept", + "attrs": { + "title": "Backorder Retry Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "backorder-retry-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-manual-invoice-flow", + "type": "concept", + "attrs": { + "title": "Admin Manual Invoice Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "admin-manual-invoice-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-multi-tenant-request-flow", + "type": "concept", + "attrs": { + "title": "Multi-Tenant Request Flow", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "multi-tenant-request-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-state-management-flow-ngrx", + "type": "concept", + "attrs": { + "title": "State Management Flow (NgRx)", + "docPath": "docs/decabill/architecture/data-flow.md", + "sectionAnchor": "state-management-flow-ngrx", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-system-overview", + "type": "concept", + "attrs": { + "title": "System Overview", + "docPath": "docs/decabill/architecture/system-overview.md", + "sectionAnchor": "system-overview", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-two-tier-architecture", + "type": "concept", + "attrs": { + "title": "Two-Tier Architecture", + "docPath": "docs/decabill/architecture/system-overview.md", + "sectionAnchor": "two-tier-architecture", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-component-relationships", + "type": "concept", + "attrs": { + "title": "Component Relationships", + "docPath": "docs/decabill/architecture/system-overview.md", + "sectionAnchor": "component-relationships", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-deployment-topology", + "type": "concept", + "attrs": { + "title": "Deployment Topology", + "docPath": "docs/decabill/architecture/system-overview.md", + "sectionAnchor": "deployment-topology", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-data-boundaries", + "type": "concept", + "attrs": { + "title": "Data Boundaries", + "docPath": "docs/decabill/architecture/system-overview.md", + "sectionAnchor": "data-boundaries", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-deployment-documentation", + "type": "concept", + "attrs": { + "title": "Deployment Documentation", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "deployment-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-deployment-guides", + "type": "concept", + "attrs": { + "title": "Deployment Guides", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "deployment-guides", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-deployment-architecture", + "type": "concept", + "attrs": { + "title": "Deployment Architecture", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "deployment-architecture", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-manager-api-worker-scheduler-postgres-redis-mailhog", + "type": "concept", + "attrs": { + "title": "Billing manager (API, worker, scheduler, Postgres, Redis, Mailhog)", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "billing-manager-api-worker-scheduler-postgres-redis-mailhog", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-console-frontend", + "type": "concept", + "attrs": { + "title": "Billing console frontend", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "billing-console-frontend", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docs-frontend-optional", + "type": "concept", + "attrs": { + "title": "Docs frontend (optional)", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "docs-frontend-optional", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-install-dependencies-repository-root", + "type": "concept", + "attrs": { + "title": "Install dependencies (repository root)", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "install-dependencies-repository-root", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-start-billing-manager", + "type": "concept", + "attrs": { + "title": "Start billing manager", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "start-billing-manager", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-start-billing-console", + "type": "concept", + "attrs": { + "title": "Start billing console", + "docPath": "docs/decabill/deployment/README.md", + "sectionAnchor": "start-billing-console", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-background-jobs-bullmq", + "type": "concept", + "attrs": { + "title": "Background Jobs (BullMQ)", + "docPath": "docs/decabill/deployment/background-jobs.md", + "sectionAnchor": "background-jobs-bullmq", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-job-registry", + "type": "concept", + "attrs": { + "title": "Job Registry", + "docPath": "docs/decabill/deployment/background-jobs.md", + "sectionAnchor": "job-registry", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-redis-and-queue-environment-variables", + "type": "concept", + "attrs": { + "title": "Redis and Queue Environment Variables", + "docPath": "docs/decabill/deployment/background-jobs.md", + "sectionAnchor": "redis-and-queue-environment-variables", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-bull-board", + "type": "concept", + "attrs": { + "title": "Bull Board", + "docPath": "docs/decabill/deployment/background-jobs.md", + "sectionAnchor": "bull-board", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-tenant-context-in-jobs", + "type": "concept", + "attrs": { + "title": "Tenant Context in Jobs", + "docPath": "docs/decabill/deployment/background-jobs.md", + "sectionAnchor": "tenant-context-in-jobs", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docker-deployment", + "type": "concept", + "attrs": { + "title": "Docker Deployment", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "docker-deployment", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-prerequisites", + "type": "concept", + "attrs": { + "title": "Prerequisites", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "prerequisites", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docker-compose-setup", + "type": "concept", + "attrs": { + "title": "Docker Compose Setup", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "docker-compose-setup", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-container-configuration", + "type": "concept", + "attrs": { + "title": "Container Configuration", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "container-configuration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-building-containers", + "type": "concept", + "attrs": { + "title": "Building Containers", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "building-containers", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-api-image", + "type": "concept", + "attrs": { + "title": "Billing API image", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "billing-api-image", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-console-server-image", + "type": "concept", + "attrs": { + "title": "Billing console server image", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "billing-console-server-image", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docs-server-image", + "type": "concept", + "attrs": { + "title": "Docs server image", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "docs-server-image", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-container-security-images", + "type": "concept", + "attrs": { + "title": "Container Security (Images)", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "container-security-images", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-running-containers", + "type": "concept", + "attrs": { + "title": "Running Containers", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "running-containers", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-health-checks", + "type": "concept", + "attrs": { + "title": "Health Checks", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "health-checks", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-logging", + "type": "concept", + "attrs": { + "title": "Logging", + "docPath": "docs/decabill/deployment/docker-deployment.md", + "sectionAnchor": "logging", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-environment-configuration", + "type": "concept", + "attrs": { + "title": "Environment Configuration", + "docPath": "docs/decabill/deployment/environment-configuration.md", + "sectionAnchor": "environment-configuration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-frontend-applications-express-ssr", + "type": "concept", + "attrs": { + "title": "Frontend Applications (Express SSR)", + "docPath": "docs/decabill/deployment/environment-configuration.md", + "sectionAnchor": "frontend-applications-express-ssr", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-redis-and-bullmq-background-jobs", + "type": "concept", + "attrs": { + "title": "Redis and BullMQ (Background Jobs)", + "docPath": "docs/decabill/deployment/environment-configuration.md", + "sectionAnchor": "redis-and-bullmq-background-jobs", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-environment-specific-defaults", + "type": "concept", + "attrs": { + "title": "Environment-Specific Defaults", + "docPath": "docs/decabill/deployment/environment-configuration.md", + "sectionAnchor": "environment-specific-defaults", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-local-development", + "type": "concept", + "attrs": { + "title": "Local Development", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "local-development", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-installation", + "type": "concept", + "attrs": { + "title": "Installation", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "installation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-database-and-redis-setup", + "type": "concept", + "attrs": { + "title": "Database and Redis Setup", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "database-and-redis-setup", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-postgresql-for-billing-manager", + "type": "concept", + "attrs": { + "title": "PostgreSQL for billing manager", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "postgresql-for-billing-manager", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-redis-for-bullmq-host-port-6380-to-avoid-clashing-with-other-stacks", + "type": "concept", + "attrs": { + "title": "Redis for BullMQ (host port 6380 to avoid clashing with other stacks)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "redis-for-bullmq-host-port-6380-to-avoid-clashing-with-other-stacks", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-database", + "type": "concept", + "attrs": { + "title": "Database", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "database", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-redis-when-not-using-compose-network", + "type": "concept", + "attrs": { + "title": "Redis (when not using compose network)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "redis-when-not-using-compose-network", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-queue-local-all-in-one", + "type": "concept", + "attrs": { + "title": "Queue (local all-in-one)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "queue-local-all-in-one", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-choose-one", + "type": "concept", + "attrs": { + "title": "Authentication (choose one)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "authentication-choose-one", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-optional-bind-api-key-to-one-tenant-see-accepted-risk-dr-002", + "type": "concept", + "attrs": { + "title": "Optional: bind API key to one tenant (see accepted risk DR-002)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "optional-bind-api-key-to-one-tenant-see-accepted-risk-dr-002", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-static-api-key-tenant-id-default", + "type": "concept", + "attrs": { + "title": "STATIC_API_KEY_TENANT_ID=default", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "static-api-key-tenant-id-default", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ports", + "type": "concept", + "attrs": { + "title": "Ports", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "ports", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-multi-tenancy", + "type": "concept", + "attrs": { + "title": "Multi-tenancy", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "multi-tenancy", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-cors-for-development", + "type": "concept", + "attrs": { + "title": "CORS (for development)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "cors-for-development", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-rate-limiting-disabled-for-development", + "type": "concept", + "attrs": { + "title": "Rate limiting (disabled for development)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "rate-limiting-disabled-for-development", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-encryption-required-for-production-set-for-local-if-testing-encrypted-fields", + "type": "concept", + "attrs": { + "title": "Encryption (required for production; set for local if testing encrypted fields)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "encryption-required-for-production-set-for-local-if-testing-encrypted-fields", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe-optional-for-local-payment-flows", + "type": "concept", + "attrs": { + "title": "Stripe (optional for local payment flows)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "stripe-optional-for-local-payment-flows", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-provisioning-optional", + "type": "concept", + "attrs": { + "title": "Provisioning (optional)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "provisioning-optional", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-running-applications", + "type": "concept", + "attrs": { + "title": "Running Applications", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "running-applications", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-terminal-1-billing-manager-queue-role-all-for-local-jobs", + "type": "concept", + "attrs": { + "title": "Terminal 1: Billing manager (QUEUE_ROLE=all for local jobs)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "terminal-1-billing-manager-queue-role-all-for-local-jobs", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-terminal-2-billing-console", + "type": "concept", + "attrs": { + "title": "Terminal 2: Billing console", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "terminal-2-billing-console", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-terminal-3-docs-optional", + "type": "concept", + "attrs": { + "title": "Terminal 3: Docs (optional)", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "terminal-3-docs-optional", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-development-workflow", + "type": "concept", + "attrs": { + "title": "Development Workflow", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "development-workflow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-manager", + "type": "concept", + "attrs": { + "title": "Billing manager", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "billing-manager", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-console", + "type": "concept", + "attrs": { + "title": "Billing console", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "billing-console", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-run-with-coverage", + "type": "concept", + "attrs": { + "title": "Run with coverage", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "run-with-coverage", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-troubleshooting", + "type": "concept", + "attrs": { + "title": "Troubleshooting", + "docPath": "docs/decabill/deployment/local-development.md", + "sectionAnchor": "troubleshooting", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-production-deployment-checklist", + "type": "concept", + "attrs": { + "title": "Production Deployment Checklist", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "production-deployment-checklist", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-pre-deployment-checklist", + "type": "concept", + "attrs": { + "title": "Pre-Deployment Checklist", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "pre-deployment-checklist", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-security-considerations", + "type": "concept", + "attrs": { + "title": "Security Considerations", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "security-considerations", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-performance-optimization", + "type": "concept", + "attrs": { + "title": "Performance Optimization", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "performance-optimization", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-monitoring-setup", + "type": "concept", + "attrs": { + "title": "Monitoring Setup", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "monitoring-setup", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-backup-strategies", + "type": "concept", + "attrs": { + "title": "Backup Strategies", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "backup-strategies", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-deployment-process", + "type": "concept", + "attrs": { + "title": "Deployment Process", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "deployment-process", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-rollback-plan", + "type": "concept", + "attrs": { + "title": "Rollback Plan", + "docPath": "docs/decabill/deployment/production-checklist.md", + "sectionAnchor": "rollback-plan", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-system-requirements", + "type": "concept", + "attrs": { + "title": "System Requirements", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "system-requirements", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-platform-prerequisites", + "type": "concept", + "attrs": { + "title": "Platform Prerequisites", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "platform-prerequisites", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-data-services", + "type": "concept", + "attrs": { + "title": "Data Services", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "data-services", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-backend-billing-manager-by-queue-role", + "type": "concept", + "attrs": { + "title": "Backend Billing Manager (by Queue Role)", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "backend-billing-manager-by-queue-role", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-persistent-volumes", + "type": "concept", + "attrs": { + "title": "Persistent Volumes", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "persistent-volumes", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-mixed-and-local-development-host", + "type": "concept", + "attrs": { + "title": "Mixed and Local Development Host", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "mixed-and-local-development-host", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-production-sizing-examples", + "type": "concept", + "attrs": { + "title": "Production Sizing Examples", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "production-sizing-examples", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-network-and-external-dependencies", + "type": "concept", + "attrs": { + "title": "Network and External Dependencies", + "docPath": "docs/decabill/deployment/system-requirements.md", + "sectionAnchor": "network-and-external-dependencies", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-features-documentation", + "type": "concept", + "attrs": { + "title": "Features Documentation", + "docPath": "docs/decabill/features/README.md", + "sectionAnchor": "features-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-feature-relationships", + "type": "concept", + "attrs": { + "title": "Feature Relationships", + "docPath": "docs/decabill/features/README.md", + "sectionAnchor": "feature-relationships", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-methods", + "type": "concept", + "attrs": { + "title": "Authentication Methods", + "docPath": "docs/decabill/features/authentication.md", + "sectionAnchor": "authentication-methods", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-users-authentication-flow", + "type": "concept", + "attrs": { + "title": "Users Authentication Flow", + "docPath": "docs/decabill/features/authentication.md", + "sectionAnchor": "users-authentication-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-disabling-signup", + "type": "concept", + "attrs": { + "title": "Disabling Signup", + "docPath": "docs/decabill/features/authentication.md", + "sectionAnchor": "disabling-signup", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-user-roles", + "type": "concept", + "attrs": { + "title": "User Roles", + "docPath": "docs/decabill/features/authentication.md", + "sectionAnchor": "user-roles", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-security-features", + "type": "concept", + "attrs": { + "title": "Security Features", + "docPath": "docs/decabill/features/authentication.md", + "sectionAnchor": "security-features", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-api-endpoints", + "type": "concept", + "attrs": { + "title": "API Endpoints", + "docPath": "docs/decabill/features/authentication.md", + "sectionAnchor": "api-endpoints", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-flow-diagram", + "type": "concept", + "attrs": { + "title": "Authentication Flow Diagram", + "docPath": "docs/decabill/features/authentication.md", + "sectionAnchor": "authentication-flow-diagram", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-auto-billing", + "type": "concept", + "attrs": { + "title": "Auto-Billing", + "docPath": "docs/decabill/features/auto-billing.md", + "sectionAnchor": "auto-billing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-payment-processor-capability", + "type": "concept", + "attrs": { + "title": "Payment processor capability", + "docPath": "docs/decabill/features/auto-billing.md", + "sectionAnchor": "payment-processor-capability", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-profile-fields", + "type": "concept", + "attrs": { + "title": "Customer profile fields", + "docPath": "docs/decabill/features/auto-billing.md", + "sectionAnchor": "customer-profile-fields", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-setup-and-enable-flow", + "type": "concept", + "attrs": { + "title": "Setup and enable flow", + "docPath": "docs/decabill/features/auto-billing.md", + "sectionAnchor": "setup-and-enable-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-invoice-auto-payment-lifecycle", + "type": "concept", + "attrs": { + "title": "Invoice auto-payment lifecycle", + "docPath": "docs/decabill/features/auto-billing.md", + "sectionAnchor": "invoice-auto-payment-lifecycle", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-notifications", + "type": "concept", + "attrs": { + "title": "Notifications", + "docPath": "docs/decabill/features/auto-billing.md", + "sectionAnchor": "notifications", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-related", + "type": "concept", + "attrs": { + "title": "Related", + "docPath": "docs/decabill/features/auto-billing.md", + "sectionAnchor": "related", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-backorders", + "type": "concept", + "attrs": { + "title": "Backorders", + "docPath": "docs/decabill/features/backorders.md", + "sectionAnchor": "backorders", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-backorder-statuses", + "type": "concept", + "attrs": { + "title": "Backorder Statuses", + "docPath": "docs/decabill/features/backorders.md", + "sectionAnchor": "backorder-statuses", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-creating-backorders", + "type": "concept", + "attrs": { + "title": "Creating Backorders", + "docPath": "docs/decabill/features/backorders.md", + "sectionAnchor": "creating-backorders", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-retry-processing", + "type": "concept", + "attrs": { + "title": "Retry Processing", + "docPath": "docs/decabill/features/backorders.md", + "sectionAnchor": "retry-processing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-user-api", + "type": "concept", + "attrs": { + "title": "User API", + "docPath": "docs/decabill/features/backorders.md", + "sectionAnchor": "user-api", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-geography-on-retry", + "type": "concept", + "attrs": { + "title": "Customer Geography on Retry", + "docPath": "docs/decabill/features/backorders.md", + "sectionAnchor": "customer-geography-on-retry", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ui", + "type": "concept", + "attrs": { + "title": "UI", + "docPath": "docs/decabill/features/backorders.md", + "sectionAnchor": "ui", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-administration", + "type": "concept", + "attrs": { + "title": "Billing Administration", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "billing-administration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-access-control", + "type": "concept", + "attrs": { + "title": "Access Control", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "access-control", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-dashboard", + "type": "concept", + "attrs": { + "title": "Billing Dashboard", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "billing-dashboard", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-manual-invoice-administration", + "type": "concept", + "attrs": { + "title": "Manual Invoice Administration", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "manual-invoice-administration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-billing-profiles-admin", + "type": "concept", + "attrs": { + "title": "Customer Billing Profiles (Admin)", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "customer-billing-profiles-admin", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-projects", + "type": "concept", + "attrs": { + "title": "Admin Projects", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "admin-projects", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-related-admin-pages", + "type": "concept", + "attrs": { + "title": "Related Admin Pages", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "related-admin-pages", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-webhook-notifications", + "type": "concept", + "attrs": { + "title": "Webhook Notifications", + "docPath": "docs/decabill/features/billing-administration.md", + "sectionAnchor": "webhook-notifications", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-cloudinit-configs", + "type": "concept", + "attrs": { + "title": "CloudInit Configs", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "cloudinit-configs", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-template-placeholders", + "type": "concept", + "attrs": { + "title": "Template Placeholders", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "template-placeholders", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-environment-variables", + "type": "concept", + "attrs": { + "title": "Environment Variables", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "environment-variables", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-service-plan-product-defaults", + "type": "concept", + "attrs": { + "title": "Service plan product defaults", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "service-plan-product-defaults", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-api", + "type": "concept", + "attrs": { + "title": "Admin API", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "admin-api", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-ui", + "type": "concept", + "attrs": { + "title": "Admin UI", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "admin-ui", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-plan-linkage", + "type": "concept", + "attrs": { + "title": "Plan Linkage", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "plan-linkage", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-order-flow", + "type": "concept", + "attrs": { + "title": "Customer Order Flow", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "customer-order-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-provisioning", + "type": "concept", + "attrs": { + "title": "Provisioning", + "docPath": "docs/decabill/features/cloud-init-configs.md", + "sectionAnchor": "provisioning", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-profiles", + "type": "concept", + "attrs": { + "title": "Customer Profiles", + "docPath": "docs/decabill/features/customer-profiles.md", + "sectionAnchor": "customer-profiles", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-required-fields-for-ordering", + "type": "concept", + "attrs": { + "title": "Required Fields for Ordering", + "docPath": "docs/decabill/features/customer-profiles.md", + "sectionAnchor": "required-fields-for-ordering", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-self-service", + "type": "concept", + "attrs": { + "title": "Self-Service", + "docPath": "docs/decabill/features/customer-profiles.md", + "sectionAnchor": "self-service", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-management", + "type": "concept", + "attrs": { + "title": "Admin Management", + "docPath": "docs/decabill/features/customer-profiles.md", + "sectionAnchor": "admin-management", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-validation-flow", + "type": "concept", + "attrs": { + "title": "Validation Flow", + "docPath": "docs/decabill/features/customer-profiles.md", + "sectionAnchor": "validation-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-data-storage", + "type": "concept", + "attrs": { + "title": "Data Storage", + "docPath": "docs/decabill/features/customer-profiles.md", + "sectionAnchor": "data-storage", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-user-billing-day", + "type": "concept", + "attrs": { + "title": "User Billing Day", + "docPath": "docs/decabill/features/customer-profiles.md", + "sectionAnchor": "user-billing-day", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dashboard-and-server-control", + "type": "concept", + "attrs": { + "title": "Dashboard and Server Control", + "docPath": "docs/decabill/features/dashboard-and-server-control.md", + "sectionAnchor": "dashboard-and-server-control", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-overview-page", + "type": "concept", + "attrs": { + "title": "Overview Page", + "docPath": "docs/decabill/features/dashboard-and-server-control.md", + "sectionAnchor": "overview-page", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-data-loading", + "type": "concept", + "attrs": { + "title": "Data Loading", + "docPath": "docs/decabill/features/dashboard-and-server-control.md", + "sectionAnchor": "data-loading", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authorization", + "type": "concept", + "attrs": { + "title": "Authorization", + "docPath": "docs/decabill/features/dashboard-and-server-control.md", + "sectionAnchor": "authorization", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-server-control-sequence", + "type": "concept", + "attrs": { + "title": "Server Control Sequence", + "docPath": "docs/decabill/features/dashboard-and-server-control.md", + "sectionAnchor": "server-control-sequence", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-error-handling", + "type": "concept", + "attrs": { + "title": "Error Handling", + "docPath": "docs/decabill/features/dashboard-and-server-control.md", + "sectionAnchor": "error-handling", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dynamic-provider-plugins", + "type": "concept", + "attrs": { + "title": "Dynamic Provider Plugins", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "dynamic-provider-plugins", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-registries", + "type": "concept", + "attrs": { + "title": "Registries", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "registries", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-resolution-order", + "type": "concept", + "attrs": { + "title": "Resolution Order", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "resolution-order", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-config-format", + "type": "concept", + "attrs": { + "title": "Config Format", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "config-format", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-alias-package-specifier", + "type": "concept", + "attrs": { + "title": "alias=@package/specifier", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "alias-package-specifier", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-pascalcase-alias-selects-named-class-export", + "type": "concept", + "attrs": { + "title": "PascalCase alias selects named class export", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "pascalcase-alias-selects-named-class-export", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-bare-specifier", + "type": "concept", + "attrs": { + "title": "bare specifier", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "bare-specifier", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-file-entry-relative-to-plugin-path", + "type": "concept", + "attrs": { + "title": "file: entry relative to plugin path", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "file-entry-relative-to-plugin-path", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-plugin-package-contract", + "type": "concept", + "attrs": { + "title": "Plugin Package Contract", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "plugin-package-contract", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-payment-processors", + "type": "concept", + "attrs": { + "title": "Payment Processors", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "payment-processors", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-provider-metadata", + "type": "concept", + "attrs": { + "title": "Billing Provider Metadata", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "billing-provider-metadata", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-baked-in-plugins", + "type": "concept", + "attrs": { + "title": "Baked-in Plugins", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "baked-in-plugins", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-post-build-plugins", + "type": "concept", + "attrs": { + "title": "Post-build Plugins", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "post-build-plugins", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-startup-error-policy", + "type": "concept", + "attrs": { + "title": "Startup Error Policy", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "startup-error-policy", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-security", + "type": "concept", + "attrs": { + "title": "Security", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "security", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docker-compose-example", + "type": "concept", + "attrs": { + "title": "Docker Compose Example", + "docPath": "docs/decabill/features/dynamic-provider-plugins.md", + "sectionAnchor": "docker-compose-example", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-email-notifications-decabill", + "type": "concept", + "attrs": { + "title": "Email notifications (Decabill)", + "docPath": "docs/decabill/features/email-notifications.md", + "sectionAnchor": "email-notifications-decabill", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-transport", + "type": "concept", + "attrs": { + "title": "Transport", + "docPath": "docs/decabill/features/email-notifications.md", + "sectionAnchor": "transport", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-templates", + "type": "concept", + "attrs": { + "title": "Templates", + "docPath": "docs/decabill/features/email-notifications.md", + "sectionAnchor": "templates", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-event-catalog-implemented", + "type": "concept", + "attrs": { + "title": "Event catalog (implemented)", + "docPath": "docs/decabill/features/email-notifications.md", + "sectionAnchor": "event-catalog-implemented", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-delivery-retries", + "type": "concept", + "attrs": { + "title": "Delivery & retries", + "docPath": "docs/decabill/features/email-notifications.md", + "sectionAnchor": "delivery-retries", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-future-webhook-only-today", + "type": "concept", + "attrs": { + "title": "Future (webhook-only today)", + "docPath": "docs/decabill/features/email-notifications.md", + "sectionAnchor": "future-webhook-only-today", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-invoices", + "type": "concept", + "attrs": { + "title": "Invoices", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "invoices", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-invoice-statuses", + "type": "concept", + "attrs": { + "title": "Invoice Statuses", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "invoice-statuses", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-open-positions-and-billing-day", + "type": "concept", + "attrs": { + "title": "Open Positions and Billing Day", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "open-positions-and-billing-day", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-invoice-access", + "type": "concept", + "attrs": { + "title": "Customer Invoice Access", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "customer-invoice-access", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-invoice-operations", + "type": "concept", + "attrs": { + "title": "Admin Invoice Operations", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "admin-invoice-operations", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-pdf-generation", + "type": "concept", + "attrs": { + "title": "PDF Generation", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "pdf-generation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-usage-on-invoices", + "type": "concept", + "attrs": { + "title": "Usage on Invoices", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "usage-on-invoices", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-payment", + "type": "concept", + "attrs": { + "title": "Payment", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "payment", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-project-time-billing", + "type": "concept", + "attrs": { + "title": "Project Time Billing", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "project-time-billing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-manual-invoice-workflow-admin", + "type": "concept", + "attrs": { + "title": "Manual Invoice Workflow (Admin)", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "manual-invoice-workflow-admin", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-api-endpoints-summary", + "type": "concept", + "attrs": { + "title": "API Endpoints Summary", + "docPath": "docs/decabill/features/invoices.md", + "sectionAnchor": "api-endpoints-summary", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-tenant-selection", + "type": "concept", + "attrs": { + "title": "Tenant Selection", + "docPath": "docs/decabill/features/multi-tenancy.md", + "sectionAnchor": "tenant-selection", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-data-isolation", + "type": "concept", + "attrs": { + "title": "Data Isolation", + "docPath": "docs/decabill/features/multi-tenancy.md", + "sectionAnchor": "data-isolation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-api-key-auth-and-tenant-scope", + "type": "concept", + "attrs": { + "title": "API Key Auth and Tenant Scope", + "docPath": "docs/decabill/features/multi-tenancy.md", + "sectionAnchor": "api-key-auth-and-tenant-scope", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-public-catalog", + "type": "concept", + "attrs": { + "title": "Public Catalog", + "docPath": "docs/decabill/features/multi-tenancy.md", + "sectionAnchor": "public-catalog", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-background-jobs", + "type": "concept", + "attrs": { + "title": "Background Jobs", + "docPath": "docs/decabill/features/multi-tenancy.md", + "sectionAnchor": "background-jobs", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-multi-tenancy-flow", + "type": "concept", + "attrs": { + "title": "Multi-tenancy Flow", + "docPath": "docs/decabill/features/multi-tenancy.md", + "sectionAnchor": "multi-tenancy-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-configuration-summary", + "type": "concept", + "attrs": { + "title": "Configuration Summary", + "docPath": "docs/decabill/features/multi-tenancy.md", + "sectionAnchor": "configuration-summary", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-payment-processing", + "type": "concept", + "attrs": { + "title": "Payment Processing", + "docPath": "docs/decabill/features/payment-processing.md", + "sectionAnchor": "payment-processing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-default-processor", + "type": "concept", + "attrs": { + "title": "Default Processor", + "docPath": "docs/decabill/features/payment-processing.md", + "sectionAnchor": "default-processor", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe-configuration", + "type": "concept", + "attrs": { + "title": "Stripe Configuration", + "docPath": "docs/decabill/features/payment-processing.md", + "sectionAnchor": "stripe-configuration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-payment-flow", + "type": "concept", + "attrs": { + "title": "Customer Payment Flow", + "docPath": "docs/decabill/features/payment-processing.md", + "sectionAnchor": "customer-payment-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-manual-payment-status", + "type": "concept", + "attrs": { + "title": "Admin Manual Payment Status", + "docPath": "docs/decabill/features/payment-processing.md", + "sectionAnchor": "admin-manual-payment-status", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-payment-processor-interface", + "type": "concept", + "attrs": { + "title": "Payment Processor Interface", + "docPath": "docs/decabill/features/payment-processing.md", + "sectionAnchor": "payment-processor-interface", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-project-board", + "type": "concept", + "attrs": { + "title": "Project Board", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "project-board", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-swimlanes", + "type": "concept", + "attrs": { + "title": "Swimlanes", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "swimlanes", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-locking", + "type": "concept", + "attrs": { + "title": "Locking", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "locking", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-rest-board-operations", + "type": "concept", + "attrs": { + "title": "REST Board Operations", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "rest-board-operations", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-websocket-connection", + "type": "concept", + "attrs": { + "title": "WebSocket Connection", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "websocket-connection", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-events", + "type": "concept", + "attrs": { + "title": "Events", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "events", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-security-model", + "type": "concept", + "attrs": { + "title": "Security Model", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "security-model", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-connection-flow", + "type": "concept", + "attrs": { + "title": "Connection Flow", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "connection-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-frontend-integration", + "type": "concept", + "attrs": { + "title": "Frontend Integration", + "docPath": "docs/decabill/features/project-board.md", + "sectionAnchor": "frontend-integration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-projects", + "type": "concept", + "attrs": { + "title": "Projects", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "projects", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-assignment-model", + "type": "concept", + "attrs": { + "title": "Assignment Model", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "assignment-model", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-access-read-only", + "type": "concept", + "attrs": { + "title": "Customer Access (Read-Only)", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "customer-access-read-only", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-admin-crud", + "type": "concept", + "attrs": { + "title": "Admin CRUD", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "admin-crud", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-time-entries-admin", + "type": "concept", + "attrs": { + "title": "Time Entries (Admin)", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "time-entries-admin", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-bill-time", + "type": "concept", + "attrs": { + "title": "Bill Time", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "bill-time", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-time-report-admin", + "type": "concept", + "attrs": { + "title": "Time report (admin)", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "time-report-admin", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-kpi-summary", + "type": "concept", + "attrs": { + "title": "KPI Summary", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "kpi-summary", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-project-lifecycle", + "type": "concept", + "attrs": { + "title": "Project Lifecycle", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "project-lifecycle", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-notes", + "type": "concept", + "attrs": { + "title": "Authentication Notes", + "docPath": "docs/decabill/features/projects.md", + "sectionAnchor": "authentication-notes", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-marketing-promotions", + "type": "concept", + "attrs": { + "title": "Marketing promotions", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "marketing-promotions", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-tenant-isolation", + "type": "concept", + "attrs": { + "title": "Tenant isolation", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "tenant-isolation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-advantage-types", + "type": "concept", + "attrs": { + "title": "Advantage types", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "advantage-types", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-product-scoping", + "type": "concept", + "attrs": { + "title": "Product scoping", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "product-scoping", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-subscription-eligibility", + "type": "concept", + "attrs": { + "title": "Subscription eligibility", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "subscription-eligibility", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-customer-flow", + "type": "concept", + "attrs": { + "title": "Customer flow", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "customer-flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-integration", + "type": "concept", + "attrs": { + "title": "Billing integration", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "billing-integration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-related-docs", + "type": "concept", + "attrs": { + "title": "Related docs", + "docPath": "docs/decabill/features/promotions.md", + "sectionAnchor": "related-docs", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-public-statutory-withdrawal", + "type": "concept", + "attrs": { + "title": "Public Statutory Withdrawal", + "docPath": "docs/decabill/features/public-withdrawal.md", + "sectionAnchor": "public-statutory-withdrawal", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-flow", + "type": "concept", + "attrs": { + "title": "Flow", + "docPath": "docs/decabill/features/public-withdrawal.md", + "sectionAnchor": "flow", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-session-resume", + "type": "concept", + "attrs": { + "title": "Session resume", + "docPath": "docs/decabill/features/public-withdrawal.md", + "sectionAnchor": "session-resume", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-matching-rules", + "type": "concept", + "attrs": { + "title": "Matching rules", + "docPath": "docs/decabill/features/public-withdrawal.md", + "sectionAnchor": "matching-rules", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-public-api", + "type": "concept", + "attrs": { + "title": "Public API", + "docPath": "docs/decabill/features/public-withdrawal.md", + "sectionAnchor": "public-api", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-real-time-status", + "type": "concept", + "attrs": { + "title": "Real-time Status", + "docPath": "docs/decabill/features/real-time-status.md", + "sectionAnchor": "real-time-status", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-connection", + "type": "concept", + "attrs": { + "title": "Connection", + "docPath": "docs/decabill/features/real-time-status.md", + "sectionAnchor": "connection", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-payload-shape", + "type": "concept", + "attrs": { + "title": "Payload Shape", + "docPath": "docs/decabill/features/real-time-status.md", + "sectionAnchor": "payload-shape", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-server-provisioning", + "type": "concept", + "attrs": { + "title": "Server Provisioning", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "server-provisioning", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-supported-providers", + "type": "concept", + "attrs": { + "title": "Supported Providers", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "supported-providers", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-provisioning-process", + "type": "concept", + "attrs": { + "title": "Provisioning Process", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "provisioning-process", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-bundled-product-stack", + "type": "concept", + "attrs": { + "title": "Bundled Product Stack", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "bundled-product-stack", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-custom-service-kind", + "type": "concept", + "attrs": { + "title": "Custom Service Kind", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "custom-service-kind", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-tls-and-dns", + "type": "concept", + "attrs": { + "title": "TLS and DNS", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "tls-and-dns", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ssh-access", + "type": "concept", + "attrs": { + "title": "SSH Access", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "ssh-access", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-nested-provisioning-tokens", + "type": "concept", + "attrs": { + "title": "Nested Provisioning Tokens", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "nested-provisioning-tokens", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-server-information-and-control", + "type": "concept", + "attrs": { + "title": "Server Information and Control", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "server-information-and-control", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-subscription-item-update-scheduler", + "type": "concept", + "attrs": { + "title": "Subscription Item Update Scheduler", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "subscription-item-update-scheduler", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-optional-instance-configuration", + "type": "concept", + "attrs": { + "title": "Optional Instance Configuration", + "docPath": "docs/decabill/features/server-provisioning.md", + "sectionAnchor": "optional-instance-configuration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-service-types-and-plans", + "type": "concept", + "attrs": { + "title": "Service Types and Plans", + "docPath": "docs/decabill/features/service-types-and-plans.md", + "sectionAnchor": "service-types-and-plans", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-service-types", + "type": "concept", + "attrs": { + "title": "Service Types", + "docPath": "docs/decabill/features/service-types-and-plans.md", + "sectionAnchor": "service-types", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-service-plans", + "type": "concept", + "attrs": { + "title": "Service Plans", + "docPath": "docs/decabill/features/service-types-and-plans.md", + "sectionAnchor": "service-plans", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-availability-and-pricing", + "type": "concept", + "attrs": { + "title": "Availability and Pricing", + "docPath": "docs/decabill/features/service-types-and-plans.md", + "sectionAnchor": "availability-and-pricing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-subscriptions", + "type": "concept", + "attrs": { + "title": "Subscriptions", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "subscriptions", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-subscription-lifecycle", + "type": "concept", + "attrs": { + "title": "Subscription Lifecycle", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "subscription-lifecycle", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ordering-a-subscription", + "type": "concept", + "attrs": { + "title": "Ordering a Subscription", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "ordering-a-subscription", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-cancel-and-resume", + "type": "concept", + "attrs": { + "title": "Cancel and Resume", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "cancel-and-resume", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-statutory-withdrawal-widerruf", + "type": "concept", + "attrs": { + "title": "Statutory Withdrawal (Widerruf)", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "statutory-withdrawal-widerruf", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-subscription-items", + "type": "concept", + "attrs": { + "title": "Subscription Items", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "subscription-items", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-usage-records", + "type": "concept", + "attrs": { + "title": "Usage Records", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "usage-records", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-pricing-preview", + "type": "concept", + "attrs": { + "title": "Pricing Preview", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "pricing-preview", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-availability", + "type": "concept", + "attrs": { + "title": "Availability", + "docPath": "docs/decabill/features/subscriptions.md", + "sectionAnchor": "availability", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-webhooks-decabill", + "type": "concept", + "attrs": { + "title": "Webhooks (Decabill)", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "webhooks-decabill", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-access", + "type": "concept", + "attrs": { + "title": "Access", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "access", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-modes", + "type": "concept", + "attrs": { + "title": "Authentication modes", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "authentication-modes", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-event-envelope", + "type": "concept", + "attrs": { + "title": "Event envelope", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "event-envelope", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-event-catalog", + "type": "concept", + "attrs": { + "title": "Event catalog", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "event-catalog", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-payload-examples", + "type": "concept", + "attrs": { + "title": "Payload examples", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "payload-examples", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-delivery-and-retries", + "type": "concept", + "attrs": { + "title": "Delivery and retries", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "delivery-and-retries", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-delivery-log-retention", + "type": "concept", + "attrs": { + "title": "Delivery log retention", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "delivery-log-retention", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-endpoint-deletion", + "type": "concept", + "attrs": { + "title": "Endpoint deletion", + "docPath": "docs/decabill/features/webhooks.md", + "sectionAnchor": "endpoint-deletion", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-getting-started-with-decabill", + "type": "concept", + "attrs": { + "title": "Getting Started with Decabill", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "getting-started-with-decabill", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", + "type": "concept", + "attrs": { + "title": "Edit .env: set STATIC_API_KEY, ENCRYPTION_KEY, issuer fields, and TENANTS as needed", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-terminal-1-billing-manager-queue-role-all-runs-api-worker-and-scheduler-in-one-process", + "type": "concept", + "attrs": { + "title": "Terminal 1: billing manager (QUEUE_ROLE=all runs API, worker, and scheduler in one process)", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "terminal-1-billing-manager-queue-role-all-runs-api-worker-and-scheduler-in-one-process", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-set-queue-role-all-redis-port-6380-if-redis-is-published-on-the-host-and-auth-variables", + "type": "concept", + "attrs": { + "title": "Set QUEUE_ROLE=all, REDIS_PORT=6380 if Redis is published on the host, and auth variables", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "set-queue-role-all-redis-port-6380-if-redis-is-published-on-the-host-and-auth-variables", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-terminal-2-billing-console-angular-dev-server-on-port-4500", + "type": "concept", + "attrs": { + "title": "Terminal 2: billing console (Angular dev server on port 4500)", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "terminal-2-billing-console-angular-dev-server-on-port-4500", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-redis-6380-when-using-compose-host-mapping", + "type": "concept", + "attrs": { + "title": "Redis (6380 when using compose host mapping)", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "redis-6380-when-using-compose-host-mapping", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-process-role-local-all-in-one", + "type": "concept", + "attrs": { + "title": "Process role (local all-in-one)", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "process-role-local-all-in-one", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-choose-one-method", + "type": "concept", + "attrs": { + "title": "Authentication (choose one method)", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "authentication-choose-one-method", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-or-keycloak", + "type": "concept", + "attrs": { + "title": "Or Keycloak:", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "or-keycloak", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-method-keycloak", + "type": "concept", + "attrs": { + "title": "AUTHENTICATION_METHOD=keycloak", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "authentication-method-keycloak", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-keycloak-auth-server-url-http-localhost-8380", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_AUTH_SERVER_URL=http://localhost:8380", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "keycloak-auth-server-url-http-localhost-8380", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-keycloak-realm-decabill", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_REALM=decabill", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "keycloak-realm-decabill", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-keycloak-client-id-billing-manager", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_CLIENT_ID=billing-manager", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "keycloak-client-id-billing-manager", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-keycloak-client-secret-your-client-secret", + "type": "concept", + "attrs": { + "title": "KEYCLOAK_CLIENT_SECRET=your-client-secret", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "keycloak-client-secret-your-client-secret", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-or-built-in-users-default-in-local-angular-environment", + "type": "concept", + "attrs": { + "title": "Or built-in users (default in local Angular environment):", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "or-built-in-users-default-in-local-angular-environment", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-method-users", + "type": "concept", + "attrs": { + "title": "AUTHENTICATION_METHOD=users", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "authentication-method-users", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-jwt-secret-your-jwt-secret", + "type": "concept", + "attrs": { + "title": "JWT_SECRET=your-jwt-secret", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "jwt-secret-your-jwt-secret", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-disable-signup-false", + "type": "concept", + "attrs": { + "title": "DISABLE_SIGNUP=false", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "disable-signup-false", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-multi-tenancy-and-console-url", + "type": "concept", + "attrs": { + "title": "Multi-tenancy and console URL", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "multi-tenancy-and-console-url", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-encryption-set-before-storing-sensitive-provider-or-ssh-fields", + "type": "concept", + "attrs": { + "title": "Encryption (set before storing sensitive provider or SSH fields)", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "encryption-set-before-storing-sensitive-provider-or-ssh-fields", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe-optional", + "type": "concept", + "attrs": { + "title": "Stripe (optional)", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "stripe-optional", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-first-login", + "type": "concept", + "attrs": { + "title": "First Login", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "first-login", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-verify-the-stack", + "type": "concept", + "attrs": { + "title": "Verify the Stack", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "verify-the-stack", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-next-steps", + "type": "concept", + "attrs": { + "title": "Next Steps", + "docPath": "docs/decabill/getting-started.md", + "sectionAnchor": "next-steps", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-security-documentation", + "type": "concept", + "attrs": { + "title": "Security documentation", + "docPath": "docs/decabill/security/README.md", + "sectionAnchor": "security-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-configuration-reference", + "type": "concept", + "attrs": { + "title": "Configuration reference", + "docPath": "docs/decabill/security/README.md", + "sectionAnchor": "configuration-reference", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-accepted-risks-register", + "type": "concept", + "attrs": { + "title": "Accepted risks (register)", + "docPath": "docs/decabill/security/accepted-risks.md", + "sectionAnchor": "accepted-risks-register", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dr-001-provisioning-ssh-cloud-init-templates", + "type": "concept", + "attrs": { + "title": "DR-001 - Provisioning SSH (cloud-init templates)", + "docPath": "docs/decabill/security/accepted-risks.md", + "sectionAnchor": "dr-001-provisioning-ssh-cloud-init-templates", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dr-002-billing-multi-tenant-api-key-scope-static-api-key-tenant-id-unset", + "type": "concept", + "attrs": { + "title": "DR-002 - Billing multi-tenant API key scope (`STATIC_API_KEY_TENANT_ID` unset)", + "docPath": "docs/decabill/security/accepted-risks.md", + "sectionAnchor": "dr-002-billing-multi-tenant-api-key-scope-static-api-key-tenant-id-unset", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", + "type": "concept", + "attrs": { + "title": "DR-003 - Web frontends: CSP `unsafe-inline` / `unsafe-eval` (Monaco)", + "docPath": "docs/decabill/security/accepted-risks.md", + "sectionAnchor": "dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dr-004-backend-authentication-method-resolution", + "type": "concept", + "attrs": { + "title": "DR-004 - Backend authentication method resolution", + "docPath": "docs/decabill/security/accepted-risks.md", + "sectionAnchor": "dr-004-backend-authentication-method-resolution", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", + "type": "concept", + "attrs": { + "title": "DR-005 - CI / local Trivy: unfixed vulnerabilities not gated", + "docPath": "docs/decabill/security/accepted-risks.md", + "sectionAnchor": "dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-hardening-paths-if-an-acceptance-is-withdrawn", + "type": "concept", + "attrs": { + "title": "Hardening paths (if an acceptance is withdrawn)", + "docPath": "docs/decabill/security/accepted-risks.md", + "sectionAnchor": "hardening-paths-if-an-acceptance-is-withdrawn", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-ci-security-scanning-trivy", + "type": "concept", + "attrs": { + "title": "CI security scanning (Trivy)", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "ci-security-scanning-trivy", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-what-is-scanned", + "type": "concept", + "attrs": { + "title": "What is scanned", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "what-is-scanned", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-workflows", + "type": "concept", + "attrs": { + "title": "Workflows", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "workflows", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-severity-policy", + "type": "concept", + "attrs": { + "title": "Severity policy", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "severity-policy", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-viewing-results", + "type": "concept", + "attrs": { + "title": "Viewing results", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "viewing-results", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-triage-and-exceptions", + "type": "concept", + "attrs": { + "title": "Triage and exceptions", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "triage-and-exceptions", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-local-reproduction", + "type": "concept", + "attrs": { + "title": "Local reproduction", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "local-reproduction", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-relationship-to-sbom-and-dependency-track", + "type": "concept", + "attrs": { + "title": "Relationship to SBOM and Dependency Track", + "docPath": "docs/decabill/security/ci-security-scanning.md", + "sectionAnchor": "relationship-to-sbom-and-dependency-track", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", + "type": "concept", + "attrs": { + "title": "Compliance and standards (EU CRA and BSI IT-Grundschutz)", + "docPath": "docs/decabill/security/compliance-and-standards.md", + "sectionAnchor": "compliance-and-standards-eu-cra-and-bsi-it-grundschutz", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-eu-cyber-resilience-act-cra", + "type": "concept", + "attrs": { + "title": "EU Cyber Resilience Act (CRA)", + "docPath": "docs/decabill/security/compliance-and-standards.md", + "sectionAnchor": "eu-cyber-resilience-act-cra", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-bsi-it-grundschutz", + "type": "concept", + "attrs": { + "title": "BSI IT-Grundschutz", + "docPath": "docs/decabill/security/compliance-and-standards.md", + "sectionAnchor": "bsi-it-grundschutz", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-trust-boundaries-summary", + "type": "concept", + "attrs": { + "title": "Trust boundaries (summary)", + "docPath": "docs/decabill/security/compliance-and-standards.md", + "sectionAnchor": "trust-boundaries-summary", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-container-image-security", + "type": "concept", + "attrs": { + "title": "Container image security", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "container-image-security", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-published-images", + "type": "concept", + "attrs": { + "title": "Published images", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "published-images", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-runtime-users", + "type": "concept", + "attrs": { + "title": "Runtime users", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "runtime-users", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-api-image-decabill-billing-api", + "type": "concept", + "attrs": { + "title": "Billing API image (`decabill-billing-api`)", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "billing-api-image-decabill-billing-api", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-console-server-image-decabill-billing-console-server", + "type": "concept", + "attrs": { + "title": "Billing console server image (`decabill-billing-console-server`)", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "billing-console-server-image-decabill-billing-console-server", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-docs-server-image-decabill-docs-server", + "type": "concept", + "attrs": { + "title": "Docs server image (`decabill-docs-server`)", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "docs-server-image-decabill-docs-server", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-secrets-and-configuration", + "type": "concept", + "attrs": { + "title": "Secrets and configuration", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "secrets-and-configuration", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-image-scanning", + "type": "concept", + "attrs": { + "title": "Image scanning", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "image-scanning", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-coordinated-upgrades", + "type": "concept", + "attrs": { + "title": "Coordinated upgrades", + "docPath": "docs/decabill/security/container-images.md", + "sectionAnchor": "coordinated-upgrades", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-operational-hardening", + "type": "concept", + "attrs": { + "title": "Operational hardening", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "operational-hardening", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-container-images-docker", + "type": "concept", + "attrs": { + "title": "Container images (Docker)", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "container-images-docker", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-mode-backends", + "type": "concept", + "attrs": { + "title": "Authentication mode (backends)", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "authentication-mode-backends", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-manager-multi-tenancy", + "type": "concept", + "attrs": { + "title": "Billing manager multi-tenancy", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "billing-manager-multi-tenancy", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe-webhooks", + "type": "concept", + "attrs": { + "title": "Stripe webhooks", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "stripe-webhooks", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-logging-and-correlation", + "type": "concept", + "attrs": { + "title": "Logging and correlation", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "logging-and-correlation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-frontend-runtime-configuration-get-config", + "type": "concept", + "attrs": { + "title": "Frontend runtime configuration (`GET /config`)", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "frontend-runtime-configuration-get-config", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-content-security-policy-frontend-express", + "type": "concept", + "attrs": { + "title": "Content Security Policy (frontend Express)", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "content-security-policy-frontend-express", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-websocket-cors-billing-manager", + "type": "concept", + "attrs": { + "title": "WebSocket CORS (billing manager)", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "websocket-cors-billing-manager", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-origin-allowlist-unsafe-http-methods", + "type": "concept", + "attrs": { + "title": "Origin allowlist (unsafe HTTP methods)", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "origin-allowlist-unsafe-http-methods", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-provisioning-ssh", + "type": "concept", + "attrs": { + "title": "Provisioning SSH", + "docPath": "docs/decabill/security/operational-hardening.md", + "sectionAnchor": "provisioning-ssh", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-vulnerability-reporting-and-artifacts", + "type": "concept", + "attrs": { + "title": "Vulnerability reporting and artifacts", + "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "vulnerability-reporting-and-artifacts", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-supported-versions-and-security-updates", + "type": "concept", + "attrs": { + "title": "Supported versions and security updates", + "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "supported-versions-and-security-updates", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-our-response-commitment", + "type": "concept", + "attrs": { + "title": "Our response commitment", + "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "our-response-commitment", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-reporting-a-vulnerability", + "type": "concept", + "attrs": { + "title": "Reporting a vulnerability", + "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "reporting-a-vulnerability", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-continuous-scanning-ci", + "type": "concept", + "attrs": { + "title": "Continuous scanning (CI)", + "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "continuous-scanning-ci", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-software-bill-of-materials-sbom", + "type": "concept", + "attrs": { + "title": "Software Bill of Materials (SBOM)", + "docPath": "docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "sectionAnchor": "software-bill-of-materials-sbom", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-troubleshooting-documentation", + "type": "concept", + "attrs": { + "title": "Troubleshooting Documentation", + "docPath": "docs/decabill/troubleshooting/README.md", + "sectionAnchor": "troubleshooting-documentation", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-troubleshooting-guides", + "type": "concept", + "attrs": { + "title": "Troubleshooting Guides", + "docPath": "docs/decabill/troubleshooting/README.md", + "sectionAnchor": "troubleshooting-guides", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-quick-troubleshooting", + "type": "concept", + "attrs": { + "title": "Quick Troubleshooting", + "docPath": "docs/decabill/troubleshooting/README.md", + "sectionAnchor": "quick-troubleshooting", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-getting-help", + "type": "concept", + "attrs": { + "title": "Getting Help", + "docPath": "docs/decabill/troubleshooting/README.md", + "sectionAnchor": "getting-help", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-common-issues", + "type": "concept", + "attrs": { + "title": "Common Issues", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "common-issues", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-connection-issues", + "type": "concept", + "attrs": { + "title": "Connection Issues", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "connection-issues", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-authentication-problems", + "type": "concept", + "attrs": { + "title": "Authentication Problems", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "authentication-problems", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-stripe-and-payment-issues", + "type": "concept", + "attrs": { + "title": "Stripe and Payment Issues", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "stripe-and-payment-issues", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-background-jobs-and-redis", + "type": "concept", + "attrs": { + "title": "Background Jobs and Redis", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "background-jobs-and-redis", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-database-issues", + "type": "concept", + "attrs": { + "title": "Database Issues", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "database-issues", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-cors-and-csp-issues", + "type": "concept", + "attrs": { + "title": "CORS and CSP Issues", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "cors-and-csp-issues", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-provisioning-issues", + "type": "concept", + "attrs": { + "title": "Provisioning Issues", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "provisioning-issues", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-rate-limiting-issues", + "type": "concept", + "attrs": { + "title": "Rate Limiting Issues", + "docPath": "docs/decabill/troubleshooting/common-issues.md", + "sectionAnchor": "rate-limiting-issues", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-debugging-guide", + "type": "concept", + "attrs": { + "title": "Debugging Guide", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "debugging-guide", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-billing-manager-api-local", + "type": "concept", + "attrs": { + "title": "Billing manager API (local)", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "billing-manager-api-local", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-bull-board-and-queue-debugging", + "type": "concept", + "attrs": { + "title": "Bull Board and Queue Debugging", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "bull-board-and-queue-debugging", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-debugging-tools", + "type": "concept", + "attrs": { + "title": "Debugging Tools", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "debugging-tools", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-from-host-compose-default-port", + "type": "concept", + "attrs": { + "title": "From host (compose default port)", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "from-host-compose-default-port", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-inside-compose-network", + "type": "concept", + "attrs": { + "title": "Inside compose network", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "inside-compose-network", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-example-tenant-scoped-queries", + "type": "concept", + "attrs": { + "title": "Example tenant-scoped queries", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "example-tenant-scoped-queries", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-api-testing", + "type": "concept", + "attrs": { + "title": "API Testing", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "api-testing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-websocket-testing", + "type": "concept", + "attrs": { + "title": "WebSocket Testing", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "websocket-testing", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-common-debugging-scenarios", + "type": "concept", + "attrs": { + "title": "Common Debugging Scenarios", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "common-debugging-scenarios", + "domain": "decabill" + } + }, + { + "id": "concept:decabill-performance-debugging", + "type": "concept", + "attrs": { + "title": "Performance Debugging", + "docPath": "docs/decabill/troubleshooting/debugging-guide.md", + "sectionAnchor": "performance-debugging", + "domain": "decabill" + } + }, + { + "id": "domain:shared", + "type": "domain", + "attrs": { + "name": "shared", + "kind": "domain", + "label": "domain", + "source": "path" + } + }, + { + "id": "domain:forepath", + "type": "domain", + "attrs": { + "name": "forepath", + "kind": "domain", + "label": "domain", + "source": "tag" + } + }, + { + "id": "context:frontend", + "type": "context", + "attrs": { + "name": "frontend", + "kind": "context", + "label": "bounded context", + "source": "tag" + } + }, + { + "id": "feature-group:data-access", + "type": "feature-group", + "attrs": { + "name": "data-access", + "kind": "feature-group", + "label": "feature group", + "source": "tag" + } + }, + { + "id": "context:backend", + "type": "context", + "attrs": { + "name": "backend", + "kind": "context", + "label": "bounded context", + "source": "tag" + } + }, + { + "id": "feature-group:feature", + "type": "feature-group", + "attrs": { + "name": "feature", + "kind": "feature-group", + "label": "feature group", + "source": "tag" + } + }, + { + "id": "domain:decabill", + "type": "domain", + "attrs": { + "name": "decabill", + "kind": "domain", + "label": "domain", + "source": "tag" + } + }, + { + "id": "feature-group:util", + "type": "feature-group", + "attrs": { + "name": "util", + "kind": "feature-group", + "label": "feature group", + "source": "tag" + } + }, + { + "id": "domain:agenstra", + "type": "domain", + "attrs": { + "name": "agenstra", + "kind": "domain", + "label": "domain", + "source": "tag" + } + }, + { + "id": "domain:identity", + "type": "domain", + "attrs": { + "name": "identity", + "kind": "domain", + "label": "domain", + "source": "tag" + } + }, + { + "id": "context:shared", + "type": "context", + "attrs": { + "name": "shared", + "kind": "context", + "label": "bounded context", + "source": "tag" + } + }, + { + "id": "feature-group:app", + "type": "feature-group", + "attrs": { + "name": "app", + "kind": "feature-group", + "label": "feature group", + "source": "tag" + } + }, + { + "id": "context:native", + "type": "context", + "attrs": { + "name": "native", + "kind": "context", + "label": "bounded context", + "source": "tag" + } + } + ], + "edges": [ + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "project:shared-frontend-util-provisioning-geography", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-util-runtime-config-server", + "to": "project:shared-shared-util-network-address", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "project:agenstra-backend-feature-agent-manager", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "project:shared-backend-util-dynamic-provider-registry", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "project:shared-backend-util-provisioning-geography", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "project:shared-backend-util-redis-cache", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "project:shared-backend-util-http-context", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "project:shared-backend-util-queue", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "project:shared-shared-util-network-address", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "project:decabill-frontend-data-access-billing-console", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "project:shared-frontend-feature-notifications", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "project:shared-frontend-util-provisioning-geography", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-data-access-communication", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:identity-backend-util-auth", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:identity-backend-feature-auth", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-util-crypto", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-util-email", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-util-dynamic-provider-registry", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-util-provisioning-geography", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-util-redis-cache", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-feature-notifications", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-util-http-context", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-backend-util-queue", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "project:shared-shared-util-network-address", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "project:agenstra-frontend-data-access-agent-console", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "project:shared-frontend-feature-notifications", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "project:shared-frontend-data-access-notifications", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "project:shared-backend-util-dynamic-provider-registry", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-landingpage", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-landingpage", + "to": "project:shared-frontend-util-meta", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-landingpage", + "to": "project:agenstra-frontend-data-access-portal", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-feature-landingpage", + "to": "project:shared-frontend-feature-landingpage", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-landingpage", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-landingpage", + "to": "project:shared-frontend-util-meta", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-landingpage", + "to": "project:decabill-frontend-data-access-portal", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-feature-landingpage", + "to": "project:shared-frontend-feature-landingpage", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-feature-landingpage", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-feature-landingpage", + "to": "project:shared-frontend-util-meta", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-feature-landingpage", + "to": "project:forepath-frontend-data-access-project-estimator", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-feature-landingpage", + "to": "project:shared-frontend-feature-landingpage", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-notifications", + "to": "project:shared-frontend-data-access-notifications", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-notifications", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-data-access-portal", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-data-access-portal", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "project:shared-backend-util-email", + "type": "depends_on" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "project:shared-backend-util-crypto", + "type": "depends_on" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "project:shared-backend-util-webhook", + "type": "depends_on" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "project:shared-backend-util-queue", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-landingpage", + "to": "project:shared-frontend-data-access-communication", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-landingpage", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-landingpage", + "to": "project:shared-frontend-util-meta", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-util-cookie-consent", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-util-express-server", + "to": "project:shared-frontend-util-runtime-config-server", + "type": "depends_on" + }, + { + "from": "project:shared-backend-feature-monitoring", + "to": "project:identity-backend-util-auth", + "type": "depends_on" + }, + { + "from": "project:identity-frontend-feature-auth", + "to": "project:identity-frontend-util-auth", + "type": "depends_on" + }, + { + "from": "project:identity-frontend-feature-auth", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-docs", + "to": "project:shared-frontend-util-docs-parser", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-docs", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-feature-docs", + "to": "project:shared-frontend-util-meta", + "type": "depends_on" + }, + { + "from": "project:identity-frontend-util-auth", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-backend-util-webhook", + "to": "project:shared-shared-util-network-address", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "project:shared-platform-authentication", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "project:agenstra-backend-feature-agent-controller", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "project:agenstra-backend-agent-manager", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "project:shared-backend-util-http-context", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "project:shared-backend-util-webhook", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "project:shared-backend-util-dynamic-provider-registry", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "project:shared-platform-authentication", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "project:decabill-backend-billing-manager", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "project:decabill-frontend-billing-console", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:shared-platform-authentication", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:decabill-backend-billing-manager", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:shared-frontend-util-cookie-consent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:decabill-frontend-data-access-billing-console", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:shared-frontend-data-access-notifications", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:decabill-frontend-feature-billing-console", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "project:shared-platform-authentication", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "project:decabill-backend-billing-manager", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "project:decabill-frontend-billing-console", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "project:shared-platform-authentication", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "project:decabill-backend-feature-billing-manager", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "project:shared-backend-util-http-context", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "project:shared-backend-util-webhook", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "project:shared-backend-util-dynamic-provider-registry", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:shared-platform-authentication", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:agenstra-backend-agent-controller", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:agenstra-frontend-data-access-agent-console", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:shared-frontend-data-access-notifications", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:agenstra-frontend-feature-agent-console", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "project:shared-platform-authentication", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "project:agenstra-backend-feature-agent-manager", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "project:shared-backend-util-http-context", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "project:shared-backend-util-dynamic-provider-registry", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "project:forepath-backend-feature-communication-manager", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "project:identity-backend-util-auth", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "project:shared-backend-feature-monitoring", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "project:shared-backend-util-http-context", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "project:shared-frontend-util-cookie-consent", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "project:decabill-frontend-data-access-billing-console", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "project:agenstra-frontend-feature-landingpage", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:agenstra-native-agent-console", + "to": "project:agenstra-frontend-agent-console", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "project:shared-frontend-util-cookie-consent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "project:decabill-frontend-data-access-billing-console", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "project:decabill-frontend-feature-landingpage", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "project:shared-frontend-util-cookie-consent", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "project:forepath-frontend-feature-landingpage", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "project:shared-frontend-docs", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "project:shared-frontend-docs", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "project:shared-frontend-util-cookie-consent", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "project:shared-frontend-util-configuration", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "project:shared-frontend-feature-docs", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "project:shared-frontend-util-express-server", + "type": "depends_on" + }, + { + "from": "project:shared-mcp-devkit", + "to": "project:code", + "type": "depends_on" + }, + { + "from": "project:shared-mcp-proxy", + "to": "project:shared-mcp-devkit", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@bull-board/api", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@bull-board/express", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@bull-board/nestjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@bull-board/ui", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/bullmq", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/common", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/core", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/jwt", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/platform-express", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/platform-socket.io", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/throttler", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/typeorm", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:@nestjs/websockets", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:axios", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:bcrypt", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:bullmq", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:class-transformer", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:class-validator", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:dockerode", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:handlebars", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:ioredis", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:keycloak-connect", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:nest-keycloak-connect", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:nodemailer", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:pg", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:reflect-metadata", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:socket.io", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:ssh2", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:sshpk", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:turndown", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:turndown-plugin-gfm", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:typeorm", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "package:uuid", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@milkdown/crepe", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@milkdown/plugin-listener", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@ngrx/effects", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:@ngrx/store", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:apexcharts", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:i18n-iso-countries", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:keycloak-angular", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:keycloak-js", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:monaco-editor", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:ng-apexcharts", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:ngx-monaco-editor-v2", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@milkdown/crepe", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@milkdown/plugin-listener", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@ngrx/effects", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:@ngrx/store", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:apexcharts", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:i18n-iso-countries", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:keycloak-angular", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:keycloak-js", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:monaco-editor", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:ng-apexcharts", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:ngx-monaco-editor-v2", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@milkdown/crepe", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@milkdown/plugin-listener", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@ngrx/effects", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:@ngrx/store", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:apexcharts", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:i18n-iso-countries", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:keycloak-angular", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:keycloak-js", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:monaco-editor", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:ng-apexcharts", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:ngx-monaco-editor-v2", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@bull-board/api", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@bull-board/express", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@bull-board/nestjs", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@bull-board/ui", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/bullmq", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/common", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/core", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/jwt", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/platform-express", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/platform-socket.io", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/throttler", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/typeorm", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:@nestjs/websockets", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:archiver", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:axios", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:bcrypt", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:bullmq", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:class-transformer", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:class-validator", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:dockerode", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:handlebars", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:i18n-iso-countries", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:iconv-lite", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:ioredis", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:keycloak-connect", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:nest-keycloak-connect", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:nodemailer", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:pdf-lib", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:pg", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:playwright", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:reflect-metadata", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:socket.io", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:ssh2", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:sshpk", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:stripe", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:typeorm", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:uuid", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "package:xmlbuilder2", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@milkdown/crepe", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@milkdown/plugin-listener", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@ngrx/effects", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@ngrx/store", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:@xterm/xterm", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:apexcharts", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:keycloak-angular", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:keycloak-js", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:marked", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:monaco-editor", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:ng-apexcharts", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:ngx-monaco-editor-v2", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@bull-board/api", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@bull-board/express", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@bull-board/nestjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@bull-board/ui", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/bullmq", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/common", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/core", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/jwt", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/platform-express", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/platform-socket.io", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/throttler", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/typeorm", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:@nestjs/websockets", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:axios", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:bcrypt", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:bullmq", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:class-transformer", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:class-validator", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:dockerode", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:keycloak-connect", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:nest-keycloak-connect", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:nodemailer", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:pg", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:reflect-metadata", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:socket.io", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:ssh2", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:sshpk", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:typeorm", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "package:uuid", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:@nestjs/common", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:@nestjs/core", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:@nestjs/platform-express", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:@nestjs/platform-socket.io", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:@nestjs/throttler", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:@nestjs/websockets", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:axios", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:bcrypt", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:class-transformer", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:class-validator", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:nest-cloudflare-turnstile", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:nest-keycloak-connect", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:reflect-metadata", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:socket.io", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "package:typeorm", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@ngrx/effects", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:@ngrx/store", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:keycloak-angular", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:keycloak-js", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:ngx-turnstile", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:agenstra-native-agent-console", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:agenstra-native-agent-console", + "to": "package:tslib", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@ngrx/effects", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:@ngrx/store", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:keycloak-angular", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:keycloak-js", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:ngx-turnstile", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:socket.io-client", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@mlc-ai/web-llm", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@ngrx/effects", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:@ngrx/store", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:ngx-turnstile", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-landingpage", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:marked", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:mermaid", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:marked", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:mermaid", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/animations", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/common", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/compiler", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/core", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/forms", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/platform-browser", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/platform-server", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/router", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:@angular/ssr", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:cookieconsent", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:express", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:marked", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:mermaid", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:ngx-cookieconsent", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:rxjs", + "type": "depends_on" + }, + { + "from": "project:shared-frontend-docs", + "to": "package:zone.js", + "type": "depends_on" + }, + { + "from": "project:shared-mcp-devkit", + "to": "package:@modelcontextprotocol/sdk", + "type": "depends_on" + }, + { + "from": "project:shared-mcp-devkit", + "to": "package:zod", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-controller", + "to": "tool:ci", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-billing-console", + "to": "tool:ci", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-billing-console", + "to": "tool:ci", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-billing-console", + "to": "tool:ci", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:decabill-backend-billing-manager", + "to": "tool:ci", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-agent-console", + "to": "tool:ci", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-backend-agent-manager", + "to": "tool:ci", + "type": "depends_on" + }, + { + "from": "project:forepath-backend-communication", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-landingpage", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-native-agent-console", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-landingpage", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:agenstra-frontend-docs", + "to": "tool:docs", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:decabill-frontend-docs", + "to": "tool:docs", + "type": "depends_on" + }, + { + "from": "project:shared-mcp-devkit", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:shared-mcp-proxy", + "to": "project:sbom", + "type": "depends_on" + }, + { + "from": "project:forepath-frontend-data-access-project-estimator", + "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/README.md", + "type": "contains" + }, + { + "from": "project:forepath-frontend-data-access-project-estimator", + "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-device-capability.service.ts", + "type": "contains" + }, + { + "from": "project:forepath-frontend-data-access-project-estimator", + "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-estimate-parser.service.ts", + "type": "contains" + }, + { + "from": "project:forepath-frontend-data-access-project-estimator", + "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-llm-memory-profile.service.ts", + "type": "contains" + }, + { + "from": "project:forepath-frontend-data-access-project-estimator", + "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-local-llm.service.ts", + "type": "contains" + }, + { + "from": "project:forepath-frontend-data-access-project-estimator", + "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/services/forepath-pricing-calculator.service.ts", + "type": "contains" + }, + { + "from": "project:forepath-frontend-data-access-project-estimator", + "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/src/lib/state/project-estimator", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/README.md", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/communication.module.ts", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/dto/contact-request-response.dto.ts", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/dto/create-contact-request.dto.ts", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/services/chatwoot-api.service.ts", + "type": "contains" + }, + { + "from": "project:forepath-backend-feature-communication-manager", + "to": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/services/contact-request.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/README.md", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-billing.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-customer-profiles.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-projects.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-promotions.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/availability.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/backorders.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/cloud-init-configs.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/customer-profile.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/invoices.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-milestones.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-tickets.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-time-entries.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/projects.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/promotions.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/public-withdrawal.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-plans.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-types.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/subscription-items.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/subscriptions.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/usage.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-billing", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-customer-profiles", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-datev-exports", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-invoice-manager", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-promotions", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-subscriptions", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/availability", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/backorders", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/billing-capabilities", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/billing-dashboard-socket", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/cloud-init-configs", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/customer-profile", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/invoices", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-board-socket", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-milestones", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-tickets", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-time-entries", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/projects", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/promotions", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/public-withdrawal", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-plans", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-types", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/subscription-server-info", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-billing-console", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/subscriptions", + "type": "contains" + }, + { + "from": "project:shared-backend-util-dynamic-provider-registry", + "to": "file:libs/domains/shared/backend/util-dynamic-provider-registry/README.md", + "type": "contains" + }, + { + "from": "project:shared-backend-util-dynamic-provider-registry", + "to": "file:libs/domains/shared/backend/util-dynamic-provider-registry/src/lib/dynamic-provider-loader.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/authentication.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/clients.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/notifications-state.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/overview.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-authentication.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-files.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/agents.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/clients.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/context-import-admin.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/deployments.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/env.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/files.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/filter-rules.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/knowledge.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/statistics.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/tickets.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/vcs.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/workspace-config.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/agents", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/client-agent-autonomy", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/clients", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/context-import", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/deployments", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/env", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/files", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/filter-rules", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/knowledge", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/knowledge-board-socket", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/notifications", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/sockets", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/statistics", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/stats", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/ticket-automation", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/tickets", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/tickets-board-socket", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/vcs", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-agent-console", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/workspace-config", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-runtime-config-server", + "to": "file:libs/domains/shared/frontend/util-runtime-config-server/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/agent-console-status-realtime.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/authentication.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/autonomous-ticket-decision-tree.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/filter-rules-sync.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/knowledge-relations-matrix.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/lifecycle.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/overview.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-architecture.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-process.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-auto-enrichment-pgvector.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-autonomous-ticket.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-chat-enhancement.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-deployment-proxy.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-environment.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-files.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-statistics.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-ticket-workspace-migrate.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-vcs.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ticket-specification-bundle.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-workspace-configuration-overrides.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-forward.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-terminal.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/server-provisioning-sequence.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/statistics-architecture.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/ticket-board-realtime.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy-directory.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-statistics.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-agent-automation-proxy.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-configuration-overrides.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-deployments.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-vcs.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/knowledge-tree.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/ticket-automation.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/agent-console-status.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/client-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/atlassian-site-connection-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/create-atlassian-site-connection.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/create-external-import-config.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/external-import-config-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/update-atlassian-site-connection.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/context-import/update-external-import-config.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/create-client-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/create-client.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/create-filter-rule.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/filter-rule-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/filter-rules/update-filter-rule.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/create-knowledge-node.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/create-knowledge-relation.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/knowledge-page-activity-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/knowledge-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/reorder-knowledge-node.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/knowledge/update-knowledge-node.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/provision-server.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/provisioned-server-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-chat-io.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-entity-event.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-filter-drop.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-filter-flag.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/statistics/statistics-summary.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/client-agent-autonomy.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-run-chat-event.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/ticket-automation-run-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/ticket-automation/update-ticket-automation.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/apply-generated-body.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/create-ticket-comment.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/create-ticket.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/migrate-ticket.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/start-body-generation-session.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-activity-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-comment-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/ticket-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/tickets/update-ticket.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/dto/update-client.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule-client.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule-sync-target.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/agent-console-regex-filter-rule.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/atlassian-site-connection.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/client-agent-autonomy.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/external-import-config.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/external-import-sync-marker.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-node-embedding.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-node.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-page-activity.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/knowledge-relation.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/provisioning-reference.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-agent.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-filter-drop.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-filter-flag.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-chat-io.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-client-user.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-client.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-entity-event.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-provisioning-reference.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/statistics-user.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-activity.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-lease.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-run-step.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation-run.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-automation.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-body-generation-session.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket-comment.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/ticket.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/entities/user-environment-read-state.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/agenstra-notifications.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/clients.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/context-import.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/filter-rules.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-email-bridge.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-notification-bridge.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/identity-statistics-bridge.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/modules/statistics.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/import/atlassian-external-import.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/provisioning/digital-ocean.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/providers/provisioning/hetzner.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/clients.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/provisioning-references.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/statistics.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/ticket-automation-runs-status.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/repositories/user-environment-read-state.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-console-status-realtime.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-console-status.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/agent-manager-filter-rules-client.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/atlassian-site-connection.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/auto-context-resolver.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/autonomous-run-orchestrator.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-autonomy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-deployments-proxy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-environment-variables-proxy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-file-system-proxy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-messages-proxy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-proxy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-agent-vcs-proxy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-automation-chat-realtime.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/client-workspace-configuration-overrides-proxy.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/clients.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/context-import-orchestrator.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/embeddings/knowledge-embedding-index.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/embeddings/local-embedding.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/external-import-config.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/external-import-sync-marker.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/filter-rules-sync.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/filter-rules.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/knowledge-board-realtime.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/knowledge-tree.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/provisioning.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/remote-agents-session.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-agent-sync.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-client-sync.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-query.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics-user-sync.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/statistics.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-automation-chat-sync.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-automation.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/ticket-board-realtime.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/services/tickets.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "file:libs/domains/decabill/frontend/feature-billing-console/README.md", + "type": "contains" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/billing-admin.guard.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/datev-export-enabled.guard.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/guards/public-withdrawal-access.guard.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-feature-billing-console", + "to": "file:libs/domains/decabill/frontend/feature-billing-console/src/lib/theme.service.ts", + "type": "contains" + }, + { + "from": "project:shared-frontend-data-access-communication", + "to": "file:libs/domains/shared/frontend/data-access-communication/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-data-access-communication", + "to": "file:libs/domains/shared/frontend/data-access-communication/src/lib/services/contact-request.service.ts", + "type": "contains" + }, + { + "from": "project:shared-frontend-data-access-communication", + "to": "file:libs/domains/shared/frontend/data-access-communication/src/lib/state/contact-request", + "type": "contains" + }, + { + "from": "project:shared-frontend-data-access-notifications", + "to": "file:libs/domains/shared/frontend/data-access-notifications/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-data-access-notifications", + "to": "file:libs/domains/shared/frontend/data-access-notifications/src/lib/services/webhook-endpoints.service.ts", + "type": "contains" + }, + { + "from": "project:shared-frontend-data-access-notifications", + "to": "file:libs/domains/shared/frontend/data-access-notifications/src/lib/state/admin-webhooks", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/README.md", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/auth-flow.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/config-validation-flow.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-location-selection.md", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-server-type-selection.md", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/manual-invoice-administration.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/overview.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/plan-tax-category.md", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-bill-time.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-board-realtime.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/provisioning-architecture.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-backorder-retry.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoice-payment.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoicing.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-open-positions-billing-day.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-item-update.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-order.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/subscription-lifecycle.mmd", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/billing.module.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-auto-billing.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscription-items.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-billing.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-customer-profile.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/admin-datev-export.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/availability-check.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/availability-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-cancel.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/backorder-retry.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/cancel-subscription.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/cloud-init-config-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/confirm-public-withdrawal.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-cloud-init-config.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-invoice.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-service-plan.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-service-type.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-subscription.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/create-usage-record.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/customer-profile-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/customer-profile.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/invoice-detail-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/invoice-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/manual-invoice.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/order-provisioning-option.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/pricing-preview.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/promotion.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/provider-detail.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/provider-location.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/public-service-plan-offering.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/public-withdrawal-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/request-public-withdrawal.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/resume-subscription.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/server-info-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/server-type.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-plan-ordering-highlight.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-plan-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/service-type-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/subscription-item-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/subscription-response.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-cloud-init-config.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-service-plan.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/update-service-type.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/usage-summary.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/verify-public-withdrawal-code.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/withdraw-subscription.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/dto/withdrawal-policy.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/availability-snapshot.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/backorder.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/billing-audit-log.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/cloud-init-config.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/customer-profile.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/datev-debtor-account.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/datev-export.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-credit-document.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-line-item.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-number-sequence.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-promotion-application.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice-void-document.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/invoice.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/open-position.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-attempt.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-refund.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/payment-webhook-event.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/promotion-redemption.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/promotion.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/provider-price-snapshot.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/public-withdrawal-request.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/reserved-hostname.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/service-plan.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/service-type.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/subscription-item.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/subscription.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/entities/usage-record.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/gateways/billing-status.gateway.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/guards/datev-export-enabled.guard.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/guards/tenant-user.guard.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/modules/billing-identity-email-bridge.module.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/payment-processors/processors/stripe-payment.processor.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-milestones.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-tickets.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-time-entries.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-milestone.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-ticket.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project-time-entry.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/dto/project.dto.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-milestone.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket-activity.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket-comment.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-ticket.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project-time-entry.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/entities/project.entity.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/gateways/project-board.gateway.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-milestones.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-ticket-activities.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-ticket-comments.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-tickets.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/project-time-entries.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/repositories/projects.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-billing.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-board-realtime.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-board-summary.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-milestones.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-tickets.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-entries.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report-pdf-template.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report-pdf.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/project-time-report.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/projects-admin.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/services/projects.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/availability-snapshots.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/backorders.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/billing-audit-logs.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/cloud-init-configs.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/customer-profiles.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/datev-debtor-accounts.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/datev-export.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-credit-documents.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-line-items.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-number-sequences.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-promotion-applications.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoice-void-documents.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/invoices.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/open-positions.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-attempts.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-refunds.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/payment-webhook-events.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/promotion-redemptions.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/promotions.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/provider-price-snapshots.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/public-withdrawal-requests.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/reserved-hostnames.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/service-plans.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/service-types.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/subscription-items.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/subscriptions.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/usage-records.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/repositories/users-billing-day.repository.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/admin-bill-now.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/auto-billing.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/availability.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/backorder-retry.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/backorder.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-admin.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-audit-log.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-issuer-config.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-schedule.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-statistics-query.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/billing-tenant.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cancellation-policy.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cloud-init-config.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/cloudflare-dns.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/customer-profiles-admin.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/customer-profiles.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-booking-mapper.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-debtor-account.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-debtor-mapper.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-document-archive.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-admin.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-config.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export-storage.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-export.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/datev-extf-csv.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/digitalocean-provisioning.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/e-invoice-embed.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/e-invoice-xml.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/hetzner-provisioning.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/hostname-reservation.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-admin.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-auto-payment.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-creation.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-issuance.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-overdue.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf-html-renderer.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf-template.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice-pdf.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/invoice.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/manual-invoice.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/open-position-invoice.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/payment-orchestration.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/pricing.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-admin.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-application.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-redemption.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/promotion-validation.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-locations.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-pricing.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-registry.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provider-server-types.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/provisioning.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/public-withdrawal.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/ssh-executor.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-billing.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-charge-period.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-expiration.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-item-server.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-item-update.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-provisioning.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-renewal-reminder.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-teardown.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription-withdrawal.job-handler.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/subscription.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/tax-calculation.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/tax-rate-config.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/usage.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/withdrawal-policy.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/services/withdrawal-refund.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/utils/cloud-init/agent-controller.utils.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/sequence-chat-automation-tickets-handoff.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board-search-and-status.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board.md", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-prototype-chat.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/src/lib/guards/config-editor.guard.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/src/lib/guards/tickets-require-active-client.guard.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-agent-console", + "to": "file:libs/domains/agenstra/frontend/feature-agent-console/src/lib/theme.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/agent-events.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/architecture-vnc.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/deployment-architecture.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/lifecycle.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/overview.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/regex-filters.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-deployment.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-automation-verify.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-environment.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-files.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-vcs.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-vnc-setup.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-auth-logs.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-chat.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-container-stats.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-file-update.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-terminal.mmd", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-deployments.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-environment-variables.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-files.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-vcs.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-verification.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/agent-models-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/agent-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/commit.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/config-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-agent-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-agent.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-branch.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-environment-variable.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-file.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/create-regex-filter-rule.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/deployment-configuration.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/deployment-run.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/environment-variable-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/file-content.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/file-node.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-branch.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-diff.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/git-status.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/latest-agent-message.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/move-file.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/prepare-clean-workspace.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/push-options.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/rebase.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/regex-filter-rule-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/resolve-conflict.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/run-verifier-commands.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/stage-files.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/unstage-files.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-agent.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-environment-variable.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/update-regex-filter-rule.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/upsert-workspace-configuration-override.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/workspace-configuration-setting-response.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/dto/write-file.dto.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-environment-variable.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-message-event.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent-message.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/agent.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/deployment-configuration.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/deployment-run.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/regex-filter-rule.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/entities/workspace-configuration-override.entity.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/modules/agents.module.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/cursor-agent.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/openclaw-agent.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/agents/opencode-agent.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/pipelines/github.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/pipelines/gitlab.provider.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-environment-variables.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-message-events.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agent-messages.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/agents.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/deployment-configurations.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/deployment-runs.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/regex-filter-rules.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/repositories/workspace-configuration-overrides.repository.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-environment-variables.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-file-system.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-git-state-broadcast.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-message-events.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-messages.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agent-session-hydration.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-filters.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-vcs.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents-verification.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/agents.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/config.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/deployments.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/docker.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/prompt-context-composer.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/regex-filter-rules-cache.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/regex-filter-rules-evaluate.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-backend-feature-agent-manager", + "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/services/workspace-configuration-overrides.service.ts", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-loading-indicator", + "to": "file:libs/domains/shared/frontend/util-loading-indicator/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-loading-indicator", + "to": "file:libs/domains/shared/frontend/util-loading-indicator/src/lib/standalone-loading.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-landingpage", + "to": "file:libs/domains/agenstra/frontend/feature-landingpage/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-feature-landingpage", + "to": "file:libs/domains/agenstra/frontend/feature-landingpage/src/lib/theme.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-feature-landingpage", + "to": "file:libs/domains/decabill/frontend/feature-landingpage/README.md", + "type": "contains" + }, + { + "from": "project:decabill-frontend-feature-landingpage", + "to": "file:libs/domains/decabill/frontend/feature-landingpage/src/lib/theme.service.ts", + "type": "contains" + }, + { + "from": "project:forepath-frontend-feature-landingpage", + "to": "file:libs/domains/forepath/frontend/feature-landingpage/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-feature-notifications", + "to": "file:libs/domains/shared/frontend/feature-notifications/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-portal", + "to": "file:libs/domains/agenstra/frontend/data-access-portal/README.md", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-portal", + "to": "file:libs/domains/agenstra/frontend/data-access-portal/src/lib/services/public-service-plan-offerings.service.ts", + "type": "contains" + }, + { + "from": "project:agenstra-frontend-data-access-portal", + "to": "file:libs/domains/agenstra/frontend/data-access-portal/src/lib/state/service-plans", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-portal", + "to": "file:libs/domains/decabill/frontend/data-access-portal/README.md", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-portal", + "to": "file:libs/domains/decabill/frontend/data-access-portal/src/lib/services/public-service-plan-offerings.service.ts", + "type": "contains" + }, + { + "from": "project:decabill-frontend-data-access-portal", + "to": "file:libs/domains/decabill/frontend/data-access-portal/src/lib/state/service-plans", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/README.md", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/controllers/webhook-endpoints.controller.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/dto/webhook-endpoint.dto.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/entities/email-delivery.entity.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/entities/webhook-delivery.entity.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/entities/webhook-endpoint.entity.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/notifications.module.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/repositories/email-deliveries.repository.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/repositories/webhook-deliveries.repository.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/repositories/webhook-endpoints.repository.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/email-delivery.service.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/email-notification-dispatcher.service.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/notification-dispatcher.service.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-delivery-retention.service.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-delivery.service.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/services/webhook-endpoint.service.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-util-network-address", + "to": "file:libs/domains/shared/backend/util-network-address/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-feature-landingpage", + "to": "file:libs/domains/shared/frontend/feature-landingpage/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-cookie-consent", + "to": "file:libs/domains/shared/frontend/util-cookie-consent/README.md", + "type": "contains" + }, + { + "from": "project:identity-frontend-data-access-auth", + "to": "file:libs/domains/identity/frontend/data-access-auth/README.md", + "type": "contains" + }, + { + "from": "project:identity-frontend-data-access-auth", + "to": "file:libs/domains/identity/frontend/data-access-auth/src/lib/services/auth.service.ts", + "type": "contains" + }, + { + "from": "project:identity-frontend-data-access-auth", + "to": "file:libs/domains/identity/frontend/data-access-auth/src/lib/state/authentication", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-configuration", + "to": "file:libs/domains/shared/frontend/util-configuration/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-configuration", + "to": "file:libs/domains/shared/frontend/util-configuration/src/lib/locale.service.ts", + "type": "contains" + }, + { + "from": "project:shared-shared-util-network-address", + "to": "file:libs/domains/shared/shared/util-network-address/README.md", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-monitoring", + "to": "file:libs/domains/shared/backend/feature-monitoring/README.md", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-monitoring", + "to": "file:libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-feature-monitoring", + "to": "file:libs/domains/shared/backend/feature-monitoring/src/lib/monitoring.module.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-util-http-context", + "to": "file:libs/domains/shared/backend/util-http-context/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-docs-parser", + "to": "file:libs/domains/shared/frontend/util-docs-parser/README.md", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-docs-parser", + "to": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/cross-reference-resolver.service.ts", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-docs-parser", + "to": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/markdown-parser.service.ts", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-docs-parser", + "to": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/navigation-builder.service.ts", + "type": "contains" + }, + { + "from": "project:shared-frontend-util-docs-parser", + "to": "file:libs/domains/shared/frontend/util-docs-parser/src/lib/services/search-index-builder.service.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-util-redis-cache", + "to": "file:libs/domains/shared/backend/util-redis-cache/README.md", + "type": "contains" + }, + { + "from": "project:shared-backend-util-redis-cache", + "to": "file:libs/domains/shared/backend/util-redis-cache/src/lib/redis-cache.module.ts", + "type": "contains" + }, + { + "from": "project:shared-backend-util-redis-cache", + "to": "file:libs/domains/shared/backend/util-redis-cache/src/lib/redis-cache.service.ts", + "type": "contains" + }, + { + "from": "project:identity-frontend-feature-auth", + "to": "file:libs/domains/identity/frontend/feature-auth/README.md", + "type": "contains" + }, + { + "from": "project:identity-frontend-feature-auth", + "to": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/admin.guard.ts", + "type": "contains" + }, + { + "from": "project:identity-frontend-feature-auth", + "to": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/auth.guard.ts", + "type": "contains" + }, + { + "from": "project:identity-frontend-feature-auth", + "to": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/login.guard.ts", + "type": "contains" + }, + { + "from": "project:identity-frontend-feature-auth", + "to": "file:libs/domains/identity/frontend/feature-auth/src/lib/guards/signup-disabled.guard.ts", + "type": "contains" + }, + { + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/README.md", + "type": "contains" + }, + { + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-util-dynamic-provider-registry", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-util-provisioning-geography", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/add-client-user.dto.ts", + "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-util-redis-cache", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/change-password.dto.ts", + "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-feature-notifications", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/confirm-email.dto.ts", + "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-util-http-context", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/create-user.dto.ts", + "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-backend-util-queue", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/login.dto.ts", + "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "project:shared-shared-util-network-address", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/logout.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "project:agenstra-frontend-data-access-agent-console", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/register.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "project:shared-frontend-feature-notifications", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/request-password-reset.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/reset-password.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "project:shared-frontend-data-access-notifications", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/update-user.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "project:shared-backend-util-dynamic-provider-registry", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/auth/user-response.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-landingpage", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/dto/client-user-response.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-landingpage", - "to": "project:shared-frontend-util-meta", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/entities/client.entity.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-landingpage", - "to": "project:agenstra-frontend-data-access-portal", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/keycloak-auth.guard.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-feature-landingpage", - "to": "project:shared-frontend-feature-landingpage", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/keycloak-roles.guard.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-feature-landingpage", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/users-auth.guard.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-feature-landingpage", - "to": "project:shared-frontend-util-meta", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/guards/users-roles.guard.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-feature-landingpage", - "to": "project:decabill-frontend-data-access-portal", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/modules/keycloak-user-sync.module.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-feature-landingpage", - "to": "project:shared-frontend-feature-landingpage", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/modules/users-auth.module.ts", + "type": "contains" }, { - "from": "project:forepath-frontend-feature-landingpage", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/repositories/client-users.repository.ts", + "type": "contains" }, { - "from": "project:forepath-frontend-feature-landingpage", - "to": "project:shared-frontend-util-meta", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/repositories/revoked-user-tokens.repository.ts", + "type": "contains" }, { - "from": "project:forepath-frontend-feature-landingpage", - "to": "project:forepath-frontend-data-access-project-estimator", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/repositories/users.repository.ts", + "type": "contains" }, { - "from": "project:forepath-frontend-feature-landingpage", - "to": "project:shared-frontend-feature-landingpage", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/services/auth.service.ts", + "type": "contains" }, { - "from": "project:shared-frontend-feature-notifications", - "to": "project:shared-frontend-data-access-notifications", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/services/client-users.service.ts", + "type": "contains" }, { - "from": "project:shared-frontend-feature-notifications", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/services/keycloak-token.service.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-portal", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/services/socket-auth.service.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-data-access-portal", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-feature-auth", + "to": "file:libs/domains/identity/backend/feature-auth/src/lib/services/users.service.ts", + "type": "contains" }, { - "from": "project:shared-backend-feature-notifications", - "to": "project:shared-backend-util-email", - "type": "depends_on" + "from": "project:shared-frontend-feature-docs", + "to": "file:libs/domains/shared/frontend/feature-docs/README.md", + "type": "contains" }, { - "from": "project:shared-backend-feature-notifications", - "to": "project:shared-backend-util-crypto", - "type": "depends_on" + "from": "project:shared-frontend-feature-docs", + "to": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/docs-content.service.ts", + "type": "contains" }, { - "from": "project:shared-backend-feature-notifications", - "to": "project:shared-backend-util-webhook", - "type": "depends_on" + "from": "project:shared-frontend-feature-docs", + "to": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/docs-navigation.service.ts", + "type": "contains" }, { - "from": "project:shared-backend-feature-notifications", - "to": "project:shared-backend-util-queue", - "type": "depends_on" + "from": "project:shared-frontend-feature-docs", + "to": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/docs-search.service.ts", + "type": "contains" }, { - "from": "project:shared-frontend-feature-landingpage", - "to": "project:shared-frontend-data-access-communication", - "type": "depends_on" + "from": "project:shared-frontend-feature-docs", + "to": "file:libs/domains/shared/frontend/feature-docs/src/lib/services/theme.service.ts", + "type": "contains" }, { - "from": "project:shared-frontend-feature-landingpage", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-frontend-util-auth", + "to": "file:libs/domains/identity/frontend/util-auth/README.md", + "type": "contains" }, { - "from": "project:shared-frontend-feature-landingpage", - "to": "project:shared-frontend-util-meta", - "type": "depends_on" + "from": "project:identity-frontend-util-auth", + "to": "file:libs/domains/identity/frontend/util-auth/src/lib/guards/keycloak.guard.ts", + "type": "contains" }, { - "from": "project:shared-frontend-util-cookie-consent", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:shared-backend-util-webhook", + "to": "file:libs/domains/shared/backend/util-webhook/README.md", + "type": "contains" }, { - "from": "project:shared-frontend-util-express-server", - "to": "project:shared-frontend-util-runtime-config-server", - "type": "depends_on" + "from": "project:shared-backend-util-webhook", + "to": "file:libs/domains/shared/backend/util-webhook/src/lib/webhook-signature.service.ts", + "type": "contains" }, { - "from": "project:shared-backend-feature-monitoring", - "to": "project:identity-backend-util-auth", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/README.md", + "type": "contains" }, { - "from": "project:identity-frontend-feature-auth", - "to": "project:identity-frontend-util-auth", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/bull-board-throttler.guard.ts", + "type": "contains" }, { - "from": "project:identity-frontend-feature-auth", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/entities/client-user.entity.ts", + "type": "contains" }, { - "from": "project:shared-frontend-feature-docs", - "to": "project:shared-frontend-util-docs-parser", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/entities/revoked-user-token.entity.ts", + "type": "contains" }, { - "from": "project:shared-frontend-feature-docs", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/entities/user.entity.ts", + "type": "contains" }, { - "from": "project:shared-frontend-feature-docs", - "to": "project:shared-frontend-util-meta", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/hybrid-auth.guard.ts", + "type": "contains" }, { - "from": "project:identity-frontend-util-auth", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/keycloak.guard.ts", + "type": "contains" }, { - "from": "project:shared-backend-util-webhook", - "to": "project:shared-shared-util-network-address", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/keycloak.module.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-agent-controller", - "to": "project:shared-platform-authentication", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/keycloak.service.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-agent-controller", - "to": "project:agenstra-backend-feature-agent-controller", - "type": "depends_on" + "from": "project:identity-backend-util-auth", + "to": "file:libs/domains/identity/backend/util-auth/src/lib/password.service.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-agent-controller", - "to": "project:agenstra-backend-agent-manager", - "type": "depends_on" + "from": "project:shared-backend-util-crypto", + "to": "file:libs/domains/shared/backend/util-crypto/README.md", + "type": "contains" }, { "from": "project:agenstra-backend-agent-controller", - "to": "project:shared-backend-util-http-context", - "type": "depends_on" + "to": "file:apps/agenstra/backend-agent-controller/README.md", + "type": "contains" }, { "from": "project:agenstra-backend-agent-controller", - "to": "project:shared-backend-util-webhook", - "type": "depends_on" + "to": "file:apps/agenstra/backend-agent-controller/src/app/app.module.ts", + "type": "contains" }, { "from": "project:agenstra-backend-agent-controller", - "to": "project:shared-backend-util-dynamic-provider-registry", - "type": "depends_on" + "to": "file:apps/agenstra/backend-agent-controller/src/queue/controller-queue-registrar.service.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-billing-console", - "to": "project:shared-platform-authentication", - "type": "depends_on" + "from": "project:agenstra-backend-agent-controller", + "to": "file:apps/agenstra/backend-agent-controller/src/queue/controller-queue.module.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-billing-console", - "to": "project:decabill-backend-billing-manager", - "type": "depends_on" + "from": "project:agenstra-backend-agent-controller", + "to": "file:apps/agenstra/backend-agent-controller/src/queue/processors/controller-jobs.processor.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-billing-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:shared-backend-util-email", + "to": "file:libs/domains/shared/backend/util-email/README.md", + "type": "contains" }, { - "from": "project:agenstra-frontend-billing-console", - "to": "project:decabill-frontend-billing-console", - "type": "depends_on" + "from": "project:shared-backend-util-email", + "to": "file:libs/domains/shared/backend/util-email/src/lib/email-template-renderer.service.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:shared-platform-authentication", - "type": "depends_on" + "from": "project:shared-backend-util-email", + "to": "file:libs/domains/shared/backend/util-email/src/lib/email.service.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:decabill-backend-billing-manager", - "type": "depends_on" + "from": "project:shared-backend-util-queue", + "to": "file:libs/domains/shared/backend/util-queue/README.md", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:shared-backend-util-queue", + "to": "file:libs/domains/shared/backend/util-queue/src/lib/queue.module.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:shared-frontend-util-cookie-consent", - "type": "depends_on" + "from": "project:shared-frontend-util-meta", + "to": "file:libs/domains/shared/frontend/util-meta/README.md", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:decabill-frontend-data-access-billing-console", - "type": "depends_on" + "from": "project:decabill-backend-billing-manager", + "to": "file:apps/decabill/backend-billing-manager/src/app/app.module.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:shared-frontend-data-access-notifications", - "type": "depends_on" + "from": "project:decabill-backend-billing-manager", + "to": "file:apps/decabill/backend-billing-manager/src/queue/billing-queue-registrar.service.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:decabill-frontend-feature-billing-console", - "type": "depends_on" + "from": "project:decabill-backend-billing-manager", + "to": "file:apps/decabill/backend-billing-manager/src/queue/billing-queue.module.ts", + "type": "contains" }, { - "from": "project:decabill-frontend-billing-console", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "project:decabill-backend-billing-manager", + "to": "file:apps/decabill/backend-billing-manager/src/queue/processors/billing-jobs.processor.ts", + "type": "contains" }, { - "from": "project:forepath-frontend-billing-console", - "to": "project:shared-platform-authentication", - "type": "depends_on" + "from": "project:agenstra-backend-agent-manager", + "to": "file:apps/agenstra/backend-agent-manager/README.md", + "type": "contains" }, { - "from": "project:forepath-frontend-billing-console", - "to": "project:decabill-backend-billing-manager", - "type": "depends_on" + "from": "project:agenstra-backend-agent-manager", + "to": "file:apps/agenstra/backend-agent-manager/src/app/app.module.ts", + "type": "contains" }, { - "from": "project:forepath-frontend-billing-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:forepath-backend-communication", + "to": "file:apps/forepath/backend-communication/README.md", + "type": "contains" }, { - "from": "project:forepath-frontend-billing-console", - "to": "project:decabill-frontend-billing-console", - "type": "depends_on" + "from": "project:forepath-backend-communication", + "to": "file:apps/forepath/backend-communication/src/app/app.module.ts", + "type": "contains" }, { - "from": "project:decabill-backend-billing-manager", - "to": "project:shared-platform-authentication", - "type": "depends_on" + "from": "project:shared-platform-authentication", + "to": "file:apps/shared/platform-authentication/README.md", + "type": "contains" }, { - "from": "project:decabill-backend-billing-manager", - "to": "project:decabill-backend-feature-billing-manager", - "type": "depends_on" + "from": "project:agenstra-frontend-landingpage", + "to": "file:apps/agenstra/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "type": "contains" }, { - "from": "project:decabill-backend-billing-manager", - "to": "project:shared-backend-util-http-context", - "type": "depends_on" + "from": "project:decabill-frontend-landingpage", + "to": "file:apps/decabill/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "type": "contains" }, { - "from": "project:decabill-backend-billing-manager", - "to": "project:shared-backend-util-webhook", - "type": "depends_on" + "from": "project:forepath-frontend-landingpage", + "to": "file:apps/forepath/frontend-landingpage/public/assets/models/qwen2.5-1.5b-instruct/README.md", + "type": "contains" }, { - "from": "project:decabill-backend-billing-manager", - "to": "project:shared-backend-util-dynamic-provider-registry", - "type": "depends_on" + "from": "project:forepath-frontend-landingpage", + "to": "file:apps/forepath/frontend-landingpage/src/app/viewport-scroller-offset.service.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-agent-console", - "to": "project:shared-platform-authentication", - "type": "depends_on" + "from": "project:release-integrity", + "to": "file:tools/release-integrity/README.md", + "type": "contains" }, { - "from": "project:agenstra-frontend-agent-console", - "to": "project:agenstra-backend-agent-controller", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/README.md", + "type": "contains" }, { - "from": "project:agenstra-frontend-agent-console", - "to": "project:agenstra-frontend-data-access-agent-console", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/demo-api.module.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-agent-console", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/dto/create-invoice.dto.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-agent-console", - "to": "project:shared-frontend-data-access-notifications", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/entities/invoice.entity.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-agent-console", - "to": "project:agenstra-frontend-feature-agent-console", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-agent-console", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/guards/tenant-user.guard.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-agent-manager", - "to": "project:shared-platform-authentication", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-agent-manager", - "to": "project:agenstra-backend-feature-agent-manager", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-agent-manager", - "to": "project:shared-backend-util-http-context", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/providers/demo-cloud.provider.ts", + "type": "contains" }, { - "from": "project:agenstra-backend-agent-manager", - "to": "project:shared-backend-util-dynamic-provider-registry", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/repositories/invoices.repository.ts", + "type": "contains" }, { - "from": "project:forepath-backend-communication", - "to": "project:forepath-backend-feature-communication-manager", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoice-overdue.job-handler.ts", + "type": "contains" }, { - "from": "project:forepath-backend-communication", - "to": "project:identity-backend-util-auth", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts", + "type": "contains" }, { - "from": "project:forepath-backend-communication", - "to": "project:shared-backend-feature-monitoring", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/docs/demo/billing.md", + "type": "contains" }, { - "from": "project:forepath-backend-communication", - "to": "project:shared-backend-util-http-context", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", + "type": "contains" }, { - "from": "project:agenstra-frontend-landingpage", - "to": "project:shared-frontend-util-cookie-consent", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", + "type": "contains" }, { - "from": "project:agenstra-frontend-landingpage", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts", + "type": "contains" }, { - "from": "project:agenstra-frontend-landingpage", - "to": "project:decabill-frontend-data-access-billing-console", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices", + "type": "contains" }, { - "from": "project:agenstra-frontend-landingpage", - "to": "project:agenstra-frontend-feature-landingpage", - "type": "depends_on" + "from": "project:code", + "to": "file:tools/code/README.md", + "type": "contains" }, { - "from": "project:agenstra-frontend-landingpage", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "project:ai", + "to": "file:tools/ai/README.md", + "type": "contains" }, { - "from": "project:agenstra-native-agent-console", - "to": "project:agenstra-frontend-agent-console", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-issued", + "type": "contains" }, { - "from": "project:decabill-frontend-landingpage", - "to": "project:shared-frontend-util-cookie-consent", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-partial-credit", + "type": "contains" }, { - "from": "project:decabill-frontend-landingpage", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/invoice-voided", + "type": "contains" }, { - "from": "project:decabill-frontend-landingpage", - "to": "project:decabill-frontend-data-access-billing-console", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/payment-failed", + "type": "contains" }, { - "from": "project:decabill-frontend-landingpage", - "to": "project:decabill-frontend-feature-landingpage", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/payment-succeeded", + "type": "contains" }, { - "from": "project:decabill-frontend-landingpage", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/subscription-canceled", + "type": "contains" }, { - "from": "project:forepath-frontend-landingpage", - "to": "project:shared-frontend-util-cookie-consent", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/subscription-renewal-reminder", + "type": "contains" }, { - "from": "project:forepath-frontend-landingpage", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "project:decabill-backend-feature-billing-manager", + "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/templates/withdrawal-confirmation", + "type": "contains" }, { - "from": "project:forepath-frontend-landingpage", - "to": "project:forepath-frontend-feature-landingpage", - "type": "depends_on" + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/templates/email-confirmation", + "type": "contains" }, { - "from": "project:forepath-frontend-landingpage", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "project:shared-backend-feature-notifications", + "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/templates/password-reset", + "type": "contains" }, { - "from": "project:agenstra-frontend-docs", - "to": "project:shared-frontend-docs", - "type": "depends_on" + "from": "project:graph", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued", + "type": "contains" }, { - "from": "project:agenstra-frontend-docs", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/health", + "type": "contains" }, { - "from": "project:decabill-frontend-docs", - "to": "project:shared-frontend-docs", - "type": "depends_on" + "from": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/public/contact-requests", + "type": "contains" }, { - "from": "project:decabill-frontend-docs", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/setClient", + "type": "contains" }, { - "from": "project:shared-frontend-docs", - "to": "project:shared-frontend-util-cookie-consent", - "type": "depends_on" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/setClientSuccess", + "type": "contains" }, { - "from": "project:shared-frontend-docs", - "to": "project:shared-frontend-util-configuration", - "type": "depends_on" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/error", + "type": "contains" }, { - "from": "project:shared-frontend-docs", - "to": "project:shared-frontend-feature-docs", - "type": "depends_on" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/forward", + "type": "contains" }, { - "from": "project:shared-frontend-docs", - "to": "project:shared-frontend-util-express-server", - "type": "depends_on" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/ticketAutomationRunChatUpsert", + "type": "contains" }, { - "from": "project:shared-mcp-devkit", - "to": "project:code", - "type": "depends_on" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/ticketChatTicketUpsert", + "type": "contains" }, { - "from": "project:shared-mcp-proxy", - "to": "project:shared-mcp-devkit", - "type": "depends_on" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/forwardAck", + "type": "contains" }, { - "from": "project:forepath-frontend-data-access-project-estimator", - "to": "file:libs/domains/forepath/frontend/data-access-project-estimator/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/remoteDisconnected", "type": "contains" }, { - "from": "project:forepath-backend-feature-communication-manager", - "to": "file:libs/domains/forepath/backend/feature-communication-manager/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/remoteReconnecting", "type": "contains" }, { - "from": "project:forepath-backend-feature-communication-manager", - "to": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/remoteReconnected", "type": "contains" }, { - "from": "project:forepath-backend-feature-communication-manager", - "to": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/remoteReconnectError", "type": "contains" }, { - "from": "project:decabill-frontend-data-access-billing-console", - "to": "file:libs/domains/decabill/frontend/data-access-billing-console/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:clients/remoteReconnectFailed", "type": "contains" }, { - "from": "project:shared-backend-util-dynamic-provider-registry", - "to": "file:libs/domains/shared/backend/util-dynamic-provider-registry/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/setClient", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/setClientSuccess", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/authentication.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/error", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/clients.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/ticketUpsert", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/notifications-state.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/ticketRemoved", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/overview.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/ticketCommentCreated", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-authentication.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/ticketActivityCreated", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-agent-console", - "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/docs/sequence-files.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/ticketAutomationUpsert", "type": "contains" }, { - "from": "project:shared-frontend-util-runtime-config-server", - "to": "file:libs/domains/shared/frontend/util-runtime-config-server/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/ticketAutomationRunUpsert", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:tickets/ticketAutomationRunStepAppended", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/agent-console-status-realtime.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:pages/setClient", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/authentication.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:pages/setClientSuccess", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/autonomous-ticket-decision-tree.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:pages/error", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/filter-rules-sync.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:pages/knowledgeTreeChanged", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/knowledge-relations-matrix.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:pages/knowledgeRelationChanged", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/lifecycle.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:pages/knowledgePageActivityCreated", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/overview.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:status/statusSnapshot", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-architecture.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:status/statusPatch", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/provisioning-process.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:status/markEnvironmentRead", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-auto-enrichment-pgvector.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "to": "api:channel:status/setActiveEnvironment", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-autonomous-ticket.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/auth/login", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-chat-enhancement.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/auth/register", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-deployment-proxy.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/auth/confirm-email", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-environment.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/auth/request-password-reset", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-files.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/auth/reset-password", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-statistics.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/auth/change-password", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-ticket-workspace-migrate.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/auth/logout", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http-vcs.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/users", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-http.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/users", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ticket-specification-bundle.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/users/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-workspace-configuration-overrides.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/users/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-forward.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/users/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/sequence-ws-terminal.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/users/{id}/lock", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/server-provisioning-sequence.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/users/{id}/unlock", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/statistics-architecture.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/filter-rules", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/docs/ticket-board-realtime.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/filter-rules", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/filter-rules/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/filter-rules/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy-directory.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/filter-rules/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-agent-autonomy.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/imports/atlassian/connections", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/client-statistics.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/imports/atlassian/connections", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-agent-automation-proxy.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/imports/atlassian/connections/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-configuration-overrides.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/imports/atlassian/connections/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-deployments.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients-vcs.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/imports/atlassian/configs", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/imports/atlassian/configs", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/imports/atlassian/configs/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/knowledge-tree.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/imports/atlassian/configs/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/ticket-automation.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", "type": "contains" }, { - "from": "project:decabill-frontend-feature-billing-console", - "to": "file:libs/domains/decabill/frontend/feature-billing-console/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets", "type": "contains" }, { - "from": "project:shared-frontend-data-access-communication", - "to": "file:libs/domains/shared/frontend/data-access-communication/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets", "type": "contains" }, { - "from": "project:shared-frontend-data-access-notifications", - "to": "file:libs/domains/shared/frontend/data-access-notifications/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets/{id}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PATCH:/tickets/{id}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/auth-flow.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/tickets/{id}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/config-validation-flow.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets/{id}/prototype-prompt", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-location-selection.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets/{id}/comments", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/customer-server-type-selection.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets/{id}/comments", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/manual-invoice-administration.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets/{id}/activity", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/overview.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/plan-tax-category.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets/{id}/apply-generated-body", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-bill-time.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets/{id}/migrate", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/project-board-realtime.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/provisioning-architecture.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PATCH:/tickets/{ticketId}/automation", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-backorder-retry.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoice-payment.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-invoicing.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-open-positions-billing-day.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-item-update.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/sequence-subscription-order.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/docs/subscription-lifecycle.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-auto-billing.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/users", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/users", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscription-items.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-milestones.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-tickets.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/project-time-entries.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", "type": "contains" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/utils/cloud-init/agent-controller.utils.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "file:libs/domains/agenstra/frontend/feature-agent-console/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/configuration-overrides", + "type": "contains" + }, + { + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/sequence-chat-automation-tickets-handoff.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board-search-and-status.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-board.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", "type": "contains" }, { - "from": "project:agenstra-frontend-feature-agent-console", - "to": "file:libs/domains/agenstra/frontend/feature-agent-console/docs/tickets-prototype-chat.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/agent-events.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/architecture-vnc.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/deployment-architecture.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/lifecycle.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/overview.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/regex-filters.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-deployment.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-automation-verify.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-environment.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-files.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http-vcs.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-http.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-vnc-setup.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/provisioning/providers", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-auth-logs.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-chat.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-container-stats.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/provisioning/provision", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-file-update.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/provisioning/info", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/docs/sequence-ws-terminal.mmd", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/provisioning", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-deployments.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-environment-variables.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-files.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-vcs.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-verification.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", "type": "contains" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", "type": "contains" }, { - "from": "project:shared-frontend-util-loading-indicator", - "to": "file:libs/domains/shared/frontend/util-loading-indicator/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", "type": "contains" }, { - "from": "project:agenstra-frontend-feature-landingpage", - "to": "file:libs/domains/agenstra/frontend/feature-landingpage/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/statistics/summary", "type": "contains" }, { - "from": "project:decabill-frontend-feature-landingpage", - "to": "file:libs/domains/decabill/frontend/feature-landingpage/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/statistics/chat-io", "type": "contains" }, { - "from": "project:forepath-frontend-feature-landingpage", - "to": "file:libs/domains/forepath/frontend/feature-landingpage/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", "type": "contains" }, { - "from": "project:shared-frontend-feature-notifications", - "to": "file:libs/domains/shared/frontend/feature-notifications/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", "type": "contains" }, { - "from": "project:agenstra-frontend-data-access-portal", - "to": "file:libs/domains/agenstra/frontend/data-access-portal/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/clients/{id}/statistics/entity-events", "type": "contains" }, { - "from": "project:decabill-frontend-data-access-portal", - "to": "file:libs/domains/decabill/frontend/data-access-portal/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/statistics/summary", "type": "contains" }, { - "from": "project:shared-backend-feature-notifications", - "to": "file:libs/domains/shared/backend/feature-notifications/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/statistics/chat-io", "type": "contains" }, { - "from": "project:shared-backend-feature-notifications", - "to": "file:libs/domains/shared/backend/feature-notifications/src/lib/controllers/webhook-endpoints.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/statistics/filter-drops", "type": "contains" }, { - "from": "project:shared-backend-util-network-address", - "to": "file:libs/domains/shared/backend/util-network-address/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/statistics/filter-flags", "type": "contains" }, { - "from": "project:shared-frontend-feature-landingpage", - "to": "file:libs/domains/shared/frontend/feature-landingpage/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/statistics/entity-events", "type": "contains" }, { - "from": "project:shared-frontend-util-cookie-consent", - "to": "file:libs/domains/shared/frontend/util-cookie-consent/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/webhooks/event-types", "type": "contains" }, { - "from": "project:identity-frontend-data-access-auth", - "to": "file:libs/domains/identity/frontend/data-access-auth/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/webhooks", "type": "contains" }, { - "from": "project:shared-frontend-util-configuration", - "to": "file:libs/domains/shared/frontend/util-configuration/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/webhooks", "type": "contains" }, { - "from": "project:shared-shared-util-network-address", - "to": "file:libs/domains/shared/shared/util-network-address/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/webhooks/{id}", "type": "contains" }, { - "from": "project:shared-backend-feature-monitoring", - "to": "file:libs/domains/shared/backend/feature-monitoring/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:PUT:/admin/webhooks/{id}", "type": "contains" }, { - "from": "project:shared-backend-feature-monitoring", - "to": "file:libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/admin/webhooks/{id}", "type": "contains" }, { - "from": "project:shared-backend-util-http-context", - "to": "file:libs/domains/shared/backend/util-http-context/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/webhooks/{id}/test", "type": "contains" }, { - "from": "project:shared-frontend-util-docs-parser", - "to": "file:libs/domains/shared/frontend/util-docs-parser/README.md", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/webhooks/{id}/deliveries", "type": "contains" }, { - "from": "project:shared-backend-util-redis-cache", - "to": "file:libs/domains/shared/backend/util-redis-cache/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:chat_message.created", "type": "contains" }, { - "from": "project:identity-frontend-feature-auth", - "to": "file:libs/domains/identity/frontend/feature-auth/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:client_user.created", "type": "contains" }, { - "from": "project:identity-backend-feature-auth", - "to": "file:libs/domains/identity/backend/feature-auth/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:client_user.deleted", "type": "contains" }, { - "from": "project:identity-backend-feature-auth", - "to": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:client.created", "type": "contains" }, { - "from": "project:identity-backend-feature-auth", - "to": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:client.deleted", "type": "contains" }, { - "from": "project:shared-frontend-feature-docs", - "to": "file:libs/domains/shared/frontend/feature-docs/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:client.updated", "type": "contains" }, { - "from": "project:identity-frontend-util-auth", - "to": "file:libs/domains/identity/frontend/util-auth/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:environment.created", "type": "contains" }, { - "from": "project:shared-backend-util-webhook", - "to": "file:libs/domains/shared/backend/util-webhook/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:environment.deleted", "type": "contains" }, { - "from": "project:identity-backend-util-auth", - "to": "file:libs/domains/identity/backend/util-auth/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:environment.updated", "type": "contains" }, { - "from": "project:shared-backend-util-crypto", - "to": "file:libs/domains/shared/backend/util-crypto/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.created", "type": "contains" }, { - "from": "project:agenstra-backend-agent-controller", - "to": "file:apps/agenstra/backend-agent-controller/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.deleted", "type": "contains" }, { - "from": "project:shared-backend-util-email", - "to": "file:libs/domains/shared/backend/util-email/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.triggered", "type": "contains" }, { - "from": "project:shared-backend-util-queue", - "to": "file:libs/domains/shared/backend/util-queue/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:filter_rule.updated", "type": "contains" }, { - "from": "project:shared-frontend-util-meta", - "to": "file:libs/domains/shared/frontend/util-meta/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:ticket.comment.created", "type": "contains" }, { - "from": "project:agenstra-backend-agent-manager", - "to": "file:apps/agenstra/backend-agent-manager/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:ticket.created", "type": "contains" }, { - "from": "project:forepath-backend-communication", - "to": "file:apps/forepath/backend-communication/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:ticket.deleted", "type": "contains" }, { - "from": "project:shared-platform-authentication", - "to": "file:apps/shared/platform-authentication/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:ticket.updated", "type": "contains" }, { - "from": "project:forepath-frontend-landingpage", - "to": "file:apps/forepath/frontend-landingpage/public/assets/models/qwen2.5-1.5b-instruct/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:user.created", "type": "contains" }, { - "from": "project:release-integrity", - "to": "file:tools/release-integrity/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:user.deleted", "type": "contains" }, { - "from": "project:graph", - "to": "file:tools/graph/README.md", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "webhook-event:agenstra-backend-feature-agent-controller:user.updated", "type": "contains" }, { - "from": "project:graph", - "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:billing/subscribeDashboardStatus", "type": "contains" }, { - "from": "project:graph", - "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/docs/demo/billing.md", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:billing/unsubscribeDashboardStatus", "type": "contains" }, { - "from": "project:graph", - "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:billing/dashboardStatusUpdate", "type": "contains" }, { - "from": "project:graph", - "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:billing/error", "type": "contains" }, { - "from": "project:code", - "to": "file:tools/code/README.md", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/setProject", "type": "contains" }, { - "from": "project:ai", - "to": "file:tools/ai/README.md", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/setProjectSuccess", "type": "contains" }, { - "from": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/health", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/ticketUpsert", "type": "contains" }, { - "from": "file:libs/domains/forepath/backend/feature-communication-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/public/contact-requests", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/ticketRemoved", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/setClient", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/ticketCommentCreated", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/setClientSuccess", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/ticketActivityCreated", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/error", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/milestoneUpsert", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/forward", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/projectSummaryChanged", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/ticketAutomationRunChatUpsert", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", + "to": "api:channel:projects/error", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/ticketChatTicketUpsert", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/public/service-plan-offerings", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/forwardAck", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/public/service-plan-offerings/cheapest", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/remoteDisconnected", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/public/withdrawal/addressee", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/remoteReconnecting", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/public/withdrawal/request", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/remoteReconnected", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/public/withdrawal/verify-code", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/remoteReconnectError", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/public/withdrawal/confirm", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:clients/remoteReconnectFailed", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-types", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/setClient", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/service-types", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/setClientSuccess", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-types/providers", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/error", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/ticketUpsert", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-types/providers/{providerId}/locations", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/ticketRemoved", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-types/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/ticketCommentCreated", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/service-types/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/ticketActivityCreated", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/service-types/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/ticketAutomationUpsert", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-plans", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/ticketAutomationRunUpsert", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/service-plans", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:tickets/ticketAutomationRunStepAppended", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:pages/setClient", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/service-plans/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:pages/setClientSuccess", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/service-plans/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:pages/error", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/service-plans/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:pages/knowledgeTreeChanged", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/cloud-init-configs", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:pages/knowledgeRelationChanged", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/cloud-init-configs", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:pages/knowledgePageActivityCreated", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/cloud-init-configs/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:status/statusSnapshot", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/cloud-init-configs/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:status/statusPatch", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/cloud-init-configs/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:status/markEnvironmentRead", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/availability/check", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/asyncapi.yaml", - "to": "api:channel:status/setActiveEnvironment", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/availability/alternatives", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/auth/login", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/auth/register", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/auth/confirm-email", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/auth/request-password-reset", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/auth/reset-password", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/auth/change-password", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/auth/logout", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:GET:/users", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/users", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:GET:/users/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:POST:/users/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", "to": "api:HTTP:DELETE:/users/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/users/{id}/lock", - "type": "contains" - }, - { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/users/{id}/unlock", - "type": "contains" - }, - { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/filter-rules", - "type": "contains" - }, - { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/filter-rules", - "type": "contains" - }, - { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/filter-rules/{id}", - "type": "contains" - }, - { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/filter-rules/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/subscriptions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/filter-rules/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/subscriptions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/imports/atlassian/connections", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/imports/atlassian/connections", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/imports/atlassian/connections/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/imports/atlassian/connections/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/imports/atlassian/configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/imports/atlassian/configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/imports/atlassian/configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/imports/atlassian/configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/backorders", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/backorders/{id}/retry", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/backorders/{id}/cancel", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/pricing/preview", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/customer-profile", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/customer-profile", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PATCH:/tickets/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/tickets/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets/{id}/prototype-prompt", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/summary", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets/{id}/comments", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/open-overdue", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets/{id}/comments", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/history", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets/{id}/activity", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets/{id}/apply-generated-body", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets/{id}/migrate", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PATCH:/tickets/{ticketId}/automation", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/{subscriptionId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/invoices/{subscriptionId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/webhooks/payments/stripe", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/usage/summary/{subscriptionId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/usage/record", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/summary", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/bill-now", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/subscriptions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/users", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/users", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/invoices", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/invoices/open-overdue", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/invoices/manual", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/promotions/validate", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/promotions/redeem", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/promotions/redemptions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/promotions/active", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/promotions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/promotions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/configuration-overrides", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/customer-profiles", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/customer-profiles", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/statistics/summary", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/statistics/by-product", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/capabilities", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/datev-exports", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/datev-exports", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/provisioning/providers", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/projects", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/projects/{projectId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/projects/{projectId}/summary", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/provisioning/provision", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/projects", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/provisioning/info", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/projects", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/provisioning", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/projects/{projectId}/tickets", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/projects/{projectId}/tickets", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/projects/{projectId}/milestones", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/webhooks/event-types", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/webhooks", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/webhooks", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/statistics/summary", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/webhooks/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/statistics/chat-io", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:PUT:/admin/billing/webhooks/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/clients/{id}/statistics/entity-events", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/statistics/summary", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:auto_billing.disabled", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/statistics/chat-io", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:auto_billing.enabled", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/statistics/filter-drops", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:datev_export.completed", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/statistics/filter-flags", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:datev_export.failed", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/statistics/entity-events", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:datev_export.started", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/webhooks/event-types", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:invoice.created", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/webhooks", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:invoice.issued", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/webhooks", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:invoice.voided", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/webhooks/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:milestone.created", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:PUT:/admin/webhooks/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:milestone.deleted", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/admin/webhooks/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:milestone.updated", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/webhooks/{id}/test", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:payment_method.attached", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/webhooks/{id}/deliveries", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:payment.auto.exhausted", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:billing/subscribeDashboardStatus", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:payment.auto.initiated", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:billing/unsubscribeDashboardStatus", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:payment.auto.retry_scheduled", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:billing/dashboardStatusUpdate", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:payment.failed", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:billing/error", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:payment.initiated", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/setProject", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:payment.succeeded", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/setProjectSuccess", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:project.created", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/ticketUpsert", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:project.deleted", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/ticketRemoved", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:project.updated", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/ticketCommentCreated", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:subscription.canceled", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/ticketActivityCreated", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:subscription.created", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/milestoneUpsert", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:subscription.updated", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/projectSummaryChanged", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:ticket.comment.created", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/asyncapi.yaml", - "to": "api:channel:projects/error", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:ticket.created", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/public/service-plan-offerings", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:ticket.deleted", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/public/service-plan-offerings/cheapest", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:ticket.updated", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/public/withdrawal/addressee", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:time_entry.created", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/public/withdrawal/request", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:time_entry.deleted", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/public/withdrawal/verify-code", + "from": "project:decabill-backend-feature-billing-manager", + "to": "webhook-event:decabill-backend-feature-billing-manager:time_entry.updated", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/public/withdrawal/confirm", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/login", "type": "contains" }, - { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-types", + { + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/loginSuccess", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/service-types", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/loginError", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-types/providers", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/chat", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/enhanceChat", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-types/providers/{providerId}/locations", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/chatEnhanceResult", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-types/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/generateTicketBody", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/service-types/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/ticketBodyResult", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/service-types/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/chatMessage", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-plans", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/chatEvent", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/service-plans", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/messageFilterResult", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/error", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/service-plans/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/fileUpdate", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/service-plans/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/fileUpdateNotification", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/service-plans/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/logout", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/cloud-init-configs", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/logoutSuccess", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/cloud-init-configs", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/createTerminal", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/cloud-init-configs/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/terminalCreated", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/cloud-init-configs/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/terminalInput", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/cloud-init-configs/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/terminalOutput", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/availability/check", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/closeTerminal", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/availability/alternatives", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/terminalClosed", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/auth/login", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", + "to": "api:channel:agents/containerStats", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/auth/register", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/auth/confirm-email", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/auth/request-password-reset", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/auth/reset-password", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/auth/change-password", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/agents/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/auth/logout", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{id}/start", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/users", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{id}/stop", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/users", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{id}/restart", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/users/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{id}/models", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/users/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents-filters", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/users/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents-filters", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/subscriptions", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents-filters/count", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/subscriptions", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents-filters/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:PUT:/agents-filters/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/agents-filters/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/config", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/files", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/backorders", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/environment", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/backorders/{id}/retry", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/environment", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/backorders/{id}/cancel", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/pricing/preview", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/environment/count", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/customer-profile", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/customer-profile", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/configuration-overrides", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:PUT:/configuration-overrides/{settingKey}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/summary", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/open-overdue", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/history", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/invoices/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/webhooks/payments/stripe", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/usage/summary/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/usage/record", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/summary", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/bill-now", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/subscriptions", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/invoices", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/invoices/open-overdue", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/invoices/manual", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", + "from": "project:graph", + "to": "webhook-event:graph:invoice.created", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", + "from": "project:graph", + "to": "webhook-event:graph:invoice.issued", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", + "from": "project:graph", + "to": "webhook-event:graph:payment.succeeded", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", + "to": "api:channel:demo/status", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", + "to": "api:HTTP:GET:/invoices", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", + "to": "api:HTTP:POST:/invoices", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", + "to": "api:HTTP:GET:/health", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/promotions/validate", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-agenstra-documentation", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/promotions/redeem", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-what-is-agenstra", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/promotions/redemptions", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-documentation-structure", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/promotions/active", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-quick-start", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/promotions", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-system-architecture", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/promotions", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-key-features", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", + "from": "file:docs/agenstra/README.md", + "to": "concept:agenstra-external-resources", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", + "from": "file:docs/agenstra/ai-agents/README.md", + "to": "concept:agenstra-ai-agents-context-agenstra", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", + "from": "file:docs/agenstra/ai-agents/README.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/customer-profiles", + "from": "file:docs/agenstra/ai-agents/README.md", + "to": "concept:agenstra-directory-structure", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/customer-profiles", + "from": "file:docs/agenstra/ai-agents/README.md", + "to": "concept:agenstra-components", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", + "from": "file:docs/agenstra/ai-agents/README.md", + "to": "concept:agenstra-generating-tool-configs", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", + "from": "file:docs/agenstra/ai-agents/README.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", + "from": "file:docs/agenstra/ai-agents/agentctx.md", + "to": "concept:agenstra-agentctx", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", + "from": "file:docs/agenstra/ai-agents/agentctx.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", + "from": "file:docs/agenstra/ai-agents/agentctx.md", + "to": "concept:agenstra-installation", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", + "from": "file:docs/agenstra/ai-agents/agentctx.md", + "to": "concept:agenstra-usage", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", + "from": "file:docs/agenstra/ai-agents/agentctx.md", + "to": "concept:agenstra-related", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-agents-and-subagents", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-structure", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/statistics/summary", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-frontmatter-properties-read-by-the-reader", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/statistics/by-product", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-example-primary-agent", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/capabilities", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-example-subagent", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/datev-exports", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-output-by-tool", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/datev-exports", + "from": "file:docs/agenstra/ai-agents/agents.md", + "to": "concept:agenstra-related", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", + "from": "file:docs/agenstra/ai-agents/commands.md", + "to": "concept:agenstra-commands", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", + "from": "file:docs/agenstra/ai-agents/commands.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/projects", + "from": "file:docs/agenstra/ai-agents/commands.md", + "to": "concept:agenstra-structure", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/projects/{projectId}", + "from": "file:docs/agenstra/ai-agents/commands.md", + "to": "concept:agenstra-frontmatter-properties-read-by-the-reader", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/projects/{projectId}/summary", + "from": "file:docs/agenstra/ai-agents/commands.md", + "to": "concept:agenstra-example", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/projects", + "from": "file:docs/agenstra/ai-agents/commands.md", + "to": "concept:agenstra-output-by-tool", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/projects", + "from": "file:docs/agenstra/ai-agents/commands.md", + "to": "concept:agenstra-related", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", + "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "to": "concept:agenstra-knowledge-graph", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", + "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "to": "concept:agenstra-why-it-exists", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", + "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "to": "concept:agenstra-how-to-generate", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", + "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "to": "concept:agenstra-schema-overview", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", + "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "to": "concept:agenstra-using-the-graph-with-ai-tools", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", + "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "to": "concept:agenstra-security", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/projects/{projectId}/tickets", + "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", + "to": "concept:agenstra-implementation", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/projects/{projectId}/tickets", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-mcp-definitions", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-structure", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/projects/{projectId}/milestones", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-schema-properties-read-by-the-reader", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/webhooks/event-types", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-example-local", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/webhooks", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-example-remote", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/webhooks", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-output-by-tool", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/webhooks/{id}", + "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", + "to": "concept:agenstra-related", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:PUT:/admin/billing/webhooks/{id}", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-rules", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-structure", "type": "contains" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-frontmatter-metadata", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/login", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-content-guidelines", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/loginSuccess", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-examples", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/loginError", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-coding-standards", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/chat", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-conventions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/enhanceChat", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-project-conventions", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/chatEnhanceResult", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-typescript-standards", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/generateTicketBody", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-output-by-tool", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/ticketBodyResult", + "from": "file:docs/agenstra/ai-agents/rules.md", + "to": "concept:agenstra-related", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/chatMessage", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-skills", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/chatEvent", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/messageFilterResult", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-structure", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/error", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-frontmatter-metadata", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/fileUpdate", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-content-guidelines", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/fileUpdateNotification", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-example", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/logout", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-design-patterns", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/logoutSuccess", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-factory-pattern", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/createTerminal", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-output-by-tool", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/terminalCreated", + "from": "file:docs/agenstra/ai-agents/skills.md", + "to": "concept:agenstra-related", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/terminalInput", + "from": "file:docs/agenstra/api-reference/README.md", + "to": "concept:agenstra-api-reference", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/terminalOutput", + "from": "file:docs/agenstra/api-reference/README.md", + "to": "concept:agenstra-agent-controller-api", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/closeTerminal", + "from": "file:docs/agenstra/api-reference/README.md", + "to": "concept:agenstra-agent-manager-api", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/terminalClosed", + "from": "file:docs/agenstra/api-reference/README.md", + "to": "concept:agenstra-using-the-specifications", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/asyncapi.yaml", - "to": "api:channel:agents/containerStats", + "from": "file:docs/agenstra/api-reference/README.md", + "to": "concept:agenstra-generated-client-packages", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents", + "from": "file:docs/agenstra/api-reference/README.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents", + "from": "file:docs/agenstra/applications/README.md", + "to": "concept:agenstra-applications-documentation", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{id}", + "from": "file:docs/agenstra/applications/README.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{id}", + "from": "file:docs/agenstra/applications/README.md", + "to": "concept:agenstra-applications", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/agents/{id}", + "from": "file:docs/agenstra/applications/README.md", + "to": "concept:agenstra-application-relationships", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{id}/start", + "from": "file:docs/agenstra/applications/README.md", + "to": "concept:agenstra-communication-patterns", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{id}/stop", + "from": "file:docs/agenstra/applications/README.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{id}/restart", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-backend-agent-controller", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{id}/models", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents-filters", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-features", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents-filters", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-architecture", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents-filters/count", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents-filters/{id}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-websocket-gateway", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:PUT:/agents-filters/{id}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-authentication", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/agents-filters/{id}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-rate-limiting", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/config", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-cors-configuration", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/files", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-outbound-client-workspace-urls-ssrf", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-environment-variables", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-database-setup", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-docker-deployment", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-build-api-container", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-run-with-docker-compose-recommended", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/environment", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-or-run-directly", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/environment", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-production-deployment-checklist", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/environment/count", + "from": "file:docs/agenstra/applications/backend-agent-controller.md", + "to": "concept:agenstra-license", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-backend-agent-manager", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/configuration-overrides", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-features", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:PUT:/configuration-overrides/{settingKey}", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-architecture", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-websocket-gateway", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-authentication", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-rate-limiting", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-cors-configuration", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-environment-variables", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-database-setup", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-docker-deployment", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-build-api-container", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-build-worker-container", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-build-vnc-container", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-run-with-docker-compose-recommended", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-or-run-directly-with-docker-socket-mount", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-production-deployment-checklist", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", + "from": "file:docs/agenstra/applications/backend-agent-manager.md", + "to": "concept:agenstra-license", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-frontend-agent-console", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-purpose", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-features", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-architecture", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-state-management-ngrx", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-routing", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-components", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-websocket-communication", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-authentication", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-environment-configuration", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-development", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-serve-the-application", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-build-for-production", "type": "contains" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/spec/openapi.yaml", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-run-tests", "type": "contains" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/asyncapi.yaml", - "to": "api:channel:demo/status", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-build-container", "type": "contains" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", - "to": "api:HTTP:GET:/invoices", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-run-with-docker-compose", "type": "contains" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", - "to": "api:HTTP:POST:/invoices", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-production-deployment", "type": "contains" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/spec/openapi.yaml", - "to": "api:HTTP:GET:/health", + "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", - "to": "concept:agenstra-agenstra-documentation", + "from": "file:docs/agenstra/architecture/README.md", + "to": "concept:agenstra-architecture-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", - "to": "concept:agenstra-what-is-agenstra", + "from": "file:docs/agenstra/architecture/README.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", + "from": "file:docs/agenstra/architecture/README.md", "to": "concept:agenstra-documentation-structure", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", - "to": "concept:agenstra-quick-start", + "from": "file:docs/agenstra/architecture/README.md", + "to": "concept:agenstra-key-architectural-concepts", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", - "to": "concept:agenstra-system-architecture", + "from": "file:docs/agenstra/architecture/README.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", - "to": "concept:agenstra-key-features", + "from": "file:docs/agenstra/architecture/README.md", + "to": "concept:agenstra-architecture-principles", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-components", "type": "contains" }, { - "from": "file:docs/agenstra/README.md", - "to": "concept:agenstra-external-resources", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-backend-applications", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/README.md", - "to": "concept:agenstra-ai-agents-context-agenstra", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-frontend-applications", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/README.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-backend-libraries", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/README.md", - "to": "concept:agenstra-directory-structure", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-frontend-libraries", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/README.md", - "to": "concept:agenstra-components", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-component-dependencies", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/README.md", - "to": "concept:agenstra-generating-tool-configs", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-database-schema", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-external-dependencies", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agentctx.md", - "to": "concept:agenstra-agentctx", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-component-communication", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agentctx.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/architecture/components.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agentctx.md", - "to": "concept:agenstra-installation", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-data-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agentctx.md", - "to": "concept:agenstra-usage", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-http-rest-api-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agentctx.md", - "to": "concept:agenstra-related", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-websocket-event-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-agents-and-subagents", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-state-management-flow-ngrx", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-file-system-operations-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-structure", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-version-control-operations-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-frontmatter-properties-read-by-the-reader", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-server-provisioning-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-example-primary-agent", + "from": "file:docs/agenstra/architecture/data-flow.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-example-subagent", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-system-overview", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-output-by-tool", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-three-tier-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/agents.md", - "to": "concept:agenstra-related", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-component-relationships", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/commands.md", - "to": "concept:agenstra-commands", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-communication-patterns", + "type": "contains" + }, + { + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-data-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/commands.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-authentication-flow", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/commands.md", - "to": "concept:agenstra-structure", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-state-management", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/commands.md", - "to": "concept:agenstra-frontmatter-properties-read-by-the-reader", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-reconnection-handling", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/commands.md", - "to": "concept:agenstra-example", + "from": "file:docs/agenstra/architecture/system-overview.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/commands.md", - "to": "concept:agenstra-output-by-tool", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-deployment-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/commands.md", - "to": "concept:agenstra-related", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "to": "concept:agenstra-knowledge-graph", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-deployment-guides", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "to": "concept:agenstra-why-it-exists", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-deployment-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "to": "concept:agenstra-how-to-generate", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-quick-start", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "to": "concept:agenstra-schema-overview", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-start-all-services", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "to": "concept:agenstra-using-the-graph-with-ai-tools", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-install-dependencies", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "to": "concept:agenstra-security", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-start-services", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/knowledge-graph.md", - "to": "concept:agenstra-implementation", + "from": "file:docs/agenstra/deployment/README.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-mcp-definitions", + "from": "file:docs/agenstra/deployment/background-jobs.md", + "to": "concept:agenstra-background-jobs-bullmq", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/deployment/background-jobs.md", + "to": "concept:agenstra-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-structure", + "from": "file:docs/agenstra/deployment/background-jobs.md", + "to": "concept:agenstra-redis-and-queue-environment-variables", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-schema-properties-read-by-the-reader", + "from": "file:docs/agenstra/deployment/background-jobs.md", + "to": "concept:agenstra-docker-compose", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-example-local", + "from": "file:docs/agenstra/deployment/background-jobs.md", + "to": "concept:agenstra-bull-board", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-example-remote", + "from": "file:docs/agenstra/deployment/background-jobs.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-output-by-tool", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-docker-deployment", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/mcp-definitions.md", - "to": "concept:agenstra-related", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-rules", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-prerequisites", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-docker-compose-setup", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-structure", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-container-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-frontmatter-metadata", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-building-containers", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-content-guidelines", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-examples", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-agent-manager", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-coding-standards", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-running-containers", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-conventions", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-start-all-services", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-project-conventions", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-view-logs", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-typescript-standards", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-stop-services", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-output-by-tool", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-stop-and-remove-volumes", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/rules.md", - "to": "concept:agenstra-related", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-run-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-skills", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-run-agent-manager-with-docker-socket", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-run-frontend-agent-console", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-structure", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-docker-socket-mount", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-frontmatter-metadata", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-health-checks", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-content-guidelines", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-logging", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-example", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-all-services", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-design-patterns", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-specific-service", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-factory-pattern", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-last-100-lines", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-output-by-tool", + "from": "file:docs/agenstra/deployment/docker-deployment.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/ai-agents/skills.md", - "to": "concept:agenstra-related", + "from": "file:docs/agenstra/deployment/environment-configuration.md", + "to": "concept:agenstra-environment-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/api-reference/README.md", - "to": "concept:agenstra-api-reference", + "from": "file:docs/agenstra/deployment/environment-configuration.md", + "to": "concept:agenstra-backend-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/api-reference/README.md", - "to": "concept:agenstra-agent-controller-api", + "from": "file:docs/agenstra/deployment/environment-configuration.md", + "to": "concept:agenstra-backend-agent-manager", "type": "contains" }, { - "from": "file:docs/agenstra/api-reference/README.md", - "to": "concept:agenstra-agent-manager-api", + "from": "file:docs/agenstra/deployment/environment-configuration.md", + "to": "concept:agenstra-frontend-applications-express-ssr", "type": "contains" }, { - "from": "file:docs/agenstra/api-reference/README.md", - "to": "concept:agenstra-using-the-specifications", + "from": "file:docs/agenstra/deployment/environment-configuration.md", + "to": "concept:agenstra-redis-and-bullmq-background-jobs", "type": "contains" }, { - "from": "file:docs/agenstra/api-reference/README.md", - "to": "concept:agenstra-generated-client-packages", + "from": "file:docs/agenstra/deployment/environment-configuration.md", + "to": "concept:agenstra-environment-specific-defaults", "type": "contains" }, { - "from": "file:docs/agenstra/api-reference/README.md", + "from": "file:docs/agenstra/deployment/environment-configuration.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/applications/README.md", - "to": "concept:agenstra-applications-documentation", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-local-development", "type": "contains" }, { - "from": "file:docs/agenstra/applications/README.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-prerequisites", "type": "contains" }, { - "from": "file:docs/agenstra/applications/README.md", - "to": "concept:agenstra-applications", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-installation", "type": "contains" }, { - "from": "file:docs/agenstra/applications/README.md", - "to": "concept:agenstra-application-relationships", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-database-setup", "type": "contains" }, { - "from": "file:docs/agenstra/applications/README.md", - "to": "concept:agenstra-communication-patterns", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-start-postgresql", "type": "contains" }, { - "from": "file:docs/agenstra/applications/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-backend-agent-controller", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-database", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-authentication-choose-one", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-features", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-or-keycloak", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-architecture", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-keycloak-auth-server-url-http-localhost-8380", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-keycloak-realm-agenstra", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-websocket-gateway", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-keycloak-client-id-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-authentication", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-keycloak-client-secret-your-client-secret", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-rate-limiting", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-optional-keycloak-server-url-if-different-from-auth-server-url", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-cors-configuration", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-optional-keycloak-token-validation-online-default-or-offline", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-outbound-client-workspace-urls-ssrf", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-ports", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-environment-variables", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-cors-for-development", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-database-setup", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-rate-limiting-disabled-for-development", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-docker-deployment", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-build-api-container", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-cors", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-run-with-docker-compose-recommended", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-git-repository-optional", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-or-run-directly", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-cursor-agent", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-production-deployment-checklist", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-running-applications", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-terminal-1-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-controller.md", - "to": "concept:agenstra-license", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-terminal-2-agent-manager", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-backend-agent-manager", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-terminal-3-frontend", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-development-workflow", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-features", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-run-all-tests", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-architecture", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-run-tests-for-specific-project", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-run-tests-with-coverage", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-websocket-gateway", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-build-all-projects", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-authentication", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-build-specific-project", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-rate-limiting", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-docker-for-agent-containers", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-cors-configuration", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-check-docker-status", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-environment-variables", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-start-docker-if-not-running", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-database-setup", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-macos-open-docker-desktop", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-docker-deployment", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-linux-sudo-systemctl-start-docker", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-build-api-container", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-troubleshooting", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-build-worker-container", + "from": "file:docs/agenstra/deployment/local-development.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-build-vnc-container", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-production-deployment-checklist", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-run-with-docker-compose-recommended", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-pre-deployment-checklist", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-or-run-directly-with-docker-socket-mount", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-security-considerations", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-production-deployment-checklist", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-performance-optimization", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-monitoring-setup", "type": "contains" }, { - "from": "file:docs/agenstra/applications/backend-agent-manager.md", - "to": "concept:agenstra-license", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-backup-strategies", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-frontend-agent-console", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-deployment-process", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-purpose", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-rollback-plan", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-features", + "from": "file:docs/agenstra/deployment/production-checklist.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-architecture", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-system-requirements", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-state-management-ngrx", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-routing", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-platform-prerequisites", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-components", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-controller-stack", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-websocket-communication", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-agent-manager-host", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-authentication", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-frontend-agent-console", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-environment-configuration", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-mixed-and-local-development-host", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-development", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-production-sizing-examples", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-serve-the-application", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-network-and-external-dependencies", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-build-for-production", + "from": "file:docs/agenstra/deployment/system-requirements.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-run-tests", + "from": "file:docs/agenstra/features/README.md", + "to": "concept:agenstra-features-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-build-container", + "from": "file:docs/agenstra/features/README.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-run-with-docker-compose", + "from": "file:docs/agenstra/features/README.md", + "to": "concept:agenstra-features", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", - "to": "concept:agenstra-production-deployment", + "from": "file:docs/agenstra/features/README.md", + "to": "concept:agenstra-feature-relationships", "type": "contains" }, { - "from": "file:docs/agenstra/applications/frontend-agent-console.md", + "from": "file:docs/agenstra/features/README.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/README.md", - "to": "concept:agenstra-architecture-documentation", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-agent-management", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/README.md", + "from": "file:docs/agenstra/features/agent-management.md", "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/README.md", - "to": "concept:agenstra-documentation-structure", - "type": "contains" - }, - { - "from": "file:docs/agenstra/architecture/README.md", - "to": "concept:agenstra-key-architectural-concepts", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-creating-an-agent", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-agent-lifecycle", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/README.md", - "to": "concept:agenstra-architecture-principles", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-agent-types", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-components", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-agent-operations", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-backend-applications", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-container-interaction", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-frontend-applications", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-backend-libraries", + "from": "file:docs/agenstra/features/agent-management.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-frontend-libraries", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-atlassian-import", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-component-dependencies", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-database-schema", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-why-controller-native", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-external-dependencies", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-access-control", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-component-communication", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-jira-vs-confluence", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/components.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-queue-jobs-and-manual-runs", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-data-flow", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-sync-markers-and-cleanup", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-http-rest-api-flow", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-console-entry-points", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-websocket-event-flow", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-state-management-flow-ngrx", + "from": "file:docs/agenstra/features/atlassian-import.md", + "to": "concept:agenstra-api-references", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-file-system-operations-flow", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-version-control-operations-flow", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-server-provisioning-flow", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-authentication-methods", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/data-flow.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-users-authentication-flow", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-system-overview", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-disabling-signup", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-three-tier-architecture", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-user-roles", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-component-relationships", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-admin-user-management", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-communication-patterns", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-security-features", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-data-flow", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-authentication-flow", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-authentication-flow-diagram", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-state-management", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-registration-sequence-diagram", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", - "to": "concept:agenstra-reconnection-handling", + "from": "file:docs/agenstra/features/authentication.md", + "to": "concept:agenstra-per-client-permissions", "type": "contains" }, { - "from": "file:docs/agenstra/architecture/system-overview.md", + "from": "file:docs/agenstra/features/authentication.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-deployment-documentation", + "from": "file:docs/agenstra/features/chat-interface.md", + "to": "concept:agenstra-chat-interface", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", + "from": "file:docs/agenstra/features/chat-interface.md", "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-deployment-guides", + "from": "file:docs/agenstra/features/chat-interface.md", + "to": "concept:agenstra-features", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-deployment-architecture", + "from": "file:docs/agenstra/features/chat-interface.md", + "to": "concept:agenstra-usage", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-quick-start", + "from": "file:docs/agenstra/features/chat-interface.md", + "to": "concept:agenstra-message-flow", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-start-all-services", + "from": "file:docs/agenstra/features/chat-interface.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-install-dependencies", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-client-management", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-start-services", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-creating-a-client", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/background-jobs.md", - "to": "concept:agenstra-background-jobs-bullmq", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-client-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/background-jobs.md", - "to": "concept:agenstra-architecture", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-managing-clients", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/background-jobs.md", - "to": "concept:agenstra-redis-and-queue-environment-variables", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-per-client-permissions", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/background-jobs.md", - "to": "concept:agenstra-docker-compose", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-authentication-types", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/background-jobs.md", - "to": "concept:agenstra-bull-board", + "from": "file:docs/agenstra/features/client-management.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/background-jobs.md", + "from": "file:docs/agenstra/features/client-management.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-docker-deployment", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-deployment-and-ci-cd-integration", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", + "from": "file:docs/agenstra/features/deployment.md", "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-prerequisites", - "type": "contains" - }, - { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-docker-compose-setup", - "type": "contains" - }, - { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-container-configuration", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-building-containers", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-supported-providers", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-agent-controller", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-agent-manager", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-running-containers", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-usage-examples", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-start-all-services", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-security", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-view-logs", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-database-schema", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-stop-services", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-integration-with-agent-creation-update", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-stop-and-remove-volumes", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-future-enhancements", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-run-agent-controller", + "from": "file:docs/agenstra/features/deployment.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-run-agent-manager-with-docker-socket", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-dynamic-provider-plugins", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-run-frontend-agent-console", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-docker-socket-mount", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-resolution-order", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-health-checks", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-config-format", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-logging", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-alias-package-specifier-package-name-whether-baked-in-or-mounted", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-all-services", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-pascalcase-alias-selects-a-named-class-export-from-the-package", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-specific-service", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-bare-specifier", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-last-100-lines", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-file-entry-directory-relative-to-dynamic-provider-plugin-path", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/docker-deployment.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-plugin-package-contract", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/environment-configuration.md", - "to": "concept:agenstra-environment-configuration", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-baked-in-plugins-image-build", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/environment-configuration.md", - "to": "concept:agenstra-backend-agent-controller", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-post-build-plugins-no-image-rebuild", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/environment-configuration.md", - "to": "concept:agenstra-backend-agent-manager", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-registry-package-requires-npmrc-token-in-image-or-mounted-secret", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/environment-configuration.md", - "to": "concept:agenstra-frontend-applications-express-ssr", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-paths-under-the-plugin-root-absolute-or-relative-to-plugin-path", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/environment-configuration.md", - "to": "concept:agenstra-redis-and-bullmq-background-jobs", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-mixed", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/environment-configuration.md", - "to": "concept:agenstra-environment-specific-defaults", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-startup-error-policy", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/environment-configuration.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-security", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-local-development", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-where-each-registry-is-used", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-prerequisites", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-docker-compose-optional-plugins", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-installation", + "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-database-setup", + "from": "file:docs/agenstra/features/email-notifications.md", + "to": "concept:agenstra-email-notifications-agenstra", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-start-postgresql", + "from": "file:docs/agenstra/features/email-notifications.md", + "to": "concept:agenstra-transport", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-configuration", + "from": "file:docs/agenstra/features/email-notifications.md", + "to": "concept:agenstra-wiring", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-database", + "from": "file:docs/agenstra/features/email-notifications.md", + "to": "concept:agenstra-templates", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-authentication-choose-one", + "from": "file:docs/agenstra/features/email-notifications.md", + "to": "concept:agenstra-events", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-or-keycloak", + "from": "file:docs/agenstra/features/file-management.md", + "to": "concept:agenstra-file-management", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-keycloak-auth-server-url-http-localhost-8380", + "from": "file:docs/agenstra/features/file-management.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-keycloak-realm-agenstra", + "from": "file:docs/agenstra/features/file-management.md", + "to": "concept:agenstra-file-operations", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-keycloak-client-id-agent-controller", + "from": "file:docs/agenstra/features/file-management.md", + "to": "concept:agenstra-file-operation-flow", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-keycloak-client-secret-your-client-secret", + "from": "file:docs/agenstra/features/file-management.md", + "to": "concept:agenstra-real-time-file-updates", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-optional-keycloak-server-url-if-different-from-auth-server-url", + "from": "file:docs/agenstra/features/file-management.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-optional-keycloak-token-validation-online-default-or-offline", + "from": "file:docs/agenstra/features/file-management.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-ports", + "from": "file:docs/agenstra/features/message-filter-rules.md", + "to": "concept:agenstra-message-filter-rules", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-cors-for-development", + "from": "file:docs/agenstra/features/message-filter-rules.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-rate-limiting-disabled-for-development", + "from": "file:docs/agenstra/features/message-filter-rules.md", + "to": "concept:agenstra-why-two-tiers", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-authentication", + "from": "file:docs/agenstra/features/message-filter-rules.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-cors", + "from": "file:docs/agenstra/features/message-filter-rules.md", + "to": "concept:agenstra-api-references", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-git-repository-optional", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-server-provisioning", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-cursor-agent", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-running-applications", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-supported-providers", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-terminal-1-agent-controller", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-provisioning-process", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-terminal-2-agent-manager", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-provisioning-request", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-terminal-3-frontend", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-provisioning-steps", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-development-workflow", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-server-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-run-all-tests", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-environment-variables-interpolation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-run-tests-for-specific-project", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-managing-provisioned-servers", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-run-tests-with-coverage", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-build-all-projects", + "from": "file:docs/agenstra/features/server-provisioning.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-build-specific-project", + "from": "file:docs/agenstra/features/ticket-automation.md", + "to": "concept:agenstra-ticket-automation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-docker-for-agent-containers", + "from": "file:docs/agenstra/features/ticket-automation.md", + "to": "concept:agenstra-prerequisites", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-check-docker-status", + "from": "file:docs/agenstra/features/ticket-automation.md", + "to": "concept:agenstra-background-jobs-bullmq", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-start-docker-if-not-running", + "from": "file:docs/agenstra/features/ticket-automation.md", + "to": "concept:agenstra-run-phases-high-level", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-macos-open-docker-desktop", + "from": "file:docs/agenstra/features/ticket-automation.md", + "to": "concept:agenstra-failures-and-retries", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-linux-sudo-systemctl-start-docker", + "from": "file:docs/agenstra/features/ticket-automation.md", + "to": "concept:agenstra-http-and-realtime", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-troubleshooting", + "from": "file:docs/agenstra/features/ticket-automation.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/local-development.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/tickets-and-workspaces.md", + "to": "concept:agenstra-tickets-and-workspaces", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-production-deployment-checklist", + "from": "file:docs/agenstra/features/tickets-and-workspaces.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-pre-deployment-checklist", + "from": "file:docs/agenstra/features/tickets-and-workspaces.md", + "to": "concept:agenstra-features", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-security-considerations", + "from": "file:docs/agenstra/features/tickets-and-workspaces.md", + "to": "concept:agenstra-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-performance-optimization", + "from": "file:docs/agenstra/features/tickets-and-workspaces.md", + "to": "concept:agenstra-console-entry-points", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-monitoring-setup", + "from": "file:docs/agenstra/features/tickets-and-workspaces.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-backup-strategies", + "from": "file:docs/agenstra/features/tickets-and-workspaces.md", + "to": "concept:agenstra-api-and-protocol-references", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-deployment-process", + "from": "file:docs/agenstra/features/usage-statistics.md", + "to": "concept:agenstra-usage-statistics", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-rollback-plan", + "from": "file:docs/agenstra/features/usage-statistics.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/production-checklist.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/usage-statistics.md", + "to": "concept:agenstra-per-workspace-statistics", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-system-requirements", + "from": "file:docs/agenstra/features/usage-statistics.md", + "to": "concept:agenstra-who-can-access-what", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/features/usage-statistics.md", + "to": "concept:agenstra-relationship-to-container-stats", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-platform-prerequisites", + "from": "file:docs/agenstra/features/usage-statistics.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-controller-stack", + "from": "file:docs/agenstra/features/usage-statistics.md", + "to": "concept:agenstra-api-reference", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-agent-manager-host", + "from": "file:docs/agenstra/features/version-control.md", + "to": "concept:agenstra-version-control", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-frontend-agent-console", + "from": "file:docs/agenstra/features/version-control.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-mixed-and-local-development-host", + "from": "file:docs/agenstra/features/version-control.md", + "to": "concept:agenstra-git-operations", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-production-sizing-examples", + "from": "file:docs/agenstra/features/version-control.md", + "to": "concept:agenstra-git-operation-flow", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", - "to": "concept:agenstra-network-and-external-dependencies", + "from": "file:docs/agenstra/features/version-control.md", + "to": "concept:agenstra-api-endpoints", "type": "contains" }, { - "from": "file:docs/agenstra/deployment/system-requirements.md", + "from": "file:docs/agenstra/features/version-control.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/README.md", - "to": "concept:agenstra-features-documentation", + "from": "file:docs/agenstra/features/vnc-browser-access.md", + "to": "concept:agenstra-vnc-browser-access", "type": "contains" }, { - "from": "file:docs/agenstra/features/README.md", + "from": "file:docs/agenstra/features/vnc-browser-access.md", "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/features/README.md", - "to": "concept:agenstra-features", + "from": "file:docs/agenstra/features/vnc-browser-access.md", + "to": "concept:agenstra-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/features/README.md", - "to": "concept:agenstra-feature-relationships", + "from": "file:docs/agenstra/features/vnc-browser-access.md", + "to": "concept:agenstra-vnc-container-lifecycle", "type": "contains" }, { - "from": "file:docs/agenstra/features/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/vnc-browser-access.md", + "to": "concept:agenstra-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-agent-management", + "from": "file:docs/agenstra/features/vnc-browser-access.md", + "to": "concept:agenstra-usage", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/features/vnc-browser-access.md", + "to": "concept:agenstra-troubleshooting", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-creating-an-agent", + "from": "file:docs/agenstra/features/vnc-browser-access.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-agent-lifecycle", + "from": "file:docs/agenstra/features/web-ide.md", + "to": "concept:agenstra-web-ide", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-agent-types", + "from": "file:docs/agenstra/features/web-ide.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-agent-operations", + "from": "file:docs/agenstra/features/web-ide.md", + "to": "concept:agenstra-features", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-container-interaction", + "from": "file:docs/agenstra/features/web-ide.md", + "to": "concept:agenstra-usage", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/features/web-ide.md", + "to": "concept:agenstra-editor-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/features/agent-management.md", + "from": "file:docs/agenstra/features/web-ide.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-atlassian-import", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-webhooks-agenstra", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-access", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-why-controller-native", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-authentication-modes", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-access-control", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-event-envelope", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-jira-vs-confluence", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-event-catalog", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-queue-jobs-and-manual-runs", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-payload-examples", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-sync-markers-and-cleanup", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-delivery-and-retries", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-console-entry-points", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-delivery-log-retention", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/features/webhooks.md", + "to": "concept:agenstra-endpoint-deletion", "type": "contains" }, { - "from": "file:docs/agenstra/features/atlassian-import.md", - "to": "concept:agenstra-api-references", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-websocket-communication", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-authentication", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-authentication-methods", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-connection-flow", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-users-authentication-flow", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-events", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-disabling-signup", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-tickets-board-realtime-tickets-namespace", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-user-roles", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-reconnection-handling", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-admin-user-management", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-chat-history-restoration", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-security-features", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-event-forwarding", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-error-handling", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-authentication-flow-diagram", + "from": "file:docs/agenstra/features/websocket-communication.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-registration-sequence-diagram", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-getting-started-with-agenstra", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-per-client-permissions", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-prerequisites", "type": "contains" }, { - "from": "file:docs/agenstra/features/authentication.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-installation", "type": "contains" }, { - "from": "file:docs/agenstra/features/chat-interface.md", - "to": "concept:agenstra-chat-interface", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-clone-the-repository-if-not-already-done", "type": "contains" }, { - "from": "file:docs/agenstra/features/chat-interface.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-start-all-services", "type": "contains" }, { - "from": "file:docs/agenstra/features/chat-interface.md", - "to": "concept:agenstra-features", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-in-another-terminal-start-agent-manager", "type": "contains" }, { - "from": "file:docs/agenstra/features/chat-interface.md", - "to": "concept:agenstra-usage", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-in-another-terminal-start-frontend", "type": "contains" }, { - "from": "file:docs/agenstra/features/chat-interface.md", - "to": "concept:agenstra-message-flow", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-install-dependencies", "type": "contains" }, { - "from": "file:docs/agenstra/features/chat-interface.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-start-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-client-management", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-database", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-creating-a-client", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-authentication-choose-one", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-client-configuration", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-option-1-api-key-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-managing-clients", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-option-2-keycloak-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-per-client-permissions", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-optional-keycloak-server-url-if-different-from-auth-server-url", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-authentication-types", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-optional-keycloak-token-validation-online-default-or-offline", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-option-3-users-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/features/client-management.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-ports", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-deployment-and-ci-cd-integration", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-cors-for-production", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-rate-limiting-optional", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-architecture", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-supported-providers", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-or-keycloak-configuration-same-as-above", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-configuration", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-git-repository-for-agent-workspace", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-cursor-agent", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-usage-examples", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-cors", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-security", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-api-endpoint", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-database-schema", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-websocket-endpoint", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-integration-with-agent-creation-update", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-creating-your-first-client", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-future-enhancements", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-creating-your-first-agent", "type": "contains" }, { - "from": "file:docs/agenstra/features/deployment.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-connecting-to-an-agent", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-dynamic-provider-plugins", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-quick-tour-of-features", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-next-steps", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-resolution-order", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-troubleshooting", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-config-format", + "from": "file:docs/agenstra/getting-started.md", + "to": "concept:agenstra-additional-resources", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-alias-package-specifier-package-name-whether-baked-in-or-mounted", + "from": "file:docs/agenstra/security/README.md", + "to": "concept:agenstra-security-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-pascalcase-alias-selects-a-named-class-export-from-the-package", + "from": "file:docs/agenstra/security/README.md", + "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-bare-specifier", + "from": "file:docs/agenstra/security/README.md", + "to": "concept:agenstra-documentation-structure", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-file-entry-directory-relative-to-dynamic-provider-plugin-path", + "from": "file:docs/agenstra/security/README.md", + "to": "concept:agenstra-configuration-reference", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-plugin-package-contract", + "from": "file:docs/agenstra/security/README.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-baked-in-plugins-image-build", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-accepted-risks-register", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-post-build-plugins-no-image-rebuild", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-registry-package-requires-npmrc-token-in-image-or-mounted-secret", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-ar-002-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-paths-under-the-plugin-root-absolute-or-relative-to-plugin-path", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-ar-003-backend-authentication-method-resolution", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-mixed", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-ar-004-desktop-window-open-policy-native-agent-console", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-startup-error-policy", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-security", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-hardening-paths-if-an-acceptance-is-withdrawn", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-where-each-registry-is-used", + "from": "file:docs/agenstra/security/accepted-risks.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-docker-compose-optional-plugins", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-ci-security-scanning-trivy", "type": "contains" }, { - "from": "file:docs/agenstra/features/dynamic-provider-plugins.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-what-is-scanned", "type": "contains" }, { - "from": "file:docs/agenstra/features/email-notifications.md", - "to": "concept:agenstra-email-notifications-agenstra", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-workflows", "type": "contains" }, { - "from": "file:docs/agenstra/features/email-notifications.md", - "to": "concept:agenstra-transport", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-severity-policy", "type": "contains" }, { - "from": "file:docs/agenstra/features/email-notifications.md", - "to": "concept:agenstra-wiring", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-viewing-results", "type": "contains" }, { - "from": "file:docs/agenstra/features/email-notifications.md", - "to": "concept:agenstra-templates", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-triage-and-exceptions", "type": "contains" }, { - "from": "file:docs/agenstra/features/email-notifications.md", - "to": "concept:agenstra-events", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-local-reproduction", "type": "contains" }, { - "from": "file:docs/agenstra/features/file-management.md", - "to": "concept:agenstra-file-management", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-relationship-to-sbom-and-dependency-track", "type": "contains" }, { - "from": "file:docs/agenstra/features/file-management.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/security/ci-security-scanning.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/file-management.md", - "to": "concept:agenstra-file-operations", + "from": "file:docs/agenstra/security/compliance-and-standards.md", + "to": "concept:agenstra-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", "type": "contains" }, { - "from": "file:docs/agenstra/features/file-management.md", - "to": "concept:agenstra-file-operation-flow", + "from": "file:docs/agenstra/security/compliance-and-standards.md", + "to": "concept:agenstra-eu-cyber-resilience-act-cra", "type": "contains" }, { - "from": "file:docs/agenstra/features/file-management.md", - "to": "concept:agenstra-real-time-file-updates", + "from": "file:docs/agenstra/security/compliance-and-standards.md", + "to": "concept:agenstra-bsi-it-grundschutz", "type": "contains" }, { - "from": "file:docs/agenstra/features/file-management.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/security/compliance-and-standards.md", + "to": "concept:agenstra-trust-boundaries-summary", "type": "contains" }, { - "from": "file:docs/agenstra/features/file-management.md", + "from": "file:docs/agenstra/security/compliance-and-standards.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/message-filter-rules.md", - "to": "concept:agenstra-message-filter-rules", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-container-image-security", "type": "contains" }, { - "from": "file:docs/agenstra/features/message-filter-rules.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-runtime-users", "type": "contains" }, { - "from": "file:docs/agenstra/features/message-filter-rules.md", - "to": "concept:agenstra-why-two-tiers", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-agent-workload-bind-mounts", "type": "contains" }, { - "from": "file:docs/agenstra/features/message-filter-rules.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-restricted-sudo", "type": "contains" }, { - "from": "file:docs/agenstra/features/message-filter-rules.md", - "to": "concept:agenstra-api-references", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-manager-and-controller-api-images", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-server-provisioning", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-ssh-sidecar-image", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-vnc-image", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-supported-providers", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-openclaw-agi-image", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-provisioning-process", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-coordinated-upgrades", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-provisioning-request", + "from": "file:docs/agenstra/security/container-images.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-provisioning-steps", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-operational-hardening", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-server-configuration", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-container-images-docker", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-environment-variables-interpolation", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-authentication-mode-backends", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-managing-provisioned-servers", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-agent-controller-remote-client-endpoints-ssrf", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-http-proxy-to-remote-agent-manager-headers", "type": "contains" }, { - "from": "file:docs/agenstra/features/server-provisioning.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-logging-and-correlation", "type": "contains" }, { - "from": "file:docs/agenstra/features/ticket-automation.md", - "to": "concept:agenstra-ticket-automation", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-frontend-runtime-configuration-get-config", "type": "contains" }, { - "from": "file:docs/agenstra/features/ticket-automation.md", - "to": "concept:agenstra-prerequisites", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-content-security-policy-frontend-express", "type": "contains" }, { - "from": "file:docs/agenstra/features/ticket-automation.md", - "to": "concept:agenstra-background-jobs-bullmq", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-websocket-cors-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/features/ticket-automation.md", - "to": "concept:agenstra-run-phases-high-level", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-origin-allowlist-unsafe-http-methods", "type": "contains" }, { - "from": "file:docs/agenstra/features/ticket-automation.md", - "to": "concept:agenstra-failures-and-retries", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-electron-shell-new-windows", "type": "contains" }, { - "from": "file:docs/agenstra/features/ticket-automation.md", - "to": "concept:agenstra-http-and-realtime", + "from": "file:docs/agenstra/security/operational-hardening.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/ticket-automation.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-vulnerability-reporting-and-artifacts", "type": "contains" }, { - "from": "file:docs/agenstra/features/tickets-and-workspaces.md", - "to": "concept:agenstra-tickets-and-workspaces", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-supported-versions-and-security-updates", "type": "contains" }, { - "from": "file:docs/agenstra/features/tickets-and-workspaces.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-our-response-commitment", "type": "contains" }, { - "from": "file:docs/agenstra/features/tickets-and-workspaces.md", - "to": "concept:agenstra-features", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-reporting-a-vulnerability", "type": "contains" }, { - "from": "file:docs/agenstra/features/tickets-and-workspaces.md", - "to": "concept:agenstra-architecture", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-continuous-scanning-ci", "type": "contains" }, { - "from": "file:docs/agenstra/features/tickets-and-workspaces.md", - "to": "concept:agenstra-console-entry-points", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-software-bill-of-materials-sbom", "type": "contains" }, { - "from": "file:docs/agenstra/features/tickets-and-workspaces.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-desktop-release-integrity", "type": "contains" }, { - "from": "file:docs/agenstra/features/tickets-and-workspaces.md", - "to": "concept:agenstra-api-and-protocol-references", + "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/usage-statistics.md", - "to": "concept:agenstra-usage-statistics", + "from": "file:docs/agenstra/troubleshooting/README.md", + "to": "concept:agenstra-troubleshooting-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/usage-statistics.md", + "from": "file:docs/agenstra/troubleshooting/README.md", "to": "concept:agenstra-overview", "type": "contains" }, { - "from": "file:docs/agenstra/features/usage-statistics.md", - "to": "concept:agenstra-per-workspace-statistics", + "from": "file:docs/agenstra/troubleshooting/README.md", + "to": "concept:agenstra-troubleshooting-guides", "type": "contains" }, { - "from": "file:docs/agenstra/features/usage-statistics.md", - "to": "concept:agenstra-who-can-access-what", + "from": "file:docs/agenstra/troubleshooting/README.md", + "to": "concept:agenstra-quick-troubleshooting", "type": "contains" }, { - "from": "file:docs/agenstra/features/usage-statistics.md", - "to": "concept:agenstra-relationship-to-container-stats", + "from": "file:docs/agenstra/troubleshooting/README.md", + "to": "concept:agenstra-getting-help", "type": "contains" }, { - "from": "file:docs/agenstra/features/usage-statistics.md", + "from": "file:docs/agenstra/troubleshooting/README.md", "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/usage-statistics.md", - "to": "concept:agenstra-api-reference", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-common-issues", "type": "contains" }, { - "from": "file:docs/agenstra/features/version-control.md", - "to": "concept:agenstra-version-control", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-connection-issues", "type": "contains" }, { - "from": "file:docs/agenstra/features/version-control.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-authentication-problems", "type": "contains" }, { - "from": "file:docs/agenstra/features/version-control.md", - "to": "concept:agenstra-git-operations", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-container-issues", "type": "contains" }, { - "from": "file:docs/agenstra/features/version-control.md", - "to": "concept:agenstra-git-operation-flow", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-database-issues", "type": "contains" }, { - "from": "file:docs/agenstra/features/version-control.md", - "to": "concept:agenstra-api-endpoints", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-websocket-problems", "type": "contains" }, { - "from": "file:docs/agenstra/features/version-control.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-file-operation-errors", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-vnc-browser-access", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-rate-limiting-issues", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-cors-issues", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-architecture", + "from": "file:docs/agenstra/troubleshooting/common-issues.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-vnc-container-lifecycle", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-debugging-guide", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-configuration", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-logging", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-usage", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-backend-agent-controller", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-troubleshooting", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-logs-appear-in-console", "type": "contains" }, { - "from": "file:docs/agenstra/features/vnc-browser-access.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-backend-agent-manager", "type": "contains" }, { - "from": "file:docs/agenstra/features/web-ide.md", - "to": "concept:agenstra-web-ide", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-docker-containers", "type": "contains" }, { - "from": "file:docs/agenstra/features/web-ide.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-debugging-tools", "type": "contains" }, { - "from": "file:docs/agenstra/features/web-ide.md", - "to": "concept:agenstra-features", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-view-container-logs", "type": "contains" }, { - "from": "file:docs/agenstra/features/web-ide.md", - "to": "concept:agenstra-usage", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-execute-commands-in-container", "type": "contains" }, { - "from": "file:docs/agenstra/features/web-ide.md", - "to": "concept:agenstra-editor-configuration", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-inspect-container", "type": "contains" }, { - "from": "file:docs/agenstra/features/web-ide.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-view-container-stats", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-webhooks-agenstra", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-connect-to-database", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-access", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-view-tables", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-authentication-modes", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-query-data", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-event-envelope", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-view-logs", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-event-catalog", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-common-debugging-scenarios", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-payload-examples", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-performance-debugging", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-delivery-and-retries", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-network-debugging", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-delivery-log-retention", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-test-api-endpoint", "type": "contains" }, { - "from": "file:docs/agenstra/features/webhooks.md", - "to": "concept:agenstra-endpoint-deletion", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-test-with-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-websocket-communication", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-using-wscat", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-overview", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-send-event", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-authentication", + "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", + "to": "concept:agenstra-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-connection-flow", + "from": "file:docs/decabill/README.md", + "to": "concept:decabill-decabill-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-events", + "from": "file:docs/decabill/README.md", + "to": "concept:decabill-what-is-decabill", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-tickets-board-realtime-tickets-namespace", + "from": "file:docs/decabill/README.md", + "to": "concept:decabill-documentation-structure", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-reconnection-handling", + "from": "file:docs/decabill/README.md", + "to": "concept:decabill-quick-start", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-chat-history-restoration", + "from": "file:docs/decabill/README.md", + "to": "concept:decabill-system-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-event-forwarding", + "from": "file:docs/decabill/README.md", + "to": "concept:decabill-external-resources", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-error-handling", + "from": "file:docs/decabill/README.md", + "to": "concept:decabill-licensing", "type": "contains" }, { - "from": "file:docs/agenstra/features/websocket-communication.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/api-reference/README.md", + "to": "concept:decabill-api-reference", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-getting-started-with-agenstra", + "from": "file:docs/decabill/api-reference/README.md", + "to": "concept:decabill-billing-manager-http-api", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-prerequisites", + "from": "file:docs/decabill/api-reference/README.md", + "to": "concept:decabill-billing-manager-websocket-gateways", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-installation", + "from": "file:docs/decabill/api-reference/README.md", + "to": "concept:decabill-using-the-specifications", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-clone-the-repository-if-not-already-done", + "from": "file:docs/decabill/api-reference/README.md", + "to": "concept:decabill-generated-client-package", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-start-all-services", + "from": "file:docs/decabill/api-reference/README.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-in-another-terminal-start-agent-manager", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-applications-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-in-another-terminal-start-frontend", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-install-dependencies", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-licensing", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-start-agent-controller", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-applications", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-configuration", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-application-relationships", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-database", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-communication-patterns", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-authentication-choose-one", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-build-and-run-commands", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-option-1-api-key-authentication", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-backend", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-option-2-keycloak-authentication", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-frontend", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-optional-keycloak-server-url-if-different-from-auth-server-url", + "from": "file:docs/decabill/applications/README.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-optional-keycloak-token-validation-online-default-or-offline", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-backend-billing-manager", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-option-3-users-authentication", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-purpose", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-ports", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-features", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-cors-for-production", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-rate-limiting-optional", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-ports-and-network-surfaces", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-authentication", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-queue-roles", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-or-keycloak-configuration-same-as-above", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-docker-image", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-git-repository-for-agent-workspace", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-authentication", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-cursor-agent", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-major-api-areas", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-cors", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-websocket-gateways", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-api-endpoint", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-stripe-and-provisioning", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-websocket-endpoint", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-development-commands", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-creating-your-first-client", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-run-locally-set-queue-role-all-in-env", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-creating-your-first-agent", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-build", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-connecting-to-an-agent", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-tests", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-quick-tour-of-features", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-generate-typescript-client-from-openapi", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-next-steps", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-bull-board-local", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-troubleshooting", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/getting-started.md", - "to": "concept:agenstra-additional-resources", + "from": "file:docs/decabill/applications/backend-billing-manager.md", + "to": "concept:decabill-license", "type": "contains" }, { - "from": "file:docs/agenstra/security/README.md", - "to": "concept:agenstra-security-documentation", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-frontend-billing-console", "type": "contains" }, { - "from": "file:docs/agenstra/security/README.md", - "to": "concept:agenstra-overview", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-purpose", "type": "contains" }, { - "from": "file:docs/agenstra/security/README.md", - "to": "concept:agenstra-documentation-structure", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-features", "type": "contains" }, { - "from": "file:docs/agenstra/security/README.md", - "to": "concept:agenstra-configuration-reference", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/security/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-routes-overview", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-accepted-risks-register", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-express-ssr-server", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-ar-002-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-ngrx-state-slices", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-ar-003-backend-authentication-method-resolution", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-development-commands", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-ar-004-desktop-window-open-policy-native-agent-console", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-dev-server-port-4500", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-production-build-localized", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-hardening-paths-if-an-acceptance-is-withdrawn", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-ssr-server-after-build", "type": "contains" }, { - "from": "file:docs/agenstra/security/accepted-risks.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-unit-tests", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-ci-security-scanning-trivy", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-docker-compose", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-what-is-scanned", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-workflows", + "from": "file:docs/decabill/applications/frontend-billing-console.md", + "to": "concept:decabill-license", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-severity-policy", + "from": "file:docs/decabill/architecture/README.md", + "to": "concept:decabill-architecture-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-viewing-results", + "from": "file:docs/decabill/architecture/README.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-triage-and-exceptions", + "from": "file:docs/decabill/architecture/README.md", + "to": "concept:decabill-documentation-structure", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-local-reproduction", + "from": "file:docs/decabill/architecture/README.md", + "to": "concept:decabill-key-architectural-concepts", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-relationship-to-sbom-and-dependency-track", + "from": "file:docs/decabill/architecture/README.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/security/ci-security-scanning.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/architecture/README.md", + "to": "concept:decabill-architecture-principles", "type": "contains" }, { - "from": "file:docs/agenstra/security/compliance-and-standards.md", - "to": "concept:agenstra-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-components", "type": "contains" }, { - "from": "file:docs/agenstra/security/compliance-and-standards.md", - "to": "concept:agenstra-eu-cyber-resilience-act-cra", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-backend-billing-manager", "type": "contains" }, { - "from": "file:docs/agenstra/security/compliance-and-standards.md", - "to": "concept:agenstra-bsi-it-grundschutz", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-frontend-billing-console", "type": "contains" }, { - "from": "file:docs/agenstra/security/compliance-and-standards.md", - "to": "concept:agenstra-trust-boundaries-summary", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-frontend-landing-page", "type": "contains" }, { - "from": "file:docs/agenstra/security/compliance-and-standards.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-postgresql", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-container-image-security", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-redis", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-runtime-users", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-stripe", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-agent-workload-bind-mounts", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-mailhog-local-only", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-restricted-sudo", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-cloud-providers", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-manager-and-controller-api-images", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-component-dependencies", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-ssh-sidecar-image", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-external-dependencies", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-vnc-image", + "from": "file:docs/decabill/architecture/components.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-openclaw-agi-image", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-data-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-coordinated-upgrades", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-http-rest-api-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/container-images.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-websocket-dashboard-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-operational-hardening", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-stripe-redirect-and-webhook-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-container-images-docker", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-open-position-and-billing-day-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-authentication-mode-backends", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-server-provisioning-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-agent-controller-remote-client-endpoints-ssrf", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-backorder-retry-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-http-proxy-to-remote-agent-manager-headers", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-admin-manual-invoice-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-logging-and-correlation", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-multi-tenant-request-flow", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-frontend-runtime-configuration-get-config", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-state-management-flow-ngrx", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-content-security-policy-frontend-express", + "from": "file:docs/decabill/architecture/data-flow.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-websocket-cors-agent-controller", + "from": "file:docs/decabill/architecture/system-overview.md", + "to": "concept:decabill-system-overview", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-origin-allowlist-unsafe-http-methods", + "from": "file:docs/decabill/architecture/system-overview.md", + "to": "concept:decabill-two-tier-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-electron-shell-new-windows", + "from": "file:docs/decabill/architecture/system-overview.md", + "to": "concept:decabill-component-relationships", "type": "contains" }, { - "from": "file:docs/agenstra/security/operational-hardening.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/architecture/system-overview.md", + "to": "concept:decabill-communication-patterns", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-vulnerability-reporting-and-artifacts", + "from": "file:docs/decabill/architecture/system-overview.md", + "to": "concept:decabill-deployment-topology", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-supported-versions-and-security-updates", + "from": "file:docs/decabill/architecture/system-overview.md", + "to": "concept:decabill-data-boundaries", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-our-response-commitment", + "from": "file:docs/decabill/architecture/system-overview.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-reporting-a-vulnerability", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-deployment-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-continuous-scanning-ci", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-software-bill-of-materials-sbom", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-deployment-guides", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-desktop-release-integrity", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-deployment-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-quick-start", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/README.md", - "to": "concept:agenstra-troubleshooting-documentation", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-billing-manager-api-worker-scheduler-postgres-redis-mailhog", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/README.md", - "to": "concept:agenstra-overview", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-billing-console-frontend", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/README.md", - "to": "concept:agenstra-troubleshooting-guides", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-docs-frontend-optional", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/README.md", - "to": "concept:agenstra-quick-troubleshooting", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-install-dependencies-repository-root", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/README.md", - "to": "concept:agenstra-getting-help", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-start-billing-manager", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/README.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-start-billing-console", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-common-issues", + "from": "file:docs/decabill/deployment/README.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-connection-issues", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-background-jobs-bullmq", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-authentication-problems", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-architecture", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-container-issues", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-job-registry", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-database-issues", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-redis-and-queue-environment-variables", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-websocket-problems", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-docker-compose", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-file-operation-errors", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-bull-board", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-rate-limiting-issues", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-tenant-context-in-jobs", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-cors-issues", + "from": "file:docs/decabill/deployment/background-jobs.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/common-issues.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-docker-deployment", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-debugging-guide", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-logging", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-prerequisites", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-backend-agent-controller", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-docker-compose-setup", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-logs-appear-in-console", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-container-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-backend-agent-manager", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-building-containers", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-docker-containers", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-billing-api-image", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-debugging-tools", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-billing-console-server-image", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-view-container-logs", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-docs-server-image", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-execute-commands-in-container", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-container-security-images", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-inspect-container", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-running-containers", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-view-container-stats", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-health-checks", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-connect-to-database", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-bull-board", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-view-tables", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-logging", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-query-data", + "from": "file:docs/decabill/deployment/docker-deployment.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-view-logs", + "from": "file:docs/decabill/deployment/environment-configuration.md", + "to": "concept:decabill-environment-configuration", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-common-debugging-scenarios", + "from": "file:docs/decabill/deployment/environment-configuration.md", + "to": "concept:decabill-backend-billing-manager", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-performance-debugging", + "from": "file:docs/decabill/deployment/environment-configuration.md", + "to": "concept:decabill-frontend-applications-express-ssr", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-network-debugging", + "from": "file:docs/decabill/deployment/environment-configuration.md", + "to": "concept:decabill-redis-and-bullmq-background-jobs", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-test-api-endpoint", + "from": "file:docs/decabill/deployment/environment-configuration.md", + "to": "concept:decabill-environment-specific-defaults", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-test-with-authentication", + "from": "file:docs/decabill/deployment/environment-configuration.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-using-wscat", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-local-development", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-send-event", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-prerequisites", "type": "contains" }, { - "from": "file:docs/agenstra/troubleshooting/debugging-guide.md", - "to": "concept:agenstra-related-documentation", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-installation", "type": "contains" }, { - "from": "file:docs/decabill/README.md", - "to": "concept:decabill-decabill-documentation", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-database-and-redis-setup", "type": "contains" }, { - "from": "file:docs/decabill/README.md", - "to": "concept:decabill-what-is-decabill", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-postgresql-for-billing-manager", "type": "contains" }, { - "from": "file:docs/decabill/README.md", - "to": "concept:decabill-documentation-structure", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-redis-for-bullmq-host-port-6380-to-avoid-clashing-with-other-stacks", "type": "contains" }, { - "from": "file:docs/decabill/README.md", - "to": "concept:decabill-quick-start", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-configuration", "type": "contains" }, { - "from": "file:docs/decabill/README.md", - "to": "concept:decabill-system-architecture", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-database", "type": "contains" }, { - "from": "file:docs/decabill/README.md", - "to": "concept:decabill-external-resources", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-redis-when-not-using-compose-network", "type": "contains" }, { - "from": "file:docs/decabill/README.md", - "to": "concept:decabill-licensing", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-queue-local-all-in-one", "type": "contains" }, { - "from": "file:docs/decabill/api-reference/README.md", - "to": "concept:decabill-api-reference", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-authentication-choose-one", "type": "contains" }, { - "from": "file:docs/decabill/api-reference/README.md", - "to": "concept:decabill-billing-manager-http-api", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-optional-bind-api-key-to-one-tenant-see-accepted-risk-dr-002", "type": "contains" }, { - "from": "file:docs/decabill/api-reference/README.md", - "to": "concept:decabill-billing-manager-websocket-gateways", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-static-api-key-tenant-id-default", "type": "contains" }, { - "from": "file:docs/decabill/api-reference/README.md", - "to": "concept:decabill-using-the-specifications", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-ports", "type": "contains" }, { - "from": "file:docs/decabill/api-reference/README.md", - "to": "concept:decabill-generated-client-package", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-multi-tenancy", "type": "contains" }, { - "from": "file:docs/decabill/api-reference/README.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-cors-for-development", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-applications-documentation", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-rate-limiting-disabled-for-development", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-encryption-required-for-production-set-for-local-if-testing-encrypted-fields", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-licensing", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-stripe-optional-for-local-payment-flows", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-applications", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-provisioning-optional", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-application-relationships", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-running-applications", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-communication-patterns", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-terminal-1-billing-manager-queue-role-all-for-local-jobs", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-build-and-run-commands", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-terminal-2-billing-console", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-backend", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-terminal-3-docs-optional", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-frontend", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-development-workflow", "type": "contains" }, { - "from": "file:docs/decabill/applications/README.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-billing-manager", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-backend-billing-manager", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-billing-console", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-purpose", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-run-with-coverage", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-features", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-bull-board-local", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-architecture", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-troubleshooting", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-ports-and-network-surfaces", + "from": "file:docs/decabill/deployment/local-development.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-queue-roles", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-production-deployment-checklist", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-docker-image", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-pre-deployment-checklist", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-authentication", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-security-considerations", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-major-api-areas", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-performance-optimization", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-websocket-gateways", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-monitoring-setup", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-stripe-and-provisioning", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-backup-strategies", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-development-commands", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-deployment-process", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-run-locally-set-queue-role-all-in-env", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-rollback-plan", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-build", + "from": "file:docs/decabill/deployment/production-checklist.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-tests", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-system-requirements", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-generate-typescript-client-from-openapi", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-bull-board-local", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-platform-prerequisites", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-data-services", "type": "contains" }, { - "from": "file:docs/decabill/applications/backend-billing-manager.md", - "to": "concept:decabill-license", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-backend-billing-manager-by-queue-role", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", + "from": "file:docs/decabill/deployment/system-requirements.md", "to": "concept:decabill-frontend-billing-console", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-purpose", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-persistent-volumes", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-features", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-mixed-and-local-development-host", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-architecture", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-production-sizing-examples", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-routes-overview", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-network-and-external-dependencies", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-express-ssr-server", + "from": "file:docs/decabill/deployment/system-requirements.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-configuration", + "from": "file:docs/decabill/features/README.md", + "to": "concept:decabill-features-documentation", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-ngrx-state-slices", + "from": "file:docs/decabill/features/README.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-development-commands", + "from": "file:docs/decabill/features/README.md", + "to": "concept:decabill-features", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-dev-server-port-4500", + "from": "file:docs/decabill/features/README.md", + "to": "concept:decabill-feature-relationships", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-production-build-localized", + "from": "file:docs/decabill/features/README.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-ssr-server-after-build", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-authentication", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-unit-tests", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-docker-compose", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-authentication-methods", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-users-authentication-flow", "type": "contains" }, { - "from": "file:docs/decabill/applications/frontend-billing-console.md", - "to": "concept:decabill-license", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-disabling-signup", "type": "contains" }, { - "from": "file:docs/decabill/architecture/README.md", - "to": "concept:decabill-architecture-documentation", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-user-roles", "type": "contains" }, { - "from": "file:docs/decabill/architecture/README.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-security-features", "type": "contains" }, { - "from": "file:docs/decabill/architecture/README.md", - "to": "concept:decabill-documentation-structure", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-api-endpoints", "type": "contains" }, { - "from": "file:docs/decabill/architecture/README.md", - "to": "concept:decabill-key-architectural-concepts", + "from": "file:docs/decabill/features/authentication.md", + "to": "concept:decabill-authentication-flow-diagram", "type": "contains" }, { - "from": "file:docs/decabill/architecture/README.md", + "from": "file:docs/decabill/features/authentication.md", "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/architecture/README.md", - "to": "concept:decabill-architecture-principles", - "type": "contains" - }, - { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-components", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-auto-billing", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-backend-billing-manager", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-frontend-billing-console", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-payment-processor-capability", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-frontend-landing-page", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-customer-profile-fields", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-postgresql", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-setup-and-enable-flow", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-redis", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-invoice-auto-payment-lifecycle", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-stripe", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-notifications", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-mailhog-local-only", + "from": "file:docs/decabill/features/auto-billing.md", + "to": "concept:decabill-related", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-cloud-providers", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-backorders", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-component-dependencies", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-external-dependencies", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-backorder-statuses", "type": "contains" }, { - "from": "file:docs/decabill/architecture/components.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-creating-backorders", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-data-flow", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-retry-processing", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-http-rest-api-flow", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-user-api", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-websocket-dashboard-flow", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-customer-geography-on-retry", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-stripe-redirect-and-webhook-flow", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-ui", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-open-position-and-billing-day-flow", + "from": "file:docs/decabill/features/backorders.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-server-provisioning-flow", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-billing-administration", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-backorder-retry-flow", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-access-control", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-admin-manual-invoice-flow", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-billing-dashboard", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-multi-tenant-request-flow", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-manual-invoice-administration", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-state-management-flow-ngrx", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-customer-billing-profiles-admin", "type": "contains" }, { - "from": "file:docs/decabill/architecture/data-flow.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-admin-projects", "type": "contains" }, { - "from": "file:docs/decabill/architecture/system-overview.md", - "to": "concept:decabill-system-overview", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-related-admin-pages", "type": "contains" }, { - "from": "file:docs/decabill/architecture/system-overview.md", - "to": "concept:decabill-two-tier-architecture", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-webhook-notifications", "type": "contains" }, { - "from": "file:docs/decabill/architecture/system-overview.md", - "to": "concept:decabill-component-relationships", + "from": "file:docs/decabill/features/billing-administration.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/architecture/system-overview.md", - "to": "concept:decabill-communication-patterns", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-cloudinit-configs", "type": "contains" }, { - "from": "file:docs/decabill/architecture/system-overview.md", - "to": "concept:decabill-deployment-topology", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-multi-tenancy", "type": "contains" }, { - "from": "file:docs/decabill/architecture/system-overview.md", - "to": "concept:decabill-data-boundaries", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/architecture/system-overview.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-template-placeholders", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-deployment-documentation", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-environment-variables", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-service-plan-product-defaults", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-deployment-guides", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-admin-api", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-deployment-architecture", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-admin-ui", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-quick-start", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-plan-linkage", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-billing-manager-api-worker-scheduler-postgres-redis-mailhog", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-customer-order-flow", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-billing-console-frontend", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-provisioning", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-docs-frontend-optional", + "from": "file:docs/decabill/features/cloud-init-configs.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-install-dependencies-repository-root", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-customer-profiles", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-start-billing-manager", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-start-billing-console", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-required-fields-for-ordering", "type": "contains" }, { - "from": "file:docs/decabill/deployment/README.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-self-service", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-background-jobs-bullmq", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-admin-management", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-architecture", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-validation-flow", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-job-registry", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-data-storage", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-redis-and-queue-environment-variables", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-user-billing-day", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-docker-compose", + "from": "file:docs/decabill/features/customer-profiles.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-bull-board", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-dashboard-and-server-control", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-tenant-context-in-jobs", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/deployment/background-jobs.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-overview-page", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-docker-deployment", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-data-loading", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-authorization", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-prerequisites", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-server-control-sequence", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-docker-compose-setup", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-error-handling", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-container-configuration", + "from": "file:docs/decabill/features/dashboard-and-server-control.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-building-containers", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-dynamic-provider-plugins", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-billing-api-image", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-billing-console-server-image", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-registries", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-docs-server-image", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-resolution-order", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-container-security-images", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-config-format", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-running-containers", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-alias-package-specifier", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-health-checks", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-pascalcase-alias-selects-named-class-export", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-bull-board", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-bare-specifier", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-logging", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-file-entry-relative-to-plugin-path", "type": "contains" }, { - "from": "file:docs/decabill/deployment/docker-deployment.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-plugin-package-contract", "type": "contains" }, { - "from": "file:docs/decabill/deployment/environment-configuration.md", - "to": "concept:decabill-environment-configuration", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-payment-processors", "type": "contains" }, { - "from": "file:docs/decabill/deployment/environment-configuration.md", - "to": "concept:decabill-backend-billing-manager", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-billing-provider-metadata", "type": "contains" }, { - "from": "file:docs/decabill/deployment/environment-configuration.md", - "to": "concept:decabill-frontend-applications-express-ssr", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-baked-in-plugins", "type": "contains" }, { - "from": "file:docs/decabill/deployment/environment-configuration.md", - "to": "concept:decabill-redis-and-bullmq-background-jobs", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-post-build-plugins", "type": "contains" }, { - "from": "file:docs/decabill/deployment/environment-configuration.md", - "to": "concept:decabill-environment-specific-defaults", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-startup-error-policy", "type": "contains" }, { - "from": "file:docs/decabill/deployment/environment-configuration.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-security", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-local-development", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-docker-compose-example", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-prerequisites", + "from": "file:docs/decabill/features/dynamic-provider-plugins.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-installation", + "from": "file:docs/decabill/features/email-notifications.md", + "to": "concept:decabill-email-notifications-decabill", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-database-and-redis-setup", + "from": "file:docs/decabill/features/email-notifications.md", + "to": "concept:decabill-transport", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-postgresql-for-billing-manager", + "from": "file:docs/decabill/features/email-notifications.md", + "to": "concept:decabill-templates", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-redis-for-bullmq-host-port-6380-to-avoid-clashing-with-other-stacks", + "from": "file:docs/decabill/features/email-notifications.md", + "to": "concept:decabill-event-catalog-implemented", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-configuration", + "from": "file:docs/decabill/features/email-notifications.md", + "to": "concept:decabill-delivery-retries", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-database", + "from": "file:docs/decabill/features/email-notifications.md", + "to": "concept:decabill-future-webhook-only-today", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-redis-when-not-using-compose-network", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-invoices", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-queue-local-all-in-one", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-authentication-choose-one", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-invoice-statuses", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-optional-bind-api-key-to-one-tenant-see-accepted-risk-dr-002", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-open-positions-and-billing-day", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-static-api-key-tenant-id-default", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-customer-invoice-access", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-ports", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-admin-invoice-operations", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-multi-tenancy", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-pdf-generation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-cors-for-development", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-usage-on-invoices", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-rate-limiting-disabled-for-development", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-payment", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-encryption-required-for-production-set-for-local-if-testing-encrypted-fields", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-project-time-billing", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-stripe-optional-for-local-payment-flows", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-manual-invoice-workflow-admin", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-provisioning-optional", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-api-endpoints-summary", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-running-applications", + "from": "file:docs/decabill/features/invoices.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-terminal-1-billing-manager-queue-role-all-for-local-jobs", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-multi-tenancy", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-terminal-2-billing-console", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-terminal-3-docs-optional", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-tenant-selection", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-development-workflow", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-data-isolation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-billing-manager", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-api-key-auth-and-tenant-scope", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-billing-console", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-public-catalog", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-run-with-coverage", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-background-jobs", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-bull-board-local", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-multi-tenancy-flow", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", - "to": "concept:decabill-troubleshooting", + "from": "file:docs/decabill/features/multi-tenancy.md", + "to": "concept:decabill-configuration-summary", "type": "contains" }, { - "from": "file:docs/decabill/deployment/local-development.md", + "from": "file:docs/decabill/features/multi-tenancy.md", "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-production-deployment-checklist", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-payment-processing", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-pre-deployment-checklist", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-security-considerations", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-default-processor", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-performance-optimization", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-stripe-configuration", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-monitoring-setup", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-customer-payment-flow", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-backup-strategies", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-admin-manual-payment-status", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-deployment-process", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-payment-processor-interface", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", - "to": "concept:decabill-rollback-plan", + "from": "file:docs/decabill/features/payment-processing.md", + "to": "concept:decabill-security", "type": "contains" }, { - "from": "file:docs/decabill/deployment/production-checklist.md", + "from": "file:docs/decabill/features/payment-processing.md", "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-system-requirements", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-project-board", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", + "from": "file:docs/decabill/features/project-board.md", "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-platform-prerequisites", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-swimlanes", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-data-services", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-locking", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-backend-billing-manager-by-queue-role", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-rest-board-operations", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-frontend-billing-console", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-websocket-connection", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-persistent-volumes", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-events", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-mixed-and-local-development-host", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-security-model", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-production-sizing-examples", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-connection-flow", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", - "to": "concept:decabill-network-and-external-dependencies", + "from": "file:docs/decabill/features/project-board.md", + "to": "concept:decabill-frontend-integration", "type": "contains" }, { - "from": "file:docs/decabill/deployment/system-requirements.md", + "from": "file:docs/decabill/features/project-board.md", "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/README.md", - "to": "concept:decabill-features-documentation", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-projects", "type": "contains" }, { - "from": "file:docs/decabill/features/README.md", + "from": "file:docs/decabill/features/projects.md", "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/README.md", - "to": "concept:decabill-features", - "type": "contains" - }, - { - "from": "file:docs/decabill/features/README.md", - "to": "concept:decabill-feature-relationships", - "type": "contains" - }, - { - "from": "file:docs/decabill/features/README.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-assignment-model", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-authentication", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-customer-access-read-only", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-admin-crud", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-authentication-methods", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-time-entries-admin", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-users-authentication-flow", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-bill-time", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-disabling-signup", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-time-report-admin", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-user-roles", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-kpi-summary", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-security-features", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-data-storage", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-api-endpoints", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-project-lifecycle", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", - "to": "concept:decabill-authentication-flow-diagram", + "from": "file:docs/decabill/features/projects.md", + "to": "concept:decabill-authentication-notes", "type": "contains" }, { - "from": "file:docs/decabill/features/authentication.md", + "from": "file:docs/decabill/features/projects.md", "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-auto-billing", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-marketing-promotions", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-tenant-isolation", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-payment-processor-capability", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-advantage-types", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-customer-profile-fields", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-product-scoping", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-setup-and-enable-flow", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-subscription-eligibility", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-invoice-auto-payment-lifecycle", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-customer-flow", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-notifications", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-billing-integration", "type": "contains" }, { - "from": "file:docs/decabill/features/auto-billing.md", - "to": "concept:decabill-related", + "from": "file:docs/decabill/features/promotions.md", + "to": "concept:decabill-related-docs", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-backorders", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-public-statutory-withdrawal", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", + "from": "file:docs/decabill/features/public-withdrawal.md", "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-backorder-statuses", - "type": "contains" - }, - { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-creating-backorders", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-flow", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-retry-processing", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-session-resume", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-user-api", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-matching-rules", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-customer-geography-on-retry", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-public-api", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-ui", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-security", "type": "contains" }, { - "from": "file:docs/decabill/features/backorders.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-configuration", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-billing-administration", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-frontend", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-access-control", + "from": "file:docs/decabill/features/public-withdrawal.md", + "to": "concept:decabill-related", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-billing-dashboard", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-real-time-status", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-manual-invoice-administration", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-customer-billing-profiles-admin", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-connection", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-admin-projects", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-events", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-related-admin-pages", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-security-model", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-webhook-notifications", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-payload-shape", "type": "contains" }, { - "from": "file:docs/decabill/features/billing-administration.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-connection-flow", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-cloudinit-configs", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-frontend-integration", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-multi-tenancy", + "from": "file:docs/decabill/features/real-time-status.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-server-provisioning", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-template-placeholders", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-environment-variables", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-supported-providers", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-service-plan-product-defaults", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-provisioning-process", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-admin-api", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-bundled-product-stack", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-admin-ui", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-custom-service-kind", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-plan-linkage", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-tls-and-dns", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-customer-order-flow", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-ssh-access", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-provisioning", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-nested-provisioning-tokens", "type": "contains" }, { - "from": "file:docs/decabill/features/cloud-init-configs.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-server-information-and-control", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-customer-profiles", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-subscription-item-update-scheduler", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-optional-instance-configuration", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-required-fields-for-ordering", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-api-endpoints", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-self-service", + "from": "file:docs/decabill/features/server-provisioning.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-admin-management", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-service-types-and-plans", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-validation-flow", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-data-storage", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-service-types", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-user-billing-day", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-service-plans", "type": "contains" }, { - "from": "file:docs/decabill/features/customer-profiles.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-public-catalog", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-dashboard-and-server-control", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-availability-and-pricing", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-admin-ui", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-overview-page", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-architecture", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-data-loading", + "from": "file:docs/decabill/features/service-types-and-plans.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-authorization", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-subscriptions", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-server-control-sequence", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-error-handling", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-subscription-lifecycle", "type": "contains" }, { - "from": "file:docs/decabill/features/dashboard-and-server-control.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-ordering-a-subscription", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-dynamic-provider-plugins", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-cancel-and-resume", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-statutory-withdrawal-widerruf", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-registries", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-subscription-items", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-resolution-order", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-usage-records", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-config-format", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-pricing-preview", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-alias-package-specifier", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-availability", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-pascalcase-alias-selects-named-class-export", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-api-endpoints", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-bare-specifier", + "from": "file:docs/decabill/features/subscriptions.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-file-entry-relative-to-plugin-path", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-webhooks-decabill", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-plugin-package-contract", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-access", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-payment-processors", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-authentication-modes", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-billing-provider-metadata", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-event-envelope", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-baked-in-plugins", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-event-catalog", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-post-build-plugins", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-payload-examples", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-startup-error-policy", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-delivery-and-retries", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-security", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-delivery-log-retention", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-docker-compose-example", + "from": "file:docs/decabill/features/webhooks.md", + "to": "concept:decabill-endpoint-deletion", "type": "contains" }, { - "from": "file:docs/decabill/features/dynamic-provider-plugins.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-getting-started-with-decabill", "type": "contains" }, { - "from": "file:docs/decabill/features/email-notifications.md", - "to": "concept:decabill-email-notifications-decabill", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-prerequisites", "type": "contains" }, { - "from": "file:docs/decabill/features/email-notifications.md", - "to": "concept:decabill-transport", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-installation", "type": "contains" }, { - "from": "file:docs/decabill/features/email-notifications.md", - "to": "concept:decabill-templates", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", "type": "contains" }, { - "from": "file:docs/decabill/features/email-notifications.md", - "to": "concept:decabill-event-catalog-implemented", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-terminal-1-billing-manager-queue-role-all-runs-api-worker-and-scheduler-in-one-process", "type": "contains" }, { - "from": "file:docs/decabill/features/email-notifications.md", - "to": "concept:decabill-delivery-retries", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-set-queue-role-all-redis-port-6380-if-redis-is-published-on-the-host-and-auth-variables", "type": "contains" }, { - "from": "file:docs/decabill/features/email-notifications.md", - "to": "concept:decabill-future-webhook-only-today", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-terminal-2-billing-console-angular-dev-server-on-port-4500", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-invoices", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-configuration", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-database", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-invoice-statuses", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-redis-6380-when-using-compose-host-mapping", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-open-positions-and-billing-day", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-process-role-local-all-in-one", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-customer-invoice-access", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-authentication-choose-one-method", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-admin-invoice-operations", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-or-keycloak", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-pdf-generation", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-authentication-method-keycloak", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-usage-on-invoices", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-keycloak-auth-server-url-http-localhost-8380", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-payment", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-keycloak-realm-decabill", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-project-time-billing", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-keycloak-client-id-billing-manager", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-manual-invoice-workflow-admin", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-keycloak-client-secret-your-client-secret", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-api-endpoints-summary", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-or-built-in-users-default-in-local-angular-environment", "type": "contains" }, { - "from": "file:docs/decabill/features/invoices.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-authentication-method-users", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-multi-tenancy", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-jwt-secret-your-jwt-secret", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-disable-signup-false", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-tenant-selection", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-ports", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-data-isolation", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-multi-tenancy-and-console-url", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-api-key-auth-and-tenant-scope", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-encryption-set-before-storing-sensitive-provider-or-ssh-fields", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-public-catalog", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-stripe-optional", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-background-jobs", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-first-login", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-multi-tenancy-flow", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-verify-the-stack", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-configuration-summary", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-next-steps", "type": "contains" }, { - "from": "file:docs/decabill/features/multi-tenancy.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/getting-started.md", + "to": "concept:decabill-troubleshooting", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-payment-processing", + "from": "file:docs/decabill/security/README.md", + "to": "concept:decabill-security-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", + "from": "file:docs/decabill/security/README.md", "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-default-processor", + "from": "file:docs/decabill/security/README.md", + "to": "concept:decabill-documentation-structure", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-stripe-configuration", + "from": "file:docs/decabill/security/README.md", + "to": "concept:decabill-configuration-reference", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-customer-payment-flow", + "from": "file:docs/decabill/security/README.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-admin-manual-payment-status", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-accepted-risks-register", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-payment-processor-interface", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-dr-001-provisioning-ssh-cloud-init-templates", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-security", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-dr-002-billing-multi-tenant-api-key-scope-static-api-key-tenant-id-unset", "type": "contains" }, { - "from": "file:docs/decabill/features/payment-processing.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-project-board", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-dr-004-backend-authentication-method-resolution", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-swimlanes", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-hardening-paths-if-an-acceptance-is-withdrawn", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-locking", + "from": "file:docs/decabill/security/accepted-risks.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-rest-board-operations", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-ci-security-scanning-trivy", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-websocket-connection", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-what-is-scanned", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-events", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-workflows", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-security-model", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-severity-policy", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-connection-flow", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-viewing-results", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-frontend-integration", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-triage-and-exceptions", "type": "contains" }, { - "from": "file:docs/decabill/features/project-board.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-local-reproduction", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-projects", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-relationship-to-sbom-and-dependency-track", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/security/ci-security-scanning.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-assignment-model", + "from": "file:docs/decabill/security/compliance-and-standards.md", + "to": "concept:decabill-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-customer-access-read-only", + "from": "file:docs/decabill/security/compliance-and-standards.md", + "to": "concept:decabill-eu-cyber-resilience-act-cra", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-admin-crud", + "from": "file:docs/decabill/security/compliance-and-standards.md", + "to": "concept:decabill-bsi-it-grundschutz", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-time-entries-admin", + "from": "file:docs/decabill/security/compliance-and-standards.md", + "to": "concept:decabill-trust-boundaries-summary", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-bill-time", + "from": "file:docs/decabill/security/compliance-and-standards.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-time-report-admin", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-container-image-security", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-kpi-summary", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-published-images", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-data-storage", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-runtime-users", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-project-lifecycle", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-billing-api-image-decabill-billing-api", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-authentication-notes", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-billing-console-server-image-decabill-billing-console-server", "type": "contains" }, { - "from": "file:docs/decabill/features/projects.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-docs-server-image-decabill-docs-server", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-marketing-promotions", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-secrets-and-configuration", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-tenant-isolation", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-image-scanning", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-advantage-types", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-coordinated-upgrades", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-product-scoping", + "from": "file:docs/decabill/security/container-images.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-subscription-eligibility", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-operational-hardening", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-customer-flow", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-container-images-docker", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-billing-integration", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-authentication-mode-backends", "type": "contains" }, { - "from": "file:docs/decabill/features/promotions.md", - "to": "concept:decabill-related-docs", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-billing-manager-multi-tenancy", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-public-statutory-withdrawal", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-stripe-webhooks", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-logging-and-correlation", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-flow", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-frontend-runtime-configuration-get-config", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-session-resume", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-content-security-policy-frontend-express", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-matching-rules", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-websocket-cors-billing-manager", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-public-api", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-origin-allowlist-unsafe-http-methods", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-security", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-bull-board", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-configuration", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-provisioning-ssh", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-frontend", + "from": "file:docs/decabill/security/operational-hardening.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/public-withdrawal.md", - "to": "concept:decabill-related", + "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:decabill-vulnerability-reporting-and-artifacts", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-real-time-status", + "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:decabill-supported-versions-and-security-updates", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:decabill-our-response-commitment", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-connection", + "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:decabill-reporting-a-vulnerability", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-events", + "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:decabill-continuous-scanning-ci", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-security-model", + "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:decabill-software-bill-of-materials-sbom", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-payload-shape", + "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-connection-flow", + "from": "file:docs/decabill/troubleshooting/README.md", + "to": "concept:decabill-troubleshooting-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-frontend-integration", + "from": "file:docs/decabill/troubleshooting/README.md", + "to": "concept:decabill-overview", "type": "contains" }, { - "from": "file:docs/decabill/features/real-time-status.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/troubleshooting/README.md", + "to": "concept:decabill-troubleshooting-guides", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-server-provisioning", + "from": "file:docs/decabill/troubleshooting/README.md", + "to": "concept:decabill-quick-troubleshooting", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/troubleshooting/README.md", + "to": "concept:decabill-getting-help", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-supported-providers", + "from": "file:docs/decabill/troubleshooting/README.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-provisioning-process", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-common-issues", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-bundled-product-stack", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-connection-issues", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-custom-service-kind", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-authentication-problems", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-tls-and-dns", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-stripe-and-payment-issues", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-ssh-access", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-background-jobs-and-redis", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-nested-provisioning-tokens", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-database-issues", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-server-information-and-control", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-cors-and-csp-issues", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-subscription-item-update-scheduler", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-provisioning-issues", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-optional-instance-configuration", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-rate-limiting-issues", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-api-endpoints", + "from": "file:docs/decabill/troubleshooting/common-issues.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/server-provisioning.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-debugging-guide", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-service-types-and-plans", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-logging", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-billing-manager-api-local", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-service-types", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-docker-compose", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-service-plans", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-bull-board-and-queue-debugging", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-public-catalog", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-debugging-tools", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-availability-and-pricing", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-from-host-compose-default-port", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-admin-ui", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-inside-compose-network", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-architecture", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-example-tenant-scoped-queries", "type": "contains" }, { - "from": "file:docs/decabill/features/service-types-and-plans.md", - "to": "concept:decabill-related-documentation", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-api-testing", "type": "contains" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-subscriptions", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-websocket-testing", "type": "contains" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-overview", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-common-debugging-scenarios", "type": "contains" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-subscription-lifecycle", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-performance-debugging", "type": "contains" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-ordering-a-subscription", + "from": "file:docs/decabill/troubleshooting/debugging-guide.md", + "to": "concept:decabill-related-documentation", "type": "contains" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-cancel-and-resume", - "type": "contains" + "from": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", + "to": "api:HTTP:POST:/public/contact-requests", + "type": "implements" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-statutory-withdrawal-widerruf", - "type": "contains" + "from": "project:forepath-backend-feature-communication-manager", + "to": "api:HTTP:POST:/public/contact-requests", + "type": "implements" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-subscription-items", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", + "type": "implements" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-usage-records", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", + "type": "implements" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-pricing-preview", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", + "type": "implements" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-availability", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", + "type": "implements" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-api-endpoints", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", + "type": "implements" }, { - "from": "file:docs/decabill/features/subscriptions.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-webhooks-decabill", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-access", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-authentication-modes", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-event-envelope", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-event-catalog", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-payload-examples", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-delivery-and-retries", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-delivery-log-retention", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}", + "type": "implements" }, { - "from": "file:docs/decabill/features/webhooks.md", - "to": "concept:decabill-endpoint-deletion", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-getting-started-with-decabill", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-prerequisites", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/users", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-installation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/users", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/users", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-terminal-1-billing-manager-queue-role-all-runs-api-worker-and-scheduler-in-one-process", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/users", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-set-queue-role-all-redis-port-6380-if-redis-is-published-on-the-host-and-auth-variables", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-terminal-2-billing-console-angular-dev-server-on-port-4500", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-configuration", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-database", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-redis-6380-when-using-compose-host-mapping", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-process-role-local-all-in-one", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-authentication-choose-one-method", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-or-keycloak", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-authentication-method-keycloak", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-keycloak-auth-server-url-http-localhost-8380", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-keycloak-realm-decabill", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-keycloak-client-id-billing-manager", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-keycloak-client-secret-your-client-secret", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-or-built-in-users-default-in-local-angular-environment", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-authentication-method-users", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-jwt-secret-your-jwt-secret", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-disable-signup-false", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-ports", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-multi-tenancy-and-console-url", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-encryption-set-before-storing-sensitive-provider-or-ssh-fields", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-stripe-optional", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-first-login", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-verify-the-stack", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-next-steps", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/getting-started.md", - "to": "concept:decabill-troubleshooting", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/README.md", - "to": "concept:decabill-security-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/README.md", - "to": "concept:decabill-overview", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/README.md", - "to": "concept:decabill-documentation-structure", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/README.md", - "to": "concept:decabill-configuration-reference", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/README.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-accepted-risks-register", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-dr-001-provisioning-ssh-cloud-init-templates", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-dr-002-billing-multi-tenant-api-key-scope-static-api-key-tenant-id-unset", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-dr-004-backend-authentication-method-resolution", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-hardening-paths-if-an-acceptance-is-withdrawn", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", + "type": "implements" }, { - "from": "file:docs/decabill/security/accepted-risks.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-ci-security-scanning-trivy", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", + "type": "implements" + }, + { + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", + "type": "implements" + }, + { + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-what-is-scanned", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-workflows", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-severity-policy", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-viewing-results", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/configuration-overrides", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-triage-and-exceptions", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/configuration-overrides", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-local-reproduction", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-relationship-to-sbom-and-dependency-track", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", + "type": "implements" }, { - "from": "file:docs/decabill/security/ci-security-scanning.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", + "type": "implements" }, { - "from": "file:docs/decabill/security/compliance-and-standards.md", - "to": "concept:decabill-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", + "type": "implements" }, { - "from": "file:docs/decabill/security/compliance-and-standards.md", - "to": "concept:decabill-eu-cyber-resilience-act-cra", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", + "type": "implements" }, { - "from": "file:docs/decabill/security/compliance-and-standards.md", - "to": "concept:decabill-bsi-it-grundschutz", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", + "type": "implements" }, { - "from": "file:docs/decabill/security/compliance-and-standards.md", - "to": "concept:decabill-trust-boundaries-summary", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", + "type": "implements" }, { - "from": "file:docs/decabill/security/compliance-and-standards.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-container-image-security", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-published-images", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-runtime-users", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-billing-api-image-decabill-billing-api", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-billing-console-server-image-decabill-billing-console-server", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-docs-server-image-decabill-docs-server", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-secrets-and-configuration", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-image-scanning", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-coordinated-upgrades", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", + "type": "implements" }, { - "from": "file:docs/decabill/security/container-images.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-operational-hardening", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-container-images-docker", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-authentication-mode-backends", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-billing-manager-multi-tenancy", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-stripe-webhooks", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-logging-and-correlation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-frontend-runtime-configuration-get-config", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-content-security-policy-frontend-express", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-websocket-cors-billing-manager", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-origin-allowlist-unsafe-http-methods", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-bull-board", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-provisioning-ssh", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", + "type": "implements" }, { - "from": "file:docs/decabill/security/operational-hardening.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", + "type": "implements" }, { - "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:decabill-vulnerability-reporting-and-artifacts", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", + "type": "implements" }, { - "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:decabill-supported-versions-and-security-updates", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", + "type": "implements" }, { - "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:decabill-our-response-commitment", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", + "type": "implements" }, { - "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:decabill-reporting-a-vulnerability", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", + "type": "implements" }, { - "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:decabill-continuous-scanning-ci", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", + "type": "implements" }, { - "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:decabill-software-bill-of-materials-sbom", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/provisioning/providers", + "type": "implements" }, { - "from": "file:docs/decabill/security/vulnerability-reporting-and-artifacts.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/provisioning/providers", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/README.md", - "to": "concept:decabill-troubleshooting-documentation", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/README.md", - "to": "concept:decabill-overview", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/README.md", - "to": "concept:decabill-troubleshooting-guides", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/README.md", - "to": "concept:decabill-quick-troubleshooting", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/README.md", - "to": "concept:decabill-getting-help", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/provisioning/provision", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/README.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/provisioning/provision", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-common-issues", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/provisioning/info", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-connection-issues", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/provisioning/info", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-authentication-problems", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/provisioning", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-stripe-and-payment-issues", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/provisioning", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-background-jobs-and-redis", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-database-issues", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-cors-and-csp-issues", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-provisioning-issues", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-rate-limiting-issues", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/common-issues.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-debugging-guide", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-logging", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-billing-manager-api-local", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-docker-compose", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-bull-board-and-queue-debugging", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-debugging-tools", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-from-host-compose-default-port", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-inside-compose-network", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-example-tenant-scoped-queries", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-api-testing", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-websocket-testing", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-common-debugging-scenarios", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-performance-debugging", - "type": "contains" + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", + "type": "implements" }, { - "from": "file:docs/decabill/troubleshooting/debugging-guide.md", - "to": "concept:decabill-related-documentation", - "type": "contains" + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", + "type": "implements" }, { - "from": "file:libs/domains/forepath/backend/feature-communication-manager/src/lib/controllers/public-contact-requests.controller.ts", - "to": "api:HTTP:POST:/public/contact-requests", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", "type": "implements" }, { - "from": "project:forepath-backend-feature-communication-manager", - "to": "api:HTTP:POST:/public/contact-requests", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", "type": "implements" }, { "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agent-autonomy/enabled-agent-ids", + "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", "type": "implements" }, { "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/autonomy", + "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", "type": "implements" }, { "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", + "to": "api:HTTP:GET:/clients/{id}/statistics/summary", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/autonomy", + "to": "api:HTTP:GET:/clients/{id}/statistics/summary", "type": "implements" }, { "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients", + "to": "api:HTTP:GET:/clients/{id}/statistics/chat-io", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients", + "to": "api:HTTP:GET:/clients/{id}/statistics/chat-io", "type": "implements" }, { "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients", + "to": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients", + "to": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", "type": "implements" }, { "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}", + "to": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}", + "to": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", "type": "implements" }, { "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}", + "to": "api:HTTP:GET:/clients/{id}/statistics/entity-events", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}", + "to": "api:HTTP:GET:/clients/{id}/statistics/entity-events", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:GET:/imports/atlassian/connections", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}", + "to": "api:HTTP:GET:/imports/atlassian/connections", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/users", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:POST:/imports/atlassian/connections", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/users", + "to": "api:HTTP:POST:/imports/atlassian/connections", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/users", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:GET:/imports/atlassian/connections/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/users", + "to": "api:HTTP:GET:/imports/atlassian/connections/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:PUT:/imports/atlassian/connections/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/users/{relationshipId}", + "to": "api:HTTP:PUT:/imports/atlassian/connections/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents", + "to": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents", + "to": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:GET:/imports/atlassian/configs", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}", + "to": "api:HTTP:GET:/imports/atlassian/configs", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:POST:/imports/atlassian/configs", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}", + "to": "api:HTTP:POST:/imports/atlassian/configs", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:GET:/imports/atlassian/configs/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}", + "to": "api:HTTP:GET:/imports/atlassian/configs/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:PUT:/imports/atlassian/configs/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/models", + "to": "api:HTTP:PUT:/imports/atlassian/configs/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/start", + "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/stop", + "to": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", + "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/restart", + "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "to": "api:HTTP:GET:/filter-rules", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files", + "to": "api:HTTP:GET:/filter-rules", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "to": "api:HTTP:POST:/filter-rules", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/files/{path}", + "to": "api:HTTP:POST:/filter-rules", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "to": "api:HTTP:GET:/filter-rules/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/files/{path}", + "to": "api:HTTP:GET:/filter-rules/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "to": "api:HTTP:PUT:/filter-rules/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/files/{path}", + "to": "api:HTTP:PUT:/filter-rules/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", + "to": "api:HTTP:DELETE:/filter-rules/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PATCH:/clients/{id}/agents/{agentId}/files/{path}", + "to": "api:HTTP:DELETE:/filter-rules/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "to": "api:HTTP:GET:/statistics/summary", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/files/{path}", + "to": "api:HTTP:GET:/statistics/summary", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "to": "api:HTTP:GET:/statistics/chat-io", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment", + "to": "api:HTTP:GET:/statistics/chat-io", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "to": "api:HTTP:GET:/statistics/filter-drops", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/environment", + "to": "api:HTTP:GET:/statistics/filter-drops", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "to": "api:HTTP:GET:/statistics/filter-flags", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment", + "to": "api:HTTP:GET:/statistics/filter-flags", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", + "to": "api:HTTP:GET:/statistics/entity-events", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/environment/count", + "to": "api:HTTP:GET:/statistics/entity-events", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PUT:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "to": "api:HTTP:GET:/tickets", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/environment/{envVarId}", + "to": "api:HTTP:POST:/tickets", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/configuration-overrides", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/configuration-overrides", + "to": "api:HTTP:GET:/tickets/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:PATCH:/tickets/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PUT:/clients/{id}/configuration-overrides/{settingKey}", + "to": "api:HTTP:PATCH:/tickets/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:DELETE:/tickets/{id}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/configuration-overrides/{settingKey}", + "to": "api:HTTP:DELETE:/tickets/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets/{id}/prototype-prompt", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/status", + "to": "api:HTTP:GET:/tickets/{id}/prototype-prompt", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets/{id}/comments", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/branches", + "to": "api:HTTP:GET:/tickets/{id}/comments", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets/{id}/comments", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches", + "to": "api:HTTP:POST:/tickets/{id}/comments", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets/{id}/activity", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/vcs/branches/{branch}", + "to": "api:HTTP:GET:/tickets/{id}/activity", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/branches/{branch}/switch", + "to": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets/{id}/apply-generated-body", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/vcs/diff", + "to": "api:HTTP:POST:/tickets/{id}/apply-generated-body", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets/{id}/migrate", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/stage", + "to": "api:HTTP:POST:/tickets/{id}/migrate", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/unstage", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:PATCH:/tickets/{ticketId}/automation", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/commit", + "to": "api:HTTP:PATCH:/tickets/{ticketId}/automation", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/push", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/pull", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/fetch", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/workspace/prepare-clean", + "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/automation/verify-commands", + "to": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/summary", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/rebase", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/summary", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/bill-now", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/vcs/conflicts/resolve", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/bill-now", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/provisioning/providers", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/subscriptions", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/provisioning/providers", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/subscriptions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/server-types", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/provisioning/providers/{providerType}/locations", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/provisioning/provision", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/provisioning/provision", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/provisioning/info", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/provisioning/info", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/provisioning", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/invoices", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/provisioning", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/invoices", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/invoices/open-overdue", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/invoices/open-overdue", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/invoices/manual", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/invoices/manual", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/clients/{id}/agents/{agentId}/deployments/configuration", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/workflows/trigger", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/promotions", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/logs", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/promotions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/promotions", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/promotions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/clients/{id}/agents/{agentId}/deployments/runs/{runId}/cancel", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/statistics/summary", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/statistics/summary", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/statistics/chat-io", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/statistics/chat-io", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/customer-profiles", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/statistics/filter-drops", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/customer-profiles", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/statistics/filter-flags", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/customer-profiles", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/clients.controller.ts", - "to": "api:HTTP:GET:/clients/{id}/statistics/entity-events", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/clients/{id}/statistics/entity-events", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:GET:/imports/atlassian/connections", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/imports/atlassian/connections", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:POST:/imports/atlassian/connections", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/imports/atlassian/connections", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:GET:/imports/atlassian/connections/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/imports/atlassian/connections/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:PUT:/imports/atlassian/connections/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PUT:/imports/atlassian/connections/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/imports/atlassian/connections/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/imports/atlassian/connections/{id}/test", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:GET:/imports/atlassian/configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/imports/atlassian/configs", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:POST:/imports/atlassian/configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/imports/atlassian/configs", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:GET:/imports/atlassian/configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/imports/atlassian/configs/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:PUT:/imports/atlassian/configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/statistics/summary", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PUT:/imports/atlassian/configs/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/statistics/summary", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/statistics/by-product", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/statistics/by-product", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/capabilities", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/imports/atlassian/configs/{id}/run", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/capabilities", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/context-import.controller.ts", - "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/datev-exports", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/imports/atlassian/configs/{id}/markers", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/datev-exports", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", - "to": "api:HTTP:GET:/filter-rules", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/datev-exports", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/filter-rules", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/datev-exports", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", - "to": "api:HTTP:POST:/filter-rules", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/filter-rules", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", - "to": "api:HTTP:GET:/filter-rules/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/filter-rules/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", - "to": "api:HTTP:PUT:/filter-rules/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/projects", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PUT:/filter-rules/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/projects", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/filter-rules.controller.ts", - "to": "api:HTTP:DELETE:/filter-rules/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/filter-rules/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/projects", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", - "to": "api:HTTP:GET:/statistics/summary", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/statistics/summary", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", - "to": "api:HTTP:GET:/statistics/chat-io", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/statistics/chat-io", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", - "to": "api:HTTP:GET:/statistics/filter-drops", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/statistics/filter-drops", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", - "to": "api:HTTP:GET:/statistics/filter-flags", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/statistics/filter-flags", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/statistics.controller.ts", - "to": "api:HTTP:GET:/statistics/entity-events", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/statistics/entity-events", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/webhooks/event-types", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/webhooks/event-types", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/webhooks", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/webhooks", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:PATCH:/tickets/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/webhooks", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PATCH:/tickets/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/webhooks", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:DELETE:/tickets/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/webhooks/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:DELETE:/tickets/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/webhooks/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets/{id}/prototype-prompt", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:PUT:/admin/billing/webhooks/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets/{id}/prototype-prompt", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:PUT:/admin/billing/webhooks/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets/{id}/comments", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets/{id}/comments", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets/{id}/comments", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets/{id}/comments", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets/{id}/activity", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", + "to": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets/{id}/activity", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:GET:/admin/billing/customer-profiles", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets/{id}/body-generation-sessions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets/{id}/apply-generated-body", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets/{id}/apply-generated-body", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets/{id}/migrate", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets/{id}/migrate", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", + "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:PATCH:/tickets/{ticketId}/automation", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "to": "api:HTTP:GET:/admin/billing/datev-exports", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:PATCH:/tickets/{ticketId}/automation", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "to": "api:HTTP:POST:/admin/billing/datev-exports", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/approve", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", + "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "to": "api:HTTP:GET:/admin/billing/promotions", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/unapprove", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "to": "api:HTTP:POST:/admin/billing/promotions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:GET:/tickets/{ticketId}/automation/runs/{runId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", + "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/controllers/tickets.controller.ts", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", + "to": "api:HTTP:POST:/admin/usage/record", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-controller", - "to": "api:HTTP:POST:/tickets/{ticketId}/automation/runs/{runId}/cancel", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/admin/usage/record", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/summary", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", + "to": "api:HTTP:POST:/availability/check", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/summary", + "to": "api:HTTP:POST:/availability/check", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/bill-now", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", + "to": "api:HTTP:POST:/availability/alternatives", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/bill-now", + "to": "api:HTTP:POST:/availability/alternatives", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/subscriptions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "to": "api:HTTP:GET:/backorders", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/subscriptions", + "to": "api:HTTP:GET:/backorders", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "to": "api:HTTP:POST:/backorders/{id}/retry", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/cancel", + "to": "api:HTTP:POST:/backorders/{id}/retry", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", + "to": "api:HTTP:POST:/backorders/{id}/cancel", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/withdraw", + "to": "api:HTTP:POST:/backorders/{id}/cancel", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "to": "api:HTTP:GET:/cloud-init-configs", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/subscriptions/{subscriptionId}/resume", + "to": "api:HTTP:GET:/cloud-init-configs", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "to": "api:HTTP:POST:/cloud-init-configs", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/users/{userId}/subscriptions", + "to": "api:HTTP:POST:/cloud-init-configs", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/invoices", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "to": "api:HTTP:GET:/cloud-init-configs/{id}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/invoices", + "to": "api:HTTP:GET:/cloud-init-configs/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/invoices/open-overdue", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "to": "api:HTTP:POST:/cloud-init-configs/{id}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/invoices/open-overdue", + "to": "api:HTTP:POST:/cloud-init-configs/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/invoices/manual", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", + "to": "api:HTTP:DELETE:/cloud-init-configs/{id}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/invoices/manual", + "to": "api:HTTP:DELETE:/cloud-init-configs/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}", + "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}", + "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", + "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/admin/billing/invoices/{invoiceRefId}", + "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "to": "api:HTTP:GET:/customer-profile", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/issue", + "to": "api:HTTP:GET:/customer-profile", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "to": "api:HTTP:POST:/customer-profile", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/pdf", + "to": "api:HTTP:POST:/customer-profile", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/void-document/pdf", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", + "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", + "type": "implements" + }, + { + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/summary", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/time-report/pdf", + "to": "api:HTTP:GET:/invoices/summary", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/promotions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/open-overdue", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/promotions", + "to": "api:HTTP:GET:/invoices/open-overdue", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/promotions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/history", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/promotions", + "to": "api:HTTP:GET:/invoices/history", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/customer-profiles", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/customer-profiles", + "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/customer-profiles", + "to": "api:HTTP:GET:/invoices/{subscriptionId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/{subscriptionId}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", + "to": "api:HTTP:POST:/invoices/{subscriptionId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/void", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-paid", + "to": "api:HTTP:GET:/invoices", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/invoices/{invoiceRefId}/mark-unpaid", + "to": "api:HTTP:POST:/invoices", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", + "to": "api:HTTP:POST:/webhooks/payments/stripe", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/invoices/{invoiceRefId}/audit-logs", + "to": "api:HTTP:POST:/webhooks/payments/stripe", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/statistics/summary", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", + "to": "api:HTTP:POST:/pricing/preview", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/statistics/summary", + "to": "api:HTTP:POST:/pricing/preview", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/statistics/by-product", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "to": "api:HTTP:POST:/promotions/validate", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/statistics/by-product", + "to": "api:HTTP:POST:/promotions/validate", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/capabilities", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "to": "api:HTTP:POST:/promotions/redeem", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/capabilities", + "to": "api:HTTP:POST:/promotions/redeem", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/datev-exports", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "to": "api:HTTP:GET:/promotions/redemptions", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/datev-exports", + "to": "api:HTTP:GET:/promotions/redemptions", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/datev-exports", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", + "to": "api:HTTP:GET:/promotions/active", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/datev-exports", + "to": "api:HTTP:GET:/promotions/active", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", + "to": "api:HTTP:GET:/public/service-plan-offerings", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", + "to": "api:HTTP:GET:/public/service-plan-offerings", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", + "to": "api:HTTP:GET:/public/service-plan-offerings/cheapest", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", + "to": "api:HTTP:GET:/public/service-plan-offerings/cheapest", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/projects", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "to": "api:HTTP:GET:/public/withdrawal/addressee", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/projects", + "to": "api:HTTP:GET:/public/withdrawal/addressee", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "to": "api:HTTP:POST:/public/withdrawal/request", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/projects", + "to": "api:HTTP:POST:/public/withdrawal/request", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "to": "api:HTTP:POST:/public/withdrawal/verify-code", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", + "to": "api:HTTP:POST:/public/withdrawal/verify-code", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", + "to": "api:HTTP:POST:/public/withdrawal/confirm", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", + "to": "api:HTTP:POST:/public/withdrawal/confirm", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "to": "api:HTTP:GET:/service-plans", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", + "to": "api:HTTP:GET:/service-plans", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "to": "api:HTTP:POST:/service-plans", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", + "to": "api:HTTP:POST:/service-plans", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "to": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", + "to": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "to": "api:HTTP:GET:/service-plans/{id}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", + "to": "api:HTTP:GET:/service-plans/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/webhooks/event-types", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "to": "api:HTTP:POST:/service-plans/{id}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/webhooks/event-types", + "to": "api:HTTP:POST:/service-plans/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/webhooks", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", + "to": "api:HTTP:DELETE:/service-plans/{id}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/webhooks", + "to": "api:HTTP:DELETE:/service-plans/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/webhooks", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:GET:/service-types", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/webhooks", + "to": "api:HTTP:GET:/service-types", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/webhooks/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:POST:/service-types", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/webhooks/{id}", + "to": "api:HTTP:POST:/service-types", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:PUT:/admin/billing/webhooks/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:GET:/service-types/providers", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:PUT:/admin/billing/webhooks/{id}", + "to": "api:HTTP:GET:/service-types/providers", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/admin/billing/webhooks/{id}", + "to": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:GET:/service-types/providers/{providerId}/locations", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/billing/webhooks/{id}/test", + "to": "api:HTTP:GET:/service-types/providers/{providerId}/locations", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-billing.controller.ts", - "to": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:GET:/service-types/{id}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/admin/billing/webhooks/{id}/deliveries", + "to": "api:HTTP:GET:/service-types/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:GET:/admin/billing/customer-profiles", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:POST:/service-types/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/service-types/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:GET:/admin/billing/customer-profiles/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", + "to": "api:HTTP:DELETE:/service-types/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:DELETE:/service-types/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:GET:/subscriptions", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/setup", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/subscriptions", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/enable", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:POST:/subscriptions", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-customer-profiles.controller.ts", - "to": "api:HTTP:POST:/admin/billing/customer-profiles/{id}/auto-billing/disable", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/subscriptions", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", - "to": "api:HTTP:GET:/admin/billing/datev-exports", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", - "to": "api:HTTP:POST:/admin/billing/datev-exports", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-datev-exports.controller.ts", - "to": "api:HTTP:GET:/admin/billing/datev-exports/{exportId}/download", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "to": "api:HTTP:GET:/admin/billing/promotions", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "to": "api:HTTP:POST:/admin/billing/promotions", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "to": "api:HTTP:PUT:/admin/billing/promotions/{id}", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/promotions/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-promotions.controller.ts", - "to": "api:HTTP:GET:/admin/billing/promotions/{id}/redemptions", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/admin-usage.controller.ts", - "to": "api:HTTP:POST:/admin/usage/record", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/admin/usage/record", + "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", - "to": "api:HTTP:POST:/availability/check", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/availability/check", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/availability.controller.ts", - "to": "api:HTTP:POST:/availability/alternatives", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/availability/alternatives", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", - "to": "api:HTTP:GET:/backorders", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/backorders", + "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", - "to": "api:HTTP:POST:/backorders/{id}/retry", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", + "to": "api:HTTP:GET:/usage/summary/{subscriptionId}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/backorders/{id}/retry", + "to": "api:HTTP:GET:/usage/summary/{subscriptionId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/backorders.controller.ts", - "to": "api:HTTP:POST:/backorders/{id}/cancel", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:GET:/admin/billing/projects", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/backorders/{id}/cancel", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", - "to": "api:HTTP:GET:/cloud-init-configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/cloud-init-configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", - "to": "api:HTTP:POST:/cloud-init-configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/cloud-init-configs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", - "to": "api:HTTP:GET:/cloud-init-configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/cloud-init-configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", + "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", - "to": "api:HTTP:POST:/cloud-init-configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:GET:/projects", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/cloud-init-configs/{id}", + "to": "api:HTTP:GET:/projects", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/cloud-init-configs.controller.ts", - "to": "api:HTTP:DELETE:/cloud-init-configs/{id}", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:GET:/projects/{projectId}", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/cloud-init-configs/{id}", + "to": "api:HTTP:GET:/projects/{projectId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", - "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:GET:/projects/{projectId}/summary", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", + "to": "api:HTTP:GET:/projects/{projectId}/summary", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", - "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:GET:/projects/{projectId}/tickets", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", + "to": "api:HTTP:GET:/projects/{projectId}/tickets", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-auto-billing.controller.ts", - "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:POST:/projects/{projectId}/tickets", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", + "to": "api:HTTP:POST:/projects/{projectId}/tickets", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", - "to": "api:HTTP:GET:/customer-profile", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/customer-profile", + "to": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", - "to": "api:HTTP:POST:/customer-profile", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", "type": "implements" }, { "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/customer-profile", + "to": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", - "to": "api:HTTP:POST:/customer-profile/auto-billing/setup", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", + "to": "api:HTTP:GET:/projects/{projectId}/milestones", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", - "to": "api:HTTP:POST:/customer-profile/auto-billing/enable", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:HTTP:GET:/projects/{projectId}/milestones", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/customer-profiles.controller.ts", - "to": "api:HTTP:POST:/customer-profile/auto-billing/disable", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "to": "api:HTTP:GET:/agents-filters", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/summary", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents-filters", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/summary", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "to": "api:HTTP:POST:/agents-filters", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/open-overdue", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents-filters", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/open-overdue", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "to": "api:HTTP:GET:/agents-filters/count", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/history", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents-filters/count", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/history", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "to": "api:HTTP:GET:/agents-filters/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents-filters/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "to": "api:HTTP:PUT:/agents-filters/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:PUT:/agents-filters/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", + "to": "api:HTTP:DELETE:/agents-filters/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:DELETE:/agents-filters/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/{subscriptionId}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/invoices/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:DELETE:/agents/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:DELETE:/agents/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{id}/start", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{id}/start", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{id}/stop", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{id}/stop", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{id}/restart", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{id}/restart", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{id}/models", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{id}/models", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/files", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/files", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/invoices", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/invoices", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/payments-webhook.controller.ts", - "to": "api:HTTP:POST:/webhooks/payments/stripe", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/webhooks/payments/stripe", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/pricing.controller.ts", - "to": "api:HTTP:POST:/pricing/preview", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/pricing/preview", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", - "to": "api:HTTP:POST:/promotions/validate", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/promotions/validate", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/environment", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", - "to": "api:HTTP:POST:/promotions/redeem", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/environment", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/promotions/redeem", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/environment", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", - "to": "api:HTTP:GET:/promotions/redemptions", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/environment", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/promotions/redemptions", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/promotions.controller.ts", - "to": "api:HTTP:GET:/promotions/active", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/promotions/active", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/environment/count", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", - "to": "api:HTTP:GET:/public/service-plan-offerings", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/environment/count", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/public/service-plan-offerings", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-service-plan-offerings.controller.ts", - "to": "api:HTTP:GET:/public/service-plan-offerings/cheapest", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/public/service-plan-offerings/cheapest", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", - "to": "api:HTTP:GET:/public/withdrawal/addressee", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/public/withdrawal/addressee", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", - "to": "api:HTTP:POST:/public/withdrawal/request", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/public/withdrawal/request", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", - "to": "api:HTTP:POST:/public/withdrawal/verify-code", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", + "type": "implements" + }, + { + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/public/withdrawal/verify-code", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/public-withdrawal.controller.ts", - "to": "api:HTTP:POST:/public/withdrawal/confirm", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/public/withdrawal/confirm", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", - "to": "api:HTTP:GET:/service-plans", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-plans", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", - "to": "api:HTTP:POST:/service-plans", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/service-plans", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", - "to": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-plans/{id}/cloud-init-configs/{configId}/order-fields", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", - "to": "api:HTTP:GET:/service-plans/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-plans/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", - "to": "api:HTTP:POST:/service-plans/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/service-plans/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-plans.controller.ts", - "to": "api:HTTP:DELETE:/service-plans/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/service-plans/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:GET:/service-types", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-types", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:POST:/service-types", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/service-types", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:GET:/service-types/providers", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-types/providers", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-types/providers/{providerId}/server-types", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:GET:/service-types/providers/{providerId}/locations", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-types/providers/{providerId}/locations", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:GET:/service-types/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/service-types/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:POST:/service-types/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/service-types/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/service-types.controller.ts", - "to": "api:HTTP:DELETE:/service-types/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:DELETE:/service-types/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:GET:/subscriptions", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/subscriptions", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:POST:/subscriptions", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/subscriptions", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/cancel", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/start", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/stop", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/subscriptions.controller.ts", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/controllers/usage.controller.ts", - "to": "api:HTTP:GET:/usage/summary/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/usage/summary/{subscriptionId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:GET:/admin/billing/projects", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:DELETE:/agents/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{id}/start", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:DELETE:/admin/billing/projects/{projectId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{id}/stop", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:GET:/admin/billing/projects/{projectId}/unbilled-time-bounds", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{id}/restart", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{id}/models", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/admin-projects.controller.ts", - "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/time-report", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/files", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:GET:/projects", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/projects", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:GET:/projects/{projectId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/projects/{projectId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:GET:/projects/{projectId}/summary", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/projects/{projectId}/summary", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/environment", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:GET:/projects/{projectId}/tickets", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/environment", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/projects/{projectId}/tickets", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:POST:/projects/{projectId}/tickets", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/environment/count", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/projects/{projectId}/tickets", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/projects/{projectId}/tickets/{ticketId}/comments", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:POST:/projects/{projectId}/tickets/{ticketId}/comments", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", "type": "implements" }, { - "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/controllers/projects.controller.ts", - "to": "api:HTTP:GET:/projects/{projectId}/milestones", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", "type": "implements" }, { - "from": "project:decabill-backend-feature-billing-manager", - "to": "api:HTTP:GET:/projects/{projectId}/milestones", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", - "to": "api:HTTP:GET:/agents-filters", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents-filters", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", - "to": "api:HTTP:POST:/agents-filters", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents-filters", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", - "to": "api:HTTP:GET:/agents-filters/count", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents-filters/count", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", - "to": "api:HTTP:GET:/agents-filters/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents-filters/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", - "to": "api:HTTP:PUT:/agents-filters/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:PUT:/agents-filters/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-filters.controller.ts", - "to": "api:HTTP:DELETE:/agents-filters/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/agents-filters/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:DELETE:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{id}/start", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{id}/start", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", + "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{id}/stop", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", + "to": "api:HTTP:GET:/config", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{id}/stop", + "to": "api:HTTP:GET:/config", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{id}/restart", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", + "to": "api:HTTP:GET:/configuration-overrides", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{id}/restart", + "to": "api:HTTP:GET:/configuration-overrides", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{id}/models", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", + "to": "api:HTTP:PUT:/configuration-overrides/{settingKey}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{id}/models", + "to": "api:HTTP:PUT:/configuration-overrides/{settingKey}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/files", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", + "to": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/files", + "to": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", + "to": "api:HTTP:GET:/health", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", + "from": "project:shared-backend-feature-monitoring", + "to": "api:HTTP:GET:/health", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "to": "api:HTTP:POST:/auth/login", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/auth/login", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "to": "api:HTTP:POST:/auth/register", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/auth/register", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "to": "api:HTTP:POST:/auth/confirm-email", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/auth/confirm-email", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "to": "api:HTTP:POST:/auth/request-password-reset", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/auth/request-password-reset", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/environment", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "to": "api:HTTP:POST:/auth/reset-password", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/environment", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/auth/reset-password", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/environment", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "to": "api:HTTP:POST:/auth/change-password", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/environment", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/auth/change-password", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", + "to": "api:HTTP:POST:/auth/logout", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/auth/logout", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/environment/count", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "to": "api:HTTP:GET:/users", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/environment/count", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:GET:/users", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "to": "api:HTTP:POST:/users", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/users", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "to": "api:HTTP:GET:/users/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:GET:/users/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "to": "api:HTTP:POST:/users/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/users/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "to": "api:HTTP:DELETE:/users/{id}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:DELETE:/users/{id}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "to": "api:HTTP:POST:/users/{id}/lock", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/users/{id}/lock", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", + "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", + "to": "api:HTTP:POST:/users/{id}/unlock", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", + "from": "project:identity-backend-feature-auth", + "to": "api:HTTP:POST:/users/{id}/unlock", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/summary", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/summary", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/open-overdue", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/open-overdue", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/history", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/history", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", + "from": "project:graph", + "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/{subscriptionId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/{subscriptionId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", + "from": "project:graph", + "to": "api:HTTP:POST:/invoices/{subscriptionId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", + "from": "project:graph", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", + "from": "project:graph", + "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:GET:/invoices", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "from": "project:graph", + "to": "api:HTTP:GET:/invoices", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", + "to": "api:HTTP:POST:/invoices", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "from": "project:graph", + "to": "api:HTTP:POST:/invoices", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/setClient", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/setClientSuccess", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:tickets/setClient", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:tickets/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:tickets/setClientSuccess", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:tickets/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:pages/setClient", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:pages/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:pages/setClientSuccess", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:pages/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents-messages.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/forward", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/forward", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/forwardAck", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/forwardAck", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/error", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{id}", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/error", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:DELETE:/agents/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/ticketAutomationRunChatUpsert", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{id}/start", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/ticketAutomationRunChatUpsert", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{id}/stop", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/ticketChatTicketUpsert", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{id}/restart", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/ticketChatTicketUpsert", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{id}/models", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/remoteDisconnected", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/files", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/remoteDisconnected", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/remoteReconnecting", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/files/{path}", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/remoteReconnecting", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/remoteReconnected", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/files/{path}", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/remoteReconnected", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:PATCH:/agents/{agentId}/files/{path}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/remoteReconnectError", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/environment", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/remoteReconnectError", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/environment", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/clients.gateway.ts", + "to": "api:channel:clients/remoteReconnectFailed", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:clients/remoteReconnectFailed", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/environment/count", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "to": "api:channel:clients/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:PUT:/agents/{agentId}/environment/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "to": "api:channel:clients/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/environment/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "to": "api:channel:tickets/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/status", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "to": "api:channel:tickets/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "to": "api:channel:pages/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/knowledge-board.gateway.ts", + "to": "api:channel:pages/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/vcs/branches/{branch}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:status/markEnvironmentRead", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/branches/{branch}/switch", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:status/markEnvironmentRead", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/vcs/diff", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:status/setActiveEnvironment", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/stage", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:status/setActiveEnvironment", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/unstage", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:status/statusSnapshot", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/commit", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:status/statusSnapshot", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/push", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:status/statusPatch", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/pull", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:status/statusPatch", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/fetch", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:billing/subscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/workspace/prepare-clean", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:billing/subscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/rebase", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:billing/unsubscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/vcs/conflicts/resolve", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:billing/unsubscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/automation/verify-commands", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:billing/dashboardStatusUpdate", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/configuration", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:billing/dashboardStatusUpdate", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/configuration", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/status.gateway.ts", + "to": "api:channel:demo/status", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:DELETE:/agents/{agentId}/deployments/configuration", + "from": "project:agenstra-backend-feature-agent-controller", + "to": "api:channel:demo/status", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "to": "api:channel:clients/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/branches", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "to": "api:channel:clients/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/repositories/{repositoryId}/workflows", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "to": "api:channel:tickets/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/workflows/trigger", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "to": "api:channel:tickets/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "to": "api:channel:pages/setClient", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-controller/src/lib/gateways/tickets-board.gateway.ts", + "to": "api:channel:pages/setClientSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/gateways/billing-status.gateway.ts", + "to": "api:channel:billing/subscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:channel:billing/subscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/jobs/{jobId}/logs", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/gateways/billing-status.gateway.ts", + "to": "api:channel:billing/unsubscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/agents.controller.ts", - "to": "api:HTTP:POST:/agents/{agentId}/deployments/runs/{runId}/cancel", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:channel:billing/unsubscribeDashboardStatus", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/config.controller.ts", - "to": "api:HTTP:GET:/config", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/gateways/project-board.gateway.ts", + "to": "api:channel:projects/setProject", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/config", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:channel:projects/setProject", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", - "to": "api:HTTP:GET:/configuration-overrides", + "from": "file:libs/domains/decabill/backend/feature-billing-manager/src/lib/projects/gateways/project-board.gateway.ts", + "to": "api:channel:projects/setProjectSuccess", "type": "implements" }, { - "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:GET:/configuration-overrides", + "from": "project:decabill-backend-feature-billing-manager", + "to": "api:channel:projects/setProjectSuccess", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", - "to": "api:HTTP:PUT:/configuration-overrides/{settingKey}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/login", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:PUT:/configuration-overrides/{settingKey}", + "to": "api:channel:agents/login", "type": "implements" }, { - "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/controllers/workspace-configuration-overrides.controller.ts", - "to": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/loginSuccess", "type": "implements" }, { "from": "project:agenstra-backend-feature-agent-manager", - "to": "api:HTTP:DELETE:/configuration-overrides/{settingKey}", + "to": "api:channel:agents/loginSuccess", "type": "implements" }, { - "from": "file:libs/domains/shared/backend/feature-monitoring/src/lib/health.controller.ts", - "to": "api:HTTP:GET:/health", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/loginError", "type": "implements" }, { - "from": "project:shared-backend-feature-monitoring", - "to": "api:HTTP:GET:/health", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/loginError", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "to": "api:HTTP:POST:/auth/login", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:clients/ticketAutomationRunChatUpsert", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/auth/login", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:clients/ticketAutomationRunChatUpsert", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "to": "api:HTTP:POST:/auth/register", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:clients/ticketChatTicketUpsert", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/auth/register", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:clients/ticketChatTicketUpsert", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "to": "api:HTTP:POST:/auth/confirm-email", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/chat", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/auth/confirm-email", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/chat", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "to": "api:HTTP:POST:/auth/request-password-reset", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/enhanceChat", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/auth/request-password-reset", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/enhanceChat", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "to": "api:HTTP:POST:/auth/reset-password", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/chatEnhanceResult", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/auth/reset-password", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/chatEnhanceResult", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "to": "api:HTTP:POST:/auth/change-password", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/chatMessage", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/auth/change-password", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/chatMessage", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/auth.controller.ts", - "to": "api:HTTP:POST:/auth/logout", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/chatEvent", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/auth/logout", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/chatEvent", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "to": "api:HTTP:GET:/users", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/generateTicketBody", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:GET:/users", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/generateTicketBody", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "to": "api:HTTP:POST:/users", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/fileUpdate", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/users", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/fileUpdate", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "to": "api:HTTP:GET:/users/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/fileUpdateNotification", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:GET:/users/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/fileUpdateNotification", "type": "implements" }, - { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "to": "api:HTTP:POST:/users/{id}", + { + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/logout", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/users/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/logout", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "to": "api:HTTP:DELETE:/users/{id}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/logoutSuccess", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:DELETE:/users/{id}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/logoutSuccess", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "to": "api:HTTP:POST:/users/{id}/lock", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/createTerminal", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/users/{id}/lock", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/createTerminal", "type": "implements" }, { - "from": "file:libs/domains/identity/backend/feature-auth/src/lib/controllers/users.controller.ts", - "to": "api:HTTP:POST:/users/{id}/unlock", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/terminalInput", "type": "implements" }, { - "from": "project:identity-backend-feature-auth", - "to": "api:HTTP:POST:/users/{id}/unlock", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/terminalInput", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/summary", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/closeTerminal", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices/summary", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/closeTerminal", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/open-overdue", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/ticketBodyResult", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices/open-overdue", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/ticketBodyResult", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/history", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/messageFilterResult", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices/history", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/messageFilterResult", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/error", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/error", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/terminalCreated", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/terminalCreated", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/terminalOutput", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/void-document/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/terminalOutput", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/terminalClosed", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices/ref/{invoiceRefId}/time-report/pdf", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/terminalClosed", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", + "from": "file:libs/domains/agenstra/backend/feature-agent-manager/src/lib/gateways/agents.gateway.ts", + "to": "api:channel:agents/containerStats", "type": "implements" }, { - "from": "project:graph", - "to": "api:HTTP:POST:/invoices/ref/{invoiceRefId}/pay", + "from": "project:agenstra-backend-feature-agent-manager", + "to": "api:channel:agents/containerStats", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:demo/status", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:GET:/invoices/{subscriptionId}", + "to": "api:channel:demo/status", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/{subscriptionId}", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:status/statusSnapshot", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:POST:/invoices/{subscriptionId}", + "to": "api:channel:status/statusSnapshot", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:status/statusPatch", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}", + "to": "api:channel:status/statusPatch", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:status/markEnvironmentRead", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/pdf", + "to": "api:channel:status/markEnvironmentRead", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:status/setActiveEnvironment", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/void-document/pdf", + "to": "api:channel:status/setActiveEnvironment", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:billing/subscribeDashboardStatus", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:GET:/invoices/{subscriptionId}/ref/{invoiceRefId}/time-report/pdf", + "to": "api:channel:billing/subscribeDashboardStatus", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:billing/unsubscribeDashboardStatus", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/pay", + "to": "api:channel:billing/unsubscribeDashboardStatus", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts", + "to": "api:channel:billing/dashboardStatusUpdate", "type": "implements" }, { "from": "project:graph", - "to": "api:HTTP:POST:/invoices/{subscriptionId}/ref/{invoiceRefId}/void", + "to": "api:channel:billing/dashboardStatusUpdate", "type": "implements" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:GET:/invoices", - "type": "implements" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-billing", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-billing.service.ts", + "type": "contains" }, { - "from": "project:graph", - "to": "api:HTTP:GET:/invoices", - "type": "implements" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-customer-profiles", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-customer-profiles.service.ts", + "type": "contains" }, { - "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/invoices.controller.ts", - "to": "api:HTTP:POST:/invoices", - "type": "implements" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/admin-promotions", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/admin-promotions.service.ts", + "type": "contains" }, { - "from": "project:graph", - "to": "api:HTTP:POST:/invoices", - "type": "implements" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/availability", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/availability.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-agenstra-documentation", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/backorders", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/backorders.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-what-is-agenstra", - "to": "project:graph", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/cloud-init-configs", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/cloud-init-configs.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-what-is-agenstra", - "to": "project:code", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/customer-profile", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/customer-profile.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-what-is-agenstra", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/invoices", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/invoices.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-documentation-structure", - "to": "project:sbom", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-milestones", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-milestones.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-documentation-structure", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-tickets", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-tickets.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-documentation-structure", - "to": "api:HTTP:POST:/auth/register", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/project-time-entries", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/project-time-entries.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-documentation-structure", - "to": "api:HTTP:GET:/agents", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/projects", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/projects.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-documentation-structure", - "to": "api:HTTP:POST:/agents", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/promotions", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/promotions.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-documentation-structure", - "to": "api:HTTP:GET:/config", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/public-withdrawal", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/public-withdrawal.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-system-architecture", - "to": "project:graph", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-plans", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-plans.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-system-architecture", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/service-types", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/service-types.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-key-features", - "to": "project:code", - "type": "documents" + "from": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/state/subscriptions", + "to": "file:libs/domains/decabill/frontend/data-access-billing-console/src/lib/services/subscriptions.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-key-features", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/agents", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/agents.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-external-resources", - "to": "project:code", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/clients", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/clients.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-external-resources", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/deployments", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/deployments.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-ai-agents-context-agenstra", - "to": "project:code", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/env", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/env.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-ai-agents-context-agenstra", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/files", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/files.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-overview", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/filter-rules", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/filter-rules.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-directory-structure", - "to": "project:code", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/knowledge", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/knowledge.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-directory-structure", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/statistics", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/statistics.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-components", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/tickets", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/tickets.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-generating-tool-configs", - "to": "project:code", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/vcs", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/vcs.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-generating-tool-configs", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/state/workspace-config", + "to": "file:libs/domains/agenstra/frontend/data-access-agent-console/src/lib/services/workspace-config.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-agentctx", - "to": "project:ai", - "type": "documents" + "from": "file:libs/domains/shared/frontend/data-access-communication/src/lib/state/contact-request", + "to": "file:libs/domains/shared/frontend/data-access-communication/src/lib/services/contact-request.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-purpose", - "to": "project:code", - "type": "documents" + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-purpose", - "to": "project:ai", - "type": "documents" + "from": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices", + "to": "file:tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts", + "type": "contains" }, { - "from": "concept:agenstra-installation", - "to": "project:ai", + "from": "concept:agenstra-documentation-structure", + "to": "api:HTTP:POST:/auth/register", "type": "documents" }, { - "from": "concept:agenstra-usage", - "to": "project:ai", + "from": "concept:agenstra-documentation-structure", + "to": "api:HTTP:GET:/agents", "type": "documents" }, { - "from": "concept:agenstra-related", - "to": "project:graph", + "from": "concept:agenstra-documentation-structure", + "to": "api:HTTP:POST:/agents", "type": "documents" }, { - "from": "concept:agenstra-related", - "to": "project:ai", + "from": "concept:agenstra-documentation-structure", + "to": "api:HTTP:GET:/config", "type": "documents" }, { @@ -30009,11 +43013,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-agents-and-subagents", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agents-and-subagents", "to": "api:HTTP:GET:/agents", @@ -30024,11 +43023,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-structure", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-structure", "to": "api:HTTP:GET:/agents", @@ -30039,16 +43033,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-frontmatter-properties-read-by-the-reader", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-frontmatter-properties-read-by-the-reader", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-frontmatter-properties-read-by-the-reader", "to": "api:HTTP:GET:/agents", @@ -30059,16 +43043,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-example-primary-agent", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-example-primary-agent", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-example-primary-agent", "to": "api:HTTP:GET:/agents", @@ -30079,11 +43053,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-example-subagent", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-example-subagent", "to": "api:HTTP:GET:/agents", @@ -30094,16 +43063,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-output-by-tool", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-output-by-tool", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-output-by-tool", "to": "api:HTTP:GET:/agents", @@ -30114,181 +43073,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-commands", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-example", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-knowledge-graph", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-knowledge-graph", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-why-it-exists", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-why-it-exists", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-how-to-generate", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-how-to-generate", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-schema-overview", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-schema-overview", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-using-the-graph-with-ai-tools", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-using-the-graph-with-ai-tools", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-security", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-security", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-implementation", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-implementation", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-mcp-definitions", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-mcp-definitions", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-schema-properties-read-by-the-reader", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-example-local", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-example-local", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-example-remote", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-rules", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-frontmatter-metadata", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-content-guidelines", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-content-guidelines", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-examples", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-coding-standards", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-conventions", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-project-conventions", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-project-conventions", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-typescript-standards", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-skills", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-design-patterns", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-factory-pattern", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-api-reference", "to": "api:HTTP:GET:/clients", @@ -30354,11 +43138,6 @@ "to": "api:HTTP:POST:/clients", "type": "documents" }, - { - "from": "concept:agenstra-agent-manager-api", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agent-manager-api", "to": "api:HTTP:POST:/auth/login", @@ -30389,36 +43168,6 @@ "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:agenstra-applications-documentation", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-applications", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-applications", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-application-relationships", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-application-relationships", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-communication-patterns", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-communication-patterns", "to": "api:HTTP:POST:/auth/login", @@ -30439,21 +43188,6 @@ "to": "project:agenstra-backend-agent-controller", "type": "documents" }, - { - "from": "concept:agenstra-features", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-architecture", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-architecture", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-architecture", "to": "api:HTTP:GET:/agents", @@ -30464,124 +43198,64 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-api-endpoints", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-api-endpoints", "to": "api:HTTP:GET:/clients", "type": "documents" }, { - "from": "concept:agenstra-api-endpoints", - "to": "api:HTTP:POST:/clients", - "type": "documents" - }, - { - "from": "concept:agenstra-api-endpoints", - "to": "api:HTTP:GET:/agents", - "type": "documents" - }, - { - "from": "concept:agenstra-api-endpoints", - "to": "api:HTTP:POST:/agents", - "type": "documents" - }, - { - "from": "concept:agenstra-websocket-gateway", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-websocket-gateway", - "to": "api:HTTP:POST:/auth/login", - "type": "documents" - }, - { - "from": "concept:agenstra-websocket-gateway", - "to": "api:HTTP:GET:/agents", - "type": "documents" - }, - { - "from": "concept:agenstra-websocket-gateway", - "to": "api:HTTP:POST:/agents", - "type": "documents" - }, - { - "from": "concept:agenstra-rate-limiting", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-environment-variables", - "to": "project:ai", + "from": "concept:agenstra-api-endpoints", + "to": "api:HTTP:POST:/clients", "type": "documents" }, { - "from": "concept:agenstra-docker-deployment", - "to": "project:ai", + "from": "concept:agenstra-api-endpoints", + "to": "api:HTTP:GET:/agents", "type": "documents" }, { - "from": "concept:agenstra-build-api-container", - "to": "project:agenstra-backend-agent-manager", + "from": "concept:agenstra-api-endpoints", + "to": "api:HTTP:POST:/agents", "type": "documents" }, { - "from": "concept:agenstra-build-api-container", - "to": "project:ai", + "from": "concept:agenstra-websocket-gateway", + "to": "api:HTTP:POST:/auth/login", "type": "documents" }, { - "from": "concept:agenstra-or-run-directly", - "to": "project:ai", + "from": "concept:agenstra-websocket-gateway", + "to": "api:HTTP:GET:/agents", "type": "documents" }, { - "from": "concept:agenstra-license", - "to": "project:ai", + "from": "concept:agenstra-websocket-gateway", + "to": "api:HTTP:POST:/agents", "type": "documents" }, { - "from": "concept:agenstra-backend-agent-manager", + "from": "concept:agenstra-build-api-container", "to": "project:agenstra-backend-agent-manager", "type": "documents" }, { - "from": "concept:agenstra-build-worker-container", + "from": "concept:agenstra-backend-agent-manager", "to": "project:agenstra-backend-agent-manager", "type": "documents" }, { "from": "concept:agenstra-build-worker-container", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-build-vnc-container", "to": "project:agenstra-backend-agent-manager", "type": "documents" }, { "from": "concept:agenstra-build-vnc-container", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-or-run-directly-with-docker-socket-mount", "to": "project:agenstra-backend-agent-manager", "type": "documents" }, { "from": "concept:agenstra-or-run-directly-with-docker-socket-mount", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-or-run-directly-with-docker-socket-mount", - "to": "project:ai", + "to": "project:agenstra-backend-agent-manager", "type": "documents" }, { @@ -30594,16 +43268,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-state-management-ngrx", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-routing", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-routing", "to": "api:HTTP:POST:/auth/login", @@ -30664,41 +43328,16 @@ "to": "project:agenstra-frontend-agent-console", "type": "documents" }, - { - "from": "concept:agenstra-build-container", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-production-deployment", "to": "project:agenstra-frontend-agent-console", "type": "documents" }, - { - "from": "concept:agenstra-production-deployment", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-key-architectural-concepts", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-architecture-principles", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-architecture-principles", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-backend-applications", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-backend-applications", "to": "api:HTTP:GET:/agents", @@ -30719,46 +43358,6 @@ "to": "api:HTTP:POST:/agents-filters", "type": "documents" }, - { - "from": "concept:agenstra-frontend-applications", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-backend-libraries", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-frontend-libraries", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-component-dependencies", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-component-dependencies", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-database-schema", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-external-dependencies", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-data-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-data-flow", "to": "api:HTTP:GET:/clients", @@ -30784,11 +43383,6 @@ "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:agenstra-http-rest-api-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-http-rest-api-flow", "to": "api:HTTP:GET:/clients", @@ -30809,26 +43403,11 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-websocket-event-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-websocket-event-flow", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-state-management-flow-ngrx", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-state-management-flow-ngrx", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-state-management-flow-ngrx", "to": "api:HTTP:GET:/clients", @@ -30844,11 +43423,6 @@ "to": "api:HTTP:GET:/clients/{id}", "type": "documents" }, - { - "from": "concept:agenstra-file-system-operations-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-file-system-operations-flow", "to": "api:HTTP:GET:/clients", @@ -30879,11 +43453,6 @@ "to": "api:HTTP:PUT:/agents/{agentId}/files/{path}", "type": "documents" }, - { - "from": "concept:agenstra-version-control-operations-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-version-control-operations-flow", "to": "api:HTTP:GET:/clients", @@ -30904,11 +43473,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-server-provisioning-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-server-provisioning-flow", "to": "api:HTTP:GET:/clients", @@ -30924,66 +43488,16 @@ "to": "api:HTTP:POST:/clients/provisioning/provision", "type": "documents" }, - { - "from": "concept:agenstra-three-tier-architecture", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-three-tier-architecture", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-component-relationships", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-component-relationships", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-authentication-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-authentication-flow", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-state-management", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-state-management", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-reconnection-handling", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-deployment-guides", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-deployment-architecture", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-deployment-architecture", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-start-services", "to": "project:agenstra-backend-agent-controller", @@ -31004,36 +43518,6 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-redis-and-queue-environment-variables", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-bull-board", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-prerequisites", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-docker-compose-setup", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-container-configuration", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-building-containers", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agent-controller", "to": "project:agenstra-backend-agent-controller", @@ -31049,36 +43533,16 @@ "to": "project:agenstra-backend-agent-manager", "type": "documents" }, - { - "from": "concept:agenstra-agent-manager", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agent-manager", "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:agenstra-running-containers", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-view-logs", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-run-frontend-agent-console", "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:agenstra-docker-socket-mount", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-docker-socket-mount", "to": "api:HTTP:GET:/agents", @@ -31089,21 +43553,11 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-health-checks", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-health-checks", "to": "api:HTTP:GET:/health", "type": "documents" }, - { - "from": "concept:agenstra-last-100-lines", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-frontend-applications-express-ssr", "to": "project:agenstra-frontend-agent-console", @@ -31119,21 +43573,11 @@ "to": "project:agenstra-frontend-docs", "type": "documents" }, - { - "from": "concept:agenstra-frontend-applications-express-ssr", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-frontend-applications-express-ssr", "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:agenstra-redis-and-bullmq-background-jobs", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-terminal-1-agent-controller", "to": "project:agenstra-backend-agent-controller", @@ -31149,11 +43593,6 @@ "to": "project:agenstra-frontend-agent-console", "type": "documents" }, - { - "from": "concept:agenstra-development-workflow", - "to": "project:code", - "type": "documents" - }, { "from": "concept:agenstra-build-specific-project", "to": "project:agenstra-backend-agent-controller", @@ -31169,16 +43608,6 @@ "to": "project:agenstra-backend-agent-manager", "type": "documents" }, - { - "from": "concept:agenstra-docker-for-agent-containers", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-pre-deployment-checklist", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-pre-deployment-checklist", "to": "api:HTTP:GET:/agents", @@ -31189,26 +43618,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-performance-optimization", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-monitoring-setup", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-rollback-plan", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-platform-prerequisites", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-platform-prerequisites", "to": "api:HTTP:GET:/agents", @@ -31219,26 +43628,11 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-controller-stack", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-controller-stack", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-agent-manager-host", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-agent-manager-host", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agent-manager-host", "to": "api:HTTP:GET:/agents", @@ -31249,41 +43643,11 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-network-and-external-dependencies", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-feature-relationships", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-feature-relationships", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-agent-management", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-creating-an-agent", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-creating-an-agent", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-agent-lifecycle", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agent-lifecycle", "to": "api:HTTP:POST:/auth/login", @@ -31299,26 +43663,11 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-agent-types", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agent-types", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-agent-operations", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-container-interaction", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-container-interaction", "to": "api:HTTP:POST:/auth/login", @@ -31344,11 +43693,6 @@ "to": "api:HTTP:POST:/agents-filters", "type": "documents" }, - { - "from": "concept:agenstra-atlassian-import", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-why-controller-native", "to": "api:HTTP:GET:/tickets", @@ -31379,11 +43723,6 @@ "to": "api:HTTP:PUT:/imports/atlassian/configs/{id}", "type": "documents" }, - { - "from": "concept:agenstra-queue-jobs-and-manual-runs", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-queue-jobs-and-manual-runs", "to": "api:HTTP:GET:/imports/atlassian/configs", @@ -31529,31 +43868,11 @@ "to": "api:HTTP:DELETE:/agents-filters/{id}", "type": "documents" }, - { - "from": "concept:agenstra-authentication-methods", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-authentication-methods", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-authentication-methods", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-users-authentication-flow", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-users-authentication-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-users-authentication-flow", "to": "api:HTTP:POST:/auth/login", @@ -31564,11 +43883,6 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-disabling-signup", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-disabling-signup", "to": "api:HTTP:POST:/auth/login", @@ -31599,11 +43913,6 @@ "to": "api:HTTP:POST:/users", "type": "documents" }, - { - "from": "concept:agenstra-admin-user-management", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-admin-user-management", "to": "api:HTTP:GET:/users", @@ -31614,16 +43923,6 @@ "to": "api:HTTP:POST:/users", "type": "documents" }, - { - "from": "concept:agenstra-security-features", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-security-features", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-security-features", "to": "api:HTTP:POST:/auth/login", @@ -31644,21 +43943,6 @@ "to": "api:HTTP:GET:/users/{id}", "type": "documents" }, - { - "from": "concept:agenstra-authentication-flow-diagram", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-authentication-flow-diagram", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-authentication-flow-diagram", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-authentication-flow-diagram", "to": "api:HTTP:POST:/auth/login", @@ -31669,66 +43953,16 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-registration-sequence-diagram", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-registration-sequence-diagram", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-registration-sequence-diagram", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-per-client-permissions", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-chat-interface", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-message-flow", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-creating-a-client", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-client-configuration", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-client-configuration", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-managing-clients", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-supported-providers", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-usage-examples", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-usage-examples", "to": "api:HTTP:GET:/agents", @@ -31784,71 +44018,16 @@ "to": "api:HTTP:GET:/agents/{agentId}/deployments/runs/{runId}/logs", "type": "documents" }, - { - "from": "concept:agenstra-future-enhancements", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-dynamic-provider-plugins", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-dynamic-provider-plugins", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-dynamic-provider-plugins", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-resolution-order", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-resolution-order", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-resolution-order", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-baked-in-plugins-image-build", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-baked-in-plugins-image-build", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-post-build-plugins-no-image-rebuild", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-mixed", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-startup-error-policy", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-where-each-registry-is-used", - "to": "project:code", - "type": "documents" - }, { "from": "concept:agenstra-where-each-registry-is-used", "to": "api:HTTP:POST:/auth/register", @@ -31869,66 +44048,16 @@ "to": "api:HTTP:GET:/clients/provisioning/providers", "type": "documents" }, - { - "from": "concept:agenstra-email-notifications-agenstra", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-transport", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-transport", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-wiring", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-wiring", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-templates", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-events", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-events", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-file-management", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-file-operations", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-file-operations", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-file-operation-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-file-operation-flow", "to": "api:HTTP:GET:/clients", @@ -31959,11 +44088,6 @@ "to": "api:HTTP:POST:/agents-filters", "type": "documents" }, - { - "from": "concept:agenstra-provisioning-process", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-provisioning-request", "to": "api:HTTP:GET:/clients", @@ -31976,47 +44100,22 @@ }, { "from": "concept:agenstra-provisioning-request", - "to": "api:HTTP:GET:/clients/provisioning/providers", - "type": "documents" - }, - { - "from": "concept:agenstra-provisioning-request", - "to": "api:HTTP:POST:/clients/provisioning/provision", - "type": "documents" - }, - { - "from": "concept:agenstra-provisioning-steps", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-ticket-automation", - "to": "api:HTTP:GET:/tickets", - "type": "documents" - }, - { - "from": "concept:agenstra-ticket-automation", - "to": "api:HTTP:POST:/tickets", - "type": "documents" - }, - { - "from": "concept:agenstra-run-phases-high-level", - "to": "project:ai", + "to": "api:HTTP:GET:/clients/provisioning/providers", "type": "documents" }, { - "from": "concept:agenstra-failures-and-retries", - "to": "project:code", + "from": "concept:agenstra-provisioning-request", + "to": "api:HTTP:POST:/clients/provisioning/provision", "type": "documents" }, { - "from": "concept:agenstra-failures-and-retries", - "to": "project:ai", + "from": "concept:agenstra-ticket-automation", + "to": "api:HTTP:GET:/tickets", "type": "documents" }, { - "from": "concept:agenstra-http-and-realtime", - "to": "project:ai", + "from": "concept:agenstra-ticket-automation", + "to": "api:HTTP:POST:/tickets", "type": "documents" }, { @@ -32109,11 +44208,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-tickets-and-workspaces", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-tickets-and-workspaces", "to": "api:HTTP:GET:/tickets", @@ -32149,11 +44243,6 @@ "to": "api:HTTP:DELETE:/tickets/{id}", "type": "documents" }, - { - "from": "concept:agenstra-usage-statistics", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-per-workspace-statistics", "to": "api:HTTP:GET:/clients", @@ -32179,21 +44268,6 @@ "to": "api:HTTP:DELETE:/clients/{id}", "type": "documents" }, - { - "from": "concept:agenstra-relationship-to-container-stats", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-git-operations", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-git-operation-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-git-operation-flow", "to": "api:HTTP:GET:/clients", @@ -32214,21 +44288,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-vnc-browser-access", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:agenstra-vnc-browser-access", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-vnc-container-lifecycle", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-vnc-container-lifecycle", "to": "api:HTTP:POST:/auth/login", @@ -32244,16 +44303,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-web-ide", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-web-ide", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-webhooks-agenstra", "to": "api:HTTP:POST:/auth/register", @@ -32269,36 +44318,11 @@ "to": "api:HTTP:POST:/admin/webhooks", "type": "documents" }, - { - "from": "concept:agenstra-payload-examples", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-delivery-and-retries", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-delivery-log-retention", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-connection-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-connection-flow", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-tickets-board-realtime-tickets-namespace", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-tickets-board-realtime-tickets-namespace", "to": "api:HTTP:GET:/tickets", @@ -32309,16 +44333,6 @@ "to": "api:HTTP:POST:/tickets", "type": "documents" }, - { - "from": "concept:agenstra-event-forwarding", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-error-handling", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-error-handling", "to": "api:HTTP:POST:/auth/login", @@ -32339,41 +44353,11 @@ "to": "project:agenstra-backend-agent-controller", "type": "documents" }, - { - "from": "concept:agenstra-cors-for-production", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-creating-your-first-client", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-creating-your-first-agent", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-creating-your-first-agent", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-connecting-to-an-agent", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-quick-tour-of-features", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-quick-tour-of-features", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-quick-tour-of-features", "to": "api:HTTP:GET:/tickets", @@ -32394,161 +44378,26 @@ "to": "api:HTTP:POST:/tickets", "type": "documents" }, - { - "from": "concept:agenstra-additional-resources", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-security-documentation", - "to": "project:sbom", - "type": "documents" - }, { "from": "concept:agenstra-security-documentation", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-accepted-risks-register", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-accepted-risks-register", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-accepted-risks-register", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", - "to": "project:release-integrity", - "type": "documents" - }, - { - "from": "concept:agenstra-ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-ar-001-desktop-app-no-os-trusted-code-signing-no-in-app-auto-update", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-ar-002-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-ar-003-backend-authentication-method-resolution", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-ar-004-desktop-window-open-policy-native-agent-console", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-ar-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-hardening-paths-if-an-acceptance-is-withdrawn", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-what-is-scanned", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-workflows", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-workflows", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-severity-policy", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-viewing-results", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-viewing-results", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-local-reproduction", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-local-reproduction", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-relationship-to-sbom-and-dependency-track", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-relationship-to-sbom-and-dependency-track", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-eu-cyber-resilience-act-cra", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-eu-cyber-resilience-act-cra", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-bsi-it-grundschutz", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-bsi-it-grundschutz", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:agenstra-trust-boundaries-summary", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-trust-boundaries-summary", "to": "api:HTTP:GET:/agents", @@ -32559,26 +44408,6 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-container-image-security", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-runtime-users", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-agent-workload-bind-mounts", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-agent-workload-bind-mounts", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-agent-workload-bind-mounts", "to": "api:HTTP:GET:/agents", @@ -32589,51 +44418,16 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-restricted-sudo", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-restricted-sudo", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-manager-and-controller-api-images", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-ssh-sidecar-image", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-ssh-sidecar-image", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-vnc-image", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-openclaw-agi-image", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-coordinated-upgrades", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-container-images-docker", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-container-images-docker", "to": "api:HTTP:POST:/auth/login", @@ -32644,36 +44438,11 @@ "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:agenstra-authentication-mode-backends", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-authentication-mode-backends", "to": "api:HTTP:GET:/health", "type": "documents" }, - { - "from": "concept:agenstra-agent-controller-remote-client-endpoints-ssrf", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-agent-controller-remote-client-endpoints-ssrf", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-http-proxy-to-remote-agent-manager-headers", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-http-proxy-to-remote-agent-manager-headers", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-http-proxy-to-remote-agent-manager-headers", "to": "api:HTTP:GET:/agents", @@ -32684,116 +44453,21 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-logging-and-correlation", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:agenstra-logging-and-correlation", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-frontend-runtime-configuration-get-config", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-frontend-runtime-configuration-get-config", "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:agenstra-websocket-cors-agent-controller", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-vulnerability-reporting-and-artifacts", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-supported-versions-and-security-updates", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-supported-versions-and-security-updates", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-our-response-commitment", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-reporting-a-vulnerability", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-continuous-scanning-ci", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-software-bill-of-materials-sbom", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:agenstra-software-bill-of-materials-sbom", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-desktop-release-integrity", "to": "project:agenstra-native-agent-console", "type": "documents" }, - { - "from": "concept:agenstra-desktop-release-integrity", - "to": "project:release-integrity", - "type": "documents" - }, - { - "from": "concept:agenstra-desktop-release-integrity", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-troubleshooting-guides", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-quick-troubleshooting", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-connection-issues", "to": "project:agenstra-backend-agent-controller", "type": "documents" }, - { - "from": "concept:agenstra-connection-issues", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-authentication-problems", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-container-issues", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-container-issues", "to": "api:HTTP:GET:/agents", @@ -32804,56 +44478,11 @@ "to": "api:HTTP:POST:/agents", "type": "documents" }, - { - "from": "concept:agenstra-database-issues", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-websocket-problems", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:agenstra-file-operation-errors", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-docker-containers", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-view-container-logs", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-execute-commands-in-container", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-inspect-container", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-view-container-stats", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-common-debugging-scenarios", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:agenstra-performance-debugging", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:agenstra-test-api-endpoint", "to": "api:HTTP:GET:/clients", @@ -32884,16 +44513,6 @@ "to": "api:HTTP:POST:/clients", "type": "documents" }, - { - "from": "concept:decabill-documentation-structure", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-documentation-structure", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-documentation-structure", "to": "api:HTTP:POST:/auth/register", @@ -32904,26 +44523,6 @@ "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:decabill-system-architecture", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-system-architecture", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-licensing", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-billing-manager-http-api", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-billing-manager-http-api", "to": "api:HTTP:POST:/auth/login", @@ -32984,21 +44583,11 @@ "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:decabill-billing-manager-websocket-gateways", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-generated-client-package", "to": "project:decabill-backend-billing-manager", "type": "documents" }, - { - "from": "concept:decabill-applications-documentation", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-applications", "to": "api:HTTP:POST:/auth/login", @@ -33009,21 +44598,6 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-application-relationships", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-application-relationships", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-communication-patterns", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-communication-patterns", "to": "api:HTTP:POST:/auth/register", @@ -33034,11 +44608,6 @@ "to": "project:decabill-backend-billing-manager", "type": "documents" }, - { - "from": "concept:decabill-backend", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-frontend", "to": "api:HTTP:POST:/auth/login", @@ -33049,16 +44618,6 @@ "to": "api:HTTP:GET:/public/withdrawal/addressee", "type": "documents" }, - { - "from": "concept:decabill-backend-billing-manager", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-backend-billing-manager", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-backend-billing-manager", "to": "api:HTTP:POST:/auth/register", @@ -33074,26 +44633,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-purpose", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-features", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-features", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-features", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-features", "to": "api:HTTP:POST:/auth/login", @@ -33184,16 +44723,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-architecture", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-queue-roles", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-queue-roles", "to": "api:HTTP:POST:/auth/register", @@ -33204,11 +44733,6 @@ "to": "project:decabill-backend-billing-manager", "type": "documents" }, - { - "from": "concept:decabill-docker-image", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-docker-image", "to": "api:HTTP:GET:/invoices", @@ -33219,11 +44743,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-major-api-areas", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-major-api-areas", "to": "api:HTTP:POST:/auth/login", @@ -33309,11 +44828,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-stripe-and-provisioning", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-run-locally-set-queue-role-all-in-env", "to": "project:decabill-backend-billing-manager", @@ -33334,16 +44848,6 @@ "to": "project:decabill-backend-billing-manager", "type": "documents" }, - { - "from": "concept:decabill-routes-overview", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-routes-overview", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-routes-overview", "to": "api:HTTP:POST:/auth/login", @@ -33439,11 +44943,6 @@ "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:decabill-ngrx-state-slices", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-ngrx-state-slices", "to": "api:HTTP:POST:/auth/register", @@ -33469,61 +44968,11 @@ "to": "project:decabill-frontend-billing-console", "type": "documents" }, - { - "from": "concept:decabill-docker-compose", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-key-architectural-concepts", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-architecture-principles", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-architecture-principles", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-frontend-landing-page", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-redis", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-mailhog-local-only", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-cloud-providers", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-component-dependencies", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-component-dependencies", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-http-rest-api-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-http-rest-api-flow", "to": "api:HTTP:POST:/availability/check", @@ -33544,11 +44993,6 @@ "to": "api:HTTP:GET:/backorders", "type": "documents" }, - { - "from": "concept:decabill-websocket-dashboard-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-websocket-dashboard-flow", "to": "api:HTTP:GET:/subscriptions", @@ -33559,11 +45003,6 @@ "to": "api:HTTP:POST:/subscriptions", "type": "documents" }, - { - "from": "concept:decabill-stripe-redirect-and-webhook-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-stripe-redirect-and-webhook-flow", "to": "api:HTTP:GET:/invoices", @@ -33574,16 +45013,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-open-position-and-billing-day-flow", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-server-provisioning-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-server-provisioning-flow", "to": "api:HTTP:GET:/cloud-init-configs", @@ -33594,16 +45023,6 @@ "to": "api:HTTP:POST:/cloud-init-configs", "type": "documents" }, - { - "from": "concept:decabill-backorder-retry-flow", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-admin-manual-invoice-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-admin-manual-invoice-flow", "to": "api:HTTP:GET:/admin/billing/invoices", @@ -33619,31 +45038,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-multi-tenant-request-flow", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-state-management-flow-ngrx", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-state-management-flow-ngrx", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-two-tier-architecture", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-two-tier-architecture", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-two-tier-architecture", "to": "api:HTTP:POST:/auth/login", @@ -33654,51 +45048,6 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-component-relationships", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-component-relationships", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-deployment-topology", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-deployment-topology", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-data-boundaries", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-deployment-guides", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-deployment-architecture", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-deployment-architecture", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-billing-manager-api-worker-scheduler-postgres-redis-mailhog", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-start-billing-manager", "to": "project:decabill-backend-billing-manager", @@ -33709,16 +45058,6 @@ "to": "project:decabill-frontend-billing-console", "type": "documents" }, - { - "from": "concept:decabill-background-jobs-bullmq", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-job-registry", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-job-registry", "to": "api:HTTP:POST:/auth/register", @@ -33729,31 +45068,11 @@ "to": "api:HTTP:POST:/admin/billing/bill-now", "type": "documents" }, - { - "from": "concept:decabill-redis-and-queue-environment-variables", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-docker-deployment", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-prerequisites", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-prerequisites", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:decabill-docker-compose-setup", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-docker-compose-setup", "to": "api:HTTP:GET:/invoices", @@ -33764,21 +45083,11 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-container-configuration", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-container-configuration", "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:decabill-building-containers", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-billing-api-image", "to": "project:decabill-backend-billing-manager", @@ -33794,16 +45103,6 @@ "to": "project:decabill-frontend-docs", "type": "documents" }, - { - "from": "concept:decabill-container-security-images", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-running-containers", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-health-checks", "to": "api:HTTP:GET:/health", @@ -33819,11 +45118,6 @@ "to": "project:decabill-frontend-docs", "type": "documents" }, - { - "from": "concept:decabill-frontend-applications-express-ssr", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-frontend-applications-express-ssr", "to": "api:HTTP:GET:/projects", @@ -33834,11 +45128,6 @@ "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:decabill-redis-and-bullmq-background-jobs", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-environment-specific-defaults", "to": "api:HTTP:GET:/users", @@ -33849,16 +45138,6 @@ "to": "api:HTTP:POST:/users", "type": "documents" }, - { - "from": "concept:decabill-installation", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-redis-for-bullmq-host-port-6380-to-avoid-clashing-with-other-stacks", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-stripe-optional-for-local-payment-flows", "to": "api:HTTP:GET:/invoices", @@ -33884,11 +45163,6 @@ "to": "project:decabill-frontend-docs", "type": "documents" }, - { - "from": "concept:decabill-development-workflow", - "to": "project:code", - "type": "documents" - }, { "from": "concept:decabill-billing-manager", "to": "project:decabill-backend-billing-manager", @@ -33914,11 +45188,6 @@ "to": "project:decabill-frontend-docs", "type": "documents" }, - { - "from": "concept:decabill-pre-deployment-checklist", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-pre-deployment-checklist", "to": "api:HTTP:GET:/health", @@ -33934,26 +45203,6 @@ "to": "api:HTTP:POST:/users", "type": "documents" }, - { - "from": "concept:decabill-performance-optimization", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-monitoring-setup", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-backup-strategies", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-deployment-process", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-deployment-process", "to": "api:HTTP:GET:/health", @@ -33964,36 +45213,11 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-rollback-plan", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-platform-prerequisites", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-data-services", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-backend-billing-manager-by-queue-role", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-backend-billing-manager-by-queue-role", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-persistent-volumes", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-persistent-volumes", "to": "api:HTTP:GET:/invoices", @@ -34004,51 +45228,11 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-mixed-and-local-development-host", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-network-and-external-dependencies", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-feature-relationships", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-feature-relationships", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-authentication-methods", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-authentication-methods", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-authentication-methods", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-users-authentication-flow", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-users-authentication-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-users-authentication-flow", "to": "api:HTTP:POST:/auth/login", @@ -34059,11 +45243,6 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-disabling-signup", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-disabling-signup", "to": "api:HTTP:POST:/auth/login", @@ -34084,21 +45263,11 @@ "to": "api:HTTP:POST:/users", "type": "documents" }, - { - "from": "concept:decabill-security-features", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-security-features", "to": "api:HTTP:POST:/auth/logout", "type": "documents" }, - { - "from": "concept:decabill-api-endpoints", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-api-endpoints", "to": "api:HTTP:GET:/subscriptions", @@ -34154,16 +45323,6 @@ "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/items/{itemId}/actions/restart", "type": "documents" }, - { - "from": "concept:decabill-authentication-flow-diagram", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-authentication-flow-diagram", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-authentication-flow-diagram", "to": "api:HTTP:POST:/auth/login", @@ -34174,16 +45333,6 @@ "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-payment-processor-capability", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-setup-and-enable-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-setup-and-enable-flow", "to": "api:HTTP:GET:/subscriptions", @@ -34239,16 +45388,6 @@ "to": "api:HTTP:DELETE:/admin/billing/customer-profiles/{id}", "type": "documents" }, - { - "from": "concept:decabill-invoice-auto-payment-lifecycle", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-notifications", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-related", "to": "api:HTTP:GET:/subscriptions", @@ -34269,31 +45408,16 @@ "to": "api:HTTP:POST:/customer-profile", "type": "documents" }, - { - "from": "concept:decabill-backorders", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-backorders", "to": "api:HTTP:GET:/backorders", "type": "documents" }, - { - "from": "concept:decabill-backorder-statuses", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-backorder-statuses", "to": "api:HTTP:GET:/backorders", "type": "documents" }, - { - "from": "concept:decabill-creating-backorders", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-creating-backorders", "to": "api:HTTP:GET:/subscriptions", @@ -34309,11 +45433,6 @@ "to": "api:HTTP:GET:/backorders", "type": "documents" }, - { - "from": "concept:decabill-retry-processing", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-retry-processing", "to": "api:HTTP:POST:/availability/check", @@ -34324,11 +45443,6 @@ "to": "api:HTTP:GET:/backorders", "type": "documents" }, - { - "from": "concept:decabill-user-api", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-user-api", "to": "api:HTTP:GET:/backorders", @@ -34344,11 +45458,6 @@ "to": "api:HTTP:POST:/backorders/{id}/cancel", "type": "documents" }, - { - "from": "concept:decabill-customer-geography-on-retry", - "to": "project:graph", - "type": "documents" - }, { "from": "concept:decabill-customer-geography-on-retry", "to": "api:HTTP:GET:/backorders", @@ -34409,11 +45518,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-manual-invoice-administration", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-manual-invoice-administration", "to": "api:HTTP:GET:/admin/billing/invoices", @@ -34484,11 +45588,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-customer-billing-profiles-admin", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-customer-billing-profiles-admin", "to": "api:HTTP:GET:/customer-profile", @@ -34644,11 +45743,6 @@ "to": "api:HTTP:POST:/cloud-init-configs", "type": "documents" }, - { - "from": "concept:decabill-template-placeholders", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-template-placeholders", "to": "api:HTTP:GET:/cloud-init-configs", @@ -34659,11 +45753,6 @@ "to": "api:HTTP:POST:/cloud-init-configs", "type": "documents" }, - { - "from": "concept:decabill-environment-variables", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-environment-variables", "to": "api:HTTP:GET:/cloud-init-configs", @@ -34674,11 +45763,6 @@ "to": "api:HTTP:POST:/cloud-init-configs", "type": "documents" }, - { - "from": "concept:decabill-service-plan-product-defaults", - "to": "project:graph", - "type": "documents" - }, { "from": "concept:decabill-service-plan-product-defaults", "to": "api:HTTP:GET:/cloud-init-configs", @@ -34689,11 +45773,6 @@ "to": "api:HTTP:POST:/cloud-init-configs", "type": "documents" }, - { - "from": "concept:decabill-admin-api", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-admin-api", "to": "api:HTTP:GET:/service-plans", @@ -34844,16 +45923,6 @@ "to": "api:HTTP:POST:/customer-profile", "type": "documents" }, - { - "from": "concept:decabill-required-fields-for-ordering", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-required-fields-for-ordering", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-required-fields-for-ordering", "to": "api:HTTP:GET:/subscriptions", @@ -34874,11 +45943,6 @@ "to": "api:HTTP:POST:/customer-profile", "type": "documents" }, - { - "from": "concept:decabill-self-service", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-self-service", "to": "api:HTTP:GET:/customer-profile", @@ -34929,11 +45993,6 @@ "to": "api:HTTP:POST:/admin/billing/customer-profiles", "type": "documents" }, - { - "from": "concept:decabill-validation-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-validation-flow", "to": "api:HTTP:GET:/subscriptions", @@ -35024,46 +46083,16 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-overview-page", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-server-control-sequence", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-error-handling", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-error-handling", "to": "api:HTTP:GET:/backorders", "type": "documents" }, - { - "from": "concept:decabill-registries", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-registries", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-resolution-order", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-resolution-order", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-resolution-order", "to": "api:HTTP:POST:/auth/register", @@ -35094,81 +46123,6 @@ "to": "api:HTTP:GET:/service-types/providers", "type": "documents" }, - { - "from": "concept:decabill-baked-in-plugins", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-baked-in-plugins", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-post-build-plugins", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-startup-error-policy", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-security", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-security", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-docker-compose-example", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-email-notifications-decabill", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-transport", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-transport", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-templates", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-event-catalog-implemented", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-delivery-retries", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-delivery-retries", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-future-webhook-only-today", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-invoices", "to": "api:HTTP:GET:/invoices", @@ -35179,11 +46133,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-invoice-statuses", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-invoice-statuses", "to": "api:HTTP:GET:/invoices", @@ -35194,11 +46143,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-open-positions-and-billing-day", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-open-positions-and-billing-day", "to": "api:HTTP:GET:/invoices", @@ -35209,11 +46153,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-customer-invoice-access", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-customer-invoice-access", "to": "api:HTTP:GET:/invoices/summary", @@ -35274,11 +46213,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-admin-invoice-operations", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-admin-invoice-operations", "to": "api:HTTP:POST:/admin/billing/bill-now", @@ -35299,11 +46233,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-pdf-generation", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-pdf-generation", "to": "api:HTTP:GET:/invoices", @@ -35334,11 +46263,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-payment", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-payment", "to": "api:HTTP:GET:/invoices", @@ -35514,21 +46438,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-tenant-selection", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-data-isolation", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-public-catalog", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-public-catalog", "to": "api:HTTP:GET:/public/service-plan-offerings", @@ -35539,21 +46448,6 @@ "to": "api:HTTP:GET:/public/service-plan-offerings/cheapest", "type": "documents" }, - { - "from": "concept:decabill-background-jobs", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-multi-tenancy-flow", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-customer-payment-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-customer-payment-flow", "to": "api:HTTP:GET:/customer-profile", @@ -35589,11 +46483,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-admin-manual-payment-status", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-admin-manual-payment-status", "to": "api:HTTP:GET:/admin/billing/invoices", @@ -35634,21 +46523,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-swimlanes", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-locking", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-locking", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-locking", "to": "api:HTTP:GET:/tickets", @@ -35699,11 +46573,6 @@ "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", "type": "documents" }, - { - "from": "concept:decabill-rest-board-operations", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-rest-board-operations", "to": "api:HTTP:GET:/tickets", @@ -35729,11 +46598,6 @@ "to": "api:HTTP:GET:/projects", "type": "documents" }, - { - "from": "concept:decabill-connection-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-connection-flow", "to": "api:HTTP:GET:/clients/{id}/provisioning/info", @@ -35744,11 +46608,6 @@ "to": "api:HTTP:GET:/subscriptions", "type": "documents" }, - { - "from": "concept:decabill-frontend-integration", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-frontend-integration", "to": "api:HTTP:POST:/auth/logout", @@ -35764,11 +46623,6 @@ "to": "api:HTTP:GET:/projects", "type": "documents" }, - { - "from": "concept:decabill-customer-access-read-only", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-customer-access-read-only", "to": "api:HTTP:GET:/projects", @@ -35784,11 +46638,6 @@ "to": "api:HTTP:GET:/projects/{projectId}/summary", "type": "documents" }, - { - "from": "concept:decabill-admin-crud", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-admin-crud", "to": "api:HTTP:GET:/projects", @@ -35849,11 +46698,6 @@ "to": "api:HTTP:GET:/projects/{projectId}", "type": "documents" }, - { - "from": "concept:decabill-bill-time", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-bill-time", "to": "api:HTTP:GET:/projects", @@ -35899,11 +46743,6 @@ "to": "api:HTTP:POST:/admin/billing/projects/{projectId}/bill-time", "type": "documents" }, - { - "from": "concept:decabill-time-report-admin", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-time-report-admin", "to": "api:HTTP:GET:/customer-profile", @@ -35984,11 +46823,6 @@ "to": "api:HTTP:GET:/projects/{projectId}/summary", "type": "documents" }, - { - "from": "concept:decabill-project-lifecycle", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-project-lifecycle", "to": "api:HTTP:GET:/projects", @@ -36009,31 +46843,6 @@ "to": "api:HTTP:GET:/projects", "type": "documents" }, - { - "from": "concept:decabill-marketing-promotions", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-marketing-promotions", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-tenant-isolation", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-advantage-types", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-customer-flow", - "to": "project:code", - "type": "documents" - }, { "from": "concept:decabill-customer-flow", "to": "api:HTTP:GET:/subscriptions", @@ -36054,21 +46863,6 @@ "to": "api:HTTP:POST:/promotions/redeem", "type": "documents" }, - { - "from": "concept:decabill-billing-integration", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-billing-integration", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-related-docs", - "to": "project:code", - "type": "documents" - }, { "from": "concept:decabill-related-docs", "to": "api:HTTP:GET:/subscriptions", @@ -36089,11 +46883,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-public-statutory-withdrawal", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-public-statutory-withdrawal", "to": "api:HTTP:GET:/subscriptions", @@ -36104,16 +46893,6 @@ "to": "api:HTTP:POST:/subscriptions", "type": "documents" }, - { - "from": "concept:decabill-flow", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-flow", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-flow", "to": "api:HTTP:POST:/public/withdrawal/request", @@ -36129,21 +46908,6 @@ "to": "api:HTTP:POST:/public/withdrawal/confirm", "type": "documents" }, - { - "from": "concept:decabill-session-resume", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-session-resume", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-matching-rules", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-matching-rules", "to": "api:HTTP:GET:/customer-profile", @@ -36154,16 +46918,6 @@ "to": "api:HTTP:POST:/customer-profile", "type": "documents" }, - { - "from": "concept:decabill-public-api", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-public-api", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-public-api", "to": "api:HTTP:GET:/public/withdrawal/addressee", @@ -36184,11 +46938,6 @@ "to": "api:HTTP:POST:/public/withdrawal/confirm", "type": "documents" }, - { - "from": "concept:decabill-payload-shape", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-supported-providers", "to": "api:HTTP:POST:/auth/register", @@ -36209,21 +46958,6 @@ "to": "api:HTTP:GET:/service-types/providers", "type": "documents" }, - { - "from": "concept:decabill-provisioning-process", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-bundled-product-stack", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-custom-service-kind", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-custom-service-kind", "to": "api:HTTP:GET:/cloud-init-configs", @@ -36234,11 +46968,6 @@ "to": "api:HTTP:POST:/cloud-init-configs", "type": "documents" }, - { - "from": "concept:decabill-tls-and-dns", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-server-information-and-control", "to": "api:HTTP:GET:/subscriptions", @@ -36264,11 +46993,6 @@ "to": "api:HTTP:GET:/subscriptions/{subscriptionId}/items/{itemId}/server-info", "type": "documents" }, - { - "from": "concept:decabill-subscription-item-update-scheduler", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-service-types-and-plans", "to": "api:HTTP:GET:/service-types", @@ -36279,16 +47003,6 @@ "to": "api:HTTP:POST:/service-types", "type": "documents" }, - { - "from": "concept:decabill-service-types", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-service-types", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-service-types", "to": "api:HTTP:POST:/auth/register", @@ -36334,11 +47048,6 @@ "to": "api:HTTP:DELETE:/service-types/{id}", "type": "documents" }, - { - "from": "concept:decabill-service-plans", - "to": "project:graph", - "type": "documents" - }, { "from": "concept:decabill-service-plans", "to": "api:HTTP:GET:/service-types", @@ -36394,11 +47103,6 @@ "to": "api:HTTP:POST:/subscriptions", "type": "documents" }, - { - "from": "concept:decabill-availability-and-pricing", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-availability-and-pricing", "to": "api:HTTP:GET:/service-types", @@ -36434,11 +47138,6 @@ "to": "api:HTTP:POST:/subscriptions", "type": "documents" }, - { - "from": "concept:decabill-subscription-lifecycle", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-subscription-lifecycle", "to": "api:HTTP:GET:/subscriptions", @@ -36454,16 +47153,6 @@ "to": "api:HTTP:GET:/backorders", "type": "documents" }, - { - "from": "concept:decabill-ordering-a-subscription", - "to": "project:graph", - "type": "documents" - }, - { - "from": "concept:decabill-ordering-a-subscription", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-ordering-a-subscription", "to": "api:HTTP:GET:/service-types", @@ -36534,11 +47223,6 @@ "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/resume", "type": "documents" }, - { - "from": "concept:decabill-statutory-withdrawal-widerruf", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-statutory-withdrawal-widerruf", "to": "api:HTTP:GET:/subscriptions", @@ -36559,11 +47243,6 @@ "to": "api:HTTP:POST:/subscriptions/{subscriptionId}/withdraw", "type": "documents" }, - { - "from": "concept:decabill-subscription-items", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-subscription-items", "to": "api:HTTP:GET:/cloud-init-configs", @@ -36634,11 +47313,6 @@ "to": "api:HTTP:POST:/pricing/preview", "type": "documents" }, - { - "from": "concept:decabill-availability", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-availability", "to": "api:HTTP:POST:/availability/check", @@ -36674,46 +47348,11 @@ "to": "api:HTTP:POST:/admin/billing/webhooks", "type": "documents" }, - { - "from": "concept:decabill-event-catalog", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-payload-examples", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-delivery-and-retries", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-delivery-log-retention", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", "to": "project:decabill-backend-billing-manager", "type": "documents" }, - { - "from": "concept:decabill-edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-edit-env-set-static-api-key-encryption-key-issuer-fields-and-tenants-as-needed", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-terminal-1-billing-manager-queue-role-all-runs-api-worker-and-scheduler-in-one-process", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-set-queue-role-all-redis-port-6380-if-redis-is-published-on-the-host-and-auth-variables", "to": "project:decabill-backend-billing-manager", @@ -36739,11 +47378,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-first-login", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-first-login", "to": "api:HTTP:POST:/auth/login", @@ -36794,46 +47428,21 @@ "to": "api:HTTP:POST:/subscriptions", "type": "documents" }, - { - "from": "concept:decabill-security-documentation", - "to": "project:sbom", - "type": "documents" - }, { "from": "concept:decabill-security-documentation", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-accepted-risks-register", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-accepted-risks-register", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-accepted-risks-register", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-dr-001-provisioning-ssh-cloud-init-templates", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-dr-001-provisioning-ssh-cloud-init-templates", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:decabill-dr-002-billing-multi-tenant-api-key-scope-static-api-key-tenant-id-unset", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", "to": "project:decabill-frontend-billing-console", @@ -36844,116 +47453,16 @@ "to": "project:decabill-frontend-docs", "type": "documents" }, - { - "from": "concept:decabill-dr-003-web-frontends-csp-unsafe-inline-unsafe-eval-monaco", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-dr-004-backend-authentication-method-resolution", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-dr-005-ci-local-trivy-unfixed-vulnerabilities-not-gated", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-hardening-paths-if-an-acceptance-is-withdrawn", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-hardening-paths-if-an-acceptance-is-withdrawn", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:decabill-what-is-scanned", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-workflows", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-workflows", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-severity-policy", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-viewing-results", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-viewing-results", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-local-reproduction", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-local-reproduction", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-relationship-to-sbom-and-dependency-track", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-relationship-to-sbom-and-dependency-track", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-compliance-and-standards-eu-cra-and-bsi-it-grundschutz", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-eu-cyber-resilience-act-cra", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-eu-cyber-resilience-act-cra", "to": "api:HTTP:POST:/auth/register", "type": "documents" }, - { - "from": "concept:decabill-bsi-it-grundschutz", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-trust-boundaries-summary", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-container-image-security", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-published-images", "to": "project:decabill-frontend-billing-console", @@ -36969,21 +47478,6 @@ "to": "project:decabill-frontend-docs", "type": "documents" }, - { - "from": "concept:decabill-published-images", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-runtime-users", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-billing-api-image-decabill-billing-api", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-billing-api-image-decabill-billing-api", "to": "api:HTTP:GET:/health", @@ -36999,76 +47493,16 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-billing-console-server-image-decabill-billing-console-server", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-docs-server-image-decabill-docs-server", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-secrets-and-configuration", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-image-scanning", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-image-scanning", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-coordinated-upgrades", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-container-images-docker", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-container-images-docker", "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:decabill-authentication-mode-backends", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-authentication-mode-backends", "to": "api:HTTP:GET:/health", "type": "documents" }, - { - "from": "concept:decabill-billing-manager-multi-tenancy", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-billing-manager-multi-tenancy", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-logging-and-correlation", - "to": "project:code", - "type": "documents" - }, - { - "from": "concept:decabill-logging-and-correlation", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-frontend-runtime-configuration-get-config", "to": "project:decabill-frontend-billing-console", @@ -37079,81 +47513,16 @@ "to": "project:decabill-frontend-docs", "type": "documents" }, - { - "from": "concept:decabill-frontend-runtime-configuration-get-config", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-frontend-runtime-configuration-get-config", "to": "api:HTTP:GET:/config", "type": "documents" }, - { - "from": "concept:decabill-websocket-cors-billing-manager", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-vulnerability-reporting-and-artifacts", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-supported-versions-and-security-updates", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-supported-versions-and-security-updates", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-our-response-commitment", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-reporting-a-vulnerability", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-continuous-scanning-ci", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-software-bill-of-materials-sbom", - "to": "project:sbom", - "type": "documents" - }, - { - "from": "concept:decabill-software-bill-of-materials-sbom", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-troubleshooting-guides", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-quick-troubleshooting", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-connection-issues", "to": "project:decabill-backend-billing-manager", "type": "documents" }, - { - "from": "concept:decabill-connection-issues", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-connection-issues", "to": "api:HTTP:GET:/users", @@ -37164,51 +47533,16 @@ "to": "api:HTTP:POST:/users", "type": "documents" }, - { - "from": "concept:decabill-authentication-problems", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-authentication-problems", "to": "api:HTTP:POST:/auth/login", "type": "documents" }, - { - "from": "concept:decabill-stripe-and-payment-issues", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-background-jobs-and-redis", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-database-issues", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-cors-and-csp-issues", - "to": "project:ai", - "type": "documents" - }, - { - "from": "concept:decabill-provisioning-issues", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-billing-manager-api-local", "to": "project:decabill-backend-billing-manager", "type": "documents" }, - { - "from": "concept:decabill-bull-board-and-queue-debugging", - "to": "project:ai", - "type": "documents" - }, { "from": "concept:decabill-bull-board-and-queue-debugging", "to": "api:HTTP:POST:/auth/register", @@ -37239,11 +47573,6 @@ "to": "api:HTTP:POST:/invoices", "type": "documents" }, - { - "from": "concept:decabill-performance-debugging", - "to": "project:ai", - "type": "documents" - }, { "from": "project:@forepath/test/mounted-plugin-fixture", "to": "domain:shared", @@ -38154,16 +48483,6 @@ "to": "feature-group:app", "type": "belongs_to" }, - { - "from": "project:release-integrity", - "to": "context:repo", - "type": "belongs_to" - }, - { - "from": "project:release-integrity", - "to": "feature-group:tool", - "type": "belongs_to" - }, { "from": "project:shared-mcp-devkit", "to": "domain:shared", @@ -38194,16 +48513,6 @@ "to": "feature-group:app", "type": "belongs_to" }, - { - "from": "project:sbom", - "to": "context:sbom", - "type": "belongs_to" - }, - { - "from": "project:sbom", - "to": "feature-group:tool", - "type": "belongs_to" - }, { "from": "file:docs/agenstra/README.md", "to": "domain:agenstra", diff --git a/tools/graph/README.md b/tools/graph/README.md index 345419edf..86d0f02b8 100644 --- a/tools/graph/README.md +++ b/tools/graph/README.md @@ -2,10 +2,17 @@ Nx plugin that builds a **knowledge graph** of this monorepo from: -- the Nx project graph (projects + `depends_on`) +- the Nx project graph (projects + `depends_on`; `tools/*` as `tool`) +- app/lib → tool links from `project.json` references (executor ids, package names, implicitDependencies, `tools/` paths) +- production npm packages attributed to apps via Nx `createPackageJson` +- patch-package files under `patches/` (when they target attributed packages) - OpenAPI / AsyncAPI specs under project roots - Markdown docs under `docs//` -- NestJS controller ↔ OpenAPI `implements` heuristics +- Architectural TypeScript sources (controllers, gateways, jobs, services, repositories, entities, DTOs, guards, modules, domain providers) +- Accumulated NgRx `state` slice folders (linked to matching `*.service.ts`) +- Accumulated email templates (`*.template.html` / `*.template.txt`) +- Outbound webhook / notification events from `*notification.events.ts` +- NestJS controller ↔ OpenAPI and gateway ↔ AsyncAPI `implements` heuristics ## Generate diff --git a/tools/graph/package.json b/tools/graph/package.json index 8036a882f..f60a8b054 100644 --- a/tools/graph/package.json +++ b/tools/graph/package.json @@ -8,6 +8,7 @@ "types": "./src/index.d.ts", "dependencies": { "@nx/devkit": "22.6.4", + "@nx/js": "22.6.4", "js-yaml": "3.14.2", "tslib": "2.8.1" }, diff --git a/tools/graph/src/index.ts b/tools/graph/src/index.ts index 67e32ff31..7aecab0d7 100644 --- a/tools/graph/src/index.ts +++ b/tools/graph/src/index.ts @@ -3,6 +3,7 @@ export type { ClusterKind, ClusterNodeAttrs, ConceptNodeAttrs, + FileDerivedNodeType, FileLanguageOrKind, FileNodeAttrs, KnowledgeEdge, @@ -11,30 +12,69 @@ export type { KnowledgeNode, KnowledgeNodeAttrs, KnowledgeNodeType, + PackageNodeAttrs, + PatchNodeAttrs, ProjectNodeAttrs, ProjectNodeKind, + WebhookEventNodeAttrs, } from './lib/schema'; export { channelApiNodeId, + classifyTsSourceType, + classifyTsSourceTypeFromPath, conceptNodeId, contextNodeId, domainNodeId, + emailTemplateStem, featureGroupNodeId, fileNodeId, fileNodeTypeFromKind, + fileNodeTypeFromPath, httpApiNodeId, + isDomainProviderSource, + isEmailTemplateFile, + isIndexedTsSourceFile, isNxProjectNodeType, + isToolsProjectRoot, + isWebhookEventsCatalogFile, + packageNodeId, + patchNodeId, projectNodeId, slugify, + toolNodeId, + webhookEventNodeId, } from './lib/schema'; export { buildKnowledgeGraph, writeKnowledgeGraphArtifacts } from './lib/build-knowledge-graph'; export { buildClusterSlice, inferDomainFromPath } from './lib/build-clusters'; export { fromProjectGraph } from './lib/from-project-graph'; -export { discoverFiles, isSensitivePath } from './lib/discover-files'; +export { discoverFiles, isNgrxStateSliceDir, isSensitivePath } from './lib/discover-files'; +export { discoverToolDirectories } from './lib/discover-tools'; +export { discoverPatches, parsePatchFileName } from './lib/discover-patches'; +export { linkPackages } from './lib/link-packages'; export { parseOpenApi, parseOpenApiFile } from './lib/parse-openapi'; export { parseAsyncApi, parseAsyncApiFile } from './lib/parse-asyncapi'; export { parseMarkdown, parseMarkdownFile } from './lib/parse-markdown'; -export { extractControllerPaths, linkImplements, normalizeApiPath, pathMatchesPrefix } from './lib/link-implements'; +export { + extractWebhookEventNames, + parseWebhookEventsCatalog, + parseWebhookEventsCatalogFile, +} from './lib/parse-webhook-events'; +export { + channelMatchesHint, + extractControllerPaths, + extractGatewayChannelHints, + linkImplements, + normalizeApiPath, + normalizeChannelToken, + pathMatchesPrefix, +} from './lib/link-implements'; +export { linkStateServices } from './lib/link-state-services'; +export { + collectToolIdentifiers, + linkToolUsage, + projectJsonReferencesIdentifier, + resolveToolIdentities, +} from './lib/link-tool-usage'; export { linkDocuments } from './lib/link-documents'; diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/demo-api.module.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/demo-api.module.ts new file mode 100644 index 000000000..174973dfd --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/demo-api.module.ts @@ -0,0 +1 @@ +export class DemoApiModule {} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/dto/create-invoice.dto.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/dto/create-invoice.dto.ts new file mode 100644 index 000000000..98e0c201b --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/dto/create-invoice.dto.ts @@ -0,0 +1,3 @@ +export class CreateInvoiceDto { + amount!: number; +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/entities/invoice.entity.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/entities/invoice.entity.ts new file mode 100644 index 000000000..a609fbbdc --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/entities/invoice.entity.ts @@ -0,0 +1,3 @@ +export class InvoiceEntity { + id!: string; +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts new file mode 100644 index 000000000..4f2923867 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/gateways/status.gateway.ts @@ -0,0 +1,9 @@ +import { WebSocketGateway, SubscribeMessage } from '@nestjs/websockets'; + +@WebSocketGateway({ namespace: 'demo/status' }) +export class StatusGateway { + @SubscribeMessage('ping') + handlePing() { + return { ok: true }; + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/guards/tenant-user.guard.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/guards/tenant-user.guard.ts new file mode 100644 index 000000000..00736cea3 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/guards/tenant-user.guard.ts @@ -0,0 +1,5 @@ +export class TenantUserGuard { + canActivate(): boolean { + return true; + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/notifications/demo-notification.events.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/notifications/demo-notification.events.ts new file mode 100644 index 000000000..c34e74d68 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/notifications/demo-notification.events.ts @@ -0,0 +1 @@ +export const DEMO_NOTIFICATION_EVENTS = ['invoice.created', 'invoice.issued', 'payment.succeeded'] as const; diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts new file mode 100644 index 000000000..cc5c50aa1 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts @@ -0,0 +1,5 @@ +export class StripePaymentProcessor { + parseWebhookEvent() { + return { eventId: '1', type: 'x', data: {} }; + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/providers/demo-cloud.provider.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/providers/demo-cloud.provider.ts new file mode 100644 index 000000000..a0b90e904 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/providers/demo-cloud.provider.ts @@ -0,0 +1,5 @@ +export class DemoCloudProvider { + provision() { + return true; + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/repositories/invoices.repository.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/repositories/invoices.repository.ts new file mode 100644 index 000000000..7ad8b8a35 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/repositories/invoices.repository.ts @@ -0,0 +1,5 @@ +export class InvoicesRepository { + findAll() { + return []; + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoice-overdue.job-handler.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoice-overdue.job-handler.ts new file mode 100644 index 000000000..60fff70ea --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoice-overdue.job-handler.ts @@ -0,0 +1,5 @@ +export class InvoiceOverdueJobHandler { + handle(): void { + // demo job handler + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts new file mode 100644 index 000000000..97676455e --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/services/invoices.service.ts @@ -0,0 +1,5 @@ +export class InvoicesService { + list() { + return []; + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/email-layout.partial.html b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/email-layout.partial.html new file mode 100644 index 000000000..26d2ba91b --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/email-layout.partial.html @@ -0,0 +1,5 @@ + + + Layout partial + + diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.html b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.html new file mode 100644 index 000000000..89faf5d26 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.html @@ -0,0 +1,5 @@ + + + Invoice issued + + diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.txt b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.txt new file mode 100644 index 000000000..99fc99985 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/apps/demo-api/src/templates/invoice-issued.template.txt @@ -0,0 +1 @@ +Invoice issued (text) diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts new file mode 100644 index 000000000..97676455e --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/services/invoices.service.ts @@ -0,0 +1,5 @@ +export class InvoicesService { + list() { + return []; + } +} diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.actions.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.actions.ts new file mode 100644 index 000000000..ebcf9882b --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.actions.ts @@ -0,0 +1 @@ +export const invoicesActions = {}; diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.effects.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.effects.ts new file mode 100644 index 000000000..dc24c6973 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.effects.ts @@ -0,0 +1 @@ +export const invoicesEffects = []; diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.reducer.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.reducer.ts new file mode 100644 index 000000000..31a42b1f5 --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.reducer.ts @@ -0,0 +1 @@ +export const invoicesReducer = (state = {}) => state; diff --git a/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.selectors.ts b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.selectors.ts new file mode 100644 index 000000000..a96cb9b7d --- /dev/null +++ b/tools/graph/src/lib/__fixtures__/mini-workspace/libs/demo-feature/src/lib/state/invoices/invoices.selectors.ts @@ -0,0 +1 @@ +export const selectInvoices = () => []; diff --git a/tools/graph/src/lib/build-knowledge-graph.spec.ts b/tools/graph/src/lib/build-knowledge-graph.spec.ts index 3d5336e16..c3c8ce153 100644 --- a/tools/graph/src/lib/build-knowledge-graph.spec.ts +++ b/tools/graph/src/lib/build-knowledge-graph.spec.ts @@ -37,7 +37,7 @@ describe('buildKnowledgeGraph (fixture workspace)', () => { }, } as unknown as ProjectGraph; - it('should assemble projects, specs, docs, implements, and documents', () => { + it('should assemble projects, typed sources, specs, docs, implements, and documents', () => { const graph = buildKnowledgeGraph({ projectGraph, workspaceRoot, @@ -47,7 +47,9 @@ describe('buildKnowledgeGraph (fixture workspace)', () => { expect(graph.version).toBe(1); expect(graph.generatedAt).toBe('2026-07-17T00:00:00.000Z'); - const ids = new Set(graph.nodes.map((n) => n.id)); + const byId = new Map(graph.nodes.map((n) => [n.id, n])); + const ids = new Set(byId.keys()); + expect(ids.has(projectNodeId('demo-api'))).toBe(true); expect(ids.has(projectNodeId('demo-feature'))).toBe(true); expect(ids.has('file:libs/demo-feature/spec/openapi.yaml')).toBe(true); @@ -59,6 +61,53 @@ describe('buildKnowledgeGraph (fixture workspace)', () => { expect(ids.has(channelApiNodeId('demo/status'))).toBe(true); expect(ids.has('domain:demo')).toBe(true); + expect(byId.get('file:apps/demo-api/src/invoices.controller.ts')?.type).toBe('controller'); + expect(byId.get('file:apps/demo-api/src/gateways/status.gateway.ts')?.type).toBe('gateway'); + expect(byId.get('file:apps/demo-api/src/services/invoice-overdue.job-handler.ts')?.type).toBe('job'); + expect(byId.get('file:apps/demo-api/src/services/invoices.service.ts')?.type).toBe('service'); + expect(byId.get('file:apps/demo-api/src/entities/invoice.entity.ts')?.type).toBe('entity'); + expect(byId.get('file:apps/demo-api/src/dto/create-invoice.dto.ts')?.type).toBe('dto'); + expect(byId.get('file:apps/demo-api/src/repositories/invoices.repository.ts')?.type).toBe('repository'); + expect(byId.get('file:apps/demo-api/src/guards/tenant-user.guard.ts')?.type).toBe('guard'); + expect(byId.get('file:apps/demo-api/src/demo-api.module.ts')?.type).toBe('module'); + expect(byId.get('file:apps/demo-api/src/providers/demo-cloud.provider.ts')?.type).toBe('provider'); + expect(byId.get('file:apps/demo-api/src/payment-processors/processors/stripe-payment.processor.ts')?.type).toBe( + 'provider', + ); + + const emailNode = byId.get('file:apps/demo-api/src/templates/invoice-issued'); + expect(emailNode?.type).toBe('email'); + expect(emailNode?.attrs).toMatchObject({ + templateName: 'invoice-issued', + projectName: 'demo-api', + }); + expect((emailNode?.attrs as { memberFiles?: string[] }).memberFiles).toEqual( + expect.arrayContaining(['invoice-issued.template.html', 'invoice-issued.template.txt']), + ); + expect(ids.has('file:apps/demo-api/src/templates/email-layout.partial.html')).toBe(false); + + expect(ids.has('webhook-event:demo-api:invoice.issued')).toBe(true); + expect(byId.get('webhook-event:demo-api:invoice.issued')?.type).toBe('webhook-event'); + expect(ids.has('file:apps/demo-api/src/notifications/demo-notification.events.ts')).toBe(false); + + const stateNode = byId.get('file:libs/demo-feature/src/lib/state/invoices'); + expect(stateNode?.type).toBe('state'); + expect(stateNode?.attrs).toMatchObject({ + sliceName: 'invoices', + projectName: 'demo-feature', + }); + expect((stateNode?.attrs as { memberFiles?: string[] }).memberFiles).toEqual( + expect.arrayContaining([ + 'invoices.actions.ts', + 'invoices.reducer.ts', + 'invoices.effects.ts', + 'invoices.selectors.ts', + ]), + ); + expect(ids.has('file:libs/demo-feature/src/lib/state/invoices/invoices.actions.ts')).toBe(false); + + expect(byId.get('file:libs/demo-feature/src/lib/services/invoices.service.ts')?.type).toBe('service'); + const demoApi = graph.nodes.find((n) => n.id === projectNodeId('demo-api')); expect(demoApi?.attrs).toMatchObject({ domain: 'demo' }); @@ -84,6 +133,24 @@ describe('buildKnowledgeGraph (fixture workspace)', () => { ), ).toBe(true); + expect( + graph.edges.some( + (e) => + e.type === 'implements' && + e.from === 'file:apps/demo-api/src/gateways/status.gateway.ts' && + e.to === channelApiNodeId('demo/status'), + ), + ).toBe(true); + + expect( + graph.edges.some( + (e) => + e.type === 'contains' && + e.from === 'file:libs/demo-feature/src/lib/state/invoices' && + e.to === 'file:libs/demo-feature/src/lib/services/invoices.service.ts', + ), + ).toBe(true); + expect(graph.edges.some((e) => e.type === 'documents' && e.to === projectNodeId('demo-api'))).toBe(true); expect(graph.nodes.length).toBeGreaterThanOrEqual(10); diff --git a/tools/graph/src/lib/build-knowledge-graph.ts b/tools/graph/src/lib/build-knowledge-graph.ts index 2e7e3c098..935d53982 100644 --- a/tools/graph/src/lib/build-knowledge-graph.ts +++ b/tools/graph/src/lib/build-knowledge-graph.ts @@ -3,13 +3,19 @@ import * as path from 'path'; import type { ProjectGraph } from '@nx/devkit'; import { discoverFiles } from './discover-files'; +import { discoverPatches } from './discover-patches'; +import { discoverToolDirectories } from './discover-tools'; import { buildClusterSlice } from './build-clusters'; import { fromProjectGraph } from './from-project-graph'; import { linkDocuments } from './link-documents'; import { linkImplements } from './link-implements'; +import { linkPackages } from './link-packages'; +import { linkToolUsage } from './link-tool-usage'; +import { linkStateServices } from './link-state-services'; import { parseAsyncApiFile } from './parse-asyncapi'; import { parseMarkdownFile } from './parse-markdown'; import { parseOpenApiFile } from './parse-openapi'; +import { parseWebhookEventsCatalogFile } from './parse-webhook-events'; import { fileNodeId, fileNodeTypeFromKind, @@ -60,6 +66,32 @@ export function buildKnowledgeGraph(options: BuildKnowledgeGraphOptions): Knowle addEdge(edge); } + const toolDirs = discoverToolDirectories(workspaceRoot, projectGraph); + for (const node of toolDirs.nodes) { + addNode(node); + } + + const packageSlice = linkPackages({ projectGraph, workspaceRoot }); + for (const node of packageSlice.nodes) { + addNode(node); + } + for (const edge of packageSlice.edges) { + addEdge(edge); + } + + const toolUsage = linkToolUsage({ projectGraph, workspaceRoot }); + for (const edge of toolUsage.edges) { + addEdge(edge); + } + + const patchSlice = discoverPatches(workspaceRoot, [...nodesById.values()]); + for (const node of patchSlice.nodes) { + addNode(node); + } + for (const edge of patchSlice.edges) { + addEdge(edge); + } + const discovered = discoverFiles(workspaceRoot, projectGraph); for (const node of discovered.nodes) { addNode(node); @@ -72,6 +104,16 @@ export function buildKnowledgeGraph(options: BuildKnowledgeGraphOptions): Knowle const conceptTexts = new Map(); for (const file of discovered.files) { + if (file.webhookEventsCatalog) { + const parsed = parseWebhookEventsCatalogFile(file.relativePath, file.absolutePath, file.projectName); + for (const node of parsed.nodes) { + addNode(node); + } + for (const edge of parsed.edges) { + addEdge(edge); + } + continue; + } if (file.languageOrKind === 'openapi') { const parsed = parseOpenApiFile(file.relativePath, file.absolutePath); for (const node of parsed.nodes) { @@ -116,15 +158,34 @@ export function buildKnowledgeGraph(options: BuildKnowledgeGraphOptions): Knowle } } - const controllerFiles = discovered.files.filter((f) => f.languageOrKind === 'ts'); + const controllerFiles = discovered.files.filter((f) => { + if (f.languageOrKind !== 'ts' || f.stateSlice) { + return false; + } + const base = f.relativePath.replace(/\\/g, '/').split('/').pop()?.toLowerCase() ?? ''; + return base.endsWith('.controller.ts') || base.includes('controller.'); + }); + const gatewayFiles = discovered.files.filter((f) => { + if (f.languageOrKind !== 'ts' || f.stateSlice) { + return false; + } + const base = f.relativePath.replace(/\\/g, '/').split('/').pop()?.toLowerCase() ?? ''; + return base.endsWith('.gateway.ts'); + }); const implementsEdges = linkImplements({ controllerFiles, + gatewayFiles, apiNodes: [...nodesById.values()].filter((n) => n.type === 'endpoint'), }); for (const edge of implementsEdges) { addEdge(edge); } + const stateServiceEdges = linkStateServices([...nodesById.values()]); + for (const edge of stateServiceEdges) { + addEdge(edge); + } + const documentEdges = linkDocuments({ conceptNodes: [...nodesById.values()].filter((n) => n.type === 'concept'), projectNodes: [...nodesById.values()].filter((n) => n.type === 'app' || n.type === 'lib'), diff --git a/tools/graph/src/lib/discover-files.ts b/tools/graph/src/lib/discover-files.ts index 84af6b041..f1c7996c8 100644 --- a/tools/graph/src/lib/discover-files.ts +++ b/tools/graph/src/lib/discover-files.ts @@ -3,16 +3,41 @@ import * as path from 'path'; import type { ProjectGraph } from '@nx/devkit'; -import { FileLanguageOrKind, fileNodeId, fileNodeTypeFromKind, KnowledgeEdge, KnowledgeNode } from './schema'; +import { + FileLanguageOrKind, + FileNodeAttrs, + emailTemplateStem, + fileNodeId, + fileNodeTypeFromPath, + isEmailTemplateFile, + isIndexedTsSourceFile, + isWebhookEventsCatalogFile, + KnowledgeEdge, + KnowledgeNode, +} from './schema'; const SENSITIVE_NAME_RE = /(^|[/\\])(\.env($|\.)|.*secret.*|.*credential.*)/i; const SKIP_DIR_NAMES = new Set(['node_modules', 'dist', '.git', 'coverage', 'tmp']); +const STATE_MEMBER_HINT_RE = /\.(actions|reducer|effects|selectors)\.ts$/i; + export interface DiscoveredFile { relativePath: string; absolutePath: string; languageOrKind: FileLanguageOrKind; projectName?: string; + /** When set, this entry represents an accumulated NgRx state slice directory. */ + stateSlice?: { + sliceName: string; + memberFiles: string[]; + }; + /** When set, this entry represents an accumulated email template stem. */ + emailTemplate?: { + templateName: string; + memberFiles: string[]; + }; + /** Catalog file parsed into individual `webhook-event` nodes (no file node emitted). */ + webhookEventsCatalog?: boolean; } export interface DiscoverFilesResult { @@ -26,7 +51,7 @@ export function isSensitivePath(relativePath: string): boolean { return SENSITIVE_NAME_RE.test(normalized); } -function walkDir(dir: string, visitor: (absolutePath: string) => void): void { +function walkDir(dir: string, visitor: (absolutePath: string, entryName: string, isDirectory: boolean) => void): void { if (!fs.existsSync(dir)) { return; } @@ -38,14 +63,15 @@ function walkDir(dir: string, visitor: (absolutePath: string) => void): void { } const absolutePath = path.join(dir, entry.name); if (entry.isDirectory()) { + visitor(absolutePath, entry.name, true); walkDir(absolutePath, visitor); } else if (entry.isFile()) { - visitor(absolutePath); + visitor(absolutePath, entry.name, false); } } } -function classifyProjectFile(fileName: string): FileLanguageOrKind | null { +function classifyProjectFile(fileName: string, relativePath: string): FileLanguageOrKind | null { const lower = fileName.toLowerCase(); if (lower === 'openapi.yaml' || lower === 'openapi.yml') { return 'openapi'; @@ -59,51 +85,185 @@ function classifyProjectFile(fileName: string): FileLanguageOrKind | null { if (lower.endsWith('.md')) { return 'md'; } - if (lower.endsWith('controller.ts') || lower.includes('controller.')) { - if (lower.endsWith('.ts') && !lower.endsWith('.spec.ts') && !lower.endsWith('.d.ts')) { - return 'ts'; + if (isEmailTemplateFile(fileName)) { + return 'template'; + } + if (isWebhookEventsCatalogFile(fileName) || isIndexedTsSourceFile(relativePath)) { + return 'ts'; + } + return null; +} + +/** + * True when `dirAbs` is an NgRx slice folder (`…/state//`) with at least one + * actions/reducer/effects/selectors member. + */ +export function isNgrxStateSliceDir(dirAbs: string): { sliceName: string; memberFiles: string[] } | null { + const parentName = path.basename(path.dirname(dirAbs)); + if (parentName.toLowerCase() !== 'state') { + return null; + } + if (!fs.existsSync(dirAbs) || !fs.statSync(dirAbs).isDirectory()) { + return null; + } + + const memberFiles: string[] = []; + let hasHint = false; + for (const entry of fs.readdirSync(dirAbs, { withFileTypes: true })) { + if (!entry.isFile()) { + continue; + } + const lower = entry.name.toLowerCase(); + if (!lower.endsWith('.ts') || lower.endsWith('.spec.ts') || lower.endsWith('.d.ts')) { + continue; + } + memberFiles.push(entry.name); + if (STATE_MEMBER_HINT_RE.test(entry.name)) { + hasHint = true; + } + } + + if (!hasHint || memberFiles.length === 0) { + return null; + } + + memberFiles.sort((a, b) => a.localeCompare(b)); + return { sliceName: path.basename(dirAbs), memberFiles }; +} + +/** + * Relative path of a file if it lives under an NgRx state slice directory. + */ +export function stateSliceRelativePathForFile(workspaceRoot: string, absoluteFilePath: string): string | null { + let current = path.dirname(absoluteFilePath); + const rootResolved = path.resolve(workspaceRoot); + while (current.startsWith(rootResolved) && current !== rootResolved) { + const slice = isNgrxStateSliceDir(current); + if (slice) { + return path.relative(workspaceRoot, current).replace(/\\/g, '/'); } + current = path.dirname(current); } return null; } +interface EmailAccumulator { + templateName: string; + dirAbs: string; + projectName?: string; + memberFiles: string[]; +} + /** - * Discover OpenAPI/AsyncAPI specs, Nest controllers, Mermaid diagrams, and Markdown - * under project roots; Markdown under docs/; top-level workspace Markdown/diagrams. + * Discover OpenAPI/AsyncAPI specs, architectural TS sources, NgRx state slices, + * email templates, webhook event catalogs, Mermaid diagrams, and Markdown. */ export function discoverFiles(workspaceRoot: string, projectGraph: ProjectGraph): DiscoverFilesResult { const files: DiscoveredFile[] = []; const seen = new Set(); + const stateDirsSeen = new Set(); + const emailByKey = new Map(); - const addFile = (absolutePath: string, languageOrKind: FileLanguageOrKind, projectName?: string): void => { + const addFile = ( + absolutePath: string, + languageOrKind: FileLanguageOrKind, + projectName?: string, + extras?: Pick, + ): void => { const relativePath = path.relative(workspaceRoot, absolutePath).replace(/\\/g, '/'); if (seen.has(relativePath) || isSensitivePath(relativePath)) { return; } seen.add(relativePath); - files.push({ relativePath, absolutePath, languageOrKind, projectName }); + files.push({ + relativePath, + absolutePath, + languageOrKind, + projectName, + stateSlice: extras?.stateSlice, + emailTemplate: extras?.emailTemplate, + webhookEventsCatalog: extras?.webhookEventsCatalog, + }); }; for (const [name, node] of Object.entries(projectGraph.nodes)) { const rootAbs = path.join(workspaceRoot, node.data.root); - walkDir(rootAbs, (absolutePath) => { - const kind = classifyProjectFile(path.basename(absolutePath)); + walkDir(rootAbs, (absolutePath, entryName, isDirectory) => { + if (isDirectory) { + const slice = isNgrxStateSliceDir(absolutePath); + if (!slice) { + return; + } + const rel = path.relative(workspaceRoot, absolutePath).replace(/\\/g, '/'); + if (stateDirsSeen.has(rel)) { + return; + } + stateDirsSeen.add(rel); + addFile(absolutePath, 'ts', name, { stateSlice: slice }); + return; + } + + const relativePath = path.relative(workspaceRoot, absolutePath).replace(/\\/g, '/'); + + if (isEmailTemplateFile(entryName)) { + const stem = emailTemplateStem(entryName); + if (!stem) { + return; + } + const dirAbs = path.dirname(absolutePath); + const key = `${name}|${path.relative(workspaceRoot, dirAbs).replace(/\\/g, '/')}|${stem}`; + const existing = emailByKey.get(key); + if (existing) { + if (!existing.memberFiles.includes(entryName)) { + existing.memberFiles.push(entryName); + existing.memberFiles.sort((a, b) => a.localeCompare(b)); + } + } else { + emailByKey.set(key, { + templateName: stem, + dirAbs, + projectName: name, + memberFiles: [entryName], + }); + } + return; + } + + const kind = classifyProjectFile(entryName, relativePath); if (!kind) { return; } - // Controllers: only *controller*.ts (already filtered in classify) + if (kind === 'ts') { - const base = path.basename(absolutePath).toLowerCase(); - if (!base.includes('controller')) { + if (isWebhookEventsCatalogFile(entryName)) { + addFile(absolutePath, kind, name, { webhookEventsCatalog: true }); + return; + } + const underState = stateSliceRelativePathForFile(workspaceRoot, absolutePath); + if (underState) { return; } } + addFile(absolutePath, kind, name); }); } + for (const email of emailByKey.values()) { + const virtualAbs = path.join(email.dirAbs, email.templateName); + addFile(virtualAbs, 'template', email.projectName, { + emailTemplate: { + templateName: email.templateName, + memberFiles: [...email.memberFiles].sort((a, b) => a.localeCompare(b)), + }, + }); + } + const docsRoot = path.join(workspaceRoot, 'docs'); - walkDir(docsRoot, (absolutePath) => { + walkDir(docsRoot, (absolutePath, _entryName, isDirectory) => { + if (isDirectory) { + return; + } const lower = absolutePath.toLowerCase(); if (lower.endsWith('.md')) { addFile(absolutePath, 'md'); @@ -130,16 +290,35 @@ export function discoverFiles(workspaceRoot: string, projectGraph: ProjectGraph) const edges: KnowledgeEdge[] = []; for (const file of files) { + if (file.webhookEventsCatalog) { + continue; + } + const id = fileNodeId(file.relativePath); - nodes.push({ - id, - type: fileNodeTypeFromKind(file.languageOrKind, file.relativePath), - attrs: { - path: file.relativePath, - languageOrKind: file.languageOrKind, - projectName: file.projectName, - }, - }); + let type: ReturnType; + if (file.stateSlice) { + type = 'state'; + } else if (file.emailTemplate) { + type = 'email'; + } else { + type = fileNodeTypeFromPath(file.languageOrKind, file.relativePath); + } + + const attrs: FileNodeAttrs = { + path: file.relativePath, + languageOrKind: file.languageOrKind, + projectName: file.projectName, + }; + if (file.stateSlice) { + attrs.sliceName = file.stateSlice.sliceName; + attrs.memberFiles = file.stateSlice.memberFiles; + } + if (file.emailTemplate) { + attrs.templateName = file.emailTemplate.templateName; + attrs.memberFiles = file.emailTemplate.memberFiles; + } + + nodes.push({ id, type, attrs }); if (file.projectName) { edges.push({ diff --git a/tools/graph/src/lib/discover-patches.spec.ts b/tools/graph/src/lib/discover-patches.spec.ts new file mode 100644 index 000000000..74521e1fa --- /dev/null +++ b/tools/graph/src/lib/discover-patches.spec.ts @@ -0,0 +1,45 @@ +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; + +import { discoverPatches, parsePatchFileName } from './discover-patches'; +import { packageNodeId, patchNodeId } from './schema'; + +describe('parsePatchFileName', () => { + it('should parse unscoped and scoped patch-package names', () => { + expect(parsePatchFileName('lodash+4.17.21.patch')).toEqual({ + fileName: 'lodash+4.17.21.patch', + packageName: 'lodash', + packageVersion: '4.17.21', + }); + expect(parsePatchFileName('@nestjs+common+11.1.6.patch')).toEqual({ + fileName: '@nestjs+common+11.1.6.patch', + packageName: '@nestjs/common', + packageVersion: '11.1.6', + }); + }); +}); + +describe('discoverPatches', () => { + it('should link patches only to packages already in the graph', () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'kg-patches-')); + const patchesDir = path.join(dir, 'patches'); + fs.mkdirSync(patchesDir); + fs.writeFileSync(path.join(patchesDir, 'lodash+4.17.21.patch'), 'diff'); + fs.writeFileSync(path.join(patchesDir, 'orphan+1.0.0.patch'), 'diff'); + + const result = discoverPatches(dir, [ + { + id: packageNodeId('lodash'), + type: 'package', + attrs: { name: 'lodash', version: '4.17.21' }, + }, + ]); + + expect(result.nodes).toHaveLength(1); + expect(result.nodes[0].id).toBe(patchNodeId('lodash+4.17.21.patch')); + expect(result.edges).toEqual([ + { from: packageNodeId('lodash'), to: patchNodeId('lodash+4.17.21.patch'), type: 'contains' }, + ]); + }); +}); diff --git a/tools/graph/src/lib/discover-patches.ts b/tools/graph/src/lib/discover-patches.ts new file mode 100644 index 000000000..49d3a3b04 --- /dev/null +++ b/tools/graph/src/lib/discover-patches.ts @@ -0,0 +1,103 @@ +import * as fs from 'fs'; +import * as path from 'path'; + +import { KnowledgeEdge, KnowledgeNode, PackageNodeAttrs, PatchNodeAttrs, packageNodeId, patchNodeId } from './schema'; + +export interface DiscoverPatchesResult { + nodes: KnowledgeNode[]; + edges: KnowledgeEdge[]; +} + +export interface ParsedPatchFileName { + fileName: string; + packageName: string; + packageVersion?: string; +} + +/** + * Parse patch-package filenames: + * - `lodash+4.17.21.patch` + * - `@nestjs+common+11.1.6.patch` (scoped: first two `+` segments) + */ +export function parsePatchFileName(fileName: string): ParsedPatchFileName | null { + if (!fileName.toLowerCase().endsWith('.patch')) { + return null; + } + const stem = fileName.slice(0, -'.patch'.length); + if (!stem.includes('+')) { + return null; + } + + if (stem.startsWith('@')) { + const parts = stem.split('+'); + if (parts.length < 2) { + return null; + } + const packageName = `${parts[0]}/${parts[1]}`; + const packageVersion = parts.length >= 3 ? parts.slice(2).join('+') : undefined; + return { fileName, packageName, packageVersion }; + } + + const plus = stem.indexOf('+'); + const packageName = stem.slice(0, plus); + const packageVersion = stem.slice(plus + 1) || undefined; + if (!packageName) { + return null; + } + return { fileName, packageName, packageVersion }; +} + +/** + * Discover patch-package files under `patches/` and link them to existing `package` nodes. + * Patches for packages not attributed to any app are skipped (no orphan package inflation). + */ +export function discoverPatches(workspaceRoot: string, packageNodes: KnowledgeNode[]): DiscoverPatchesResult { + const nodes: KnowledgeNode[] = []; + const edges: KnowledgeEdge[] = []; + const packageIds = new Set(packageNodes.filter((n) => n.type === 'package').map((n) => n.id)); + + const patchesDir = path.join(workspaceRoot, 'patches'); + if (!fs.existsSync(patchesDir)) { + return { nodes, edges }; + } + + for (const entry of fs.readdirSync(patchesDir, { withFileTypes: true })) { + if (!entry.isFile()) { + continue; + } + const parsed = parsePatchFileName(entry.name); + if (!parsed) { + continue; + } + + const pkgId = packageNodeId(parsed.packageName); + if (!packageIds.has(pkgId)) { + continue; + } + + const relativePath = path.join('patches', entry.name).replace(/\\/g, '/'); + const attrs: PatchNodeAttrs = { + path: relativePath, + fileName: parsed.fileName, + packageName: parsed.packageName, + }; + if (parsed.packageVersion) { + attrs.packageVersion = parsed.packageVersion; + } + + const id = patchNodeId(parsed.fileName); + nodes.push({ id, type: 'patch', attrs }); + edges.push({ from: pkgId, to: id, type: 'contains' }); + + // Prefer recording patch version on the package node when missing. + const pkgNode = packageNodes.find((n) => n.id === pkgId); + if (pkgNode && parsed.packageVersion) { + const pkgAttrs = pkgNode.attrs as PackageNodeAttrs; + if (!pkgAttrs.version) { + pkgAttrs.version = parsed.packageVersion; + } + } + } + + return { nodes, edges }; +} diff --git a/tools/graph/src/lib/discover-tools.ts b/tools/graph/src/lib/discover-tools.ts new file mode 100644 index 000000000..81db80bb7 --- /dev/null +++ b/tools/graph/src/lib/discover-tools.ts @@ -0,0 +1,59 @@ +import * as fs from 'fs'; +import * as path from 'path'; + +import type { ProjectGraph } from '@nx/devkit'; + +import { KnowledgeEdge, KnowledgeNode, ProjectNodeAttrs, toolNodeId } from './schema'; + +const SKIP_TOOL_DIR_NAMES = new Set(['node_modules', 'dist', '.git', 'coverage', 'tmp']); + +export interface DiscoverToolsResult { + nodes: KnowledgeNode[]; +} + +/** + * Emit `tool` nodes for non-Nx directories under `tools/` (e.g. `tools/ci`, `tools/docs`). + * Nx projects under `tools/` are already typed as `tool` by {@link fromProjectGraph}. + */ +export function discoverToolDirectories(workspaceRoot: string, projectGraph: ProjectGraph): DiscoverToolsResult { + const toolsRoot = path.join(workspaceRoot, 'tools'); + const nodes: KnowledgeNode[] = []; + + if (!fs.existsSync(toolsRoot)) { + return { nodes }; + } + + const nxToolRoots = new Set(); + for (const node of Object.values(projectGraph.nodes)) { + const root = (node.data.root ?? '').replace(/\\/g, '/'); + if (root === 'tools' || root.startsWith('tools/')) { + nxToolRoots.add(root); + } + } + + for (const entry of fs.readdirSync(toolsRoot, { withFileTypes: true })) { + if (!entry.isDirectory() || SKIP_TOOL_DIR_NAMES.has(entry.name)) { + continue; + } + const relativeRoot = `tools/${entry.name}`; + if (nxToolRoots.has(relativeRoot)) { + continue; + } + + const attrs: ProjectNodeAttrs = { + name: entry.name, + root: relativeRoot, + tags: ['type:tool'], + type: 'tool', + targets: [], + }; + + nodes.push({ + id: toolNodeId(entry.name), + type: 'tool', + attrs, + }); + } + + return { nodes }; +} diff --git a/tools/graph/src/lib/file-node-type.spec.ts b/tools/graph/src/lib/file-node-type.spec.ts index 5bca63d25..0767586c5 100644 --- a/tools/graph/src/lib/file-node-type.spec.ts +++ b/tools/graph/src/lib/file-node-type.spec.ts @@ -1,6 +1,15 @@ -import { fileNodeTypeFromKind } from './schema'; +import { + classifyTsSourceTypeFromPath, + emailTemplateStem, + fileNodeTypeFromKind, + fileNodeTypeFromPath, + isDomainProviderSource, + isEmailTemplateFile, + isIndexedTsSourceFile, + isWebhookEventsCatalogFile, +} from './schema'; -describe('fileNodeTypeFromKind', () => { +describe('fileNodeTypeFromKind / fileNodeTypeFromPath', () => { it('should map specs, docs, readmes, and diagrams to dedicated types', () => { expect(fileNodeTypeFromKind('openapi')).toBe('openapi'); expect(fileNodeTypeFromKind('asyncapi')).toBe('asyncapi'); @@ -8,6 +17,64 @@ describe('fileNodeTypeFromKind', () => { expect(fileNodeTypeFromKind('md', 'docs/decabill/features/webhooks.md')).toBe('doc'); expect(fileNodeTypeFromKind('md', 'libs/foo/README.md')).toBe('readme'); expect(fileNodeTypeFromKind('md', 'AGENTS.md')).toBe('readme'); - expect(fileNodeTypeFromKind('ts')).toBe('file'); + expect(fileNodeTypeFromKind('template', 'libs/foo/templates/invoice-issued')).toBe('email'); + }); + + it('should map TS architectural suffixes to dedicated types by priority', () => { + expect(fileNodeTypeFromPath('ts', 'a.job-handler.ts')).toBe('job'); + expect(fileNodeTypeFromPath('ts', 'a.controller.ts')).toBe('controller'); + expect(fileNodeTypeFromPath('ts', 'weird.controller.extra.ts')).toBe('controller'); + expect(fileNodeTypeFromPath('ts', 'a.gateway.ts')).toBe('gateway'); + expect(fileNodeTypeFromPath('ts', 'a.repository.ts')).toBe('repository'); + expect(fileNodeTypeFromPath('ts', 'a.entity.ts')).toBe('entity'); + expect(fileNodeTypeFromPath('ts', 'create-invoice.dto.ts')).toBe('dto'); + expect(fileNodeTypeFromPath('ts', 'a.guard.ts')).toBe('guard'); + expect(fileNodeTypeFromPath('ts', 'a.module.ts')).toBe('module'); + expect(fileNodeTypeFromPath('ts', 'a.service.ts')).toBe('service'); + }); + + it('should classify backend domain providers and payment processors', () => { + expect( + classifyTsSourceTypeFromPath( + 'libs/domains/agenstra/backend/feature-agent-manager/src/lib/providers/pipelines/github.provider.ts', + ), + ).toBe('provider'); + expect( + classifyTsSourceTypeFromPath( + 'libs/domains/decabill/backend/feature-billing-manager/src/lib/payment-processors/processors/stripe-payment.processor.ts', + ), + ).toBe('provider'); + expect(isDomainProviderSource('libs/domains/identity/frontend/util-auth/src/lib/keycloak.provider.ts')).toBe(false); + expect( + isDomainProviderSource( + 'libs/domains/agenstra/frontend/feature-agent-console/src/lib/providers/notification-admin.providers.ts', + ), + ).toBe(false); + }); + + it('should recognize email templates and webhook catalogs', () => { + expect(isEmailTemplateFile('invoice-issued.template.html')).toBe(true); + expect(isEmailTemplateFile('email-layout.partial.html')).toBe(false); + expect(isEmailTemplateFile('invoice-pdf.template.html')).toBe(false); + expect(emailTemplateStem('invoice-issued.template.txt')).toBe('invoice-issued'); + expect(isWebhookEventsCatalogFile('billing-notification.events.ts')).toBe(true); + expect(isIndexedTsSourceFile('billing-notification.events.ts')).toBe(true); + }); + + it('should not classify job-handler as service', () => { + expect(fileNodeTypeFromPath('ts', 'invoice-overdue.job-handler.ts')).toBe('job'); + }); + + it('should leave unmatched TS unclassified (not indexed)', () => { + expect(classifyTsSourceTypeFromPath('helpers.ts')).toBeNull(); + expect(isIndexedTsSourceFile('helpers.ts')).toBe(false); + expect(() => fileNodeTypeFromPath('ts', 'helpers.ts')).toThrow(/Unclassified TypeScript source/); + }); + + it('should detect indexed TS source files', () => { + expect(isIndexedTsSourceFile('invoices.controller.ts')).toBe(true); + expect(isIndexedTsSourceFile('invoices.service.ts')).toBe(true); + expect(isIndexedTsSourceFile('invoices.service.spec.ts')).toBe(false); + expect(isIndexedTsSourceFile('helpers.ts')).toBe(false); }); }); diff --git a/tools/graph/src/lib/from-project-graph.spec.ts b/tools/graph/src/lib/from-project-graph.spec.ts index 6d754c95e..43a895f1e 100644 --- a/tools/graph/src/lib/from-project-graph.spec.ts +++ b/tools/graph/src/lib/from-project-graph.spec.ts @@ -3,7 +3,7 @@ import type { ProjectGraph } from '@nx/devkit'; import { fromProjectGraph } from './from-project-graph'; describe('fromProjectGraph', () => { - it('should map projects and depends_on edges and skip npm externals', () => { + it('should map projects and depends_on edges, type tools/, and skip npm externals', () => { const projectGraph = { nodes: { 'app-a': { @@ -26,6 +26,16 @@ describe('fromProjectGraph', () => { targets: { lint: {} }, }, }, + graph: { + name: 'graph', + type: 'lib', + data: { + root: 'tools/graph', + projectType: 'library', + tags: ['npm:private'], + targets: { build: {} }, + }, + }, }, dependencies: { 'app-a': [ @@ -33,6 +43,7 @@ describe('fromProjectGraph', () => { { source: 'app-a', target: 'npm:lodash', type: 'static' }, ], 'lib-b': [], + graph: [], }, externalNodes: { 'npm:lodash': { @@ -45,17 +56,10 @@ describe('fromProjectGraph', () => { const slice = fromProjectGraph(projectGraph); - expect(slice.nodes).toHaveLength(2); - expect(slice.nodes.map((n) => n.id).sort()).toEqual(['project:app-a', 'project:lib-b']); + expect(slice.nodes).toHaveLength(3); expect(slice.nodes.find((n) => n.id === 'project:app-a')?.type).toBe('app'); expect(slice.nodes.find((n) => n.id === 'project:lib-b')?.type).toBe('lib'); - expect(slice.nodes.find((n) => n.id === 'project:app-a')?.attrs).toMatchObject({ - name: 'app-a', - root: 'apps/a', - type: 'app', - targets: ['build', 'test'], - tags: ['domain:demo'], - }); + expect(slice.nodes.find((n) => n.id === 'project:graph')?.type).toBe('tool'); expect(slice.edges).toEqual([{ from: 'project:app-a', to: 'project:lib-b', type: 'depends_on' }]); }); }); diff --git a/tools/graph/src/lib/from-project-graph.ts b/tools/graph/src/lib/from-project-graph.ts index c3dca0024..c8201c5eb 100644 --- a/tools/graph/src/lib/from-project-graph.ts +++ b/tools/graph/src/lib/from-project-graph.ts @@ -1,15 +1,23 @@ import type { ProjectGraph } from '@nx/devkit'; -import { KnowledgeEdge, KnowledgeNode, projectNodeId, ProjectNodeKind } from './schema'; +import { KnowledgeEdge, KnowledgeNode, ProjectNodeKind, isToolsProjectRoot, projectNodeId } from './schema'; export interface ProjectGraphSlice { nodes: KnowledgeNode[]; edges: KnowledgeEdge[]; } +function classifyProjectKind(root: string, projectType: string | undefined): ProjectNodeKind { + if (isToolsProjectRoot(root)) { + return 'tool'; + } + return projectType === 'application' ? 'app' : 'lib'; +} + /** * Map an Nx ProjectGraph into project nodes and depends_on edges. - * External npm nodes are ignored. + * External npm nodes are ignored here (see link-packages for app-attributed packages). + * Projects under `tools/` are typed as `tool`. */ export function fromProjectGraph(projectGraph: ProjectGraph): ProjectGraphSlice { const nodes: KnowledgeNode[] = []; @@ -17,18 +25,19 @@ export function fromProjectGraph(projectGraph: ProjectGraph): ProjectGraphSlice const knownProjects = new Set(Object.keys(projectGraph.nodes)); for (const [name, node] of Object.entries(projectGraph.nodes)) { - const projectType = node.data.projectType === 'application' ? 'app' : 'lib'; + const root = node.data.root ?? ''; + const projectKind = classifyProjectKind(root, node.data.projectType); const targets = node.data.targets ? Object.keys(node.data.targets) : []; const tags = Array.isArray(node.data.tags) ? [...node.data.tags] : []; nodes.push({ id: projectNodeId(name), - type: projectType as ProjectNodeKind, + type: projectKind, attrs: { name, - root: node.data.root, + root, tags, - type: projectType as ProjectNodeKind, + type: projectKind, targets, }, }); diff --git a/tools/graph/src/lib/link-implements.ts b/tools/graph/src/lib/link-implements.ts index 35412fdd7..161c163a5 100644 --- a/tools/graph/src/lib/link-implements.ts +++ b/tools/graph/src/lib/link-implements.ts @@ -5,6 +5,13 @@ import { ApiNodeAttrs, fileNodeId, KnowledgeEdge, KnowledgeNode, projectNodeId } const CONTROLLER_DECORATOR_RE = /@Controller\s*\(\s*(?:'([^']+)'|"([^"]+)"|`([^`]+)`|\{\s*path\s*:\s*(?:'([^']+)'|"([^"]+)"|`([^`]+)`))/g; +const WEBSOCKET_GATEWAY_RE = + /@WebSocketGateway\s*\(\s*(?:(\d+)\s*,\s*)?\{([^}]*)\}|@WebSocketGateway\s*\(\s*\{([^}]*)\}\s*\)|@WebSocketGateway\s*\(\s*(\d+)\s*\)/g; + +const NAMESPACE_IN_OPTIONS_RE = /namespace\s*:\s*(?:'([^']+)'|"([^"]+)"|`([^`]+)`)/; + +const SUBSCRIBE_MESSAGE_RE = /@SubscribeMessage\s*\(\s*(?:'([^']+)'|"([^"]+)"|`([^`]+)`)\s*\)/g; + export interface ControllerBinding { relativePath: string; projectName?: string; @@ -28,6 +35,41 @@ export function extractControllerPaths(source: string): string[] { return paths; } +/** + * Extract WebSocket namespace / channel tokens from a Nest gateway source file. + */ +export function extractGatewayChannelHints(source: string): string[] { + const hints = new Set(); + + const gatewayRe = new RegExp(WEBSOCKET_GATEWAY_RE.source, WEBSOCKET_GATEWAY_RE.flags); + let gatewayMatch: RegExpExecArray | null; + while ((gatewayMatch = gatewayRe.exec(source)) !== null) { + const optionsBlock = gatewayMatch[2] ?? gatewayMatch[3] ?? ''; + if (optionsBlock) { + const ns = NAMESPACE_IN_OPTIONS_RE.exec(optionsBlock); + const raw = ns?.[1] ?? ns?.[2] ?? ns?.[3]; + if (raw) { + const normalized = normalizeChannelToken(raw); + if (normalized) { + hints.add(normalized); + } + } + } + } + + const subscribeRe = new RegExp(SUBSCRIBE_MESSAGE_RE.source, SUBSCRIBE_MESSAGE_RE.flags); + let subscribeMatch: RegExpExecArray | null; + while ((subscribeMatch = subscribeRe.exec(source)) !== null) { + const raw = subscribeMatch[1] ?? subscribeMatch[2] ?? subscribeMatch[3] ?? ''; + const normalized = normalizeChannelToken(raw); + if (normalized) { + hints.add(normalized); + } + } + + return [...hints]; +} + export function normalizeApiPath(raw: string): string { const trimmed = raw.trim(); if (!trimmed) { @@ -36,6 +78,13 @@ export function normalizeApiPath(raw: string): string { return trimmed.startsWith('/') ? trimmed : `/${trimmed}`; } +export function normalizeChannelToken(raw: string): string { + return raw + .trim() + .replace(/^\/+|\/+$/g, '') + .toLowerCase(); +} + export function pathMatchesPrefix(apiPath: string, controllerPrefix: string): boolean { const path = normalizeApiPath(apiPath); const prefix = normalizeApiPath(controllerPrefix); @@ -45,13 +94,55 @@ export function pathMatchesPrefix(apiPath: string, controllerPrefix: string): bo return path === prefix || path.startsWith(`${prefix}/`); } +/** + * Match AsyncAPI channel names to gateway hints (namespace or SubscribeMessage). + * Allows equality or either side containing the other as a path segment / suffix. + */ +export function channelMatchesHint(channelName: string, hint: string): boolean { + const channel = normalizeChannelToken(channelName); + const token = normalizeChannelToken(hint); + if (!channel || !token) { + return false; + } + if (channel === token) { + return true; + } + if (channel.endsWith(`/${token}`) || channel.startsWith(`${token}/`)) { + return true; + } + if (token.endsWith(`/${channel}`) || token.startsWith(`${channel}/`)) { + return true; + } + // Filename-style: billing-status vs billing/status + const channelFlat = channel.replace(/\//g, '-'); + const tokenFlat = token.replace(/\//g, '-'); + return channelFlat === tokenFlat || channelFlat.includes(tokenFlat) || tokenFlat.includes(channelFlat); +} + +export interface SourceFileRef { + relativePath: string; + absolutePath: string; + projectName?: string; +} + export interface LinkImplementsInput { - controllerFiles: Array<{ relativePath: string; absolutePath: string; projectName?: string }>; + controllerFiles: SourceFileRef[]; + gatewayFiles?: SourceFileRef[]; apiNodes: KnowledgeNode[]; } +function pushImplementsEdge(edges: KnowledgeEdge[], seen: Set, fromId: string, toId: string): void { + const key = `${fromId}->${toId}`; + if (seen.has(key)) { + return; + } + seen.add(key); + edges.push({ from: fromId, to: toId, type: 'implements' }); +} + /** - * Build implements edges from Nest controllers to OpenAPI api nodes. + * Build implements edges from Nest controllers to OpenAPI endpoints + * and from Nest gateways to AsyncAPI channel endpoints. */ export function linkImplements(input: LinkImplementsInput): KnowledgeEdge[] { const edges: KnowledgeEdge[] = []; @@ -65,6 +156,14 @@ export function linkImplements(input: LinkImplementsInput): KnowledgeEdge[] { return attrs.specKind === 'openapi' && typeof attrs.pathOrChannel === 'string'; }); + const asyncApiNodes = input.apiNodes.filter((node) => { + if (node.type !== 'endpoint') { + return false; + } + const attrs = node.attrs as ApiNodeAttrs; + return attrs.specKind === 'asyncapi' && typeof attrs.pathOrChannel === 'string'; + }); + for (const file of input.controllerFiles) { let source: string; try { @@ -88,18 +187,46 @@ export function linkImplements(input: LinkImplementsInput): KnowledgeEdge[] { continue; } - const fileEdgeKey = `${fileId}->${apiNode.id}`; - if (!seen.has(fileEdgeKey)) { - seen.add(fileEdgeKey); - edges.push({ from: fileId, to: apiNode.id, type: 'implements' }); + pushImplementsEdge(edges, seen, fileId, apiNode.id); + if (projectId) { + pushImplementsEdge(edges, seen, projectId, apiNode.id); + } + } + } + } + + for (const file of input.gatewayFiles ?? []) { + let source: string; + try { + source = fs.readFileSync(file.absolutePath, 'utf8'); + } catch { + continue; + } + + const hints = extractGatewayChannelHints(source); + // Always include basename stem (e.g. billing-status from billing-status.gateway.ts) + const base = file.relativePath.replace(/\\/g, '/').split('/').pop() ?? ''; + const stem = base.replace(/\.gateway\.ts$/i, ''); + if (stem) { + hints.push(normalizeChannelToken(stem)); + } + if (hints.length === 0) { + continue; + } + + const fileId = fileNodeId(file.relativePath); + const projectId = file.projectName ? projectNodeId(file.projectName) : undefined; + + for (const hint of hints) { + for (const apiNode of asyncApiNodes) { + const attrs = apiNode.attrs as ApiNodeAttrs; + if (!channelMatchesHint(attrs.pathOrChannel, hint)) { + continue; } + pushImplementsEdge(edges, seen, fileId, apiNode.id); if (projectId) { - const projectEdgeKey = `${projectId}->${apiNode.id}`; - if (!seen.has(projectEdgeKey)) { - seen.add(projectEdgeKey); - edges.push({ from: projectId, to: apiNode.id, type: 'implements' }); - } + pushImplementsEdge(edges, seen, projectId, apiNode.id); } } } diff --git a/tools/graph/src/lib/link-packages.spec.ts b/tools/graph/src/lib/link-packages.spec.ts new file mode 100644 index 000000000..89be09f5b --- /dev/null +++ b/tools/graph/src/lib/link-packages.spec.ts @@ -0,0 +1,43 @@ +import { linkPackages } from './link-packages'; +import { packageNodeId, projectNodeId } from './schema'; +import type { ProjectGraph } from '@nx/devkit'; + +describe('linkPackages', () => { + const projectGraph = { + nodes: { + 'demo-api': { + name: 'demo-api', + type: 'app', + data: { root: 'apps/demo-api', projectType: 'application', tags: [], targets: {} }, + }, + 'demo-lib': { + name: 'demo-lib', + type: 'lib', + data: { root: 'libs/demo-lib', projectType: 'library', tags: [], targets: {} }, + }, + }, + dependencies: {}, + } as unknown as ProjectGraph; + + it('should attribute production packages to applications only', () => { + const result = linkPackages({ + projectGraph, + workspaceRoot: '/tmp', + resolveProductionDeps: (projectName) => { + if (projectName === 'demo-api') { + return { '@nestjs/common': '11.1.6', lodash: '4.17.21' }; + } + return { 'should-not-appear': '1.0.0' }; + }, + }); + + expect(result.nodes.map((n) => n.id).sort()).toEqual([packageNodeId('@nestjs/common'), packageNodeId('lodash')]); + expect(result.edges).toEqual( + expect.arrayContaining([ + { from: projectNodeId('demo-api'), to: packageNodeId('@nestjs/common'), type: 'depends_on' }, + { from: projectNodeId('demo-api'), to: packageNodeId('lodash'), type: 'depends_on' }, + ]), + ); + expect(result.edges.some((e) => e.from === projectNodeId('demo-lib'))).toBe(false); + }); +}); diff --git a/tools/graph/src/lib/link-packages.ts b/tools/graph/src/lib/link-packages.ts new file mode 100644 index 000000000..cc22511c6 --- /dev/null +++ b/tools/graph/src/lib/link-packages.ts @@ -0,0 +1,84 @@ +import type { ProjectGraph } from '@nx/devkit'; +import { createPackageJson } from '@nx/js'; + +import { KnowledgeEdge, KnowledgeNode, PackageNodeAttrs, packageNodeId, projectNodeId } from './schema'; + +export interface LinkPackagesResult { + nodes: KnowledgeNode[]; + edges: KnowledgeEdge[]; +} + +export interface LinkPackagesOptions { + projectGraph: ProjectGraph; + workspaceRoot: string; + /** + * When set, used instead of `@nx/js` createPackageJson (tests). + * Return production dependency map: name → version range. + */ + resolveProductionDeps?: (projectName: string) => Record; +} + +/** + * Attribute production npm packages to Nx **applications** using the same + * Nx `createPackageJson` / generatePackageJson mechanism as SBOM builds. + * Shared libs are rolled into consuming apps — packages are not emitted for libs alone. + */ +export function linkPackages(options: LinkPackagesOptions): LinkPackagesResult { + const nodesById = new Map(); + const edges: KnowledgeEdge[] = []; + const edgeKeys = new Set(); + + const resolveDeps = + options.resolveProductionDeps ?? + ((projectName: string): Record => { + const pkg = createPackageJson(projectName, options.projectGraph, { + root: options.workspaceRoot, + isProduction: true, + }); + return (pkg.dependencies ?? {}) as Record; + }); + + for (const [name, node] of Object.entries(options.projectGraph.nodes)) { + if (node.data.projectType !== 'application') { + continue; + } + + let deps: Record; + try { + deps = resolveDeps(name); + } catch { + continue; + } + + const projectId = projectNodeId(name); + for (const [packageName, version] of Object.entries(deps)) { + if (!packageName || packageName.startsWith('@forepath/')) { + // Workspace packages are Nx projects, not external npm package nodes. + continue; + } + + const id = packageNodeId(packageName); + if (!nodesById.has(id)) { + const attrs: PackageNodeAttrs = { name: packageName }; + if (typeof version === 'string' && version.length > 0) { + attrs.version = version; + } + nodesById.set(id, { id, type: 'package', attrs }); + } else if (typeof version === 'string' && version.length > 0) { + const existing = nodesById.get(id)!; + const attrs = existing.attrs as PackageNodeAttrs; + if (!attrs.version) { + attrs.version = version; + } + } + + const edgeKey = `${projectId}->${id}`; + if (!edgeKeys.has(edgeKey)) { + edgeKeys.add(edgeKey); + edges.push({ from: projectId, to: id, type: 'depends_on' }); + } + } + } + + return { nodes: [...nodesById.values()], edges }; +} diff --git a/tools/graph/src/lib/link-state-services.spec.ts b/tools/graph/src/lib/link-state-services.spec.ts new file mode 100644 index 000000000..3692e77c0 --- /dev/null +++ b/tools/graph/src/lib/link-state-services.spec.ts @@ -0,0 +1,72 @@ +import { linkStateServices } from './link-state-services'; +import { KnowledgeNode } from './schema'; + +describe('linkStateServices', () => { + it('should link state to exact matching service in the same project', () => { + const nodes: KnowledgeNode[] = [ + { + id: 'file:libs/demo/src/lib/state/invoices', + type: 'state', + attrs: { + path: 'libs/demo/src/lib/state/invoices', + languageOrKind: 'ts', + projectName: 'demo-feature', + sliceName: 'invoices', + memberFiles: ['invoices.actions.ts'], + }, + }, + { + id: 'file:libs/demo/src/lib/services/invoices.service.ts', + type: 'service', + attrs: { + path: 'libs/demo/src/lib/services/invoices.service.ts', + languageOrKind: 'ts', + projectName: 'demo-feature', + }, + }, + { + id: 'file:libs/demo/src/lib/services/admin-invoices.service.ts', + type: 'service', + attrs: { + path: 'libs/demo/src/lib/services/admin-invoices.service.ts', + languageOrKind: 'ts', + projectName: 'demo-feature', + }, + }, + { + id: 'file:libs/other/src/lib/services/invoices.service.ts', + type: 'service', + attrs: { + path: 'libs/other/src/lib/services/invoices.service.ts', + languageOrKind: 'ts', + projectName: 'other', + }, + }, + ]; + + expect(linkStateServices(nodes)).toEqual([ + { + from: 'file:libs/demo/src/lib/state/invoices', + to: 'file:libs/demo/src/lib/services/invoices.service.ts', + type: 'contains', + }, + ]); + }); + + it('should emit no edge when no matching service exists', () => { + const nodes: KnowledgeNode[] = [ + { + id: 'file:libs/demo/src/lib/state/tickets-board-socket', + type: 'state', + attrs: { + path: 'libs/demo/src/lib/state/tickets-board-socket', + languageOrKind: 'ts', + projectName: 'demo-feature', + sliceName: 'tickets-board-socket', + }, + }, + ]; + + expect(linkStateServices(nodes)).toEqual([]); + }); +}); diff --git a/tools/graph/src/lib/link-state-services.ts b/tools/graph/src/lib/link-state-services.ts new file mode 100644 index 000000000..10f548c8b --- /dev/null +++ b/tools/graph/src/lib/link-state-services.ts @@ -0,0 +1,55 @@ +import { FileNodeAttrs, KnowledgeEdge, KnowledgeNode } from './schema'; + +/** + * Link NgRx `state` nodes to matching `service` nodes in the same project. + * Match is exact: `.service.ts`. + */ +export function linkStateServices(nodes: KnowledgeNode[]): KnowledgeEdge[] { + const edges: KnowledgeEdge[] = []; + const seen = new Set(); + + const servicesByProject = new Map(); + for (const node of nodes) { + if (node.type !== 'service') { + continue; + } + const attrs = node.attrs as FileNodeAttrs; + const projectName = attrs.projectName; + if (!projectName) { + continue; + } + const list = servicesByProject.get(projectName) ?? []; + list.push(node); + servicesByProject.set(projectName, list); + } + + for (const node of nodes) { + if (node.type !== 'state') { + continue; + } + const attrs = node.attrs as FileNodeAttrs; + const sliceName = attrs.sliceName; + const projectName = attrs.projectName; + if (!sliceName || !projectName) { + continue; + } + + const expectedBase = `${sliceName}.service.ts`.toLowerCase(); + const services = servicesByProject.get(projectName) ?? []; + for (const service of services) { + const serviceAttrs = service.attrs as FileNodeAttrs; + const base = serviceAttrs.path.replace(/\\/g, '/').split('/').pop()?.toLowerCase() ?? ''; + if (base !== expectedBase) { + continue; + } + const key = `${node.id}->${service.id}`; + if (seen.has(key)) { + continue; + } + seen.add(key); + edges.push({ from: node.id, to: service.id, type: 'contains' }); + } + } + + return edges; +} diff --git a/tools/graph/src/lib/link-tool-usage.spec.ts b/tools/graph/src/lib/link-tool-usage.spec.ts new file mode 100644 index 000000000..54e39d108 --- /dev/null +++ b/tools/graph/src/lib/link-tool-usage.spec.ts @@ -0,0 +1,102 @@ +import { collectToolIdentifiers, linkToolUsage, projectJsonReferencesIdentifier } from './link-tool-usage'; +import type { ProjectGraph } from '@nx/devkit'; + +describe('collectToolIdentifiers', () => { + it('should include project name, dirname, package name, and unscoped segment', () => { + expect( + collectToolIdentifiers({ + projectName: 'sbom', + dirName: 'sbom', + packageName: '@forepath/sbom', + }).sort(), + ).toEqual(['@forepath/sbom', 'sbom']); + }); + + it('should work without a scoped forepath prefix', () => { + expect( + collectToolIdentifiers({ + projectName: 'releaser', + packageName: 'acme-releaser', + }).sort(), + ).toEqual(['acme-releaser', 'releaser']); + }); +}); + +describe('projectJsonReferencesIdentifier', () => { + it('should match scoped package names and executor plugin ids', () => { + expect( + projectJsonReferencesIdentifier( + `{ "targets": { "sbom": { "executor": "@forepath/sbom:sbom" } } }`, + '@forepath/sbom', + ), + ).toBe(true); + expect( + projectJsonReferencesIdentifier( + `{ "targets": { "sbom": { "executor": "acme-releaser:run" } } }`, + 'acme-releaser', + ), + ).toBe(true); + expect( + projectJsonReferencesIdentifier(`{ "targets": { "sbom": { "executor": "@forepath/sbom:sbom" } } }`, 'sbom'), + ).toBe(true); + }); + + it('should match implicitDependencies and tools/ paths, not bare ambiguous tokens', () => { + expect(projectJsonReferencesIdentifier(`{ "implicitDependencies": ["code"] }`, 'code')).toBe(true); + expect( + projectJsonReferencesIdentifier( + `{ "targets": { "x": { "options": { "command": "bash tools/ci/script.sh" } } } }`, + 'ci', + ), + ).toBe(true); + expect(projectJsonReferencesIdentifier(`{ "targets": { "test": { "configurations": { "ci": {} } } } }`, 'ci')).toBe( + false, + ); + }); +}); + +describe('linkToolUsage', () => { + it('should emit depends_on from consumer projects to matched tools', () => { + const dir = require('os').tmpdir(); + const fs = require('fs') as typeof import('fs'); + const path = require('path') as typeof import('path'); + const root = fs.mkdtempSync(path.join(dir, 'kg-tool-usage-')); + fs.mkdirSync(path.join(root, 'apps/demo-api'), { recursive: true }); + fs.writeFileSync( + path.join(root, 'apps/demo-api/project.json'), + JSON.stringify({ + name: 'demo-api', + targets: { sbom: { executor: '@company/sbom:sbom' } }, + }), + ); + + const projectGraph = { + nodes: { + 'demo-api': { + name: 'demo-api', + type: 'app', + data: { root: 'apps/demo-api', projectType: 'application', tags: [], targets: {} }, + }, + sbom: { + name: 'sbom', + type: 'lib', + data: { root: 'tools/sbom', projectType: 'library', tags: [], targets: {} }, + }, + }, + dependencies: {}, + } as unknown as ProjectGraph; + + const result = linkToolUsage({ + projectGraph, + workspaceRoot: root, + tools: [ + { + toolNodeId: 'project:sbom', + identifiers: ['@company/sbom', 'sbom'], + }, + ], + }); + + expect(result.edges).toEqual([{ from: 'project:demo-api', to: 'project:sbom', type: 'depends_on' }]); + }); +}); diff --git a/tools/graph/src/lib/link-tool-usage.ts b/tools/graph/src/lib/link-tool-usage.ts new file mode 100644 index 000000000..a9b5fc9ee --- /dev/null +++ b/tools/graph/src/lib/link-tool-usage.ts @@ -0,0 +1,184 @@ +import * as fs from 'fs'; +import * as path from 'path'; + +import type { ProjectGraph } from '@nx/devkit'; + +import { isToolsProjectRoot, KnowledgeEdge, projectNodeId, toolNodeId } from './schema'; + +export interface ToolIdentity { + /** Graph node id for the tool (`project:sbom` or `tool:ci`). */ + toolNodeId: string; + /** Strings that identify this tool when found in a consumer project.json. */ + identifiers: string[]; +} + +export interface LinkToolUsageResult { + edges: KnowledgeEdge[]; + /** Tool identities used for matching (tests / debugging). */ + tools: ToolIdentity[]; +} + +/** + * Collect identifiers for a tool from its Nx project name and optional package.json `name`. + */ +export function collectToolIdentifiers(options: { + projectName?: string; + packageName?: string; + dirName?: string; +}): string[] { + const ids = new Set(); + if (options.projectName) { + ids.add(options.projectName); + } + if (options.dirName) { + ids.add(options.dirName); + } + if (options.packageName) { + ids.add(options.packageName); + const scoped = /^@[^/]+\/(.+)$/.exec(options.packageName); + if (scoped?.[1]) { + ids.add(scoped[1]); + } + } + return [...ids].filter((id) => id.length > 0); +} + +function escapeRegExp(value: string): string { + return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} + +/** + * True when project.json text references a tool identifier in a usage context: + * - package name (scoped or path-like) + * - executor plugin id (`name:…` / `@scope/name:…`) + * - Nx `implicitDependencies` entry + * - path under `tools/` + */ +export function projectJsonReferencesIdentifier(projectJsonText: string, identifier: string): boolean { + if (!identifier || !projectJsonText.includes(identifier)) { + return false; + } + + const escaped = escapeRegExp(identifier); + + // High confidence: npm package id (scoped or contains `/`). + if (identifier.startsWith('@') || identifier.includes('/')) { + return true; + } + + // Executor / plugin package: "executor": "…identifier:…" + if (new RegExp(`"executor"\\s*:\\s*"[^"]*${escaped}:[^"]*"`, 'i').test(projectJsonText)) { + return true; + } + + // Nx implicitDependencies: "identifier" + if (new RegExp(`"implicitDependencies"\\s*:\\s*\\[[^\\]]*"(?:[^"]*",\\s*)*${escaped}"`, 's').test(projectJsonText)) { + return true; + } + + // Path reference to the tool directory. + if (new RegExp(`tools[/\\\\]${escaped}(?:[/\\\\"']|$)`).test(projectJsonText)) { + return true; + } + + return false; +} + +function readPackageName(packageJsonPath: string): string | undefined { + if (!fs.existsSync(packageJsonPath)) { + return undefined; + } + try { + const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as { name?: unknown }; + return typeof pkg.name === 'string' && pkg.name.length > 0 ? pkg.name : undefined; + } catch { + return undefined; + } +} + +/** + * Build tool identities from Nx tools/* projects and non-Nx tools/* directories. + */ +export function resolveToolIdentities(workspaceRoot: string, projectGraph: ProjectGraph): ToolIdentity[] { + const tools: ToolIdentity[] = []; + const nxToolDirNames = new Set(); + + for (const [name, node] of Object.entries(projectGraph.nodes)) { + const root = (node.data.root ?? '').replace(/\\/g, '/'); + if (!isToolsProjectRoot(root)) { + continue; + } + const dirName = path.basename(root); + nxToolDirNames.add(dirName); + const packageName = readPackageName(path.join(workspaceRoot, root, 'package.json')); + tools.push({ + toolNodeId: projectNodeId(name), + identifiers: collectToolIdentifiers({ projectName: name, packageName, dirName }), + }); + } + + const toolsRoot = path.join(workspaceRoot, 'tools'); + if (fs.existsSync(toolsRoot)) { + for (const entry of fs.readdirSync(toolsRoot, { withFileTypes: true })) { + if (!entry.isDirectory() || nxToolDirNames.has(entry.name)) { + continue; + } + const packageName = readPackageName(path.join(toolsRoot, entry.name, 'package.json')); + tools.push({ + toolNodeId: toolNodeId(entry.name), + identifiers: collectToolIdentifiers({ dirName: entry.name, packageName }), + }); + } + } + + return tools; +} + +/** + * Link apps/libs → tools when a consumer's project.json references a tool identifier. + */ +export function linkToolUsage(options: { + projectGraph: ProjectGraph; + workspaceRoot: string; + /** Optional override for tests. */ + tools?: ToolIdentity[]; +}): LinkToolUsageResult { + const tools = options.tools ?? resolveToolIdentities(options.workspaceRoot, options.projectGraph); + const edges: KnowledgeEdge[] = []; + const seen = new Set(); + + for (const [projectName, node] of Object.entries(options.projectGraph.nodes)) { + const root = (node.data.root ?? '').replace(/\\/g, '/'); + if (isToolsProjectRoot(root)) { + continue; + } + + const projectJsonPath = path.join(options.workspaceRoot, root, 'project.json'); + if (!fs.existsSync(projectJsonPath)) { + continue; + } + + let text: string; + try { + text = fs.readFileSync(projectJsonPath, 'utf8'); + } catch { + continue; + } + + const fromId = projectNodeId(projectName); + for (const tool of tools) { + const matched = tool.identifiers.some((identifier) => projectJsonReferencesIdentifier(text, identifier)); + if (!matched) { + continue; + } + const key = `${fromId}->${tool.toolNodeId}`; + if (seen.has(key)) { + continue; + } + seen.add(key); + edges.push({ from: fromId, to: tool.toolNodeId, type: 'depends_on' }); + } + } + + return { edges, tools }; +} diff --git a/tools/graph/src/lib/parse-webhook-events.spec.ts b/tools/graph/src/lib/parse-webhook-events.spec.ts new file mode 100644 index 000000000..5bba2dba2 --- /dev/null +++ b/tools/graph/src/lib/parse-webhook-events.spec.ts @@ -0,0 +1,44 @@ +import { extractWebhookEventNames, parseWebhookEventsCatalog } from './parse-webhook-events'; +import { webhookEventNodeId } from './schema'; + +describe('parseWebhookEvents', () => { + const source = ` +export const BILLING_NOTIFICATION_EVENTS = [ + 'invoice.created', + 'invoice.issued', + 'payment.succeeded', +] as const; +`; + + it('should extract dotted event names', () => { + expect(extractWebhookEventNames(source)).toEqual(['invoice.created', 'invoice.issued', 'payment.succeeded']); + }); + + it('should emit webhook-event nodes scoped to the project', () => { + const result = parseWebhookEventsCatalog({ + relativePath: 'libs/demo/src/notifications/demo-notification.events.ts', + source, + projectName: 'demo-feature', + }); + + expect(result.nodes).toHaveLength(3); + expect(result.nodes[0]).toMatchObject({ + id: webhookEventNodeId('demo-feature', 'invoice.created'), + type: 'webhook-event', + attrs: { + eventName: 'invoice.created', + projectName: 'demo-feature', + catalogPath: 'libs/demo/src/notifications/demo-notification.events.ts', + }, + }); + expect(result.edges).toEqual( + expect.arrayContaining([ + { + from: 'project:demo-feature', + to: webhookEventNodeId('demo-feature', 'invoice.created'), + type: 'contains', + }, + ]), + ); + }); +}); diff --git a/tools/graph/src/lib/parse-webhook-events.ts b/tools/graph/src/lib/parse-webhook-events.ts new file mode 100644 index 000000000..a25ca886d --- /dev/null +++ b/tools/graph/src/lib/parse-webhook-events.ts @@ -0,0 +1,73 @@ +import * as fs from 'fs'; + +import { KnowledgeEdge, KnowledgeNode, WebhookEventNodeAttrs, projectNodeId, webhookEventNodeId } from './schema'; + +const EVENT_STRING_RE = /['"`]([a-z][a-z0-9_]*(?:\.[a-z][a-z0-9_]*)+)['"`]/gi; + +export interface ParseWebhookEventsResult { + nodes: KnowledgeNode[]; + edges: KnowledgeEdge[]; + eventNames: string[]; +} + +/** + * Extract outbound webhook / notification event names from a catalog source file + * (typically `*.notification.events.ts`). + */ +export function extractWebhookEventNames(source: string): string[] { + const names = new Set(); + const re = new RegExp(EVENT_STRING_RE.source, EVENT_STRING_RE.flags); + let match: RegExpExecArray | null; + while ((match = re.exec(source)) !== null) { + const name = match[1]?.toLowerCase(); + if (name && name.includes('.')) { + names.add(name); + } + } + return [...names].sort((a, b) => a.localeCompare(b)); +} + +/** + * Parse a webhook events catalog into `webhook-event` nodes and `contains` edges. + */ +export function parseWebhookEventsCatalog(options: { + relativePath: string; + source: string; + projectName?: string; +}): ParseWebhookEventsResult { + const eventNames = extractWebhookEventNames(options.source); + const nodes: KnowledgeNode[] = []; + const edges: KnowledgeEdge[] = []; + + if (!options.projectName) { + return { nodes, edges, eventNames }; + } + + const projectId = projectNodeId(options.projectName); + for (const eventName of eventNames) { + const id = webhookEventNodeId(options.projectName, eventName); + const attrs: WebhookEventNodeAttrs = { + eventName, + projectName: options.projectName, + catalogPath: options.relativePath.replace(/\\/g, '/'), + }; + nodes.push({ id, type: 'webhook-event', attrs }); + edges.push({ from: projectId, to: id, type: 'contains' }); + } + + return { nodes, edges, eventNames }; +} + +export function parseWebhookEventsCatalogFile( + relativePath: string, + absolutePath: string, + projectName?: string, +): ParseWebhookEventsResult { + let source: string; + try { + source = fs.readFileSync(absolutePath, 'utf8'); + } catch { + return { nodes: [], edges: [], eventNames: [] }; + } + return parseWebhookEventsCatalog({ relativePath, source, projectName }); +} diff --git a/tools/graph/src/lib/parsers-and-links.spec.ts b/tools/graph/src/lib/parsers-and-links.spec.ts index f9b072f19..979382bcd 100644 --- a/tools/graph/src/lib/parsers-and-links.spec.ts +++ b/tools/graph/src/lib/parsers-and-links.spec.ts @@ -2,7 +2,13 @@ import { isSensitivePath } from './discover-files'; import { parseOpenApi } from './parse-openapi'; import { parseAsyncApi } from './parse-asyncapi'; import { parseMarkdown } from './parse-markdown'; -import { extractControllerPaths, linkImplements, pathMatchesPrefix } from './link-implements'; +import { + extractControllerPaths, + extractGatewayChannelHints, + channelMatchesHint, + linkImplements, + pathMatchesPrefix, +} from './link-implements'; import { linkDocuments } from './link-documents'; import { httpApiNodeId, channelApiNodeId, conceptNodeId, projectNodeId } from './schema'; @@ -184,6 +190,55 @@ describe('linkImplements', () => { ); expect(edges.find((e) => e.to === httpApiNodeId('GET', '/health'))).toBeUndefined(); }); + + it('should build implements edges from gateway to AsyncAPI channels', () => { + const fs = require('fs') as typeof import('fs'); + const os = require('os') as typeof import('os'); + const path = require('path') as typeof import('path'); + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'kg-gw-')); + const filePath = path.join(dir, 'status.gateway.ts'); + fs.writeFileSync(filePath, `@WebSocketGateway({ namespace: 'demo/status' })\nexport class StatusGateway {}\n`); + + expect(extractGatewayChannelHints(`@WebSocketGateway({ namespace: 'demo/status' })`)).toEqual(['demo/status']); + expect(channelMatchesHint('demo/status', 'demo/status')).toBe(true); + expect(channelMatchesHint('demo/status', 'status')).toBe(true); + + const edges = linkImplements({ + controllerFiles: [], + gatewayFiles: [ + { + relativePath: 'apps/demo-api/src/gateways/status.gateway.ts', + absolutePath: filePath, + projectName: 'demo-api', + }, + ], + apiNodes: [ + { + id: channelApiNodeId('demo/status'), + type: 'endpoint', + attrs: { + pathOrChannel: 'demo/status', + specKind: 'asyncapi', + }, + }, + ], + }); + + expect(edges).toEqual( + expect.arrayContaining([ + { + from: 'file:apps/demo-api/src/gateways/status.gateway.ts', + to: channelApiNodeId('demo/status'), + type: 'implements', + }, + { + from: projectNodeId('demo-api'), + to: channelApiNodeId('demo/status'), + type: 'implements', + }, + ]), + ); + }); }); describe('linkDocuments', () => { diff --git a/tools/graph/src/lib/schema.ts b/tools/graph/src/lib/schema.ts index dee2777c8..2afe394ea 100644 --- a/tools/graph/src/lib/schema.ts +++ b/tools/graph/src/lib/schema.ts @@ -2,11 +2,14 @@ * Knowledge graph schema for the Forepath Nx monorepo. * * Node ids: - * - project: (apps and libs; `type` is `app` or `lib`) + * - project: (apps, libs, tools; `type` is `app` | `lib` | `tool`) + * - tool: (non-Nx directories under tools/) + * - package: (production npm deps attributed to apps via Nx createPackageJson) + * - patch: (patch-package files under patches/) * - domain: | context: | feature-group: (cluster labels) - * - file: (controllers, docs, specs, diagrams; - * `type` is `file`|`doc`|`readme`|`openapi`|`asyncapi`|`diagram`) + * - file: (path-based sources; `type` is a FileDerivedNodeType) * - api:HTTP:: | api:channel: (node `type`: `endpoint`) + * - webhook-event:: (outbound notification / webhook event) * - concept: * * Edge types: depends_on | contains | implements | documents | belongs_to @@ -16,10 +19,25 @@ export type KnowledgeNodeType = | 'app' | 'lib' + | 'tool' + | 'package' + | 'patch' | 'domain' | 'context' | 'feature-group' - | 'file' + | 'controller' + | 'gateway' + | 'job' + | 'service' + | 'repository' + | 'entity' + | 'dto' + | 'guard' + | 'module' + | 'state' + | 'provider' + | 'email' + | 'webhook-event' | 'doc' | 'readme' | 'openapi' @@ -31,20 +49,20 @@ export type KnowledgeNodeType = /** Supported knowledge-graph edge kinds. */ export type KnowledgeEdgeType = 'depends_on' | 'contains' | 'implements' | 'documents' | 'belongs_to'; -/** Nx project classification (mirrors node.type for app/lib nodes). */ -export type ProjectNodeKind = 'app' | 'lib'; +/** Nx / workspace project classification (mirrors node.type for project-like nodes). */ +export type ProjectNodeKind = 'app' | 'lib' | 'tool'; /** Cluster classification for domain maps. */ export type ClusterKind = 'domain' | 'context' | 'feature-group'; /** File kind for indexed files. */ -export type FileLanguageOrKind = 'ts' | 'openapi' | 'asyncapi' | 'md' | 'mmd'; +export type FileLanguageOrKind = 'ts' | 'openapi' | 'asyncapi' | 'md' | 'mmd' | 'template'; export interface ProjectNodeAttrs { name: string; root: string; tags: string[]; - /** Same as the node `type` (`app` or `lib`). */ + /** Same as the node `type` (`app`, `lib`, or `tool`). */ type: ProjectNodeKind; targets: string[]; /** Product domain from `domain:*` tag or path inference. */ @@ -68,6 +86,12 @@ export interface FileNodeAttrs { path: string; languageOrKind: FileLanguageOrKind; projectName?: string; + /** NgRx slice name when `type` is `state`. */ + sliceName?: string; + /** Email template stem when `type` is `email`. */ + templateName?: string; + /** Member basenames for accumulated `state` / `email` nodes. */ + memberFiles?: string[]; } export interface ApiNodeAttrs { @@ -78,6 +102,25 @@ export interface ApiNodeAttrs { specKind: 'openapi' | 'asyncapi'; } +export interface WebhookEventNodeAttrs { + eventName: string; + projectName?: string; + catalogPath: string; +} + +export interface PackageNodeAttrs { + name: string; + /** Version range or resolved version from Nx createPackageJson / externalNodes. */ + version?: string; +} + +export interface PatchNodeAttrs { + path: string; + fileName: string; + packageName: string; + packageVersion?: string; +} + export interface ConceptNodeAttrs { title: string; docPath: string; @@ -85,7 +128,15 @@ export interface ConceptNodeAttrs { domain?: string; } -export type KnowledgeNodeAttrs = ProjectNodeAttrs | ClusterNodeAttrs | FileNodeAttrs | ApiNodeAttrs | ConceptNodeAttrs; +export type KnowledgeNodeAttrs = + | ProjectNodeAttrs + | ClusterNodeAttrs + | FileNodeAttrs + | ApiNodeAttrs + | WebhookEventNodeAttrs + | PackageNodeAttrs + | PatchNodeAttrs + | ConceptNodeAttrs; export interface KnowledgeNode { id: string; @@ -110,6 +161,19 @@ export function projectNodeId(name: string): string { return `project:${name}`; } +/** Non-Nx tool directory under tools/ (e.g. tools/ci). */ +export function toolNodeId(dirName: string): string { + return `tool:${dirName}`; +} + +export function packageNodeId(packageName: string): string { + return `package:${packageName}`; +} + +export function patchNodeId(fileName: string): string { + return `patch:${fileName}`; +} + export function domainNodeId(name: string): string { return `domain:${slugify(name)}`; } @@ -123,13 +187,146 @@ export function featureGroupNodeId(name: string): string { } export function isNxProjectNodeType(type: string): type is ProjectNodeKind { - return type === 'app' || type === 'lib'; + return type === 'app' || type === 'lib' || type === 'tool'; } -export type FileDerivedNodeType = 'file' | 'doc' | 'readme' | 'openapi' | 'asyncapi' | 'diagram'; +/** True when an Nx project root lives under workspace tools/. */ +export function isToolsProjectRoot(root: string): boolean { + const normalized = root.replace(/\\/g, '/').replace(/^\.\//, ''); + return normalized === 'tools' || normalized.startsWith('tools/'); +} -/** Map discovered file kind (and path for markdown) to a knowledge-graph node type. */ -export function fileNodeTypeFromKind(kind: FileLanguageOrKind, relativePath = ''): FileDerivedNodeType { +export type FileDerivedNodeType = + | 'controller' + | 'gateway' + | 'job' + | 'service' + | 'repository' + | 'entity' + | 'dto' + | 'guard' + | 'module' + | 'state' + | 'provider' + | 'email' + | 'doc' + | 'readme' + | 'openapi' + | 'asyncapi' + | 'diagram'; + +const TS_SOURCE_TYPE_PRIORITY: Array<{ pattern: RegExp; type: FileDerivedNodeType }> = [ + { pattern: /\.job-handler\.ts$/i, type: 'job' }, + { pattern: /\.controller\.ts$/i, type: 'controller' }, + { pattern: /controller\./i, type: 'controller' }, + { pattern: /\.gateway\.ts$/i, type: 'gateway' }, + { pattern: /\.repository\.ts$/i, type: 'repository' }, + { pattern: /\.entity\.ts$/i, type: 'entity' }, + { pattern: /\.dto\.ts$/i, type: 'dto' }, + { pattern: /\.guard\.ts$/i, type: 'guard' }, + { pattern: /\.module\.ts$/i, type: 'module' }, + { pattern: /\.service\.ts$/i, type: 'service' }, +]; + +/** + * Domain strategy providers (payment processors, cloud/agent/pipeline adapters). + * Excludes Angular/Nest DI `*.providers.ts` and frontend `*.provider.ts` helpers. + */ +export function isDomainProviderSource(relativePath: string): boolean { + const normalized = relativePath.replace(/\\/g, '/'); + const base = normalized.split('/').pop() ?? ''; + const lower = base.toLowerCase(); + if (normalized.includes('/frontend/')) { + return false; + } + if (lower.endsWith('.providers.ts')) { + return false; + } + if (lower.endsWith('.provider.ts')) { + return true; + } + if (lower.endsWith('.processor.ts') && /\/(payment-)?processors?\//i.test(normalized)) { + return true; + } + return false; +} + +/** Outbound notification / webhook event catalog (`*notification.events.ts`). */ +export function isWebhookEventsCatalogFile(fileNameOrPath: string): boolean { + const base = fileNameOrPath.replace(/\\/g, '/').split('/').pop() ?? fileNameOrPath; + return /notification\.events\.ts$/i.test(base) && !base.toLowerCase().endsWith('.spec.ts'); +} + +/** Email body templates (`*.template.html` / `*.template.txt`), excluding partials and PDF. */ +export function isEmailTemplateFile(fileNameOrPath: string): boolean { + const base = fileNameOrPath.replace(/\\/g, '/').split('/').pop() ?? fileNameOrPath; + const lower = base.toLowerCase(); + if (lower.includes('.partial.')) { + return false; + } + if (lower.includes('-pdf.template.') || lower.includes('.pdf.template.')) { + return false; + } + return lower.endsWith('.template.html') || lower.endsWith('.template.txt'); +} + +export function emailTemplateStem(fileName: string): string | null { + const base = fileName.replace(/\\/g, '/').split('/').pop() ?? fileName; + const match = /^(.+)\.template\.(html|txt)$/i.exec(base); + if (!match) { + return null; + } + const stem = match[1]; + if (/partial$/i.test(stem) || /-pdf$/i.test(stem)) { + return null; + } + return stem; +} + +/** + * Classify a TypeScript basename into a dedicated source node type. + * Returns `null` when no dedicated rule matches (not indexed). + * Prefer {@link classifyTsSourceTypeFromPath} when a full relative path is available. + */ +export function classifyTsSourceType(fileName: string): FileDerivedNodeType | null { + return classifyTsSourceTypeFromPath(fileName); +} + +/** Path-aware TS classification (needed for domain `provider` heuristics). */ +export function classifyTsSourceTypeFromPath(relativePath: string): FileDerivedNodeType | null { + const base = relativePath.replace(/\\/g, '/').split('/').pop() ?? relativePath; + if (base.endsWith('.spec.ts') || base.endsWith('.d.ts')) { + return null; + } + if (isDomainProviderSource(relativePath)) { + return 'provider'; + } + for (const { pattern, type } of TS_SOURCE_TYPE_PRIORITY) { + if (pattern.test(base)) { + return type; + } + } + return null; +} + +/** Whether a path should be indexed as a TS architectural source file. */ +export function isIndexedTsSourceFile(fileNameOrPath: string): boolean { + const base = fileNameOrPath.replace(/\\/g, '/').split('/').pop() ?? fileNameOrPath; + const lower = base.toLowerCase(); + if (!lower.endsWith('.ts') || lower.endsWith('.spec.ts') || lower.endsWith('.d.ts')) { + return false; + } + if (isWebhookEventsCatalogFile(fileNameOrPath)) { + return true; + } + return classifyTsSourceTypeFromPath(fileNameOrPath) !== null; +} + +/** + * Map discovered file kind (and path for markdown / TS) to a knowledge-graph node type. + * Prefer this over {@link fileNodeTypeFromKind} when a relative path is available. + */ +export function fileNodeTypeFromPath(kind: FileLanguageOrKind, relativePath = ''): FileDerivedNodeType { if (kind === 'openapi') { return 'openapi'; } @@ -139,6 +336,9 @@ export function fileNodeTypeFromKind(kind: FileLanguageOrKind, relativePath = '' if (kind === 'mmd') { return 'diagram'; } + if (kind === 'template') { + return 'email'; + } if (kind === 'md') { const normalized = relativePath.replace(/\\/g, '/'); if (normalized === 'docs' || normalized.startsWith('docs/')) { @@ -146,7 +346,20 @@ export function fileNodeTypeFromKind(kind: FileLanguageOrKind, relativePath = '' } return 'readme'; } - return 'file'; + if (kind === 'ts') { + const typed = classifyTsSourceTypeFromPath(relativePath); + if (!typed) { + throw new Error(`Unclassified TypeScript source (not indexed): ${relativePath || '(empty path)'}`); + } + return typed; + } + const _exhaustive: never = kind; + throw new Error(`Unsupported file kind: ${_exhaustive}`); +} + +/** Map discovered file kind (and path for markdown) to a knowledge-graph node type. */ +export function fileNodeTypeFromKind(kind: FileLanguageOrKind, relativePath = ''): FileDerivedNodeType { + return fileNodeTypeFromPath(kind, relativePath); } export function fileNodeId(relativePath: string): string { @@ -161,6 +374,10 @@ export function channelApiNodeId(channel: string): string { return `api:channel:${channel}`; } +export function webhookEventNodeId(projectName: string, eventName: string): string { + return `webhook-event:${projectName}:${eventName}`; +} + export function conceptNodeId(slug: string): string { return `concept:${slug}`; } diff --git a/tools/graph/src/lib/write-html.ts b/tools/graph/src/lib/write-html.ts index 911bdc064..b0fda700a 100644 --- a/tools/graph/src/lib/write-html.ts +++ b/tools/graph/src/lib/write-html.ts @@ -30,17 +30,32 @@ const GRAPH_HTML = ` --border: #243044; --app: #7dd3fc; --lib: #c4b5fd; + --tool: #5eead4; + --package: #86efac; + --patch: #fca5a5; --domain: #f87171; --context: #a3e635; --feature-group: #fcd34d; - --file: #94a3b8; + --controller: #67e8f9; + --gateway: #22d3ee; + --job: #f97316; + --service: #a78bfa; + --repository: #818cf8; + --entity: #c084fc; + --dto: #ddd6fe; + --guard: #fb7185; + --module: #94a3b8; + --state: #e879f9; + --provider: #fbbf24; + --email: #f9a8d4; + --webhook-event: #fdba74; --doc: #f472b6; - --readme: #e879f9; + --readme: #d946ef; --openapi: #2dd4bf; --asyncapi: #38bdf8; --diagram: #fb923c; --endpoint: #34d399; - --concept: #fbbf24; + --concept: #fde68a; --scrollbar-thumb: rgba(231, 236, 243, 0.28); --scrollbar-thumb-hover: rgba(231, 236, 243, 0.45); --scrollbar-thumb-active: rgba(231, 236, 243, 0.55); @@ -143,11 +158,91 @@ const GRAPH_HTML = ` align-self: end; } .btn:hover { border-color: var(--accent); color: var(--accent); } + .type-filter { + position: relative; + align-self: end; + } + .type-filter-btn { + min-width: 9rem; + display: inline-flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; + } + .type-filter-btn .caret { + font-size: 0.65rem; + opacity: 0.7; + } + .type-filter-summary { + color: var(--muted); + font-weight: 400; + } + .type-filter-panel { + position: absolute; + top: calc(100% + 0.35rem); + right: 0; + z-index: 40; + width: min(22rem, calc(100vw - 1.5rem)); + max-height: min(22rem, calc(100vh - 6rem)); + display: none; + flex-direction: column; + gap: 0.5rem; + padding: 0.55rem; + background: var(--panel); + border: 1px solid var(--border); + border-radius: 6px; + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45); + } + .type-filter.open .type-filter-panel { + display: flex; + } + .type-filter-panel input[type="search"] { + flex: 0 0 auto; + width: 100%; + min-width: 0; + } + .type-filter-list { + flex: 1 1 auto; + min-height: 0; + overflow-y: auto; + display: flex; + flex-direction: column; + gap: 0.15rem; + padding-right: 0.15rem; + } + .type-filter-list label { + display: flex; + align-items: center; + gap: 0.4rem; + padding: 0.28rem 0.35rem; + border-radius: 4px; + cursor: pointer; + user-select: none; + font-size: 0.78rem; + color: var(--muted); + } + .type-filter-list label:hover { + background: var(--panel-2); + color: var(--text); + } + .type-filter-list label.hidden { + display: none; + } + .type-filter-empty { + display: none; + padding: 0.5rem 0.35rem; + font-size: 0.78rem; + color: var(--muted); + } + .type-filter-empty.visible { + display: block; + } .toggles { display: flex; flex-wrap: wrap; gap: 0.55rem; align-items: center; + align-self: end; font-size: 0.78rem; color: var(--muted); } @@ -166,10 +261,25 @@ const GRAPH_HTML = ` } .swatch.app { background: var(--app); } .swatch.lib { background: var(--lib); } + .swatch.tool { background: var(--tool); } + .swatch.package { background: var(--package); } + .swatch.patch { background: var(--patch); } .swatch.domain { background: var(--domain); } .swatch.context { background: var(--context); } .swatch.feature-group { background: var(--feature-group); } - .swatch.file { background: var(--file); } + .swatch.controller { background: var(--controller); } + .swatch.gateway { background: var(--gateway); } + .swatch.job { background: var(--job); } + .swatch.service { background: var(--service); } + .swatch.repository { background: var(--repository); } + .swatch.entity { background: var(--entity); } + .swatch.dto { background: var(--dto); } + .swatch.guard { background: var(--guard); } + .swatch.module { background: var(--module); } + .swatch.state { background: var(--state); } + .swatch.provider { background: var(--provider); } + .swatch.email { background: var(--email); } + .swatch.webhook-event { background: var(--webhook-event); } .swatch.doc { background: var(--doc); } .swatch.readme { background: var(--readme); } .swatch.openapi { background: var(--openapi); } @@ -241,7 +351,7 @@ const GRAPH_HTML = ` .popover .pop-type.domain { color: var(--domain); } .popover .pop-type.context { color: var(--context); } .popover .pop-type.feature-group { color: var(--feature-group); } - .popover .pop-type.file { color: var(--file); } + .popover .pop-type.controller { color: var(--controller); } .popover .pop-type.doc { color: var(--doc); } .popover .pop-type.readme { color: var(--readme); } .popover .pop-type.openapi { color: var(--openapi); } @@ -331,10 +441,25 @@ const GRAPH_HTML = ` } .detail-type.app { color: var(--app); } .detail-type.lib { color: var(--lib); } + .detail-type.tool { color: var(--tool); } + .detail-type.package { color: var(--package); } + .detail-type.patch { color: var(--patch); } .detail-type.domain { color: var(--domain); } .detail-type.context { color: var(--context); } .detail-type.feature-group { color: var(--feature-group); } - .detail-type.file { color: var(--file); } + .detail-type.controller { color: var(--controller); } + .detail-type.gateway { color: var(--gateway); } + .detail-type.job { color: var(--job); } + .detail-type.service { color: var(--service); } + .detail-type.repository { color: var(--repository); } + .detail-type.entity { color: var(--entity); } + .detail-type.dto { color: var(--dto); } + .detail-type.guard { color: var(--guard); } + .detail-type.module { color: var(--module); } + .detail-type.state { color: var(--state); } + .detail-type.provider { color: var(--provider); } + .detail-type.email { color: var(--email); } + .detail-type.webhook-event { color: var(--webhook-event); } .detail-type.doc { color: var(--doc); } .detail-type.readme { color: var(--readme); } .detail-type.openapi { color: var(--openapi); } @@ -404,10 +529,25 @@ const GRAPH_HTML = ` .type-tag { font-size: 0.7rem; margin-right: 0.35rem; opacity: 0.9; } .type-tag.app { color: var(--app); } .type-tag.lib { color: var(--lib); } + .type-tag.tool { color: var(--tool); } + .type-tag.package { color: var(--package); } + .type-tag.patch { color: var(--patch); } .type-tag.domain { color: var(--domain); } .type-tag.context { color: var(--context); } .type-tag.feature-group { color: var(--feature-group); } - .type-tag.file { color: var(--file); } + .type-tag.controller { color: var(--controller); } + .type-tag.gateway { color: var(--gateway); } + .type-tag.job { color: var(--job); } + .type-tag.service { color: var(--service); } + .type-tag.repository { color: var(--repository); } + .type-tag.entity { color: var(--entity); } + .type-tag.dto { color: var(--dto); } + .type-tag.guard { color: var(--guard); } + .type-tag.module { color: var(--module); } + .type-tag.state { color: var(--state); } + .type-tag.provider { color: var(--provider); } + .type-tag.email { color: var(--email); } + .type-tag.webhook-event { color: var(--webhook-event); } .type-tag.doc { color: var(--doc); } .type-tag.readme { color: var(--readme); } .type-tag.openapi { color: var(--openapi); } @@ -431,20 +571,47 @@ const GRAPH_HTML = ` -
- - - - - - - - - - - - - +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
No types match.
+
+
+
@@ -473,25 +640,55 @@ const GRAPH_HTML = ` var COLORS = { app: '#7dd3fc', lib: '#c4b5fd', + tool: '#5eead4', + package: '#86efac', + patch: '#fca5a5', domain: '#f87171', context: '#a3e635', 'feature-group': '#fcd34d', - file: '#94a3b8', + controller: '#67e8f9', + gateway: '#22d3ee', + job: '#f97316', + service: '#a78bfa', + repository: '#818cf8', + entity: '#c084fc', + dto: '#ddd6fe', + guard: '#fb7185', + module: '#94a3b8', + state: '#e879f9', + provider: '#fbbf24', + email: '#f9a8d4', + 'webhook-event': '#fdba74', doc: '#f472b6', - readme: '#e879f9', + readme: '#d946ef', openapi: '#2dd4bf', asyncapi: '#38bdf8', diagram: '#fb923c', endpoint: '#34d399', - concept: '#fbbf24' + concept: '#fde68a' }; var RADIUS = { app: 7.5, lib: 6.5, + tool: 6.5, + package: 4, + patch: 4, domain: 10, context: 8, 'feature-group': 7.5, - file: 4.5, + controller: 5, + gateway: 5, + job: 4.5, + service: 4.5, + repository: 4.5, + entity: 4.5, + dto: 4, + guard: 4.5, + module: 4.5, + state: 5.5, + provider: 5, + email: 4.5, + 'webhook-event': 4.5, doc: 4.5, readme: 4.5, openapi: 5.5, @@ -728,10 +925,25 @@ const GRAPH_HTML = ` var byType = { app: [], lib: [], + tool: [], + package: [], + patch: [], domain: [], context: [], 'feature-group': [], - file: [], + controller: [], + gateway: [], + job: [], + service: [], + repository: [], + entity: [], + dto: [], + guard: [], + module: [], + state: [], + provider: [], + email: [], + 'webhook-event': [], doc: [], readme: [], openapi: [], @@ -747,18 +959,34 @@ const GRAPH_HTML = ` else byType.other.push(n); }); + var sourceRing = byType.controller + .concat(byType.gateway) + .concat(byType.job) + .concat(byType.service) + .concat(byType.repository) + .concat(byType.entity) + .concat(byType.dto) + .concat(byType.guard) + .concat(byType.module) + .concat(byType.provider); var rings = [ - { nodes: byType.file, radius: 85 }, - { nodes: byType.diagram, radius: 115 }, - { nodes: byType.openapi.concat(byType.asyncapi), radius: 145 }, - { nodes: byType.endpoint, radius: 175 }, - { nodes: byType.doc.concat(byType.readme), radius: 210 }, - { nodes: byType.lib, radius: 245 }, - { nodes: byType.app, radius: 275 }, - { nodes: byType.context.concat(byType['feature-group']), radius: 305 }, - { nodes: byType.domain, radius: 335 }, - { nodes: byType.concept, radius: 365 }, - { nodes: byType.other, radius: 400 } + { nodes: byType.state, radius: 75 }, + { nodes: sourceRing, radius: 105 }, + { nodes: byType.email, radius: 125 }, + { nodes: byType['webhook-event'], radius: 145 }, + { nodes: byType.diagram, radius: 165 }, + { nodes: byType.openapi.concat(byType.asyncapi), radius: 185 }, + { nodes: byType.endpoint, radius: 215 }, + { nodes: byType.doc.concat(byType.readme), radius: 250 }, + { nodes: byType.lib, radius: 285 }, + { nodes: byType.tool, radius: 300 }, + { nodes: byType.package, radius: 320 }, + { nodes: byType.patch, radius: 335 }, + { nodes: byType.app, radius: 350 }, + { nodes: byType.context.concat(byType['feature-group']), radius: 380 }, + { nodes: byType.domain, radius: 410 }, + { nodes: byType.concept, radius: 440 }, + { nodes: byType.other, radius: 475 } ]; rings.forEach(function (ring) { @@ -812,7 +1040,7 @@ const GRAPH_HTML = ` }); if (!hubs.length) { simNodes.forEach(function (n) { - if (n.type === 'app' || n.type === 'lib') { + if (n.type === 'app' || n.type === 'lib' || n.type === 'tool') { hubs.push(n); hubSet.add(n.id); } @@ -1083,7 +1311,7 @@ const GRAPH_HTML = ` var attrs = node.attrs || {}; var rows = []; var tags = []; - if (node.type === 'app' || node.type === 'lib') { + if (node.type === 'app' || node.type === 'lib' || node.type === 'tool') { if (attrs.root) rows.push(['root', attrs.root]); if (attrs.type) rows.push(['kind', attrs.type]); if (attrs.domain) rows.push(['domain', attrs.domain]); @@ -1093,13 +1321,31 @@ const GRAPH_HTML = ` if (Array.isArray(attrs.targets) && attrs.targets.length) { rows.push(['targets', attrs.targets.slice(0, 8).join(', ')]); } + } else if (node.type === 'package') { + if (attrs.name) rows.push(['name', attrs.name]); + if (attrs.version) rows.push(['version', attrs.version]); + } else if (node.type === 'patch') { + if (attrs.path) rows.push(['path', attrs.path]); + if (attrs.packageName) rows.push(['package', attrs.packageName]); + if (attrs.packageVersion) rows.push(['patched version', attrs.packageVersion]); } else if (node.type === 'domain' || node.type === 'context' || node.type === 'feature-group') { if (attrs.name) rows.push(['name', attrs.name]); if (attrs.label) rows.push(['label', attrs.label]); if (attrs.kind) rows.push(['kind', attrs.kind]); if (attrs.source) rows.push(['source', attrs.source]); } else if ( - node.type === 'file' || + node.type === 'controller' || + node.type === 'gateway' || + node.type === 'job' || + node.type === 'service' || + node.type === 'repository' || + node.type === 'entity' || + node.type === 'dto' || + node.type === 'guard' || + node.type === 'module' || + node.type === 'state' || + node.type === 'provider' || + node.type === 'email' || node.type === 'doc' || node.type === 'readme' || node.type === 'openapi' || @@ -1109,6 +1355,15 @@ const GRAPH_HTML = ` if (attrs.path) rows.push(['path', attrs.path]); if (attrs.languageOrKind) rows.push(['kind', attrs.languageOrKind]); if (attrs.projectName) rows.push(['project', attrs.projectName]); + if (attrs.sliceName) rows.push(['slice', attrs.sliceName]); + if (attrs.templateName) rows.push(['template', attrs.templateName]); + if (Array.isArray(attrs.memberFiles) && attrs.memberFiles.length) { + rows.push(['members', attrs.memberFiles.join(', ')]); + } + } else if (node.type === 'webhook-event') { + if (attrs.eventName) rows.push(['event', attrs.eventName]); + if (attrs.projectName) rows.push(['project', attrs.projectName]); + if (attrs.catalogPath) rows.push(['catalog', attrs.catalogPath]); } else if (node.type === 'endpoint') { if (attrs.specKind) rows.push(['spec', attrs.specKind]); if (attrs.method) rows.push(['method', attrs.method]); @@ -1385,12 +1640,70 @@ const GRAPH_HTML = ` }); function onFilterChange() { + updateTypeFilterSummary(); rebuildSimulation(); } + function updateTypeFilterSummary() { + var inputs = document.querySelectorAll('#typeToggles input[data-type]'); + var checked = 0; + inputs.forEach(function (el) { if (el.checked) checked += 1; }); + var summary = document.getElementById('typeFilterSummary'); + if (!summary) return; + if (checked === 0) summary.textContent = 'none'; + else if (checked === inputs.length) summary.textContent = 'all'; + else summary.textContent = checked + '/' + inputs.length; + } + + function setTypeFilterOpen(open) { + var root = document.getElementById('typeFilter'); + var btn = document.getElementById('typeFilterBtn'); + if (!root || !btn) return; + root.classList.toggle('open', open); + btn.setAttribute('aria-expanded', open ? 'true' : 'false'); + if (open) { + var search = document.getElementById('typeFilterSearch'); + if (search) { + search.focus(); + search.select(); + } + } + } + + function filterTypeOptions() { + var q = (document.getElementById('typeFilterSearch').value || '').trim().toLowerCase(); + var visible = 0; + document.querySelectorAll('#typeToggles label').forEach(function (label) { + var input = label.querySelector('input[data-type]'); + var type = input ? input.getAttribute('data-type') || '' : ''; + var match = !q || type.toLowerCase().indexOf(q) !== -1; + label.classList.toggle('hidden', !match); + if (match) visible += 1; + }); + document.getElementById('typeFilterEmpty').classList.toggle('visible', visible === 0); + } + document.querySelectorAll('#typeToggles input[data-type]').forEach(function (el) { el.addEventListener('change', onFilterChange); }); + updateTypeFilterSummary(); + + document.getElementById('typeFilterBtn').addEventListener('click', function (ev) { + ev.stopPropagation(); + var root = document.getElementById('typeFilter'); + setTypeFilterOpen(!root.classList.contains('open')); + }); + document.getElementById('typeFilterPanel').addEventListener('click', function (ev) { + ev.stopPropagation(); + }); + document.getElementById('typeFilterSearch').addEventListener('input', filterTypeOptions); + document.addEventListener('click', function () { + setTypeFilterOpen(false); + }); + document.addEventListener('keydown', function (ev) { + if (ev.key === 'Escape') setTypeFilterOpen(false); + }); + document.getElementById('showLabels').addEventListener('change', function () { requestDraw(); });