aui-agent-builder 0.4.0-alpha.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -2
- package/README.md +608 -114
- package/dist/api-client/apollo-client.d.ts +427 -0
- package/dist/api-client/apollo-client.d.ts.map +1 -0
- package/dist/api-client/apollo-client.js +347 -0
- package/dist/api-client/apollo-client.js.map +1 -0
- package/dist/api-client/index.d.ts +541 -21
- package/dist/api-client/index.d.ts.map +1 -1
- package/dist/api-client/index.js +956 -50
- package/dist/api-client/index.js.map +1 -1
- package/dist/api-client/kb-view-client.d.ts +94 -19
- package/dist/api-client/kb-view-client.d.ts.map +1 -1
- package/dist/api-client/kb-view-client.js +332 -35
- package/dist/api-client/kb-view-client.js.map +1 -1
- package/dist/api-client/rag-client.d.ts +28 -60
- package/dist/api-client/rag-client.d.ts.map +1 -1
- package/dist/api-client/rag-client.js +46 -42
- package/dist/api-client/rag-client.js.map +1 -1
- package/dist/commands/account.d.ts +11 -4
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +76 -59
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/agents.d.ts +66 -2
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +706 -92
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/apollo.d.ts +185 -0
- package/dist/commands/apollo.d.ts.map +1 -0
- package/dist/commands/apollo.js +682 -0
- package/dist/commands/apollo.js.map +1 -0
- package/dist/commands/env.js +1 -1
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/import-agent.d.ts +31 -0
- package/dist/commands/import-agent.d.ts.map +1 -1
- package/dist/commands/import-agent.js +1068 -283
- package/dist/commands/import-agent.js.map +1 -1
- package/dist/commands/index.d.ts +3 -3
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -3
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +403 -94
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/integration-mcp-test.d.ts +68 -0
- package/dist/commands/integration-mcp-test.d.ts.map +1 -0
- package/dist/commands/integration-mcp-test.js +885 -0
- package/dist/commands/integration-mcp-test.js.map +1 -0
- package/dist/commands/integration-mcp-url.d.ts +40 -0
- package/dist/commands/integration-mcp-url.d.ts.map +1 -0
- package/dist/commands/integration-mcp-url.js +162 -0
- package/dist/commands/integration-mcp-url.js.map +1 -0
- package/dist/commands/integration-test.d.ts +108 -0
- package/dist/commands/integration-test.d.ts.map +1 -0
- package/dist/commands/integration-test.js +251 -0
- package/dist/commands/integration-test.js.map +1 -0
- package/dist/commands/integration-toolkits.d.ts +35 -0
- package/dist/commands/integration-toolkits.d.ts.map +1 -0
- package/dist/commands/integration-toolkits.js +101 -0
- package/dist/commands/integration-toolkits.js.map +1 -0
- package/dist/commands/integration-tools.d.ts +34 -0
- package/dist/commands/integration-tools.d.ts.map +1 -0
- package/dist/commands/integration-tools.js +108 -0
- package/dist/commands/integration-tools.js.map +1 -0
- package/dist/commands/integration.d.ts +83 -9
- package/dist/commands/integration.d.ts.map +1 -1
- package/dist/commands/integration.js +700 -252
- package/dist/commands/integration.js.map +1 -1
- package/dist/commands/legacy/push-records-mode.d.ts +166 -0
- package/dist/commands/legacy/push-records-mode.d.ts.map +1 -0
- package/dist/commands/legacy/push-records-mode.js +2621 -0
- package/dist/commands/legacy/push-records-mode.js.map +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +34 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/pull-agent.d.ts +10 -0
- package/dist/commands/pull-agent.d.ts.map +1 -1
- package/dist/commands/pull-agent.js +713 -178
- package/dist/commands/pull-agent.js.map +1 -1
- package/dist/commands/push.d.ts +91 -6
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +1514 -1144
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/rag.d.ts +1 -0
- package/dist/commands/rag.d.ts.map +1 -1
- package/dist/commands/rag.js +92 -36
- package/dist/commands/rag.js.map +1 -1
- package/dist/commands/report.d.ts +138 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +205 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +1 -4
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/sync-session.d.ts +13 -0
- package/dist/commands/sync-session.d.ts.map +1 -0
- package/dist/commands/sync-session.js +56 -0
- package/dist/commands/sync-session.js.map +1 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +1 -1
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/util/agent-mode.d.ts +69 -0
- package/dist/commands/util/agent-mode.d.ts.map +1 -0
- package/dist/commands/util/agent-mode.js +159 -0
- package/dist/commands/util/agent-mode.js.map +1 -0
- package/dist/commands/util/agent-resolve.d.ts +102 -0
- package/dist/commands/util/agent-resolve.d.ts.map +1 -0
- package/dist/commands/util/agent-resolve.js +148 -0
- package/dist/commands/util/agent-resolve.js.map +1 -0
- package/dist/commands/util/apollo-agent.d.ts +70 -0
- package/dist/commands/util/apollo-agent.d.ts.map +1 -0
- package/dist/commands/util/apollo-agent.js +100 -0
- package/dist/commands/util/apollo-agent.js.map +1 -0
- package/dist/commands/validate.d.ts +129 -9
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +666 -804
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/version-snapshot.d.ts +21 -0
- package/dist/commands/version-snapshot.d.ts.map +1 -0
- package/dist/commands/version-snapshot.js +948 -0
- package/dist/commands/version-snapshot.js.map +1 -0
- package/dist/commands/version.d.ts +15 -2
- package/dist/commands/version.d.ts.map +1 -1
- package/dist/commands/version.js +439 -206
- package/dist/commands/version.js.map +1 -1
- package/dist/config/index.d.ts +96 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +97 -59
- package/dist/config/index.js.map +1 -1
- package/dist/errors/index.d.ts +1 -12
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +90 -8
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1066 -174
- package/dist/index.js.map +1 -1
- package/dist/services/account.service.js +1 -1
- package/dist/services/account.service.js.map +1 -1
- package/dist/services/agents.service.d.ts.map +1 -1
- package/dist/services/agents.service.js +11 -5
- package/dist/services/agents.service.js.map +1 -1
- package/dist/services/auth.service.d.ts +78 -0
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +290 -16
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/integration.service.d.ts +374 -22
- package/dist/services/integration.service.d.ts.map +1 -1
- package/dist/services/integration.service.js +643 -95
- package/dist/services/integration.service.js.map +1 -1
- package/dist/services/kb-view.service.d.ts +17 -30
- package/dist/services/kb-view.service.d.ts.map +1 -1
- package/dist/services/kb-view.service.js +191 -118
- package/dist/services/kb-view.service.js.map +1 -1
- package/dist/services/list-agents.service.d.ts +10 -0
- package/dist/services/list-agents.service.d.ts.map +1 -1
- package/dist/services/list-agents.service.js +16 -21
- package/dist/services/list-agents.service.js.map +1 -1
- package/dist/services/pull-schema.service.d.ts +20 -1
- package/dist/services/pull-schema.service.d.ts.map +1 -1
- package/dist/services/pull-schema.service.js +313 -121
- package/dist/services/pull-schema.service.js.map +1 -1
- package/dist/services/rag.service.d.ts +21 -8
- package/dist/services/rag.service.d.ts.map +1 -1
- package/dist/services/rag.service.js +43 -16
- package/dist/services/rag.service.js.map +1 -1
- package/dist/services/status.service.d.ts +8 -0
- package/dist/services/status.service.d.ts.map +1 -1
- package/dist/services/status.service.js +16 -1
- package/dist/services/status.service.js.map +1 -1
- package/dist/services/sync-session.service.d.ts +38 -0
- package/dist/services/sync-session.service.d.ts.map +1 -0
- package/dist/services/sync-session.service.js +93 -0
- package/dist/services/sync-session.service.js.map +1 -0
- package/dist/telemetry.d.ts +169 -2
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +878 -4
- package/dist/telemetry.js.map +1 -1
- package/dist/types/entity.d.ts +21 -0
- package/dist/types/entity.d.ts.map +1 -1
- package/dist/ui/components/Banner.js +1 -1
- package/dist/ui/components/Banner.js.map +1 -1
- package/dist/ui/components/EnvironmentBadge.d.ts +8 -0
- package/dist/ui/components/EnvironmentBadge.d.ts.map +1 -0
- package/dist/ui/components/EnvironmentBadge.js +11 -0
- package/dist/ui/components/EnvironmentBadge.js.map +1 -0
- package/dist/ui/components/index.d.ts +1 -0
- package/dist/ui/components/index.d.ts.map +1 -1
- package/dist/ui/components/index.js +1 -0
- package/dist/ui/components/index.js.map +1 -1
- package/dist/ui/theme.d.ts +13 -0
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +12 -0
- package/dist/ui/theme.js.map +1 -1
- package/dist/ui/views/AccountView.js +1 -1
- package/dist/ui/views/AccountView.js.map +1 -1
- package/dist/ui/views/EnvView.d.ts.map +1 -1
- package/dist/ui/views/EnvView.js +2 -2
- package/dist/ui/views/EnvView.js.map +1 -1
- package/dist/ui/views/ImportAgentView.d.ts +15 -0
- package/dist/ui/views/ImportAgentView.d.ts.map +1 -1
- package/dist/ui/views/ImportAgentView.js +8 -3
- package/dist/ui/views/ImportAgentView.js.map +1 -1
- package/dist/ui/views/IntegrationView.d.ts +3 -1
- package/dist/ui/views/IntegrationView.d.ts.map +1 -1
- package/dist/ui/views/IntegrationView.js +2 -2
- package/dist/ui/views/IntegrationView.js.map +1 -1
- package/dist/ui/views/LoginView.d.ts +2 -1
- package/dist/ui/views/LoginView.d.ts.map +1 -1
- package/dist/ui/views/LoginView.js +20 -14
- package/dist/ui/views/LoginView.js.map +1 -1
- package/dist/ui/views/PushView.d.ts +3 -1
- package/dist/ui/views/PushView.d.ts.map +1 -1
- package/dist/ui/views/PushView.js +8 -2
- package/dist/ui/views/PushView.js.map +1 -1
- package/dist/ui/views/RagView.d.ts +6 -1
- package/dist/ui/views/RagView.d.ts.map +1 -1
- package/dist/ui/views/RagView.js +23 -0
- package/dist/ui/views/RagView.js.map +1 -1
- package/dist/ui/views/StatusView.js +4 -4
- package/dist/ui/views/StatusView.js.map +1 -1
- package/dist/ui/views/SyncSessionView.d.ts +7 -0
- package/dist/ui/views/SyncSessionView.d.ts.map +1 -0
- package/dist/ui/views/SyncSessionView.js +10 -0
- package/dist/ui/views/SyncSessionView.js.map +1 -0
- package/dist/utils/agent-injection.d.ts +49 -0
- package/dist/utils/agent-injection.d.ts.map +1 -0
- package/dist/utils/agent-injection.js +83 -0
- package/dist/utils/agent-injection.js.map +1 -0
- package/dist/utils/fetch-with-timeout.d.ts +57 -0
- package/dist/utils/fetch-with-timeout.d.ts.map +1 -0
- package/dist/utils/fetch-with-timeout.js +125 -0
- package/dist/utils/fetch-with-timeout.js.map +1 -0
- package/dist/utils/help-json.d.ts +44 -0
- package/dist/utils/help-json.d.ts.map +1 -0
- package/dist/utils/help-json.js +62 -0
- package/dist/utils/help-json.js.map +1 -0
- package/dist/utils/index.d.ts +82 -18
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +387 -80
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/json-output.d.ts +10 -0
- package/dist/utils/json-output.d.ts.map +1 -1
- package/dist/utils/json-output.js +14 -0
- package/dist/utils/json-output.js.map +1 -1
- package/dist/utils/payload-store.d.ts +40 -0
- package/dist/utils/payload-store.d.ts.map +1 -0
- package/dist/utils/payload-store.js +82 -0
- package/dist/utils/payload-store.js.map +1 -0
- package/dist/utils/request-capture.d.ts +26 -0
- package/dist/utils/request-capture.d.ts.map +1 -1
- package/dist/utils/request-capture.js +67 -0
- package/dist/utils/request-capture.js.map +1 -1
- package/dist/utils/select-prompt.d.ts +32 -0
- package/dist/utils/select-prompt.d.ts.map +1 -0
- package/dist/utils/select-prompt.js +71 -0
- package/dist/utils/select-prompt.js.map +1 -0
- package/dist/utils/update-notifier.d.ts.map +1 -1
- package/dist/utils/update-notifier.js +30 -3
- package/dist/utils/update-notifier.js.map +1 -1
- package/dist/web/assets/{index-DSg2xrPw.js → index-n4de71HW.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +10 -6
- package/dist/commands/add-integration.d.ts +0 -20
- package/dist/commands/add-integration.d.ts.map +0 -1
- package/dist/commands/add-integration.js +0 -385
- package/dist/commands/add-integration.js.map +0 -1
- package/dist/commands/add-tool.d.ts +0 -17
- package/dist/commands/add-tool.d.ts.map +0 -1
- package/dist/commands/add-tool.js +0 -225
- package/dist/commands/add-tool.js.map +0 -1
- package/dist/commands/chat.d.ts +0 -20
- package/dist/commands/chat.d.ts.map +0 -1
- package/dist/commands/chat.js +0 -545
- package/dist/commands/chat.js.map +0 -1
- package/dist/commands/create-agent.d.ts +0 -17
- package/dist/commands/create-agent.d.ts.map +0 -1
- package/dist/commands/create-agent.js +0 -18
- package/dist/commands/create-agent.js.map +0 -1
- package/dist/commands/lsp.d.ts +0 -13
- package/dist/commands/lsp.d.ts.map +0 -1
- package/dist/commands/lsp.js +0 -17
- package/dist/commands/lsp.js.map +0 -1
- package/dist/commands/widget.d.ts +0 -18
- package/dist/commands/widget.d.ts.map +0 -1
- package/dist/commands/widget.js +0 -153
- package/dist/commands/widget.js.map +0 -1
- package/dist/lsp/cross-refs.d.ts +0 -53
- package/dist/lsp/cross-refs.d.ts.map +0 -1
- package/dist/lsp/cross-refs.js +0 -330
- package/dist/lsp/cross-refs.js.map +0 -1
- package/dist/lsp/cross-refs.test.d.ts +0 -2
- package/dist/lsp/cross-refs.test.d.ts.map +0 -1
- package/dist/lsp/cross-refs.test.js +0 -130
- package/dist/lsp/cross-refs.test.js.map +0 -1
- package/dist/lsp/schemas.d.ts +0 -57
- package/dist/lsp/schemas.d.ts.map +0 -1
- package/dist/lsp/schemas.js +0 -126
- package/dist/lsp/schemas.js.map +0 -1
- package/dist/lsp/schemas.test.d.ts +0 -2
- package/dist/lsp/schemas.test.d.ts.map +0 -1
- package/dist/lsp/schemas.test.js +0 -74
- package/dist/lsp/schemas.test.js.map +0 -1
- package/dist/lsp/server.d.ts +0 -11
- package/dist/lsp/server.d.ts.map +0 -1
- package/dist/lsp/server.js +0 -205
- package/dist/lsp/server.js.map +0 -1
- package/dist/ui/views/ChatView.d.ts +0 -26
- package/dist/ui/views/ChatView.d.ts.map +0 -1
- package/dist/ui/views/ChatView.js +0 -96
- package/dist/ui/views/ChatView.js.map +0 -1
- package/dist/ui/views/__tests__/StatusView.test.d.ts +0 -2
- package/dist/ui/views/__tests__/StatusView.test.d.ts.map +0 -1
- package/dist/ui/views/__tests__/StatusView.test.js +0 -158
- package/dist/ui/views/__tests__/StatusView.test.js.map +0 -1
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apollo API client — runtime messaging orchestration (tasks, messages,
|
|
3
|
+
* rerun, trace).
|
|
4
|
+
*
|
|
5
|
+
* Wraps four Apollo endpoints behind the AUI gateway:
|
|
6
|
+
*
|
|
7
|
+
* POST /apollo-api/v1/messaging/tasks → createTask
|
|
8
|
+
* POST /apollo-api/v1/messaging/messages[?include_trace=] → sendMessage
|
|
9
|
+
* POST /apollo-api/v1/messaging/messages/rerun → rerunMessage
|
|
10
|
+
* GET /apollo-api/v1/messaging/tasks/{task_id}/trace-info → getTaskTraceInfo
|
|
11
|
+
*
|
|
12
|
+
* ─── Authentication ─────────────────────────────────────────────────────
|
|
13
|
+
*
|
|
14
|
+
* Apollo itself is `x-api-key`-only (compared constant-time against its
|
|
15
|
+
* service key) and trusts `x-aui-*` claims injected by the gateway. The
|
|
16
|
+
* CLI never holds that service key — it talks to the GATEWAY, which:
|
|
17
|
+
* 1. validates the CLI's user/session token,
|
|
18
|
+
* 2. strips `Authorization`,
|
|
19
|
+
* 3. forwards `x-api-key` + gateway-enriched `x-aui-organization-id` /
|
|
20
|
+
* `x-aui-user-id` to Apollo.
|
|
21
|
+
*
|
|
22
|
+
* So from the CLI we send the same session auth the agent-settings /
|
|
23
|
+
* agent-management routes use — `Authorization: Bearer <token>` + org
|
|
24
|
+
* headers — which the gateway validates and translates. (The outer-bridge
|
|
25
|
+
* `x-access-token` header does NOT work here: the gateway returns
|
|
26
|
+
* `{"decision":"deny","reason":"missing_credentials"}`.) We additionally
|
|
27
|
+
* forward the org id in the new `x-aui-organization-id`
|
|
28
|
+
* (and legacy `X-Organization-ID`) shapes, and the acting user in
|
|
29
|
+
* `x-aui-user-id` for the rerun route — harmless if the gateway
|
|
30
|
+
* overrides them with its own trusted claims, and correct if a given
|
|
31
|
+
* deployment passes them through.
|
|
32
|
+
*
|
|
33
|
+
* ─── Telemetry ──────────────────────────────────────────────────────────
|
|
34
|
+
*
|
|
35
|
+
* Every call captures the request (for `aui curl`) and attaches a
|
|
36
|
+
* redacted, replayable curl + HTTP status/body/duration onto the active
|
|
37
|
+
* OTel span — the same pattern the agent-settings client uses
|
|
38
|
+
* (`attachHttpCurlTelemetry`). Purely additive; never throws from the
|
|
39
|
+
* telemetry path.
|
|
40
|
+
*/
|
|
41
|
+
import fetch, { FetchTimeoutError } from "../utils/fetch-with-timeout.js";
|
|
42
|
+
import { randomUUID } from "node:crypto";
|
|
43
|
+
import { getApolloBaseUrl, AUI_CLIENT, } from "../config/index.js";
|
|
44
|
+
import { captureRequest, formatAsCurlSafe } from "../utils/request-capture.js";
|
|
45
|
+
import { trace } from "@opentelemetry/api";
|
|
46
|
+
import { AUIAPIError } from "./index.js";
|
|
47
|
+
/**
|
|
48
|
+
* Thin HTTP client for the Apollo runtime messaging endpoints. Stateless
|
|
49
|
+
* apart from the auth/scope it was constructed with.
|
|
50
|
+
*/
|
|
51
|
+
export class ApolloClient {
|
|
52
|
+
authToken;
|
|
53
|
+
organizationId;
|
|
54
|
+
accountId;
|
|
55
|
+
userId;
|
|
56
|
+
environment;
|
|
57
|
+
constructor(options) {
|
|
58
|
+
this.authToken = options.authToken;
|
|
59
|
+
this.organizationId = options.organizationId || "";
|
|
60
|
+
this.accountId = options.accountId || "";
|
|
61
|
+
this.userId = options.userId || "";
|
|
62
|
+
this.environment = options.environment;
|
|
63
|
+
}
|
|
64
|
+
baseUrl() {
|
|
65
|
+
return getApolloBaseUrl(this.environment).replace(/\/+$/, "");
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build the gateway auth + scope headers. `extra` lets per-route
|
|
69
|
+
* callers add headers like `x-aui-user-id` (rerun only).
|
|
70
|
+
*/
|
|
71
|
+
headers(extra) {
|
|
72
|
+
const h = {
|
|
73
|
+
accept: "application/json, text/plain, */*",
|
|
74
|
+
"content-type": "application/json",
|
|
75
|
+
// The gateway in front of Apollo authenticates on the standard
|
|
76
|
+
// `Authorization: Bearer <token>` header (same as the
|
|
77
|
+
// agent-settings / agent-management routes) — NOT the outer-bridge
|
|
78
|
+
// `x-access-token` convention. It validates the token, strips
|
|
79
|
+
// Authorization, and forwards Apollo's `x-api-key` + `x-aui-*`
|
|
80
|
+
// claims. Sending `x-access-token` instead yields a gateway 401
|
|
81
|
+
// `{"decision":"deny","reason":"missing_credentials"}`.
|
|
82
|
+
Authorization: `Bearer ${this.authToken}`,
|
|
83
|
+
"account-id": this.accountId,
|
|
84
|
+
"organization-id": this.organizationId,
|
|
85
|
+
// New gateway-trusted org claim shape + legacy fallback. Sending
|
|
86
|
+
// both is safe: the gateway overrides with its own trusted claim
|
|
87
|
+
// when it injects one, and passes ours through otherwise.
|
|
88
|
+
"x-aui-organization-id": this.organizationId,
|
|
89
|
+
"X-Organization-ID": this.organizationId,
|
|
90
|
+
"x-aui-client": AUI_CLIENT,
|
|
91
|
+
"x-aui-environment": this.environment,
|
|
92
|
+
"x-aui-origin": "stores",
|
|
93
|
+
// Marks the caller for billing/task_origin without opting into the
|
|
94
|
+
// gateway network-scope path (which is keyed on the literal "pk").
|
|
95
|
+
"x-aui-source": "cli",
|
|
96
|
+
"x-trace-id": randomUUID(),
|
|
97
|
+
};
|
|
98
|
+
return { ...h, ...(extra ?? {}) };
|
|
99
|
+
}
|
|
100
|
+
// ─── Endpoints ───
|
|
101
|
+
/**
|
|
102
|
+
* `POST /v1/management/agents` — bundle-mode agent provisioning.
|
|
103
|
+
*
|
|
104
|
+
* With `bundle_mode: true` the server runs the full create flow
|
|
105
|
+
* (network → agent → version-from-template → publish → activate) in a
|
|
106
|
+
* single call; the CLI must NOT also fire those steps. See
|
|
107
|
+
* `ApolloCreateAgentRequest` for the orchestration contract.
|
|
108
|
+
*/
|
|
109
|
+
async createAgent(body) {
|
|
110
|
+
return this.request({
|
|
111
|
+
name: "apollo_create_agent",
|
|
112
|
+
label: "apollo create agent",
|
|
113
|
+
method: "POST",
|
|
114
|
+
path: "/v1/management/agents",
|
|
115
|
+
body,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* `POST /v1/integrations/test` — live-call an integration endpoint and
|
|
120
|
+
* return the raw response plus what the `response_parser` would extract.
|
|
121
|
+
*
|
|
122
|
+
* Thin pass-through: the body is forwarded as-is and the response is
|
|
123
|
+
* returned verbatim (the CLI does not reshape `test_data` /
|
|
124
|
+
* `parsed_test_response`). The full request/response is captured for
|
|
125
|
+
* `aui curl` and attached to the active span like every other call.
|
|
126
|
+
*/
|
|
127
|
+
async testIntegration(body) {
|
|
128
|
+
return this.request({
|
|
129
|
+
name: "apollo_test_integration",
|
|
130
|
+
label: "apollo test integration",
|
|
131
|
+
method: "POST",
|
|
132
|
+
path: "/v1/integrations/test",
|
|
133
|
+
body,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/** `POST /v1/integrations/mcp/test` — execute an MCP tool and return the response. */
|
|
137
|
+
async testMCPIntegration(body) {
|
|
138
|
+
return this.request({
|
|
139
|
+
name: "apollo_test_mcp_integration",
|
|
140
|
+
label: "apollo test MCP integration",
|
|
141
|
+
method: "POST",
|
|
142
|
+
path: "/v1/integrations/mcp/test",
|
|
143
|
+
body,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* `POST /v1/integrations/mcp/list` — discover callable tools on a DIRECT
|
|
148
|
+
* MCP server.
|
|
149
|
+
*
|
|
150
|
+
* Apollo proxies to IA's internal `POST /api/v1/integrations/mcp/discovery`
|
|
151
|
+
* endpoint, mapping `transporter_type` and returning normalised
|
|
152
|
+
* `input_schema` (snake_case) instead of IA's raw `inputSchema`.
|
|
153
|
+
*/
|
|
154
|
+
async listMCPTools(body) {
|
|
155
|
+
return this.request({
|
|
156
|
+
name: "apollo_list_mcp_tools",
|
|
157
|
+
label: "apollo list MCP tools",
|
|
158
|
+
method: "POST",
|
|
159
|
+
path: "/v1/integrations/mcp/list",
|
|
160
|
+
body,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/** `POST /v1/messaging/tasks` — create a task for an agent. */
|
|
164
|
+
async createTask(body) {
|
|
165
|
+
return this.request({
|
|
166
|
+
name: "apollo_create_task",
|
|
167
|
+
label: "apollo create task",
|
|
168
|
+
method: "POST",
|
|
169
|
+
path: "/v1/messaging/tasks",
|
|
170
|
+
body,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/** `POST /v1/messaging/messages` — submit a user message, get the reply. */
|
|
174
|
+
async sendMessage(body, options = {}) {
|
|
175
|
+
const query = options.includeTrace ? "?include_trace=true" : "";
|
|
176
|
+
return this.request({
|
|
177
|
+
name: "apollo_send_message",
|
|
178
|
+
label: "apollo send message",
|
|
179
|
+
method: "POST",
|
|
180
|
+
path: `/v1/messaging/messages${query}`,
|
|
181
|
+
body: { type: "message", ...body },
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/** `POST /v1/messaging/messages/rerun` — regenerate a task + replay. */
|
|
185
|
+
async rerunMessage(body, options = {}) {
|
|
186
|
+
// The acting user is gateway-enriched via `x-aui-user-id` (never the
|
|
187
|
+
// body) — see RerunMessageRequest docs in the openapi spec.
|
|
188
|
+
const extra = this.userId ? { "x-aui-user-id": this.userId } : undefined;
|
|
189
|
+
// `include_trace` mirrors the send-message contract: when true, the
|
|
190
|
+
// runtime makes the extra IA call and returns `trace_info` on the
|
|
191
|
+
// replayed message.
|
|
192
|
+
const query = options.includeTrace ? "?include_trace=true" : "";
|
|
193
|
+
return this.request({
|
|
194
|
+
name: "apollo_rerun_message",
|
|
195
|
+
label: "apollo rerun message",
|
|
196
|
+
method: "POST",
|
|
197
|
+
path: `/v1/messaging/messages/rerun${query}`,
|
|
198
|
+
body,
|
|
199
|
+
extraHeaders: extra,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
/** `GET /v1/messaging/tasks/{task_id}/trace-info` — all interaction traces. */
|
|
203
|
+
async getTaskTraceInfo(taskId) {
|
|
204
|
+
return this.request({
|
|
205
|
+
name: "apollo_get_task_trace_info",
|
|
206
|
+
label: "apollo get task trace-info",
|
|
207
|
+
method: "GET",
|
|
208
|
+
path: `/v1/messaging/tasks/${encodeURIComponent(taskId)}/trace-info`,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* `GET /v1/messaging/tasks/{task_id}/interactions/{interaction_id}/trace-info`
|
|
213
|
+
* — the trace for a single interaction (object, not a list).
|
|
214
|
+
*/
|
|
215
|
+
async getInteractionTraceInfo(taskId, interactionId) {
|
|
216
|
+
return this.request({
|
|
217
|
+
name: "apollo_get_interaction_trace_info",
|
|
218
|
+
label: "apollo get interaction trace-info",
|
|
219
|
+
method: "GET",
|
|
220
|
+
path: `/v1/messaging/tasks/${encodeURIComponent(taskId)}/interactions/${encodeURIComponent(interactionId)}/trace-info`,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
// ─── Core request + telemetry ───
|
|
224
|
+
async request(input) {
|
|
225
|
+
const url = `${this.baseUrl()}${input.path}`;
|
|
226
|
+
const headers = this.headers(input.extraHeaders);
|
|
227
|
+
const init = { method: input.method, headers };
|
|
228
|
+
if (input.body !== undefined)
|
|
229
|
+
init.body = JSON.stringify(input.body);
|
|
230
|
+
const startedAt = Date.now();
|
|
231
|
+
let response;
|
|
232
|
+
try {
|
|
233
|
+
response = await fetch(url, init);
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
// Attach the failed attempt to the span + capture buffer before
|
|
237
|
+
// re-throwing so `aui curl --failed` and Logfire both show it.
|
|
238
|
+
const networkErr = error instanceof FetchTimeoutError
|
|
239
|
+
? error
|
|
240
|
+
: new Error(`Network error: ${error instanceof Error ? error.message : "Connection failed"}`);
|
|
241
|
+
this.attachTelemetry({
|
|
242
|
+
name: input.name,
|
|
243
|
+
label: input.label,
|
|
244
|
+
method: input.method,
|
|
245
|
+
url,
|
|
246
|
+
headers,
|
|
247
|
+
requestBody: input.body,
|
|
248
|
+
responseText: networkErr.message,
|
|
249
|
+
status: 0,
|
|
250
|
+
success: false,
|
|
251
|
+
durationMs: Date.now() - startedAt,
|
|
252
|
+
});
|
|
253
|
+
throw networkErr;
|
|
254
|
+
}
|
|
255
|
+
const responseText = await response.text().catch(() => "");
|
|
256
|
+
this.attachTelemetry({
|
|
257
|
+
name: input.name,
|
|
258
|
+
label: input.label,
|
|
259
|
+
method: input.method,
|
|
260
|
+
url,
|
|
261
|
+
headers,
|
|
262
|
+
requestBody: input.body,
|
|
263
|
+
responseText,
|
|
264
|
+
status: response.status,
|
|
265
|
+
success: response.ok,
|
|
266
|
+
durationMs: Date.now() - startedAt,
|
|
267
|
+
});
|
|
268
|
+
if (!response.ok) {
|
|
269
|
+
let errorBody;
|
|
270
|
+
try {
|
|
271
|
+
errorBody = JSON.parse(responseText);
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
errorBody = responseText || null;
|
|
275
|
+
}
|
|
276
|
+
throw new AUIAPIError(response.status, `${input.label}: ${response.statusText}`, errorBody);
|
|
277
|
+
}
|
|
278
|
+
if (!responseText)
|
|
279
|
+
return {};
|
|
280
|
+
try {
|
|
281
|
+
return JSON.parse(responseText);
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
return responseText;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Capture the request for `aui curl` and attach a redacted curl repro
|
|
289
|
+
* + HTTP fields onto the active span. Best-effort; never throws.
|
|
290
|
+
*/
|
|
291
|
+
attachTelemetry(input) {
|
|
292
|
+
captureRequest({
|
|
293
|
+
timestamp: new Date().toISOString(),
|
|
294
|
+
method: input.method,
|
|
295
|
+
url: input.url,
|
|
296
|
+
headers: input.headers,
|
|
297
|
+
body: input.requestBody,
|
|
298
|
+
status: input.status,
|
|
299
|
+
responseBody: input.responseText,
|
|
300
|
+
label: input.label,
|
|
301
|
+
success: input.success,
|
|
302
|
+
});
|
|
303
|
+
try {
|
|
304
|
+
const span = trace.getActiveSpan();
|
|
305
|
+
if (!span)
|
|
306
|
+
return;
|
|
307
|
+
const MAX = 32 * 1024;
|
|
308
|
+
const truncatedResponse = input.responseText.length > MAX
|
|
309
|
+
? input.responseText.slice(0, MAX) +
|
|
310
|
+
`... [truncated ${input.responseText.length - MAX} bytes]`
|
|
311
|
+
: input.responseText;
|
|
312
|
+
const curl = formatAsCurlSafe({
|
|
313
|
+
timestamp: new Date().toISOString(),
|
|
314
|
+
method: input.method,
|
|
315
|
+
url: input.url,
|
|
316
|
+
headers: input.headers,
|
|
317
|
+
body: input.requestBody,
|
|
318
|
+
status: input.status,
|
|
319
|
+
responseBody: input.responseText,
|
|
320
|
+
label: input.label,
|
|
321
|
+
success: input.success,
|
|
322
|
+
}, { maxBodyBytes: MAX });
|
|
323
|
+
const eventAttrs = {
|
|
324
|
+
"http.method": input.method,
|
|
325
|
+
"http.url": input.url,
|
|
326
|
+
[`${input.name}.success`]: input.success,
|
|
327
|
+
[`${input.name}.duration_ms`]: input.durationMs,
|
|
328
|
+
[`${input.name}.response_body`]: truncatedResponse,
|
|
329
|
+
"aui.curl_repro": curl,
|
|
330
|
+
};
|
|
331
|
+
if (input.status > 0)
|
|
332
|
+
eventAttrs["http.status_code"] = input.status;
|
|
333
|
+
span.addEvent(`http.${input.name}`, eventAttrs);
|
|
334
|
+
// Mirror onto the span itself for the dedicated per-command span.
|
|
335
|
+
span.setAttribute("aui.curl_repro", curl);
|
|
336
|
+
span.setAttribute("http.method", input.method);
|
|
337
|
+
span.setAttribute("http.url", input.url);
|
|
338
|
+
span.setAttribute("http.response_body", truncatedResponse);
|
|
339
|
+
if (input.status > 0)
|
|
340
|
+
span.setAttribute("http.status_code", input.status);
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
// Telemetry must never break the call path.
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
//# sourceMappingURL=apollo-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apollo-client.js","sourceRoot":"","sources":["../../src/api-client/apollo-client.ts"],"names":[],"mappings":"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"}
|