@amodalai/amodal 0.3.90 → 0.3.92
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/CHANGELOG.md +25 -0
- package/dist/src/commands/audit.d.ts +1 -3
- package/dist/src/commands/audit.d.ts.map +1 -1
- package/dist/src/commands/audit.js +4 -53
- package/dist/src/commands/audit.js.map +1 -1
- package/dist/src/commands/build-manifest-types.js +1 -1
- package/dist/src/commands/build-tools.d.ts +3 -10
- package/dist/src/commands/build-tools.d.ts.map +1 -1
- package/dist/src/commands/build-tools.js +5 -118
- package/dist/src/commands/build-tools.js.map +1 -1
- package/dist/src/commands/build.js +1 -1
- package/dist/src/commands/build.js.map +1 -1
- package/dist/src/commands/deploy.d.ts +1 -1
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +3 -61
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/deployments.d.ts.map +1 -1
- package/dist/src/commands/deployments.js +3 -36
- package/dist/src/commands/deployments.js.map +1 -1
- package/dist/src/commands/dev.d.ts.map +1 -1
- package/dist/src/commands/dev.js +7 -10
- package/dist/src/commands/dev.js.map +1 -1
- package/dist/src/commands/experiment.d.ts +1 -3
- package/dist/src/commands/experiment.d.ts.map +1 -1
- package/dist/src/commands/experiment.js +4 -102
- package/dist/src/commands/experiment.js.map +1 -1
- package/dist/src/commands/promote.d.ts.map +1 -1
- package/dist/src/commands/promote.js +3 -21
- package/dist/src/commands/promote.js.map +1 -1
- package/dist/src/commands/rollback.d.ts.map +1 -1
- package/dist/src/commands/rollback.js +3 -24
- package/dist/src/commands/rollback.js.map +1 -1
- package/dist/src/commands/secrets.d.ts.map +1 -1
- package/dist/src/commands/secrets.js +2 -102
- package/dist/src/commands/secrets.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +3 -49
- package/dist/src/commands/status.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -8
- package/src/commands/audit.ts +4 -71
- package/src/commands/build-manifest-types.ts +1 -1
- package/src/commands/build-tools.ts +5 -142
- package/src/commands/build.ts +1 -1
- package/src/commands/deploy.test.ts +2 -13
- package/src/commands/deploy.ts +5 -67
- package/src/commands/deployments.ts +3 -39
- package/src/commands/dev.ts +7 -10
- package/src/commands/experiment.ts +4 -110
- package/src/commands/promote.ts +3 -21
- package/src/commands/rollback.ts +3 -24
- package/src/commands/secrets.test.ts +12 -134
- package/src/commands/secrets.ts +2 -116
- package/src/commands/status.ts +3 -51
- package/dist/src/shared/platform-client.d.ts +0 -110
- package/dist/src/shared/platform-client.d.ts.map +0 -1
- package/dist/src/shared/platform-client.js +0 -263
- package/dist/src/shared/platform-client.js.map +0 -1
- package/src/commands/audit.test.ts +0 -92
- package/src/commands/experiment.test.ts +0 -125
- package/src/shared/platform-client.test.ts +0 -70
- package/src/shared/platform-client.ts +0 -343
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @amodalai/amodal
|
|
2
2
|
|
|
3
|
+
## 0.3.92
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [f05e7a2]
|
|
8
|
+
- @amodalai/studio@0.3.92
|
|
9
|
+
- @amodalai/types@0.3.92
|
|
10
|
+
- @amodalai/core@0.3.92
|
|
11
|
+
- @amodalai/runtime@0.3.92
|
|
12
|
+
- @amodalai/runtime-app@0.3.92
|
|
13
|
+
- @amodalai/db@0.3.92
|
|
14
|
+
|
|
15
|
+
## 0.3.91
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- 382a16d: Prune cloud-owned setup, draft, marketplace, and hosted deploy implementation details from the OSS packages while keeping Studio source browsing read-only and using product-neutral runtime, source, and auth contracts.
|
|
20
|
+
- Updated dependencies [382a16d]
|
|
21
|
+
- @amodalai/core@0.3.91
|
|
22
|
+
- @amodalai/db@0.3.91
|
|
23
|
+
- @amodalai/runtime@0.3.91
|
|
24
|
+
- @amodalai/studio@0.3.91
|
|
25
|
+
- @amodalai/types@0.3.91
|
|
26
|
+
- @amodalai/runtime-app@0.3.91
|
|
27
|
+
|
|
3
28
|
## 0.3.90
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
|
@@ -7,11 +7,9 @@ import type { CommandModule } from 'yargs';
|
|
|
7
7
|
export interface AuditOptions {
|
|
8
8
|
sessionId: string;
|
|
9
9
|
format?: 'json' | 'table';
|
|
10
|
-
platformUrl?: string;
|
|
11
|
-
platformApiKey?: string;
|
|
12
10
|
}
|
|
13
11
|
/**
|
|
14
|
-
*
|
|
12
|
+
* Hosted audit trails are not available from the OSS CLI.
|
|
15
13
|
*/
|
|
16
14
|
export declare function runAudit(options: AuditOptions): Promise<void>;
|
|
17
15
|
export declare const auditCommand: CommandModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAInE;AAED,eAAO,MAAM,YAAY,EAAE,aAuB1B,CAAC"}
|
|
@@ -3,62 +3,13 @@
|
|
|
3
3
|
* Copyright 2025 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import { resolvePlatformConfig } from '../shared/platform-client.js';
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
7
|
+
* Hosted audit trails are not available from the OSS CLI.
|
|
9
8
|
*/
|
|
10
9
|
export async function runAudit(options) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const config = await resolvePlatformConfig({
|
|
15
|
-
url: options.platformUrl,
|
|
16
|
-
apiKey: options.platformApiKey,
|
|
17
|
-
});
|
|
18
|
-
platformUrl = config.url;
|
|
19
|
-
apiKey = config.apiKey;
|
|
20
|
-
}
|
|
21
|
-
catch (err) {
|
|
22
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
23
|
-
process.stderr.write(`[audit] ${msg}\n`);
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
26
|
-
try {
|
|
27
|
-
const response = await fetch(`${platformUrl}/api/audit/sessions/${options.sessionId}`, {
|
|
28
|
-
headers: { 'Authorization': `Bearer ${apiKey}` },
|
|
29
|
-
});
|
|
30
|
-
if (!response.ok) {
|
|
31
|
-
process.stderr.write(`[audit] HTTP ${response.status}: ${await response.text()}\n`);
|
|
32
|
-
process.exit(1);
|
|
33
|
-
}
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- platform response
|
|
35
|
-
const data = await response.json();
|
|
36
|
-
if (options.format === 'json') {
|
|
37
|
-
process.stdout.write(JSON.stringify(data, null, 2) + '\n');
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
// Table format
|
|
41
|
-
const events = data.events;
|
|
42
|
-
if (events.length === 0) {
|
|
43
|
-
process.stdout.write('No audit events found for this session.\n');
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const typeWidth = Math.max(10, ...events.map((e) => e.eventType.length));
|
|
47
|
-
process.stdout.write(`\nSession: ${data.sessionId}\n`);
|
|
48
|
-
process.stdout.write(`${'Type'.padEnd(typeWidth)} ${'Time'.padEnd(24)} Details\n`);
|
|
49
|
-
process.stdout.write('-'.repeat(typeWidth + 50) + '\n');
|
|
50
|
-
for (const event of events) {
|
|
51
|
-
const time = event.createdAt.slice(0, 24);
|
|
52
|
-
const details = event.durationMs ? `${event.durationMs}ms` : '';
|
|
53
|
-
process.stdout.write(`${event.eventType.padEnd(typeWidth)} ${time.padEnd(24)} ${details}\n`);
|
|
54
|
-
}
|
|
55
|
-
process.stdout.write(`\nTotal: ${events.length} events\n`);
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
59
|
-
process.stderr.write(`[audit] Error: ${msg}\n`);
|
|
60
|
-
process.exit(1);
|
|
61
|
-
}
|
|
10
|
+
void options;
|
|
11
|
+
process.stderr.write('[audit] Hosted audit retrieval is not included in the OSS CLI.\n');
|
|
12
|
+
process.exit(1);
|
|
62
13
|
}
|
|
63
14
|
export const auditCommand = {
|
|
64
15
|
command: 'audit <session-id>',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAqB;IAClD,KAAK,OAAO,CAAC;IACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,YAAY,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,6CAA6C;KACxD,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAU;QACnC,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,eAAe;KAC1B,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,uEAAuE;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAW,CAAC;QAC9C,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAqB,CAAC;QAClD,MAAM,QAAQ,CAAC,EAAC,SAAS,EAAE,MAAM,EAAC,CAAC,CAAC;IACtC,CAAC;CACF,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { z } from 'zod';
|
|
|
8
8
|
* Schema for a single tool entry in the build manifest.
|
|
9
9
|
*/
|
|
10
10
|
export const BuildManifestToolSchema = z.object({
|
|
11
|
-
/**
|
|
11
|
+
/** Sandbox snapshot ID for fast workspace creation */
|
|
12
12
|
snapshotId: z.string().min(1),
|
|
13
13
|
/** Content hash of the tool's source files */
|
|
14
14
|
imageHash: z.string().min(1),
|
|
@@ -11,20 +11,13 @@ import type { BuildManifest } from './build-manifest-types.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function listFilesRecursive(dir: string, root?: string): string[];
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
* Excludes node_modules, .git, __pycache__, etc.
|
|
16
|
-
*/
|
|
17
|
-
export declare function createToolArchive(tool: LoadedTool): Buffer;
|
|
18
|
-
/**
|
|
19
|
-
* Build Daytona sandbox snapshots for custom tools.
|
|
14
|
+
* Build local custom-tool manifest entries.
|
|
20
15
|
*
|
|
21
16
|
* For each tool:
|
|
22
17
|
* 1. Compute a content hash of all files in the tool directory
|
|
23
18
|
* 2. If hash matches existing manifest entry, skip (cached)
|
|
24
|
-
* 3. Otherwise,
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* The ISV never touches Daytona directly. The platform owns the infra.
|
|
19
|
+
* 3. Otherwise, generate a local placeholder snapshot id. Hosted control
|
|
20
|
+
* planes own sandbox image builds outside the OSS CLI.
|
|
28
21
|
*
|
|
29
22
|
* Writes .amodal/build-manifest.json locally for caching.
|
|
30
23
|
* The manifest is also included in the deploy snapshot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-tools.d.ts","sourceRoot":"","sources":["../../../src/commands/build-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"build-tools.d.ts","sourceRoot":"","sources":["../../../src/commands/build-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBvE;AAwCD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,aAAa,CAAC,CAoDxB"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
import { createHash } from 'node:crypto';
|
|
7
7
|
import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync } from 'node:fs';
|
|
8
8
|
import { join, relative } from 'node:path';
|
|
9
|
-
import { execSync } from 'node:child_process';
|
|
10
9
|
/**
|
|
11
10
|
* Recursively list all files in a directory, returning paths relative to root.
|
|
12
11
|
* Skips node_modules, .git, __pycache__.
|
|
@@ -70,115 +69,13 @@ function loadExistingManifest(repoPath) {
|
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
/**
|
|
73
|
-
*
|
|
74
|
-
*/
|
|
75
|
-
function getPlatformConfig(repoPath) {
|
|
76
|
-
try {
|
|
77
|
-
const configPath = join(repoPath, 'amodal.json');
|
|
78
|
-
const raw = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
80
|
-
const config = raw;
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
82
|
-
const platform = config['platform'];
|
|
83
|
-
if (!platform?.apiKey)
|
|
84
|
-
return null;
|
|
85
|
-
const apiUrl = (process.env['PLATFORM_API_URL'] ?? 'https://api.amodal.dev').replace(/\/$/, '');
|
|
86
|
-
return { apiUrl, apiKey: platform.apiKey };
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Create a tar.gz archive of the tool directory.
|
|
94
|
-
* Excludes node_modules, .git, __pycache__, etc.
|
|
95
|
-
*/
|
|
96
|
-
export function createToolArchive(tool) {
|
|
97
|
-
// Use system tar — available on macOS and Linux
|
|
98
|
-
const tarOutput = execSync('tar -czf - ' +
|
|
99
|
-
'--exclude=node_modules --exclude=.git --exclude=__pycache__ ' +
|
|
100
|
-
'--exclude=.venv --exclude=dist ' +
|
|
101
|
-
'-C ' + JSON.stringify(tool.location) + ' .', { maxBuffer: 50 * 1024 * 1024 });
|
|
102
|
-
return Buffer.from(tarOutput);
|
|
103
|
-
}
|
|
104
|
-
const POLL_INTERVAL_MS = 3000;
|
|
105
|
-
const POLL_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes max
|
|
106
|
-
/**
|
|
107
|
-
* Upload a tool bundle to the platform API and wait for the build to complete.
|
|
108
|
-
*
|
|
109
|
-
* 1. POST /api/tools/build — starts the build (Vercel creates a Daytona
|
|
110
|
-
* sandbox, uploads files, kicks off setup commands asynchronously)
|
|
111
|
-
* 2. Poll GET /api/tools/build/:id — waits for setup to finish, then
|
|
112
|
-
* the platform snapshots the sandbox and returns the snapshotId
|
|
113
|
-
*
|
|
114
|
-
* The ISV never needs Daytona credentials. The platform owns the infra.
|
|
115
|
-
*/
|
|
116
|
-
async function buildToolOnPlatform(platformUrl, apiKey, tool, imageHash) {
|
|
117
|
-
const archive = createToolArchive(tool);
|
|
118
|
-
const fileCount = listFilesRecursive(tool.location).length;
|
|
119
|
-
process.stderr.write(`[build-tools] ${tool.name}: uploading ${fileCount} files (${(archive.length / 1024).toFixed(1)} KB)\n`);
|
|
120
|
-
// 1. Start the build
|
|
121
|
-
const startResponse = await fetch(`${platformUrl}/api/tools/build`, {
|
|
122
|
-
method: 'POST',
|
|
123
|
-
headers: {
|
|
124
|
-
'Authorization': `Bearer ${apiKey}`,
|
|
125
|
-
'Content-Type': 'application/gzip',
|
|
126
|
-
'X-Tool-Name': tool.name,
|
|
127
|
-
'X-Tool-Hash': imageHash,
|
|
128
|
-
'X-Sandbox-Language': tool.sandboxLanguage,
|
|
129
|
-
'X-Has-Setup-Script': String(tool.hasSetupScript),
|
|
130
|
-
'X-Has-Requirements-Txt': String(tool.hasRequirementsTxt),
|
|
131
|
-
'X-Has-Dockerfile': String(tool.hasDockerfile),
|
|
132
|
-
'X-Has-Package-Json': String(tool.hasPackageJson),
|
|
133
|
-
},
|
|
134
|
-
body: archive,
|
|
135
|
-
});
|
|
136
|
-
if (!startResponse.ok) {
|
|
137
|
-
const text = await startResponse.text().catch(() => '');
|
|
138
|
-
throw new Error(`Platform tool build failed to start (${startResponse.status}): ${text}`);
|
|
139
|
-
}
|
|
140
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
141
|
-
const buildResult = await startResponse.json();
|
|
142
|
-
// If already complete (no setup needed), return immediately
|
|
143
|
-
if (buildResult.status === 'complete' && buildResult.snapshotId) {
|
|
144
|
-
return buildResult.snapshotId;
|
|
145
|
-
}
|
|
146
|
-
if (buildResult.status === 'failed') {
|
|
147
|
-
throw new Error(`Tool build failed: ${buildResult.error ?? 'unknown error'}`);
|
|
148
|
-
}
|
|
149
|
-
// 2. Poll until complete
|
|
150
|
-
const buildId = buildResult.id;
|
|
151
|
-
const startTime = Date.now();
|
|
152
|
-
while (Date.now() - startTime < POLL_TIMEOUT_MS) {
|
|
153
|
-
await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));
|
|
154
|
-
const pollResponse = await fetch(`${platformUrl}/api/tools/build/${buildId}`, {
|
|
155
|
-
headers: { 'Authorization': `Bearer ${apiKey}` },
|
|
156
|
-
});
|
|
157
|
-
if (!pollResponse.ok) {
|
|
158
|
-
throw new Error(`Failed to poll build status (${pollResponse.status})`);
|
|
159
|
-
}
|
|
160
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
161
|
-
const poll = await pollResponse.json();
|
|
162
|
-
if (poll.status === 'complete' && poll.snapshotId) {
|
|
163
|
-
return poll.snapshotId;
|
|
164
|
-
}
|
|
165
|
-
if (poll.status === 'failed') {
|
|
166
|
-
throw new Error(`Tool build failed: ${poll.error ?? 'unknown error'}`);
|
|
167
|
-
}
|
|
168
|
-
process.stderr.write(`[build-tools] ${tool.name}: ${poll.status}...\n`);
|
|
169
|
-
}
|
|
170
|
-
throw new Error(`Tool build timed out after ${POLL_TIMEOUT_MS / 1000}s`);
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Build Daytona sandbox snapshots for custom tools.
|
|
72
|
+
* Build local custom-tool manifest entries.
|
|
174
73
|
*
|
|
175
74
|
* For each tool:
|
|
176
75
|
* 1. Compute a content hash of all files in the tool directory
|
|
177
76
|
* 2. If hash matches existing manifest entry, skip (cached)
|
|
178
|
-
* 3. Otherwise,
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* The ISV never touches Daytona directly. The platform owns the infra.
|
|
77
|
+
* 3. Otherwise, generate a local placeholder snapshot id. Hosted control
|
|
78
|
+
* planes own sandbox image builds outside the OSS CLI.
|
|
182
79
|
*
|
|
183
80
|
* Writes .amodal/build-manifest.json locally for caching.
|
|
184
81
|
* The manifest is also included in the deploy snapshot.
|
|
@@ -186,7 +83,6 @@ async function buildToolOnPlatform(platformUrl, apiKey, tool, imageHash) {
|
|
|
186
83
|
export async function buildToolTemplates(repoPath, tools) {
|
|
187
84
|
const existing = loadExistingManifest(repoPath);
|
|
188
85
|
const existingTools = existing?.tools ?? {};
|
|
189
|
-
const platform = getPlatformConfig(repoPath);
|
|
190
86
|
const builtTools = {};
|
|
191
87
|
let skipped = 0;
|
|
192
88
|
let built = 0;
|
|
@@ -205,17 +101,8 @@ export async function buildToolTemplates(repoPath, tools) {
|
|
|
205
101
|
else {
|
|
206
102
|
process.stderr.write(`[build-tools] ${tool.name}: building (${tool.sandboxLanguage})\n`);
|
|
207
103
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
// Upload to platform API → platform builds on Daytona
|
|
211
|
-
snapshotId = await buildToolOnPlatform(platform.apiUrl, platform.apiKey, tool, imageHash);
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
// No platform configured — generate a placeholder
|
|
215
|
-
// (local dev mode — tools run in-process, snapshots not needed)
|
|
216
|
-
snapshotId = `local-${imageHash.slice(0, 16)}`;
|
|
217
|
-
process.stderr.write(`[build-tools] ${tool.name}: no platform configured, using local placeholder\n`);
|
|
218
|
-
}
|
|
104
|
+
const snapshotId = `local-${imageHash.slice(0, 16)}`;
|
|
105
|
+
process.stderr.write(`[build-tools] ${tool.name}: using local placeholder\n`);
|
|
219
106
|
builtTools[tool.name] = { snapshotId, imageHash, sandboxLanguage: tool.sandboxLanguage, hasDockerfile: tool.hasDockerfile, hasSetupScript: tool.hasSetupScript };
|
|
220
107
|
built++;
|
|
221
108
|
process.stderr.write(`[build-tools] ${tool.name}: snapshot ${snapshotId}\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-tools.js","sourceRoot":"","sources":["../../../src/commands/build-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AACxF,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"build-tools.js","sourceRoot":"","sources":["../../../src/commands/build-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,7 +127,7 @@ export const buildCommand = {
|
|
|
127
127
|
})
|
|
128
128
|
.option('tools', {
|
|
129
129
|
type: 'boolean',
|
|
130
|
-
describe: '
|
|
130
|
+
describe: 'Include local custom-tool build metadata',
|
|
131
131
|
default: false,
|
|
132
132
|
}),
|
|
133
133
|
handler: async (argv) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B5E;AAED,eAAO,MAAM,aAAa,EAAE,aA8B3B,CAAC"}
|
|
@@ -4,12 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
6
|
import { findRepoRoot } from '../shared/repo-discovery.js';
|
|
7
|
-
import { PlatformClient } from '../shared/platform-client.js';
|
|
8
7
|
import { runValidate } from './validate.js';
|
|
9
|
-
import { createRepoTarball } from '../shared/tarball.js';
|
|
10
|
-
import { readProjectLink } from './link.js';
|
|
11
8
|
/**
|
|
12
|
-
*
|
|
9
|
+
* Validate a repo before cloud deployment.
|
|
13
10
|
*
|
|
14
11
|
* Returns 0 on success, 1 on error.
|
|
15
12
|
*/
|
|
@@ -35,63 +32,8 @@ export async function runDeploy(options = {}) {
|
|
|
35
32
|
process.stderr.write(`[deploy] Dry run — would deploy to ${environment}\n`);
|
|
36
33
|
return 0;
|
|
37
34
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
try {
|
|
41
|
-
client = await PlatformClient.create();
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
45
|
-
process.stderr.write(`[deploy] ${msg}\n`);
|
|
46
|
-
return 1;
|
|
47
|
-
}
|
|
48
|
-
const projectLink = await readProjectLink();
|
|
49
|
-
const appId = projectLink?.appId;
|
|
50
|
-
if (!appId) {
|
|
51
|
-
process.stderr.write('[deploy] No app linked. Run `amodal deploy link` first.\n');
|
|
52
|
-
return 1;
|
|
53
|
-
}
|
|
54
|
-
// Create tarball
|
|
55
|
-
process.stderr.write('[deploy] Creating tarball...\n');
|
|
56
|
-
const tarballPath = await createRepoTarball(repoPath);
|
|
57
|
-
try {
|
|
58
|
-
// Trigger remote build
|
|
59
|
-
process.stderr.write('[deploy] Triggering build...\n');
|
|
60
|
-
const buildResult = await client.triggerRemoteBuild(appId, environment, tarballPath, options.message);
|
|
61
|
-
const buildId = buildResult.buildId;
|
|
62
|
-
process.stderr.write(`[deploy] Build ${buildId} accepted. Waiting for completion...\n`);
|
|
63
|
-
// Poll for completion
|
|
64
|
-
const maxWaitMs = 5 * 60 * 1000; // 5 minutes
|
|
65
|
-
const pollIntervalMs = 3000;
|
|
66
|
-
const startTime = Date.now();
|
|
67
|
-
while (Date.now() - startTime < maxWaitMs) {
|
|
68
|
-
await new Promise((r) => setTimeout(r, pollIntervalMs));
|
|
69
|
-
const status = await client.getBuildStatus(buildId);
|
|
70
|
-
if (status.status === 'complete') {
|
|
71
|
-
process.stderr.write(`[deploy] Deployed ${status.deployId} to ${status.environment ?? environment}\n`);
|
|
72
|
-
return 0;
|
|
73
|
-
}
|
|
74
|
-
if (status.status === 'error') {
|
|
75
|
-
process.stderr.write(`[deploy] Build failed: ${status.error ?? 'unknown error'}\n`);
|
|
76
|
-
return 1;
|
|
77
|
-
}
|
|
78
|
-
// Still building — continue polling
|
|
79
|
-
}
|
|
80
|
-
process.stderr.write(`[deploy] Build timed out after 5 minutes. Build ${buildId} may still be running.\n`);
|
|
81
|
-
return 1;
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
85
|
-
process.stderr.write(`[deploy] Deploy failed: ${msg}\n`);
|
|
86
|
-
return 1;
|
|
87
|
-
}
|
|
88
|
-
finally {
|
|
89
|
-
const { unlinkSync } = await import('node:fs');
|
|
90
|
-
try {
|
|
91
|
-
unlinkSync(tarballPath);
|
|
92
|
-
}
|
|
93
|
-
catch { /* best-effort */ }
|
|
94
|
-
}
|
|
35
|
+
process.stderr.write('[deploy] Cloud deployment is not included in the OSS CLI. Use `amodal deploy build` to create a local snapshot, then deploy it with your hosted control-plane tooling.\n');
|
|
36
|
+
return 1;
|
|
95
37
|
}
|
|
96
38
|
export const deployCommand = {
|
|
97
39
|
command: 'push',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAS1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAyB,EAAE;IACzD,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,WAAW;IACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,QAAQ,OAAO,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAC,CAAC,CAAC;IAClD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,2CAA2C,CAAC,CAAC;QAC3G,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC;IAEhD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,WAAW,IAAI,CAAC,CAAC;QAC5E,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0KAA0K,CAC3K,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,mCAAmC;IAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,0CAA0C;KACrD,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kCAAkC;QAC5C,OAAO,EAAE,KAAK;KACf,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;YAC3B,uEAAuE;YACvE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAuB;YAC9C,uEAAuE;YACvE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAuB;YACtC,uEAAuE;YACvE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAwB;SAC9C,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../../src/commands/deployments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../../src/commands/deployments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAItF;AAED,eAAO,MAAM,kBAAkB,EAAE,aA8BhC,CAAC"}
|
|
@@ -3,46 +3,13 @@
|
|
|
3
3
|
* Copyright 2025 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import { PlatformClient } from '../shared/platform-client.js';
|
|
7
6
|
/**
|
|
8
7
|
* List deployment history.
|
|
9
8
|
*/
|
|
10
9
|
export async function runDeployments(options = {}) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
catch (err) {
|
|
16
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
17
|
-
process.stderr.write(`[deployments] ${msg}\n`);
|
|
18
|
-
return 1;
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
const deployments = await client.listDeployments({
|
|
22
|
-
environment: options.env,
|
|
23
|
-
limit: options.limit ?? 10,
|
|
24
|
-
});
|
|
25
|
-
if (options.json) {
|
|
26
|
-
process.stdout.write(JSON.stringify(deployments, null, 2) + '\n');
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
if (deployments.length === 0) {
|
|
30
|
-
process.stderr.write('[deployments] No deployments found.\n');
|
|
31
|
-
return 0;
|
|
32
|
-
}
|
|
33
|
-
for (const d of deployments) {
|
|
34
|
-
const active = d.isActive ? ' [ACTIVE]' : '';
|
|
35
|
-
const msg = d.message ? ` — ${d.message}` : '';
|
|
36
|
-
const sha = d.commitSha ? ` (${d.commitSha.slice(0, 7)})` : '';
|
|
37
|
-
process.stdout.write(`${d.id} ${d.environment}${active} ${d.createdBy ?? d.source}${sha} ${d.createdAt}${msg}\n`);
|
|
38
|
-
}
|
|
39
|
-
return 0;
|
|
40
|
-
}
|
|
41
|
-
catch (err) {
|
|
42
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
43
|
-
process.stderr.write(`[deployments] Failed: ${msg}\n`);
|
|
44
|
-
return 1;
|
|
45
|
-
}
|
|
10
|
+
void options;
|
|
11
|
+
process.stderr.write('[deployments] Hosted deployment history is not included in the OSS CLI.\n');
|
|
12
|
+
return 1;
|
|
46
13
|
}
|
|
47
14
|
export const deploymentsCommand = {
|
|
48
15
|
command: 'list',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../../src/commands/deployments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../../src/commands/deployments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAA8B,EAAE;IACnE,KAAK,OAAO,CAAC;IACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAClG,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,MAAM,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,uBAAuB;KAClC,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,+BAA+B;QACzC,OAAO,EAAE,EAAE;KACZ,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,KAAK;KACf,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;YAChC,uEAAuE;YACvE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAuB;YACtC,uEAAuE;YACvE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAuB;YAC1C,uEAAuE;YACvE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAwB;SAC1C,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AA0EzC,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAYD;;;;GAIG;AACH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AA0EzC,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAYD;;;;GAIG;AACH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4E5D;AAoRD;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA+XpE;AAED,eAAO,MAAM,UAAU,EAAE,aA8DxB,CAAC"}
|
package/dist/src/commands/dev.js
CHANGED
|
@@ -157,13 +157,11 @@ export function formatLineForDev(line) {
|
|
|
157
157
|
return null;
|
|
158
158
|
}
|
|
159
159
|
case 'tool_log': {
|
|
160
|
-
// Tools call ctx.log(...) for noteworthy progress
|
|
161
|
-
// install_template emits "Cloned whodatdev/template-X into
|
|
162
|
-
// agent repo (N connection packages installed)"). When fired
|
|
160
|
+
// Tools call ctx.log(...) for noteworthy progress. When fired
|
|
163
161
|
// during an intent run the callId starts with `intent_`, so
|
|
164
|
-
// these lines pass the quiet filter
|
|
165
|
-
//
|
|
166
|
-
//
|
|
162
|
+
// these lines pass the quiet filter, but as raw JSON they bury
|
|
163
|
+
// the useful message inside callId/session noise. Strip to a
|
|
164
|
+
// clean nested bullet.
|
|
167
165
|
const msg = str('message');
|
|
168
166
|
if (!msg)
|
|
169
167
|
return null;
|
|
@@ -627,9 +625,8 @@ Or add it to your agent's .env file:
|
|
|
627
625
|
// Two flows watched by the same poller:
|
|
628
626
|
//
|
|
629
627
|
// 1. AUTO-BOOT — runtime didn't start at CLI launch (no manifest
|
|
630
|
-
// yet). Once amodal.json lands
|
|
631
|
-
//
|
|
632
|
-
// write), boot the runtime in place. Studio's runtime URL
|
|
628
|
+
// yet). Once amodal.json lands, boot the runtime in place.
|
|
629
|
+
// Studio's runtime URL
|
|
633
630
|
// probe picks it up on the next tick.
|
|
634
631
|
//
|
|
635
632
|
// 2. AUTO-RESTART — runtime is already up but amodal.json has
|
|
@@ -640,7 +637,7 @@ Or add it to your agent's .env file:
|
|
|
640
637
|
// bundle in memory and the new packages/config never load.
|
|
641
638
|
//
|
|
642
639
|
// 500ms debounce after detecting a change — lets the writer
|
|
643
|
-
// (commit_setup's atomic rename
|
|
640
|
+
// (commit_setup's atomic rename or a direct file write) settle
|
|
644
641
|
// before loadRepo tries to read.
|
|
645
642
|
// -------------------------------------------------------------------
|
|
646
643
|
const RUNTIME_WATCH_INTERVAL_MS = 2_000;
|