@agentuity/cli 2.0.14 → 2.0.15
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/agent-detection.d.ts.map +1 -1
- package/dist/agent-detection.js +3 -6
- package/dist/agent-detection.js.map +1 -1
- package/dist/ai-help.js +10 -10
- package/dist/ai-help.js.map +1 -1
- package/dist/cmd/ai/capabilities/show.d.ts.map +1 -1
- package/dist/cmd/ai/capabilities/show.js +6 -0
- package/dist/cmd/ai/capabilities/show.js.map +1 -1
- package/dist/cmd/ai/intro.d.ts.map +1 -1
- package/dist/cmd/ai/intro.js +1 -0
- package/dist/cmd/ai/intro.js.map +1 -1
- package/dist/cmd/cloud/aigateway/complete.d.ts +7 -0
- package/dist/cmd/cloud/aigateway/complete.d.ts.map +1 -0
- package/dist/cmd/cloud/aigateway/complete.js +386 -0
- package/dist/cmd/cloud/aigateway/complete.js.map +1 -0
- package/dist/cmd/cloud/aigateway/index.d.ts +3 -0
- package/dist/cmd/cloud/aigateway/index.d.ts.map +1 -0
- package/dist/cmd/cloud/aigateway/index.js +20 -0
- package/dist/cmd/cloud/aigateway/index.js.map +1 -0
- package/dist/cmd/cloud/aigateway/model-cache.d.ts +4 -0
- package/dist/cmd/cloud/aigateway/model-cache.d.ts.map +1 -0
- package/dist/cmd/cloud/aigateway/model-cache.js +72 -0
- package/dist/cmd/cloud/aigateway/model-cache.js.map +1 -0
- package/dist/cmd/cloud/aigateway/models.d.ts +2 -0
- package/dist/cmd/cloud/aigateway/models.d.ts.map +1 -0
- package/dist/cmd/cloud/aigateway/models.js +193 -0
- package/dist/cmd/cloud/aigateway/models.js.map +1 -0
- package/dist/cmd/cloud/aigateway/util.d.ts +20 -0
- package/dist/cmd/cloud/aigateway/util.d.ts.map +1 -0
- package/dist/cmd/cloud/aigateway/util.js +58 -0
- package/dist/cmd/cloud/aigateway/util.js.map +1 -0
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +2 -0
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/coder/skill/create.d.ts +2 -0
- package/dist/cmd/coder/skill/create.d.ts.map +1 -0
- package/dist/cmd/coder/skill/create.js +104 -0
- package/dist/cmd/coder/skill/create.js.map +1 -0
- package/dist/cmd/coder/skill/index.d.ts.map +1 -1
- package/dist/cmd/coder/skill/index.js +12 -1
- package/dist/cmd/coder/skill/index.js.map +1 -1
- package/dist/cmd/coder/workspace/common.d.ts +22 -2
- package/dist/cmd/coder/workspace/common.d.ts.map +1 -1
- package/dist/cmd/coder/workspace/common.js +38 -2
- package/dist/cmd/coder/workspace/common.js.map +1 -1
- package/dist/cmd/coder/workspace/create.d.ts.map +1 -1
- package/dist/cmd/coder/workspace/create.js +34 -2
- package/dist/cmd/coder/workspace/create.js.map +1 -1
- package/dist/cmd/coder/workspace/update.d.ts.map +1 -1
- package/dist/cmd/coder/workspace/update.js +33 -1
- package/dist/cmd/coder/workspace/update.js.map +1 -1
- package/dist/cmd/dev/download.d.ts +8 -0
- package/dist/cmd/dev/download.d.ts.map +1 -1
- package/dist/cmd/dev/download.js +27 -1
- package/dist/cmd/dev/download.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +18 -7
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +7 -7
- package/src/agent-detection.ts +3 -6
- package/src/ai-help.ts +10 -10
- package/src/cmd/ai/capabilities/show.ts +6 -0
- package/src/cmd/ai/intro.ts +1 -0
- package/src/cmd/cloud/aigateway/complete.ts +461 -0
- package/src/cmd/cloud/aigateway/index.ts +21 -0
- package/src/cmd/cloud/aigateway/model-cache.ts +89 -0
- package/src/cmd/cloud/aigateway/models.ts +219 -0
- package/src/cmd/cloud/aigateway/util.ts +86 -0
- package/src/cmd/cloud/index.ts +2 -0
- package/src/cmd/coder/skill/create.ts +122 -0
- package/src/cmd/coder/skill/index.ts +14 -1
- package/src/cmd/coder/workspace/common.ts +46 -2
- package/src/cmd/coder/workspace/create.ts +34 -1
- package/src/cmd/coder/workspace/update.ts +33 -0
- package/src/cmd/dev/download.ts +32 -1
- package/src/cmd/dev/index.ts +24 -8
- package/src/config.ts +3 -0
- package/src/types.ts +1 -0
package/src/cmd/dev/download.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { existsSync, mkdirSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { tmpdir, platform } from 'node:os';
|
|
4
4
|
import { join, dirname } from 'node:path';
|
|
5
5
|
import * as tar from 'tar';
|
|
@@ -11,6 +11,37 @@ interface GravityClient {
|
|
|
11
11
|
version: string;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Remove previously downloaded gravity version directories after a newer
|
|
16
|
+
* version has started successfully.
|
|
17
|
+
*
|
|
18
|
+
* Safety guard: only removes sibling directories that contain a gravity
|
|
19
|
+
* binary, leaving any unrelated files/folders untouched.
|
|
20
|
+
*/
|
|
21
|
+
export function sweepOldGravityVersions(gravityDir: string, currentVersion: string): string[] {
|
|
22
|
+
if (!existsSync(gravityDir)) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const removed: string[] = [];
|
|
27
|
+
for (const entry of readdirSync(gravityDir, { withFileTypes: true })) {
|
|
28
|
+
if (!entry.isDirectory() || entry.name === currentVersion) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const candidateDir = join(gravityDir, entry.name);
|
|
33
|
+
const candidateBinary = join(candidateDir, 'gravity');
|
|
34
|
+
if (!existsSync(candidateBinary)) {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
rmSync(candidateDir, { recursive: true, force: true });
|
|
39
|
+
removed.push(candidateDir);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return removed;
|
|
43
|
+
}
|
|
44
|
+
|
|
14
45
|
const GravityVersionError = StructuredError('GravityVersionError')<{
|
|
15
46
|
status: number;
|
|
16
47
|
statusText: string;
|
package/src/cmd/dev/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ import * as tui from '../../tui';
|
|
|
9
9
|
import { getCommand } from '../../command-prefix';
|
|
10
10
|
import { generateEndpoint, type DevmodeResponse } from './api';
|
|
11
11
|
import { APIClient, getAPIBaseURL, getAppBaseURL, getGravityDevModeURL } from '../../api';
|
|
12
|
-
import { download } from './download';
|
|
12
|
+
import { download, sweepOldGravityVersions } from './download';
|
|
13
13
|
import { createDevmodeSyncService } from './sync';
|
|
14
14
|
import { getDevmodeDeploymentId } from '../build/ids';
|
|
15
15
|
import { getDefaultConfigDir, saveConfig, loadProjectSDKKey, getAuth } from '../../config';
|
|
@@ -411,6 +411,7 @@ export const command = createCommand({
|
|
|
411
411
|
let devmode: DevmodeResponse | undefined;
|
|
412
412
|
let gravityBin: string | undefined;
|
|
413
413
|
let gravityURL: string | undefined;
|
|
414
|
+
let gravitySweepTarget: { gravityDir: string; version: string } | null = null;
|
|
414
415
|
let appURL: string | undefined;
|
|
415
416
|
let savedPrivateKey: string | undefined = config?.devmode?.privateKey
|
|
416
417
|
? Buffer.from(config.devmode.privateKey, 'base64').toString('utf-8')
|
|
@@ -465,8 +466,12 @@ export const command = createCommand({
|
|
|
465
466
|
}
|
|
466
467
|
|
|
467
468
|
if (mustCheck) {
|
|
469
|
+
const previousGravityVersion = config?.gravity?.version;
|
|
468
470
|
const res = await download(gravityDir);
|
|
469
471
|
gravityBin = res.filename;
|
|
472
|
+
if (previousGravityVersion !== res.version) {
|
|
473
|
+
gravitySweepTarget = { gravityDir, version: res.version };
|
|
474
|
+
}
|
|
470
475
|
const _config = { ...config } as Config;
|
|
471
476
|
_config.gravity = {
|
|
472
477
|
checked: Date.now(),
|
|
@@ -494,10 +499,6 @@ export const command = createCommand({
|
|
|
494
499
|
|
|
495
500
|
// Calculate URLs for banner
|
|
496
501
|
const padding = 12;
|
|
497
|
-
const workbenchUrl =
|
|
498
|
-
auth && project?.projectId
|
|
499
|
-
? `${getAppBaseURL(config)}/w/${project.projectId}`
|
|
500
|
-
: `http://127.0.0.1:${opts.port}${workbench.config?.route ?? '/workbench'}`;
|
|
501
502
|
|
|
502
503
|
const devmodebody =
|
|
503
504
|
tui.muted(tui.padRight('Local:', padding)) +
|
|
@@ -506,9 +507,6 @@ export const command = createCommand({
|
|
|
506
507
|
tui.muted(tui.padRight('Public:', padding)) +
|
|
507
508
|
(devmode?.hostname ? tui.link(`https://${devmode.hostname}`) : tui.warn('Disabled')) +
|
|
508
509
|
'\n' +
|
|
509
|
-
tui.muted(tui.padRight('Workbench:', padding)) +
|
|
510
|
-
(workbench.hasWorkbench ? tui.link(workbenchUrl) : tui.warn('Disabled')) +
|
|
511
|
-
'\n' +
|
|
512
510
|
tui.muted(tui.padRight('Dashboard:', padding)) +
|
|
513
511
|
(appURL ? tui.link(appURL) : tui.warn('Disabled')) +
|
|
514
512
|
'\n' +
|
|
@@ -1133,6 +1131,24 @@ export const command = createCommand({
|
|
|
1133
1131
|
sendHeartbeat();
|
|
1134
1132
|
gravityHeartbeatInterval = setInterval(sendHeartbeat, 5000);
|
|
1135
1133
|
}
|
|
1134
|
+
|
|
1135
|
+
if (gravitySweepTarget) {
|
|
1136
|
+
try {
|
|
1137
|
+
const removed = sweepOldGravityVersions(
|
|
1138
|
+
gravitySweepTarget.gravityDir,
|
|
1139
|
+
gravitySweepTarget.version
|
|
1140
|
+
);
|
|
1141
|
+
logger.debug(
|
|
1142
|
+
'Swept %d old gravity version director%s after successful startup',
|
|
1143
|
+
removed.length,
|
|
1144
|
+
removed.length === 1 ? 'y' : 'ies'
|
|
1145
|
+
);
|
|
1146
|
+
} catch (error) {
|
|
1147
|
+
logger.warn('Failed to sweep old gravity versions: %s', error);
|
|
1148
|
+
} finally {
|
|
1149
|
+
gravitySweepTarget = null;
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1136
1152
|
} else if (trimmed) {
|
|
1137
1153
|
logger.debug('[gravity] %s', trimmed);
|
|
1138
1154
|
}
|
package/src/config.ts
CHANGED
|
@@ -226,6 +226,9 @@ export async function loadConfig(
|
|
|
226
226
|
if (process.env.AGENTUITY_VECTOR_URL) {
|
|
227
227
|
overrides.vector_url = process.env.AGENTUITY_VECTOR_URL;
|
|
228
228
|
}
|
|
229
|
+
if (process.env.AGENTUITY_AIGATEWAY_URL) {
|
|
230
|
+
overrides.aigateway_url = process.env.AGENTUITY_AIGATEWAY_URL;
|
|
231
|
+
}
|
|
229
232
|
if (process.env.AGENTUITY_STREAM_URL) {
|
|
230
233
|
overrides.stream_url = process.env.AGENTUITY_STREAM_URL;
|
|
231
234
|
}
|
package/src/types.ts
CHANGED
|
@@ -41,6 +41,7 @@ export const ConfigSchema = zod.object({
|
|
|
41
41
|
kv_url: zod.url().optional().describe('Override keyvalue URL'),
|
|
42
42
|
sandbox_url: zod.url().optional().describe('Override sandbox URL'),
|
|
43
43
|
vector_url: zod.url().optional().describe('Override vector store URL'),
|
|
44
|
+
aigateway_url: zod.url().optional().describe('Override AI Gateway URL'),
|
|
44
45
|
catalyst_url: zod.url().optional().describe('Override catalyst URL'),
|
|
45
46
|
ion_url: zod.url().optional().describe('Override ion URL'),
|
|
46
47
|
gravity_url: zod.url().optional().describe('Override gravity URL'),
|