mstro-app 0.4.20 → 0.4.22
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 +66 -0
- package/dist/server/cli/headless/claude-invoker-process.js +1 -1
- package/dist/server/cli/headless/claude-invoker-process.js.map +1 -1
- package/dist/server/cli/headless/headless-logger.js +1 -1
- package/dist/server/cli/headless/headless-logger.js.map +1 -1
- package/dist/server/cli/headless/mcp-config.d.ts +1 -1
- package/dist/server/cli/headless/mcp-config.d.ts.map +1 -1
- package/dist/server/cli/headless/mcp-config.js +4 -1
- package/dist/server/cli/headless/mcp-config.js.map +1 -1
- package/dist/server/cli/headless/runner.d.ts.map +1 -1
- package/dist/server/cli/headless/runner.js +1 -0
- package/dist/server/cli/headless/runner.js.map +1 -1
- package/dist/server/cli/headless/types.d.ts +4 -1
- package/dist/server/cli/headless/types.d.ts.map +1 -1
- package/dist/server/index.js +9 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/bouncer-integration.d.ts +2 -2
- package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
- package/dist/server/mcp/bouncer-integration.js +20 -20
- package/dist/server/mcp/bouncer-integration.js.map +1 -1
- package/dist/server/mcp/security-analysis.d.ts +6 -0
- package/dist/server/mcp/security-analysis.d.ts.map +1 -1
- package/dist/server/mcp/security-analysis.js +16 -1
- package/dist/server/mcp/security-analysis.js.map +1 -1
- package/dist/server/mcp/security-patterns.d.ts +8 -0
- package/dist/server/mcp/security-patterns.d.ts.map +1 -1
- package/dist/server/mcp/security-patterns.js +47 -2
- package/dist/server/mcp/security-patterns.js.map +1 -1
- package/dist/server/services/deploy/ai-broker.d.ts +63 -0
- package/dist/server/services/deploy/ai-broker.d.ts.map +1 -0
- package/dist/server/services/deploy/ai-broker.js +360 -0
- package/dist/server/services/deploy/ai-broker.js.map +1 -0
- package/dist/server/services/deploy/board-execution-handler.d.ts +114 -0
- package/dist/server/services/deploy/board-execution-handler.d.ts.map +1 -0
- package/dist/server/services/deploy/board-execution-handler.js +621 -0
- package/dist/server/services/deploy/board-execution-handler.js.map +1 -0
- package/dist/server/services/deploy/credentials.d.ts +35 -0
- package/dist/server/services/deploy/credentials.d.ts.map +1 -0
- package/dist/server/services/deploy/credentials.js +177 -0
- package/dist/server/services/deploy/credentials.js.map +1 -0
- package/dist/server/services/deploy/deploy-ai-service.d.ts +107 -0
- package/dist/server/services/deploy/deploy-ai-service.d.ts.map +1 -0
- package/dist/server/services/deploy/deploy-ai-service.js +294 -0
- package/dist/server/services/deploy/deploy-ai-service.js.map +1 -0
- package/dist/server/services/deploy/headless-session-handler.d.ts +94 -0
- package/dist/server/services/deploy/headless-session-handler.d.ts.map +1 -0
- package/dist/server/services/deploy/headless-session-handler.js +274 -0
- package/dist/server/services/deploy/headless-session-handler.js.map +1 -0
- package/dist/server/services/pathUtils.d.ts.map +1 -1
- package/dist/server/services/pathUtils.js +33 -1
- package/dist/server/services/pathUtils.js.map +1 -1
- package/dist/server/services/plan/agent-loader.d.ts +10 -0
- package/dist/server/services/plan/agent-loader.d.ts.map +1 -0
- package/dist/server/services/plan/agent-loader.js +65 -0
- package/dist/server/services/plan/agent-loader.js.map +1 -0
- package/dist/server/services/plan/composer.d.ts.map +1 -1
- package/dist/server/services/plan/composer.js +5 -1
- package/dist/server/services/plan/composer.js.map +1 -1
- package/dist/server/services/plan/dependency-resolver.d.ts +1 -1
- package/dist/server/services/plan/dependency-resolver.js +2 -2
- package/dist/server/services/plan/dependency-resolver.js.map +1 -1
- package/dist/server/services/plan/executor.d.ts +7 -3
- package/dist/server/services/plan/executor.d.ts.map +1 -1
- package/dist/server/services/plan/executor.js +27 -14
- package/dist/server/services/plan/executor.js.map +1 -1
- package/dist/server/services/plan/front-matter.d.ts +5 -0
- package/dist/server/services/plan/front-matter.d.ts.map +1 -1
- package/dist/server/services/plan/front-matter.js +19 -0
- package/dist/server/services/plan/front-matter.js.map +1 -1
- package/dist/server/services/plan/issue-prompt-builder.d.ts +1 -1
- package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -1
- package/dist/server/services/plan/issue-prompt-builder.js +1 -1
- package/dist/server/services/plan/issue-retry.d.ts +25 -0
- package/dist/server/services/plan/issue-retry.d.ts.map +1 -0
- package/dist/server/services/plan/issue-retry.js +216 -0
- package/dist/server/services/plan/issue-retry.js.map +1 -0
- package/dist/server/services/plan/output-manager.d.ts +2 -2
- package/dist/server/services/plan/output-manager.js +2 -2
- package/dist/server/services/plan/parser-core.d.ts +1 -1
- package/dist/server/services/plan/parser-core.js +1 -1
- package/dist/server/services/plan/parser-core.js.map +1 -1
- package/dist/server/services/plan/parser-migration.d.ts +2 -2
- package/dist/server/services/plan/parser-migration.d.ts.map +1 -1
- package/dist/server/services/plan/parser-migration.js +5 -5
- package/dist/server/services/plan/parser-migration.js.map +1 -1
- package/dist/server/services/plan/parser.d.ts.map +1 -1
- package/dist/server/services/plan/parser.js +4 -7
- package/dist/server/services/plan/parser.js.map +1 -1
- package/dist/server/services/plan/prompt-builder.d.ts +1 -1
- package/dist/server/services/plan/prompt-builder.d.ts.map +1 -1
- package/dist/server/services/plan/review-gate.d.ts +4 -0
- package/dist/server/services/plan/review-gate.d.ts.map +1 -1
- package/dist/server/services/plan/review-gate.js +90 -35
- package/dist/server/services/plan/review-gate.js.map +1 -1
- package/dist/server/services/plan/state-reconciler.d.ts.map +1 -1
- package/dist/server/services/plan/state-reconciler.js +21 -11
- package/dist/server/services/plan/state-reconciler.js.map +1 -1
- package/dist/server/services/plan/types.d.ts +2 -2
- package/dist/server/services/plan/types.d.ts.map +1 -1
- package/dist/server/services/plan/watcher.js +1 -1
- package/dist/server/services/sentry.d.ts.map +1 -1
- package/dist/server/services/sentry.js +8 -4
- package/dist/server/services/sentry.js.map +1 -1
- package/dist/server/services/websocket/deploy-handlers.d.ts +14 -0
- package/dist/server/services/websocket/deploy-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/deploy-handlers.js +409 -0
- package/dist/server/services/websocket/deploy-handlers.js.map +1 -0
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +12 -0
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/handlers/deploy-handlers.d.ts +11 -0
- package/dist/server/services/websocket/handlers/deploy-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/handlers/deploy-handlers.js +180 -0
- package/dist/server/services/websocket/handlers/deploy-handlers.js.map +1 -0
- package/dist/server/services/websocket/plan-board-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-board-handlers.js +54 -1
- package/dist/server/services/websocket/plan-board-handlers.js.map +1 -1
- package/dist/server/services/websocket/plan-helpers.d.ts +1 -1
- package/dist/server/services/websocket/plan-helpers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-helpers.js +3 -4
- package/dist/server/services/websocket/plan-helpers.js.map +1 -1
- package/dist/server/services/websocket/plan-issue-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-issue-handlers.js +5 -1
- package/dist/server/services/websocket/plan-issue-handlers.js.map +1 -1
- package/dist/server/services/websocket/plan-sprint-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-sprint-handlers.js +3 -11
- package/dist/server/services/websocket/plan-sprint-handlers.js.map +1 -1
- package/dist/server/services/websocket/settings-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/settings-handlers.js +17 -21
- package/dist/server/services/websocket/settings-handlers.js.map +1 -1
- package/dist/server/services/websocket/types.d.ts +264 -2
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/server/cli/headless/claude-invoker-process.ts +1 -1
- package/server/cli/headless/headless-logger.ts +1 -1
- package/server/cli/headless/mcp-config.ts +4 -1
- package/server/cli/headless/runner.ts +1 -0
- package/server/cli/headless/types.ts +4 -1
- package/server/index.ts +9 -1
- package/server/mcp/bouncer-integration.ts +19 -17
- package/server/mcp/security-analysis.ts +19 -0
- package/server/mcp/security-patterns.ts +53 -2
- package/server/services/deploy/ai-broker.ts +512 -0
- package/server/services/deploy/board-execution-handler.ts +847 -0
- package/server/services/deploy/credentials.ts +200 -0
- package/server/services/deploy/deploy-ai-service.ts +401 -0
- package/server/services/deploy/headless-session-handler.ts +415 -0
- package/server/services/pathUtils.ts +35 -1
- package/server/services/plan/agent-loader.ts +73 -0
- package/server/services/plan/agents/review-code.md +28 -0
- package/server/services/plan/agents/review-custom.md +27 -0
- package/server/services/plan/agents/review-quality.md +42 -0
- package/server/services/plan/composer.ts +5 -1
- package/server/services/plan/dependency-resolver.ts +2 -2
- package/server/services/plan/executor.ts +27 -15
- package/server/services/plan/front-matter.ts +23 -0
- package/server/services/plan/issue-prompt-builder.ts +2 -2
- package/server/services/plan/issue-retry.ts +297 -0
- package/server/services/plan/output-manager.ts +2 -2
- package/server/services/plan/parser-core.ts +2 -2
- package/server/services/plan/parser-migration.ts +5 -5
- package/server/services/plan/parser.ts +4 -5
- package/server/services/plan/prompt-builder.ts +1 -1
- package/server/services/plan/review-gate.ts +105 -34
- package/server/services/plan/state-reconciler.ts +21 -11
- package/server/services/plan/types.ts +3 -3
- package/server/services/plan/watcher.ts +1 -1
- package/server/services/sentry.ts +8 -4
- package/server/services/websocket/deploy-handlers.ts +544 -0
- package/server/services/websocket/handler.ts +11 -1
- package/server/services/websocket/handlers/deploy-handlers.ts +230 -0
- package/server/services/websocket/plan-board-handlers.ts +53 -1
- package/server/services/websocket/plan-helpers.ts +3 -4
- package/server/services/websocket/plan-issue-handlers.ts +6 -1
- package/server/services/websocket/plan-sprint-handlers.ts +3 -9
- package/server/services/websocket/settings-handlers.ts +18 -22
- package/server/services/websocket/types.ts +333 -2
|
@@ -153,7 +153,22 @@ export interface WebSocketMessage {
|
|
|
153
153
|
| 'planCreateSprint'
|
|
154
154
|
| 'planActivateSprint'
|
|
155
155
|
| 'planCompleteSprint'
|
|
156
|
-
| 'planGetSprintArtifacts'
|
|
156
|
+
| 'planGetSprintArtifacts'
|
|
157
|
+
// Deploy message types
|
|
158
|
+
| 'deployCreate'
|
|
159
|
+
| 'deployStop'
|
|
160
|
+
| 'deployResume'
|
|
161
|
+
| 'deployDelete'
|
|
162
|
+
| 'deployList'
|
|
163
|
+
| 'deployGetStatus'
|
|
164
|
+
| 'deployUpdateConfig'
|
|
165
|
+
| 'deploySetApiKey'
|
|
166
|
+
| 'deployValidateApiKey'
|
|
167
|
+
// Deploy HTTP relay message types (server→cli)
|
|
168
|
+
| 'deployHttpRequest'
|
|
169
|
+
// Deploy usage/health message types (cli→server)
|
|
170
|
+
| 'deployUsageReport'
|
|
171
|
+
| 'deployAiHealthUpdate';
|
|
157
172
|
tabId?: string;
|
|
158
173
|
terminalId?: string;
|
|
159
174
|
// biome-ignore lint/suspicious/noExplicitAny: message envelope carries heterogeneous payloads
|
|
@@ -315,7 +330,23 @@ export interface WebSocketResponse {
|
|
|
315
330
|
| 'planSprintUpdated'
|
|
316
331
|
| 'planSprintCompleted'
|
|
317
332
|
| 'planSprintArtifacts'
|
|
318
|
-
| 'planReviewProgress'
|
|
333
|
+
| 'planReviewProgress'
|
|
334
|
+
// Deploy response types
|
|
335
|
+
| 'deployCreated'
|
|
336
|
+
| 'deployStopped'
|
|
337
|
+
| 'deployResumed'
|
|
338
|
+
| 'deployDeleted'
|
|
339
|
+
| 'deployListResult'
|
|
340
|
+
| 'deployStatusResult'
|
|
341
|
+
| 'deployConfigUpdated'
|
|
342
|
+
| 'deployApiKeyStatus'
|
|
343
|
+
| 'deployError'
|
|
344
|
+
// Deploy HTTP relay response types (cli→server)
|
|
345
|
+
| 'deployHttpResponse'
|
|
346
|
+
| 'deployHttpResponseChunk'
|
|
347
|
+
| 'deployStatus'
|
|
348
|
+
| 'deployUsageReportAck'
|
|
349
|
+
| 'deployAiHealthAck';
|
|
319
350
|
tabId?: string;
|
|
320
351
|
terminalId?: string;
|
|
321
352
|
// biome-ignore lint/suspicious/noExplicitAny: message envelope carries heterogeneous payloads
|
|
@@ -626,3 +657,303 @@ export interface WorktreeMergeResult {
|
|
|
626
657
|
/** List of conflicting files (if conflicts) */
|
|
627
658
|
conflictFiles?: string[];
|
|
628
659
|
}
|
|
660
|
+
|
|
661
|
+
// ============================================================================
|
|
662
|
+
// Deploy Types
|
|
663
|
+
// ============================================================================
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* Deployment status
|
|
667
|
+
*/
|
|
668
|
+
export type DeploymentStatus = 'running' | 'stopped' | 'error' | 'starting' | 'stopping';
|
|
669
|
+
|
|
670
|
+
/**
|
|
671
|
+
* Deployment configuration
|
|
672
|
+
*/
|
|
673
|
+
export interface DeployConfig {
|
|
674
|
+
/** Subdomain for the deployment (e.g. "my-app" -> my-app.mstro.app) */
|
|
675
|
+
subdomain: string;
|
|
676
|
+
/** Local port to expose */
|
|
677
|
+
port: number;
|
|
678
|
+
/** Whether AI features are enabled for this deployment */
|
|
679
|
+
aiEnabled: boolean;
|
|
680
|
+
/** Custom domain if configured */
|
|
681
|
+
customDomain?: string;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
/**
|
|
685
|
+
* Deployment info returned in responses
|
|
686
|
+
*/
|
|
687
|
+
export interface DeploymentInfo {
|
|
688
|
+
/** Unique deployment identifier */
|
|
689
|
+
deploymentId: string;
|
|
690
|
+
/** Deployment configuration */
|
|
691
|
+
config: DeployConfig;
|
|
692
|
+
/** Current deployment status */
|
|
693
|
+
status: DeploymentStatus;
|
|
694
|
+
/** Public URL of the deployment */
|
|
695
|
+
url: string;
|
|
696
|
+
/** When the deployment was created (ISO string) */
|
|
697
|
+
createdAt: string;
|
|
698
|
+
/** When the deployment was last updated (ISO string) */
|
|
699
|
+
updatedAt: string;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
/**
|
|
703
|
+
* Message data for deployCreate request
|
|
704
|
+
*/
|
|
705
|
+
export interface DeployCreateData {
|
|
706
|
+
/** Subdomain for the deployment */
|
|
707
|
+
subdomain: string;
|
|
708
|
+
/** Local port to expose */
|
|
709
|
+
port: number;
|
|
710
|
+
/** Whether AI features are enabled */
|
|
711
|
+
aiEnabled: boolean;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
/**
|
|
715
|
+
* Message data for deployStop request
|
|
716
|
+
*/
|
|
717
|
+
export interface DeployStopData {
|
|
718
|
+
/** ID of the deployment to stop */
|
|
719
|
+
deploymentId: string;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
/**
|
|
723
|
+
* Message data for deployResume request
|
|
724
|
+
*/
|
|
725
|
+
export interface DeployResumeData {
|
|
726
|
+
/** ID of the deployment to resume */
|
|
727
|
+
deploymentId: string;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
/**
|
|
731
|
+
* Message data for deployDelete request
|
|
732
|
+
*/
|
|
733
|
+
export interface DeployDeleteData {
|
|
734
|
+
/** ID of the deployment to delete */
|
|
735
|
+
deploymentId: string;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* Message data for deployGetStatus request
|
|
740
|
+
*/
|
|
741
|
+
export interface DeployGetStatusData {
|
|
742
|
+
/** ID of the deployment to get status for */
|
|
743
|
+
deploymentId: string;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
/**
|
|
747
|
+
* Message data for deployUpdateConfig request
|
|
748
|
+
*/
|
|
749
|
+
export interface DeployUpdateConfigData {
|
|
750
|
+
/** ID of the deployment to update */
|
|
751
|
+
deploymentId: string;
|
|
752
|
+
/** Partial config to update */
|
|
753
|
+
config: Partial<DeployConfig>;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
/**
|
|
757
|
+
* Message data for deploySetApiKey request
|
|
758
|
+
* Note: API key transits via WSS but is never stored or logged by the server relay
|
|
759
|
+
*/
|
|
760
|
+
export interface DeploySetApiKeyData {
|
|
761
|
+
/** The API key to set */
|
|
762
|
+
apiKey: string;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Response data for deployCreated
|
|
767
|
+
*/
|
|
768
|
+
export interface DeployCreatedResponse {
|
|
769
|
+
/** The created deployment */
|
|
770
|
+
deployment: DeploymentInfo;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
/**
|
|
774
|
+
* Response data for deployStopped
|
|
775
|
+
*/
|
|
776
|
+
export interface DeployStoppedResponse {
|
|
777
|
+
/** ID of the stopped deployment */
|
|
778
|
+
deploymentId: string;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* Response data for deployResumed
|
|
783
|
+
*/
|
|
784
|
+
export interface DeployResumedResponse {
|
|
785
|
+
/** ID of the resumed deployment */
|
|
786
|
+
deploymentId: string;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* Response data for deployDeleted
|
|
791
|
+
*/
|
|
792
|
+
export interface DeployDeletedResponse {
|
|
793
|
+
/** ID of the deleted deployment */
|
|
794
|
+
deploymentId: string;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
/**
|
|
798
|
+
* Response data for deployListResult
|
|
799
|
+
*/
|
|
800
|
+
export interface DeployListResultResponse {
|
|
801
|
+
/** All deployments for this orchestra */
|
|
802
|
+
deployments: DeploymentInfo[];
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Response data for deployStatusResult
|
|
807
|
+
*/
|
|
808
|
+
export interface DeployStatusResultResponse {
|
|
809
|
+
/** The requested deployment */
|
|
810
|
+
deployment: DeploymentInfo;
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
/**
|
|
814
|
+
* Response data for deployConfigUpdated
|
|
815
|
+
*/
|
|
816
|
+
export interface DeployConfigUpdatedResponse {
|
|
817
|
+
/** The updated deployment */
|
|
818
|
+
deployment: DeploymentInfo;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
/**
|
|
822
|
+
* Response data for deployApiKeyStatus
|
|
823
|
+
* Note: Never includes the full API key — only the last four characters
|
|
824
|
+
*/
|
|
825
|
+
export interface DeployApiKeyStatusResponse {
|
|
826
|
+
/** Validation status of the API key */
|
|
827
|
+
status: 'valid' | 'invalid' | 'missing' | 'rate_limited';
|
|
828
|
+
/** Last four characters of the API key (for display) */
|
|
829
|
+
lastFour?: string;
|
|
830
|
+
/** Where the key was detected from */
|
|
831
|
+
source?: 'env' | 'stored';
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* Response data for deployError
|
|
836
|
+
*/
|
|
837
|
+
export interface DeployErrorResponse {
|
|
838
|
+
/** Error message */
|
|
839
|
+
error: string;
|
|
840
|
+
/** The deployment ID that caused the error, if applicable */
|
|
841
|
+
deploymentId?: string;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
// ============================================================================
|
|
845
|
+
// Deploy HTTP Relay Types
|
|
846
|
+
// ============================================================================
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* Message data for deployHttpRequest (server→cli)
|
|
850
|
+
* Represents an inbound HTTP request to be handled by the CLI
|
|
851
|
+
*/
|
|
852
|
+
export interface DeployHttpRequestData {
|
|
853
|
+
/** UUID for correlating this request with its response */
|
|
854
|
+
requestId: string;
|
|
855
|
+
/** HTTP method (GET, POST, PUT, DELETE, etc.) */
|
|
856
|
+
method: string;
|
|
857
|
+
/** Request URL path with query string (e.g. "/api/hello?name=world") */
|
|
858
|
+
url: string;
|
|
859
|
+
/** HTTP request headers */
|
|
860
|
+
headers: Record<string, string>;
|
|
861
|
+
/** HTTP request body (may be undefined for GET/HEAD) */
|
|
862
|
+
body?: string;
|
|
863
|
+
/** ID of the deployment this request is for */
|
|
864
|
+
deploymentId: string;
|
|
865
|
+
/** Local port of the developer's server to proxy to */
|
|
866
|
+
port: number;
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
/**
|
|
870
|
+
* Response data for deployHttpResponse (cli→server)
|
|
871
|
+
* The CLI's response to a proxied HTTP request
|
|
872
|
+
*/
|
|
873
|
+
export interface DeployHttpResponseData {
|
|
874
|
+
/** UUID matching the original deployHttpRequest */
|
|
875
|
+
requestId: string;
|
|
876
|
+
/** HTTP status code */
|
|
877
|
+
status: number;
|
|
878
|
+
/** HTTP response headers */
|
|
879
|
+
headers: Record<string, string>;
|
|
880
|
+
/** HTTP response body */
|
|
881
|
+
body?: string;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
/**
|
|
885
|
+
* Response data for deployHttpResponseChunk (cli→server)
|
|
886
|
+
* A chunk of a large HTTP response streamed over multiple WebSocket messages
|
|
887
|
+
*/
|
|
888
|
+
export interface DeployHttpResponseChunkData {
|
|
889
|
+
/** UUID matching the original deployHttpRequest */
|
|
890
|
+
requestId: string;
|
|
891
|
+
/** Zero-based index of this chunk */
|
|
892
|
+
chunkIndex: number;
|
|
893
|
+
/** Total number of chunks (known after reading the full response) */
|
|
894
|
+
totalChunks: number;
|
|
895
|
+
/** Base64-encoded chunk data */
|
|
896
|
+
data: string;
|
|
897
|
+
/** Whether this is the last chunk */
|
|
898
|
+
isLast: boolean;
|
|
899
|
+
/** HTTP status code (sent with first chunk) */
|
|
900
|
+
status?: number;
|
|
901
|
+
/** HTTP response headers (sent with first chunk) */
|
|
902
|
+
headers?: Record<string, string>;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* Response data for deployStatus (cli→server)
|
|
907
|
+
* Status update for a deployment
|
|
908
|
+
*/
|
|
909
|
+
export interface DeployStatusData {
|
|
910
|
+
/** ID of the deployment */
|
|
911
|
+
deploymentId: string;
|
|
912
|
+
/** Current status of the deployment */
|
|
913
|
+
status: DeploymentStatus;
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
// ============================================================================
|
|
917
|
+
// Deploy Usage & Health Types
|
|
918
|
+
// ============================================================================
|
|
919
|
+
|
|
920
|
+
/**
|
|
921
|
+
* Message data for deployUsageReport (cli→server)
|
|
922
|
+
* Sent after each AI execution. Contains metadata only — never prompts or responses.
|
|
923
|
+
*/
|
|
924
|
+
export interface DeployUsageReportData {
|
|
925
|
+
/** ID of the deployment */
|
|
926
|
+
deploymentId: string;
|
|
927
|
+
/** End user who triggered the execution */
|
|
928
|
+
endUserId: string;
|
|
929
|
+
/** AI capability used */
|
|
930
|
+
capability: 'headless' | 'pm-board';
|
|
931
|
+
/** Total tokens consumed (input + output) */
|
|
932
|
+
tokensUsed: number;
|
|
933
|
+
/** Model used for execution */
|
|
934
|
+
model: string;
|
|
935
|
+
/** Execution duration in milliseconds */
|
|
936
|
+
durationMs: number;
|
|
937
|
+
/** Optional board ID if capability was pm-board */
|
|
938
|
+
boardId?: string;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
/**
|
|
942
|
+
* AI health status values
|
|
943
|
+
*/
|
|
944
|
+
export type DeployAiHealthStatus = 'healthy' | 'invalid_key' | 'no_credits' | 'rate_limited' | 'unknown_error';
|
|
945
|
+
|
|
946
|
+
/**
|
|
947
|
+
* Message data for deployAiHealthUpdate (cli→server)
|
|
948
|
+
* Sent when the CLI detects an API key or AI service issue.
|
|
949
|
+
*/
|
|
950
|
+
export interface DeployAiHealthUpdateData {
|
|
951
|
+
/** ID of the deployment */
|
|
952
|
+
deploymentId: string;
|
|
953
|
+
/** Current AI health status */
|
|
954
|
+
status: DeployAiHealthStatus;
|
|
955
|
+
/** Human-readable error message */
|
|
956
|
+
message: string;
|
|
957
|
+
/** Whether AI features are currently disabled locally */
|
|
958
|
+
aiDisabled: boolean;
|
|
959
|
+
}
|