@codemieai/code 0.15.6 → 0.15.7
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/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +3 -0
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +4 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +15 -0
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/types.d.ts +10 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/core/types.js +5 -1
- package/dist/agents/core/types.js.map +1 -1
- package/dist/agents/plugins/claude/claude.models.d.ts +1 -1
- package/dist/agents/plugins/claude/claude.models.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.models.js +7 -3
- package/dist/agents/plugins/claude/claude.models.js.map +1 -1
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.d.ts +3 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.d.ts.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.js +3 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.js.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.d.ts +11 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.js +65 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.js.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.d.ts +63 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.d.ts.map +1 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.js +13 -0
- package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.js.map +1 -0
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +6 -4
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/codex/codex-models.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex-models.js +9 -6
- package/dist/agents/plugins/codex/codex-models.js.map +1 -1
- package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codex/codex.plugin.js +2 -1
- package/dist/agents/plugins/codex/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts +3 -2
- package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js +14 -6
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.js +6 -4
- package/dist/agents/plugins/opencode/opencode.plugin.js.map +1 -1
- package/dist/agents/plugins/utils.d.ts +11 -0
- package/dist/agents/plugins/utils.d.ts.map +1 -0
- package/dist/agents/plugins/utils.js +46 -0
- package/dist/agents/plugins/utils.js.map +1 -0
- package/dist/agents/registry.d.ts +3 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +12 -0
- package/dist/agents/registry.js.map +1 -1
- package/dist/bin/proxy-daemon.js +4 -0
- package/dist/bin/proxy-daemon.js.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/selection.d.ts +3 -1
- package/dist/cli/commands/assistants/setup/configuration/selection.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/selection.js +6 -3
- package/dist/cli/commands/assistants/setup/configuration/selection.js.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/types.d.ts +2 -0
- package/dist/cli/commands/assistants/setup/configuration/types.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/ui.js +3 -0
- package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -1
- package/dist/cli/commands/assistants/setup/data.d.ts +6 -2
- package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/data.js +23 -8
- package/dist/cli/commands/assistants/setup/data.js.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.d.ts +1 -0
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.js +11 -0
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/index.js +24 -6
- package/dist/cli/commands/assistants/setup/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts +2 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.js +5 -3
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +2 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +3 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -1
- package/dist/cli/commands/hook.d.ts.map +1 -1
- package/dist/cli/commands/hook.js +24 -29
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/proxy/connect-orchestrator.d.ts +8 -1
- package/dist/cli/commands/proxy/connect-orchestrator.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connect-orchestrator.js +65 -4
- package/dist/cli/commands/proxy/connect-orchestrator.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.d.ts +33 -0
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.d.ts.map +1 -0
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.js +299 -0
- package/dist/cli/commands/proxy/connectors/claude-code-otlp.js.map +1 -0
- package/dist/cli/commands/proxy/connectors/managed-mcp-remote.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/managed-mcp-remote.js +5 -6
- package/dist/cli/commands/proxy/connectors/managed-mcp-remote.js.map +1 -1
- package/dist/cli/commands/proxy/disconnect-orchestrator.d.ts +2 -0
- package/dist/cli/commands/proxy/disconnect-orchestrator.d.ts.map +1 -1
- package/dist/cli/commands/proxy/disconnect-orchestrator.js +34 -5
- package/dist/cli/commands/proxy/disconnect-orchestrator.js.map +1 -1
- package/dist/cli/commands/proxy/index.d.ts.map +1 -1
- package/dist/cli/commands/proxy/index.js +19 -2
- package/dist/cli/commands/proxy/index.js.map +1 -1
- package/dist/cli/commands/self-update.d.ts.map +1 -1
- package/dist/cli/commands/self-update.js +5 -1
- package/dist/cli/commands/self-update.js.map +1 -1
- package/dist/cli/commands/shared/constants.d.ts +3 -0
- package/dist/cli/commands/shared/constants.d.ts.map +1 -1
- package/dist/cli/commands/shared/constants.js +3 -0
- package/dist/cli/commands/shared/constants.js.map +1 -1
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts +3 -1
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -1
- package/dist/cli/commands/shared/prompts/storage-scope.js +5 -1
- package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -1
- package/dist/cli/commands/skills/setup/data.d.ts +5 -1
- package/dist/cli/commands/skills/setup/data.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/data.js +17 -8
- package/dist/cli/commands/skills/setup/data.js.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.d.ts +1 -0
- package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.js +11 -0
- package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
- package/dist/cli/commands/skills/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/index.js +7 -2
- package/dist/cli/commands/skills/setup/index.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/mcp/stdio-http-bridge.d.ts.map +1 -1
- package/dist/mcp/stdio-http-bridge.js +4 -0
- package/dist/mcp/stdio-http-bridge.js.map +1 -1
- package/dist/providers/core/base/http-client.d.ts.map +1 -1
- package/dist/providers/core/base/http-client.js +16 -3
- package/dist/providers/core/base/http-client.js.map +1 -1
- package/dist/providers/core/codemie-auth-helpers.d.ts.map +1 -1
- package/dist/providers/core/codemie-auth-helpers.js +2 -1
- package/dist/providers/core/codemie-auth-helpers.js.map +1 -1
- package/dist/providers/core/types.d.ts +3 -0
- package/dist/providers/core/types.d.ts.map +1 -1
- package/dist/providers/core/types.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +2 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.d.ts +3 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.js +19 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.d.ts +19 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.js +33 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.d.ts +14 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.js +287 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.d.ts +8 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.js +29 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.d.ts +40 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.js +82 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.d.ts +36 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.js +62 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.d.ts +39 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.js +110 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.d.ts +24 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.js +53 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.d.ts +39 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.js +61 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.d.ts +20 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.js +73 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.d.ts +12 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.js +55 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.d.ts +14 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.js +221 -0
- package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -4
- package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-http-client.js +10 -207
- package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +2 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
- package/dist/providers/plugins/sso/sso.auth-gate.d.ts +18 -0
- package/dist/providers/plugins/sso/sso.auth-gate.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.auth-gate.js +48 -0
- package/dist/providers/plugins/sso/sso.auth-gate.js.map +1 -0
- package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.auth.js +14 -4
- package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.d.ts +12 -0
- package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js +33 -5
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +4 -0
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/cli-updater.d.ts +7 -0
- package/dist/utils/cli-updater.d.ts.map +1 -1
- package/dist/utils/cli-updater.js +21 -0
- package/dist/utils/cli-updater.js.map +1 -1
- package/dist/utils/paths.d.ts +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/processes.d.ts.map +1 -1
- package/dist/utils/processes.js +3 -2
- package/dist/utils/processes.js.map +1 -1
- package/dist/utils/project-root.d.ts +10 -0
- package/dist/utils/project-root.d.ts.map +1 -0
- package/dist/utils/project-root.js +25 -0
- package/dist/utils/project-root.js.map +1 -0
- package/dist/utils/sdk-client.d.ts.map +1 -1
- package/dist/utils/sdk-client.js +4 -0
- package/dist/utils/sdk-client.js.map +1 -1
- package/dist/utils/system-proxy-dispatcher.d.ts +8 -0
- package/dist/utils/system-proxy-dispatcher.d.ts.map +1 -0
- package/dist/utils/system-proxy-dispatcher.js +100 -0
- package/dist/utils/system-proxy-dispatcher.js.map +1 -0
- package/dist/utils/system-proxy.d.ts +115 -0
- package/dist/utils/system-proxy.d.ts.map +1 -0
- package/dist/utils/system-proxy.js +899 -0
- package/dist/utils/system-proxy.js.map +1 -0
- package/dist/utils/windows-path.d.ts +5 -0
- package/dist/utils/windows-path.d.ts.map +1 -1
- package/dist/utils/windows-path.js +1 -1
- package/dist/utils/windows-path.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { unlink } from 'node:fs/promises';
|
|
2
|
+
import { logger } from '../../../../../../utils/logger.js';
|
|
3
|
+
import { sanitizeLogArgs } from '../../../../../../utils/security.js';
|
|
4
|
+
import { SPOOL_STREAMS, listSessionIds, statusFile, streamFile, } from './spool-paths.js';
|
|
5
|
+
import { withSessionLock } from './session-lock.js';
|
|
6
|
+
import { createStatus, readStatus } from './session-status.js';
|
|
7
|
+
import { isSessionDrained, lastActivityMs, readSpoolState } from './spool-state.js';
|
|
8
|
+
import { abandonedSessionGraceMs, endedSessionGraceMs } from './spool-config.js';
|
|
9
|
+
/**
|
|
10
|
+
* Lightweight garbage collection for the OTLP spool.
|
|
11
|
+
*
|
|
12
|
+
* Two cleanup paths, both of which require every stream to be drained
|
|
13
|
+
* (`fileSize === cursor`) so no undelivered bytes are ever destroyed:
|
|
14
|
+
*
|
|
15
|
+
* 1. Normally ended sessions (`endedAt` set): deleted once the end grace period
|
|
16
|
+
* has elapsed since the later of `endedAt` and the last spool-file write, so
|
|
17
|
+
* late hook/OTEL writes postpone cleanup.
|
|
18
|
+
* 2. Abandoned sessions (no `endedAt`): deleted once the abandonment timeout has
|
|
19
|
+
* elapsed since the last spool-file write. Activity is read from spool-file
|
|
20
|
+
* mtimes, never from the status file, because cursor updates rewrite the
|
|
21
|
+
* status file without any new data arriving.
|
|
22
|
+
*
|
|
23
|
+
* Consequence: a live session that stays quiet (and fully drained) for longer
|
|
24
|
+
* than the abandonment timeout may have its spool removed. That is safe — the
|
|
25
|
+
* next producer write recreates the status and spool files from scratch.
|
|
26
|
+
*/
|
|
27
|
+
export async function sweepSpool() {
|
|
28
|
+
for (const sessionId of await listSessionIds()) {
|
|
29
|
+
try {
|
|
30
|
+
await sweepSession(sessionId);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
34
|
+
logger.debug('[otlp-sweep] per-session error', ...sanitizeLogArgs({ sessionId, err: msg }));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function sweepSession(sessionId) {
|
|
39
|
+
// Cheap unlocked pre-scan to keep the sweep off the hot path...
|
|
40
|
+
if (!(await isDeletable(sessionId)))
|
|
41
|
+
return;
|
|
42
|
+
await withSessionLock(sessionId, async () => {
|
|
43
|
+
// ...then re-read status, sizes and mtimes under the lock before deleting.
|
|
44
|
+
if (!(await isDeletable(sessionId)))
|
|
45
|
+
return;
|
|
46
|
+
await deleteSession(sessionId);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
async function isDeletable(sessionId) {
|
|
50
|
+
const status = (await readStatus(sessionId)) ?? createStatus();
|
|
51
|
+
const spool = await readSpoolState(sessionId, status);
|
|
52
|
+
if (!isSessionDrained(spool))
|
|
53
|
+
return false;
|
|
54
|
+
const activityMs = await lastActivityMs(spool);
|
|
55
|
+
if (activityMs === null)
|
|
56
|
+
return false; // nothing on disk to clean up
|
|
57
|
+
const idleSince = status.endedAt !== undefined ? Math.max(status.endedAt, activityMs) : activityMs;
|
|
58
|
+
const timeoutMs = status.endedAt !== undefined ? endedSessionGraceMs() : abandonedSessionGraceMs();
|
|
59
|
+
return Date.now() - idleSince >= timeoutMs;
|
|
60
|
+
}
|
|
61
|
+
async function deleteSession(sessionId) {
|
|
62
|
+
const paths = [...SPOOL_STREAMS.map((s) => streamFile(sessionId, s)), statusFile(sessionId)];
|
|
63
|
+
for (const path of paths) {
|
|
64
|
+
try {
|
|
65
|
+
await unlink(path);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// File may already be gone
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
logger.debug('[otlp-sweep] swept session', ...sanitizeLogArgs({ sessionId }));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=sweep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sweep.js","sourceRoot":"","sources":["../../../../../../../src/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SSOCredentials, JWTCredentials } from '../../../../../core/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Process one tick for a single session: evaluate the completeness gate and,
|
|
4
|
+
* when it permits forwarding, dispatch a forward pass for the streams that
|
|
5
|
+
* actually have bytes after their cursor.
|
|
6
|
+
*
|
|
7
|
+
* A session stays gate-eligible for as long as its spool files are non-empty,
|
|
8
|
+
* so the pending-data check is what keeps a fully drained tick from issuing
|
|
9
|
+
* any HTTP requests.
|
|
10
|
+
*/
|
|
11
|
+
export declare function processSessionTick(sessionId: string, credentials: SSOCredentials | JWTCredentials): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=tick-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-processor.d.ts","sourceRoot":"","sources":["../../../../../../../src/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAUnF;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,cAAc,GAAG,cAAc,GAC3C,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { logger } from '../../../../../../utils/logger.js';
|
|
2
|
+
import { sanitizeLogArgs } from '../../../../../../utils/security.js';
|
|
3
|
+
import { withSessionLock } from './session-lock.js';
|
|
4
|
+
import { readStatus, writeStatus } from './session-status.js';
|
|
5
|
+
import { hasPendingData, readSpoolState } from './spool-state.js';
|
|
6
|
+
import { gateDecision } from './completeness-gate.js';
|
|
7
|
+
import { forwardSession } from './forwarder.js';
|
|
8
|
+
import { areCredentialsStale } from './auth-state.js';
|
|
9
|
+
const currentlyForwarding = new Set();
|
|
10
|
+
/**
|
|
11
|
+
* Process one tick for a single session: evaluate the completeness gate and,
|
|
12
|
+
* when it permits forwarding, dispatch a forward pass for the streams that
|
|
13
|
+
* actually have bytes after their cursor.
|
|
14
|
+
*
|
|
15
|
+
* A session stays gate-eligible for as long as its spool files are non-empty,
|
|
16
|
+
* so the pending-data check is what keeps a fully drained tick from issuing
|
|
17
|
+
* any HTTP requests.
|
|
18
|
+
*/
|
|
19
|
+
export async function processSessionTick(sessionId, credentials) {
|
|
20
|
+
let shouldForward = false;
|
|
21
|
+
let hooksOnly = false;
|
|
22
|
+
await withSessionLock(sessionId, async () => {
|
|
23
|
+
const status = await readStatus(sessionId);
|
|
24
|
+
if (!status) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (areCredentialsStale()) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const spool = await readSpoolState(sessionId, status);
|
|
31
|
+
const decision = gateDecision(spool, status);
|
|
32
|
+
const pending = hasPendingData(spool);
|
|
33
|
+
logger.debug('[otlp-tick] gate decision', ...sanitizeLogArgs({ sessionId, decision, pending, waitTicks: status.waitTicks }));
|
|
34
|
+
if (decision === 'send' || decision === 'hooks-only-force') {
|
|
35
|
+
shouldForward = pending;
|
|
36
|
+
hooksOnly = decision === 'hooks-only-force';
|
|
37
|
+
}
|
|
38
|
+
else if (decision === 'wait') {
|
|
39
|
+
status.waitTicks += 1;
|
|
40
|
+
await writeStatus(sessionId, status);
|
|
41
|
+
}
|
|
42
|
+
// 'noop': nothing written yet
|
|
43
|
+
});
|
|
44
|
+
if (!shouldForward || currentlyForwarding.has(sessionId)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
currentlyForwarding.add(sessionId);
|
|
48
|
+
try {
|
|
49
|
+
await forwardSession(sessionId, hooksOnly, credentials);
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
currentlyForwarding.delete(sessionId);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tick-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-processor.js","sourceRoot":"","sources":["../../../../../../../src/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,WAA4C;IAE5C,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,eAAe,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAI,mBAAmB,EAAE,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,CAAC,KAAK,CACV,2BAA2B,EAC3B,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAClF,CAAC;QAEF,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YAC3D,aAAa,GAAG,OAAO,CAAC;YACxB,SAAS,GAAG,QAAQ,KAAK,kBAAkB,CAAC;QAC9C,CAAC;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;YACtB,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,8BAA8B;IAChC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;YAAS,CAAC;QACT,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ProxyPlugin, PluginContext, ProxyInterceptor } from './types.js';
|
|
2
|
+
export interface OtlpHookSpoolData {
|
|
3
|
+
agentName: string;
|
|
4
|
+
raw: string;
|
|
5
|
+
timestamp: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class OtlpPlugin implements ProxyPlugin {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
version: string;
|
|
11
|
+
priority: number;
|
|
12
|
+
createInterceptor(context: PluginContext): ProxyInterceptor;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=otlp.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otlp.plugin.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/otlp.plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAuB/E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AA2OD,qBAAa,UAAW,YAAW,WAAW;IAC5C,EAAE,SAAmB;IACrB,IAAI,SAAoB;IACxB,OAAO,SAAW;IAClB,QAAQ,SAAM;IAEd,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;CAK5D"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { appendFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { logger } from '../../../../../utils/logger.js';
|
|
3
|
+
import { sanitizeLogArgs } from '../../../../../utils/security.js';
|
|
4
|
+
import { listSessionIds, spoolRoot } from './otlp-spool/spool-paths.js';
|
|
5
|
+
import { sweepSpool } from './otlp-spool/sweep.js';
|
|
6
|
+
import { processSessionTick } from './otlp-spool/tick-processor.js';
|
|
7
|
+
import { appendSpool } from './otlp-spool/spool-io.js';
|
|
8
|
+
import { sendIntervalMs, sweepIntervalMs } from './otlp-spool/spool-config.js';
|
|
9
|
+
/**
|
|
10
|
+
* Upper bound on the best-effort flush during proxy shutdown.
|
|
11
|
+
*
|
|
12
|
+
* Deliberately well below FORWARD_TIMEOUT_MS (10s) so a hung backend can never
|
|
13
|
+
* be the reason a proxy stop is slow. Cutting the flush short loses nothing:
|
|
14
|
+
* cursors are only advanced on success, so anything undelivered stays spooled
|
|
15
|
+
* and is sent by the next proxy start.
|
|
16
|
+
*/
|
|
17
|
+
const SHUTDOWN_FLUSH_TIMEOUT_MS = 5_000;
|
|
18
|
+
const UUID_V4_RE = /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i;
|
|
19
|
+
function sendError(res, status, type, message) {
|
|
20
|
+
res.statusCode = status;
|
|
21
|
+
res.setHeader('Content-Type', 'application/json');
|
|
22
|
+
res.end(JSON.stringify({ type: 'error', error: { type, message } }));
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
class OtlpInterceptor {
|
|
26
|
+
credentials;
|
|
27
|
+
name = 'otlp-ingest';
|
|
28
|
+
tickHandle;
|
|
29
|
+
sweepHandle;
|
|
30
|
+
ticking = false;
|
|
31
|
+
stopped = false;
|
|
32
|
+
constructor(credentials) {
|
|
33
|
+
this.credentials = credentials;
|
|
34
|
+
}
|
|
35
|
+
async onProxyStart() {
|
|
36
|
+
// Recovery pass for anything a previous process left on disk (crash, or a
|
|
37
|
+
// stale-credential window that this restart just ended). Intentionally not
|
|
38
|
+
// awaited: the backlog may be large and proxy start must not block on network I/O.
|
|
39
|
+
void this.runTick('startup');
|
|
40
|
+
this.tickHandle = setInterval(() => void this.runTick('tick'), sendIntervalMs());
|
|
41
|
+
this.sweepHandle = setInterval(() => void this.runSweep(), sweepIntervalMs());
|
|
42
|
+
}
|
|
43
|
+
async onProxyStop() {
|
|
44
|
+
this.stopped = true;
|
|
45
|
+
if (this.tickHandle) {
|
|
46
|
+
clearInterval(this.tickHandle);
|
|
47
|
+
}
|
|
48
|
+
if (this.sweepHandle) {
|
|
49
|
+
clearInterval(this.sweepHandle);
|
|
50
|
+
}
|
|
51
|
+
this.tickHandle = undefined;
|
|
52
|
+
this.sweepHandle = undefined;
|
|
53
|
+
// Bounded final flush: better delivery latency, but shutdown must never hang.
|
|
54
|
+
await Promise.race([
|
|
55
|
+
this.tick().catch(() => undefined),
|
|
56
|
+
new Promise((resolve) => setTimeout(resolve, SHUTDOWN_FLUSH_TIMEOUT_MS)),
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
/** Serialize ticks: a slow backlog drain must not stack up concurrent passes. */
|
|
60
|
+
async runTick(label) {
|
|
61
|
+
if (this.stopped || this.ticking) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.ticking = true;
|
|
65
|
+
try {
|
|
66
|
+
await this.tick();
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
70
|
+
logger.debug(`[otlp-ingest] ${label} error`, ...sanitizeLogArgs({ err: msg }));
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
this.ticking = false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async runSweep() {
|
|
77
|
+
if (this.stopped) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
await sweepSpool();
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
85
|
+
logger.debug('[otlp-ingest] sweep error', ...sanitizeLogArgs({ err: msg }));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async tick() {
|
|
89
|
+
const creds = this.credentials;
|
|
90
|
+
if (!creds) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const sessionIds = await listSessionIds();
|
|
94
|
+
// Different sessions are independent (per-session locking happens inside
|
|
95
|
+
// processSessionTick), so they are processed concurrently.
|
|
96
|
+
await Promise.all(sessionIds.map((sessionId) => processSessionTick(sessionId, creds).catch((err) => {
|
|
97
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
98
|
+
logger.debug('[otlp-ingest] session tick error', ...sanitizeLogArgs({ sessionId, err: msg }));
|
|
99
|
+
})));
|
|
100
|
+
}
|
|
101
|
+
async handleRequest(ctx, _req, res, _httpClient) {
|
|
102
|
+
const { method, url } = ctx;
|
|
103
|
+
// Route: POST /v1/analytics/hooks
|
|
104
|
+
if (method === 'POST' && url === '/v1/analytics/hooks') {
|
|
105
|
+
return this.handleHooks(ctx, res);
|
|
106
|
+
}
|
|
107
|
+
// Route: POST /v1/analytics/otlp/logs|metrics|traces
|
|
108
|
+
if (method === 'POST' && url === '/v1/analytics/otlp/v1/logs') {
|
|
109
|
+
return this.handleOtlp(ctx, res, 'logs');
|
|
110
|
+
}
|
|
111
|
+
if (method === 'POST' && url === '/v1/analytics/otlp/v1/metrics') {
|
|
112
|
+
return this.handleOtlp(ctx, res, 'metrics');
|
|
113
|
+
}
|
|
114
|
+
if (method === 'POST' && url === '/v1/analytics/otlp/v1/traces') {
|
|
115
|
+
return this.handleOtlp(ctx, res, 'traces');
|
|
116
|
+
}
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
async handleHooks(ctx, res) {
|
|
120
|
+
if (!ctx.metadata.gatewayKeyValidated) {
|
|
121
|
+
logger.warn('[otlp-ingest] Rejected hooks request: gateway key not validated');
|
|
122
|
+
return sendError(res, 401, 'authentication_error', 'Unauthorized');
|
|
123
|
+
}
|
|
124
|
+
if (!ctx.requestBody) {
|
|
125
|
+
return sendError(res, 400, 'invalid_request_error', 'Empty body');
|
|
126
|
+
}
|
|
127
|
+
const rawOtlpHookSpoolData = ctx.requestBody.toString('utf-8');
|
|
128
|
+
let otlpHookSpoolData;
|
|
129
|
+
try {
|
|
130
|
+
otlpHookSpoolData = JSON.parse(rawOtlpHookSpoolData);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return sendError(res, 400, 'invalid_request_error', 'Invalid JSON');
|
|
134
|
+
}
|
|
135
|
+
// Validate agentName - dynamic import avoids circular dependency
|
|
136
|
+
try {
|
|
137
|
+
const { AgentRegistry } = await import('../../../../../agents/registry.js');
|
|
138
|
+
if (!AgentRegistry.getAnalyticsAgent(otlpHookSpoolData.agentName)) {
|
|
139
|
+
return sendError(res, 400, 'invalid_request_error', 'Unrecognized agentName');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return sendError(res, 400, 'invalid_request_error', 'Agent validation failed');
|
|
144
|
+
}
|
|
145
|
+
// Extract session_id from raw hook JSON
|
|
146
|
+
let sessionId = '';
|
|
147
|
+
try {
|
|
148
|
+
const hookEvent = JSON.parse(otlpHookSpoolData.raw);
|
|
149
|
+
sessionId = String(hookEvent['session_id'] ?? '');
|
|
150
|
+
}
|
|
151
|
+
catch { /* ignore */ }
|
|
152
|
+
if (!sessionId) {
|
|
153
|
+
// No session id — log and accept without spooling
|
|
154
|
+
logger.debug('[otlp-ingest] hooks: no session_id in raw, discarding');
|
|
155
|
+
res.statusCode = 202;
|
|
156
|
+
res.setHeader('Content-Type', 'application/json');
|
|
157
|
+
res.end(JSON.stringify({ accepted: true }));
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
const line = rawOtlpHookSpoolData + '\n';
|
|
161
|
+
try {
|
|
162
|
+
await appendSpool(sessionId, 'hooks', line);
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
166
|
+
logger.warn('[otlp-ingest] hooks disk write error', ...sanitizeLogArgs({ sessionId, err: msg }));
|
|
167
|
+
// Still respond 202 — data loss is logged but we don't block the hook
|
|
168
|
+
}
|
|
169
|
+
res.statusCode = 202;
|
|
170
|
+
res.setHeader('Content-Type', 'application/json');
|
|
171
|
+
res.end(JSON.stringify({ accepted: true }));
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
async handleOtlp(ctx, res, signal) {
|
|
175
|
+
if (!ctx.metadata.gatewayKeyValidated) {
|
|
176
|
+
logger.warn(`[otlp-ingest] Rejected ${signal} request: gateway key not validated`);
|
|
177
|
+
return sendError(res, 401, 'authentication_error', 'Unauthorized');
|
|
178
|
+
}
|
|
179
|
+
if (!ctx.requestBody) {
|
|
180
|
+
res.statusCode = 200;
|
|
181
|
+
res.end();
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
const bytes = ctx.requestBody;
|
|
185
|
+
// Extract session ID via UUID v4 regex on latin1-decoded bytes
|
|
186
|
+
const latin1Str = Buffer.from(bytes).toString('latin1');
|
|
187
|
+
const match = UUID_V4_RE.exec(latin1Str);
|
|
188
|
+
const sessionId = match ? match[0] : '';
|
|
189
|
+
if (!sessionId) {
|
|
190
|
+
// Append to _unresolved.alert for debugging
|
|
191
|
+
try {
|
|
192
|
+
await mkdir(spoolRoot(), { recursive: true });
|
|
193
|
+
await appendFile(`${spoolRoot()}/_unresolved.alert`, bytes);
|
|
194
|
+
}
|
|
195
|
+
catch { /* best-effort */ }
|
|
196
|
+
res.statusCode = 200;
|
|
197
|
+
res.end();
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
try {
|
|
201
|
+
await appendSpool(sessionId, signal, bytes);
|
|
202
|
+
}
|
|
203
|
+
catch (err) {
|
|
204
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
205
|
+
logger.warn(`[otlp-ingest] ${signal} disk write error`, ...sanitizeLogArgs({ sessionId, err: msg }));
|
|
206
|
+
}
|
|
207
|
+
res.statusCode = 200;
|
|
208
|
+
res.end();
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
export class OtlpPlugin {
|
|
213
|
+
id = '@codemie/otlp';
|
|
214
|
+
name = 'OTLP Ingestion';
|
|
215
|
+
version = '1.0.0';
|
|
216
|
+
priority = 10;
|
|
217
|
+
createInterceptor(context) {
|
|
218
|
+
return new OtlpInterceptor(context.syncCredentials || context.credentials);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=otlp.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otlp.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/otlp.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* KISS: Does one thing well - forwards HTTP requests with streaming.
|
|
5
5
|
* Memory efficient: Returns streams directly, no buffering.
|
|
6
|
-
* Proxy support:
|
|
6
|
+
* Proxy support: Uses the shared environment/Windows/PAC resolver per request.
|
|
7
7
|
*/
|
|
8
8
|
import http from 'http';
|
|
9
9
|
export interface HTTPClientOptions {
|
|
@@ -21,11 +21,8 @@ export interface ForwardRequestOptions {
|
|
|
21
21
|
export declare class ProxyHTTPClient {
|
|
22
22
|
private directHttpsAgent;
|
|
23
23
|
private directHttpAgent;
|
|
24
|
-
private proxyHttpsAgent;
|
|
25
|
-
private proxyHttpAgent;
|
|
26
24
|
private timeout;
|
|
27
25
|
private rejectUnauthorized;
|
|
28
|
-
private noProxyRules;
|
|
29
26
|
constructor(options?: HTTPClientOptions);
|
|
30
27
|
private getAgentForUrl;
|
|
31
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-http-client.d.ts","sourceRoot":"","sources":["../../../../../src/providers/plugins/sso/proxy/proxy-http-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy-http-client.d.ts","sourceRoot":"","sources":["../../../../../src/providers/plugins/sso/proxy/proxy-http-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,kBAAkB,CAAU;gBAExB,OAAO,GAAE,iBAAsB;YAqB7B,cAAc;IAS5B;;;OAGG;IACG,OAAO,CACX,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;IA0IhC;;;OAGG;IACG,YAAY,CAChB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAC9B,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,WAAW,GAAE,MAAM,EAAwC,GAC1D,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvE;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|