@pellux/goodvibes-sdk 0.25.5 → 0.25.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/_internal/contracts/artifacts/operator-contract.json +184 -4
- package/dist/_internal/contracts/generated/foundation-metadata.d.ts +2 -2
- package/dist/_internal/contracts/generated/foundation-metadata.js +2 -2
- package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
- package/dist/_internal/contracts/generated/operator-contract.js +184 -4
- package/dist/_internal/contracts/generated/operator-method-ids.d.ts +1 -1
- package/dist/_internal/contracts/generated/operator-method-ids.d.ts.map +1 -1
- package/dist/_internal/contracts/generated/operator-method-ids.js +1 -0
- package/dist/_internal/contracts/zod-schemas/providers.d.ts +132 -0
- package/dist/_internal/contracts/zod-schemas/providers.d.ts.map +1 -1
- package/dist/_internal/contracts/zod-schemas/providers.js +16 -0
- package/dist/_internal/platform/adapters/slack/index.d.ts.map +1 -1
- package/dist/_internal/platform/adapters/slack/index.js +16 -1
- package/dist/_internal/platform/adapters/types.d.ts +2 -0
- package/dist/_internal/platform/adapters/types.d.ts.map +1 -1
- package/dist/_internal/platform/automation/delivery-manager.d.ts +1 -0
- package/dist/_internal/platform/automation/delivery-manager.d.ts.map +1 -1
- package/dist/_internal/platform/automation/delivery-manager.js +1 -0
- package/dist/_internal/platform/channels/builtin/account-actions.js +58 -1
- package/dist/_internal/platform/channels/builtin/accounts.js +1 -1
- package/dist/_internal/platform/channels/builtin/setup-schema.d.ts.map +1 -1
- package/dist/_internal/platform/channels/builtin/setup-schema.js +4 -2
- package/dist/_internal/platform/channels/builtin/surfaces.d.ts +1 -0
- package/dist/_internal/platform/channels/builtin/surfaces.d.ts.map +1 -1
- package/dist/_internal/platform/channels/builtin/surfaces.js +21 -3
- package/dist/_internal/platform/channels/delivery/strategies-core.d.ts +2 -1
- package/dist/_internal/platform/channels/delivery/strategies-core.d.ts.map +1 -1
- package/dist/_internal/platform/channels/delivery/strategies-core.js +6 -1
- package/dist/_internal/platform/channels/delivery/types.d.ts +2 -0
- package/dist/_internal/platform/channels/delivery/types.d.ts.map +1 -1
- package/dist/_internal/platform/channels/delivery-router.d.ts +2 -1
- package/dist/_internal/platform/channels/delivery-router.d.ts.map +1 -1
- package/dist/_internal/platform/channels/delivery-router.js +3 -3
- package/dist/_internal/platform/channels/provider-runtime.d.ts +3 -0
- package/dist/_internal/platform/channels/provider-runtime.d.ts.map +1 -1
- package/dist/_internal/platform/channels/provider-runtime.js +24 -6
- package/dist/_internal/platform/companion/companion-chat-manager.d.ts +2 -1
- package/dist/_internal/platform/companion/companion-chat-manager.d.ts.map +1 -1
- package/dist/_internal/platform/companion/companion-chat-manager.js +21 -0
- package/dist/_internal/platform/companion/companion-chat-routes.d.ts +1 -0
- package/dist/_internal/platform/companion/companion-chat-routes.d.ts.map +1 -1
- package/dist/_internal/platform/companion/companion-chat-routes.js +76 -0
- package/dist/_internal/platform/companion/companion-chat-types.d.ts +9 -0
- package/dist/_internal/platform/companion/companion-chat-types.d.ts.map +1 -1
- package/dist/_internal/platform/companion/index.d.ts +1 -1
- package/dist/_internal/platform/companion/index.d.ts.map +1 -1
- package/dist/_internal/platform/config/secret-refs.d.ts +1 -0
- package/dist/_internal/platform/config/secret-refs.d.ts.map +1 -1
- package/dist/_internal/platform/config/secret-refs.js +15 -0
- package/dist/_internal/platform/config/service-registry.d.ts +7 -2
- package/dist/_internal/platform/config/service-registry.d.ts.map +1 -1
- package/dist/_internal/platform/config/service-registry.js +6 -2
- package/dist/_internal/platform/control-plane/method-catalog-control-core.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/method-catalog-control-core.js +17 -0
- package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade-composition.js +3 -0
- package/dist/_internal/platform/daemon/http/provider-routes.d.ts +3 -0
- package/dist/_internal/platform/daemon/http/provider-routes.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/provider-routes.js +79 -20
- package/dist/_internal/platform/daemon/surface-actions.d.ts +2 -0
- package/dist/_internal/platform/daemon/surface-actions.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/surface-actions.js +1 -0
- package/dist/_internal/platform/daemon/surface-delivery.d.ts +5 -0
- package/dist/_internal/platform/daemon/surface-delivery.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/surface-delivery.js +26 -12
- package/dist/_internal/platform/integrations/index.d.ts +1 -1
- package/dist/_internal/platform/integrations/index.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/index.js +1 -1
- package/dist/_internal/platform/integrations/ntfy.d.ts +1 -0
- package/dist/_internal/platform/integrations/ntfy.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/ntfy.js +42 -2
- package/dist/_internal/platform/runtime/bootstrap-helpers.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/bootstrap-helpers.js +1 -0
- package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/services.js +2 -0
- package/dist/_internal/platform/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion-chat-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/companion-chat-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"companion-chat-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/companion-chat-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -153,6 +153,27 @@ export class CompanionChatManager {
|
|
|
153
153
|
getMessages(sessionId) {
|
|
154
154
|
return this.sessions.get(sessionId)?.messages ?? [];
|
|
155
155
|
}
|
|
156
|
+
updateSession(sessionId, input) {
|
|
157
|
+
const session = this.sessions.get(sessionId);
|
|
158
|
+
if (!session) {
|
|
159
|
+
throw Object.assign(new Error(`Session not found: ${sessionId}`), { code: 'SESSION_NOT_FOUND', status: 404 });
|
|
160
|
+
}
|
|
161
|
+
if (session.meta.status === 'closed') {
|
|
162
|
+
throw Object.assign(new Error(`Session is closed: ${sessionId}`), { code: 'SESSION_CLOSED', status: 409 });
|
|
163
|
+
}
|
|
164
|
+
const patch = { updatedAt: Date.now() };
|
|
165
|
+
if (input.title !== undefined)
|
|
166
|
+
patch.title = input.title;
|
|
167
|
+
if (input.model !== undefined)
|
|
168
|
+
patch.model = input.model;
|
|
169
|
+
if (input.provider !== undefined)
|
|
170
|
+
patch.provider = input.provider;
|
|
171
|
+
if (input.systemPrompt !== undefined)
|
|
172
|
+
patch.systemPrompt = input.systemPrompt;
|
|
173
|
+
const updated = this._updateMeta(session, patch);
|
|
174
|
+
void this._persist(sessionId);
|
|
175
|
+
return updated;
|
|
176
|
+
}
|
|
156
177
|
/**
|
|
157
178
|
* Register the SSE clientId for this session so events are routed only to
|
|
158
179
|
* the correct subscriber. Replaces any previous registration (single subscriber
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Routes:
|
|
7
7
|
* POST /api/companion/chat/sessions
|
|
8
8
|
* GET /api/companion/chat/sessions/:sessionId
|
|
9
|
+
* PATCH /api/companion/chat/sessions/:sessionId
|
|
9
10
|
* DELETE /api/companion/chat/sessions/:sessionId
|
|
10
11
|
* POST /api/companion/chat/sessions/:sessionId/messages
|
|
11
12
|
* GET /api/companion/chat/sessions/:sessionId/messages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion-chat-routes.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/companion-chat-routes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"companion-chat-routes.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/companion-chat-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAMjF;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAmD1B;AA2KD;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAMlF"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Routes:
|
|
7
7
|
* POST /api/companion/chat/sessions
|
|
8
8
|
* GET /api/companion/chat/sessions/:sessionId
|
|
9
|
+
* PATCH /api/companion/chat/sessions/:sessionId
|
|
9
10
|
* DELETE /api/companion/chat/sessions/:sessionId
|
|
10
11
|
* POST /api/companion/chat/sessions/:sessionId/messages
|
|
11
12
|
* GET /api/companion/chat/sessions/:sessionId/messages
|
|
@@ -38,6 +39,10 @@ export async function dispatchCompanionChatRoutes(req, context) {
|
|
|
38
39
|
if (!sub && req.method === 'GET') {
|
|
39
40
|
return handleGetSession(sessionId, context);
|
|
40
41
|
}
|
|
42
|
+
// PATCH /api/companion/chat/sessions/:sessionId
|
|
43
|
+
if (!sub && req.method === 'PATCH') {
|
|
44
|
+
return handleUpdateSession(req, sessionId, context);
|
|
45
|
+
}
|
|
41
46
|
// DELETE /api/companion/chat/sessions/:sessionId
|
|
42
47
|
if (!sub && req.method === 'DELETE') {
|
|
43
48
|
return handleDeleteSession(sessionId, context);
|
|
@@ -99,6 +104,77 @@ async function handleGetSession(sessionId, context) {
|
|
|
99
104
|
return Response.json({ session, messages });
|
|
100
105
|
}
|
|
101
106
|
// ---------------------------------------------------------------------------
|
|
107
|
+
// PATCH /api/companion/chat/sessions/:sessionId
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
function hasOwn(body, key) {
|
|
110
|
+
return Object.prototype.hasOwnProperty.call(body, key);
|
|
111
|
+
}
|
|
112
|
+
function readOptionalNonEmptyString(body, key) {
|
|
113
|
+
if (!hasOwn(body, key))
|
|
114
|
+
return undefined;
|
|
115
|
+
const value = body[key];
|
|
116
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
117
|
+
return Response.json({ error: `${key} must be a non-empty string`, code: 'INVALID_INPUT' }, { status: 400 });
|
|
118
|
+
}
|
|
119
|
+
return value.trim();
|
|
120
|
+
}
|
|
121
|
+
function readOptionalSystemPrompt(body) {
|
|
122
|
+
if (!hasOwn(body, 'systemPrompt'))
|
|
123
|
+
return undefined;
|
|
124
|
+
const value = body['systemPrompt'];
|
|
125
|
+
if (value === null)
|
|
126
|
+
return null;
|
|
127
|
+
if (typeof value !== 'string') {
|
|
128
|
+
return Response.json({ error: 'systemPrompt must be a string or null', code: 'INVALID_INPUT' }, { status: 400 });
|
|
129
|
+
}
|
|
130
|
+
return value;
|
|
131
|
+
}
|
|
132
|
+
async function handleUpdateSession(req, sessionId, context) {
|
|
133
|
+
const bodyOrResponse = await context.parseJsonBody(req);
|
|
134
|
+
if (bodyOrResponse instanceof Response)
|
|
135
|
+
return bodyOrResponse;
|
|
136
|
+
const body = bodyOrResponse;
|
|
137
|
+
const input = {};
|
|
138
|
+
const title = readOptionalNonEmptyString(body, 'title');
|
|
139
|
+
if (title instanceof Response)
|
|
140
|
+
return title;
|
|
141
|
+
if (title !== undefined)
|
|
142
|
+
input.title = title;
|
|
143
|
+
const model = readOptionalNonEmptyString(body, 'model');
|
|
144
|
+
if (model instanceof Response)
|
|
145
|
+
return model;
|
|
146
|
+
if (model !== undefined) {
|
|
147
|
+
input.model = model;
|
|
148
|
+
if (!hasOwn(body, 'provider') && model.includes(':')) {
|
|
149
|
+
const providerId = model.split(':')[0];
|
|
150
|
+
if (providerId)
|
|
151
|
+
input.provider = providerId;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const provider = readOptionalNonEmptyString(body, 'provider');
|
|
155
|
+
if (provider instanceof Response)
|
|
156
|
+
return provider;
|
|
157
|
+
if (provider !== undefined)
|
|
158
|
+
input.provider = provider;
|
|
159
|
+
const systemPrompt = readOptionalSystemPrompt(body);
|
|
160
|
+
if (systemPrompt instanceof Response)
|
|
161
|
+
return systemPrompt;
|
|
162
|
+
if (systemPrompt !== undefined)
|
|
163
|
+
input.systemPrompt = systemPrompt;
|
|
164
|
+
if (Object.keys(input).length === 0) {
|
|
165
|
+
return Response.json({ error: 'At least one of title, provider, model, or systemPrompt is required', code: 'INVALID_INPUT' }, { status: 400 });
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
const session = context.chatManager.updateSession(sessionId, input);
|
|
169
|
+
return Response.json({ session });
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
const e = err;
|
|
173
|
+
const status = e.status ?? 500;
|
|
174
|
+
return Response.json({ error: e.message ?? 'Internal error', code: e.code ?? 'INTERNAL_ERROR' }, { status });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// ---------------------------------------------------------------------------
|
|
102
178
|
// DELETE /api/companion/chat/sessions/:sessionId
|
|
103
179
|
// ---------------------------------------------------------------------------
|
|
104
180
|
async function handleDeleteSession(sessionId, context) {
|
|
@@ -42,10 +42,19 @@ export interface CreateCompanionChatSessionInput {
|
|
|
42
42
|
readonly provider?: string;
|
|
43
43
|
readonly systemPrompt?: string;
|
|
44
44
|
}
|
|
45
|
+
export interface UpdateCompanionChatSessionInput {
|
|
46
|
+
readonly title?: string;
|
|
47
|
+
readonly model?: string;
|
|
48
|
+
readonly provider?: string;
|
|
49
|
+
readonly systemPrompt?: string | null;
|
|
50
|
+
}
|
|
45
51
|
export interface CreateCompanionChatSessionOutput {
|
|
46
52
|
readonly sessionId: string;
|
|
47
53
|
readonly createdAt: number;
|
|
48
54
|
}
|
|
55
|
+
export interface UpdateCompanionChatSessionOutput {
|
|
56
|
+
readonly session: CompanionChatSession;
|
|
57
|
+
}
|
|
49
58
|
export interface PostCompanionChatMessageInput {
|
|
50
59
|
readonly content: string;
|
|
51
60
|
readonly metadata?: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion-chat-types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/companion-chat-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"companion-chat-types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/companion-chat-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { CompanionChatMessage, CompanionChatSession, CompanionChatSessionKind, CompanionChatSessionStatus, CompanionChatMessageRole, CompanionChatTurnEvent, CompanionChatTurnStartedEvent, CompanionChatTurnDeltaEvent, CompanionChatTurnToolCallEvent, CompanionChatTurnToolResultEvent, CompanionChatTurnCompletedEvent, CompanionChatTurnErrorEvent, CreateCompanionChatSessionInput, CreateCompanionChatSessionOutput, PostCompanionChatMessageInput, PostCompanionChatMessageOutput, GetCompanionChatSessionOutput, ConversationMessageEnvelope, } from './companion-chat-types.js';
|
|
1
|
+
export type { CompanionChatMessage, CompanionChatSession, CompanionChatSessionKind, CompanionChatSessionStatus, CompanionChatMessageRole, CompanionChatTurnEvent, CompanionChatTurnStartedEvent, CompanionChatTurnDeltaEvent, CompanionChatTurnToolCallEvent, CompanionChatTurnToolResultEvent, CompanionChatTurnCompletedEvent, CompanionChatTurnErrorEvent, CreateCompanionChatSessionInput, CreateCompanionChatSessionOutput, UpdateCompanionChatSessionInput, UpdateCompanionChatSessionOutput, PostCompanionChatMessageInput, PostCompanionChatMessageOutput, GetCompanionChatSessionOutput, ConversationMessageEnvelope, } from './companion-chat-types.js';
|
|
2
2
|
export type { CompanionLLMProvider, CompanionChatEventPublisher, CompanionChatManagerConfig, CompanionProviderMessage, CompanionProviderChunk, } from './companion-chat-manager.js';
|
|
3
3
|
export { CompanionChatManager } from './companion-chat-manager.js';
|
|
4
4
|
export { dispatchCompanionChatRoutes } from './companion-chat-routes.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,+BAA+B,EAC/B,gCAAgC,EAChC,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/companion/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,+BAA+B,EAC/B,gCAAgC,EAChC,+BAA+B,EAC/B,gCAAgC,EAChC,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -86,4 +86,5 @@ export declare function isSecretRefInput(input: unknown): input is SecretRefInpu
|
|
|
86
86
|
export declare function getSecretRefSource(input: unknown): SecretProviderSource | null;
|
|
87
87
|
export declare function describeSecretRef(input: unknown): string;
|
|
88
88
|
export declare function resolveSecretRef(input: SecretRefInput, options?: SecretRefResolutionOptions): Promise<SecretRefResolution>;
|
|
89
|
+
export declare function resolveSecretInput(input: unknown, options?: SecretRefResolutionOptions): Promise<string | null>;
|
|
89
90
|
//# sourceMappingURL=secret-refs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-refs.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/secret-refs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret-refs.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/secret-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -686,3 +686,18 @@ export async function resolveSecretRef(input, options = {}) {
|
|
|
686
686
|
return { source: ref.source, value: await resolveBitwardenSecretsManagerRef(ref, options) };
|
|
687
687
|
}
|
|
688
688
|
}
|
|
689
|
+
export async function resolveSecretInput(input, options = {}) {
|
|
690
|
+
const ref = normalizeSecretRef(input);
|
|
691
|
+
if (ref) {
|
|
692
|
+
try {
|
|
693
|
+
return (await resolveSecretRef(ref, options)).value;
|
|
694
|
+
}
|
|
695
|
+
catch {
|
|
696
|
+
return null;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
if (typeof input !== 'string')
|
|
700
|
+
return null;
|
|
701
|
+
const trimmed = input.trim();
|
|
702
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
703
|
+
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* {
|
|
10
10
|
* "openai": { "name": "openai", "baseUrl": "https://api.openai.com", "authType": "bearer", "tokenKey": "OPENAI_API_KEY" },
|
|
11
11
|
* "github": { "name": "github", "baseUrl": "https://api.github.com", "authType": "bearer", "tokenKey": "GITHUB_TOKEN" },
|
|
12
|
-
* "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
|
|
12
|
+
* "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "appTokenKey": "SLACK_APP_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
|
|
13
13
|
* }
|
|
14
14
|
*/
|
|
15
15
|
import { SecretsManager } from './secrets.js';
|
|
@@ -45,12 +45,16 @@ export interface ServiceConfig {
|
|
|
45
45
|
publicKeyKey?: string;
|
|
46
46
|
/** Optional external/local secret reference for inbound public-key verification. */
|
|
47
47
|
publicKeyRef?: SecretRefInput;
|
|
48
|
+
/** Optional Slack-style app-level token key used by socket/client runtimes. */
|
|
49
|
+
appTokenKey?: string;
|
|
50
|
+
/** Optional external/local secret reference for app-level socket/client runtimes. */
|
|
51
|
+
appTokenRef?: SecretRefInput;
|
|
48
52
|
/** Optional provider ID used for subscription token override lookup. */
|
|
49
53
|
providerId?: string;
|
|
50
54
|
/** OAuth metadata for subscription-backed services. */
|
|
51
55
|
oauth?: OAuthProviderConfig;
|
|
52
56
|
}
|
|
53
|
-
export type ServiceSecretField = 'primary' | 'password' | 'webhookUrl' | 'signingSecret' | 'publicKey';
|
|
57
|
+
export type ServiceSecretField = 'primary' | 'password' | 'webhookUrl' | 'signingSecret' | 'publicKey' | 'appToken';
|
|
54
58
|
export interface ServiceInspection {
|
|
55
59
|
readonly config: ServiceConfig;
|
|
56
60
|
readonly hasPrimaryCredential: boolean;
|
|
@@ -58,6 +62,7 @@ export interface ServiceInspection {
|
|
|
58
62
|
readonly hasWebhookUrl: boolean;
|
|
59
63
|
readonly hasSigningSecret: boolean;
|
|
60
64
|
readonly hasPublicKey: boolean;
|
|
65
|
+
readonly hasAppToken: boolean;
|
|
61
66
|
}
|
|
62
67
|
export interface ServiceConnectionTestResult {
|
|
63
68
|
readonly ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/service-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AASzD,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,UAAU,GACV,YAAY,GACZ,eAAe,GACf,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"service-registry.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/service-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* {
|
|
10
10
|
* "openai": { "name": "openai", "baseUrl": "https://api.openai.com", "authType": "bearer", "tokenKey": "OPENAI_API_KEY" },
|
|
11
11
|
* "github": { "name": "github", "baseUrl": "https://api.github.com", "authType": "bearer", "tokenKey": "GITHUB_TOKEN" },
|
|
12
|
-
* "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
|
|
12
|
+
* "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "appTokenKey": "SLACK_APP_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
|
|
13
13
|
* }
|
|
14
14
|
*/
|
|
15
15
|
import { readFileSync } from 'fs';
|
|
@@ -153,18 +153,21 @@ export class ServiceRegistry {
|
|
|
153
153
|
return this.resolveConfiguredSecret(serviceName, field, config.signingSecretKey, config.signingSecretRef);
|
|
154
154
|
case 'publicKey':
|
|
155
155
|
return this.resolveConfiguredSecret(serviceName, field, config.publicKeyKey, config.publicKeyRef);
|
|
156
|
+
case 'appToken':
|
|
157
|
+
return this.resolveConfiguredSecret(serviceName, field, config.appTokenKey, config.appTokenRef);
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
160
|
async inspect(serviceName) {
|
|
159
161
|
const config = this.get(serviceName);
|
|
160
162
|
if (!config)
|
|
161
163
|
return null;
|
|
162
|
-
const [primary, password, webhookUrl, signingSecret, publicKey,] = await Promise.all([
|
|
164
|
+
const [primary, password, webhookUrl, signingSecret, publicKey, appToken,] = await Promise.all([
|
|
163
165
|
this.resolveSecret(serviceName, 'primary'),
|
|
164
166
|
this.resolveSecret(serviceName, 'password'),
|
|
165
167
|
this.resolveSecret(serviceName, 'webhookUrl'),
|
|
166
168
|
this.resolveSecret(serviceName, 'signingSecret'),
|
|
167
169
|
this.resolveSecret(serviceName, 'publicKey'),
|
|
170
|
+
this.resolveSecret(serviceName, 'appToken'),
|
|
168
171
|
]);
|
|
169
172
|
return {
|
|
170
173
|
config,
|
|
@@ -173,6 +176,7 @@ export class ServiceRegistry {
|
|
|
173
176
|
hasWebhookUrl: webhookUrl !== null && webhookUrl.length > 0,
|
|
174
177
|
hasSigningSecret: signingSecret !== null && signingSecret.length > 0,
|
|
175
178
|
hasPublicKey: publicKey !== null && publicKey.length > 0,
|
|
179
|
+
hasAppToken: appToken !== null && appToken.length > 0,
|
|
176
180
|
};
|
|
177
181
|
}
|
|
178
182
|
async testConnection(serviceName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method-catalog-control-core.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/method-catalog-control-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAkE1E,eAAO,MAAM,0CAA0C,EAAE,SAAS,uBAAuB,
|
|
1
|
+
{"version":3,"file":"method-catalog-control-core.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/method-catalog-control-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAkE1E,eAAO,MAAM,0CAA0C,EAAE,SAAS,uBAAuB,EA8oBxF,CAAC"}
|
|
@@ -596,6 +596,23 @@ export const builtinGatewayControlCoreMethodDescriptors = [
|
|
|
596
596
|
messages: arraySchema(objectSchema({}, [])),
|
|
597
597
|
}, ['session', 'messages']),
|
|
598
598
|
}),
|
|
599
|
+
methodDescriptor({
|
|
600
|
+
id: 'companion.chat.sessions.update',
|
|
601
|
+
title: 'Update Companion Chat Session',
|
|
602
|
+
description: 'Update companion-chat session metadata, including session-local `provider` and `model`, without changing the daemon/TUI current model.',
|
|
603
|
+
category: 'companion',
|
|
604
|
+
scopes: ['write:sessions'],
|
|
605
|
+
http: { method: 'PATCH', path: '/api/companion/chat/sessions/{sessionId}' },
|
|
606
|
+
inputSchema: bodyEnvelopeSchema({
|
|
607
|
+
title: STRING_SCHEMA,
|
|
608
|
+
model: STRING_SCHEMA,
|
|
609
|
+
provider: STRING_SCHEMA,
|
|
610
|
+
systemPrompt: STRING_SCHEMA,
|
|
611
|
+
}, []),
|
|
612
|
+
outputSchema: objectSchema({
|
|
613
|
+
session: SHARED_SESSION_RECORD_SCHEMA,
|
|
614
|
+
}, ['session']),
|
|
615
|
+
}),
|
|
599
616
|
methodDescriptor({
|
|
600
617
|
id: 'companion.chat.sessions.delete',
|
|
601
618
|
title: 'Close Companion Chat Session',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAI3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAIpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CA2FvG;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,qBAAqB,CAAC,EAAE,aAAa,GACpC,2BAA2B,CAoI7B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,
|
|
1
|
+
{"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAI3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAIpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CA2FvG;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,qBAAqB,CAAC,EAAE,aAAa,GACpC,2BAA2B,CAoI7B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,CAgK3B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,aAAa,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,CAAC;IAChF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,yBAAyB,EAAE,WAAW,GAAG,QAAQ,CAAC;IACzK,QAAQ,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,kDAAkD,EAAE,sBAAsB,GAAG,SAAS,EAAE,KAAK,EAAE;QACrJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;CACZ,GAAG,IAAI,CAoBP"}
|
|
@@ -268,6 +268,7 @@ export function createDaemonFacadeCollaborators(options) {
|
|
|
268
268
|
pendingSurfaceReplies: options.pendingSurfaceReplies,
|
|
269
269
|
channelReplyPipeline,
|
|
270
270
|
configManager: runtime.configManager,
|
|
271
|
+
secretsManager: runtime.runtimeServices.secretsManager,
|
|
271
272
|
serviceRegistry: runtime.serviceRegistry,
|
|
272
273
|
agentManager: runtime.agentManager,
|
|
273
274
|
sessionBroker: runtime.sessionBroker,
|
|
@@ -278,6 +279,7 @@ export function createDaemonFacadeCollaborators(options) {
|
|
|
278
279
|
});
|
|
279
280
|
const surfaceActionHelper = new DaemonSurfaceActionHelper({
|
|
280
281
|
serviceRegistry: runtime.serviceRegistry,
|
|
282
|
+
secretsManager: runtime.runtimeServices.secretsManager,
|
|
281
283
|
configManager: runtime.configManager,
|
|
282
284
|
routeBindings: runtime.routeBindings,
|
|
283
285
|
sessionBroker: runtime.sessionBroker,
|
|
@@ -369,6 +371,7 @@ export function createDaemonFacadeCollaborators(options) {
|
|
|
369
371
|
});
|
|
370
372
|
const providerRuntime = new ChannelProviderRuntimeManager({
|
|
371
373
|
configManager: runtime.configManager,
|
|
374
|
+
secretsManager: runtime.runtimeServices.secretsManager,
|
|
372
375
|
serviceRegistry: runtime.serviceRegistry,
|
|
373
376
|
buildSurfaceAdapterContext: () => surfaceActionHelper.buildSurfaceAdapterContext(),
|
|
374
377
|
});
|
|
@@ -15,6 +15,7 @@ import type { ProviderRegistry } from '../../providers/registry.js';
|
|
|
15
15
|
import type { ConfigManager } from '../../config/manager.js';
|
|
16
16
|
import type { RuntimeEventBus } from '../../runtime/events/index.js';
|
|
17
17
|
import type { SecretsManager } from '../../config/secrets.js';
|
|
18
|
+
import type { ProviderAuthRouteDescriptor } from '../../providers/interface.js';
|
|
18
19
|
export interface ProviderModelRef {
|
|
19
20
|
readonly registryKey: string;
|
|
20
21
|
readonly provider: string;
|
|
@@ -34,6 +35,7 @@ export interface ProviderEntry {
|
|
|
34
35
|
readonly configured: boolean;
|
|
35
36
|
readonly configuredVia?: ConfiguredVia;
|
|
36
37
|
readonly envVars: string[];
|
|
38
|
+
readonly routes?: readonly ProviderAuthRouteDescriptor[];
|
|
37
39
|
readonly models: ProviderModelEntry[];
|
|
38
40
|
}
|
|
39
41
|
export interface ListProvidersResponse {
|
|
@@ -58,6 +60,7 @@ export interface CurrentModelResponse {
|
|
|
58
60
|
readonly model: ProviderModelRef | null;
|
|
59
61
|
readonly configured: boolean;
|
|
60
62
|
readonly configuredVia?: ConfiguredVia;
|
|
63
|
+
readonly routes?: readonly ProviderAuthRouteDescriptor[];
|
|
61
64
|
}
|
|
62
65
|
export interface PatchCurrentModelResponse extends CurrentModelResponse {
|
|
63
66
|
readonly persisted: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-routes.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/daemon/http/provider-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-routes.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/daemon/http/provider-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAA2B,MAAM,8BAA8B,CAAC;AAyDzG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAC1D;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtF,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;CAC9D;AAgKD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiB1B"}
|
|
@@ -101,26 +101,78 @@ function getConfiguredVia(providerId, envVars, providerRegistry, secretKeys) {
|
|
|
101
101
|
return 'subscription';
|
|
102
102
|
return undefined;
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function isRuntimeRouteUsable(route) {
|
|
105
|
+
return (route.configured &&
|
|
106
|
+
route.usable !== false &&
|
|
107
|
+
route.freshness !== 'expired' &&
|
|
108
|
+
route.freshness !== 'pending' &&
|
|
109
|
+
route.freshness !== 'unconfigured');
|
|
110
|
+
}
|
|
111
|
+
function getConfiguredViaFromRuntimeRoutes(routes) {
|
|
112
|
+
const usableRoutes = routes.filter(isRuntimeRouteUsable);
|
|
113
|
+
if (usableRoutes.some((route) => route.route === 'subscription-oauth'))
|
|
114
|
+
return 'subscription';
|
|
115
|
+
if (usableRoutes.some((route) => route.route === 'secret-ref'))
|
|
116
|
+
return 'secrets';
|
|
117
|
+
const apiKeyRoute = usableRoutes.find((route) => route.route === 'api-key');
|
|
118
|
+
if (apiKeyRoute) {
|
|
119
|
+
const hasEnv = (apiKeyRoute.envVars ?? []).some((envVar) => {
|
|
120
|
+
const value = process.env[envVar];
|
|
121
|
+
return typeof value === 'string' && value.length > 0;
|
|
122
|
+
});
|
|
123
|
+
return hasEnv ? 'env' : 'secrets';
|
|
124
|
+
}
|
|
125
|
+
if (usableRoutes.some((route) => route.route === 'anonymous'))
|
|
126
|
+
return 'anonymous';
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
async function describeAuthRoutes(providerRegistry, providerId) {
|
|
130
|
+
const maybeRegistry = providerRegistry;
|
|
131
|
+
if (typeof maybeRegistry.describeRuntime !== 'function')
|
|
132
|
+
return [];
|
|
133
|
+
try {
|
|
134
|
+
return (await maybeRegistry.describeRuntime(providerId))?.auth?.routes ?? [];
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
logger.debug('[provider-routes] Failed to read provider runtime metadata', {
|
|
138
|
+
providerId,
|
|
139
|
+
error: err instanceof Error ? err.message : String(err),
|
|
140
|
+
});
|
|
141
|
+
return [];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
async function resolveProviderConfiguredStatus(providerId, envVars, providerRegistry, secretKeys) {
|
|
145
|
+
const routes = await describeAuthRoutes(providerRegistry, providerId);
|
|
146
|
+
const runtimeVia = getConfiguredViaFromRuntimeRoutes(routes);
|
|
147
|
+
const legacyVia = getConfiguredVia(providerId, envVars, providerRegistry, secretKeys);
|
|
148
|
+
const hasUsableRuntimeRoute = routes.some((route) => isRuntimeRouteUsable(route) && route.route !== 'none');
|
|
149
|
+
const configuredVia = runtimeVia ?? legacyVia;
|
|
150
|
+
return {
|
|
151
|
+
configured: configuredVia !== undefined || hasUsableRuntimeRoute,
|
|
152
|
+
configuredVia,
|
|
153
|
+
...(routes.length > 0 ? { routes } : {}),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
async function buildCurrentModelResponse(providerRegistry, secretKeys) {
|
|
105
157
|
let model = null;
|
|
106
158
|
let configured = false;
|
|
107
159
|
let configuredVia;
|
|
160
|
+
let routes;
|
|
108
161
|
try {
|
|
109
162
|
const current = providerRegistry.getCurrentModel();
|
|
110
163
|
const registryKey = current.registryKey ?? `${current.provider}:${current.id}`;
|
|
111
164
|
model = { registryKey, provider: current.provider, id: current.id };
|
|
112
165
|
// Determine configured status for the current model's provider
|
|
113
166
|
const envVars = (BUILTIN_PROVIDER_ENV_KEYS[current.provider] ?? []);
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
167
|
+
const status = await resolveProviderConfiguredStatus(current.provider, envVars, providerRegistry, secretKeys);
|
|
168
|
+
configured = status.configured;
|
|
169
|
+
configuredVia = status.configuredVia;
|
|
170
|
+
routes = status.routes;
|
|
119
171
|
}
|
|
120
172
|
catch {
|
|
121
173
|
// No model configured
|
|
122
174
|
}
|
|
123
|
-
return { model, configured, configuredVia };
|
|
175
|
+
return { model, configured, configuredVia, ...(routes ? { routes } : {}) };
|
|
124
176
|
}
|
|
125
177
|
// ---------------------------------------------------------------------------
|
|
126
178
|
// Route dispatch
|
|
@@ -147,7 +199,6 @@ async function handleListProviders(context) {
|
|
|
147
199
|
// Pre-resolve which secret keys are stored (one async batch, then sync logic below)
|
|
148
200
|
const secretKeys = await resolveSecretKeys(secretsManager);
|
|
149
201
|
const allModels = providerRegistry.listModels();
|
|
150
|
-
const configuredIds = new Set(providerRegistry.getConfiguredProviderIds());
|
|
151
202
|
// Group models by provider
|
|
152
203
|
const byProvider = new Map();
|
|
153
204
|
for (const model of allModels) {
|
|
@@ -165,11 +216,17 @@ async function handleListProviders(context) {
|
|
|
165
216
|
const providers = [];
|
|
166
217
|
for (const [providerId, models] of byProvider) {
|
|
167
218
|
const envVars = (BUILTIN_PROVIDER_ENV_KEYS[providerId] ?? []);
|
|
168
|
-
const
|
|
169
|
-
const configured = via !== undefined;
|
|
170
|
-
const configuredVia = configured ? via : undefined;
|
|
219
|
+
const status = await resolveProviderConfiguredStatus(providerId, envVars, providerRegistry, secretKeys);
|
|
171
220
|
const label = getProviderLabel(providerId);
|
|
172
|
-
providers.push({
|
|
221
|
+
providers.push({
|
|
222
|
+
id: providerId,
|
|
223
|
+
label,
|
|
224
|
+
configured: status.configured,
|
|
225
|
+
configuredVia: status.configuredVia,
|
|
226
|
+
envVars,
|
|
227
|
+
...(status.routes ? { routes: status.routes } : {}),
|
|
228
|
+
models,
|
|
229
|
+
});
|
|
173
230
|
}
|
|
174
231
|
// Sort: configured first, then alphabetical
|
|
175
232
|
providers.sort((a, b) => {
|
|
@@ -177,7 +234,7 @@ async function handleListProviders(context) {
|
|
|
177
234
|
return a.configured ? -1 : 1;
|
|
178
235
|
return a.id.localeCompare(b.id);
|
|
179
236
|
});
|
|
180
|
-
const currentModel = buildCurrentModelResponse(providerRegistry, secretKeys).model;
|
|
237
|
+
const currentModel = (await buildCurrentModelResponse(providerRegistry, secretKeys)).model;
|
|
181
238
|
// F-PROV-009 (SDK 0.21.36): always emit `secretsResolutionSkipped` as a boolean so
|
|
182
239
|
// consumers can reliably distinguish "secrets layer not consulted" from "no such field"
|
|
183
240
|
// (prior optional-spread emission was undetectable from the consumer side).
|
|
@@ -193,7 +250,7 @@ async function handleListProviders(context) {
|
|
|
193
250
|
// ---------------------------------------------------------------------------
|
|
194
251
|
async function handleGetCurrentModel(context) {
|
|
195
252
|
const secretKeys = await resolveSecretKeys(context.secretsManager);
|
|
196
|
-
return Response.json(buildCurrentModelResponse(context.providerRegistry, secretKeys));
|
|
253
|
+
return Response.json(await buildCurrentModelResponse(context.providerRegistry, secretKeys));
|
|
197
254
|
}
|
|
198
255
|
// ---------------------------------------------------------------------------
|
|
199
256
|
// PATCH /api/providers/current
|
|
@@ -214,10 +271,13 @@ async function handlePatchCurrentModel(req, context) {
|
|
|
214
271
|
if (!modelDef) {
|
|
215
272
|
return Response.json({ error: `Model '${registryKey}' not in registry`, code: 'MODEL_NOT_FOUND' }, { status: 400 });
|
|
216
273
|
}
|
|
217
|
-
// Check provider is configured
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
274
|
+
// Check provider is configured. Runtime auth routes cover subscription-backed
|
|
275
|
+
// providers like OpenAI, where the public model remains `openai:*` but the
|
|
276
|
+
// actual turn path aliases to the subscription-backed provider at runtime.
|
|
277
|
+
const envVars = (BUILTIN_PROVIDER_ENV_KEYS[modelDef.provider] ?? []);
|
|
278
|
+
const secretKeys = await resolveSecretKeys(context.secretsManager);
|
|
279
|
+
const configuredStatus = await resolveProviderConfiguredStatus(modelDef.provider, envVars, providerRegistry, secretKeys);
|
|
280
|
+
if (!configuredStatus.configured) {
|
|
221
281
|
const errorMessage = envVars.length > 0
|
|
222
282
|
? `Provider '${modelDef.provider}' not configured: set one of [${envVars.join(', ')}]`
|
|
223
283
|
: `Provider '${modelDef.provider}' is not configured. Check the provider's configuration (env var, subscription, or network discovery).`;
|
|
@@ -248,6 +308,5 @@ async function handlePatchCurrentModel(req, context) {
|
|
|
248
308
|
}
|
|
249
309
|
// setCurrentModel emits MODEL_CHANGED synchronously on the same runtimeBus —
|
|
250
310
|
// no second emission needed here.
|
|
251
|
-
|
|
252
|
-
return Response.json({ ...buildCurrentModelResponse(providerRegistry, secretKeys), persisted });
|
|
311
|
+
return Response.json({ ...(await buildCurrentModelResponse(providerRegistry, secretKeys)), persisted });
|
|
253
312
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ConfigManager } from '../config/manager.js';
|
|
2
|
+
import type { SecretsManager } from '../config/secrets.js';
|
|
2
3
|
import type { ServiceRegistry } from '../config/service-registry.js';
|
|
3
4
|
import type { AgentRecord } from '../tools/agent/index.js';
|
|
4
5
|
import type { AgentManager } from '../tools/agent/index.js';
|
|
@@ -11,6 +12,7 @@ import type { RuntimeEventBus } from '../runtime/events/index.js';
|
|
|
11
12
|
import type { CompanionChatManager } from '../companion/companion-chat-manager.js';
|
|
12
13
|
interface DaemonSurfaceActionContext {
|
|
13
14
|
readonly serviceRegistry: ServiceRegistry;
|
|
15
|
+
readonly secretsManager: Pick<SecretsManager, 'get' | 'getGlobalHome'>;
|
|
14
16
|
readonly configManager: ConfigManager;
|
|
15
17
|
readonly routeBindings: RouteBindingManager;
|
|
16
18
|
readonly sessionBroker: SharedSessionBroker;
|