@agentuity/cli 0.0.108 → 0.0.110
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/build-report.d.ts +201 -0
- package/dist/build-report.d.ts.map +1 -0
- package/dist/build-report.js +335 -0
- package/dist/build-report.js.map +1 -0
- package/dist/cmd/build/entry-generator.d.ts.map +1 -1
- package/dist/cmd/build/entry-generator.js +9 -3
- package/dist/cmd/build/entry-generator.js.map +1 -1
- package/dist/cmd/build/index.d.ts.map +1 -1
- package/dist/cmd/build/index.js +44 -1
- package/dist/cmd/build/index.js.map +1 -1
- package/dist/cmd/build/typecheck.d.ts +7 -1
- package/dist/cmd/build/typecheck.d.ts.map +1 -1
- package/dist/cmd/build/typecheck.js +11 -1
- package/dist/cmd/build/typecheck.js.map +1 -1
- package/dist/cmd/build/vite/index.d.ts +2 -1
- package/dist/cmd/build/vite/index.d.ts.map +1 -1
- package/dist/cmd/build/vite/index.js +2 -1
- package/dist/cmd/build/vite/index.js.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.js +2 -4
- package/dist/cmd/build/vite/metadata-generator.js.map +1 -1
- package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/registry-generator.js +56 -18
- package/dist/cmd/build/vite/registry-generator.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.d.ts +3 -0
- package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +14 -1
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/build/vite-bundler.d.ts +3 -0
- package/dist/cmd/build/vite-bundler.d.ts.map +1 -1
- package/dist/cmd/build/vite-bundler.js +14 -5
- package/dist/cmd/build/vite-bundler.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +86 -9
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/deployment/show.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/show.js +0 -1
- package/dist/cmd/cloud/deployment/show.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +109 -15
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/project/auth/generate.d.ts +5 -0
- package/dist/cmd/project/auth/generate.d.ts.map +1 -0
- package/dist/cmd/project/auth/generate.js +102 -0
- package/dist/cmd/project/auth/generate.js.map +1 -0
- package/dist/cmd/project/auth/index.d.ts +2 -0
- package/dist/cmd/project/auth/index.d.ts.map +1 -0
- package/dist/cmd/project/auth/index.js +21 -0
- package/dist/cmd/project/auth/index.js.map +1 -0
- package/dist/cmd/project/auth/init.d.ts +2 -0
- package/dist/cmd/project/auth/init.d.ts.map +1 -0
- package/dist/cmd/project/auth/init.js +220 -0
- package/dist/cmd/project/auth/init.js.map +1 -0
- package/dist/cmd/project/auth/shared.d.ts +88 -0
- package/dist/cmd/project/auth/shared.d.ts.map +1 -0
- package/dist/cmd/project/auth/shared.js +435 -0
- package/dist/cmd/project/auth/shared.js.map +1 -0
- package/dist/cmd/project/index.d.ts.map +1 -1
- package/dist/cmd/project/index.js +9 -1
- package/dist/cmd/project/index.js.map +1 -1
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +106 -0
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/types.d.ts +1 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/package.json +5 -4
- package/src/build-report.ts +457 -0
- package/src/cmd/build/entry-generator.ts +9 -3
- package/src/cmd/build/index.ts +51 -1
- package/src/cmd/build/typecheck.ts +19 -1
- package/src/cmd/build/vite/index.ts +4 -1
- package/src/cmd/build/vite/metadata-generator.ts +4 -6
- package/src/cmd/build/vite/registry-generator.ts +58 -19
- package/src/cmd/build/vite/vite-builder.ts +18 -1
- package/src/cmd/build/vite-bundler.ts +17 -4
- package/src/cmd/cloud/deploy.ts +105 -11
- package/src/cmd/cloud/deployment/show.ts +0 -1
- package/src/cmd/dev/index.ts +115 -14
- package/src/cmd/project/auth/generate.ts +116 -0
- package/src/cmd/project/auth/index.ts +21 -0
- package/src/cmd/project/auth/init.ts +263 -0
- package/src/cmd/project/auth/shared.ts +534 -0
- package/src/cmd/project/index.ts +9 -1
- package/src/cmd/project/template-flow.ts +125 -0
- package/src/types.ts +1 -2
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Report
|
|
3
|
+
*
|
|
4
|
+
* Structured error/warning collection and reporting for build and deploy commands.
|
|
5
|
+
* Outputs a JSON file with a strict schema for CI tooling integration.
|
|
6
|
+
*/
|
|
7
|
+
import type { GrammarItem } from './tsc-output-parser';
|
|
8
|
+
/**
|
|
9
|
+
* Error codes for non-TypeScript errors.
|
|
10
|
+
* TypeScript errors use their native TS#### codes.
|
|
11
|
+
*/
|
|
12
|
+
export declare const BuildErrorCodes: {
|
|
13
|
+
readonly AST001: "MetadataNameMissing";
|
|
14
|
+
readonly AST002: "DuplicateName";
|
|
15
|
+
readonly AST003: "InvalidExport";
|
|
16
|
+
readonly AST004: "InvalidCronExpression";
|
|
17
|
+
readonly AST005: "InvalidAgentConfig";
|
|
18
|
+
readonly BUILD001: "AppFileNotFound";
|
|
19
|
+
readonly BUILD002: "SourceDirNotFound";
|
|
20
|
+
readonly BUILD003: "DependencyUpgradeFailed";
|
|
21
|
+
readonly BUILD004: "BundleFailed";
|
|
22
|
+
readonly BUILD005: "EntryPointNotFound";
|
|
23
|
+
readonly BUILD006: "ViteBuildFailed";
|
|
24
|
+
readonly BUILD007: "RuntimePackageNotFound";
|
|
25
|
+
readonly BUILD008: "TypecheckToolFailed";
|
|
26
|
+
readonly VAL001: "AgentIdentifierCollision";
|
|
27
|
+
readonly VAL002: "InvalidRoutePath";
|
|
28
|
+
readonly VAL003: "InvalidRouteMethod";
|
|
29
|
+
readonly VAL004: "SchemaValidationFailed";
|
|
30
|
+
readonly DEPLOY001: "DeploymentCreationFailed";
|
|
31
|
+
readonly DEPLOY002: "UploadFailed";
|
|
32
|
+
readonly DEPLOY003: "DeploymentTimeout";
|
|
33
|
+
readonly DEPLOY004: "DeploymentFailed";
|
|
34
|
+
readonly DEPLOY005: "EncryptionFailed";
|
|
35
|
+
readonly DEPLOY006: "CDNUploadFailed";
|
|
36
|
+
};
|
|
37
|
+
export type BuildErrorCode = keyof typeof BuildErrorCodes;
|
|
38
|
+
/**
|
|
39
|
+
* Error scopes for categorizing errors
|
|
40
|
+
*/
|
|
41
|
+
export type ErrorScope = 'typescript' | 'ast' | 'build' | 'bundler' | 'validation' | 'deploy';
|
|
42
|
+
/**
|
|
43
|
+
* File-specific error with location information
|
|
44
|
+
*/
|
|
45
|
+
export interface FileError {
|
|
46
|
+
type: 'file';
|
|
47
|
+
scope: ErrorScope;
|
|
48
|
+
path: string;
|
|
49
|
+
line: number;
|
|
50
|
+
column: number;
|
|
51
|
+
message: string;
|
|
52
|
+
code?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* General error without file location
|
|
56
|
+
*/
|
|
57
|
+
export interface GeneralError {
|
|
58
|
+
type: 'general';
|
|
59
|
+
scope: ErrorScope;
|
|
60
|
+
message: string;
|
|
61
|
+
code?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Union type for all build errors
|
|
65
|
+
*/
|
|
66
|
+
export type BuildError = FileError | GeneralError;
|
|
67
|
+
/**
|
|
68
|
+
* Union type for all build warnings (same structure as errors)
|
|
69
|
+
*/
|
|
70
|
+
export type BuildWarning = FileError | GeneralError;
|
|
71
|
+
/**
|
|
72
|
+
* Diagnostic timing information for a build phase
|
|
73
|
+
*/
|
|
74
|
+
export interface BuildDiagnostic {
|
|
75
|
+
name: string;
|
|
76
|
+
startedAt: string;
|
|
77
|
+
completedAt: string;
|
|
78
|
+
durationMs: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Complete build report structure
|
|
82
|
+
*/
|
|
83
|
+
export interface BuildReport {
|
|
84
|
+
success: boolean;
|
|
85
|
+
errors: BuildError[];
|
|
86
|
+
warnings: BuildWarning[];
|
|
87
|
+
diagnostics: BuildDiagnostic[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Diagnostic phases for timing
|
|
91
|
+
*/
|
|
92
|
+
export declare const DiagnosticPhases: readonly ["typecheck", "client-build", "workbench-build", "server-build", "metadata-generation", "zip-package", "encrypt", "code-upload", "cdn-upload", "deployment-wait"];
|
|
93
|
+
export type DiagnosticPhase = (typeof DiagnosticPhases)[number];
|
|
94
|
+
/**
|
|
95
|
+
* Build Report Collector
|
|
96
|
+
*
|
|
97
|
+
* Collects errors, warnings, and diagnostic timing information throughout
|
|
98
|
+
* the build/deploy pipeline. Can be configured to automatically write
|
|
99
|
+
* the report on process exit.
|
|
100
|
+
*/
|
|
101
|
+
export declare class BuildReportCollector {
|
|
102
|
+
private errors;
|
|
103
|
+
private warnings;
|
|
104
|
+
private diagnostics;
|
|
105
|
+
private activeDiagnostics;
|
|
106
|
+
private outputPath;
|
|
107
|
+
private autoWriteEnabled;
|
|
108
|
+
private written;
|
|
109
|
+
private beforeExitHandler;
|
|
110
|
+
private sigintHandler;
|
|
111
|
+
private sigtermHandler;
|
|
112
|
+
/**
|
|
113
|
+
* Set the output path for the report file
|
|
114
|
+
*/
|
|
115
|
+
setOutputPath(path: string): void;
|
|
116
|
+
/**
|
|
117
|
+
* Enable automatic writing of the report on process exit.
|
|
118
|
+
* This ensures the report is written even if the process exits unexpectedly.
|
|
119
|
+
*/
|
|
120
|
+
enableAutoWrite(): void;
|
|
121
|
+
/**
|
|
122
|
+
* Disable automatic writing and remove signal handlers.
|
|
123
|
+
* Call this when done with the collector to prevent handler conflicts.
|
|
124
|
+
*/
|
|
125
|
+
disableAutoWrite(): void;
|
|
126
|
+
/**
|
|
127
|
+
* Add TypeScript errors from parsed tsc output
|
|
128
|
+
*/
|
|
129
|
+
addTypeScriptErrors(items: GrammarItem[]): void;
|
|
130
|
+
/**
|
|
131
|
+
* Add a file-specific error
|
|
132
|
+
*/
|
|
133
|
+
addFileError(scope: ErrorScope, path: string, line: number, column: number, message: string, code?: string): void;
|
|
134
|
+
/**
|
|
135
|
+
* Add a general error without file location
|
|
136
|
+
*/
|
|
137
|
+
addGeneralError(scope: ErrorScope, message: string, code?: string): void;
|
|
138
|
+
/**
|
|
139
|
+
* Add a file-specific warning
|
|
140
|
+
*/
|
|
141
|
+
addFileWarning(scope: ErrorScope, path: string, line: number, column: number, message: string, code?: string): void;
|
|
142
|
+
/**
|
|
143
|
+
* Add a general warning without file location
|
|
144
|
+
*/
|
|
145
|
+
addGeneralWarning(scope: ErrorScope, message: string, code?: string): void;
|
|
146
|
+
/**
|
|
147
|
+
* Start timing a diagnostic phase
|
|
148
|
+
* @returns A function to call when the phase completes
|
|
149
|
+
*/
|
|
150
|
+
startDiagnostic(name: string): () => void;
|
|
151
|
+
/**
|
|
152
|
+
* End a diagnostic phase
|
|
153
|
+
*/
|
|
154
|
+
private endDiagnostic;
|
|
155
|
+
/**
|
|
156
|
+
* Check if there are any errors
|
|
157
|
+
*/
|
|
158
|
+
hasErrors(): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Check if there are any warnings
|
|
161
|
+
*/
|
|
162
|
+
hasWarnings(): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Get the error count
|
|
165
|
+
*/
|
|
166
|
+
getErrorCount(): number;
|
|
167
|
+
/**
|
|
168
|
+
* Get the warning count
|
|
169
|
+
*/
|
|
170
|
+
getWarningCount(): number;
|
|
171
|
+
/**
|
|
172
|
+
* Generate the complete build report
|
|
173
|
+
*/
|
|
174
|
+
toReport(): BuildReport;
|
|
175
|
+
/**
|
|
176
|
+
* Write the report to the configured output path asynchronously
|
|
177
|
+
*/
|
|
178
|
+
write(): Promise<void>;
|
|
179
|
+
/**
|
|
180
|
+
* Write the report synchronously (for exit handlers)
|
|
181
|
+
*/
|
|
182
|
+
writeSync(): void;
|
|
183
|
+
/**
|
|
184
|
+
* Force write the report (bypasses the written flag)
|
|
185
|
+
* Use this when you want to update the report file mid-process
|
|
186
|
+
*/
|
|
187
|
+
forceWrite(): Promise<void>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Set the global collector instance
|
|
191
|
+
*/
|
|
192
|
+
export declare function setGlobalCollector(collector: BuildReportCollector): void;
|
|
193
|
+
/**
|
|
194
|
+
* Get the global collector instance (may be null)
|
|
195
|
+
*/
|
|
196
|
+
export declare function getGlobalCollector(): BuildReportCollector | null;
|
|
197
|
+
/**
|
|
198
|
+
* Clear the global collector instance and clean up its signal handlers
|
|
199
|
+
*/
|
|
200
|
+
export declare function clearGlobalCollector(): void;
|
|
201
|
+
//# sourceMappingURL=build-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-report.d.ts","sourceRoot":"","sources":["../src/build-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Report
|
|
3
|
+
*
|
|
4
|
+
* Structured error/warning collection and reporting for build and deploy commands.
|
|
5
|
+
* Outputs a JSON file with a strict schema for CI tooling integration.
|
|
6
|
+
*/
|
|
7
|
+
import { writeFileSync } from 'node:fs';
|
|
8
|
+
/**
|
|
9
|
+
* Error codes for non-TypeScript errors.
|
|
10
|
+
* TypeScript errors use their native TS#### codes.
|
|
11
|
+
*/
|
|
12
|
+
export const BuildErrorCodes = {
|
|
13
|
+
// AST/Metadata errors (AST0xx)
|
|
14
|
+
AST001: 'MetadataNameMissing',
|
|
15
|
+
AST002: 'DuplicateName',
|
|
16
|
+
AST003: 'InvalidExport',
|
|
17
|
+
AST004: 'InvalidCronExpression',
|
|
18
|
+
AST005: 'InvalidAgentConfig',
|
|
19
|
+
// Build errors (BUILD0xx)
|
|
20
|
+
BUILD001: 'AppFileNotFound',
|
|
21
|
+
BUILD002: 'SourceDirNotFound',
|
|
22
|
+
BUILD003: 'DependencyUpgradeFailed',
|
|
23
|
+
BUILD004: 'BundleFailed',
|
|
24
|
+
BUILD005: 'EntryPointNotFound',
|
|
25
|
+
BUILD006: 'ViteBuildFailed',
|
|
26
|
+
BUILD007: 'RuntimePackageNotFound',
|
|
27
|
+
BUILD008: 'TypecheckToolFailed',
|
|
28
|
+
// Validation errors (VAL0xx)
|
|
29
|
+
VAL001: 'AgentIdentifierCollision',
|
|
30
|
+
VAL002: 'InvalidRoutePath',
|
|
31
|
+
VAL003: 'InvalidRouteMethod',
|
|
32
|
+
VAL004: 'SchemaValidationFailed',
|
|
33
|
+
// Deploy errors (DEPLOY0xx)
|
|
34
|
+
DEPLOY001: 'DeploymentCreationFailed',
|
|
35
|
+
DEPLOY002: 'UploadFailed',
|
|
36
|
+
DEPLOY003: 'DeploymentTimeout',
|
|
37
|
+
DEPLOY004: 'DeploymentFailed',
|
|
38
|
+
DEPLOY005: 'EncryptionFailed',
|
|
39
|
+
DEPLOY006: 'CDNUploadFailed',
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Diagnostic phases for timing
|
|
43
|
+
*/
|
|
44
|
+
export const DiagnosticPhases = [
|
|
45
|
+
'typecheck',
|
|
46
|
+
'client-build',
|
|
47
|
+
'workbench-build',
|
|
48
|
+
'server-build',
|
|
49
|
+
'metadata-generation',
|
|
50
|
+
'zip-package',
|
|
51
|
+
'encrypt',
|
|
52
|
+
'code-upload',
|
|
53
|
+
'cdn-upload',
|
|
54
|
+
'deployment-wait',
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* Build Report Collector
|
|
58
|
+
*
|
|
59
|
+
* Collects errors, warnings, and diagnostic timing information throughout
|
|
60
|
+
* the build/deploy pipeline. Can be configured to automatically write
|
|
61
|
+
* the report on process exit.
|
|
62
|
+
*/
|
|
63
|
+
export class BuildReportCollector {
|
|
64
|
+
errors = [];
|
|
65
|
+
warnings = [];
|
|
66
|
+
diagnostics = [];
|
|
67
|
+
activeDiagnostics = new Map();
|
|
68
|
+
outputPath = null;
|
|
69
|
+
autoWriteEnabled = false;
|
|
70
|
+
written = false;
|
|
71
|
+
beforeExitHandler = null;
|
|
72
|
+
sigintHandler = null;
|
|
73
|
+
sigtermHandler = null;
|
|
74
|
+
/**
|
|
75
|
+
* Set the output path for the report file
|
|
76
|
+
*/
|
|
77
|
+
setOutputPath(path) {
|
|
78
|
+
this.outputPath = path;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Enable automatic writing of the report on process exit.
|
|
82
|
+
* This ensures the report is written even if the process exits unexpectedly.
|
|
83
|
+
*/
|
|
84
|
+
enableAutoWrite() {
|
|
85
|
+
if (this.autoWriteEnabled || !this.outputPath)
|
|
86
|
+
return;
|
|
87
|
+
this.autoWriteEnabled = true;
|
|
88
|
+
// Use beforeExit for graceful exits
|
|
89
|
+
this.beforeExitHandler = () => {
|
|
90
|
+
this.writeSync();
|
|
91
|
+
};
|
|
92
|
+
process.once('beforeExit', this.beforeExitHandler);
|
|
93
|
+
// Handle SIGINT/SIGTERM with process.once to avoid stacking handlers
|
|
94
|
+
this.sigintHandler = () => {
|
|
95
|
+
this.writeSync();
|
|
96
|
+
process.exit(130);
|
|
97
|
+
};
|
|
98
|
+
this.sigtermHandler = () => {
|
|
99
|
+
this.writeSync();
|
|
100
|
+
process.exit(143);
|
|
101
|
+
};
|
|
102
|
+
process.once('SIGINT', this.sigintHandler);
|
|
103
|
+
process.once('SIGTERM', this.sigtermHandler);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Disable automatic writing and remove signal handlers.
|
|
107
|
+
* Call this when done with the collector to prevent handler conflicts.
|
|
108
|
+
*/
|
|
109
|
+
disableAutoWrite() {
|
|
110
|
+
if (!this.autoWriteEnabled)
|
|
111
|
+
return;
|
|
112
|
+
this.autoWriteEnabled = false;
|
|
113
|
+
if (this.beforeExitHandler) {
|
|
114
|
+
process.removeListener('beforeExit', this.beforeExitHandler);
|
|
115
|
+
this.beforeExitHandler = null;
|
|
116
|
+
}
|
|
117
|
+
if (this.sigintHandler) {
|
|
118
|
+
process.removeListener('SIGINT', this.sigintHandler);
|
|
119
|
+
this.sigintHandler = null;
|
|
120
|
+
}
|
|
121
|
+
if (this.sigtermHandler) {
|
|
122
|
+
process.removeListener('SIGTERM', this.sigtermHandler);
|
|
123
|
+
this.sigtermHandler = null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Add TypeScript errors from parsed tsc output
|
|
128
|
+
*/
|
|
129
|
+
addTypeScriptErrors(items) {
|
|
130
|
+
for (const item of items) {
|
|
131
|
+
if (item.type !== 'Item' || !item.value)
|
|
132
|
+
continue;
|
|
133
|
+
const val = item.value;
|
|
134
|
+
const isError = val.tsError?.value?.type === 'error';
|
|
135
|
+
const isWarning = val.tsError?.value?.type === 'warning';
|
|
136
|
+
if (!isError && !isWarning)
|
|
137
|
+
continue;
|
|
138
|
+
const entry = {
|
|
139
|
+
type: 'file',
|
|
140
|
+
scope: 'typescript',
|
|
141
|
+
path: val.path?.value ?? 'unknown',
|
|
142
|
+
line: val.cursor?.value?.line ?? 0,
|
|
143
|
+
column: val.cursor?.value?.col ?? 0,
|
|
144
|
+
message: (val.message?.value ?? '').trim(),
|
|
145
|
+
code: val.tsError?.value?.errorString,
|
|
146
|
+
};
|
|
147
|
+
if (isError) {
|
|
148
|
+
this.errors.push(entry);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
this.warnings.push(entry);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Add a file-specific error
|
|
157
|
+
*/
|
|
158
|
+
addFileError(scope, path, line, column, message, code) {
|
|
159
|
+
this.errors.push({
|
|
160
|
+
type: 'file',
|
|
161
|
+
scope,
|
|
162
|
+
path,
|
|
163
|
+
line,
|
|
164
|
+
column,
|
|
165
|
+
message,
|
|
166
|
+
code,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Add a general error without file location
|
|
171
|
+
*/
|
|
172
|
+
addGeneralError(scope, message, code) {
|
|
173
|
+
this.errors.push({
|
|
174
|
+
type: 'general',
|
|
175
|
+
scope,
|
|
176
|
+
message,
|
|
177
|
+
code,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Add a file-specific warning
|
|
182
|
+
*/
|
|
183
|
+
addFileWarning(scope, path, line, column, message, code) {
|
|
184
|
+
this.warnings.push({
|
|
185
|
+
type: 'file',
|
|
186
|
+
scope,
|
|
187
|
+
path,
|
|
188
|
+
line,
|
|
189
|
+
column,
|
|
190
|
+
message,
|
|
191
|
+
code,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Add a general warning without file location
|
|
196
|
+
*/
|
|
197
|
+
addGeneralWarning(scope, message, code) {
|
|
198
|
+
this.warnings.push({
|
|
199
|
+
type: 'general',
|
|
200
|
+
scope,
|
|
201
|
+
message,
|
|
202
|
+
code,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Start timing a diagnostic phase
|
|
207
|
+
* @returns A function to call when the phase completes
|
|
208
|
+
*/
|
|
209
|
+
startDiagnostic(name) {
|
|
210
|
+
const startedAt = new Date();
|
|
211
|
+
this.activeDiagnostics.set(name, { name, startedAt });
|
|
212
|
+
return () => {
|
|
213
|
+
this.endDiagnostic(name);
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* End a diagnostic phase
|
|
218
|
+
*/
|
|
219
|
+
endDiagnostic(name) {
|
|
220
|
+
const active = this.activeDiagnostics.get(name);
|
|
221
|
+
if (!active)
|
|
222
|
+
return;
|
|
223
|
+
const completedAt = new Date();
|
|
224
|
+
const durationMs = completedAt.getTime() - active.startedAt.getTime();
|
|
225
|
+
this.diagnostics.push({
|
|
226
|
+
name,
|
|
227
|
+
startedAt: active.startedAt.toISOString(),
|
|
228
|
+
completedAt: completedAt.toISOString(),
|
|
229
|
+
durationMs,
|
|
230
|
+
});
|
|
231
|
+
this.activeDiagnostics.delete(name);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Check if there are any errors
|
|
235
|
+
*/
|
|
236
|
+
hasErrors() {
|
|
237
|
+
return this.errors.length > 0;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Check if there are any warnings
|
|
241
|
+
*/
|
|
242
|
+
hasWarnings() {
|
|
243
|
+
return this.warnings.length > 0;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get the error count
|
|
247
|
+
*/
|
|
248
|
+
getErrorCount() {
|
|
249
|
+
return this.errors.length;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get the warning count
|
|
253
|
+
*/
|
|
254
|
+
getWarningCount() {
|
|
255
|
+
return this.warnings.length;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Generate the complete build report
|
|
259
|
+
*/
|
|
260
|
+
toReport() {
|
|
261
|
+
// Complete any active diagnostics - collect keys first to avoid
|
|
262
|
+
// iterating while modifying the map
|
|
263
|
+
const activeKeys = [...this.activeDiagnostics.keys()];
|
|
264
|
+
for (const name of activeKeys) {
|
|
265
|
+
this.endDiagnostic(name);
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
success: this.errors.length === 0,
|
|
269
|
+
errors: [...this.errors],
|
|
270
|
+
warnings: [...this.warnings],
|
|
271
|
+
diagnostics: [...this.diagnostics],
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Write the report to the configured output path asynchronously
|
|
276
|
+
*/
|
|
277
|
+
async write() {
|
|
278
|
+
if (!this.outputPath || this.written)
|
|
279
|
+
return;
|
|
280
|
+
this.written = true;
|
|
281
|
+
const report = this.toReport();
|
|
282
|
+
const file = Bun.file(this.outputPath);
|
|
283
|
+
await file.write(JSON.stringify(report, null, '\t'));
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Write the report synchronously (for exit handlers)
|
|
287
|
+
*/
|
|
288
|
+
writeSync() {
|
|
289
|
+
if (!this.outputPath || this.written)
|
|
290
|
+
return;
|
|
291
|
+
this.written = true;
|
|
292
|
+
const report = this.toReport();
|
|
293
|
+
writeFileSync(this.outputPath, JSON.stringify(report, null, '\t'));
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Force write the report (bypasses the written flag)
|
|
297
|
+
* Use this when you want to update the report file mid-process
|
|
298
|
+
*/
|
|
299
|
+
async forceWrite() {
|
|
300
|
+
if (!this.outputPath)
|
|
301
|
+
return;
|
|
302
|
+
const report = this.toReport();
|
|
303
|
+
const file = Bun.file(this.outputPath);
|
|
304
|
+
await file.write(JSON.stringify(report, null, '\t'));
|
|
305
|
+
this.written = true;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Global collector instance for use across the build pipeline.
|
|
310
|
+
* Commands should create their own collector and pass it through,
|
|
311
|
+
* but this provides a fallback for error handling in deeply nested code.
|
|
312
|
+
*/
|
|
313
|
+
let globalCollector = null;
|
|
314
|
+
/**
|
|
315
|
+
* Set the global collector instance
|
|
316
|
+
*/
|
|
317
|
+
export function setGlobalCollector(collector) {
|
|
318
|
+
globalCollector = collector;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get the global collector instance (may be null)
|
|
322
|
+
*/
|
|
323
|
+
export function getGlobalCollector() {
|
|
324
|
+
return globalCollector;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Clear the global collector instance and clean up its signal handlers
|
|
328
|
+
*/
|
|
329
|
+
export function clearGlobalCollector() {
|
|
330
|
+
if (globalCollector) {
|
|
331
|
+
globalCollector.disableAutoWrite();
|
|
332
|
+
}
|
|
333
|
+
globalCollector = null;
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=build-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-report.js","sourceRoot":"","sources":["../src/build-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-generator.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG3D,UAAU,oBAAoB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"entry-generator.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG3D,UAAU,oBAAoB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+dpF"}
|
|
@@ -62,9 +62,11 @@ export async function generateEntryFile(options) {
|
|
|
62
62
|
].filter(Boolean);
|
|
63
63
|
imports.push(`import { type LogLevel } from '@agentuity/core';`);
|
|
64
64
|
// Generate route mounting code for all discovered routes
|
|
65
|
+
// Sort route files for deterministic output
|
|
66
|
+
const sortedRouteFiles = [...routeFiles].sort();
|
|
65
67
|
const routeImportsAndMounts = [];
|
|
66
68
|
let routeIndex = 0;
|
|
67
|
-
for (const routeFile of
|
|
69
|
+
for (const routeFile of sortedRouteFiles) {
|
|
68
70
|
// Convert src/api/auth/route.ts -> auth/route
|
|
69
71
|
const relativePath = routeFile.replace(/^src\/api\//, '').replace(/\.tsx?$/, '');
|
|
70
72
|
// Determine the mount path
|
|
@@ -203,7 +205,7 @@ if (isDevelopment()) {
|
|
|
203
205
|
// 404 for unmatched API/system routes
|
|
204
206
|
app.all('/_agentuity/*', (c: Context) => c.notFound());
|
|
205
207
|
app.all('/api/*', (c: Context) => c.notFound());
|
|
206
|
-
if (hasWorkbench) {
|
|
208
|
+
if (!hasWorkbench) {
|
|
207
209
|
app.all('/workbench/*', (c: Context) => c.notFound());
|
|
208
210
|
}
|
|
209
211
|
|
|
@@ -238,7 +240,7 @@ if (isDevelopment()) {
|
|
|
238
240
|
// 404 for unmatched API/system routes (IMPORTANT: comes before SPA fallback)
|
|
239
241
|
app.all('/_agentuity/*', (c: Context) => c.notFound());
|
|
240
242
|
app.all('/api/*', (c: Context) => c.notFound());
|
|
241
|
-
if (hasWorkbench) {
|
|
243
|
+
if (!hasWorkbench) {
|
|
242
244
|
app.all('/workbench/*', (c: Context) => c.notFound());
|
|
243
245
|
}
|
|
244
246
|
|
|
@@ -419,6 +421,10 @@ app.use('/api/*', createAgentMiddleware(''));
|
|
|
419
421
|
// Step 4: Import user's app.ts (runs createApp, gets state/config)
|
|
420
422
|
await import('../../app.js');
|
|
421
423
|
|
|
424
|
+
// Step 4.5: Import agent registry to ensure all agents are registered
|
|
425
|
+
// This is needed for workbench metadata to return JSON schemas
|
|
426
|
+
await import('./registry.js');
|
|
427
|
+
|
|
422
428
|
// Step 5: Initialize providers
|
|
423
429
|
const appState = getAppState();
|
|
424
430
|
const appConfig = getAppConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-generator.js","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAYxD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA6B;IACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAExF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAEpF,+DAA+D;IAC/D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAExF,8BAA8B;IAC9B,MAAM,cAAc,GACnB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC;IAEjC,qEAAqE;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,mBAAmB;IACnB,MAAM,cAAc,GAAG;QACtB,iBAAiB;QACjB,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;QACzB,0BAA0B;QAC1B,gCAAgC;QAChC,gBAAgB;QAChB,iBAAiB;QACjB,aAAa;QACb,sBAAsB;QACtB,mBAAmB;QACnB,mBAAmB;QACnB,sBAAsB;QACtB,uBAAuB;QACvB,oBAAoB;QACpB,oBAAoB;QACpB,oBAAoB;QACpB,gCAAgC;QAChC,wBAAwB;QACxB,sBAAsB;QACtB,0BAA0B;QAC1B,wBAAwB;QACxB,2BAA2B;KAC3B,CAAC;IAEF,MAAM,OAAO,GAAG;QACf,WAAW;QACX,GAAG,cAAc;QACjB,8BAA8B;QAC9B,sCAAsC;QACtC,qBAAqB,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,qBAAqB;QAC/E,cAAc,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,EAAE;KAC3E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAEjE,yDAAyD;IACzD,MAAM,qBAAqB,GAAa,EAAE,CAAC;IAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,SAAS,IAAI,
|
|
1
|
+
{"version":3,"file":"entry-generator.js","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,OAAO,mCA0JlB,CAAC"}
|