@mono-agent/agent-app 0.20.14 → 0.21.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/README.md +227 -80
- package/dist/adapter-send-tools.d.ts +3 -2
- package/dist/adapter-send-tools.d.ts.map +1 -1
- package/dist/adapter-send-tools.js +15 -5
- package/dist/adapter-send-tools.js.map +1 -1
- package/dist/app-controller-channels.d.ts +2 -0
- package/dist/app-controller-channels.d.ts.map +1 -1
- package/dist/app-controller-channels.js +10 -1
- package/dist/app-controller-channels.js.map +1 -1
- package/dist/app-controller-maintenance.d.ts +3 -1
- package/dist/app-controller-maintenance.d.ts.map +1 -1
- package/dist/app-controller-maintenance.js +3 -0
- package/dist/app-controller-maintenance.js.map +1 -1
- package/dist/app-controller-responder.d.ts +2 -0
- package/dist/app-controller-responder.d.ts.map +1 -1
- package/dist/app-controller-responder.js +21 -17
- package/dist/app-controller-responder.js.map +1 -1
- package/dist/app-controller-traceability.d.ts.map +1 -1
- package/dist/app-controller-traceability.js +3 -0
- package/dist/app-controller-traceability.js.map +1 -1
- package/dist/app-controller-types.d.ts +1 -0
- package/dist/app-controller-types.d.ts.map +1 -1
- package/dist/app-controller.d.ts +2 -0
- package/dist/app-controller.d.ts.map +1 -1
- package/dist/app-controller.js +3 -0
- package/dist/app-controller.js.map +1 -1
- package/dist/artifact-retention.js +11 -0
- package/dist/artifact-retention.js.map +1 -1
- package/dist/background.d.ts +0 -6
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +5 -58
- package/dist/background.js.map +1 -1
- package/dist/channel-drivers/tui.d.ts +2 -2
- package/dist/channel-drivers/tui.d.ts.map +1 -1
- package/dist/channel-drivers/tui.js +27 -8
- package/dist/channel-drivers/tui.js.map +1 -1
- package/dist/cli-args.d.ts +4 -5
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +20 -19
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-background-command.d.ts.map +1 -1
- package/dist/cli-background-command.js +4 -0
- package/dist/cli-background-command.js.map +1 -1
- package/dist/cli-commands.d.ts.map +1 -1
- package/dist/cli-commands.js +13 -2
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +33 -19
- package/dist/cli-help.js.map +1 -1
- package/dist/cli-init-command.d.ts.map +1 -1
- package/dist/cli-init-command.js +26 -22
- package/dist/cli-init-command.js.map +1 -1
- package/dist/cli-install-skill-command.d.ts.map +1 -1
- package/dist/cli-install-skill-command.js +12 -3
- package/dist/cli-install-skill-command.js.map +1 -1
- package/dist/config-reference.d.ts +1 -0
- package/dist/config-reference.d.ts.map +1 -1
- package/dist/config-reference.js +66 -10
- package/dist/config-reference.js.map +1 -1
- package/dist/configured-agent.d.ts +9 -1
- package/dist/configured-agent.d.ts.map +1 -1
- package/dist/configured-agent.js +95 -29
- package/dist/configured-agent.js.map +1 -1
- package/dist/cron-control-store.d.ts.map +1 -1
- package/dist/cron-control-store.js +4 -2
- package/dist/cron-control-store.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +215 -45
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interaction-bridge.d.ts +3 -3
- package/dist/interaction-bridge.d.ts.map +1 -1
- package/dist/interaction-bridge.js +27 -10
- package/dist/interaction-bridge.js.map +1 -1
- package/dist/launchd.d.ts +2 -0
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +3 -0
- package/dist/launchd.js.map +1 -1
- package/dist/local-tui-session.d.ts +14 -0
- package/dist/local-tui-session.d.ts.map +1 -0
- package/dist/local-tui-session.js +100 -0
- package/dist/local-tui-session.js.map +1 -0
- package/dist/mcp-apps.d.ts.map +1 -1
- package/dist/mcp-apps.js +3 -0
- package/dist/mcp-apps.js.map +1 -1
- package/dist/memory-journal.d.ts +53 -0
- package/dist/memory-journal.d.ts.map +1 -0
- package/dist/memory-journal.js +586 -0
- package/dist/memory-journal.js.map +1 -0
- package/dist/memory-recall.d.ts.map +1 -1
- package/dist/memory-recall.js +16 -2
- package/dist/memory-recall.js.map +1 -1
- package/dist/memory-retrieval.d.ts +9 -0
- package/dist/memory-retrieval.d.ts.map +1 -1
- package/dist/memory-retrieval.js +20 -0
- package/dist/memory-retrieval.js.map +1 -1
- package/dist/modules/base.js +1 -1
- package/dist/modules/base.js.map +1 -1
- package/dist/modules/known-tools.d.ts +1 -1
- package/dist/modules/known-tools.d.ts.map +1 -1
- package/dist/modules/known-tools.js +1 -0
- package/dist/modules/known-tools.js.map +1 -1
- package/dist/monitors-command.js +12 -2
- package/dist/monitors-command.js.map +1 -1
- package/dist/monitors-config.d.ts +4 -1
- package/dist/monitors-config.d.ts.map +1 -1
- package/dist/monitors-config.js +5 -1
- package/dist/monitors-config.js.map +1 -1
- package/dist/monitors-context.d.ts.map +1 -1
- package/dist/monitors-context.js +14 -2
- package/dist/monitors-context.js.map +1 -1
- package/dist/monitors-service.d.ts +2 -2
- package/dist/monitors-service.d.ts.map +1 -1
- package/dist/monitors-service.js +227 -96
- package/dist/monitors-service.js.map +1 -1
- package/dist/monitors-store.d.ts +11 -1
- package/dist/monitors-store.d.ts.map +1 -1
- package/dist/monitors-store.js +36 -6
- package/dist/monitors-store.js.map +1 -1
- package/dist/notify-destinations.d.ts +3 -2
- package/dist/notify-destinations.d.ts.map +1 -1
- package/dist/notify-destinations.js +6 -7
- package/dist/notify-destinations.js.map +1 -1
- package/dist/posted-reply-history.d.ts.map +1 -1
- package/dist/posted-reply-history.js +40 -3
- package/dist/posted-reply-history.js.map +1 -1
- package/dist/proactive-notify.d.ts +20 -1
- package/dist/proactive-notify.d.ts.map +1 -1
- package/dist/proactive-notify.js +56 -3
- package/dist/proactive-notify.js.map +1 -1
- package/dist/process-job-channel-routing.js +2 -1
- package/dist/process-job-channel-routing.js.map +1 -1
- package/dist/process-job-output-tail.d.ts +53 -0
- package/dist/process-job-output-tail.d.ts.map +1 -0
- package/dist/process-job-output-tail.js +257 -0
- package/dist/process-job-output-tail.js.map +1 -0
- package/dist/process-jobs-config.d.ts +1 -1
- package/dist/process-jobs-config.js +1 -1
- package/dist/process-jobs-config.js.map +1 -1
- package/dist/process-jobs-context.d.ts +3 -1
- package/dist/process-jobs-context.d.ts.map +1 -1
- package/dist/process-jobs-context.js +44 -11
- package/dist/process-jobs-context.js.map +1 -1
- package/dist/process-jobs-runtime.d.ts.map +1 -1
- package/dist/process-jobs-runtime.js +14 -0
- package/dist/process-jobs-runtime.js.map +1 -1
- package/dist/process-jobs-service.d.ts.map +1 -1
- package/dist/process-jobs-service.js +115 -23
- package/dist/process-jobs-service.js.map +1 -1
- package/dist/process-jobs-store.d.ts +3 -1
- package/dist/process-jobs-store.d.ts.map +1 -1
- package/dist/process-jobs-store.js +4 -1
- package/dist/process-jobs-store.js.map +1 -1
- package/dist/process-output-redaction.d.ts +26 -1
- package/dist/process-output-redaction.d.ts.map +1 -1
- package/dist/process-output-redaction.js +164 -2
- package/dist/process-output-redaction.js.map +1 -1
- package/dist/project-skills.d.ts +11 -5
- package/dist/project-skills.d.ts.map +1 -1
- package/dist/project-skills.js +88 -39
- package/dist/project-skills.js.map +1 -1
- package/dist/provider-auth-checks.d.ts +27 -0
- package/dist/provider-auth-checks.d.ts.map +1 -0
- package/dist/provider-auth-checks.js +349 -0
- package/dist/provider-auth-checks.js.map +1 -0
- package/dist/provider-auth-observations.d.ts +22 -0
- package/dist/provider-auth-observations.d.ts.map +1 -0
- package/dist/provider-auth-observations.js +139 -0
- package/dist/provider-auth-observations.js.map +1 -0
- package/dist/provider-auth-operator.d.ts +19 -0
- package/dist/provider-auth-operator.d.ts.map +1 -0
- package/dist/provider-auth-operator.js +560 -0
- package/dist/provider-auth-operator.js.map +1 -0
- package/dist/provider-auth-status.d.ts +20 -0
- package/dist/provider-auth-status.d.ts.map +1 -0
- package/dist/provider-auth-status.js +235 -0
- package/dist/provider-auth-status.js.map +1 -0
- package/dist/provider-model-catalog.d.ts +17 -0
- package/dist/provider-model-catalog.d.ts.map +1 -1
- package/dist/provider-model-catalog.js +113 -2
- package/dist/provider-model-catalog.js.map +1 -1
- package/dist/provider-setup.d.ts +22 -0
- package/dist/provider-setup.d.ts.map +1 -1
- package/dist/provider-setup.js +101 -15
- package/dist/provider-setup.js.map +1 -1
- package/dist/reply-artifacts.d.ts +3 -1
- package/dist/reply-artifacts.d.ts.map +1 -1
- package/dist/reply-artifacts.js +45 -10
- package/dist/reply-artifacts.js.map +1 -1
- package/dist/request-model-override.d.ts +11 -2
- package/dist/request-model-override.d.ts.map +1 -1
- package/dist/request-model-override.js +51 -1
- package/dist/request-model-override.js.map +1 -1
- package/dist/request-scoped-mcp.d.ts +3 -0
- package/dist/request-scoped-mcp.d.ts.map +1 -1
- package/dist/request-scoped-mcp.js +1 -1
- package/dist/request-scoped-mcp.js.map +1 -1
- package/dist/run-history.d.ts.map +1 -1
- package/dist/run-history.js +56 -13
- package/dist/run-history.js.map +1 -1
- package/dist/seen-conversations.d.ts +4 -3
- package/dist/seen-conversations.d.ts.map +1 -1
- package/dist/seen-conversations.js +6 -5
- package/dist/seen-conversations.js.map +1 -1
- package/dist/session-history.d.ts +14 -0
- package/dist/session-history.d.ts.map +1 -1
- package/dist/session-history.js +120 -5
- package/dist/session-history.js.map +1 -1
- package/dist/systemd-command.d.ts +8 -0
- package/dist/systemd-command.d.ts.map +1 -0
- package/dist/systemd-command.js +206 -0
- package/dist/systemd-command.js.map +1 -0
- package/dist/systemd.d.ts +51 -0
- package/dist/systemd.d.ts.map +1 -0
- package/dist/systemd.js +299 -0
- package/dist/systemd.js.map +1 -0
- package/dist/tool-output-artifacts.d.ts +4 -0
- package/dist/tool-output-artifacts.d.ts.map +1 -0
- package/dist/tool-output-artifacts.js +17 -0
- package/dist/tool-output-artifacts.js.map +1 -0
- package/dist/tui-command.d.ts +0 -45
- package/dist/tui-command.d.ts.map +1 -1
- package/dist/tui-command.js +27 -264
- package/dist/tui-command.js.map +1 -1
- package/dist/untrusted-text.js +2 -2
- package/dist/web-command.d.ts +3 -0
- package/dist/web-command.d.ts.map +1 -1
- package/dist/web-command.js +112 -7
- package/dist/web-command.js.map +1 -1
- package/dist/web-request-coordinator.d.ts +19 -0
- package/dist/web-request-coordinator.d.ts.map +1 -0
- package/dist/web-request-coordinator.js +242 -0
- package/dist/web-request-coordinator.js.map +1 -0
- package/dist/wizard/prompts.d.ts.map +1 -1
- package/dist/wizard/prompts.js +1 -0
- package/dist/wizard/prompts.js.map +1 -1
- package/dist/wizard/run.js +1 -1
- package/dist/wizard/run.js.map +1 -1
- package/package.json +18 -18
- package/schema/mono-agent.config.schema.json +120 -8
- package/skills/mono-agent-composer/SKILL.md +4 -4
- package/skills/mono-agent-composer/references/config-blueprint.md +18 -7
- package/skills/mono-agent-composer/references/discovery-questions.md +10 -5
- package/skills/mono-agent-composer/references/feature-coverage.md +30 -14
- package/skills/mono-agent-composer/references/package-map.md +6 -3
- package/skills/mono-agent-composer/references/playbooks.md +20 -5
- package/skills/mono-agent-composer/references/validation.md +4 -3
- package/dist/configuration-proposal-main.d.ts +0 -3
- package/dist/configuration-proposal-main.d.ts.map +0 -1
- package/dist/configuration-proposal-main.js +0 -13
- package/dist/configuration-proposal-main.js.map +0 -1
- package/dist/configuration-proposal-tool.d.ts +0 -33
- package/dist/configuration-proposal-tool.d.ts.map +0 -1
- package/dist/configuration-proposal-tool.js +0 -180
- package/dist/configuration-proposal-tool.js.map +0 -1
- package/dist/local-configuration.d.ts +0 -99
- package/dist/local-configuration.d.ts.map +0 -1
- package/dist/local-configuration.js +0 -1302
- package/dist/local-configuration.js.map +0 -1
|
@@ -0,0 +1,560 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { MAX_PROVIDER_AUTH_OPTIONS, MAX_PROVIDER_AUTH_INPUT_BYTES, MAX_PROVIDER_AUTH_STRING_BYTES, MAX_PROVIDER_AUTH_TEXT_INPUT_BYTES, PROVIDER_AUTH_SESSION_SCHEMA, ProviderAuthOperationError, } from "@mono-agent/agent-contracts";
|
|
3
|
+
import { loginPiProviderAuth } from "@mono-agent/agent-runtime/ai";
|
|
4
|
+
import { persistPiProviderCredential } from "./provider-setup.js";
|
|
5
|
+
import { createProviderAuthCheckManager, } from "./provider-auth-checks.js";
|
|
6
|
+
import { providerAuthStatusSnapshot } from "./provider-auth-status.js";
|
|
7
|
+
const SESSION_TTL_MS = 20 * 60 * 1_000;
|
|
8
|
+
const TERMINAL_RETENTION_MS = 10 * 60 * 1_000;
|
|
9
|
+
const AUTH_REPLACEMENT_DRAIN_MS = 2_000;
|
|
10
|
+
export function createProviderAuthOperator(options) {
|
|
11
|
+
const sessions = new Map();
|
|
12
|
+
const pendingAdmissions = new Map();
|
|
13
|
+
const activePersistences = new Set();
|
|
14
|
+
const now = options.now ?? Date.now;
|
|
15
|
+
let stopping = false;
|
|
16
|
+
let nextSequence = 0;
|
|
17
|
+
let newestValidSequence = 0;
|
|
18
|
+
let currentSession;
|
|
19
|
+
const loginActive = () => pendingAdmissions.size > 0
|
|
20
|
+
|| activePersistences.size > 0
|
|
21
|
+
|| currentSession !== undefined && !isTerminal(currentSession.snapshot.state);
|
|
22
|
+
const statusSnapshot = async () => await (options.statusSnapshot?.() ?? providerAuthStatusSnapshot(options));
|
|
23
|
+
const checks = createProviderAuthCheckManager({
|
|
24
|
+
...options,
|
|
25
|
+
isLoginActive: loginActive,
|
|
26
|
+
...(options.checkExecute === undefined ? {} : { execute: options.checkExecute }),
|
|
27
|
+
...(options.checkProviderTimeoutMs === undefined ? {} : { providerTimeoutMs: options.checkProviderTimeoutMs }),
|
|
28
|
+
...(options.checkBatchTimeoutMs === undefined ? {} : { batchTimeoutMs: options.checkBatchTimeoutMs }),
|
|
29
|
+
...(options.checkCooldownMs === undefined ? {} : { cooldownMs: options.checkCooldownMs }),
|
|
30
|
+
});
|
|
31
|
+
const terminal = (session, state, error) => {
|
|
32
|
+
if (isTerminal(session.snapshot.state))
|
|
33
|
+
return;
|
|
34
|
+
session.prompt = undefined;
|
|
35
|
+
if (session.timeout !== undefined)
|
|
36
|
+
clearTimeout(session.timeout);
|
|
37
|
+
session.snapshot = update(session.snapshot, { state, ...(error === undefined ? {} : { error }) }, true);
|
|
38
|
+
session.retention = setTimeout(() => {
|
|
39
|
+
sessions.delete(session.snapshot.id);
|
|
40
|
+
if (currentSession === session)
|
|
41
|
+
currentSession = undefined;
|
|
42
|
+
}, TERMINAL_RETENTION_MS);
|
|
43
|
+
session.retention.unref?.();
|
|
44
|
+
};
|
|
45
|
+
const isCurrent = (session) => currentSession === session;
|
|
46
|
+
const startRun = (session, priorPersistences) => {
|
|
47
|
+
const input = session.snapshot;
|
|
48
|
+
const login = options.login ?? loginPiProviderAuth;
|
|
49
|
+
const persist = options.persist ?? persistPiProviderCredential;
|
|
50
|
+
session.run = (async () => {
|
|
51
|
+
if (priorPersistences.length > 0) {
|
|
52
|
+
const drain = await waitForPersistenceDrain(priorPersistences, session.abort.signal, AUTH_REPLACEMENT_DRAIN_MS);
|
|
53
|
+
if (drain === "aborted" || !isCurrent(session)) {
|
|
54
|
+
terminal(session, "cancelled");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (drain === "timeout") {
|
|
58
|
+
terminal(session, "failed", {
|
|
59
|
+
code: "replacement_timeout",
|
|
60
|
+
message: "The previous authentication did not stop safely. Retry after it finishes.",
|
|
61
|
+
});
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (session.abort.signal.aborted || !isCurrent(session)) {
|
|
66
|
+
terminal(session, "cancelled");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
let persistenceObserved = false;
|
|
70
|
+
const observePersistence = () => {
|
|
71
|
+
if (persistenceObserved)
|
|
72
|
+
return;
|
|
73
|
+
persistenceObserved = true;
|
|
74
|
+
checks.credentialPersisted(input.providerId);
|
|
75
|
+
options.observations.credentialPersisted(input.providerId);
|
|
76
|
+
};
|
|
77
|
+
const persistence = Promise.resolve().then(async () => await persist({
|
|
78
|
+
authPath: options.config.providers?.piAuthPath ?? "",
|
|
79
|
+
provider: input.providerId,
|
|
80
|
+
...(options.platform === undefined ? {} : { platform: options.platform }),
|
|
81
|
+
abortSignal: session.abort.signal,
|
|
82
|
+
onCredentialStoreMutation: observePersistence,
|
|
83
|
+
resolveCredential: async () => await login(input.providerId, input.authType, {
|
|
84
|
+
signal: session.abort.signal,
|
|
85
|
+
prompt: async (prompt) => {
|
|
86
|
+
if (session.abort.signal.aborted || !isCurrent(session)) {
|
|
87
|
+
throw new Error("Provider authentication was cancelled.");
|
|
88
|
+
}
|
|
89
|
+
if (input.providerId === "openai-codex" && prompt.type === "select") {
|
|
90
|
+
const selected = input.strategy === "device_code" ? "device_code" : "browser";
|
|
91
|
+
if (!prompt.options?.some((option) => option.id === selected)) {
|
|
92
|
+
throw new Error("Selected OpenAI login strategy is unavailable.");
|
|
93
|
+
}
|
|
94
|
+
return selected;
|
|
95
|
+
}
|
|
96
|
+
if (!isPromptType(prompt.type)) {
|
|
97
|
+
throw new Error("Provider returned an invalid authentication prompt.");
|
|
98
|
+
}
|
|
99
|
+
if (!nonEmpty(prompt.message)) {
|
|
100
|
+
throw new Error("Provider returned an empty authentication prompt.");
|
|
101
|
+
}
|
|
102
|
+
return await new Promise((resolve, reject) => {
|
|
103
|
+
if (session.abort.signal.aborted || prompt.signal?.aborted === true || !isCurrent(session)) {
|
|
104
|
+
reject(new Error("Provider authentication was cancelled."));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const promptId = randomUUID();
|
|
108
|
+
if (prompt.options !== undefined && prompt.options.length > MAX_PROVIDER_AUTH_OPTIONS) {
|
|
109
|
+
reject(new Error("Provider returned too many authentication options."));
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const projectedOptions = prompt.options?.map((option) => {
|
|
113
|
+
if (!boundedExact(option.id) || !boundedExact(option.label)
|
|
114
|
+
|| option.description !== undefined && !boundedExact(option.description)) {
|
|
115
|
+
throw new Error("Provider returned an invalid authentication option.");
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
id: option.id,
|
|
119
|
+
label: bounded(option.label),
|
|
120
|
+
...(option.description === undefined ? {} : { description: bounded(option.description) }),
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
const projected = {
|
|
124
|
+
id: promptId,
|
|
125
|
+
type: prompt.type,
|
|
126
|
+
message: bounded(prompt.message),
|
|
127
|
+
...(nonEmpty(prompt.placeholder) ? { placeholder: bounded(prompt.placeholder) } : {}),
|
|
128
|
+
...(prompt.type === "text" && prompt.allowEmpty === true ? { allowEmpty: true } : {}),
|
|
129
|
+
...(projectedOptions === undefined ? {} : { options: projectedOptions }),
|
|
130
|
+
};
|
|
131
|
+
const pending = {
|
|
132
|
+
id: promptId,
|
|
133
|
+
type: prompt.type,
|
|
134
|
+
allowEmpty: prompt.type === "text" && prompt.allowEmpty === true,
|
|
135
|
+
...(projectedOptions === undefined ? {} : { options: projectedOptions }),
|
|
136
|
+
resolve,
|
|
137
|
+
reject,
|
|
138
|
+
};
|
|
139
|
+
session.prompt = pending;
|
|
140
|
+
session.snapshot = update(session.snapshot, { state: "awaiting_input", prompt: projected });
|
|
141
|
+
const cancel = () => {
|
|
142
|
+
if (session.prompt !== pending)
|
|
143
|
+
return;
|
|
144
|
+
session.prompt = undefined;
|
|
145
|
+
session.snapshot = update(session.snapshot, {}, true);
|
|
146
|
+
reject(new Error("Provider prompt was cancelled."));
|
|
147
|
+
};
|
|
148
|
+
prompt.signal?.addEventListener("abort", cancel, { once: true });
|
|
149
|
+
session.abort.signal.addEventListener("abort", cancel, { once: true });
|
|
150
|
+
});
|
|
151
|
+
},
|
|
152
|
+
notify: (event) => {
|
|
153
|
+
const deviceTtlMs = applyEvent(session, event, now, () => isCurrent(session));
|
|
154
|
+
if (deviceTtlMs !== undefined && deviceTtlMs < SESSION_TTL_MS) {
|
|
155
|
+
if (session.timeout !== undefined)
|
|
156
|
+
clearTimeout(session.timeout);
|
|
157
|
+
session.timeout = setTimeout(() => {
|
|
158
|
+
if (!isCurrent(session))
|
|
159
|
+
return;
|
|
160
|
+
session.abort.abort(new Error("Provider device code expired."));
|
|
161
|
+
terminal(session, "failed", { code: "timed_out", message: "Provider device code expired." });
|
|
162
|
+
}, deviceTtlMs);
|
|
163
|
+
session.timeout.unref?.();
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
}),
|
|
167
|
+
})).then(() => {
|
|
168
|
+
// Persistence can enter its deliberately non-cancellable atomic promote
|
|
169
|
+
// or cleanup phase before a session is replaced/cancelled. Its eventual
|
|
170
|
+
// success still changed the credential. Real persistence signals at the
|
|
171
|
+
// first target mutation so a later cleanup failure also fences evidence;
|
|
172
|
+
// this completion fallback preserves custom persistence seams.
|
|
173
|
+
observePersistence();
|
|
174
|
+
});
|
|
175
|
+
activePersistences.add(persistence);
|
|
176
|
+
persistence.then(() => activePersistences.delete(persistence), () => activePersistences.delete(persistence));
|
|
177
|
+
try {
|
|
178
|
+
await raceWithAbort(persistence, session.abort.signal);
|
|
179
|
+
if (session.abort.signal.aborted || !isCurrent(session)) {
|
|
180
|
+
terminal(session, "cancelled");
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
terminal(session, "succeeded");
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
if (session.abort.signal.aborted || !isCurrent(session)) {
|
|
187
|
+
terminal(session, "cancelled");
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
terminal(session, "failed", safeError(error));
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
})().catch(() => {
|
|
194
|
+
if (session.abort.signal.aborted || !isCurrent(session)) {
|
|
195
|
+
terminal(session, "cancelled");
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
terminal(session, "failed", { code: "provider_auth_failed", message: "Provider authentication failed. Retry or use the mono-agent auth login command on the host." });
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
};
|
|
202
|
+
const prepareAdmission = async (admission) => {
|
|
203
|
+
try {
|
|
204
|
+
const status = await raceWithAbort(statusSnapshot(), admission.abort.signal);
|
|
205
|
+
if (stopping) {
|
|
206
|
+
throw new ProviderAuthOperationError("provider_auth_conflict", "Provider authentication is stopping.", 409);
|
|
207
|
+
}
|
|
208
|
+
if (checks.isActive()) {
|
|
209
|
+
throw new ProviderAuthOperationError("provider_auth_conflict", "Provider live checks are active. Cancel them before authenticating.", 409);
|
|
210
|
+
}
|
|
211
|
+
const provider = status.providers.find((candidate) => candidate.providerId === admission.input.providerId);
|
|
212
|
+
if (provider === undefined)
|
|
213
|
+
throw new ProviderAuthOperationError("provider_auth_invalid_request", "Provider is not used by this agent.", 400);
|
|
214
|
+
if (!provider.methods.some((method) => method.authType === admission.input.authType && method.strategy === admission.input.strategy)) {
|
|
215
|
+
throw new ProviderAuthOperationError("provider_auth_conflict", "The selected authentication method is unavailable.", 409);
|
|
216
|
+
}
|
|
217
|
+
if (options.config.providers?.piAuthPath === undefined) {
|
|
218
|
+
throw new ProviderAuthOperationError("provider_auth_unavailable", "The Pi auth store is not configured.", 503);
|
|
219
|
+
}
|
|
220
|
+
if (admission.sequence < newestValidSequence) {
|
|
221
|
+
throw replacedAdmissionError();
|
|
222
|
+
}
|
|
223
|
+
newestValidSequence = admission.sequence;
|
|
224
|
+
for (const candidate of pendingAdmissions.values()) {
|
|
225
|
+
if (candidate.sequence < admission.sequence)
|
|
226
|
+
candidate.abort.abort(replacedAdmissionError());
|
|
227
|
+
}
|
|
228
|
+
const previous = currentSession;
|
|
229
|
+
if (previous !== undefined && !isTerminal(previous.snapshot.state)) {
|
|
230
|
+
previous.abort.abort(new Error("Provider authentication was replaced."));
|
|
231
|
+
terminal(previous, "cancelled");
|
|
232
|
+
}
|
|
233
|
+
const createdAt = new Date(now()).toISOString();
|
|
234
|
+
const snapshot = {
|
|
235
|
+
schema: PROVIDER_AUTH_SESSION_SCHEMA,
|
|
236
|
+
id: randomUUID(),
|
|
237
|
+
providerId: admission.input.providerId,
|
|
238
|
+
authType: admission.input.authType,
|
|
239
|
+
strategy: admission.input.strategy,
|
|
240
|
+
state: "pending",
|
|
241
|
+
createdAt,
|
|
242
|
+
updatedAt: createdAt,
|
|
243
|
+
expiresAt: new Date(now() + SESSION_TTL_MS).toISOString(),
|
|
244
|
+
};
|
|
245
|
+
const session = {
|
|
246
|
+
sequence: admission.sequence,
|
|
247
|
+
snapshot,
|
|
248
|
+
abort: admission.abort,
|
|
249
|
+
prompt: undefined,
|
|
250
|
+
};
|
|
251
|
+
sessions.set(snapshot.id, session);
|
|
252
|
+
currentSession = session;
|
|
253
|
+
session.timeout = setTimeout(() => {
|
|
254
|
+
if (!isCurrent(session))
|
|
255
|
+
return;
|
|
256
|
+
session.abort.abort(new Error("Provider authentication timed out."));
|
|
257
|
+
terminal(session, "failed", { code: "timed_out", message: "Provider authentication timed out." });
|
|
258
|
+
}, SESSION_TTL_MS);
|
|
259
|
+
session.timeout.unref?.();
|
|
260
|
+
startRun(session, [...activePersistences]);
|
|
261
|
+
await Promise.resolve();
|
|
262
|
+
admission.resolve(session.snapshot);
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
admission.reject(error);
|
|
266
|
+
}
|
|
267
|
+
finally {
|
|
268
|
+
pendingAdmissions.delete(admission.sequence);
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
return {
|
|
272
|
+
async status() {
|
|
273
|
+
return await statusSnapshot();
|
|
274
|
+
},
|
|
275
|
+
start(input) {
|
|
276
|
+
if (stopping)
|
|
277
|
+
return Promise.reject(new ProviderAuthOperationError("provider_auth_conflict", "Provider authentication is stopping.", 409));
|
|
278
|
+
if (checks.isActive()) {
|
|
279
|
+
return Promise.reject(new ProviderAuthOperationError("provider_auth_conflict", "Provider live checks are active. Cancel them before authenticating.", 409));
|
|
280
|
+
}
|
|
281
|
+
const sequence = ++nextSequence;
|
|
282
|
+
let resolve;
|
|
283
|
+
let reject;
|
|
284
|
+
const promise = new Promise((resolvePromise, rejectPromise) => {
|
|
285
|
+
resolve = resolvePromise;
|
|
286
|
+
reject = rejectPromise;
|
|
287
|
+
});
|
|
288
|
+
const admission = {
|
|
289
|
+
sequence,
|
|
290
|
+
input,
|
|
291
|
+
abort: new AbortController(),
|
|
292
|
+
promise,
|
|
293
|
+
resolve,
|
|
294
|
+
reject,
|
|
295
|
+
};
|
|
296
|
+
pendingAdmissions.set(sequence, admission);
|
|
297
|
+
admission.task = prepareAdmission(admission);
|
|
298
|
+
return promise;
|
|
299
|
+
},
|
|
300
|
+
async get(sessionId) {
|
|
301
|
+
return sessions.get(sessionId)?.snapshot;
|
|
302
|
+
},
|
|
303
|
+
async submit(sessionId, input) {
|
|
304
|
+
const session = sessions.get(sessionId);
|
|
305
|
+
if (session === undefined)
|
|
306
|
+
throw new ProviderAuthOperationError("provider_auth_not_found", "Provider authentication session was not found.", 404);
|
|
307
|
+
if (isTerminal(session.snapshot.state))
|
|
308
|
+
throw new ProviderAuthOperationError("provider_auth_conflict", "Provider authentication session is already complete.", 409);
|
|
309
|
+
const prompt = session.prompt;
|
|
310
|
+
if (prompt === undefined || prompt.id !== input.promptId) {
|
|
311
|
+
throw new ProviderAuthOperationError("provider_auth_conflict", "Provider authentication prompt is stale.", 409);
|
|
312
|
+
}
|
|
313
|
+
const value = normalizeInput(input, prompt);
|
|
314
|
+
session.prompt = undefined;
|
|
315
|
+
session.snapshot = update(session.snapshot, { state: "pending" }, true);
|
|
316
|
+
prompt.resolve(value);
|
|
317
|
+
await Promise.resolve();
|
|
318
|
+
return session.snapshot;
|
|
319
|
+
},
|
|
320
|
+
async cancel(sessionId) {
|
|
321
|
+
const session = sessions.get(sessionId);
|
|
322
|
+
if (session === undefined)
|
|
323
|
+
return;
|
|
324
|
+
if (!isTerminal(session.snapshot.state)) {
|
|
325
|
+
session.abort.abort(new Error("Provider authentication was cancelled."));
|
|
326
|
+
terminal(session, "cancelled");
|
|
327
|
+
await settleWithin(session.run, AUTH_REPLACEMENT_DRAIN_MS);
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
checks,
|
|
331
|
+
async stop() {
|
|
332
|
+
stopping = true;
|
|
333
|
+
const stopError = new ProviderAuthOperationError("provider_auth_conflict", "Provider authentication is stopping.", 409);
|
|
334
|
+
const admissionTasks = [...pendingAdmissions.values()].map((admission) => {
|
|
335
|
+
admission.abort.abort(stopError);
|
|
336
|
+
return admission.task;
|
|
337
|
+
});
|
|
338
|
+
await checks.stop();
|
|
339
|
+
const sessionRuns = [...sessions.values()].map(async (session) => {
|
|
340
|
+
if (!isTerminal(session.snapshot.state)) {
|
|
341
|
+
session.abort.abort(new Error("Provider authentication service stopped."));
|
|
342
|
+
terminal(session, "cancelled");
|
|
343
|
+
}
|
|
344
|
+
await session.run?.catch(() => undefined);
|
|
345
|
+
if (session.retention !== undefined)
|
|
346
|
+
clearTimeout(session.retention);
|
|
347
|
+
});
|
|
348
|
+
await Promise.all([...admissionTasks, ...sessionRuns]);
|
|
349
|
+
while (activePersistences.size > 0) {
|
|
350
|
+
await Promise.allSettled([...activePersistences]);
|
|
351
|
+
}
|
|
352
|
+
sessions.clear();
|
|
353
|
+
pendingAdmissions.clear();
|
|
354
|
+
currentSession = undefined;
|
|
355
|
+
},
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
function replacedAdmissionError() {
|
|
359
|
+
return new ProviderAuthOperationError("provider_auth_conflict", "Provider authentication request was replaced by a newer valid request.", 409);
|
|
360
|
+
}
|
|
361
|
+
async function raceWithAbort(pending, signal) {
|
|
362
|
+
if (signal.aborted)
|
|
363
|
+
throw signal.reason ?? new Error("Provider authentication was cancelled.");
|
|
364
|
+
return await new Promise((resolve, reject) => {
|
|
365
|
+
let settled = false;
|
|
366
|
+
const finish = (callback) => {
|
|
367
|
+
if (settled)
|
|
368
|
+
return;
|
|
369
|
+
settled = true;
|
|
370
|
+
signal.removeEventListener("abort", abort);
|
|
371
|
+
callback();
|
|
372
|
+
};
|
|
373
|
+
const abort = () => finish(() => reject(signal.reason ?? new Error("Provider authentication was cancelled.")));
|
|
374
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
375
|
+
if (signal.aborted)
|
|
376
|
+
abort();
|
|
377
|
+
pending.then((value) => finish(() => resolve(value)), (error) => finish(() => reject(error)));
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
async function waitForPersistenceDrain(persistences, signal, timeoutMs) {
|
|
381
|
+
if (signal.aborted)
|
|
382
|
+
return "aborted";
|
|
383
|
+
return await new Promise((resolve) => {
|
|
384
|
+
let settled = false;
|
|
385
|
+
const timer = setTimeout(() => finish("timeout"), timeoutMs);
|
|
386
|
+
timer.unref?.();
|
|
387
|
+
const finish = (result) => {
|
|
388
|
+
if (settled)
|
|
389
|
+
return;
|
|
390
|
+
settled = true;
|
|
391
|
+
clearTimeout(timer);
|
|
392
|
+
signal.removeEventListener("abort", abort);
|
|
393
|
+
resolve(result);
|
|
394
|
+
};
|
|
395
|
+
const abort = () => finish("aborted");
|
|
396
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
397
|
+
if (signal.aborted)
|
|
398
|
+
abort();
|
|
399
|
+
void Promise.allSettled(persistences).then(() => finish("drained"));
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
async function settleWithin(pending, timeoutMs) {
|
|
403
|
+
if (pending === undefined)
|
|
404
|
+
return;
|
|
405
|
+
await new Promise((resolve) => {
|
|
406
|
+
const timer = setTimeout(resolve, timeoutMs);
|
|
407
|
+
timer.unref?.();
|
|
408
|
+
void pending.then(() => { clearTimeout(timer); resolve(); }, () => { clearTimeout(timer); resolve(); });
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
function applyEvent(session, event, now, isCurrent) {
|
|
412
|
+
if (!isCurrent() || !record(event) || typeof event.type !== "string" || isTerminal(session.snapshot.state))
|
|
413
|
+
return undefined;
|
|
414
|
+
if (event.type === "auth_url" && !httpUrl(event.url)) {
|
|
415
|
+
throw new Error("Provider returned an invalid authentication URL.");
|
|
416
|
+
}
|
|
417
|
+
if (event.type === "device_code" && (!httpUrl(event.verificationUri) || !nonEmpty(event.userCode))) {
|
|
418
|
+
throw new Error("Provider returned an invalid device-code event.");
|
|
419
|
+
}
|
|
420
|
+
if (event.type === "auth_url" && httpUrl(event.url)) {
|
|
421
|
+
session.snapshot = update(session.snapshot, {
|
|
422
|
+
state: "awaiting_user",
|
|
423
|
+
authUrl: { url: event.url, instructions: instructionsFor(session.snapshot, event.instructions) },
|
|
424
|
+
});
|
|
425
|
+
return undefined;
|
|
426
|
+
}
|
|
427
|
+
else if (event.type === "device_code" && httpUrl(event.verificationUri) && nonEmpty(event.userCode)) {
|
|
428
|
+
if (event.expiresInSeconds !== undefined
|
|
429
|
+
&& (typeof event.expiresInSeconds !== "number" || !Number.isFinite(event.expiresInSeconds) || event.expiresInSeconds <= 0)) {
|
|
430
|
+
throw new Error("Provider returned an invalid device-code expiry.");
|
|
431
|
+
}
|
|
432
|
+
const ttlMs = typeof event.expiresInSeconds === "number"
|
|
433
|
+
? Math.min(event.expiresInSeconds * 1_000, SESSION_TTL_MS) : undefined;
|
|
434
|
+
const expiresAt = ttlMs === undefined ? undefined : new Date(now() + ttlMs).toISOString();
|
|
435
|
+
session.snapshot = update(session.snapshot, {
|
|
436
|
+
state: "awaiting_user",
|
|
437
|
+
...(expiresAt === undefined ? {} : { expiresAt }),
|
|
438
|
+
progress: instructionsFor(session.snapshot, undefined),
|
|
439
|
+
deviceCode: {
|
|
440
|
+
verificationUri: event.verificationUri,
|
|
441
|
+
userCode: bounded(event.userCode),
|
|
442
|
+
...(expiresAt === undefined ? {} : { expiresAt }),
|
|
443
|
+
},
|
|
444
|
+
});
|
|
445
|
+
return ttlMs;
|
|
446
|
+
}
|
|
447
|
+
else if ((event.type === "progress" || event.type === "info") && nonEmpty(event.message)) {
|
|
448
|
+
session.snapshot = update(session.snapshot, { progress: bounded(event.message) });
|
|
449
|
+
}
|
|
450
|
+
return undefined;
|
|
451
|
+
}
|
|
452
|
+
function instructionsFor(session, upstream) {
|
|
453
|
+
if (session.providerId === "github-copilot")
|
|
454
|
+
return "Open this URL in any browser, enter the displayed code, and keep this dialog open while the headless agent completes sign-in.";
|
|
455
|
+
if (session.providerId === "openai-codex" && session.strategy === "device_code")
|
|
456
|
+
return "Open the OpenAI device page in any browser, enter the code, and keep this dialog open while the headless agent polls.";
|
|
457
|
+
if (session.providerId === "openai-codex")
|
|
458
|
+
return "Open the URL. If the final localhost page cannot reach the agent host, copy the complete final URL from the browser address bar and paste it here.";
|
|
459
|
+
if (session.providerId === "anthropic")
|
|
460
|
+
return "Open the URL. If the redirect to localhost:53692 does not load, copy the complete final URL from the address bar and paste it here; the full URL is preferred.";
|
|
461
|
+
return `${typeof upstream === "string" ? bounded(upstream) : "Complete the provider sign-in in this browser."} The agent host is headless; keep this dialog open.`;
|
|
462
|
+
}
|
|
463
|
+
function update(current, changes, clearPrompt = false) {
|
|
464
|
+
const next = { ...current, ...changes, updatedAt: new Date().toISOString() };
|
|
465
|
+
if (clearPrompt)
|
|
466
|
+
delete next.prompt;
|
|
467
|
+
return next;
|
|
468
|
+
}
|
|
469
|
+
function normalizeInput(input, prompt) {
|
|
470
|
+
if (prompt.type === "select") {
|
|
471
|
+
if (!prompt.options?.some((option) => option.id === input.value)) {
|
|
472
|
+
throw new ProviderAuthOperationError("provider_auth_invalid_request", "Invalid provider authentication selection.", 400);
|
|
473
|
+
}
|
|
474
|
+
return input.value;
|
|
475
|
+
}
|
|
476
|
+
if (prompt.type === "secret") {
|
|
477
|
+
const value = input.value.trim();
|
|
478
|
+
if (value.length === 0 || Buffer.byteLength(value, "utf8") > MAX_PROVIDER_AUTH_INPUT_BYTES || /[\r\n\0]/u.test(value)) {
|
|
479
|
+
throw new ProviderAuthOperationError("provider_auth_invalid_request", "Provider authentication secret is invalid.", 400);
|
|
480
|
+
}
|
|
481
|
+
return value;
|
|
482
|
+
}
|
|
483
|
+
if (Buffer.byteLength(input.value, "utf8") > MAX_PROVIDER_AUTH_TEXT_INPUT_BYTES || input.value.includes("\0")) {
|
|
484
|
+
throw new ProviderAuthOperationError("provider_auth_too_large", "Provider authentication input is too large.", 413);
|
|
485
|
+
}
|
|
486
|
+
const value = input.value.trim();
|
|
487
|
+
if (value.length === 0 && !prompt.allowEmpty) {
|
|
488
|
+
throw new ProviderAuthOperationError("provider_auth_invalid_request", "Provider authentication input is required.", 400);
|
|
489
|
+
}
|
|
490
|
+
return value;
|
|
491
|
+
}
|
|
492
|
+
function safeError(error) {
|
|
493
|
+
const message = error instanceof Error ? error.message.toLowerCase() : "";
|
|
494
|
+
if (message.includes("lock") && (message.includes("active") || message.includes("exists"))) {
|
|
495
|
+
return { code: "auth_store_busy", message: "Another authentication process is using the Pi auth store." };
|
|
496
|
+
}
|
|
497
|
+
if (message.includes("unsafe") || message.includes("refusing") || message.includes("owned")) {
|
|
498
|
+
return { code: "auth_store_unsafe", message: "The Pi auth store did not pass owner-only safety checks." };
|
|
499
|
+
}
|
|
500
|
+
if (message.includes("cleanup"))
|
|
501
|
+
return { code: "cleanup_failed", message: "Credential cleanup could not be confirmed; inspect the agent host before retrying." };
|
|
502
|
+
if (message.includes("promotion"))
|
|
503
|
+
return { code: "promotion_failed", message: "Credential promotion failed and the prior Pi auth store was preserved." };
|
|
504
|
+
if (message.includes("changed"))
|
|
505
|
+
return { code: "auth_store_changed", message: "The Pi auth store changed during authentication and was preserved." };
|
|
506
|
+
if (message.includes("device") && (message.includes("unavailable") || message.includes("not enabled"))) {
|
|
507
|
+
return { code: "device_code_unavailable", message: "Device-code authentication is unavailable; retry with browser paste-back." };
|
|
508
|
+
}
|
|
509
|
+
if (message.includes("eaddrinuse") || message.includes("callback") && (message.includes("listen") || message.includes("bind"))) {
|
|
510
|
+
return { code: "callback_bind_failed", message: "The provider callback listener could not start; use paste-back when available or free the callback port." };
|
|
511
|
+
}
|
|
512
|
+
if (message.includes("exchange"))
|
|
513
|
+
return { code: "auth_exchange_failed", message: "The provider rejected the authentication exchange." };
|
|
514
|
+
if (message.includes("authorization") && (message.includes("code") || message.includes("state"))) {
|
|
515
|
+
return { code: "invalid_input", message: "The pasted authorization response was invalid or stale." };
|
|
516
|
+
}
|
|
517
|
+
return { code: "provider_auth_failed", message: "Provider authentication failed. Retry or use the mono-agent auth login command on the host." };
|
|
518
|
+
}
|
|
519
|
+
function bounded(value) {
|
|
520
|
+
const normalized = value.replace(/[\r\n]+/gu, " ");
|
|
521
|
+
if (Buffer.byteLength(normalized, "utf8") <= MAX_PROVIDER_AUTH_STRING_BYTES)
|
|
522
|
+
return normalized;
|
|
523
|
+
let output = "";
|
|
524
|
+
let bytes = 0;
|
|
525
|
+
for (const character of normalized) {
|
|
526
|
+
const width = Buffer.byteLength(character, "utf8");
|
|
527
|
+
if (bytes + width > MAX_PROVIDER_AUTH_STRING_BYTES)
|
|
528
|
+
break;
|
|
529
|
+
output += character;
|
|
530
|
+
bytes += width;
|
|
531
|
+
}
|
|
532
|
+
return output;
|
|
533
|
+
}
|
|
534
|
+
function boundedExact(value) {
|
|
535
|
+
return value.length > 0 && Buffer.byteLength(value, "utf8") <= MAX_PROVIDER_AUTH_STRING_BYTES;
|
|
536
|
+
}
|
|
537
|
+
function isPromptType(value) {
|
|
538
|
+
return value === "text" || value === "secret" || value === "select" || value === "manual_code";
|
|
539
|
+
}
|
|
540
|
+
function nonEmpty(value) {
|
|
541
|
+
return typeof value === "string" && value.length > 0;
|
|
542
|
+
}
|
|
543
|
+
function httpUrl(value) {
|
|
544
|
+
if (typeof value !== "string" || value.length > 4_096)
|
|
545
|
+
return false;
|
|
546
|
+
try {
|
|
547
|
+
const url = new URL(value);
|
|
548
|
+
return url.protocol === "http:" || url.protocol === "https:";
|
|
549
|
+
}
|
|
550
|
+
catch {
|
|
551
|
+
return false;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
function record(value) {
|
|
555
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
556
|
+
}
|
|
557
|
+
function isTerminal(state) {
|
|
558
|
+
return state === "succeeded" || state === "failed" || state === "cancelled";
|
|
559
|
+
}
|
|
560
|
+
//# sourceMappingURL=provider-auth-operator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-auth-operator.js","sourceRoot":"","sources":["../src/provider-auth-operator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ProviderAuthStatusSnapshot, ProviderAuthUsage } from "@mono-agent/agent-contracts";
|
|
2
|
+
import type { MonoAgentConfig } from "@mono-agent/config";
|
|
3
|
+
import { type RuntimeModelReference } from "@mono-agent/runtime-adapter";
|
|
4
|
+
import type { MonoAgentAppConfigInput } from "./app-config.js";
|
|
5
|
+
import type { ChannelDriver } from "./channels.js";
|
|
6
|
+
import type { ProviderAuthObservationTracker } from "./provider-auth-observations.js";
|
|
7
|
+
export interface UsedProviderReference {
|
|
8
|
+
readonly usage: ProviderAuthUsage;
|
|
9
|
+
readonly ref: RuntimeModelReference;
|
|
10
|
+
}
|
|
11
|
+
export declare function collectUsedProviderReferences(config: MonoAgentConfig, drivers: readonly ChannelDriver[], input: MonoAgentAppConfigInput): Promise<readonly UsedProviderReference[]>;
|
|
12
|
+
export interface ProviderAuthStatusOptions {
|
|
13
|
+
readonly config: MonoAgentConfig;
|
|
14
|
+
readonly env: Readonly<Record<string, string | undefined>>;
|
|
15
|
+
readonly drivers: readonly ChannelDriver[];
|
|
16
|
+
readonly input: MonoAgentAppConfigInput;
|
|
17
|
+
readonly observations: ProviderAuthObservationTracker;
|
|
18
|
+
}
|
|
19
|
+
export declare function providerAuthStatusSnapshot(options: ProviderAuthStatusOptions): Promise<ProviderAuthStatusSnapshot>;
|
|
20
|
+
//# sourceMappingURL=provider-auth-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-auth-status.d.ts","sourceRoot":"","sources":["../src/provider-auth-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAGtF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC;CACrC;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAqD3C;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,8BAA8B,CAAC;CACvD;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC,CA4HrC"}
|