@codiac.io/codiac-cli 1.3.267 → 1.3.273
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 +359 -171
- package/dist/commands/ai/agent/csp/add.d.ts +50 -0
- package/dist/commands/ai/agent/csp/add.js +157 -0
- package/dist/commands/ai/agent/csp/add.js.map +1 -0
- package/dist/commands/ai/agent/csp/delete.d.ts +43 -0
- package/dist/commands/ai/agent/csp/delete.js +137 -0
- package/dist/commands/ai/agent/csp/delete.js.map +1 -0
- package/dist/commands/ai/agent/csp/list.d.ts +36 -0
- package/dist/commands/ai/agent/csp/list.js +102 -0
- package/dist/commands/ai/agent/csp/list.js.map +1 -0
- package/dist/commands/ai/agent/install.d.ts +86 -0
- package/dist/commands/ai/agent/install.js +245 -3
- package/dist/commands/ai/agent/install.js.map +1 -1
- package/dist/commands/ai/model/install.d.ts +16 -0
- package/dist/commands/ai/model/install.js +28 -4
- package/dist/commands/ai/model/install.js.map +1 -1
- package/dist/commands/cluster/agent/install.js +7 -2
- package/dist/commands/cluster/agent/install.js.map +1 -1
- package/dist/uilogic/agent-csp-credentials.d.ts +47 -0
- package/dist/uilogic/agent-csp-credentials.js +67 -0
- package/dist/uilogic/agent-csp-credentials.js.map +1 -0
- package/oclif.manifest.json +200 -2
- package/package.json +1 -1
|
@@ -12,6 +12,18 @@ export interface IAgentInstallRequest extends IEnterpriseEntity {
|
|
|
12
12
|
naming?: string;
|
|
13
13
|
/** Domain paired with the naming strategy for the ingress host (pass-through only; strategy UX lands separately). */
|
|
14
14
|
domain?: string;
|
|
15
|
+
/** Secret store that agent credentials (and any profile secrets) get written to.
|
|
16
|
+
* Only asked when the enterprise has more than one — with a single store there is
|
|
17
|
+
* nothing to disambiguate. Not a secret itself, so it is safe to echo. */
|
|
18
|
+
secretStore?: string;
|
|
19
|
+
/** True when the enterprise has at least one secret store. Credentials have
|
|
20
|
+
* nowhere to go without one, so the prompts are skipped entirely rather than
|
|
21
|
+
* collecting a password the provisioner would discard. */
|
|
22
|
+
hasSecretStore?: boolean;
|
|
23
|
+
/** Cloud the agent's `csp.*` credentials authenticate against. DERIVED from the
|
|
24
|
+
* cabinet's cluster rather than asked — the agent will act on that cluster's
|
|
25
|
+
* cloud, so anything else would be wrong. Names a cloud, not a credential. */
|
|
26
|
+
cspProvider?: string;
|
|
15
27
|
}
|
|
16
28
|
export default class AiAgentInstall extends CommandBaseExec<IAgentInstallRequest> {
|
|
17
29
|
static description: string;
|
|
@@ -43,6 +55,80 @@ export default class AiAgentInstall extends CommandBaseExec<IAgentInstallRequest
|
|
|
43
55
|
]>;
|
|
44
56
|
buildCandidate_silently(partial: AtLeast<IAgentInstallRequest, "enterprise">, _rootMap: RootMap, _explicit?: Partial<IAgentInstallRequest>): Promise<IAgentInstallRequest | undefined>;
|
|
45
57
|
buildCandidate_interactively(partial: AtLeast<IAgentInstallRequest, "enterprise">, rootMap: RootMap, takeDefaults: boolean, explicit?: Partial<IAgentInstallRequest>): Promise<IAgentInstallRequest | undefined>;
|
|
58
|
+
/**
|
|
59
|
+
* The cabinet the agent lands in — pick an existing one, or create one inline.
|
|
60
|
+
*
|
|
61
|
+
* WHY this lives here rather than in `rootMapUtils.promptForCabinet`: that
|
|
62
|
+
* picker is shared with `asset undeploy`, `asset recycle`, `snapshot deploy`
|
|
63
|
+
* and others, where "create a new cabinet" is a meaningless answer — you
|
|
64
|
+
* cannot undeploy from a cabinet that has never held anything. Installing an
|
|
65
|
+
* agent is the one flow where a brand-new cabinet is routine, and often the
|
|
66
|
+
* entire point ("give me a cabinet with an agent in it"). Putting the option
|
|
67
|
+
* in the shared picker would change the prompt for all of those commands.
|
|
68
|
+
*
|
|
69
|
+
* Shape mirrors the existing-or-new question used for host mappings further
|
|
70
|
+
* down this same file, so the two branching prompts read alike.
|
|
71
|
+
*
|
|
72
|
+
* @returns the chosen/created cabinet and its cluster, or undefined on a clean
|
|
73
|
+
* cancel (caller aborts without doing any work).
|
|
74
|
+
*/
|
|
75
|
+
private resolveCabinet;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a cabinet through the same relay call `cod cabinet create` uses, so
|
|
78
|
+
* the two paths cannot drift on provisioning behavior.
|
|
79
|
+
*
|
|
80
|
+
* A cabinet is defined by its ENVIRONMENT, not by a cluster directly — the
|
|
81
|
+
* environment carries the cluster attachment — hence `promptForEnviroCluster`
|
|
82
|
+
* rather than a bare cluster picker. Cloud creds are gathered before the call
|
|
83
|
+
* for the same reason `cabinet create` gathers them: the relay provisions the
|
|
84
|
+
* namespace server-side and cannot perform an interactive login.
|
|
85
|
+
*
|
|
86
|
+
* @returns the created cabinet and its cluster, or undefined if creation
|
|
87
|
+
* failed or was cancelled — callers must not install into a cabinet
|
|
88
|
+
* that does not exist.
|
|
89
|
+
*/
|
|
90
|
+
private createCabinet;
|
|
91
|
+
/**
|
|
92
|
+
* Which secret store agent credentials get written to.
|
|
93
|
+
*
|
|
94
|
+
* Only asks when there is more than one: with a single store there is nothing to
|
|
95
|
+
* disambiguate, and the relay picks it. Filtered to actual secret stores — a
|
|
96
|
+
* generic KVP store is not somewhere to put a password.
|
|
97
|
+
*
|
|
98
|
+
* Answering this up front also unblocks an enterprise with two vaults, which
|
|
99
|
+
* previously could not install an agent at all: the relay's ambiguity branch
|
|
100
|
+
* blocked and pointed at a framework-profile override most people have no reason
|
|
101
|
+
* to touch.
|
|
102
|
+
*/
|
|
103
|
+
private setSecretStore;
|
|
104
|
+
/** Codiac credentials — the same regardless of which cloud the cabinet runs on. */
|
|
105
|
+
private static readonly CODIAC_CREDENTIAL_PROMPTS;
|
|
106
|
+
/**
|
|
107
|
+
* Optionally collect the credentials the agent will run as, and fold them into
|
|
108
|
+
* `inputs` for the provisioner to put in the secret store.
|
|
109
|
+
*
|
|
110
|
+
* Cloud logins loop: an agent can hold SEVERAL (`csp.<name>.*`), because a
|
|
111
|
+
* tenant's cabinets span clouds and subscriptions. The loop runs the same
|
|
112
|
+
* collection `cod ai agent csp add` uses, so a login added here is identical to
|
|
113
|
+
* one added later.
|
|
114
|
+
*
|
|
115
|
+
* Gathered HERE rather than on the candidate on purpose: the candidate is echoed
|
|
116
|
+
* by `--echo`/`--to-script`, so anything on it can end up in a shell history or a
|
|
117
|
+
* committed script. These never touch it.
|
|
118
|
+
*
|
|
119
|
+
* Skipped when values already arrived via `--input` (the headless path) and in
|
|
120
|
+
* --silent mode, where prompting is not allowed.
|
|
121
|
+
*/
|
|
122
|
+
private promptForCredentials;
|
|
123
|
+
/**
|
|
124
|
+
* Adds cloud logins until the user is done. Each gets a name, which becomes part
|
|
125
|
+
* of its input keys and keeps one login's secrets from clobbering another's.
|
|
126
|
+
*
|
|
127
|
+
* The cabinet's own cloud is offered as the default provider, since that is the
|
|
128
|
+
* one the agent certainly needs — but not forced, because an agent may well need
|
|
129
|
+
* credentials for a cloud it does not itself run on.
|
|
130
|
+
*/
|
|
131
|
+
private promptForCspLogins;
|
|
46
132
|
private setType;
|
|
47
133
|
private setName;
|
|
48
134
|
private setHasIngress;
|
|
@@ -5,6 +5,8 @@ const core_1 = require("@oclif/core");
|
|
|
5
5
|
const _ = require("lodash");
|
|
6
6
|
const host_name_strategy_enum_1 = require("@codiac.io/codiac-domain/host-name-strategy-enum");
|
|
7
7
|
const command_base_exec_1 = require("../../../command-base-exec");
|
|
8
|
+
const contracts_1 = require("../../../apis/codiac-api/contracts");
|
|
9
|
+
const agent_csp_credentials_1 = require("../../../uilogic/agent-csp-credentials");
|
|
8
10
|
const framework_spec_1 = require("../../../uilogic/framework-spec");
|
|
9
11
|
const AGENT_TYPES = ['openclaw', 'hermes', 'byoa'];
|
|
10
12
|
/** Validates a user-supplied strategy against the enum's VALUE form (snake_case wire
|
|
@@ -95,9 +97,9 @@ class AiAgentInstall extends command_base_exec_1.CommandBaseExec {
|
|
|
95
97
|
return undefined; // clean cancel — lifecycle prints "Operation cancelled. No work was done."
|
|
96
98
|
}
|
|
97
99
|
// --- cabinet ----------------------------------------------------------
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
const cabinet = yield this.resolveCabinet(partial, rootMap, takeDefaults, explicit);
|
|
101
|
+
if (cabinet == undefined)
|
|
102
|
+
return undefined; // clean cancel
|
|
101
103
|
partial.cabinet = cabinet.name;
|
|
102
104
|
// --- CSP creds for the cabinet's cluster ----------------------------------
|
|
103
105
|
// Installing the operator + agent into the cabinet's cluster needs the tenant's
|
|
@@ -110,6 +112,13 @@ class AiAgentInstall extends command_base_exec_1.CommandBaseExec {
|
|
|
110
112
|
throw new Error(`Cabinet [${cabinet.name}] has no recognized cluster [${cabinet.cluster}].`);
|
|
111
113
|
}
|
|
112
114
|
yield this.cspContextualizer.promptForCloudProviderCreds(this.ioc, cluster.provider, takeDefaults, undefined, undefined, cluster.providerSubscriptionId);
|
|
115
|
+
// --- secret store + the cloud the agent's own credentials target ---------
|
|
116
|
+
// The cloud is DERIVED from the cabinet's cluster, not asked: the agent will
|
|
117
|
+
// act on that cluster's cloud, so any other answer would be wrong.
|
|
118
|
+
const store = yield this.setSecretStore(partial.secretStore);
|
|
119
|
+
partial.secretStore = store.name;
|
|
120
|
+
partial.hasSecretStore = store.any;
|
|
121
|
+
partial.cspProvider = cluster.provider;
|
|
113
122
|
// --- name ---------------------------------------------------------------
|
|
114
123
|
partial.name = yield this.setName(partial.name, partial.type, takeDefaults, explicit === null || explicit === void 0 ? void 0 : explicit.name);
|
|
115
124
|
// --- hasIngress -----------------------------------------------------------
|
|
@@ -134,6 +143,220 @@ class AiAgentInstall extends command_base_exec_1.CommandBaseExec {
|
|
|
134
143
|
return yield this.buildCandidate_silently(partial, rootMap, explicit);
|
|
135
144
|
});
|
|
136
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* The cabinet the agent lands in — pick an existing one, or create one inline.
|
|
148
|
+
*
|
|
149
|
+
* WHY this lives here rather than in `rootMapUtils.promptForCabinet`: that
|
|
150
|
+
* picker is shared with `asset undeploy`, `asset recycle`, `snapshot deploy`
|
|
151
|
+
* and others, where "create a new cabinet" is a meaningless answer — you
|
|
152
|
+
* cannot undeploy from a cabinet that has never held anything. Installing an
|
|
153
|
+
* agent is the one flow where a brand-new cabinet is routine, and often the
|
|
154
|
+
* entire point ("give me a cabinet with an agent in it"). Putting the option
|
|
155
|
+
* in the shared picker would change the prompt for all of those commands.
|
|
156
|
+
*
|
|
157
|
+
* Shape mirrors the existing-or-new question used for host mappings further
|
|
158
|
+
* down this same file, so the two branching prompts read alike.
|
|
159
|
+
*
|
|
160
|
+
* @returns the chosen/created cabinet and its cluster, or undefined on a clean
|
|
161
|
+
* cancel (caller aborts without doing any work).
|
|
162
|
+
*/
|
|
163
|
+
resolveCabinet(partial, rootMap, takeDefaults, explicit) {
|
|
164
|
+
var _a;
|
|
165
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
const ent = rootMap.enterprises.find(e => e.name === partial.enterprise);
|
|
167
|
+
const existingCabinets = ((_a = ent === null || ent === void 0 ? void 0 : ent.environments) !== null && _a !== void 0 ? _a : []).flatMap(env => { var _a; return (_a = env.cabinets) !== null && _a !== void 0 ? _a : []; });
|
|
168
|
+
// With nothing to choose from the question is rhetorical — go straight to
|
|
169
|
+
// create, rather than letting the shared picker throw "no cabinets were
|
|
170
|
+
// found". A cabinet named on the command line is already an explicit
|
|
171
|
+
// answer, so don't second-guess it with a prompt either.
|
|
172
|
+
let createNew = existingCabinets.length === 0;
|
|
173
|
+
if (!createNew && !(explicit === null || explicit === void 0 ? void 0 : explicit.cabinet)) {
|
|
174
|
+
const choice = yield this._ui.promptSelect("useExistingCabinet", "Use an existing cabinet, or create a new one?", [
|
|
175
|
+
{ name: "Use an existing cabinet", value: "existing" },
|
|
176
|
+
{ name: "Create a new one", value: "new" },
|
|
177
|
+
]);
|
|
178
|
+
if (!choice)
|
|
179
|
+
return undefined; // clean cancel
|
|
180
|
+
createNew = choice === "new";
|
|
181
|
+
}
|
|
182
|
+
if (!createNew) {
|
|
183
|
+
// Reuse the shared picker rather than hand-rolling selection/validation/
|
|
184
|
+
// confirmation logic (it already implements Rules 1-3).
|
|
185
|
+
const [cab] = yield this.rootMapUtils.promptForCabinet(partial.enterprise, rootMap, partial.cabinet, takeDefaults, undefined, explicit === null || explicit === void 0 ? void 0 : explicit.cabinet);
|
|
186
|
+
return { name: cab.name, cluster: cab.cluster };
|
|
187
|
+
}
|
|
188
|
+
return yield this.createCabinet(partial.enterprise, rootMap, takeDefaults);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Creates a cabinet through the same relay call `cod cabinet create` uses, so
|
|
193
|
+
* the two paths cannot drift on provisioning behavior.
|
|
194
|
+
*
|
|
195
|
+
* A cabinet is defined by its ENVIRONMENT, not by a cluster directly — the
|
|
196
|
+
* environment carries the cluster attachment — hence `promptForEnviroCluster`
|
|
197
|
+
* rather than a bare cluster picker. Cloud creds are gathered before the call
|
|
198
|
+
* for the same reason `cabinet create` gathers them: the relay provisions the
|
|
199
|
+
* namespace server-side and cannot perform an interactive login.
|
|
200
|
+
*
|
|
201
|
+
* @returns the created cabinet and its cluster, or undefined if creation
|
|
202
|
+
* failed or was cancelled — callers must not install into a cabinet
|
|
203
|
+
* that does not exist.
|
|
204
|
+
*/
|
|
205
|
+
createCabinet(enterprise, rootMap, takeDefaults) {
|
|
206
|
+
var _a, _b, _c, _d;
|
|
207
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
208
|
+
// `prompt` hands back an EntryValue; normalize to a trimmed string so the
|
|
209
|
+
// name we create, echo, and later install into are all the same value.
|
|
210
|
+
const cabinetName = String((_a = yield this._ui.prompt("newCabinetName", "New cabinet name: ", true)) !== null && _a !== void 0 ? _a : "").trim();
|
|
211
|
+
if (_.isEmpty(cabinetName))
|
|
212
|
+
return undefined; // clean cancel
|
|
213
|
+
const [environment, cluster] = yield this.rootMapUtils.promptForEnviroCluster(rootMap, enterprise, undefined, undefined, takeDefaults);
|
|
214
|
+
yield this.cspContextualizer.promptForCloudProviderCreds(this.ioc, cluster.provider, takeDefaults, undefined, undefined, cluster.providerSubscriptionId);
|
|
215
|
+
const label = `${enterprise}/${cabinetName}`;
|
|
216
|
+
this._ui.userMessage(`Creating cabinet ${this._styler.hilite(label)}...`);
|
|
217
|
+
const result = yield this.watcher.triggerAndWatch((correlationId, socketId) => {
|
|
218
|
+
const req = {
|
|
219
|
+
targetCabinet: { enterprise, environment: environment.name, cabinet: cabinetName, cluster: cluster.name },
|
|
220
|
+
targetClusterName: cluster.name,
|
|
221
|
+
socketId,
|
|
222
|
+
correlationId,
|
|
223
|
+
};
|
|
224
|
+
return this.genRelayClient.Call.cabinetCreate(req);
|
|
225
|
+
});
|
|
226
|
+
if (result.error || !result.success) {
|
|
227
|
+
const msg = `Error creating cabinet [${label}]: ${(_b = result.message) !== null && _b !== void 0 ? _b : ""} ${(_d = (_c = result.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : ""}`.trimEnd();
|
|
228
|
+
this.logger.error(msg, result.error);
|
|
229
|
+
this._ui.userMessage(`${this._styler.colorCritical("ERROR!")} ${msg}`);
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
this._ui.userMessage(`${this._styler.colorGood("SUCCESS!")} Cabinet [${this._styler.hilite(label)}] created.`);
|
|
233
|
+
return { name: cabinetName, cluster: cluster.name };
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Which secret store agent credentials get written to.
|
|
238
|
+
*
|
|
239
|
+
* Only asks when there is more than one: with a single store there is nothing to
|
|
240
|
+
* disambiguate, and the relay picks it. Filtered to actual secret stores — a
|
|
241
|
+
* generic KVP store is not somewhere to put a password.
|
|
242
|
+
*
|
|
243
|
+
* Answering this up front also unblocks an enterprise with two vaults, which
|
|
244
|
+
* previously could not install an agent at all: the relay's ambiguity branch
|
|
245
|
+
* blocked and pointed at a framework-profile override most people have no reason
|
|
246
|
+
* to touch.
|
|
247
|
+
*/
|
|
248
|
+
setSecretStore(userInput) {
|
|
249
|
+
var _a, _b;
|
|
250
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
251
|
+
if (userInput && !_.isEmpty(userInput))
|
|
252
|
+
return { name: userInput, any: true };
|
|
253
|
+
try {
|
|
254
|
+
const all = (_a = yield this._codiacApi.KvpStoreDef.readMany({ all: true }, { throwNotFound: false })) !== null && _a !== void 0 ? _a : [];
|
|
255
|
+
const stores = all.filter(x => [contracts_1.KvpStoreTypesEnum.awsKeyVault, contracts_1.KvpStoreTypesEnum.azKeyVault]
|
|
256
|
+
.map(t => t.toString()).includes(x.type));
|
|
257
|
+
// `any: false` is what suppresses the credential prompts. Reporting "no store"
|
|
258
|
+
// is the whole point: without it we ask for a password, ship it, and the
|
|
259
|
+
// provisioner drops it on the floor with nowhere to put it.
|
|
260
|
+
if (stores.length === 0)
|
|
261
|
+
return { any: false };
|
|
262
|
+
// Always ask, even with one store. Secrets are going somewhere durable and
|
|
263
|
+
// shared, and the destination is worth stating out loud rather than inferring
|
|
264
|
+
// — a silent single-store default is exactly how a credential ends up in a
|
|
265
|
+
// vault the operator did not expect. It is also asked unconditionally because
|
|
266
|
+
// a hermes install needs a store either way: openRouterKey and
|
|
267
|
+
// dashboard.password are vault-sourced secrets on the platform profile.
|
|
268
|
+
const choices = stores.map(x => ({ name: `${x.name} (${x.type})`, value: x.name }));
|
|
269
|
+
const picked = yield this._ui.promptSelect('secretStore', 'Secret store for this agent\'s secrets:', choices);
|
|
270
|
+
return { name: picked !== null && picked !== void 0 ? picked : undefined, any: true };
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
// A listing failure is not proof there is no store, so allow the prompts and
|
|
274
|
+
// let the relay resolve it — but never block the install on this.
|
|
275
|
+
this.logger.detail(`Could not list secret stores: ${(_b = err === null || err === void 0 ? void 0 : err.message) !== null && _b !== void 0 ? _b : err}`);
|
|
276
|
+
return { any: true };
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Optionally collect the credentials the agent will run as, and fold them into
|
|
282
|
+
* `inputs` for the provisioner to put in the secret store.
|
|
283
|
+
*
|
|
284
|
+
* Cloud logins loop: an agent can hold SEVERAL (`csp.<name>.*`), because a
|
|
285
|
+
* tenant's cabinets span clouds and subscriptions. The loop runs the same
|
|
286
|
+
* collection `cod ai agent csp add` uses, so a login added here is identical to
|
|
287
|
+
* one added later.
|
|
288
|
+
*
|
|
289
|
+
* Gathered HERE rather than on the candidate on purpose: the candidate is echoed
|
|
290
|
+
* by `--echo`/`--to-script`, so anything on it can end up in a shell history or a
|
|
291
|
+
* committed script. These never touch it.
|
|
292
|
+
*
|
|
293
|
+
* Skipped when values already arrived via `--input` (the headless path) and in
|
|
294
|
+
* --silent mode, where prompting is not allowed.
|
|
295
|
+
*/
|
|
296
|
+
promptForCredentials(inputs, cspProvider, hasSecretStore = true) {
|
|
297
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
298
|
+
if (this.isSilentMode())
|
|
299
|
+
return;
|
|
300
|
+
if (Object.keys(inputs).some(k => k.startsWith('codiac.') || k.startsWith('csp.')))
|
|
301
|
+
return;
|
|
302
|
+
// No store means nowhere to put them. Asking anyway collects a real password,
|
|
303
|
+
// sends it, and the provisioner discards it with "no secret store could be
|
|
304
|
+
// resolved" — the user has then typed a credential for nothing and may believe
|
|
305
|
+
// the agent has it. Say why instead, and name the command that fixes it.
|
|
306
|
+
if (!hasSecretStore) {
|
|
307
|
+
this._ui.userMessage(this._styler.dim('No secret store is configured for this enterprise, so agent credentials cannot be stored. ' +
|
|
308
|
+
`Add one with ${this._styler.hilite('cod secretStore capture')}, then ` +
|
|
309
|
+
`${this._styler.hilite('cod ai agent csp add')} to give this agent a cloud login.`));
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const wants = yield this._ui.promptConfirm('agentCreds', 'Give this agent its own Codiac login? (stored in your secret store)', false);
|
|
313
|
+
if (wants) {
|
|
314
|
+
for (const c of AiAgentInstall.CODIAC_CREDENTIAL_PROMPTS) {
|
|
315
|
+
const value = c.secret
|
|
316
|
+
? yield this._ui.promptPassword(c.key, `${c.label}:`)
|
|
317
|
+
: yield this._ui.prompt(c.key, `${c.label}:`, false);
|
|
318
|
+
if (value != undefined && String(value).trim() !== '')
|
|
319
|
+
inputs[c.key] = String(value).trim();
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
yield this.promptForCspLogins(inputs, cspProvider);
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Adds cloud logins until the user is done. Each gets a name, which becomes part
|
|
327
|
+
* of its input keys and keeps one login's secrets from clobbering another's.
|
|
328
|
+
*
|
|
329
|
+
* The cabinet's own cloud is offered as the default provider, since that is the
|
|
330
|
+
* one the agent certainly needs — but not forced, because an agent may well need
|
|
331
|
+
* credentials for a cloud it does not itself run on.
|
|
332
|
+
*/
|
|
333
|
+
promptForCspLogins(inputs, cabinetProvider) {
|
|
334
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
335
|
+
let another = yield this._ui.promptConfirm('addCspCreds', 'Add cloud (CSP) credentials for this agent?', false);
|
|
336
|
+
while (another) {
|
|
337
|
+
const providerChoices = agent_csp_credentials_1.SUPPORTED_CSPS.map(p => ({
|
|
338
|
+
name: p === cabinetProvider ? `${p} (this cabinet's cloud)` : p,
|
|
339
|
+
value: p,
|
|
340
|
+
}));
|
|
341
|
+
const provider = yield this._ui.promptSelect('cspProvider', 'Cloud:', providerChoices);
|
|
342
|
+
if (!provider)
|
|
343
|
+
break;
|
|
344
|
+
// Named so several logins can coexist. Defaulting to the provider keeps the
|
|
345
|
+
// common single-login case a plain Enter.
|
|
346
|
+
const suggested = agent_csp_credentials_1.SUPPORTED_CSPS.includes(provider) ? provider : 'csp';
|
|
347
|
+
const raw = yield this._ui.prompt('cspLoginName', `Name for this login [${suggested}]:`, false);
|
|
348
|
+
const login = (String(raw !== null && raw !== void 0 ? raw : '').trim() || suggested).replace(/[^A-Za-z0-9-]/g, '-');
|
|
349
|
+
const captured = yield (0, agent_csp_credentials_1.promptForCspLogin)(this._ui, inputs, login, provider);
|
|
350
|
+
if (captured.length === 0) {
|
|
351
|
+
this._ui.userMessage(this._styler.colorWarning(`No values entered for [${login}] — nothing stored.`));
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
this._ui.userMessage(`Captured ${captured.length} field(s) for ${this._styler.hilite(login)} (${provider}).`);
|
|
355
|
+
}
|
|
356
|
+
another = yield this._ui.promptConfirm('addAnotherCsp', 'Add another cloud login?', false);
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
}
|
|
137
360
|
setType(userInput, takeDefaults, overrides) {
|
|
138
361
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
139
362
|
let invalidInput = false;
|
|
@@ -260,6 +483,13 @@ class AiAgentInstall extends command_base_exec_1.CommandBaseExec {
|
|
|
260
483
|
cmd.push("--naming", candidate.naming);
|
|
261
484
|
if (candidate.domain)
|
|
262
485
|
cmd.push("--domain", candidate.domain);
|
|
486
|
+
// Credentials are deliberately NOT echoed here — they are gathered at execute
|
|
487
|
+
// time and never put on the candidate, so a replayed command (or a --to-script
|
|
488
|
+
// file) can never carry a password.
|
|
489
|
+
if (candidate.secretStore)
|
|
490
|
+
cmd.push("--input", `secretStore=${candidate.secretStore}`);
|
|
491
|
+
if (candidate.cspProvider)
|
|
492
|
+
cmd.push("--input", `csp.provider=${candidate.cspProvider}`);
|
|
263
493
|
cmd.push("--silent");
|
|
264
494
|
return cmd;
|
|
265
495
|
}
|
|
@@ -278,6 +508,13 @@ class AiAgentInstall extends command_base_exec_1.CommandBaseExec {
|
|
|
278
508
|
if (eq > 0)
|
|
279
509
|
inputs[kv.slice(0, eq)] = kv.slice(eq + 1);
|
|
280
510
|
}
|
|
511
|
+
if (candidate.secretStore && inputs['secretStore'] === undefined) {
|
|
512
|
+
inputs['secretStore'] = candidate.secretStore;
|
|
513
|
+
}
|
|
514
|
+
if (candidate.cspProvider && inputs['csp.provider'] === undefined) {
|
|
515
|
+
inputs['csp.provider'] = candidate.cspProvider;
|
|
516
|
+
}
|
|
517
|
+
yield this.promptForCredentials(inputs, candidate.cspProvider, candidate.hasSecretStore !== false);
|
|
281
518
|
const attemptedCodes = new Set();
|
|
282
519
|
while (true) {
|
|
283
520
|
const request = this.toProvisionRequest(candidate, inputs);
|
|
@@ -431,4 +668,9 @@ AiAgentInstall.flags = {
|
|
|
431
668
|
"to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Renders the equivalent non-interactive command without executing it.' }),
|
|
432
669
|
};
|
|
433
670
|
AiAgentInstall.args = {};
|
|
671
|
+
/** Codiac credentials — the same regardless of which cloud the cabinet runs on. */
|
|
672
|
+
AiAgentInstall.CODIAC_CREDENTIAL_PROMPTS = [
|
|
673
|
+
{ key: 'codiac.username', label: 'Codiac username', secret: false },
|
|
674
|
+
{ key: 'codiac.password', label: 'Codiac password', secret: true },
|
|
675
|
+
];
|
|
434
676
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/ai/agent/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/ai/agent/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,22 @@ export default class AiModelInstall extends CommandBaseExec<IModelInstallRequest
|
|
|
67
67
|
private setModel;
|
|
68
68
|
private setRuntime;
|
|
69
69
|
private setAttach;
|
|
70
|
+
/**
|
|
71
|
+
* The agent to wire the model into.
|
|
72
|
+
*
|
|
73
|
+
* Picks from the enterprise's registered assets instead of taking free text.
|
|
74
|
+
* This used to be a bare prompt, so any string sailed through to the relay and
|
|
75
|
+
* failed only after the model had already deployed — and the string people
|
|
76
|
+
* naturally reach for is the CABINET name, which reads exactly like an agent
|
|
77
|
+
* name at a prompt but names no asset at all.
|
|
78
|
+
*
|
|
79
|
+
* Deliberately NOT filtered down to "agents": nothing on an Asset marks it as
|
|
80
|
+
* one (an agent is a helm asset, and so is a served model), so any filter I
|
|
81
|
+
* could write would risk hiding a legitimately renamed agent — worse than
|
|
82
|
+
* showing a few extra names. The list is the existing shared picker, which
|
|
83
|
+
* also auto-selects when there is exactly one asset and drops an invalid
|
|
84
|
+
* `--agent` rather than passing it on.
|
|
85
|
+
*/
|
|
70
86
|
private setAgent;
|
|
71
87
|
private setFramework;
|
|
72
88
|
private setBaseUrl;
|
|
@@ -132,7 +132,7 @@ class AiModelInstall extends command_base_exec_1.CommandBaseExec {
|
|
|
132
132
|
// --- attach -----------------------------------------------------------
|
|
133
133
|
partial.attach = yield this.setAttach(partial.attach, takeDefaults, overrides);
|
|
134
134
|
if (partial.attach === 'existing') {
|
|
135
|
-
partial.agent = yield this.setAgent(partial.agent, explicit === null || explicit === void 0 ? void 0 : explicit.agent);
|
|
135
|
+
partial.agent = yield this.setAgent(partial.agent, rootMap, partial.enterprise, explicit === null || explicit === void 0 ? void 0 : explicit.agent);
|
|
136
136
|
}
|
|
137
137
|
else if (partial.attach === 'new') {
|
|
138
138
|
partial.framework = yield this.setFramework(partial.framework, explicit === null || explicit === void 0 ? void 0 : explicit.framework);
|
|
@@ -286,14 +286,38 @@ class AiModelInstall extends command_base_exec_1.CommandBaseExec {
|
|
|
286
286
|
return resolved;
|
|
287
287
|
});
|
|
288
288
|
}
|
|
289
|
-
|
|
289
|
+
/**
|
|
290
|
+
* The agent to wire the model into.
|
|
291
|
+
*
|
|
292
|
+
* Picks from the enterprise's registered assets instead of taking free text.
|
|
293
|
+
* This used to be a bare prompt, so any string sailed through to the relay and
|
|
294
|
+
* failed only after the model had already deployed — and the string people
|
|
295
|
+
* naturally reach for is the CABINET name, which reads exactly like an agent
|
|
296
|
+
* name at a prompt but names no asset at all.
|
|
297
|
+
*
|
|
298
|
+
* Deliberately NOT filtered down to "agents": nothing on an Asset marks it as
|
|
299
|
+
* one (an agent is a helm asset, and so is a served model), so any filter I
|
|
300
|
+
* could write would risk hiding a legitimately renamed agent — worse than
|
|
301
|
+
* showing a few extra names. The list is the existing shared picker, which
|
|
302
|
+
* also auto-selects when there is exactly one asset and drops an invalid
|
|
303
|
+
* `--agent` rather than passing it on.
|
|
304
|
+
*/
|
|
305
|
+
setAgent(userInput, rootMap, enterprise, userSuppliedValue) {
|
|
306
|
+
var _a;
|
|
290
307
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
291
308
|
if (userInput && !_.isEmpty(userInput) && userSuppliedValue === userInput) {
|
|
292
309
|
this._ui.userMessage(`Agent to attach: ${this._styler.hilite(userInput)}`);
|
|
293
310
|
return userInput;
|
|
294
311
|
}
|
|
295
|
-
const
|
|
296
|
-
|
|
312
|
+
const ent = rootMap.enterprises.find(e => e.name === enterprise);
|
|
313
|
+
const assets = (_a = ent === null || ent === void 0 ? void 0 : ent.assets) !== null && _a !== void 0 ? _a : [];
|
|
314
|
+
if (assets.length === 0) {
|
|
315
|
+
// Nothing to pick from — fall back rather than dead-ending the install.
|
|
316
|
+
const typed = yield this._ui.prompt('agent', 'Name of the agent to wire the model into:', true, userInput);
|
|
317
|
+
return (typed !== null && typed !== void 0 ? typed : '').trim();
|
|
318
|
+
}
|
|
319
|
+
const [selected] = yield this.rootMapUtils.promptForAsset(assets, userInput, true);
|
|
320
|
+
return (selected !== null && selected !== void 0 ? selected : '').trim();
|
|
297
321
|
});
|
|
298
322
|
}
|
|
299
323
|
setFramework(userInput, userSuppliedValue) {
|