@stigmer/react 0.0.36 → 0.0.39
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 +4 -88
- package/__tests__/hooks.test.d.ts +2 -0
- package/__tests__/hooks.test.d.ts.map +1 -0
- package/__tests__/hooks.test.js +18 -0
- package/__tests__/hooks.test.js.map +1 -0
- package/agent/AgentDetailView.d.ts +69 -0
- package/agent/AgentDetailView.d.ts.map +1 -0
- package/agent/AgentDetailView.js +183 -0
- package/agent/AgentDetailView.js.map +1 -0
- package/agent/AgentEnvForm.d.ts +83 -0
- package/agent/AgentEnvForm.d.ts.map +1 -0
- package/agent/AgentEnvForm.js +31 -0
- package/agent/AgentEnvForm.js.map +1 -0
- package/agent/AgentPicker.d.ts +44 -0
- package/agent/AgentPicker.d.ts.map +1 -0
- package/agent/AgentPicker.js +121 -0
- package/agent/AgentPicker.js.map +1 -0
- package/agent/agentSetupReducer.d.ts +122 -0
- package/agent/agentSetupReducer.d.ts.map +1 -0
- package/agent/agentSetupReducer.js +75 -0
- package/agent/agentSetupReducer.js.map +1 -0
- package/agent/index.d.ts +19 -8
- package/agent/index.d.ts.map +1 -1
- package/agent/index.js +10 -6
- package/agent/index.js.map +1 -1
- package/agent/useAgent.d.ts +48 -0
- package/agent/useAgent.d.ts.map +1 -0
- package/agent/useAgent.js +82 -0
- package/agent/useAgent.js.map +1 -0
- package/agent/useAgentCount.d.ts +49 -0
- package/agent/useAgentCount.d.ts.map +1 -0
- package/agent/useAgentCount.js +32 -0
- package/agent/useAgentCount.js.map +1 -0
- package/agent/useAgentList.d.ts +62 -0
- package/agent/useAgentList.d.ts.map +1 -0
- package/agent/useAgentList.js +38 -0
- package/agent/useAgentList.js.map +1 -0
- package/agent/useAgentSearch.d.ts +23 -0
- package/agent/useAgentSearch.d.ts.map +1 -0
- package/agent/useAgentSearch.js +28 -0
- package/agent/useAgentSearch.js.map +1 -0
- package/agent/useAgentSetup.d.ts +115 -0
- package/agent/useAgentSetup.d.ts.map +1 -0
- package/agent/useAgentSetup.js +244 -0
- package/agent/useAgentSetup.js.map +1 -0
- package/agent/useDefaultAgent.d.ts +29 -0
- package/agent/useDefaultAgent.d.ts.map +1 -0
- package/agent/useDefaultAgent.js +60 -0
- package/agent/useDefaultAgent.js.map +1 -0
- package/agent-instance/buildPersonalInstanceInput.d.ts +20 -0
- package/agent-instance/buildPersonalInstanceInput.d.ts.map +1 -0
- package/agent-instance/buildPersonalInstanceInput.js +29 -0
- package/agent-instance/buildPersonalInstanceInput.js.map +1 -0
- package/agent-instance/index.d.ts +9 -0
- package/agent-instance/index.d.ts.map +1 -0
- package/agent-instance/index.js +5 -0
- package/agent-instance/index.js.map +1 -0
- package/agent-instance/useAgentInstance.d.ts +35 -0
- package/agent-instance/useAgentInstance.d.ts.map +1 -0
- package/agent-instance/useAgentInstance.js +67 -0
- package/agent-instance/useAgentInstance.js.map +1 -0
- package/agent-instance/useAgentInstanceList.d.ts +29 -0
- package/agent-instance/useAgentInstanceList.d.ts.map +1 -0
- package/agent-instance/useAgentInstanceList.js +74 -0
- package/agent-instance/useAgentInstanceList.js.map +1 -0
- package/agent-instance/useCreateAgentInstance.d.ts +44 -0
- package/agent-instance/useCreateAgentInstance.d.ts.map +1 -0
- package/agent-instance/useCreateAgentInstance.js +60 -0
- package/agent-instance/useCreateAgentInstance.js.map +1 -0
- package/agent-instance/usePersonalAgentInstance.d.ts +93 -0
- package/agent-instance/usePersonalAgentInstance.d.ts.map +1 -0
- package/agent-instance/usePersonalAgentInstance.js +103 -0
- package/agent-instance/usePersonalAgentInstance.js.map +1 -0
- package/attachment/AttachmentChipList.d.ts +24 -0
- package/attachment/AttachmentChipList.d.ts.map +1 -0
- package/attachment/AttachmentChipList.js +45 -0
- package/attachment/AttachmentChipList.js.map +1 -0
- package/attachment/attachment-utils.d.ts +32 -0
- package/attachment/attachment-utils.d.ts.map +1 -0
- package/attachment/attachment-utils.js +104 -0
- package/attachment/attachment-utils.js.map +1 -0
- package/attachment/index.d.ts +6 -0
- package/attachment/index.d.ts.map +1 -0
- package/attachment/index.js +4 -0
- package/attachment/index.js.map +1 -0
- package/attachment/useAttachments.d.ts +113 -0
- package/attachment/useAttachments.d.ts.map +1 -0
- package/attachment/useAttachments.js +175 -0
- package/attachment/useAttachments.js.map +1 -0
- package/composer/ComposerToolbar.d.ts +37 -0
- package/composer/ComposerToolbar.d.ts.map +1 -0
- package/composer/ComposerToolbar.js +24 -0
- package/composer/ComposerToolbar.js.map +1 -0
- package/composer/ConfigureMenu.d.ts +37 -0
- package/composer/ConfigureMenu.d.ts.map +1 -0
- package/composer/ConfigureMenu.js +53 -0
- package/composer/ConfigureMenu.js.map +1 -0
- package/composer/ContextChip.d.ts +22 -0
- package/composer/ContextChip.d.ts.map +1 -0
- package/composer/ContextChip.js +19 -0
- package/composer/ContextChip.js.map +1 -0
- package/composer/ContextPopover.d.ts +10 -0
- package/composer/ContextPopover.d.ts.map +1 -0
- package/composer/ContextPopover.js +11 -0
- package/composer/ContextPopover.js.map +1 -0
- package/composer/SessionComposer.d.ts +269 -0
- package/composer/SessionComposer.d.ts.map +1 -0
- package/composer/SessionComposer.js +568 -0
- package/composer/SessionComposer.js.map +1 -0
- package/composer/icons.d.ts +15 -0
- package/composer/icons.d.ts.map +1 -0
- package/composer/icons.js +42 -0
- package/composer/icons.js.map +1 -0
- package/composer/index.d.ts +5 -0
- package/composer/index.d.ts.map +1 -0
- package/composer/index.js +3 -0
- package/composer/index.js.map +1 -0
- package/composer/useComposer.d.ts +74 -0
- package/composer/useComposer.d.ts.map +1 -0
- package/composer/useComposer.js +94 -0
- package/composer/useComposer.js.map +1 -0
- package/environment/CreateEnvironmentForm.d.ts +31 -0
- package/environment/CreateEnvironmentForm.d.ts.map +1 -0
- package/environment/CreateEnvironmentForm.js +57 -0
- package/environment/CreateEnvironmentForm.js.map +1 -0
- package/environment/EnvVarForm.d.ts +134 -0
- package/environment/EnvVarForm.d.ts.map +1 -0
- package/environment/EnvVarForm.js +122 -0
- package/environment/EnvVarForm.js.map +1 -0
- package/environment/EnvironmentListPanel.d.ts +51 -0
- package/environment/EnvironmentListPanel.d.ts.map +1 -0
- package/environment/EnvironmentListPanel.js +96 -0
- package/environment/EnvironmentListPanel.js.map +1 -0
- package/environment/EnvironmentVariableEditor.d.ts +43 -0
- package/environment/EnvironmentVariableEditor.d.ts.map +1 -0
- package/environment/EnvironmentVariableEditor.js +269 -0
- package/environment/EnvironmentVariableEditor.js.map +1 -0
- package/environment/diffEnvSpec.d.ts +34 -0
- package/environment/diffEnvSpec.d.ts.map +1 -0
- package/environment/diffEnvSpec.js +44 -0
- package/environment/diffEnvSpec.js.map +1 -0
- package/environment/index.d.ts +28 -0
- package/environment/index.d.ts.map +1 -0
- package/environment/index.js +15 -0
- package/environment/index.js.map +1 -0
- package/environment/useCreateEnvironment.d.ts +43 -0
- package/environment/useCreateEnvironment.d.ts.map +1 -0
- package/environment/useCreateEnvironment.js +59 -0
- package/environment/useCreateEnvironment.js.map +1 -0
- package/environment/useEnvironment.d.ts +37 -0
- package/environment/useEnvironment.d.ts.map +1 -0
- package/environment/useEnvironment.js +69 -0
- package/environment/useEnvironment.js.map +1 -0
- package/environment/useEnvironmentList.d.ts +31 -0
- package/environment/useEnvironmentList.d.ts.map +1 -0
- package/environment/useEnvironmentList.js +88 -0
- package/environment/useEnvironmentList.js.map +1 -0
- package/environment/usePersonalEnvironment.d.ts +100 -0
- package/environment/usePersonalEnvironment.d.ts.map +1 -0
- package/environment/usePersonalEnvironment.js +168 -0
- package/environment/usePersonalEnvironment.js.map +1 -0
- package/environment/useRemoveEnvironmentVariables.d.ts +45 -0
- package/environment/useRemoveEnvironmentVariables.d.ts.map +1 -0
- package/environment/useRemoveEnvironmentVariables.js +57 -0
- package/environment/useRemoveEnvironmentVariables.js.map +1 -0
- package/environment/useRevealSecretValue.d.ts +66 -0
- package/environment/useRevealSecretValue.d.ts.map +1 -0
- package/environment/useRevealSecretValue.js +92 -0
- package/environment/useRevealSecretValue.js.map +1 -0
- package/environment/useSessionEnvPool.d.ts +80 -0
- package/environment/useSessionEnvPool.d.ts.map +1 -0
- package/environment/useSessionEnvPool.js +72 -0
- package/environment/useSessionEnvPool.js.map +1 -0
- package/environment/useUpdateEnvironment.d.ts +43 -0
- package/environment/useUpdateEnvironment.d.ts.map +1 -0
- package/environment/useUpdateEnvironment.js +59 -0
- package/environment/useUpdateEnvironment.js.map +1 -0
- package/environment/useUpdateEnvironmentVariables.d.ts +53 -0
- package/environment/useUpdateEnvironmentVariables.d.ts.map +1 -0
- package/environment/useUpdateEnvironmentVariables.js +71 -0
- package/environment/useUpdateEnvironmentVariables.js.map +1 -0
- package/error/ErrorMessage.d.ts +33 -0
- package/error/ErrorMessage.d.ts.map +1 -0
- package/error/ErrorMessage.js +60 -0
- package/error/ErrorMessage.js.map +1 -0
- package/error/SecretFlowErrorGuide.d.ts +41 -0
- package/error/SecretFlowErrorGuide.d.ts.map +1 -0
- package/error/SecretFlowErrorGuide.js +87 -0
- package/error/SecretFlowErrorGuide.js.map +1 -0
- package/error/index.d.ts +5 -0
- package/error/index.d.ts.map +1 -0
- package/error/index.js +3 -0
- package/error/index.js.map +1 -0
- package/execution/ApprovalCard.d.ts +35 -0
- package/execution/ApprovalCard.d.ts.map +1 -0
- package/execution/ApprovalCard.js +192 -0
- package/execution/ApprovalCard.js.map +1 -0
- package/execution/ArtifactCard.d.ts +70 -0
- package/execution/ArtifactCard.d.ts.map +1 -0
- package/execution/ArtifactCard.js +109 -0
- package/execution/ArtifactCard.js.map +1 -0
- package/execution/ArtifactPreviewModal.d.ts +77 -0
- package/execution/ArtifactPreviewModal.d.ts.map +1 -0
- package/execution/ArtifactPreviewModal.js +310 -0
- package/execution/ArtifactPreviewModal.js.map +1 -0
- package/execution/ArtifactsWidget.d.ts +63 -0
- package/execution/ArtifactsWidget.d.ts.map +1 -0
- package/execution/ArtifactsWidget.js +61 -0
- package/execution/ArtifactsWidget.js.map +1 -0
- package/execution/ExecutionCostSummary.d.ts +47 -0
- package/execution/ExecutionCostSummary.d.ts.map +1 -0
- package/execution/ExecutionCostSummary.js +77 -0
- package/execution/ExecutionCostSummary.js.map +1 -0
- package/execution/ExecutionPhaseBadge.d.ts +20 -0
- package/execution/ExecutionPhaseBadge.d.ts.map +1 -0
- package/execution/ExecutionPhaseBadge.js +112 -0
- package/execution/ExecutionPhaseBadge.js.map +1 -0
- package/execution/ExecutionProgress.d.ts +32 -0
- package/execution/ExecutionProgress.d.ts.map +1 -0
- package/execution/ExecutionProgress.js +96 -0
- package/execution/ExecutionProgress.js.map +1 -0
- package/execution/FilePathContext.d.ts +22 -0
- package/execution/FilePathContext.d.ts.map +1 -0
- package/execution/FilePathContext.js +6 -0
- package/execution/FilePathContext.js.map +1 -0
- package/execution/FilePathLink.d.ts +26 -0
- package/execution/FilePathLink.d.ts.map +1 -0
- package/execution/FilePathLink.js +64 -0
- package/execution/FilePathLink.js.map +1 -0
- package/execution/FollowUpInput.d.ts +55 -0
- package/execution/FollowUpInput.d.ts.map +1 -0
- package/execution/FollowUpInput.js +95 -0
- package/execution/FollowUpInput.js.map +1 -0
- package/execution/MessageEntry.d.ts +25 -0
- package/execution/MessageEntry.d.ts.map +1 -0
- package/execution/MessageEntry.js +46 -0
- package/execution/MessageEntry.js.map +1 -0
- package/execution/MessageThread.d.ts +88 -0
- package/execution/MessageThread.d.ts.map +1 -0
- package/execution/MessageThread.js +157 -0
- package/execution/MessageThread.js.map +1 -0
- package/execution/SessionVariablesInput.d.ts +47 -0
- package/execution/SessionVariablesInput.d.ts.map +1 -0
- package/execution/SessionVariablesInput.js +80 -0
- package/execution/SessionVariablesInput.js.map +1 -0
- package/execution/SubAgentSection.d.ts +23 -0
- package/execution/SubAgentSection.d.ts.map +1 -0
- package/execution/SubAgentSection.js +103 -0
- package/execution/SubAgentSection.js.map +1 -0
- package/execution/ToolCallDetail.d.ts +32 -0
- package/execution/ToolCallDetail.d.ts.map +1 -0
- package/execution/ToolCallDetail.js +204 -0
- package/execution/ToolCallDetail.js.map +1 -0
- package/execution/ToolCallGroup.d.ts +45 -0
- package/execution/ToolCallGroup.d.ts.map +1 -0
- package/execution/ToolCallGroup.js +160 -0
- package/execution/ToolCallGroup.js.map +1 -0
- package/execution/ToolCallItem.d.ts +39 -0
- package/execution/ToolCallItem.d.ts.map +1 -0
- package/execution/ToolCallItem.js +164 -0
- package/execution/ToolCallItem.js.map +1 -0
- package/execution/__tests__/ExecutionCostSummary.test.d.ts +2 -0
- package/execution/__tests__/ExecutionCostSummary.test.d.ts.map +1 -0
- package/execution/__tests__/ExecutionCostSummary.test.js +255 -0
- package/execution/__tests__/ExecutionCostSummary.test.js.map +1 -0
- package/execution/__tests__/execution-phases.test.d.ts +2 -0
- package/execution/__tests__/execution-phases.test.d.ts.map +1 -0
- package/execution/__tests__/execution-phases.test.js +25 -0
- package/execution/__tests__/execution-phases.test.js.map +1 -0
- package/execution/__tests__/useExecutionStream.test.d.ts +2 -0
- package/execution/__tests__/useExecutionStream.test.d.ts.map +1 -0
- package/execution/__tests__/useExecutionStream.test.js +190 -0
- package/execution/__tests__/useExecutionStream.test.js.map +1 -0
- package/execution/__tests__/useExecutionUsage.test.d.ts +2 -0
- package/execution/__tests__/useExecutionUsage.test.d.ts.map +1 -0
- package/execution/__tests__/useExecutionUsage.test.js +303 -0
- package/execution/__tests__/useExecutionUsage.test.js.map +1 -0
- package/execution/artifact-utils.d.ts +58 -0
- package/execution/artifact-utils.d.ts.map +1 -0
- package/execution/artifact-utils.js +123 -0
- package/execution/artifact-utils.js.map +1 -0
- package/execution/execution-phases.d.ts +7 -0
- package/execution/execution-phases.d.ts.map +1 -0
- package/execution/execution-phases.js +15 -0
- package/execution/execution-phases.js.map +1 -0
- package/execution/file-path-resolver.d.ts +63 -0
- package/execution/file-path-resolver.d.ts.map +1 -0
- package/execution/file-path-resolver.js +121 -0
- package/execution/file-path-resolver.js.map +1 -0
- package/execution/index.d.ts +55 -0
- package/execution/index.d.ts.map +1 -0
- package/execution/index.js +29 -0
- package/execution/index.js.map +1 -0
- package/execution/tool-categories.d.ts +36 -0
- package/execution/tool-categories.d.ts.map +1 -0
- package/execution/tool-categories.js +110 -0
- package/execution/tool-categories.js.map +1 -0
- package/execution/useArtifactContent.d.ts +75 -0
- package/execution/useArtifactContent.d.ts.map +1 -0
- package/execution/useArtifactContent.js +102 -0
- package/execution/useArtifactContent.js.map +1 -0
- package/execution/useCreateAgentExecution.d.ts +84 -0
- package/execution/useCreateAgentExecution.d.ts.map +1 -0
- package/execution/useCreateAgentExecution.js +79 -0
- package/execution/useCreateAgentExecution.js.map +1 -0
- package/execution/useExecutionArtifacts.d.ts +42 -0
- package/execution/useExecutionArtifacts.d.ts.map +1 -0
- package/execution/useExecutionArtifacts.js +43 -0
- package/execution/useExecutionArtifacts.js.map +1 -0
- package/execution/useExecutionStream.d.ts +62 -0
- package/execution/useExecutionStream.d.ts.map +1 -0
- package/execution/useExecutionStream.js +99 -0
- package/execution/useExecutionStream.js.map +1 -0
- package/execution/useExecutionUsage.d.ts +45 -0
- package/execution/useExecutionUsage.d.ts.map +1 -0
- package/execution/useExecutionUsage.js +157 -0
- package/execution/useExecutionUsage.js.map +1 -0
- package/execution/useSessionVariables.d.ts +102 -0
- package/execution/useSessionVariables.d.ts.map +1 -0
- package/execution/useSessionVariables.js +102 -0
- package/execution/useSessionVariables.js.map +1 -0
- package/execution/useSubmitApproval.d.ts +39 -0
- package/execution/useSubmitApproval.d.ts.map +1 -0
- package/execution/useSubmitApproval.js +62 -0
- package/execution/useSubmitApproval.js.map +1 -0
- package/github/GitHubRepoPicker.d.ts +24 -0
- package/github/GitHubRepoPicker.d.ts.map +1 -0
- package/github/GitHubRepoPicker.js +248 -0
- package/github/GitHubRepoPicker.js.map +1 -0
- package/github/index.d.ts +4 -0
- package/github/index.d.ts.map +1 -0
- package/github/index.js +4 -0
- package/github/index.js.map +1 -0
- package/github/useGitHubConnection.d.ts +72 -0
- package/github/useGitHubConnection.d.ts.map +1 -0
- package/github/useGitHubConnection.js +268 -0
- package/github/useGitHubConnection.js.map +1 -0
- package/github/useGitHubRepos.d.ts +39 -0
- package/github/useGitHubRepos.d.ts.map +1 -0
- package/github/useGitHubRepos.js +135 -0
- package/github/useGitHubRepos.js.map +1 -0
- package/index.d.ts +32 -0
- package/index.d.ts.map +1 -1
- package/index.js +31 -0
- package/index.js.map +1 -1
- package/internal/ScrollFade.d.ts +15 -0
- package/internal/ScrollFade.d.ts.map +1 -0
- package/internal/ScrollFade.js +24 -0
- package/internal/ScrollFade.js.map +1 -0
- package/internal/markdown-components.d.ts +18 -0
- package/internal/markdown-components.d.ts.map +1 -0
- package/internal/markdown-components.js +78 -0
- package/internal/markdown-components.js.map +1 -0
- package/internal/slug.d.ts +32 -0
- package/internal/slug.d.ts.map +1 -0
- package/internal/slug.js +41 -0
- package/internal/slug.js.map +1 -0
- package/internal/toError.d.ts +16 -0
- package/internal/toError.d.ts.map +1 -0
- package/internal/toError.js +22 -0
- package/internal/toError.js.map +1 -0
- package/internal/useScrollShadows.d.ts +22 -0
- package/internal/useScrollShadows.d.ts.map +1 -0
- package/internal/useScrollShadows.js +40 -0
- package/internal/useScrollShadows.js.map +1 -0
- package/library/ResourceCountCard.d.ts +104 -0
- package/library/ResourceCountCard.d.ts.map +1 -0
- package/library/ResourceCountCard.js +80 -0
- package/library/ResourceCountCard.js.map +1 -0
- package/library/ResourceListView.d.ts +123 -0
- package/library/ResourceListView.d.ts.map +1 -0
- package/library/ResourceListView.js +208 -0
- package/library/ResourceListView.js.map +1 -0
- package/library/ScopeToggle.d.ts +38 -0
- package/library/ScopeToggle.d.ts.map +1 -0
- package/library/ScopeToggle.js +61 -0
- package/library/ScopeToggle.js.map +1 -0
- package/library/detect-skill-package.d.ts +79 -0
- package/library/detect-skill-package.d.ts.map +1 -0
- package/library/detect-skill-package.js +113 -0
- package/library/detect-skill-package.js.map +1 -0
- package/library/detect-stigmer-resource.d.ts +66 -0
- package/library/detect-stigmer-resource.d.ts.map +1 -0
- package/library/detect-stigmer-resource.js +77 -0
- package/library/detect-stigmer-resource.js.map +1 -0
- package/library/index.d.ts +20 -0
- package/library/index.d.ts.map +1 -0
- package/library/index.js +11 -0
- package/library/index.js.map +1 -0
- package/library/parse-resource-yaml.d.ts +59 -0
- package/library/parse-resource-yaml.d.ts.map +1 -0
- package/library/parse-resource-yaml.js +397 -0
- package/library/parse-resource-yaml.js.map +1 -0
- package/library/serialize-resource-yaml.d.ts +50 -0
- package/library/serialize-resource-yaml.d.ts.map +1 -0
- package/library/serialize-resource-yaml.js +294 -0
- package/library/serialize-resource-yaml.js.map +1 -0
- package/library/useApplyResource.d.ts +115 -0
- package/library/useApplyResource.d.ts.map +1 -0
- package/library/useApplyResource.js +124 -0
- package/library/useApplyResource.js.map +1 -0
- package/library/useDetectSkillPackage.d.ts +54 -0
- package/library/useDetectSkillPackage.d.ts.map +1 -0
- package/library/useDetectSkillPackage.js +59 -0
- package/library/useDetectSkillPackage.js.map +1 -0
- package/library/useDetectStigmerResource.d.ts +30 -0
- package/library/useDetectStigmerResource.d.ts.map +1 -0
- package/library/useDetectStigmerResource.js +35 -0
- package/library/useDetectStigmerResource.js.map +1 -0
- package/mcp-server/McpServerConfigPanel.d.ts +116 -0
- package/mcp-server/McpServerConfigPanel.d.ts.map +1 -0
- package/mcp-server/McpServerConfigPanel.js +72 -0
- package/mcp-server/McpServerConfigPanel.js.map +1 -0
- package/mcp-server/McpServerDetailView.d.ts +43 -0
- package/mcp-server/McpServerDetailView.d.ts.map +1 -0
- package/mcp-server/McpServerDetailView.js +137 -0
- package/mcp-server/McpServerDetailView.js.map +1 -0
- package/mcp-server/McpServerPicker.d.ts +158 -0
- package/mcp-server/McpServerPicker.d.ts.map +1 -0
- package/mcp-server/McpServerPicker.js +265 -0
- package/mcp-server/McpServerPicker.js.map +1 -0
- package/mcp-server/McpToolSelector.d.ts +44 -0
- package/mcp-server/McpToolSelector.d.ts.map +1 -0
- package/mcp-server/McpToolSelector.js +75 -0
- package/mcp-server/McpToolSelector.js.map +1 -0
- package/mcp-server/index.d.ts +18 -2
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js +9 -2
- package/mcp-server/index.js.map +1 -1
- package/mcp-server/mcpServerSetupReducer.d.ts +138 -0
- package/mcp-server/mcpServerSetupReducer.d.ts.map +1 -0
- package/mcp-server/mcpServerSetupReducer.js +163 -0
- package/mcp-server/mcpServerSetupReducer.js.map +1 -0
- package/mcp-server/useMcpServer.d.ts +48 -0
- package/mcp-server/useMcpServer.d.ts.map +1 -0
- package/mcp-server/useMcpServer.js +82 -0
- package/mcp-server/useMcpServer.js.map +1 -0
- package/mcp-server/useMcpServerCount.d.ts +49 -0
- package/mcp-server/useMcpServerCount.d.ts.map +1 -0
- package/mcp-server/useMcpServerCount.js +32 -0
- package/mcp-server/useMcpServerCount.js.map +1 -0
- package/mcp-server/useMcpServerList.d.ts +62 -0
- package/mcp-server/useMcpServerList.d.ts.map +1 -0
- package/mcp-server/useMcpServerList.js +38 -0
- package/mcp-server/useMcpServerList.js.map +1 -0
- package/mcp-server/useMcpServerSearch.d.ts +18 -0
- package/mcp-server/useMcpServerSearch.d.ts.map +1 -0
- package/mcp-server/useMcpServerSearch.js +23 -0
- package/mcp-server/useMcpServerSearch.js.map +1 -0
- package/mcp-server/useMcpServerSetup.d.ts +162 -0
- package/mcp-server/useMcpServerSetup.d.ts.map +1 -0
- package/mcp-server/useMcpServerSetup.js +269 -0
- package/mcp-server/useMcpServerSetup.js.map +1 -0
- package/models/ModelSelector.d.ts +22 -0
- package/models/ModelSelector.d.ts.map +1 -0
- package/models/ModelSelector.js +59 -0
- package/models/ModelSelector.js.map +1 -0
- package/models/index.d.ts +7 -0
- package/models/index.d.ts.map +1 -0
- package/models/index.js +4 -0
- package/models/index.js.map +1 -0
- package/models/registry.d.ts +22 -0
- package/models/registry.d.ts.map +1 -0
- package/models/registry.js +43 -0
- package/models/registry.js.map +1 -0
- package/models/useModelRegistry.d.ts +18 -0
- package/models/useModelRegistry.d.ts.map +1 -0
- package/models/useModelRegistry.js +40 -0
- package/models/useModelRegistry.js.map +1 -0
- package/organization/CreateOrganizationForm.d.ts +28 -0
- package/organization/CreateOrganizationForm.d.ts.map +1 -0
- package/organization/CreateOrganizationForm.js +91 -0
- package/organization/CreateOrganizationForm.js.map +1 -0
- package/organization/index.d.ts +5 -0
- package/organization/index.d.ts.map +1 -0
- package/organization/index.js +3 -0
- package/organization/index.js.map +1 -0
- package/organization/useCreateOrganization.d.ts +34 -0
- package/organization/useCreateOrganization.d.ts.map +1 -0
- package/organization/useCreateOrganization.js +50 -0
- package/organization/useCreateOrganization.js.map +1 -0
- package/package.json +12 -40
- package/search/index.d.ts +7 -0
- package/search/index.d.ts.map +1 -0
- package/search/index.js +4 -0
- package/search/index.js.map +1 -0
- package/search/useResourceCount.d.ts +42 -0
- package/search/useResourceCount.d.ts.map +1 -0
- package/search/useResourceCount.js +58 -0
- package/search/useResourceCount.js.map +1 -0
- package/search/useResourceList.d.ts +43 -0
- package/search/useResourceList.d.ts.map +1 -0
- package/search/useResourceList.js +73 -0
- package/search/useResourceList.js.map +1 -0
- package/search/useResourceSearch.d.ts +27 -0
- package/search/useResourceSearch.d.ts.map +1 -0
- package/search/useResourceSearch.js +55 -0
- package/search/useResourceSearch.js.map +1 -0
- package/session/__tests__/group-sessions.test.d.ts +2 -0
- package/session/__tests__/group-sessions.test.d.ts.map +1 -0
- package/session/__tests__/group-sessions.test.js +91 -0
- package/session/__tests__/group-sessions.test.js.map +1 -0
- package/session/__tests__/useSessionConversation.test.d.ts +2 -0
- package/session/__tests__/useSessionConversation.test.d.ts.map +1 -0
- package/session/__tests__/useSessionConversation.test.js +209 -0
- package/session/__tests__/useSessionConversation.test.js.map +1 -0
- package/session/group-sessions.d.ts +20 -0
- package/session/group-sessions.d.ts.map +1 -0
- package/session/group-sessions.js +61 -0
- package/session/group-sessions.js.map +1 -0
- package/session/index.d.ts +16 -6
- package/session/index.d.ts.map +1 -1
- package/session/index.js +8 -5
- package/session/index.js.map +1 -1
- package/session/useAgentRefFromSession.d.ts +28 -0
- package/session/useAgentRefFromSession.d.ts.map +1 -0
- package/session/useAgentRefFromSession.js +73 -0
- package/session/useAgentRefFromSession.js.map +1 -0
- package/session/useCreateSession.d.ts +73 -0
- package/session/useCreateSession.d.ts.map +1 -0
- package/session/useCreateSession.js +86 -0
- package/session/useCreateSession.js.map +1 -0
- package/session/useSession.d.ts +17 -0
- package/session/useSession.d.ts.map +1 -0
- package/session/useSession.js +46 -0
- package/session/useSession.js.map +1 -0
- package/session/useSessionConversation.d.ts +151 -0
- package/session/useSessionConversation.d.ts.map +1 -0
- package/session/useSessionConversation.js +282 -0
- package/session/useSessionConversation.js.map +1 -0
- package/session/useSessionExecutions.d.ts +20 -0
- package/session/useSessionExecutions.d.ts.map +1 -0
- package/session/useSessionExecutions.js +57 -0
- package/session/useSessionExecutions.js.map +1 -0
- package/session/useSessionList.d.ts +25 -0
- package/session/useSessionList.d.ts.map +1 -0
- package/session/useSessionList.js +57 -0
- package/session/useSessionList.js.map +1 -0
- package/session/useUpdateSession.d.ts +22 -0
- package/session/useUpdateSession.d.ts.map +1 -0
- package/session/useUpdateSession.js +38 -0
- package/session/useUpdateSession.js.map +1 -0
- package/skill/SkillDetailView.d.ts +51 -0
- package/skill/SkillDetailView.d.ts.map +1 -0
- package/skill/SkillDetailView.js +156 -0
- package/skill/SkillDetailView.js.map +1 -0
- package/skill/SkillPicker.d.ts +26 -0
- package/skill/SkillPicker.d.ts.map +1 -0
- package/skill/SkillPicker.js +102 -0
- package/skill/SkillPicker.js.map +1 -0
- package/skill/index.d.ts +12 -2
- package/skill/index.d.ts.map +1 -1
- package/skill/index.js +6 -2
- package/skill/index.js.map +1 -1
- package/skill/useSkill.d.ts +49 -0
- package/skill/useSkill.d.ts.map +1 -0
- package/skill/useSkill.js +83 -0
- package/skill/useSkill.js.map +1 -0
- package/skill/useSkillCount.d.ts +49 -0
- package/skill/useSkillCount.d.ts.map +1 -0
- package/skill/useSkillCount.js +32 -0
- package/skill/useSkillCount.js.map +1 -0
- package/skill/useSkillList.d.ts +62 -0
- package/skill/useSkillList.d.ts.map +1 -0
- package/skill/useSkillList.js +38 -0
- package/skill/useSkillList.js.map +1 -0
- package/skill/useSkillSearch.d.ts +18 -0
- package/skill/useSkillSearch.d.ts.map +1 -0
- package/skill/useSkillSearch.js +23 -0
- package/skill/useSkillSearch.js.map +1 -0
- package/src/__tests__/hooks.test.tsx +28 -0
- package/src/agent/AgentDetailView.tsx +712 -0
- package/src/agent/AgentEnvForm.tsx +113 -0
- package/src/agent/AgentPicker.tsx +342 -0
- package/src/agent/agentSetupReducer.ts +222 -0
- package/src/agent/index.ts +43 -11
- package/src/agent/useAgent.ts +103 -0
- package/src/agent/useAgentCount.ts +68 -0
- package/src/agent/useAgentList.ts +84 -0
- package/src/agent/useAgentSearch.ts +43 -0
- package/src/agent/useAgentSetup.ts +384 -0
- package/src/agent/useDefaultAgent.ts +77 -0
- package/src/agent-instance/buildPersonalInstanceInput.ts +40 -0
- package/src/agent-instance/index.ts +11 -0
- package/src/agent-instance/useAgentInstance.ts +87 -0
- package/src/agent-instance/useAgentInstanceList.ts +99 -0
- package/src/agent-instance/useCreateAgentInstance.ts +75 -0
- package/src/agent-instance/usePersonalAgentInstance.ts +185 -0
- package/src/attachment/AttachmentChipList.tsx +189 -0
- package/src/attachment/attachment-utils.ts +114 -0
- package/src/attachment/index.ts +17 -0
- package/src/attachment/useAttachments.ts +293 -0
- package/src/composer/ComposerToolbar.tsx +169 -0
- package/src/composer/ConfigureMenu.tsx +237 -0
- package/src/composer/ContextChip.tsx +104 -0
- package/src/composer/ContextPopover.tsx +54 -0
- package/src/composer/SessionComposer.tsx +1175 -0
- package/src/composer/icons.tsx +253 -0
- package/src/composer/index.ts +8 -0
- package/src/composer/useComposer.ts +163 -0
- package/src/environment/CreateEnvironmentForm.tsx +188 -0
- package/src/environment/EnvVarForm.tsx +475 -0
- package/src/environment/EnvironmentListPanel.tsx +258 -0
- package/src/environment/EnvironmentVariableEditor.tsx +811 -0
- package/src/environment/diffEnvSpec.ts +50 -0
- package/src/environment/index.ts +43 -0
- package/src/environment/useCreateEnvironment.ts +74 -0
- package/src/environment/useEnvironment.ts +89 -0
- package/src/environment/useEnvironmentList.ts +112 -0
- package/src/environment/usePersonalEnvironment.ts +285 -0
- package/src/environment/useRemoveEnvironmentVariables.ts +86 -0
- package/src/environment/useRevealSecretValue.ts +141 -0
- package/src/environment/useSessionEnvPool.ts +151 -0
- package/src/environment/useUpdateEnvironment.ts +74 -0
- package/src/environment/useUpdateEnvironmentVariables.ts +106 -0
- package/src/error/ErrorMessage.tsx +225 -0
- package/src/error/SecretFlowErrorGuide.tsx +189 -0
- package/src/error/index.ts +5 -0
- package/src/execution/ApprovalCard.tsx +499 -0
- package/src/execution/ArtifactCard.tsx +275 -0
- package/src/execution/ArtifactPreviewModal.tsx +942 -0
- package/src/execution/ArtifactsWidget.tsx +128 -0
- package/src/execution/ExecutionCostSummary.tsx +172 -0
- package/src/execution/ExecutionPhaseBadge.tsx +223 -0
- package/src/execution/ExecutionProgress.tsx +191 -0
- package/src/execution/FilePathContext.tsx +32 -0
- package/src/execution/FilePathLink.tsx +147 -0
- package/src/execution/FollowUpInput.tsx +220 -0
- package/src/execution/MessageEntry.tsx +120 -0
- package/src/execution/MessageThread.tsx +343 -0
- package/src/execution/SessionVariablesInput.tsx +374 -0
- package/src/execution/SubAgentSection.tsx +243 -0
- package/src/execution/ToolCallDetail.tsx +452 -0
- package/src/execution/ToolCallGroup.tsx +342 -0
- package/src/execution/ToolCallItem.tsx +426 -0
- package/src/execution/__tests__/ExecutionCostSummary.test.tsx +416 -0
- package/src/execution/__tests__/execution-phases.test.ts +31 -0
- package/src/execution/__tests__/useExecutionStream.test.tsx +242 -0
- package/src/execution/__tests__/useExecutionUsage.test.tsx +408 -0
- package/src/execution/artifact-utils.ts +136 -0
- package/src/execution/execution-phases.ts +16 -0
- package/src/execution/file-path-resolver.ts +171 -0
- package/src/execution/index.ts +97 -0
- package/src/execution/tool-categories.ts +171 -0
- package/src/execution/useArtifactContent.ts +156 -0
- package/src/execution/useCreateAgentExecution.ts +137 -0
- package/src/execution/useExecutionArtifacts.ts +58 -0
- package/src/execution/useExecutionStream.ts +149 -0
- package/src/execution/useExecutionUsage.ts +213 -0
- package/src/execution/useSessionVariables.ts +189 -0
- package/src/execution/useSubmitApproval.ts +98 -0
- package/src/github/GitHubRepoPicker.tsx +568 -0
- package/src/github/index.ts +19 -0
- package/src/github/useGitHubConnection.ts +368 -0
- package/src/github/useGitHubRepos.ts +197 -0
- package/src/index.ts +367 -0
- package/src/internal/ScrollFade.tsx +29 -0
- package/src/internal/markdown-components.tsx +197 -0
- package/src/internal/slug.ts +41 -0
- package/src/internal/toError.ts +19 -0
- package/src/internal/useScrollShadows.ts +54 -0
- package/src/library/ResourceCountCard.tsx +187 -0
- package/src/library/ResourceListView.tsx +698 -0
- package/src/library/ScopeToggle.tsx +121 -0
- package/src/library/detect-skill-package.ts +162 -0
- package/src/library/detect-stigmer-resource.ts +130 -0
- package/src/library/index.ts +42 -0
- package/src/library/parse-resource-yaml.ts +611 -0
- package/src/library/serialize-resource-yaml.ts +407 -0
- package/src/library/useApplyResource.ts +211 -0
- package/src/library/useDetectSkillPackage.ts +91 -0
- package/src/library/useDetectStigmerResource.ts +45 -0
- package/src/mcp-server/McpServerConfigPanel.tsx +265 -0
- package/src/mcp-server/McpServerDetailView.tsx +580 -0
- package/src/mcp-server/McpServerPicker.tsx +857 -0
- package/src/mcp-server/McpToolSelector.tsx +243 -0
- package/src/mcp-server/index.ts +44 -3
- package/src/mcp-server/mcpServerSetupReducer.ts +308 -0
- package/src/mcp-server/useMcpServer.ts +103 -0
- package/src/mcp-server/useMcpServerCount.ts +68 -0
- package/src/mcp-server/useMcpServerList.ts +84 -0
- package/src/mcp-server/useMcpServerSearch.ts +38 -0
- package/src/mcp-server/useMcpServerSetup.ts +487 -0
- package/src/models/ModelSelector.tsx +132 -0
- package/src/models/index.ts +6 -0
- package/src/models/registry.ts +60 -0
- package/src/models/useModelRegistry.ts +58 -0
- package/src/organization/CreateOrganizationForm.tsx +269 -0
- package/src/organization/index.ts +4 -0
- package/src/organization/useCreateOrganization.ts +65 -0
- package/src/search/index.ts +18 -0
- package/src/search/useResourceCount.ts +102 -0
- package/src/search/useResourceList.ts +123 -0
- package/src/search/useResourceSearch.ts +90 -0
- package/src/session/__tests__/group-sessions.test.ts +113 -0
- package/src/session/__tests__/useSessionConversation.test.tsx +305 -0
- package/src/session/group-sessions.ts +80 -0
- package/src/session/index.ts +30 -10
- package/src/session/useAgentRefFromSession.ts +94 -0
- package/src/session/useCreateSession.ts +141 -0
- package/src/session/useSession.ts +60 -0
- package/src/session/useSessionConversation.ts +515 -0
- package/src/session/useSessionExecutions.ts +77 -0
- package/src/session/useSessionList.ts +90 -0
- package/src/session/useUpdateSession.ts +54 -0
- package/src/skill/SkillDetailView.tsx +477 -0
- package/src/skill/SkillPicker.tsx +331 -0
- package/src/skill/index.ts +23 -3
- package/src/skill/useSkill.ts +105 -0
- package/src/skill/useSkillCount.ts +68 -0
- package/src/skill/useSkillList.ts +84 -0
- package/src/skill/useSkillSearch.ts +38 -0
- package/src/styles.css +2 -0
- package/src/workspace/FolderBrowser.tsx +568 -0
- package/src/workspace/WorkspaceEditor.tsx +480 -0
- package/src/workspace/WorkspaceSummary.tsx +109 -0
- package/src/workspace/index.ts +17 -0
- package/src/workspace/useFolderListing.ts +126 -0
- package/src/workspace/useWorkspaceEntries.ts +98 -0
- package/styles.css +1 -1
- package/workspace/FolderBrowser.d.ts +26 -0
- package/workspace/FolderBrowser.d.ts.map +1 -0
- package/workspace/FolderBrowser.js +179 -0
- package/workspace/FolderBrowser.js.map +1 -0
- package/workspace/WorkspaceEditor.d.ts +30 -0
- package/workspace/WorkspaceEditor.d.ts.map +1 -0
- package/workspace/WorkspaceEditor.js +116 -0
- package/workspace/WorkspaceEditor.js.map +1 -0
- package/workspace/WorkspaceSummary.d.ts +30 -0
- package/workspace/WorkspaceSummary.d.ts.map +1 -0
- package/workspace/WorkspaceSummary.js +53 -0
- package/workspace/WorkspaceSummary.js.map +1 -0
- package/workspace/index.d.ts +11 -0
- package/workspace/index.d.ts.map +1 -0
- package/workspace/index.js +6 -0
- package/workspace/index.js.map +1 -0
- package/workspace/useFolderListing.d.ts +35 -0
- package/workspace/useFolderListing.d.ts.map +1 -0
- package/workspace/useFolderListing.js +86 -0
- package/workspace/useFolderListing.js.map +1 -0
- package/workspace/useWorkspaceEntries.d.ts +28 -0
- package/workspace/useWorkspaceEntries.d.ts.map +1 -0
- package/workspace/useWorkspaceEntries.js +66 -0
- package/workspace/useWorkspaceEntries.js.map +1 -0
- package/agent/components/AgentCard.d.ts +0 -9
- package/agent/components/AgentCard.d.ts.map +0 -1
- package/agent/components/AgentCard.js +0 -26
- package/agent/components/AgentCard.js.map +0 -1
- package/agent/components/AgentOverview.d.ts +0 -7
- package/agent/components/AgentOverview.d.ts.map +0 -1
- package/agent/components/AgentOverview.js +0 -36
- package/agent/components/AgentOverview.js.map +0 -1
- package/agent/components/AgentPicker.d.ts +0 -17
- package/agent/components/AgentPicker.d.ts.map +0 -1
- package/agent/components/AgentPicker.js +0 -86
- package/agent/components/AgentPicker.js.map +0 -1
- package/agent/hooks/useAgentSearch.d.ts +0 -28
- package/agent/hooks/useAgentSearch.d.ts.map +0 -1
- package/agent/hooks/useAgentSearch.js +0 -63
- package/agent/hooks/useAgentSearch.js.map +0 -1
- package/agent-execution/components/ApprovalControls.d.ts +0 -10
- package/agent-execution/components/ApprovalControls.d.ts.map +0 -1
- package/agent-execution/components/ApprovalControls.js +0 -19
- package/agent-execution/components/ApprovalControls.js.map +0 -1
- package/agent-execution/components/ExecutionStatus.d.ts +0 -8
- package/agent-execution/components/ExecutionStatus.d.ts.map +0 -1
- package/agent-execution/components/ExecutionStatus.js +0 -14
- package/agent-execution/components/ExecutionStatus.js.map +0 -1
- package/agent-execution/components/ExecutionStream.d.ts +0 -16
- package/agent-execution/components/ExecutionStream.d.ts.map +0 -1
- package/agent-execution/components/ExecutionStream.js +0 -39
- package/agent-execution/components/ExecutionStream.js.map +0 -1
- package/agent-execution/components/MessageEntry.d.ts +0 -17
- package/agent-execution/components/MessageEntry.d.ts.map +0 -1
- package/agent-execution/components/MessageEntry.js +0 -36
- package/agent-execution/components/MessageEntry.js.map +0 -1
- package/agent-execution/components/MessageInput.d.ts +0 -10
- package/agent-execution/components/MessageInput.d.ts.map +0 -1
- package/agent-execution/components/MessageInput.js +0 -27
- package/agent-execution/components/MessageInput.js.map +0 -1
- package/agent-execution/components/OutputBlock.d.ts +0 -9
- package/agent-execution/components/OutputBlock.d.ts.map +0 -1
- package/agent-execution/components/OutputBlock.js +0 -15
- package/agent-execution/components/OutputBlock.js.map +0 -1
- package/agent-execution/components/SubAgentCard.d.ts +0 -11
- package/agent-execution/components/SubAgentCard.d.ts.map +0 -1
- package/agent-execution/components/SubAgentCard.js +0 -19
- package/agent-execution/components/SubAgentCard.js.map +0 -1
- package/agent-execution/components/ToolCallCard.d.ts +0 -11
- package/agent-execution/components/ToolCallCard.d.ts.map +0 -1
- package/agent-execution/components/ToolCallCard.js +0 -25
- package/agent-execution/components/ToolCallCard.js.map +0 -1
- package/agent-execution/helpers.d.ts +0 -35
- package/agent-execution/helpers.d.ts.map +0 -1
- package/agent-execution/helpers.js +0 -157
- package/agent-execution/helpers.js.map +0 -1
- package/agent-execution/hooks/useAgentExecution.d.ts +0 -21
- package/agent-execution/hooks/useAgentExecution.d.ts.map +0 -1
- package/agent-execution/hooks/useAgentExecution.js +0 -99
- package/agent-execution/hooks/useAgentExecution.js.map +0 -1
- package/agent-execution/hooks/useApproval.d.ts +0 -12
- package/agent-execution/hooks/useApproval.d.ts.map +0 -1
- package/agent-execution/hooks/useApproval.js +0 -32
- package/agent-execution/hooks/useApproval.js.map +0 -1
- package/agent-execution/index.d.ts +0 -14
- package/agent-execution/index.d.ts.map +0 -1
- package/agent-execution/index.js +0 -15
- package/agent-execution/index.js.map +0 -1
- package/catalog/components/ResourceSearchCard.d.ts +0 -23
- package/catalog/components/ResourceSearchCard.d.ts.map +0 -1
- package/catalog/components/ResourceSearchCard.js +0 -36
- package/catalog/components/ResourceSearchCard.js.map +0 -1
- package/catalog/index.d.ts +0 -4
- package/catalog/index.d.ts.map +0 -1
- package/catalog/index.js +0 -5
- package/catalog/index.js.map +0 -1
- package/catalog/internal/time.d.ts +0 -13
- package/catalog/internal/time.d.ts.map +0 -1
- package/catalog/internal/time.js +0 -41
- package/catalog/internal/time.js.map +0 -1
- package/internal/badge.d.ts +0 -8
- package/internal/badge.d.ts.map +0 -1
- package/internal/badge.js +0 -34
- package/internal/badge.js.map +0 -1
- package/internal/button.d.ts +0 -9
- package/internal/button.d.ts.map +0 -1
- package/internal/button.js +0 -36
- package/internal/button.js.map +0 -1
- package/internal/collapsible.d.ts +0 -6
- package/internal/collapsible.d.ts.map +0 -1
- package/internal/collapsible.js +0 -14
- package/internal/collapsible.js.map +0 -1
- package/internal/section.d.ts +0 -8
- package/internal/section.d.ts.map +0 -1
- package/internal/section.js +0 -6
- package/internal/section.js.map +0 -1
- package/internal/textarea.d.ts +0 -4
- package/internal/textarea.d.ts.map +0 -1
- package/internal/textarea.js +0 -9
- package/internal/textarea.js.map +0 -1
- package/mcp-server/hooks/useMcpServerSearch.d.ts +0 -25
- package/mcp-server/hooks/useMcpServerSearch.d.ts.map +0 -1
- package/mcp-server/hooks/useMcpServerSearch.js +0 -57
- package/mcp-server/hooks/useMcpServerSearch.js.map +0 -1
- package/session/components/AgentSessionHistory.d.ts +0 -8
- package/session/components/AgentSessionHistory.d.ts.map +0 -1
- package/session/components/AgentSessionHistory.js +0 -11
- package/session/components/AgentSessionHistory.js.map +0 -1
- package/session/components/SessionCard.d.ts +0 -8
- package/session/components/SessionCard.d.ts.map +0 -1
- package/session/components/SessionCard.js +0 -57
- package/session/components/SessionCard.js.map +0 -1
- package/session/hooks/useAgentSessionList.d.ts +0 -21
- package/session/hooks/useAgentSessionList.d.ts.map +0 -1
- package/session/hooks/useAgentSessionList.js +0 -90
- package/session/hooks/useAgentSessionList.js.map +0 -1
- package/skill/hooks/useSkillSearch.d.ts +0 -25
- package/skill/hooks/useSkillSearch.d.ts.map +0 -1
- package/skill/hooks/useSkillSearch.js +0 -57
- package/skill/hooks/useSkillSearch.js.map +0 -1
- package/src/agent/components/AgentCard.tsx +0 -125
- package/src/agent/components/AgentOverview.tsx +0 -209
- package/src/agent/components/AgentPicker.tsx +0 -255
- package/src/agent/hooks/useAgentSearch.ts +0 -94
- package/src/agent-execution/components/ApprovalControls.tsx +0 -99
- package/src/agent-execution/components/ExecutionStatus.tsx +0 -33
- package/src/agent-execution/components/ExecutionStream.tsx +0 -148
- package/src/agent-execution/components/MessageEntry.tsx +0 -125
- package/src/agent-execution/components/MessageInput.tsx +0 -70
- package/src/agent-execution/components/OutputBlock.tsx +0 -43
- package/src/agent-execution/components/SubAgentCard.tsx +0 -138
- package/src/agent-execution/components/ToolCallCard.tsx +0 -153
- package/src/agent-execution/helpers.ts +0 -193
- package/src/agent-execution/hooks/useAgentExecution.ts +0 -147
- package/src/agent-execution/hooks/useApproval.ts +0 -56
- package/src/agent-execution/index.ts +0 -46
- package/src/catalog/components/ResourceSearchCard.tsx +0 -137
- package/src/catalog/index.ts +0 -6
- package/src/catalog/internal/time.ts +0 -40
- package/src/internal/badge.tsx +0 -52
- package/src/internal/button.tsx +0 -60
- package/src/internal/collapsible.tsx +0 -21
- package/src/internal/section.tsx +0 -18
- package/src/internal/textarea.tsx +0 -23
- package/src/mcp-server/hooks/useMcpServerSearch.ts +0 -79
- package/src/session/components/AgentSessionHistory.tsx +0 -109
- package/src/session/components/SessionCard.tsx +0 -113
- package/src/session/hooks/useAgentSessionList.ts +0 -117
- package/src/skill/hooks/useSkillSearch.ts +0 -79
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { EnvVarFormVariable } from "./EnvVarForm";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Computes the list of environment variables a resource requires that
|
|
5
|
+
* the user has not yet provided.
|
|
6
|
+
*
|
|
7
|
+
* Compares a resource's declared `env_spec.data` keys against a set of
|
|
8
|
+
* keys already present in the user's personal environment **and** an
|
|
9
|
+
* optional session-level env pool (manual secrets, one-time env vars
|
|
10
|
+
* from other components). Variables whose keys are missing from both
|
|
11
|
+
* sources are returned as {@link EnvVarFormVariable} entries suitable
|
|
12
|
+
* for rendering in {@link EnvVarForm}.
|
|
13
|
+
*
|
|
14
|
+
* Works with any resource that declares an `EnvironmentSpec` — Agents,
|
|
15
|
+
* MCP servers, or future resource types.
|
|
16
|
+
*
|
|
17
|
+
* This is a pure function with no side effects — it can be unit-tested
|
|
18
|
+
* independently of hooks, providers, or API calls.
|
|
19
|
+
*
|
|
20
|
+
* @param envSpecData - The resource's `spec.envSpec.data` record.
|
|
21
|
+
* Each entry declares a variable the resource needs, with `isSecret`
|
|
22
|
+
* and an optional `description`.
|
|
23
|
+
* @param existingKeys - Keys already present in the user's personal
|
|
24
|
+
* environment (or any environment being checked against).
|
|
25
|
+
* @param poolKeys - Optional additional keys from the session env pool
|
|
26
|
+
* (manual secrets, one-time env vars from other agents/MCP servers).
|
|
27
|
+
* When provided, variables satisfied by the pool are also excluded
|
|
28
|
+
* from the "missing" list.
|
|
29
|
+
* @returns Variables from `envSpecData` not found in either key set.
|
|
30
|
+
*/
|
|
31
|
+
export function diffEnvSpec(
|
|
32
|
+
envSpecData: Record<string, { isSecret: boolean; description?: string }>,
|
|
33
|
+
existingKeys: Set<string>,
|
|
34
|
+
poolKeys?: Set<string>,
|
|
35
|
+
): EnvVarFormVariable[] {
|
|
36
|
+
const missing: EnvVarFormVariable[] = [];
|
|
37
|
+
|
|
38
|
+
for (const [key, value] of Object.entries(envSpecData)) {
|
|
39
|
+
if (existingKeys.has(key)) continue;
|
|
40
|
+
if (poolKeys?.has(key)) continue;
|
|
41
|
+
|
|
42
|
+
missing.push({
|
|
43
|
+
key,
|
|
44
|
+
isSecret: value.isSecret,
|
|
45
|
+
...(value.description && { description: value.description }),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return missing;
|
|
50
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export { useCreateEnvironment } from "./useCreateEnvironment";
|
|
2
|
+
export type { UseCreateEnvironmentReturn } from "./useCreateEnvironment";
|
|
3
|
+
export { useEnvironment } from "./useEnvironment";
|
|
4
|
+
export type { UseEnvironmentReturn } from "./useEnvironment";
|
|
5
|
+
export { useEnvironmentList } from "./useEnvironmentList";
|
|
6
|
+
export type { UseEnvironmentListReturn } from "./useEnvironmentList";
|
|
7
|
+
export { usePersonalEnvironment } from "./usePersonalEnvironment";
|
|
8
|
+
export type { UsePersonalEnvironmentReturn } from "./usePersonalEnvironment";
|
|
9
|
+
export { useRevealSecretValue } from "./useRevealSecretValue";
|
|
10
|
+
export type {
|
|
11
|
+
UseRevealSecretValueOptions,
|
|
12
|
+
UseRevealSecretValueReturn,
|
|
13
|
+
} from "./useRevealSecretValue";
|
|
14
|
+
export { useRemoveEnvironmentVariables } from "./useRemoveEnvironmentVariables";
|
|
15
|
+
export type {
|
|
16
|
+
RemoveEnvironmentVariablesInput,
|
|
17
|
+
UseRemoveEnvironmentVariablesReturn,
|
|
18
|
+
} from "./useRemoveEnvironmentVariables";
|
|
19
|
+
export { useUpdateEnvironment } from "./useUpdateEnvironment";
|
|
20
|
+
export type { UseUpdateEnvironmentReturn } from "./useUpdateEnvironment";
|
|
21
|
+
export { useUpdateEnvironmentVariables } from "./useUpdateEnvironmentVariables";
|
|
22
|
+
export type {
|
|
23
|
+
UpdateEnvironmentVariablesInput,
|
|
24
|
+
UseUpdateEnvironmentVariablesReturn,
|
|
25
|
+
} from "./useUpdateEnvironmentVariables";
|
|
26
|
+
export { EnvironmentVariableEditor } from "./EnvironmentVariableEditor";
|
|
27
|
+
export type { EnvironmentVariableEditorProps } from "./EnvironmentVariableEditor";
|
|
28
|
+
export { EnvironmentListPanel } from "./EnvironmentListPanel";
|
|
29
|
+
export type { EnvironmentListPanelProps } from "./EnvironmentListPanel";
|
|
30
|
+
export { CreateEnvironmentForm } from "./CreateEnvironmentForm";
|
|
31
|
+
export type { CreateEnvironmentFormProps } from "./CreateEnvironmentForm";
|
|
32
|
+
export { EnvVarForm } from "./EnvVarForm";
|
|
33
|
+
export type {
|
|
34
|
+
EnvVarFormProps,
|
|
35
|
+
EnvVarFormVariable,
|
|
36
|
+
EnvVarFormSubmitOptions,
|
|
37
|
+
} from "./EnvVarForm";
|
|
38
|
+
export { diffEnvSpec } from "./diffEnvSpec";
|
|
39
|
+
export { useSessionEnvPool } from "./useSessionEnvPool";
|
|
40
|
+
export type {
|
|
41
|
+
SessionEnvPoolInput,
|
|
42
|
+
UseSessionEnvPoolReturn,
|
|
43
|
+
} from "./useSessionEnvPool";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import type { EnvironmentInput } from "@stigmer/sdk";
|
|
5
|
+
import type { Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
|
|
6
|
+
import { useStigmer } from "../hooks";
|
|
7
|
+
import { toError } from "../internal/toError";
|
|
8
|
+
|
|
9
|
+
export interface UseCreateEnvironmentReturn {
|
|
10
|
+
readonly create: (input: EnvironmentInput) => Promise<Environment>;
|
|
11
|
+
readonly isCreating: boolean;
|
|
12
|
+
readonly error: Error | null;
|
|
13
|
+
readonly clearError: () => void;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Behavior hook that wraps `environment.create()` with loading/error
|
|
18
|
+
* state.
|
|
19
|
+
*
|
|
20
|
+
* Creates an Environment resource — a named collection of
|
|
21
|
+
* configuration values and secrets. The caller provides an
|
|
22
|
+
* {@link EnvironmentInput} with `name`, `org`, and optionally
|
|
23
|
+
* `description` and `data` (key-value pairs).
|
|
24
|
+
*
|
|
25
|
+
* Returns the full {@link Environment} proto including
|
|
26
|
+
* server-generated metadata (id, version, timestamps) so callers
|
|
27
|
+
* can immediately reference the created resource.
|
|
28
|
+
*
|
|
29
|
+
* This is a Layer 1 building-block hook for the **Environment Flow**
|
|
30
|
+
* — persistent credential storage via Environment resources. For the
|
|
31
|
+
* managed "personal environment" convenience, see
|
|
32
|
+
* {@link usePersonalEnvironment} which composes this hook with
|
|
33
|
+
* deterministic naming and label conventions.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* const { create, isCreating, error } = useCreateEnvironment();
|
|
38
|
+
*
|
|
39
|
+
* const env = await create({
|
|
40
|
+
* name: "prod-credentials",
|
|
41
|
+
* org: "acme",
|
|
42
|
+
* description: "Production API keys",
|
|
43
|
+
* data: {
|
|
44
|
+
* API_KEY: { value: "sk-...", isSecret: true },
|
|
45
|
+
* },
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export function useCreateEnvironment(): UseCreateEnvironmentReturn {
|
|
50
|
+
const stigmer = useStigmer();
|
|
51
|
+
const [isCreating, setIsCreating] = useState(false);
|
|
52
|
+
const [error, setError] = useState<Error | null>(null);
|
|
53
|
+
|
|
54
|
+
const clearError = useCallback(() => setError(null), []);
|
|
55
|
+
|
|
56
|
+
const create = useCallback(
|
|
57
|
+
async (input: EnvironmentInput): Promise<Environment> => {
|
|
58
|
+
setIsCreating(true);
|
|
59
|
+
setError(null);
|
|
60
|
+
|
|
61
|
+
try {
|
|
62
|
+
return await stigmer.environment.create(input);
|
|
63
|
+
} catch (err) {
|
|
64
|
+
setError(toError(err));
|
|
65
|
+
throw err;
|
|
66
|
+
} finally {
|
|
67
|
+
setIsCreating(false);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
[stigmer],
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
return { create, isCreating, error, clearError };
|
|
74
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import type { Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
|
|
5
|
+
import type { ResourceRef } from "@stigmer/sdk";
|
|
6
|
+
import { useStigmer } from "../hooks";
|
|
7
|
+
import { toError } from "../internal/toError";
|
|
8
|
+
|
|
9
|
+
export interface UseEnvironmentReturn {
|
|
10
|
+
readonly environment: Environment | null;
|
|
11
|
+
readonly isLoading: boolean;
|
|
12
|
+
readonly error: Error | null;
|
|
13
|
+
readonly refetch: () => void;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Data hook that fetches a single Environment by resource reference.
|
|
18
|
+
*
|
|
19
|
+
* Pass `null` to skip fetching (stable no-op). When the reference
|
|
20
|
+
* fields change, the previous in-flight request is discarded and a
|
|
21
|
+
* fresh fetch begins. Call `refetch()` to re-query after mutating the
|
|
22
|
+
* environment through a separate hook or API call.
|
|
23
|
+
*
|
|
24
|
+
* Returns the full proto {@link Environment} resource so consumers
|
|
25
|
+
* have access to metadata, spec (including `data` key-value pairs),
|
|
26
|
+
* and status without additional calls.
|
|
27
|
+
*
|
|
28
|
+
* This is a Layer 1 building-block hook for the **Environment Flow**
|
|
29
|
+
* — persistent credential storage via Environment resources. For the
|
|
30
|
+
* managed "personal environment" convenience, see
|
|
31
|
+
* {@link usePersonalEnvironment}. For ephemeral per-execution secrets,
|
|
32
|
+
* see the Execution Flow via {@link useCreateAgentExecution} with
|
|
33
|
+
* `runtimeEnv`.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* const { environment, isLoading, error } = useEnvironment({
|
|
38
|
+
* org: "acme",
|
|
39
|
+
* slug: "prod-env",
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export function useEnvironment(
|
|
44
|
+
ref: ResourceRef | null,
|
|
45
|
+
): UseEnvironmentReturn {
|
|
46
|
+
const stigmer = useStigmer();
|
|
47
|
+
const [environment, setEnvironment] = useState<Environment | null>(null);
|
|
48
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
49
|
+
const [error, setError] = useState<Error | null>(null);
|
|
50
|
+
const [fetchKey, setFetchKey] = useState(0);
|
|
51
|
+
|
|
52
|
+
const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
|
|
53
|
+
|
|
54
|
+
const org = ref?.org;
|
|
55
|
+
const slug = ref?.slug;
|
|
56
|
+
const version = ref?.version;
|
|
57
|
+
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
if (!org || !slug) {
|
|
60
|
+
setEnvironment(null);
|
|
61
|
+
setIsLoading(false);
|
|
62
|
+
setError(null);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const cancelled = { current: false };
|
|
67
|
+
setIsLoading(true);
|
|
68
|
+
setError(null);
|
|
69
|
+
|
|
70
|
+
stigmer.environment.getByReference({ org, slug, version }).then(
|
|
71
|
+
(result) => {
|
|
72
|
+
if (cancelled.current) return;
|
|
73
|
+
setEnvironment(result);
|
|
74
|
+
setIsLoading(false);
|
|
75
|
+
},
|
|
76
|
+
(err) => {
|
|
77
|
+
if (cancelled.current) return;
|
|
78
|
+
setError(toError(err));
|
|
79
|
+
setIsLoading(false);
|
|
80
|
+
},
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
return () => {
|
|
84
|
+
cancelled.current = true;
|
|
85
|
+
};
|
|
86
|
+
}, [org, slug, version, stigmer, fetchKey]);
|
|
87
|
+
|
|
88
|
+
return { environment, isLoading, error, refetch };
|
|
89
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
4
|
+
import { create } from "@bufbuild/protobuf";
|
|
5
|
+
import type { Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
|
|
6
|
+
import { ListEnvironmentsRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/io_pb";
|
|
7
|
+
import { useStigmer } from "../hooks";
|
|
8
|
+
import { toError } from "../internal/toError";
|
|
9
|
+
|
|
10
|
+
export interface UseEnvironmentListReturn {
|
|
11
|
+
readonly environments: readonly Environment[];
|
|
12
|
+
readonly totalCount: number;
|
|
13
|
+
readonly isLoading: boolean;
|
|
14
|
+
readonly error: Error | null;
|
|
15
|
+
readonly refetch: () => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Data hook that fetches a paginated list of {@link Environment} entries
|
|
20
|
+
* for a given organization, with optional label filtering.
|
|
21
|
+
*
|
|
22
|
+
* Pass `null` as `org` to skip fetching (stable no-op). When the org
|
|
23
|
+
* or labels change, the previous in-flight request is discarded and a
|
|
24
|
+
* fresh fetch begins. Call `refetch()` to re-query after mutations.
|
|
25
|
+
*
|
|
26
|
+
* Secret values in returned environments are redacted server-side.
|
|
27
|
+
*
|
|
28
|
+
* This is a Layer 1 building-block hook for the **Environment Flow**.
|
|
29
|
+
* For the managed "personal environment" convenience, see
|
|
30
|
+
* {@link usePersonalEnvironment}.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* const { environments, isLoading } = useEnvironmentList("acme", {
|
|
35
|
+
* "stigmer.ai/personal": "true",
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function useEnvironmentList(
|
|
40
|
+
org: string | null,
|
|
41
|
+
labels?: Record<string, string>,
|
|
42
|
+
): UseEnvironmentListReturn {
|
|
43
|
+
const stigmer = useStigmer();
|
|
44
|
+
const [environments, setEnvironments] = useState<Environment[]>([]);
|
|
45
|
+
const [totalCount, setTotalCount] = useState(0);
|
|
46
|
+
const [isLoading, setIsLoading] = useState(!!org);
|
|
47
|
+
const [error, setError] = useState<Error | null>(null);
|
|
48
|
+
const [fetchKey, setFetchKey] = useState(0);
|
|
49
|
+
|
|
50
|
+
// Synchronously reset loading state when org changes so that
|
|
51
|
+
// downstream hooks see isLoading=true in the SAME render —
|
|
52
|
+
// not deferred to the next render via an effect.
|
|
53
|
+
const [prevOrg, setPrevOrg] = useState(org);
|
|
54
|
+
if (org !== prevOrg) {
|
|
55
|
+
setPrevOrg(org);
|
|
56
|
+
if (org) {
|
|
57
|
+
setIsLoading(true);
|
|
58
|
+
setEnvironments([]);
|
|
59
|
+
setTotalCount(0);
|
|
60
|
+
setError(null);
|
|
61
|
+
} else {
|
|
62
|
+
setIsLoading(false);
|
|
63
|
+
setEnvironments([]);
|
|
64
|
+
setTotalCount(0);
|
|
65
|
+
setError(null);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const labelsRef = useRef(labels);
|
|
70
|
+
if (
|
|
71
|
+
labels !== labelsRef.current &&
|
|
72
|
+
JSON.stringify(labels) !== JSON.stringify(labelsRef.current)
|
|
73
|
+
) {
|
|
74
|
+
labelsRef.current = labels;
|
|
75
|
+
}
|
|
76
|
+
const stableLabels = labelsRef.current;
|
|
77
|
+
|
|
78
|
+
const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
|
|
79
|
+
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (!org) return;
|
|
82
|
+
|
|
83
|
+
const cancelled = { current: false };
|
|
84
|
+
|
|
85
|
+
stigmer.environment
|
|
86
|
+
.list(
|
|
87
|
+
create(ListEnvironmentsRequestSchema, {
|
|
88
|
+
org,
|
|
89
|
+
labels: stableLabels ?? {},
|
|
90
|
+
}),
|
|
91
|
+
)
|
|
92
|
+
.then(
|
|
93
|
+
(result) => {
|
|
94
|
+
if (cancelled.current) return;
|
|
95
|
+
setEnvironments(result.items);
|
|
96
|
+
setTotalCount(result.totalCount);
|
|
97
|
+
setIsLoading(false);
|
|
98
|
+
},
|
|
99
|
+
(err) => {
|
|
100
|
+
if (cancelled.current) return;
|
|
101
|
+
setError(toError(err));
|
|
102
|
+
setIsLoading(false);
|
|
103
|
+
},
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
return () => {
|
|
107
|
+
cancelled.current = true;
|
|
108
|
+
};
|
|
109
|
+
}, [org, stableLabels, stigmer, fetchKey]);
|
|
110
|
+
|
|
111
|
+
return { environments, totalCount, isLoading, error, refetch };
|
|
112
|
+
}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { create } from "@bufbuild/protobuf";
|
|
5
|
+
import type { EnvVarInput } from "@stigmer/sdk";
|
|
6
|
+
import type { Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
|
|
7
|
+
import {
|
|
8
|
+
UpdateEnvironmentVariablesRequestSchema,
|
|
9
|
+
RemoveEnvironmentVariablesRequestSchema,
|
|
10
|
+
} from "@stigmer/protos/ai/stigmer/agentic/environment/v1/io_pb";
|
|
11
|
+
import { EnvironmentValueSchema } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/spec_pb";
|
|
12
|
+
import { useStigmer } from "../hooks";
|
|
13
|
+
import { generateSlugSuffix } from "../internal/slug";
|
|
14
|
+
import { toError } from "../internal/toError";
|
|
15
|
+
import { useEnvironmentList } from "./useEnvironmentList";
|
|
16
|
+
|
|
17
|
+
const PERSONAL_LABELS: Record<string, string> = {
|
|
18
|
+
"stigmer.ai/personal": "true",
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export interface UsePersonalEnvironmentReturn {
|
|
22
|
+
/** The caller's personal environment, or `null` if not yet created or still loading. */
|
|
23
|
+
readonly environment: Environment | null;
|
|
24
|
+
/** `true` while the initial list query is in-flight. */
|
|
25
|
+
readonly isLoading: boolean;
|
|
26
|
+
/** Error message from the most recent failed operation (fetch or mutation), or `null`. */
|
|
27
|
+
readonly error: Error | null;
|
|
28
|
+
/** Re-query the personal environment from the server. */
|
|
29
|
+
readonly refetch: () => void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Ensure a personal environment exists for this org.
|
|
33
|
+
*
|
|
34
|
+
* If one already exists, returns it immediately without a network call.
|
|
35
|
+
* Otherwise, creates a new environment with a unique slug and
|
|
36
|
+
* label `stigmer.ai/personal: "true"`, optionally seeded with initial data.
|
|
37
|
+
*
|
|
38
|
+
* **Preconditions:** `org` must be non-null and {@link isLoading} must be
|
|
39
|
+
* `false`. Calling while `isLoading` is `true` throws — the list query
|
|
40
|
+
* has not completed, so `getOrCreate` cannot determine whether the
|
|
41
|
+
* environment already exists and would risk creating a duplicate.
|
|
42
|
+
*
|
|
43
|
+
* @param initialData - Key-value pairs to include on creation. Ignored
|
|
44
|
+
* if the personal environment already exists. Use {@link addVariables}
|
|
45
|
+
* to merge variables into an existing environment.
|
|
46
|
+
* @returns The personal environment (existing or newly created).
|
|
47
|
+
* @throws If `org` is null or the environment list is still loading.
|
|
48
|
+
*/
|
|
49
|
+
readonly getOrCreate: (
|
|
50
|
+
initialData?: Record<string, EnvVarInput>,
|
|
51
|
+
) => Promise<Environment>;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Add or update variables in the personal environment via server-side merge.
|
|
55
|
+
*
|
|
56
|
+
* Only the supplied keys are affected — existing variables not mentioned
|
|
57
|
+
* are preserved unchanged. Secret values are encrypted server-side.
|
|
58
|
+
*
|
|
59
|
+
* Requires the personal environment to exist. Call {@link getOrCreate}
|
|
60
|
+
* first if it may not.
|
|
61
|
+
*
|
|
62
|
+
* @param variables - Variables to add or update.
|
|
63
|
+
* @returns The updated environment (secrets redacted).
|
|
64
|
+
*/
|
|
65
|
+
readonly addVariables: (
|
|
66
|
+
variables: Record<string, EnvVarInput>,
|
|
67
|
+
) => Promise<Environment>;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Remove variables from the personal environment by key.
|
|
71
|
+
*
|
|
72
|
+
* Keys that do not exist are silently ignored. Variables not mentioned
|
|
73
|
+
* are preserved unchanged.
|
|
74
|
+
*
|
|
75
|
+
* Requires the personal environment to exist. Call {@link getOrCreate}
|
|
76
|
+
* first if it may not.
|
|
77
|
+
*
|
|
78
|
+
* @param keys - Keys to remove from the environment's data.
|
|
79
|
+
* @returns The updated environment (secrets redacted).
|
|
80
|
+
*/
|
|
81
|
+
readonly removeVariables: (keys: string[]) => Promise<Environment>;
|
|
82
|
+
|
|
83
|
+
/** `true` while any mutation (`getOrCreate`, `addVariables`, `removeVariables`) is in-flight. */
|
|
84
|
+
readonly isMutating: boolean;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Layer 2 orchestration hook that manages the caller's personal
|
|
89
|
+
* {@link Environment} for a given organization.
|
|
90
|
+
*
|
|
91
|
+
* Encapsulates the "personal environment" convention: label
|
|
92
|
+
* (`stigmer.ai/personal: "true"`), unique slug per user, and
|
|
93
|
+
* the get-or-create lifecycle. Composes {@link useEnvironmentList}
|
|
94
|
+
* for declarative reading and the SDK client directly for mutations.
|
|
95
|
+
*
|
|
96
|
+
* Pass `null` as `org` to skip all operations (stable no-op).
|
|
97
|
+
*
|
|
98
|
+
* This is a Layer 2 **Environment Flow** hook. It provides the managed
|
|
99
|
+
* "personal environment" experience used by the Stigmer Console and
|
|
100
|
+
* any app that wants automatic credential storage. Callers who manage
|
|
101
|
+
* environments programmatically should use the Layer 1 building-block
|
|
102
|
+
* hooks instead:
|
|
103
|
+
* - {@link useCreateEnvironment} — create any environment
|
|
104
|
+
* - {@link useUpdateEnvironmentVariables} — incremental variable merge
|
|
105
|
+
* - {@link useRemoveEnvironmentVariables} — remove variables by key
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```tsx
|
|
109
|
+
* // Basic usage — read the personal environment
|
|
110
|
+
* const { environment, isLoading } = usePersonalEnvironment("acme");
|
|
111
|
+
*
|
|
112
|
+
* // Get-or-create with initial data on first use
|
|
113
|
+
* const { getOrCreate, addVariables, isMutating } =
|
|
114
|
+
* usePersonalEnvironment("acme");
|
|
115
|
+
*
|
|
116
|
+
* const env = await getOrCreate({
|
|
117
|
+
* GITHUB_TOKEN: { value: "ghp_...", isSecret: true },
|
|
118
|
+
* });
|
|
119
|
+
*
|
|
120
|
+
* // Add variables to an existing personal environment
|
|
121
|
+
* await addVariables({
|
|
122
|
+
* SLACK_TOKEN: { value: "xoxb-...", isSecret: true },
|
|
123
|
+
* });
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export function usePersonalEnvironment(
|
|
127
|
+
org: string | null,
|
|
128
|
+
): UsePersonalEnvironmentReturn {
|
|
129
|
+
const stigmer = useStigmer();
|
|
130
|
+
const { environments, isLoading, error: listError, refetch } =
|
|
131
|
+
useEnvironmentList(org, PERSONAL_LABELS);
|
|
132
|
+
|
|
133
|
+
const environment = useMemo(
|
|
134
|
+
() => environments[0] ?? null,
|
|
135
|
+
[environments],
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
const [isMutating, setIsMutating] = useState(false);
|
|
139
|
+
const [mutationError, setMutationError] = useState<Error | null>(null);
|
|
140
|
+
|
|
141
|
+
const environmentRef = useRef(environment);
|
|
142
|
+
environmentRef.current = environment;
|
|
143
|
+
|
|
144
|
+
const isLoadingRef = useRef(isLoading);
|
|
145
|
+
isLoadingRef.current = isLoading;
|
|
146
|
+
|
|
147
|
+
const error = mutationError ?? listError;
|
|
148
|
+
|
|
149
|
+
const getOrCreate = useCallback(
|
|
150
|
+
async (
|
|
151
|
+
initialData?: Record<string, EnvVarInput>,
|
|
152
|
+
): Promise<Environment> => {
|
|
153
|
+
if (environmentRef.current) return environmentRef.current;
|
|
154
|
+
|
|
155
|
+
if (!org) {
|
|
156
|
+
throw new Error(
|
|
157
|
+
"usePersonalEnvironment: cannot call getOrCreate when org is null.",
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (isLoadingRef.current) {
|
|
162
|
+
throw new Error(
|
|
163
|
+
"usePersonalEnvironment: cannot call getOrCreate while the " +
|
|
164
|
+
"environment list is loading. Wait for isLoading to become " +
|
|
165
|
+
"false before calling getOrCreate().",
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
setIsMutating(true);
|
|
170
|
+
setMutationError(null);
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
let data: Record<string, EnvVarInput> | undefined;
|
|
174
|
+
if (initialData && Object.keys(initialData).length > 0) {
|
|
175
|
+
data = initialData;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const created = await stigmer.environment.create({
|
|
179
|
+
name: "Personal Environment",
|
|
180
|
+
slug: `env-personal-${generateSlugSuffix()}`,
|
|
181
|
+
org,
|
|
182
|
+
labels: PERSONAL_LABELS,
|
|
183
|
+
data,
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
refetch();
|
|
187
|
+
return created;
|
|
188
|
+
} catch (err) {
|
|
189
|
+
setMutationError(toError(err));
|
|
190
|
+
throw err;
|
|
191
|
+
} finally {
|
|
192
|
+
setIsMutating(false);
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
[org, stigmer, refetch],
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
const addVariables = useCallback(
|
|
199
|
+
async (
|
|
200
|
+
variables: Record<string, EnvVarInput>,
|
|
201
|
+
): Promise<Environment> => {
|
|
202
|
+
const env = environmentRef.current;
|
|
203
|
+
if (!env) {
|
|
204
|
+
throw new Error(
|
|
205
|
+
"usePersonalEnvironment: personal environment does not exist. " +
|
|
206
|
+
"Call getOrCreate() before addVariables().",
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
setIsMutating(true);
|
|
211
|
+
setMutationError(null);
|
|
212
|
+
|
|
213
|
+
try {
|
|
214
|
+
const protoVars = Object.fromEntries(
|
|
215
|
+
Object.entries(variables).map(([k, v]) => [
|
|
216
|
+
k,
|
|
217
|
+
create(EnvironmentValueSchema, {
|
|
218
|
+
value: v.value,
|
|
219
|
+
isSecret: v.isSecret,
|
|
220
|
+
description: v.description,
|
|
221
|
+
}),
|
|
222
|
+
]),
|
|
223
|
+
);
|
|
224
|
+
|
|
225
|
+
const request = create(UpdateEnvironmentVariablesRequestSchema, {
|
|
226
|
+
environmentId: env.metadata!.id,
|
|
227
|
+
variables: protoVars,
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
const updated = await stigmer.environment.updateVariables(request);
|
|
231
|
+
refetch();
|
|
232
|
+
return updated;
|
|
233
|
+
} catch (err) {
|
|
234
|
+
setMutationError(toError(err));
|
|
235
|
+
throw err;
|
|
236
|
+
} finally {
|
|
237
|
+
setIsMutating(false);
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
[stigmer, refetch],
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
const removeVariables = useCallback(
|
|
244
|
+
async (keys: string[]): Promise<Environment> => {
|
|
245
|
+
const env = environmentRef.current;
|
|
246
|
+
if (!env) {
|
|
247
|
+
throw new Error(
|
|
248
|
+
"usePersonalEnvironment: personal environment does not exist. " +
|
|
249
|
+
"Call getOrCreate() before removeVariables().",
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
setIsMutating(true);
|
|
254
|
+
setMutationError(null);
|
|
255
|
+
|
|
256
|
+
try {
|
|
257
|
+
const request = create(RemoveEnvironmentVariablesRequestSchema, {
|
|
258
|
+
environmentId: env.metadata!.id,
|
|
259
|
+
keys,
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
const updated = await stigmer.environment.removeVariables(request);
|
|
263
|
+
refetch();
|
|
264
|
+
return updated;
|
|
265
|
+
} catch (err) {
|
|
266
|
+
setMutationError(toError(err));
|
|
267
|
+
throw err;
|
|
268
|
+
} finally {
|
|
269
|
+
setIsMutating(false);
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
[stigmer, refetch],
|
|
273
|
+
);
|
|
274
|
+
|
|
275
|
+
return {
|
|
276
|
+
environment,
|
|
277
|
+
isLoading,
|
|
278
|
+
error,
|
|
279
|
+
refetch,
|
|
280
|
+
getOrCreate,
|
|
281
|
+
addVariables,
|
|
282
|
+
removeVariables,
|
|
283
|
+
isMutating,
|
|
284
|
+
};
|
|
285
|
+
}
|